@univerjs/sheets-table 1.0.0-alpha.8 → 1.0.0-beta.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 CHANGED
@@ -1293,8 +1293,7 @@ var TableFilters = class {
1293
1293
  return getTableFilterState(this._tableColumnFilterList[columnIndex], sortState);
1294
1294
  }
1295
1295
  getSortState() {
1296
- var _this$_tableSortInfo2;
1297
- return (_this$_tableSortInfo2 = this._tableSortInfo) !== null && _this$_tableSortInfo2 !== void 0 ? _this$_tableSortInfo2 : {};
1296
+ return this._tableSortInfo ?? {};
1298
1297
  }
1299
1298
  getFilterStates(range) {
1300
1299
  const states = [];
@@ -1364,8 +1363,7 @@ var TableFilters = class {
1364
1363
  };
1365
1364
  }
1366
1365
  fromJSON(json) {
1367
- var _json$tableColumnFilt;
1368
- this._tableColumnFilterList = (_json$tableColumnFilt = json.tableColumnFilterList) !== null && _json$tableColumnFilt !== void 0 ? _json$tableColumnFilt : [];
1366
+ this._tableColumnFilterList = json.tableColumnFilterList ?? [];
1369
1367
  if (json.tableSortInfo) this._tableSortInfo = json.tableSortInfo;
1370
1368
  }
1371
1369
  dispose() {
@@ -1395,9 +1393,8 @@ var Table = class {
1395
1393
  this._init(header, options);
1396
1394
  }
1397
1395
  _init(header, options) {
1398
- var _options$showHeader;
1399
1396
  this._tableStyleId = options === null || options === void 0 ? void 0 : options.tableStyleId;
1400
- this._showHeader = (_options$showHeader = options === null || options === void 0 ? void 0 : options.showHeader) !== null && _options$showHeader !== void 0 ? _options$showHeader : true;
1397
+ this._showHeader = (options === null || options === void 0 ? void 0 : options.showHeader) ?? true;
1401
1398
  this._showFooter = false;
1402
1399
  const range = this.getRange();
1403
1400
  const startColumn = range.startColumn;
@@ -1509,22 +1506,19 @@ var Table = class {
1509
1506
  this._subUnitId = subUnitId;
1510
1507
  }
1511
1508
  getTableStyleId() {
1512
- var _this$_tableStyleId;
1513
- return (_this$_tableStyleId = this._tableStyleId) !== null && _this$_tableStyleId !== void 0 ? _this$_tableStyleId : tableThemeConfig[0].name;
1509
+ return this._tableStyleId ?? tableThemeConfig[0].name;
1514
1510
  }
1515
1511
  setTableStyleId(tableStyleId) {
1516
1512
  this._tableStyleId = tableStyleId;
1517
1513
  }
1518
1514
  isShowHeader() {
1519
- var _this$_showHeader;
1520
- return (_this$_showHeader = this._showHeader) !== null && _this$_showHeader !== void 0 ? _this$_showHeader : true;
1515
+ return this._showHeader ?? true;
1521
1516
  }
1522
1517
  setShowHeader(showHeader) {
1523
1518
  this._showHeader = showHeader;
1524
1519
  }
1525
1520
  isShowFooter() {
1526
- var _this$_showFooter;
1527
- return (_this$_showFooter = this._showFooter) !== null && _this$_showFooter !== void 0 ? _this$_showFooter : false;
1521
+ return this._showFooter ?? false;
1528
1522
  }
1529
1523
  getTableInfo() {
1530
1524
  return {
@@ -1571,14 +1565,13 @@ var Table = class {
1571
1565
  };
1572
1566
  }
1573
1567
  fromJSON(json) {
1574
- var _json$options$showHea, _json$options$showFoo;
1575
1568
  this._id = json.id;
1576
1569
  this._name = json.name;
1577
1570
  this._range = json.range;
1578
1571
  this.tableMeta = json.meta;
1579
1572
  this._tableStyleId = json.options.tableStyleId || "";
1580
- this._showHeader = (_json$options$showHea = json.options.showHeader) !== null && _json$options$showHea !== void 0 ? _json$options$showHea : true;
1581
- this._showFooter = (_json$options$showFoo = json.options.showFooter) !== null && _json$options$showFoo !== void 0 ? _json$options$showFoo : true;
1573
+ this._showHeader = json.options.showHeader ?? true;
1574
+ this._showFooter = json.options.showFooter ?? true;
1582
1575
  json.columns.forEach((column) => {
1583
1576
  const tableColumn = new TableColumn(column.id, column.displayName);
1584
1577
  tableColumn.fromJSON(column);
@@ -1650,7 +1643,7 @@ let TableManager = class TableManager extends _univerjs_core.Disposable {
1650
1643
  const worksheet = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
1651
1644
  const { startRow, startColumn, endColumn } = range;
1652
1645
  const header = [];
1653
- const columnText = prefixText !== null && prefixText !== void 0 ? prefixText : "Column";
1646
+ const columnText = prefixText ?? "Column";
1654
1647
  for (let i = startColumn; i <= endColumn; i++) header.push(convertCellDataToString(worksheet === null || worksheet === void 0 ? void 0 : worksheet.getCell(startRow, i)) || getColumnName(i - startColumn + 1, columnText));
1655
1648
  return header;
1656
1649
  }
@@ -1666,7 +1659,7 @@ let TableManager = class TableManager extends _univerjs_core.Disposable {
1666
1659
  * @returns {string} The table id.
1667
1660
  */
1668
1661
  addTable(unitId, subUnitId, name, range, header, initId, options) {
1669
- const id = initId !== null && initId !== void 0 ? initId : (0, _univerjs_core.generateRandomId)();
1662
+ const id = initId ?? (0, _univerjs_core.generateRandomId)();
1670
1663
  const table = new Table(id, name, range, header || this.getColumnHeader(unitId, subUnitId, range), options);
1671
1664
  table.setSubunitId(subUnitId);
1672
1665
  this._ensureUnit(unitId).set(id, table);
@@ -1895,8 +1888,7 @@ let TableManager = class TableManager extends _univerjs_core.Disposable {
1895
1888
  if (rowColOperation) this.operationTableRowCol(unitId, tableId, rowColOperation);
1896
1889
  if (updateRange) this.updateTableRange(unitId, tableId, updateRange);
1897
1890
  if (theme) {
1898
- var _table$getTableStyleI;
1899
- const oldTheme = (_table$getTableStyleI = table.getTableStyleId()) !== null && _table$getTableStyleI !== void 0 ? _table$getTableStyleI : "default";
1891
+ const oldTheme = table.getTableStyleId() ?? "default";
1900
1892
  table.setTableStyleId(theme);
1901
1893
  this._tableThemeChanged$.next({
1902
1894
  unitId,
@@ -1945,6 +1937,7 @@ let TableManager = class TableManager extends _univerjs_core.Disposable {
1945
1937
  else if (Array.isArray(data[subUnitId])) tables = data[subUnitId];
1946
1938
  if (!tables) return;
1947
1939
  tables.forEach((table) => {
1940
+ var _table$options;
1948
1941
  const header = this.getColumnHeader(unitId, subUnitId, table.range);
1949
1942
  const tableInstance = new Table(table.id, table.name, table.range, header, table.options);
1950
1943
  tableInstance.setTableMeta(table.meta);
@@ -1961,7 +1954,8 @@ let TableManager = class TableManager extends _univerjs_core.Disposable {
1961
1954
  subUnitId,
1962
1955
  range: table.range,
1963
1956
  tableName: table.name,
1964
- tableId: table.id
1957
+ tableId: table.id,
1958
+ tableStyleId: (_table$options = table.options) === null || _table$options === void 0 ? void 0 : _table$options.tableStyleId
1965
1959
  });
1966
1960
  });
1967
1961
  });
@@ -2069,13 +2063,12 @@ const AddSheetTableCommand = {
2069
2063
  id: "sheet.command.add-table",
2070
2064
  type: _univerjs_core.CommandType.COMMAND,
2071
2065
  handler: (accessor, params) => {
2072
- var _params$id;
2073
2066
  if (!params) return false;
2074
2067
  const undoRedoService = accessor.get(_univerjs_core.IUndoRedoService);
2075
2068
  const commandService = accessor.get(_univerjs_core.ICommandService);
2076
2069
  const localeService = accessor.get(_univerjs_core.LocaleService);
2077
2070
  const tableManager = accessor.get(TableManager);
2078
- const tableId = (_params$id = params.id) !== null && _params$id !== void 0 ? _params$id : (0, _univerjs_core.generateRandomId)();
2071
+ const tableId = params.id ?? (0, _univerjs_core.generateRandomId)();
2079
2072
  const existingNamesSet = getExistingNamesSet(params.unitId, {
2080
2073
  univerInstanceService: accessor.get(_univerjs_core.IUniverInstanceService),
2081
2074
  tableManager,
@@ -2202,7 +2195,6 @@ const DeleteSheetTableCommand = {
2202
2195
  id: "sheet.command.delete-table",
2203
2196
  type: _univerjs_core.CommandType.COMMAND,
2204
2197
  handler: (accessor, params) => {
2205
- var _interceptorCommands$, _interceptorCommands$2;
2206
2198
  if (!params) return false;
2207
2199
  const undoRedoService = accessor.get(_univerjs_core.IUndoRedoService);
2208
2200
  const commandService = accessor.get(_univerjs_core.ICommandService);
@@ -2223,13 +2215,13 @@ const DeleteSheetTableCommand = {
2223
2215
  tableName: tableConfig.name
2224
2216
  }
2225
2217
  });
2226
- redos.push(...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : []);
2218
+ redos.push(...interceptorCommands.preRedos ?? []);
2227
2219
  redos.push({
2228
2220
  id: DeleteSheetTableMutation.id,
2229
2221
  params: { ...params }
2230
2222
  });
2231
2223
  redos.push(...interceptorCommands.redos);
2232
- undos.push(...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : []);
2224
+ undos.push(...interceptorCommands.preUndos ?? []);
2233
2225
  undos.push({
2234
2226
  id: AddSheetTableMutation.id,
2235
2227
  params: {
@@ -2358,7 +2350,6 @@ const SetSheetTableCommand = {
2358
2350
  id: "sheet.command.set-table-config",
2359
2351
  type: _univerjs_core.CommandType.COMMAND,
2360
2352
  handler: (accessor, params) => {
2361
- var _interceptorCommands$, _interceptorCommands$2;
2362
2353
  if (!params) return false;
2363
2354
  const { unitId, tableId, name, updateRange, rowColOperation, theme } = params;
2364
2355
  const tableManager = accessor.get(TableManager);
@@ -2417,7 +2408,7 @@ const SetSheetTableCommand = {
2417
2408
  }
2418
2409
  });
2419
2410
  const redos = [
2420
- ...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : [],
2411
+ ...interceptorCommands.preRedos ?? [],
2421
2412
  {
2422
2413
  id: SetSheetTableMutation.id,
2423
2414
  params: redoParams
@@ -2425,7 +2416,7 @@ const SetSheetTableCommand = {
2425
2416
  ...interceptorCommands.redos
2426
2417
  ];
2427
2418
  const undos = [
2428
- ...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : [],
2419
+ ...interceptorCommands.preUndos ?? [],
2429
2420
  {
2430
2421
  id: SetSheetTableMutation.id,
2431
2422
  params: undoParams
@@ -3140,7 +3131,6 @@ const SheetTableRemoveColumnAtCommand = {
3140
3131
  id: "sheet.command.table-remove-column-at",
3141
3132
  type: _univerjs_core.CommandType.COMMAND,
3142
3133
  handler: (accessor, params) => {
3143
- var _interceptorCommands$, _interceptorCommands$2;
3144
3134
  if (!params) return false;
3145
3135
  const { unitId, subUnitId, tableId, index, count = 1 } = params;
3146
3136
  if (count <= 0) return false;
@@ -3169,7 +3159,7 @@ const SheetTableRemoveColumnAtCommand = {
3169
3159
  }
3170
3160
  });
3171
3161
  const redos = [
3172
- ...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : [],
3162
+ ...interceptorCommands.preRedos ?? [],
3173
3163
  {
3174
3164
  id: SetSheetTableMutation.id,
3175
3165
  params: {
@@ -3187,7 +3177,7 @@ const SheetTableRemoveColumnAtCommand = {
3187
3177
  ...interceptorCommands.redos
3188
3178
  ];
3189
3179
  const undos = [
3190
- ...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : [],
3180
+ ...interceptorCommands.preUndos ?? [],
3191
3181
  {
3192
3182
  id: SetSheetTableMutation.id,
3193
3183
  params: {
@@ -3311,7 +3301,6 @@ const SheetTableRemoveColCommand = {
3311
3301
  id: "sheet.command.table-remove-col",
3312
3302
  type: _univerjs_core.CommandType.COMMAND,
3313
3303
  handler: (accessor, params) => {
3314
- var _interceptorCommands$3, _interceptorCommands$4;
3315
3304
  if (!params) return false;
3316
3305
  const target = (0, _univerjs_sheets.getSheetCommandTarget)(accessor.get(_univerjs_core.IUniverInstanceService), params);
3317
3306
  if (!target) return false;
@@ -3355,9 +3344,9 @@ const SheetTableRemoveColCommand = {
3355
3344
  removedColumnNames: columns.map((column) => column.displayName)
3356
3345
  }
3357
3346
  });
3358
- redos.unshift(...(_interceptorCommands$3 = interceptorCommands.preRedos) !== null && _interceptorCommands$3 !== void 0 ? _interceptorCommands$3 : []);
3347
+ redos.unshift(...interceptorCommands.preRedos ?? []);
3359
3348
  redos.push(...interceptorCommands.redos);
3360
- undos.unshift(...(_interceptorCommands$4 = interceptorCommands.preUndos) !== null && _interceptorCommands$4 !== void 0 ? _interceptorCommands$4 : []);
3349
+ undos.unshift(...interceptorCommands.preUndos ?? []);
3361
3350
  undos.push({
3362
3351
  id: SetSheetTableMutation.id,
3363
3352
  params: {
@@ -3509,7 +3498,7 @@ SheetsTableThemeController = __decorate([
3509
3498
  //#endregion
3510
3499
  //#region package.json
3511
3500
  var name = "@univerjs/sheets-table";
3512
- var version = "1.0.0-alpha.8";
3501
+ var version = "1.0.0-beta.0";
3513
3502
 
3514
3503
  //#endregion
3515
3504
  //#region src/controllers/sheet-table-formula.controller.ts
@@ -3889,7 +3878,6 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends _u
3889
3878
  const tableRange = table.getRange();
3890
3879
  if (_univerjs_core.Rectangle.intersects(tableRange, range)) {
3891
3880
  if (range.startColumn <= tableRange.startColumn && range.endColumn >= tableRange.endColumn) {
3892
- var _formulaMutations$pre, _formulaMutations$pre2;
3893
3881
  const tableInfo = table.getTableInfo();
3894
3882
  const formulaMutations = this._sheetInterceptorService.onCommandExecute({
3895
3883
  id: DELETE_SHEET_TABLE_COMMAND_ID,
@@ -3900,7 +3888,7 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends _u
3900
3888
  tableName: tableInfo.name
3901
3889
  }
3902
3890
  });
3903
- preRedos.push(...(_formulaMutations$pre = formulaMutations.preRedos) !== null && _formulaMutations$pre !== void 0 ? _formulaMutations$pre : [], ...formulaMutations.redos);
3891
+ preRedos.push(...formulaMutations.preRedos ?? [], ...formulaMutations.redos);
3904
3892
  preRedos.push({
3905
3893
  id: DeleteSheetTableMutation.id,
3906
3894
  params: {
@@ -3933,7 +3921,7 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends _u
3933
3921
  options: tableJson.options
3934
3922
  }
3935
3923
  });
3936
- undos.push(...(_formulaMutations$pre2 = formulaMutations.preUndos) !== null && _formulaMutations$pre2 !== void 0 ? _formulaMutations$pre2 : [], ...formulaMutations.undos);
3924
+ undos.push(...formulaMutations.preUndos ?? [], ...formulaMutations.undos);
3937
3925
  } else if (range.startColumn <= tableRange.startColumn && range.endColumn >= tableRange.startColumn) {
3938
3926
  const tableJson = table.toJSON();
3939
3927
  const removeColumnCount = range.endColumn - tableRange.startColumn + 1;
@@ -4071,7 +4059,6 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends _u
4071
4059
  };
4072
4060
  }
4073
4061
  _appendTableColumnFormulaMutations(redos, undos, info) {
4074
- var _formulaMutations$pre3, _formulaMutations$pre4;
4075
4062
  const removedColumnNames = info.columns.map((column) => column.displayName);
4076
4063
  if (!removedColumnNames.length) return;
4077
4064
  const formulaMutations = this._sheetInterceptorService.onCommandExecute({
@@ -4085,8 +4072,8 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends _u
4085
4072
  removedColumnNames
4086
4073
  }
4087
4074
  });
4088
- redos.splice(Math.max(redos.length - 1, 0), 0, ...(_formulaMutations$pre3 = formulaMutations.preRedos) !== null && _formulaMutations$pre3 !== void 0 ? _formulaMutations$pre3 : [], ...formulaMutations.redos);
4089
- undos.push(...(_formulaMutations$pre4 = formulaMutations.preUndos) !== null && _formulaMutations$pre4 !== void 0 ? _formulaMutations$pre4 : [], ...formulaMutations.undos);
4075
+ redos.splice(Math.max(redos.length - 1, 0), 0, ...formulaMutations.preRedos ?? [], ...formulaMutations.redos);
4076
+ undos.push(...formulaMutations.preUndos ?? [], ...formulaMutations.undos);
4090
4077
  }
4091
4078
  _initCommandListener() {
4092
4079
  this._commandService.onCommandExecuted((commandInfo) => {
@@ -4205,8 +4192,7 @@ let TableFilterController = class TableFilterController extends _univerjs_core.D
4205
4192
  this._tableFilteredOutRows.set(this._getSheetKey(unitId, subUnitId), filteredOutRows);
4206
4193
  }
4207
4194
  _getTableFilteredOutRows(unitId, subUnitId) {
4208
- var _this$_tableFilteredO;
4209
- return (_this$_tableFilteredO = this._tableFilteredOutRows.get(this._getSheetKey(unitId, subUnitId))) !== null && _this$_tableFilteredO !== void 0 ? _this$_tableFilteredO : /* @__PURE__ */ new Set();
4195
+ return this._tableFilteredOutRows.get(this._getSheetKey(unitId, subUnitId)) ?? /* @__PURE__ */ new Set();
4210
4196
  }
4211
4197
  _getSheetKey(unitId, subUnitId) {
4212
4198
  return `${unitId}|${subUnitId}`;
package/lib/es/index.js CHANGED
@@ -1292,8 +1292,7 @@ var TableFilters = class {
1292
1292
  return getTableFilterState(this._tableColumnFilterList[columnIndex], sortState);
1293
1293
  }
1294
1294
  getSortState() {
1295
- var _this$_tableSortInfo2;
1296
- return (_this$_tableSortInfo2 = this._tableSortInfo) !== null && _this$_tableSortInfo2 !== void 0 ? _this$_tableSortInfo2 : {};
1295
+ return this._tableSortInfo ?? {};
1297
1296
  }
1298
1297
  getFilterStates(range) {
1299
1298
  const states = [];
@@ -1363,8 +1362,7 @@ var TableFilters = class {
1363
1362
  };
1364
1363
  }
1365
1364
  fromJSON(json) {
1366
- var _json$tableColumnFilt;
1367
- this._tableColumnFilterList = (_json$tableColumnFilt = json.tableColumnFilterList) !== null && _json$tableColumnFilt !== void 0 ? _json$tableColumnFilt : [];
1365
+ this._tableColumnFilterList = json.tableColumnFilterList ?? [];
1368
1366
  if (json.tableSortInfo) this._tableSortInfo = json.tableSortInfo;
1369
1367
  }
1370
1368
  dispose() {
@@ -1394,9 +1392,8 @@ var Table = class {
1394
1392
  this._init(header, options);
1395
1393
  }
1396
1394
  _init(header, options) {
1397
- var _options$showHeader;
1398
1395
  this._tableStyleId = options === null || options === void 0 ? void 0 : options.tableStyleId;
1399
- this._showHeader = (_options$showHeader = options === null || options === void 0 ? void 0 : options.showHeader) !== null && _options$showHeader !== void 0 ? _options$showHeader : true;
1396
+ this._showHeader = (options === null || options === void 0 ? void 0 : options.showHeader) ?? true;
1400
1397
  this._showFooter = false;
1401
1398
  const range = this.getRange();
1402
1399
  const startColumn = range.startColumn;
@@ -1508,22 +1505,19 @@ var Table = class {
1508
1505
  this._subUnitId = subUnitId;
1509
1506
  }
1510
1507
  getTableStyleId() {
1511
- var _this$_tableStyleId;
1512
- return (_this$_tableStyleId = this._tableStyleId) !== null && _this$_tableStyleId !== void 0 ? _this$_tableStyleId : tableThemeConfig[0].name;
1508
+ return this._tableStyleId ?? tableThemeConfig[0].name;
1513
1509
  }
1514
1510
  setTableStyleId(tableStyleId) {
1515
1511
  this._tableStyleId = tableStyleId;
1516
1512
  }
1517
1513
  isShowHeader() {
1518
- var _this$_showHeader;
1519
- return (_this$_showHeader = this._showHeader) !== null && _this$_showHeader !== void 0 ? _this$_showHeader : true;
1514
+ return this._showHeader ?? true;
1520
1515
  }
1521
1516
  setShowHeader(showHeader) {
1522
1517
  this._showHeader = showHeader;
1523
1518
  }
1524
1519
  isShowFooter() {
1525
- var _this$_showFooter;
1526
- return (_this$_showFooter = this._showFooter) !== null && _this$_showFooter !== void 0 ? _this$_showFooter : false;
1520
+ return this._showFooter ?? false;
1527
1521
  }
1528
1522
  getTableInfo() {
1529
1523
  return {
@@ -1570,14 +1564,13 @@ var Table = class {
1570
1564
  };
1571
1565
  }
1572
1566
  fromJSON(json) {
1573
- var _json$options$showHea, _json$options$showFoo;
1574
1567
  this._id = json.id;
1575
1568
  this._name = json.name;
1576
1569
  this._range = json.range;
1577
1570
  this.tableMeta = json.meta;
1578
1571
  this._tableStyleId = json.options.tableStyleId || "";
1579
- this._showHeader = (_json$options$showHea = json.options.showHeader) !== null && _json$options$showHea !== void 0 ? _json$options$showHea : true;
1580
- this._showFooter = (_json$options$showFoo = json.options.showFooter) !== null && _json$options$showFoo !== void 0 ? _json$options$showFoo : true;
1572
+ this._showHeader = json.options.showHeader ?? true;
1573
+ this._showFooter = json.options.showFooter ?? true;
1581
1574
  json.columns.forEach((column) => {
1582
1575
  const tableColumn = new TableColumn(column.id, column.displayName);
1583
1576
  tableColumn.fromJSON(column);
@@ -1649,7 +1642,7 @@ let TableManager = class TableManager extends Disposable {
1649
1642
  const worksheet = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
1650
1643
  const { startRow, startColumn, endColumn } = range;
1651
1644
  const header = [];
1652
- const columnText = prefixText !== null && prefixText !== void 0 ? prefixText : "Column";
1645
+ const columnText = prefixText ?? "Column";
1653
1646
  for (let i = startColumn; i <= endColumn; i++) header.push(convertCellDataToString(worksheet === null || worksheet === void 0 ? void 0 : worksheet.getCell(startRow, i)) || getColumnName(i - startColumn + 1, columnText));
1654
1647
  return header;
1655
1648
  }
@@ -1665,7 +1658,7 @@ let TableManager = class TableManager extends Disposable {
1665
1658
  * @returns {string} The table id.
1666
1659
  */
1667
1660
  addTable(unitId, subUnitId, name, range, header, initId, options) {
1668
- const id = initId !== null && initId !== void 0 ? initId : generateRandomId();
1661
+ const id = initId ?? generateRandomId();
1669
1662
  const table = new Table(id, name, range, header || this.getColumnHeader(unitId, subUnitId, range), options);
1670
1663
  table.setSubunitId(subUnitId);
1671
1664
  this._ensureUnit(unitId).set(id, table);
@@ -1894,8 +1887,7 @@ let TableManager = class TableManager extends Disposable {
1894
1887
  if (rowColOperation) this.operationTableRowCol(unitId, tableId, rowColOperation);
1895
1888
  if (updateRange) this.updateTableRange(unitId, tableId, updateRange);
1896
1889
  if (theme) {
1897
- var _table$getTableStyleI;
1898
- const oldTheme = (_table$getTableStyleI = table.getTableStyleId()) !== null && _table$getTableStyleI !== void 0 ? _table$getTableStyleI : "default";
1890
+ const oldTheme = table.getTableStyleId() ?? "default";
1899
1891
  table.setTableStyleId(theme);
1900
1892
  this._tableThemeChanged$.next({
1901
1893
  unitId,
@@ -1944,6 +1936,7 @@ let TableManager = class TableManager extends Disposable {
1944
1936
  else if (Array.isArray(data[subUnitId])) tables = data[subUnitId];
1945
1937
  if (!tables) return;
1946
1938
  tables.forEach((table) => {
1939
+ var _table$options;
1947
1940
  const header = this.getColumnHeader(unitId, subUnitId, table.range);
1948
1941
  const tableInstance = new Table(table.id, table.name, table.range, header, table.options);
1949
1942
  tableInstance.setTableMeta(table.meta);
@@ -1960,7 +1953,8 @@ let TableManager = class TableManager extends Disposable {
1960
1953
  subUnitId,
1961
1954
  range: table.range,
1962
1955
  tableName: table.name,
1963
- tableId: table.id
1956
+ tableId: table.id,
1957
+ tableStyleId: (_table$options = table.options) === null || _table$options === void 0 ? void 0 : _table$options.tableStyleId
1964
1958
  });
1965
1959
  });
1966
1960
  });
@@ -2068,13 +2062,12 @@ const AddSheetTableCommand = {
2068
2062
  id: "sheet.command.add-table",
2069
2063
  type: CommandType.COMMAND,
2070
2064
  handler: (accessor, params) => {
2071
- var _params$id;
2072
2065
  if (!params) return false;
2073
2066
  const undoRedoService = accessor.get(IUndoRedoService);
2074
2067
  const commandService = accessor.get(ICommandService);
2075
2068
  const localeService = accessor.get(LocaleService);
2076
2069
  const tableManager = accessor.get(TableManager);
2077
- const tableId = (_params$id = params.id) !== null && _params$id !== void 0 ? _params$id : generateRandomId();
2070
+ const tableId = params.id ?? generateRandomId();
2078
2071
  const existingNamesSet = getExistingNamesSet(params.unitId, {
2079
2072
  univerInstanceService: accessor.get(IUniverInstanceService),
2080
2073
  tableManager,
@@ -2201,7 +2194,6 @@ const DeleteSheetTableCommand = {
2201
2194
  id: "sheet.command.delete-table",
2202
2195
  type: CommandType.COMMAND,
2203
2196
  handler: (accessor, params) => {
2204
- var _interceptorCommands$, _interceptorCommands$2;
2205
2197
  if (!params) return false;
2206
2198
  const undoRedoService = accessor.get(IUndoRedoService);
2207
2199
  const commandService = accessor.get(ICommandService);
@@ -2222,13 +2214,13 @@ const DeleteSheetTableCommand = {
2222
2214
  tableName: tableConfig.name
2223
2215
  }
2224
2216
  });
2225
- redos.push(...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : []);
2217
+ redos.push(...interceptorCommands.preRedos ?? []);
2226
2218
  redos.push({
2227
2219
  id: DeleteSheetTableMutation.id,
2228
2220
  params: { ...params }
2229
2221
  });
2230
2222
  redos.push(...interceptorCommands.redos);
2231
- undos.push(...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : []);
2223
+ undos.push(...interceptorCommands.preUndos ?? []);
2232
2224
  undos.push({
2233
2225
  id: AddSheetTableMutation.id,
2234
2226
  params: {
@@ -2357,7 +2349,6 @@ const SetSheetTableCommand = {
2357
2349
  id: "sheet.command.set-table-config",
2358
2350
  type: CommandType.COMMAND,
2359
2351
  handler: (accessor, params) => {
2360
- var _interceptorCommands$, _interceptorCommands$2;
2361
2352
  if (!params) return false;
2362
2353
  const { unitId, tableId, name, updateRange, rowColOperation, theme } = params;
2363
2354
  const tableManager = accessor.get(TableManager);
@@ -2416,7 +2407,7 @@ const SetSheetTableCommand = {
2416
2407
  }
2417
2408
  });
2418
2409
  const redos = [
2419
- ...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : [],
2410
+ ...interceptorCommands.preRedos ?? [],
2420
2411
  {
2421
2412
  id: SetSheetTableMutation.id,
2422
2413
  params: redoParams
@@ -2424,7 +2415,7 @@ const SetSheetTableCommand = {
2424
2415
  ...interceptorCommands.redos
2425
2416
  ];
2426
2417
  const undos = [
2427
- ...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : [],
2418
+ ...interceptorCommands.preUndos ?? [],
2428
2419
  {
2429
2420
  id: SetSheetTableMutation.id,
2430
2421
  params: undoParams
@@ -3139,7 +3130,6 @@ const SheetTableRemoveColumnAtCommand = {
3139
3130
  id: "sheet.command.table-remove-column-at",
3140
3131
  type: CommandType.COMMAND,
3141
3132
  handler: (accessor, params) => {
3142
- var _interceptorCommands$, _interceptorCommands$2;
3143
3133
  if (!params) return false;
3144
3134
  const { unitId, subUnitId, tableId, index, count = 1 } = params;
3145
3135
  if (count <= 0) return false;
@@ -3168,7 +3158,7 @@ const SheetTableRemoveColumnAtCommand = {
3168
3158
  }
3169
3159
  });
3170
3160
  const redos = [
3171
- ...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : [],
3161
+ ...interceptorCommands.preRedos ?? [],
3172
3162
  {
3173
3163
  id: SetSheetTableMutation.id,
3174
3164
  params: {
@@ -3186,7 +3176,7 @@ const SheetTableRemoveColumnAtCommand = {
3186
3176
  ...interceptorCommands.redos
3187
3177
  ];
3188
3178
  const undos = [
3189
- ...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : [],
3179
+ ...interceptorCommands.preUndos ?? [],
3190
3180
  {
3191
3181
  id: SetSheetTableMutation.id,
3192
3182
  params: {
@@ -3310,7 +3300,6 @@ const SheetTableRemoveColCommand = {
3310
3300
  id: "sheet.command.table-remove-col",
3311
3301
  type: CommandType.COMMAND,
3312
3302
  handler: (accessor, params) => {
3313
- var _interceptorCommands$3, _interceptorCommands$4;
3314
3303
  if (!params) return false;
3315
3304
  const target = getSheetCommandTarget(accessor.get(IUniverInstanceService), params);
3316
3305
  if (!target) return false;
@@ -3354,9 +3343,9 @@ const SheetTableRemoveColCommand = {
3354
3343
  removedColumnNames: columns.map((column) => column.displayName)
3355
3344
  }
3356
3345
  });
3357
- redos.unshift(...(_interceptorCommands$3 = interceptorCommands.preRedos) !== null && _interceptorCommands$3 !== void 0 ? _interceptorCommands$3 : []);
3346
+ redos.unshift(...interceptorCommands.preRedos ?? []);
3358
3347
  redos.push(...interceptorCommands.redos);
3359
- undos.unshift(...(_interceptorCommands$4 = interceptorCommands.preUndos) !== null && _interceptorCommands$4 !== void 0 ? _interceptorCommands$4 : []);
3348
+ undos.unshift(...interceptorCommands.preUndos ?? []);
3360
3349
  undos.push({
3361
3350
  id: SetSheetTableMutation.id,
3362
3351
  params: {
@@ -3508,7 +3497,7 @@ SheetsTableThemeController = __decorate([
3508
3497
  //#endregion
3509
3498
  //#region package.json
3510
3499
  var name = "@univerjs/sheets-table";
3511
- var version = "1.0.0-alpha.8";
3500
+ var version = "1.0.0-beta.0";
3512
3501
 
3513
3502
  //#endregion
3514
3503
  //#region src/controllers/sheet-table-formula.controller.ts
@@ -3888,7 +3877,6 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
3888
3877
  const tableRange = table.getRange();
3889
3878
  if (Rectangle.intersects(tableRange, range)) {
3890
3879
  if (range.startColumn <= tableRange.startColumn && range.endColumn >= tableRange.endColumn) {
3891
- var _formulaMutations$pre, _formulaMutations$pre2;
3892
3880
  const tableInfo = table.getTableInfo();
3893
3881
  const formulaMutations = this._sheetInterceptorService.onCommandExecute({
3894
3882
  id: DELETE_SHEET_TABLE_COMMAND_ID,
@@ -3899,7 +3887,7 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
3899
3887
  tableName: tableInfo.name
3900
3888
  }
3901
3889
  });
3902
- preRedos.push(...(_formulaMutations$pre = formulaMutations.preRedos) !== null && _formulaMutations$pre !== void 0 ? _formulaMutations$pre : [], ...formulaMutations.redos);
3890
+ preRedos.push(...formulaMutations.preRedos ?? [], ...formulaMutations.redos);
3903
3891
  preRedos.push({
3904
3892
  id: DeleteSheetTableMutation.id,
3905
3893
  params: {
@@ -3932,7 +3920,7 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
3932
3920
  options: tableJson.options
3933
3921
  }
3934
3922
  });
3935
- undos.push(...(_formulaMutations$pre2 = formulaMutations.preUndos) !== null && _formulaMutations$pre2 !== void 0 ? _formulaMutations$pre2 : [], ...formulaMutations.undos);
3923
+ undos.push(...formulaMutations.preUndos ?? [], ...formulaMutations.undos);
3936
3924
  } else if (range.startColumn <= tableRange.startColumn && range.endColumn >= tableRange.startColumn) {
3937
3925
  const tableJson = table.toJSON();
3938
3926
  const removeColumnCount = range.endColumn - tableRange.startColumn + 1;
@@ -4070,7 +4058,6 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
4070
4058
  };
4071
4059
  }
4072
4060
  _appendTableColumnFormulaMutations(redos, undos, info) {
4073
- var _formulaMutations$pre3, _formulaMutations$pre4;
4074
4061
  const removedColumnNames = info.columns.map((column) => column.displayName);
4075
4062
  if (!removedColumnNames.length) return;
4076
4063
  const formulaMutations = this._sheetInterceptorService.onCommandExecute({
@@ -4084,8 +4071,8 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
4084
4071
  removedColumnNames
4085
4072
  }
4086
4073
  });
4087
- redos.splice(Math.max(redos.length - 1, 0), 0, ...(_formulaMutations$pre3 = formulaMutations.preRedos) !== null && _formulaMutations$pre3 !== void 0 ? _formulaMutations$pre3 : [], ...formulaMutations.redos);
4088
- undos.push(...(_formulaMutations$pre4 = formulaMutations.preUndos) !== null && _formulaMutations$pre4 !== void 0 ? _formulaMutations$pre4 : [], ...formulaMutations.undos);
4074
+ redos.splice(Math.max(redos.length - 1, 0), 0, ...formulaMutations.preRedos ?? [], ...formulaMutations.redos);
4075
+ undos.push(...formulaMutations.preUndos ?? [], ...formulaMutations.undos);
4089
4076
  }
4090
4077
  _initCommandListener() {
4091
4078
  this._commandService.onCommandExecuted((commandInfo) => {
@@ -4204,8 +4191,7 @@ let TableFilterController = class TableFilterController extends Disposable {
4204
4191
  this._tableFilteredOutRows.set(this._getSheetKey(unitId, subUnitId), filteredOutRows);
4205
4192
  }
4206
4193
  _getTableFilteredOutRows(unitId, subUnitId) {
4207
- var _this$_tableFilteredO;
4208
- return (_this$_tableFilteredO = this._tableFilteredOutRows.get(this._getSheetKey(unitId, subUnitId))) !== null && _this$_tableFilteredO !== void 0 ? _this$_tableFilteredO : /* @__PURE__ */ new Set();
4194
+ return this._tableFilteredOutRows.get(this._getSheetKey(unitId, subUnitId)) ?? /* @__PURE__ */ new Set();
4209
4195
  }
4210
4196
  _getSheetKey(unitId, subUnitId) {
4211
4197
  return `${unitId}|${subUnitId}`;
package/lib/index.js CHANGED
@@ -1292,8 +1292,7 @@ var TableFilters = class {
1292
1292
  return getTableFilterState(this._tableColumnFilterList[columnIndex], sortState);
1293
1293
  }
1294
1294
  getSortState() {
1295
- var _this$_tableSortInfo2;
1296
- return (_this$_tableSortInfo2 = this._tableSortInfo) !== null && _this$_tableSortInfo2 !== void 0 ? _this$_tableSortInfo2 : {};
1295
+ return this._tableSortInfo ?? {};
1297
1296
  }
1298
1297
  getFilterStates(range) {
1299
1298
  const states = [];
@@ -1363,8 +1362,7 @@ var TableFilters = class {
1363
1362
  };
1364
1363
  }
1365
1364
  fromJSON(json) {
1366
- var _json$tableColumnFilt;
1367
- this._tableColumnFilterList = (_json$tableColumnFilt = json.tableColumnFilterList) !== null && _json$tableColumnFilt !== void 0 ? _json$tableColumnFilt : [];
1365
+ this._tableColumnFilterList = json.tableColumnFilterList ?? [];
1368
1366
  if (json.tableSortInfo) this._tableSortInfo = json.tableSortInfo;
1369
1367
  }
1370
1368
  dispose() {
@@ -1394,9 +1392,8 @@ var Table = class {
1394
1392
  this._init(header, options);
1395
1393
  }
1396
1394
  _init(header, options) {
1397
- var _options$showHeader;
1398
1395
  this._tableStyleId = options === null || options === void 0 ? void 0 : options.tableStyleId;
1399
- this._showHeader = (_options$showHeader = options === null || options === void 0 ? void 0 : options.showHeader) !== null && _options$showHeader !== void 0 ? _options$showHeader : true;
1396
+ this._showHeader = (options === null || options === void 0 ? void 0 : options.showHeader) ?? true;
1400
1397
  this._showFooter = false;
1401
1398
  const range = this.getRange();
1402
1399
  const startColumn = range.startColumn;
@@ -1508,22 +1505,19 @@ var Table = class {
1508
1505
  this._subUnitId = subUnitId;
1509
1506
  }
1510
1507
  getTableStyleId() {
1511
- var _this$_tableStyleId;
1512
- return (_this$_tableStyleId = this._tableStyleId) !== null && _this$_tableStyleId !== void 0 ? _this$_tableStyleId : tableThemeConfig[0].name;
1508
+ return this._tableStyleId ?? tableThemeConfig[0].name;
1513
1509
  }
1514
1510
  setTableStyleId(tableStyleId) {
1515
1511
  this._tableStyleId = tableStyleId;
1516
1512
  }
1517
1513
  isShowHeader() {
1518
- var _this$_showHeader;
1519
- return (_this$_showHeader = this._showHeader) !== null && _this$_showHeader !== void 0 ? _this$_showHeader : true;
1514
+ return this._showHeader ?? true;
1520
1515
  }
1521
1516
  setShowHeader(showHeader) {
1522
1517
  this._showHeader = showHeader;
1523
1518
  }
1524
1519
  isShowFooter() {
1525
- var _this$_showFooter;
1526
- return (_this$_showFooter = this._showFooter) !== null && _this$_showFooter !== void 0 ? _this$_showFooter : false;
1520
+ return this._showFooter ?? false;
1527
1521
  }
1528
1522
  getTableInfo() {
1529
1523
  return {
@@ -1570,14 +1564,13 @@ var Table = class {
1570
1564
  };
1571
1565
  }
1572
1566
  fromJSON(json) {
1573
- var _json$options$showHea, _json$options$showFoo;
1574
1567
  this._id = json.id;
1575
1568
  this._name = json.name;
1576
1569
  this._range = json.range;
1577
1570
  this.tableMeta = json.meta;
1578
1571
  this._tableStyleId = json.options.tableStyleId || "";
1579
- this._showHeader = (_json$options$showHea = json.options.showHeader) !== null && _json$options$showHea !== void 0 ? _json$options$showHea : true;
1580
- this._showFooter = (_json$options$showFoo = json.options.showFooter) !== null && _json$options$showFoo !== void 0 ? _json$options$showFoo : true;
1572
+ this._showHeader = json.options.showHeader ?? true;
1573
+ this._showFooter = json.options.showFooter ?? true;
1581
1574
  json.columns.forEach((column) => {
1582
1575
  const tableColumn = new TableColumn(column.id, column.displayName);
1583
1576
  tableColumn.fromJSON(column);
@@ -1649,7 +1642,7 @@ let TableManager = class TableManager extends Disposable {
1649
1642
  const worksheet = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
1650
1643
  const { startRow, startColumn, endColumn } = range;
1651
1644
  const header = [];
1652
- const columnText = prefixText !== null && prefixText !== void 0 ? prefixText : "Column";
1645
+ const columnText = prefixText ?? "Column";
1653
1646
  for (let i = startColumn; i <= endColumn; i++) header.push(convertCellDataToString(worksheet === null || worksheet === void 0 ? void 0 : worksheet.getCell(startRow, i)) || getColumnName(i - startColumn + 1, columnText));
1654
1647
  return header;
1655
1648
  }
@@ -1665,7 +1658,7 @@ let TableManager = class TableManager extends Disposable {
1665
1658
  * @returns {string} The table id.
1666
1659
  */
1667
1660
  addTable(unitId, subUnitId, name, range, header, initId, options) {
1668
- const id = initId !== null && initId !== void 0 ? initId : generateRandomId();
1661
+ const id = initId ?? generateRandomId();
1669
1662
  const table = new Table(id, name, range, header || this.getColumnHeader(unitId, subUnitId, range), options);
1670
1663
  table.setSubunitId(subUnitId);
1671
1664
  this._ensureUnit(unitId).set(id, table);
@@ -1894,8 +1887,7 @@ let TableManager = class TableManager extends Disposable {
1894
1887
  if (rowColOperation) this.operationTableRowCol(unitId, tableId, rowColOperation);
1895
1888
  if (updateRange) this.updateTableRange(unitId, tableId, updateRange);
1896
1889
  if (theme) {
1897
- var _table$getTableStyleI;
1898
- const oldTheme = (_table$getTableStyleI = table.getTableStyleId()) !== null && _table$getTableStyleI !== void 0 ? _table$getTableStyleI : "default";
1890
+ const oldTheme = table.getTableStyleId() ?? "default";
1899
1891
  table.setTableStyleId(theme);
1900
1892
  this._tableThemeChanged$.next({
1901
1893
  unitId,
@@ -1944,6 +1936,7 @@ let TableManager = class TableManager extends Disposable {
1944
1936
  else if (Array.isArray(data[subUnitId])) tables = data[subUnitId];
1945
1937
  if (!tables) return;
1946
1938
  tables.forEach((table) => {
1939
+ var _table$options;
1947
1940
  const header = this.getColumnHeader(unitId, subUnitId, table.range);
1948
1941
  const tableInstance = new Table(table.id, table.name, table.range, header, table.options);
1949
1942
  tableInstance.setTableMeta(table.meta);
@@ -1960,7 +1953,8 @@ let TableManager = class TableManager extends Disposable {
1960
1953
  subUnitId,
1961
1954
  range: table.range,
1962
1955
  tableName: table.name,
1963
- tableId: table.id
1956
+ tableId: table.id,
1957
+ tableStyleId: (_table$options = table.options) === null || _table$options === void 0 ? void 0 : _table$options.tableStyleId
1964
1958
  });
1965
1959
  });
1966
1960
  });
@@ -2068,13 +2062,12 @@ const AddSheetTableCommand = {
2068
2062
  id: "sheet.command.add-table",
2069
2063
  type: CommandType.COMMAND,
2070
2064
  handler: (accessor, params) => {
2071
- var _params$id;
2072
2065
  if (!params) return false;
2073
2066
  const undoRedoService = accessor.get(IUndoRedoService);
2074
2067
  const commandService = accessor.get(ICommandService);
2075
2068
  const localeService = accessor.get(LocaleService);
2076
2069
  const tableManager = accessor.get(TableManager);
2077
- const tableId = (_params$id = params.id) !== null && _params$id !== void 0 ? _params$id : generateRandomId();
2070
+ const tableId = params.id ?? generateRandomId();
2078
2071
  const existingNamesSet = getExistingNamesSet(params.unitId, {
2079
2072
  univerInstanceService: accessor.get(IUniverInstanceService),
2080
2073
  tableManager,
@@ -2201,7 +2194,6 @@ const DeleteSheetTableCommand = {
2201
2194
  id: "sheet.command.delete-table",
2202
2195
  type: CommandType.COMMAND,
2203
2196
  handler: (accessor, params) => {
2204
- var _interceptorCommands$, _interceptorCommands$2;
2205
2197
  if (!params) return false;
2206
2198
  const undoRedoService = accessor.get(IUndoRedoService);
2207
2199
  const commandService = accessor.get(ICommandService);
@@ -2222,13 +2214,13 @@ const DeleteSheetTableCommand = {
2222
2214
  tableName: tableConfig.name
2223
2215
  }
2224
2216
  });
2225
- redos.push(...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : []);
2217
+ redos.push(...interceptorCommands.preRedos ?? []);
2226
2218
  redos.push({
2227
2219
  id: DeleteSheetTableMutation.id,
2228
2220
  params: { ...params }
2229
2221
  });
2230
2222
  redos.push(...interceptorCommands.redos);
2231
- undos.push(...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : []);
2223
+ undos.push(...interceptorCommands.preUndos ?? []);
2232
2224
  undos.push({
2233
2225
  id: AddSheetTableMutation.id,
2234
2226
  params: {
@@ -2357,7 +2349,6 @@ const SetSheetTableCommand = {
2357
2349
  id: "sheet.command.set-table-config",
2358
2350
  type: CommandType.COMMAND,
2359
2351
  handler: (accessor, params) => {
2360
- var _interceptorCommands$, _interceptorCommands$2;
2361
2352
  if (!params) return false;
2362
2353
  const { unitId, tableId, name, updateRange, rowColOperation, theme } = params;
2363
2354
  const tableManager = accessor.get(TableManager);
@@ -2416,7 +2407,7 @@ const SetSheetTableCommand = {
2416
2407
  }
2417
2408
  });
2418
2409
  const redos = [
2419
- ...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : [],
2410
+ ...interceptorCommands.preRedos ?? [],
2420
2411
  {
2421
2412
  id: SetSheetTableMutation.id,
2422
2413
  params: redoParams
@@ -2424,7 +2415,7 @@ const SetSheetTableCommand = {
2424
2415
  ...interceptorCommands.redos
2425
2416
  ];
2426
2417
  const undos = [
2427
- ...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : [],
2418
+ ...interceptorCommands.preUndos ?? [],
2428
2419
  {
2429
2420
  id: SetSheetTableMutation.id,
2430
2421
  params: undoParams
@@ -3139,7 +3130,6 @@ const SheetTableRemoveColumnAtCommand = {
3139
3130
  id: "sheet.command.table-remove-column-at",
3140
3131
  type: CommandType.COMMAND,
3141
3132
  handler: (accessor, params) => {
3142
- var _interceptorCommands$, _interceptorCommands$2;
3143
3133
  if (!params) return false;
3144
3134
  const { unitId, subUnitId, tableId, index, count = 1 } = params;
3145
3135
  if (count <= 0) return false;
@@ -3168,7 +3158,7 @@ const SheetTableRemoveColumnAtCommand = {
3168
3158
  }
3169
3159
  });
3170
3160
  const redos = [
3171
- ...(_interceptorCommands$ = interceptorCommands.preRedos) !== null && _interceptorCommands$ !== void 0 ? _interceptorCommands$ : [],
3161
+ ...interceptorCommands.preRedos ?? [],
3172
3162
  {
3173
3163
  id: SetSheetTableMutation.id,
3174
3164
  params: {
@@ -3186,7 +3176,7 @@ const SheetTableRemoveColumnAtCommand = {
3186
3176
  ...interceptorCommands.redos
3187
3177
  ];
3188
3178
  const undos = [
3189
- ...(_interceptorCommands$2 = interceptorCommands.preUndos) !== null && _interceptorCommands$2 !== void 0 ? _interceptorCommands$2 : [],
3179
+ ...interceptorCommands.preUndos ?? [],
3190
3180
  {
3191
3181
  id: SetSheetTableMutation.id,
3192
3182
  params: {
@@ -3310,7 +3300,6 @@ const SheetTableRemoveColCommand = {
3310
3300
  id: "sheet.command.table-remove-col",
3311
3301
  type: CommandType.COMMAND,
3312
3302
  handler: (accessor, params) => {
3313
- var _interceptorCommands$3, _interceptorCommands$4;
3314
3303
  if (!params) return false;
3315
3304
  const target = getSheetCommandTarget(accessor.get(IUniverInstanceService), params);
3316
3305
  if (!target) return false;
@@ -3354,9 +3343,9 @@ const SheetTableRemoveColCommand = {
3354
3343
  removedColumnNames: columns.map((column) => column.displayName)
3355
3344
  }
3356
3345
  });
3357
- redos.unshift(...(_interceptorCommands$3 = interceptorCommands.preRedos) !== null && _interceptorCommands$3 !== void 0 ? _interceptorCommands$3 : []);
3346
+ redos.unshift(...interceptorCommands.preRedos ?? []);
3358
3347
  redos.push(...interceptorCommands.redos);
3359
- undos.unshift(...(_interceptorCommands$4 = interceptorCommands.preUndos) !== null && _interceptorCommands$4 !== void 0 ? _interceptorCommands$4 : []);
3348
+ undos.unshift(...interceptorCommands.preUndos ?? []);
3360
3349
  undos.push({
3361
3350
  id: SetSheetTableMutation.id,
3362
3351
  params: {
@@ -3508,7 +3497,7 @@ SheetsTableThemeController = __decorate([
3508
3497
  //#endregion
3509
3498
  //#region package.json
3510
3499
  var name = "@univerjs/sheets-table";
3511
- var version = "1.0.0-alpha.8";
3500
+ var version = "1.0.0-beta.0";
3512
3501
 
3513
3502
  //#endregion
3514
3503
  //#region src/controllers/sheet-table-formula.controller.ts
@@ -3888,7 +3877,6 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
3888
3877
  const tableRange = table.getRange();
3889
3878
  if (Rectangle.intersects(tableRange, range)) {
3890
3879
  if (range.startColumn <= tableRange.startColumn && range.endColumn >= tableRange.endColumn) {
3891
- var _formulaMutations$pre, _formulaMutations$pre2;
3892
3880
  const tableInfo = table.getTableInfo();
3893
3881
  const formulaMutations = this._sheetInterceptorService.onCommandExecute({
3894
3882
  id: DELETE_SHEET_TABLE_COMMAND_ID,
@@ -3899,7 +3887,7 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
3899
3887
  tableName: tableInfo.name
3900
3888
  }
3901
3889
  });
3902
- preRedos.push(...(_formulaMutations$pre = formulaMutations.preRedos) !== null && _formulaMutations$pre !== void 0 ? _formulaMutations$pre : [], ...formulaMutations.redos);
3890
+ preRedos.push(...formulaMutations.preRedos ?? [], ...formulaMutations.redos);
3903
3891
  preRedos.push({
3904
3892
  id: DeleteSheetTableMutation.id,
3905
3893
  params: {
@@ -3932,7 +3920,7 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
3932
3920
  options: tableJson.options
3933
3921
  }
3934
3922
  });
3935
- undos.push(...(_formulaMutations$pre2 = formulaMutations.preUndos) !== null && _formulaMutations$pre2 !== void 0 ? _formulaMutations$pre2 : [], ...formulaMutations.undos);
3923
+ undos.push(...formulaMutations.preUndos ?? [], ...formulaMutations.undos);
3936
3924
  } else if (range.startColumn <= tableRange.startColumn && range.endColumn >= tableRange.startColumn) {
3937
3925
  const tableJson = table.toJSON();
3938
3926
  const removeColumnCount = range.endColumn - tableRange.startColumn + 1;
@@ -4070,7 +4058,6 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
4070
4058
  };
4071
4059
  }
4072
4060
  _appendTableColumnFormulaMutations(redos, undos, info) {
4073
- var _formulaMutations$pre3, _formulaMutations$pre4;
4074
4061
  const removedColumnNames = info.columns.map((column) => column.displayName);
4075
4062
  if (!removedColumnNames.length) return;
4076
4063
  const formulaMutations = this._sheetInterceptorService.onCommandExecute({
@@ -4084,8 +4071,8 @@ let SheetTableRefRangeController = class SheetTableRefRangeController extends Di
4084
4071
  removedColumnNames
4085
4072
  }
4086
4073
  });
4087
- redos.splice(Math.max(redos.length - 1, 0), 0, ...(_formulaMutations$pre3 = formulaMutations.preRedos) !== null && _formulaMutations$pre3 !== void 0 ? _formulaMutations$pre3 : [], ...formulaMutations.redos);
4088
- undos.push(...(_formulaMutations$pre4 = formulaMutations.preUndos) !== null && _formulaMutations$pre4 !== void 0 ? _formulaMutations$pre4 : [], ...formulaMutations.undos);
4074
+ redos.splice(Math.max(redos.length - 1, 0), 0, ...formulaMutations.preRedos ?? [], ...formulaMutations.redos);
4075
+ undos.push(...formulaMutations.preUndos ?? [], ...formulaMutations.undos);
4089
4076
  }
4090
4077
  _initCommandListener() {
4091
4078
  this._commandService.onCommandExecuted((commandInfo) => {
@@ -4204,8 +4191,7 @@ let TableFilterController = class TableFilterController extends Disposable {
4204
4191
  this._tableFilteredOutRows.set(this._getSheetKey(unitId, subUnitId), filteredOutRows);
4205
4192
  }
4206
4193
  _getTableFilteredOutRows(unitId, subUnitId) {
4207
- var _this$_tableFilteredO;
4208
- return (_this$_tableFilteredO = this._tableFilteredOutRows.get(this._getSheetKey(unitId, subUnitId))) !== null && _this$_tableFilteredO !== void 0 ? _this$_tableFilteredO : /* @__PURE__ */ new Set();
4194
+ return this._tableFilteredOutRows.get(this._getSheetKey(unitId, subUnitId)) ?? /* @__PURE__ */ new Set();
4209
4195
  }
4210
4196
  _getSheetKey(unitId, subUnitId) {
4211
4197
  return `${unitId}|${subUnitId}`;
package/lib/umd/index.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-formula`,`@univerjs/sheets`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsTable={},e.UniverCore,e.UniverEngineFormula,e.UniverSheets,e.rxjs))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=function(e){return e.None=`none`,e.String=`string`,e.Number=`number`,e.Date=`date`,e.Bool=`bool`,e.Checkbox=`checkbox`,e.List=`list`,e}({}),o=function(e){return e.manual=`manual`,e.condition=`condition`,e}({}),s=function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),c=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.GreaterThan=`greaterThan`,e.GreaterThanOrEqual=`greaterThanOrEqual`,e.LessThan=`lessThan`,e.LessThanOrEqual=`lessThanOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Above=`above`,e.Below=`below`,e.TopN=`topN`,e}({}),l=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),u=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.After=`after`,e.AfterOrEqual=`afterOrEqual`,e.Before=`before`,e.BeforeOrEqual=`beforeOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Today=`today`,e.Yesterday=`yesterday`,e.Tomorrow=`tomorrow`,e.ThisWeek=`thisWeek`,e.LastWeek=`lastWeek`,e.NextWeek=`nextWeek`,e.ThisMonth=`thisMonth`,e.LastMonth=`lastMonth`,e.NextMonth=`nextMonth`,e.ThisQuarter=`thisQuarter`,e.LastQuarter=`lastQuarter`,e.NextQuarter=`nextQuarter`,e.ThisYear=`thisYear`,e.LastYear=`lastYear`,e.NextYear=`nextYear`,e.YearToDate=`yearToDate`,e.Quarter=`quarter`,e.Month=`month`,e.M1=`m1`,e.M2=`m2`,e.M3=`m3`,e.M4=`m4`,e.M5=`m5`,e.M6=`m6`,e.M7=`m7`,e.M8=`m8`,e.M9=`m9`,e.M10=`m10`,e.M11=`m11`,e.M12=`m12`,e.Q1=`q1`,e.Q2=`q2`,e.Q3=`q3`,e.Q4=`q4`,e}({}),d=function(e){return e[e.FilteredSortNone=1]=`FilteredSortNone`,e[e.FilteredSortAsc=2]=`FilteredSortAsc`,e[e.FilteredSortDesc=3]=`FilteredSortDesc`,e[e.FilterNoneSortNone=4]=`FilterNoneSortNone`,e[e.FilterNoneSortAsc=5]=`FilterNoneSortAsc`,e[e.FilterNoneSortDesc=6]=`FilterNoneSortDesc`,e}({}),f=function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function p(e,t){return`${t} ${e}`}let m=`TRUE`,h=`FALSE`,g=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function _(e){if(e){let{v:n,t:r,p:i}=e;return i?g(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?m:h:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?m:h:n==null?``:String(n)}return``}function v(e,t){if(e!=null)switch(t){case`asc`:return 2;case`desc`:return 3;default:return 1}else switch(t){case`asc`:return 5;case`desc`:return 6;default:return 4}}function y(e){return e?e.filterType===`condition`:!1}function b(e){return e?e.filterType===`manual`:!1}function x(e,n){let{univerInstanceService:r,tableManager:i,definedNamesService:a}=n,o=new Set,s=r==null?void 0:r.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);s&&s.getSheets().forEach(e=>{o.add(e.getName().toLowerCase())});let c=i==null?void 0:i.getTableList(e);c&&c.length>0&&c.forEach(e=>{o.add(e.name.toLowerCase())});let l=a==null?void 0:a.getDefinedNameMap(e);return l&&Object.values(l).forEach(e=>{o.add(e.name.toLowerCase())}),o}let S={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},C={},w={headerRowStyle:{bd:{t:S}},headerColumnStyle:{bd:{l:S}},lastColumnStyle:{bd:{r:S}},lastRowStyle:{bd:{b:S}}},T=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:S}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:S}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:S}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:S}};return t},E=[[[`#6280F9`,`#FFFFFF`,`#EEF2FF`,`#DCE4FF`],[`#fff`]],[[`#16BDCA`,`#FFFFFF`,`#EDFAFA`,`#AFECEF`],[`#000`]],[[`#31C48D`,`#FFFFFF`,`#F3FAF7`,`#BCF0DA`],[`#fff`]],[[`#AC94FA`,`#FFFFFF`,`#F6F5FF`,`#EDEBFE`],[`#fff`]],[[`#F17EBB`,`#FFFFFF`,`#FDF2F8`,`#FCE8F3`],[`#fff`]],[[`#F98080`,`#FFFFFF`,`#FDF2F2`,`#FDE8E8`],[`#fff`]]].map((e,t)=>{let[n,r]=e,[i,a,o,s]=n,[c]=r;return{name:`table-default-${t}`,style:{headerRowStyle:{bg:{rgb:i},cl:{rgb:c},bd:{t:S}},headerColumnStyle:{bd:{l:S}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:S}},lastColumnStyle:{bd:{r:S}}}}});function D(e){"@babel/helpers - typeof";return D=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},D(e)}function ee(e,t){if(D(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(D(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function te(e){var t=ee(e,`string`);return D(t)==`symbol`?t:t+``}function O(e,t,n){return(t=te(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var k=class{constructor(e,t){O(this,`dataType`,void 0),O(this,`id`,void 0),O(this,`displayName`,void 0),O(this,`formula`,void 0),O(this,`meta`,void 0),O(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=`string`,this.formula=``,this.meta={},this.style={}}getMeta(){return this.meta}setMeta(e){this.meta=e}getDisplayName(){return this.displayName}toJSON(){return{id:this.id,displayName:this.displayName,dataType:this.dataType,formula:this.formula,meta:this.meta,style:this.style}}fromJSON(e){this.id=e.id,this.displayName=e.displayName,this.dataType=e.dataType,this.formula=e.formula,this.meta=e.meta,this.style=e.style}};let ne=`SHEET_TABLE_PLUGIN`,A=`SHEET_TABLE`,re=`table-custom`,ie=`__UNIVER_TABLE_FILTER_EMPTY__`,ae=e=>e.getMonth()<=2,oe=e=>{let t=e.getMonth();return t>2&&t<=5},se=e=>{let t=e.getMonth();return t>5&&t<=8},ce=e=>{let t=e.getMonth();return t>8&&t<=11},le=e=>e.getMonth()===0,ue=e=>e.getMonth()===1,de=e=>e.getMonth()===2,fe=e=>e.getMonth()===3,pe=e=>e.getMonth()===4,me=e=>e.getMonth()===5,he=e=>e.getMonth()===6,ge=e=>e.getMonth()===7,_e=e=>e.getMonth()===8,ve=e=>e.getMonth()===9,ye=e=>e.getMonth()===10,be=e=>e.getMonth()===11,xe=(e,t=new Date)=>e.toDateString()===t.toDateString(),Se=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},Ce=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()-1),e.toDateString()===n.toDateString()},j=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1),r=new Date(e);return r.setDate(n),r},we=10080*60*1e3,Te=(e,t=new Date)=>{let n=j(e),r=j(t);return n.toDateString()===r.toDateString()},Ee=(e,t=new Date)=>{let n=j(e),r=new Date(j(t).getTime()+we);return n.toDateString()===r.toDateString()},De=(e,t=new Date)=>{let n=j(e),r=new Date(j(t).getTime()-we);return n.toDateString()===r.toDateString()},Oe=(e,t=new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),ke=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},Ae=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(n.getMonth()+1,1);let r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},je=(e,t=new Date)=>{let n=ke(t),r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},M=e=>{let t=new Date(e);t.setHours(0,0,0,0),t.setDate(1);let n=t.getMonth();return t.setMonth(n-n%3),t},Me=(e,t=new Date)=>{let n=M(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Ne=(e,t=new Date)=>{let n=M(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=new Date(r);i.setMonth(i.getMonth()+3,0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Pe=(e,t=new Date)=>{let n=M(t),r=new Date(n);r.setMonth(r.getMonth()-3);let i=new Date(n);i.setDate(0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Fe=(e,t=new Date)=>e.getFullYear()===t.getFullYear(),Ie=(e,t=new Date)=>e.getFullYear()===t.getFullYear()+1,Le=(e,t=new Date)=>e.getFullYear()===t.getFullYear()-1,Re=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(0,1);let r=e.getTime();return r>=n.getTime()&&r<t.getTime()};function ze(e){switch(e.compareType){case`equal`:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case`notEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case`after`:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case`before`:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case`afterOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case`beforeOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case`between`:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case`notBetween`:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case`today`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>xe(e,t)}case`yesterday`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ce(e,t)}case`tomorrow`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Se(e,t)}case`thisWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Te(e,t)}case`lastWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>De(e,t)}case`nextWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ee(e,t)}case`thisMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Oe(e,t)}case`lastMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>je(e,t)}case`nextMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ae(e,t)}case`thisQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Me(e,t)}case`lastQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Pe(e,t)}case`nextQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ne(e,t)}case`thisYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Fe(e,t)}case`lastYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Le(e,t)}case`nextYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ie(e,t)}case`yearToDate`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Re(e,t)}case`m1`:return le;case`m2`:return ue;case`m3`:return de;case`m4`:return fe;case`m5`:return pe;case`m6`:return me;case`m7`:return he;case`m8`:return ge;case`m9`:return _e;case`m10`:return ve;case`m11`:return ye;case`m12`:return be;case`q1`:return ae;case`q2`:return oe;case`q3`:return se;case`q4`:return ce;default:throw Error(`Unsupported compare type`)}}var Be=class{constructor(){O(this,`heap`,void 0),this.heap=[]}swap(e,t){let n=this.heap[e];this.heap[e]=this.heap[t],this.heap[t]=n}getParentIndex(e){return Math.floor((e-1)/2)}getLeftIndex(e){return e*2+1}getRightIndex(e){return e*2+2}size(){return this.heap.length}peek(){return this.heap[0]}include(e){return this.heap.includes(e)}},Ve=class extends Be{constructor(){super()}shiftUp(e){if(e===0)return;let t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){let t=this.getLeftIndex(e),n=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[n]<this.heap[e]&&(this.swap(n,e),this.shiftDown(n))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}};let He=(e,t)=>{let n=new Ve;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},Ue=(e,t)=>e>t,We=(e,t)=>e<t,Ge=(e,t,n)=>He(e,t).includes(n);function Ke(e,t){switch(e.compareType){case`equal`:{let t=Number(e.expectedValue);return e=>e===t}case`notEqual`:{let t=Number(e.expectedValue);return e=>e!==t}case`greaterThan`:{let t=Number(e.expectedValue);return e=>e>t}case`greaterThanOrEqual`:{let t=Number(e.expectedValue);return e=>e>=t}case`lessThan`:{let t=Number(e.expectedValue);return e=>e<t}case`lessThanOrEqual`:{let t=Number(e.expectedValue);return e=>e<=t}case`between`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e>=i&&e<=r:e=>e>=r&&e<=i}case`notBetween`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e<i||e>r:e=>e<r||e>i}case`above`:{let e=t.average;return t=>Ue(t,e)}case`below`:{let e=t.average;return t=>We(t,e)}case`topN`:{let n=t.list,r=Number(e.expectedValue);return e=>Ge(n,r,e)}}}let qe=(e,n)=>t.regexp.createFromWildcard(n).test(e),Je=(e,n)=>!t.regexp.createFromWildcard(n).test(e),Ye=(e,n)=>t.regexp.createFromWildcard(`*${n}*`).test(e),Xe=(e,n)=>!t.regexp.createFromWildcard(`*${n}*`).test(e),Ze=(e,n)=>t.regexp.createFromWildcard(`${n}*`).test(e),Qe=(e,n)=>t.regexp.createFromWildcard(`*${n}`).test(e);function $e(e){switch(e.compareType){case`equal`:return t=>qe(t,e.expectedValue);case`notEqual`:return t=>Je(t,e.expectedValue);case`contains`:return t=>Ye(t,e.expectedValue);case`notContains`:return t=>Xe(t,e.expectedValue);case`startsWith`:return t=>Ze(t,e.expectedValue);case`endsWith`:return t=>Qe(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let et=new Set([`above`,`below`,`topN`]);function tt(e){return et.has(e)}function nt(e,t){if(tt(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case`date`:return ze(e.filterInfo);case`number`:return Ke(e.filterInfo,t);case`string`:return $e(e.filterInfo);default:return e=>!0}}function N(e,t,n,r){switch(r){case`date`:{let r=at(e,t,n);return r?ot(r):null}case`number`:return at(e,t,n);default:return it(e,t,n)}}let rt=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function it(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return rt(s);if(typeof a==`string`)return o===t.CellValueType.BOOLEAN?a.toUpperCase():a;if(typeof a==`number`)return o===t.CellValueType.BOOLEAN?a?`TRUE`:`FALSE`:a;if(typeof a==`boolean`)return a?`TRUE`:`FALSE`;if(a!==void 0)return String(a)}function at(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;return s?null:typeof a==`string`&&o===t.CellValueType.NUMBER?Number(e.getCellRaw(n,r).v):Number(a)}function ot(e){let t=new Date(Date.UTC(1900,0,1,0,0,0)),n=new Date(Date.UTC(1900,1,28,0,0,0)),r=e-1;return r>(n.getTime()-t.getTime())/(1e3*3600*24)&&--r,r<0&&(r=e),new Date(t.getTime()+1e3*3600*24*r)}var st=class{constructor(){O(this,`_tableColumnFilterList`,void 0),O(this,`_tableSortInfo`,void 0),O(this,`_filterOutRows`,void 0),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}getColumnFilter(e){return this._tableColumnFilterList[e]}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:`none`;return v(this._tableColumnFilterList[e],n)}getSortState(){var e;return(e=this._tableSortInfo)==null?{}:e}getFilterStates(e){let t=[],{startColumn:n,endColumn:r}=e;for(let e=n;e<=r;e++)t.push(this.getFilterState(e-n));return t}getFilterOutRows(){return this._filterOutRows}doFilter(e,t){let n=new Set,r=this._tableColumnFilterList;for(let i=0;i<r.length;i++)r[i]&&this.doColumnFilter(e,t,i,n);return this._filterOutRows=n,n}doColumnFilter(e,t,n,r){let i=this._tableColumnFilterList[n];if(i&&e){let{startRow:a,endRow:o,startColumn:s}=t,c=s+n,l=this.getExecuteFunc(e,t,n,i);for(let t=a;t<=o;t++){let n=y(i)?i.filterInfo.conditionType:`string`,a=N(e,t,c,n);a===null&&!l(a)?r.add(t):l(N(e,t,c,n))||r.add(t)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,l=0;for(let t=r;t<=i;t++){let n=N(e,t,o,`number`);n!==null&&(s.push(n),c++,l+=n)}return{list:s,average:c>0?l/c:0}}getExecuteFunc(e,t,n,r){if(r.filterType===`manual`){let e=new Set(r.values);return t=>t==null?e.has(ie):e.has(t)}else if(r.filterType===`condition`)return nt(r,tt(r.filterInfo.compareType)?this._getNumberCalculatedOptions(e,t,n):void 0);else return e=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){var t;this._tableColumnFilterList=(t=e.tableColumnFilterList)==null?[]:t,e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[]}},ct=class{constructor(e,t,n,r,i={}){O(this,`_id`,void 0),O(this,`_name`,void 0),O(this,`_tableStyleId`,void 0),O(this,`_showHeader`,void 0),O(this,`_showFooter`,void 0),O(this,`_range`,void 0),O(this,`_columns`,new Map),O(this,`_columnOrder`,[]),O(this,`tableMeta`,void 0),O(this,`_tableFilters`,void 0),O(this,`_subUnitId`,void 0),this._id=e,this._range=n,this._name=t,this._tableFilters=new st,this._init(r,i)}_init(e,n){var r;this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(r=n==null?void 0:n.showHeader)==null||r,this._showFooter=!1;let i=this.getRange(),a=i.startColumn,o=i.endColumn;for(let r=a;r<=o;r++){var s;let i=r-a,o,c;(s=n.columns)!=null&&s[i]?(o=n.columns[i].id,c=n.columns[i].displayName):(o=(0,t.generateRandomId)(),c=e[r-a]);let l=new k(o,c);this._columns.set(o,l),this._columnOrder.push(o)}n.filters&&n.filters.forEach((e,t)=>{e&&this._tableFilters.setColumnFilter(t,e)})}setTableFilterColumn(e,t){this._tableFilters.setColumnFilter(e,t)}getTableFilterColumn(e){return this._tableFilters.getColumnFilter(e)}getTableFilters(){return this._tableFilters}getTableFilterRange(){let e=this.getRange(),t=this.isShowHeader(),n=this.isShowFooter(),{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return{startRow:t?r+1:r,startColumn:i,endRow:n?a-1:a,endColumn:o}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(e=>{let t=new k(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)})}getColumnsCount(){return this._columnOrder.length}insertColumn(e,t){let n=t.id;this._columns.set(n,t),this._columnOrder.splice(e,0,n)}removeColumn(e){let t=this._columnOrder[e];this._columns.delete(t),this._columnOrder.splice(e,1)}setTableMeta(e){this.tableMeta=e}getTableMeta(){return this.tableMeta}getColumn(e){return this._columns.get(e)}getTableColumnByIndex(e){let t=this._columnOrder[e];return this.getColumn(t)}getColumnNameByIndex(e){var t;let n=this._columnOrder[e];return((t=this.getColumn(n))==null?void 0:t.getDisplayName())||``}getId(){return this._id}getRangeInfo(){return{...this._range}}getRange(){return{...this._range}}setRange(e){this._range=e}setDisplayName(e){this._name=e}getDisplayName(){return this._name}getSubunitId(){return this._subUnitId}setSubunitId(e){this._subUnitId=e}getTableStyleId(){var e;return(e=this._tableStyleId)==null?E[0].name:e}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){var e;return(e=this._showHeader)==null||e}setShowHeader(e){this._showHeader=e}isShowFooter(){var e;return(e=this._showFooter)!=null&&e}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,columns:this._columnOrder.map(e=>this._columns.get(e).toJSON())}}getTableConfig(){return{name:this.getDisplayName(),range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter},tableStyleId:this._tableStyleId}}getFilterStates(e){return this._tableFilters.getFilterStates(e)}toJSON(){let e=[];return this._columns.forEach(t=>{e.push(t.toJSON())}),{id:this._id,name:this._name,range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){var t,n;this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=(t=e.options.showHeader)==null||t,this._showFooter=(n=e.options.showFooter)==null||n,e.columns.forEach(e=>{let t=new k(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new st,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}};function P(e,t){return function(n,r){t(n,r,e)}}function F(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let I=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._localeService=t,O(this,`_tableMap`,void 0),O(this,`_tableAdd$`,new i.Subject),O(this,`tableAdd$`,this._tableAdd$.asObservable()),O(this,`_tableDelete$`,new i.Subject),O(this,`tableDelete$`,this._tableDelete$.asObservable()),O(this,`_tableNameChanged$`,new i.Subject),O(this,`tableNameChanged$`,this._tableNameChanged$.asObservable()),O(this,`_tableRangeChanged$`,new i.Subject),O(this,`tableRangeChanged$`,this._tableRangeChanged$.asObservable()),O(this,`_tableThemeChanged$`,new i.Subject),O(this,`tableThemeChanged$`,this._tableThemeChanged$.asObservable()),O(this,`_tableFilterChanged$`,new i.Subject),O(this,`tableFilterChanged$`,this._tableFilterChanged$.asObservable()),O(this,`_tableInitStatus`,new i.BehaviorSubject(!1)),O(this,`tableInitStatus$`,this._tableInitStatus.asObservable()),this._tableMap=new Map}_ensureUnit(e){return this._tableMap.has(e)||this._tableMap.set(e,new Map),this._tableMap.get(e)}getColumnHeader(e,t,n,r){var i;let a=(i=this._univerInstanceService.getUnit(e))==null?void 0:i.getSheetBySheetId(t),{startRow:o,startColumn:s,endColumn:c}=n,l=[],u=r==null?`Column`:r;for(let e=s;e<=c;e++)l.push(_(a==null?void 0:a.getCell(o,e))||p(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o==null?(0,t.generateRandomId)():o,l=new ct(c,r,i,a||this.getColumnHeader(e,n,i),s);if(l.setSubunitId(n),this._ensureUnit(e).set(c,l),this._tableAdd$.next({unitId:e,subUnitId:n,range:i,tableName:r,tableId:c,tableStyleId:s==null?void 0:s.tableStyleId}),s!=null&&s.filters){var u;let t=(u=this._univerInstanceService.getUnit(e))==null?void 0:u.getSheetBySheetId(n);l.getTableFilters().doFilter(t,i),this._tableFilterChanged$.next({unitId:e,subUnitId:n,tableId:c})}return c}addFilter(e,t,n,r){let i=this.getTable(e,t);if(i){i.getTableFilters().setColumnFilter(n,r);let a=i.getSubunitId();this._tableFilterChanged$.next({unitId:e,subUnitId:a,tableId:t})}}getFilterRanges(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push(e.getRange())}),r}getSheetFilterRangeWithState(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push({tableId:e.getId(),range:e.getRange(),states:e.getFilterStates(e.getRange())})}),r}getTable(e,t){let n=this._tableMap.get(e);if(n)return n.get(t)}getUniqueTableName(e,t){let n=this._tableMap.get(e);if(!n)return t;let r=new Set(Array.from(n.values()).map(e=>e.getDisplayName())),i=t,a=1;for(;r.has(i);)i=`${t}-${a}`,a++;return i}getTableById(e,t){return this.getTable(e,t)}getTableList(e){let t=this._tableMap.get(e);return t?Array.from(t.values()).map(t=>({...t.getTableInfo(),unitId:e})):[]}getTablesBySubunitId(e,t){let n=this._tableMap.get(e);return n?Array.from(n.values()).filter(e=>e.getSubunitId()===t):[]}getTablesInfoBySubunitId(e,t){return this.getTablesBySubunitId(e,t).map(e=>({id:e.getId(),name:e.getDisplayName(),range:e.getRange()}))}deleteTable(e,t){let n=this._tableMap.get(e),r=n==null?void 0:n.get(t);if(r){let i=r.getTableInfo(),a=r.getTableStyleId();n==null||n.delete(t);let{subUnitId:o,range:s,name:c}=i;this._tableDelete$.next({unitId:e,subUnitId:o,tableId:t,range:s,tableName:c,tableStyleId:a})}}operationTableRowCol(e,n,r){let i=this.getTableById(e,n);if(!i)return;let{operationType:a,rowColType:o,index:s,count:c,columnsJson:l}=r,u=i.getRange(),d={...u};if(a===`insert`){if(o===`row`)d.endRow+=c;else if(o===`column`){d.endColumn+=c;for(let e=0;e<c;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new k((0,t.generateRandomId)(),p(i.getColumnsCount()+1+e,n));l!=null&&l[e]&&r.fromJSON(l[e]);let a=s+e-u.startColumn;i.insertColumn(a,r)}}}else if(o===`row`)d.endRow-=c;else if(o===`column`){d.endColumn-=c;for(let e=c-1;e>=0;e--){let t=s+e-u.startColumn;i.removeColumn(t)}}i.setRange(d),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:d,oldRange:u})}updateTableRange(e,n,r){let i=this.getTableById(e,n);if(!i)return;let a=i.getRange(),o=r.newRange;if(o.startColumn<a.startColumn){let e=a.startColumn-o.startColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.startColumn,new k((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}else if(o.startColumn>a.startColumn){let e=o.startColumn-a.startColumn;for(let t=e-1;t>=0;t--){let e=o.startColumn+t-a.startColumn;i.removeColumn(e)}}if(o.endColumn<a.endColumn){let e=a.endColumn-o.endColumn;for(let t=e-1;t>=0;t--){let e=o.endColumn+t-a.startColumn;i.removeColumn(e)}}else if(o.endColumn>a.endColumn){let e=o.endColumn-a.endColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.endColumn,new k((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}i.setRange(o),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:o,oldRange:a})}setTableByConfig(e,t,n){let r=this._tableMap.get(e),i=r==null?void 0:r.get(t);if(!i)return;let a=i.getSubunitId(),{name:o,updateRange:s,rowColOperation:c,theme:l,options:u}=n;if(o){let n=i.getDisplayName();i.setDisplayName(o),this._tableNameChanged$.next({unitId:e,subUnitId:a,tableId:t,tableName:o,oldTableName:n})}if(c&&this.operationTableRowCol(e,t,c),s&&this.updateTableRange(e,t,s),l){var d;let n=(d=i.getTableStyleId())==null?`default`:d;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}u&&u.showHeader!==void 0&&i.setShowHeader(u.showHeader)}toJSON(e){let t={},n=this._tableMap.get(e);return n&&n.forEach(n=>{let r=n.getSubunitId();if(!t[r]){let n=new Set;this.getTablesBySubunitId(e,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),t[r]={tables:[],tableFilteredOutRows:Array.from(n)}}t[r].tables.push(n.toJSON())}),t}fromJSON(e,t){let n=this._ensureUnit(e);Object.keys(t).forEach(i=>{let a=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:i});if(!a)return;let o=a.worksheet,s;t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),s&&s.forEach(t=>{let r=this.getColumnHeader(e,i,t.range),a=new ct(t.id,t.name,t.range,r,t.options);if(a.setTableMeta(t.meta),t.columns.length&&a.setColumns(t.columns),t.filters){let e=a.getTableFilters();e.fromJSON(t.filters),e.doFilter(o,a.getTableFilterRange())}a.setSubunitId(i),n.set(t.id,a),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id})})}),this._tableInitStatus.next(!0)}deleteUnitId(e){let t=this._tableMap.get(e);t&&t.forEach(e=>e.dispose()),this._tableMap.delete(e)}dispose(){super.dispose(),this._tableAdd$.complete(),this._tableDelete$.complete(),this._tableNameChanged$.complete(),this._tableRangeChanged$.complete(),this._tableThemeChanged$.complete(),this._tableFilterChanged$.complete(),this._tableInitStatus.complete(),this._tableMap.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._tableMap.clear()}};I=F([P(0,t.IUniverInstanceService),P(1,(0,t.Inject)(t.LocaleService))],I);let L=class extends t.Disposable{constructor(e){super(),this._tableManager=e}getTableInfo(e,t){let n=this._tableManager.getTable(e,t);if(n)return{unitId:e,...n.getTableInfo()}}getTableList(e){return this._tableManager.getTableList(e)}addTable(e,t,n,r,i,a,o){return this._tableManager.addTable(e,t,n,r,i,a,o)}deleteTable(e,t,n){this._tableManager.deleteTable(e,n)}getTableMeta(e,t){var n;return(n=this._tableManager.getTable(e,t))==null?void 0:n.getTableMeta()}setTableMeta(e,t,n){var r;(r=this._tableManager.getTable(e,t))==null||r.setTableMeta(n)}getTableColumnMeta(e,t,n){var r;return(r=this._tableManager.getTable(e,t))==null||(r=r.getTableColumnByIndex(n))==null?void 0:r.getMeta()}selTableColumnMeta(e,t,n,r){var i;(i=this._tableManager.getTable(e,t))==null||(i=i.getTableColumnByIndex(n))==null||i.setMeta(r)}addFilter(e,t,n,r){this._tableManager.addFilter(e,t,n,r)}getCellValueWithConditionType(e,t,n,r=`string`){return N(e,t,n,r)}};L=F([P(0,(0,t.Inject)(I))],L);let R={id:`sheet.mutation.add-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,subUnitId:i,name:a,range:o,header:s,options:c}=t;return e.get(L).addTable(r,i,a,o,s,n,c),!0}},z={id:`sheet.mutation.delete-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,tableId:i}=t;return e.get(L).deleteTable(n,r,i),!0}},lt={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{var i;if(!r)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(t.LocaleService),c=e.get(I),l=(i=r.id)==null?(0,t.generateRandomId)():i,u=x(r.unitId,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:c,definedNamesService:e.get(n.IDefinedNamesService)}),d=r.name;if(!d||!(0,t.customNameCharacterCheck)(d.toLowerCase(),u)){let e=s.t(`sheets-table.tablePrefix`),t=c.getTableList(r.unitId).length+1;for(let n of u)if(n.startsWith(e.toLowerCase())){let r=Number(n.slice(e.length));Number.isInteger(r)&&r>=t&&(t=r+1)}d=`${e}${t}`}let f=[],p=[],{unitId:m,subUnitId:h,range:g}=r,_=c.getColumnHeader(m,h,g,s.t(`sheets-table.columnPrefix`));return f.push({id:R.id,params:{...r,tableId:l,name:d,header:_}}),p.push({id:z.id,params:{tableId:l,unitId:r.unitId}}),(0,t.sequenceExecute)(f,o).result?(a.pushUndoRedo({unitID:r.unitId,undoMutations:p,redoMutations:f}),!0):!1}},B={id:`sheet.mutation.set-sheet-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,tableId:r,config:i}=t;return e.get(I).setTableByConfig(n,r,i),!0}},ut={id:`sheet.command.add-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(I),{unitId:a,tableId:o,themeStyle:s}=n,c=[],l=[],u=i.getTableById(a,o);if(!u)return!1;let d=u.getSubunitId();return c.push({id:r.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleJSON:s.toJson()}}),c.push({id:B.id,params:{unitId:a,subUnitId:d,tableId:o,config:{theme:s.getName()}}}),l.push({id:B.id,params:{unitId:a,subUnitId:d,tableId:o,config:{themeStyle:u.getTableStyleId()}}}),l.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleName:s.getName()}}),(0,t.sequenceExecute)(c,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0):!1}},V={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{var i,a;if(!n)return!1;let o=e.get(t.IUndoRedoService),s=e.get(t.ICommandService),c=e.get(I),l=e.get(t.ILogService),u=[],d=[],f=c.getTable(n.unitId,n.tableId),p=f==null?void 0:f.toJSON();if(!p)return l.error(`[TableManager]: Table not found`),!1;let m=e.get(r.SheetInterceptorService).onCommandExecute({id:V.id,params:{...n,tableName:p.name}});return u.push(...(i=m.preRedos)==null?[]:i),u.push({id:z.id,params:{...n}}),u.push(...m.redos),d.push(...(a=m.preUndos)==null?[]:a),d.push({id:R.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:p.name,range:p.range,options:p.options}}),d.push(...m.undos),(0,t.sequenceExecute)(u,s).result?(o.pushUndoRedo({unitID:n.unitId,undoMutations:d,redoMutations:u}),!0):!1}},dt={id:`sheet.command.remove-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,tableId:a,themeName:o}=n,s=e.get(I),c=e.get(r.SheetRangeThemeModel),l=s.getTableById(i,a);if(!l)return!1;let u=l.getSubunitId(),d=[],f=[],p=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(`table-default`)),m=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(re)).find(e=>e!==o);m||(m=p[0]),d.push({id:B.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:m}}}),d.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleName:o}});let h=c.getDefaultRangeThemeStyle(o);return h&&(f.push({id:r.AddRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleJSON:h.toJson()}}),f.push({id:B.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:o}}})),(0,t.sequenceExecute)(d,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0):!1}};function ft(e,n){let r=e.trim();if(!r)return{valid:!1,reason:`empty`};let i=new Set(Array.from(n,e=>e.toLowerCase()));return(0,t.customNameCharacterCheck)(r.toLowerCase(),i)?{valid:!0}:{valid:!1,reason:`invalid`}}let H={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,i)=>{var a,o;if(!i)return!1;let{unitId:s,tableId:c,name:l,updateRange:u,rowColOperation:d,theme:f}=i,p=e.get(I),m=p.getTableById(s,c);if(!m)return!1;let h={},g={},_=e.get(t.LocaleService),v=x(s,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:p,definedNamesService:e.get(n.IDefinedNamesService)});if(l){if(!ft(l,v).valid)return e.get(t.ILogService).warn(_.t(`sheets-table.tableNameError`)),!1;h.name=m.getDisplayName(),g.name=l}d&&(h.rowColOperation={operationType:d.operationType===`insert`?`delete`:`insert`,rowColType:d.rowColType,index:d.index,count:d.count},g.rowColOperation=d),u&&(h.updateRange={newRange:m.getRange()},g.updateRange=u),f&&(h.theme=m.getTableStyleId(),g.theme=f);let y={unitId:s,subUnitId:m.getSubunitId(),tableId:c,config:g},b={unitId:s,subUnitId:m.getSubunitId(),tableId:c,config:h},S=e.get(r.SheetInterceptorService).onCommandExecute({id:H.id,params:{...i,oldTableName:h.name}}),C=[...(a=S.preRedos)==null?[]:a,{id:B.id,params:y},...S.redos],w=[...(o=S.preUndos)==null?[]:o,{id:B.id,params:b},...S.undos],T=e.get(t.ICommandService);return C.forEach(e=>{T.executeCommand(e.id,e.params)}),e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:w,redoMutations:C}),!0}},U={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t;return e.get(I).addFilter(r,n,i,a),!0}},pt={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.IUndoRedoService),i=e.get(t.ICommandService),a=n.tableId||(0,t.generateRandomId)(),o=[],s=[];return o.push({id:U.id,params:{...n,tableId:a}}),s.push({id:U.id,params:{...n,tableId:a,tableFilter:void 0}}),(0,t.sequenceExecute)(o,i).result?(r.pushUndoRedo({unitID:n.unitId,undoMutations:s,redoMutations:o}),!0):!1}},W=class extends t.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetInterceptorService=t,this._tableManager=n,this._resourceManagerService=r,O(this,`_tableRangeRTree`,new Map),this._initSnapshot(),this._initSheetChange(),this.registerTableChangeEvent(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(e,n,r){let i=this._ensureTableRangeRTree(e),a=Array.from(i.bulkSearch([{unitId:e,sheetId:n,range:r}])).find(n=>{let i=this._tableManager.getTable(e,String(n));return i?t.Rectangle.contains(i.getRange(),r):!1});if(a)return this._tableManager.getTable(e,String(a))}_ensureTableRangeRTree(e){return this._tableRangeRTree.has(e)||this._tableRangeRTree.set(e,new t.RTree),this._tableRangeRTree.get(e)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._ensureTableRangeRTree(r).insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,oldRange:a}=e,o=this._ensureTableRangeRTree(r);o.remove({unitId:r,sheetId:i,id:n,range:{...a}}),o.insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._ensureTableRangeRTree(n).remove({unitId:n,sheetId:r,id:t,range:{...i}})}))}registerTableHeaderInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._ensureTableRangeRTree(a);if((e==null?void 0:e.v)===void 0&&s){let c=Array.from(s.bulkSearch([{unitId:a,sheetId:o,range:{startColumn:i,endColumn:i,startRow:r,endRow:r}}]));if(c.length>0){let o=this._tableManager.getTable(a,c[0]);if(o){let a=o.getRange(),s=i-a.startColumn;if(a.startRow===r){let r=o.getColumnNameByIndex(s);return(!e||e===t.rawData)&&(e={...t.rawData}),e.v=r,n(e)}}}}return n(e)}}))}_toJson(e){return this._tableManager.toJSON(e)}_fromJSON(e,t){return this._tableManager.fromJSON(e,t)}_deleteUnitId(e){this._tableManager.deleteUnitId(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>JSON.stringify(this._toJson(e)),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:ne,onLoad:(e,t)=>{this._fromJSON(e,t)},onUnLoad:e=>{this._deleteUnitId(e)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId||this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=r.subUnitId||((n=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:n.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._tableManager.getTablesBySubunitId(i,a);if(o.length===0)return{redos:[],undos:[]};let s=[],c=[];return o.forEach(e=>{let t=e.toJSON();s.push({id:z.id,params:{unitId:i,subUnitId:a,tableId:t.id}}),c.push({id:R.id,params:{unitId:i,subUnitId:a,name:t.name,range:t.range,tableId:t.id,options:{...t.options,columns:t.columns,filters:t.filters.tableColumnFilterList}}})}),{redos:s,undos:c}}else if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._tableManager.getTablesBySubunitId(n,r);if(a.length===0)return{redos:[],undos:[]};let o=[],s=[];return a.forEach(e=>{let r=e.toJSON(),a=(0,t.generateRandomId)();o.push({id:R.id,params:{unitId:n,subUnitId:i,name:r.name,range:{...r.range,sheetId:i},tableId:a,options:{...r.options,columns:r.columns,filters:r.filters.tableColumnFilterList}}}),s.push({id:z.id,params:{unitId:n,subUnitId:i,tableId:a}})}),{redos:o,undos:s}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}};W=F([P(0,(0,t.Inject)(t.IUniverInstanceService)),P(1,(0,t.Inject)(r.SheetInterceptorService)),P(2,(0,t.Inject)(I)),P(3,(0,t.Inject)(t.IResourceManagerService))],W);function G(e,n,r,i){return(0,t.sequenceExecute)(r,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:i,redoMutations:r}),!0):!1}let mt={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let n=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService));if(!n)return!1;let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=n,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;e.get(I);let l=c[0].range,u=e.get(W).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endRow-l.startRow+1,f=a.getRowCount()-1,p=a.getCellMatrix().getDataRange().endRow,m=[],h=[];if(f-p<d)m.push({id:r.InsertRowMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...u.getRange(),endRow:u.getRange().endRow+d}}}}}),h.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:u.getRange()}}}}),h.push({id:r.RemoveRowMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}});else{let t={...u.getRange()};m.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...t,endRow:t.endRow+d}}}}}),h.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:p,startColumn:t.startColumn,endColumn:t.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow+d,endRow:p+d,startColumn:t.startColumn,endColumn:t.endColumn}});n&&(m.push(...n.redos),h.push(...n.undos))}return(0,t.sequenceExecute)(m,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},ht={id:`sheet.command.table-insert-row-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:i,subUnitId:a});if(!l)return!1;let u=e.get(I).getTableById(i,o);if(!u||u.getSubunitId()!==a)return!1;let d=u.getRange();if(s<=d.startRow||s>d.endRow+1)return!1;let f=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{updateRange:{newRange:{...d,endRow:d.endRow+c}}}}}],p=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{updateRange:{newRange:{...d}}}}}],m=l.worksheet.getCellMatrix().getDataRange().endRow,h=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:s,endRow:m,startColumn:d.startColumn,endColumn:d.endColumn}},{unitId:i,subUnitId:a,range:{startRow:s+c,endRow:m+c,startColumn:d.startColumn,endColumn:d.endColumn}});return h&&(f.push(...h.redos),p.push(...h.undos)),G(e,i,f,p)}},gt={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService));if(!n)return!1;let{worksheet:i,unitId:a,subUnitId:o}=n,s=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!s.length||s.length>1)return!1;let c=s[0].range,l=e.get(W).getContainerTableWithRange(a,o,c);if(!l)return!1;let u=c.endColumn-c.startColumn+1,d=i.getColumnCount()-1,f=i.getCellMatrix().getDataRange().endColumn,p=[],m=[];if(d-f<u)p.push({id:r.InsertColMutation.id,params:{unitId:a,subUnitId:o,range:{...c}}}),p.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:u}}}}),m.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:u}}}}),m.push({id:r.RemoveColMutation.id,params:{unitId:a,subUnitId:o,range:{...c}}});else{let t=l.getRange();p.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:u}}}}),m.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:u}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:a,subUnitId:o,range:{startRow:t.startRow,endRow:t.endRow,startColumn:c.startColumn,endColumn:f}},{unitId:a,subUnitId:o,range:{startRow:t.startRow,endRow:t.endRow,startColumn:c.startColumn+u,endColumn:f+u}});n&&(p.push(...n.redos),m.push(...n.undos))}return(0,t.sequenceExecute)(p,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:m,redoMutations:p}),!0):!1}},_t={id:`sheet.command.table-insert-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:i,subUnitId:a});if(!l)return!1;let u=e.get(I).getTableById(i,o);if(!u||u.getSubunitId()!==a)return!1;let d=u.getRange();if(s<d.startColumn||s>d.endColumn+1)return!1;let f=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c}}}}],p=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}}],m=l.worksheet.getCellMatrix().getDataRange().endColumn;if(s<=m){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:d.startRow,endRow:d.endRow,startColumn:s,endColumn:m}},{unitId:i,subUnitId:a,range:{startRow:d.startRow,endRow:d.endRow,startColumn:s+c,endColumn:m+c}});t&&(f.push(...t.redos),p.push(...t.undos))}return G(e,i,f,p)}},K={id:`sheet.command.table-remove-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{var i,a;if(!n)return!1;let{unitId:o,subUnitId:s,tableId:c,index:l,count:u=1}=n;if(u<=0)return!1;let d=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:o,subUnitId:s});if(!d)return!1;let f=e.get(I).getTableById(o,c);if(!f||f.getSubunitId()!==s)return!1;let p=f.getRange();if(l<p.startColumn||l+u-1>p.endColumn||u>=p.endColumn-p.startColumn+1)return!1;let m=f.getTableInfo(),h=[],g=l-p.startColumn;for(let e=0;e<u;e++){let t=m.columns[g+e];t&&h.push(t)}let _=e.get(r.SheetInterceptorService).onCommandExecute({id:K.id,params:{...n,tableName:m.name,removedColumnNames:h.map(e=>e.displayName)}}),v=[...(i=_.preRedos)==null?[]:i,{id:B.id,params:{unitId:o,subUnitId:s,tableId:c,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l,count:u}}}},..._.redos],y=[...(a=_.preUndos)==null?[]:a,{id:B.id,params:{unitId:o,subUnitId:s,tableId:c,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l,count:u,columnsJson:h}}}},..._.undos],b=d.worksheet.getCellMatrix().getDataRange().endColumn;if(l+u<=b){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:p.startRow,endRow:p.endRow,startColumn:l+u,endColumn:b}},{unitId:o,subUnitId:s,range:{startRow:p.startRow,endRow:p.endRow,startColumn:l,endColumn:b-u}});t&&(v.push(...t.redos),y.push(...t.undos))}return G(e,o,v,y)}},vt={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o}=i,s=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!s.length||s.length>1)return!1;let c=s[0].range,l=e.get(W).getContainerTableWithRange(a,o,c);if(!l)return!1;let u=c.endRow-c.startRow+1,d=[],f=[],p=l.getRange();d.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{updateRange:{newRange:{...p,endRow:p.endRow-u}}}}}),f.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{updateRange:{newRange:{...p}}}}});let m=i.worksheet.getCellMatrix().getDataRange().endRow,h=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:a,subUnitId:o,range:{startRow:c.endRow+1,endRow:m,startColumn:p.startColumn,endColumn:p.endColumn}},{unitId:a,subUnitId:o,range:{startRow:c.startRow,endRow:m-u,startColumn:p.startColumn,endColumn:p.endColumn}});return h&&(d.push(...h.redos),f.push(...h.undos)),(0,t.sequenceExecute)(d,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:f,redoMutations:d}),!0):!1}},q={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{var i,a;if(!n)return!1;let o=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),n);if(!o)return!1;let{workbook:s,unitId:c,subUnitId:l}=o;e.get(I);let u=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!u.length||u.length>1)return!1;let d=u[0].range,f=e.get(W).getContainerTableWithRange(c,l,d);if(!f)return!1;let p=d.endColumn-d.startColumn+1,m=[],h=[],g=f.getRange();m.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:f.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:p}}}});let _=f.getTableInfo(),v=[],y=d.startColumn-g.startColumn;for(let e=0;e<p;e++){let t=_.columns[y+e];t&&v.push(t)}let b=e.get(r.SheetInterceptorService).onCommandExecute({id:q.id,params:{...n,tableName:_.name,removedColumnNames:v.map(e=>e.displayName)}});m.unshift(...(i=b.preRedos)==null?[]:i),m.push(...b.redos),h.unshift(...(a=b.preUndos)==null?[]:a),h.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:f.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:d.startColumn,count:p,columnsJson:v}}}}),h.push(...b.undos);let x=o.worksheet.getCellMatrix().getDataRange().endColumn,S=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:c,subUnitId:l,range:{startRow:g.startRow,endRow:g.endRow,startColumn:d.endColumn+1,endColumn:x}},{unitId:c,subUnitId:l,range:{startRow:g.startRow,endRow:g.endRow,startColumn:d.startColumn,endColumn:x-p}});return S&&(m.push(...S.redos),h.push(...S.undos)),(0,t.sequenceExecute)(m,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:c,undoMutations:h,redoMutations:m}),!0):!1}},J=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=n,this._configService=r,O(this,`_defaultThemeIndex`,0),O(this,`_allThemes`,[]),this._initUserTableTheme(),this.registerTableChangeEvent(),this._initDefaultTableTheme()}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,tableStyleId:a}=e,o=this._tableManager.getTable(r,n),s=a||this._allThemes[this._defaultThemeIndex].name;o.setTableStyleId(s),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:r,subUnitId:i,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,oldRange:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r),s=o.getTableStyleId();s||(s=this._allThemes[this._defaultThemeIndex].name,o.setTableStyleId(s)),this._sheetRangeThemeService.removeRangeThemeRule(s,{unitId:i,subUnitId:a,range:{...n}}),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:i,subUnitId:a,range:{...t}})})),this.disposeWithMe(this._tableManager.tableThemeChanged$.subscribe(e=>{let{theme:t,oldTheme:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r).getRange();this._sheetRangeThemeService.removeRangeThemeRule(n,{unitId:i,subUnitId:a,range:{...o}}),this._sheetRangeThemeService.registerRangeThemeStyle(t,{unitId:i,subUnitId:a,range:{...o}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{range:t,unitId:n,subUnitId:r,tableStyleId:i=this._allThemes[this._defaultThemeIndex].name}=e;this._sheetRangeThemeService.removeRangeThemeRule(i,{unitId:n,subUnitId:r,range:{...t}})}))}_initUserTableTheme(){let e=this._configService.getConfig(`sheets-table.config`)||{},t=e.defaultThemeIndex||0,n=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=n.concat(E)}_initDefaultTableTheme(){for(let e=0;e<this._allThemes.length;e++){let{name:t,style:n}=this._allThemes[e],i=new r.RangeThemeStyle(t,n);this._sheetRangeThemeModel.registerDefaultRangeTheme(i)}}dispose(){super.dispose(),this._allThemes=[],this._defaultThemeIndex=0}};J=F([P(0,(0,t.Inject)(I)),P(1,(0,t.Inject)(r.SheetRangeThemeService)),P(2,(0,t.Inject)(r.SheetRangeThemeModel)),P(3,t.IConfigService)],J);var yt=`@univerjs/sheets-table`,bt=`1.0.0-alpha.8`;let Y=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._commandService=t,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{unitId:t,subUnitId:r,tableName:i,range:a}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:i,reference:{sheetId:r,range:a}},{onlyLocal:!0})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(e=>{let{tableId:t,unitId:r,oldTableName:i}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:r,tableName:i},{onlyLocal:!0});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a,i)}))}_updateSuperTable(e,t,r){let i=t.getTableInfo(),a=i.name,o=i.columns,s=new Map;o.forEach((e,t)=>{s.set(e.displayName,t)}),this._commandService.executeCommand(n.SetSuperTableMutation.id,{unitId:e,tableName:a,oldTableName:r,reference:{range:i.range,sheetId:i.subUnitId,titleMap:s}},{onlyLocal:!0})}};Y=F([P(0,(0,t.Inject)(I)),P(1,t.ICommandService)],Y);let X=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._exclusiveRangeService=t,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(r,i,A,n),this._exclusiveRangeService.addExclusiveRange(r,i,A,[{range:{...t},groupId:n}])})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._exclusiveRangeService.addExclusiveRange(n,r,A,[{range:{...i},groupId:t}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(n,r,A,t)}))}};X=F([P(0,(0,t.Inject)(I)),P(1,(0,t.Inject)(r.IExclusiveRangeService))],X);let Z=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._tableManager=a,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({priority:-1,getMutations(t){let n={redos:[],undos:[]},{id:i,params:a}=t;switch(i){case r.InsertRowCommand.id:return e._generateTableMutationWithInsertRow(a);case r.InsertColCommand.id:return e._generateTableMutationWithInsertCol(a);case r.RemoveRowCommand.id:return e._generateTableMutationWithRemoveRow(a);case r.RemoveColCommand.id:return e._generateTableMutationWithRemoveCol(a)}return n}})}_generateTableMutationWithInsertRow(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startRow>r.startRow&&c.startRow<=r.endRow){let i=c.endRow-c.startRow+1;n.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+i}}}}}),t.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:n}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startColumn>r.startColumn&&c.startColumn<=r.endColumn){let r=c.endColumn-c.startColumn+1;n.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:r}}}}),t.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:r}}}})}}),{undos:t,redos:n}}_generateTableMutationWithRemoveRow(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endRow-d.startRow+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d))if(d.startRow<=r.startRow&&d.endRow>=r.startRow){a.push({id:z.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let t=e.toJSON();n.push({id:R.id,params:{unitId:c,subUnitId:l,tableId:t.id,name:t.name,range:t.range,options:t.options}})}else d.startRow>r.startRow&&d.startRow<=r.endRow?(i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow-f}}}}}),n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})):d.startRow<r.endRow&&d.endRow>=r.endRow&&(i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:d.startRow-1}}}}}),n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}}))}),{undos:n,redos:i,preRedos:a,preUndos:o}}_generateTableMutationWithRemoveCol(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endColumn-d.startColumn+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startColumn<=r.startColumn&&d.endColumn>=r.endColumn){var s,u;let t=e.getTableInfo(),r=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.delete-table`,params:{unitId:c,subUnitId:l,tableId:e.getId(),tableName:t.name}});a.push(...(s=r.preRedos)==null?[]:s,...r.redos),a.push({id:z.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let d=e.toJSON(),{startRow:f,startColumn:m,endColumn:h}=d.range,g=this._univerInstanceService.getUnit(c),v=g==null?void 0:g.getSheetBySheetId(l);if(!v)return{undos:n,redos:i,preRedos:a,preUndos:o};let y=[];for(let e=m;e<=h;e++)y.push(_(v==null?void 0:v.getCell(f,e))||p(e-m+1,this._localeService.t(`sheets-table.columnPrefix`)));n.push({id:R.id,params:{unitId:c,subUnitId:l,tableId:d.id,name:d.name,header:y,range:d.range,options:d.options}}),n.push(...(u=r.preUndos)==null?[]:u,...r.undos)}else if(d.startColumn<=r.startColumn&&d.endColumn>=r.startColumn){let t=e.toJSON(),a=d.endColumn-r.startColumn+1;i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:r.startColumn,count:a}}}});let s=[];for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn>r.endColumn){let t=e.toJSON(),a=r.endColumn-d.startColumn+1;i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:a}}}});let s=[],u=d.startColumn-r.startColumn;for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t+u);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn<=r.endColumn){let t=e.toJSON();i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:f}}}});let a=[],s=d.startColumn-r.startColumn;for(let t=0;t<f;t++){let n=e.getTableColumnByIndex(t+s);n&&a.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:a})}}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_getDeleteTableMutation(e,t,n){return{id:z.id,params:{unitId:e,subUnitId:t,tableId:n}}}_getAddTableMutation(e,t,n){let r=n.columns.map(e=>e.displayName);return{id:R.id,params:{unitId:e,subUnitId:t,tableId:n.id,name:n.name,header:r,range:n.range,options:{...n.options,columns:n.columns,filters:n.filters.tableColumnFilterList}}}}_appendTableColumnFormulaMutations(e,t,n){var r,i;let a=n.columns.map(e=>e.displayName);if(!a.length)return;let o=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.table-remove-col`,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,tableName:n.tableName,range:n.range,removedColumnNames:a}});e.splice(Math.max(e.length-1,0),0,...(r=o.preRedos)==null?[]:r,...o.redos),t.push(...(i=o.preUndos)==null?[]:i,...o.undos)}_initCommandListener(){this._commandService.onCommandExecuted(e=>{if(e.id===r.InsertRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<=n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow+i,endRow:n.endRow+i}})})}else if(e.id===r.InsertColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<=n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn+i,endColumn:n.endColumn+i}})})}else if(e.id===r.RemoveRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow-i,endRow:n.endRow-i}})})}else if(e.id===r.RemoveColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn-i,endColumn:n.endColumn-i}})})}})}};Z=F([P(0,(0,t.Inject)(t.ICommandService)),P(1,(0,t.Inject)(r.RefRangeService)),P(2,(0,t.Inject)(t.IUniverInstanceService)),P(3,(0,t.Inject)(t.Injector)),P(4,(0,t.Inject)(r.SheetInterceptorService)),P(5,(0,t.Inject)(I)),P(6,(0,t.Inject)(t.LocaleService))],Z);let Q=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._zebraCrossingCacheController=r,O(this,`_tableFilteredOutRows`,new Map),O(this,`_subscription`,null),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._initFilteredOutRows()}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this._getTableFilteredOutRows(t.unitId,t.subUnitId).has(t.row);return r?!0:n(r)}}))}_initFilteredOutRows(){this._tableManager.tableInitStatus$.pipe((0,i.filter)(e=>e),(0,i.switchMap)(()=>this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET)),(0,i.filter)(e=>e!=null),(0,i.switchMap)(e=>e.activeSheet$),(0,i.filter)(e=>e!=null)).subscribe(()=>{let e=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!e)return;let{unitId:t,subUnitId:n}=e;this._refreshTableFilteredOutRows(t,n)})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{var t;let{unitId:n,subUnitId:r,tableId:i}=e,a=(t=this._univerInstanceService.getUnit(n))==null?void 0:t.getSheetBySheetId(r),o=this._tableManager.getTable(n,i);!a||!o||(o.getTableFilters().doFilter(a,o.getTableFilterRange()),this._refreshTableFilteredOutRows(n,r),this._zebraCrossingCacheController.updateZebraCrossingCache(n,r))}))}_refreshTableFilteredOutRows(e,t){let n=new Set;this._tableManager.getTablesBySubunitId(e,t).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),this._tableFilteredOutRows.set(this._getSheetKey(e,t),n)}_getTableFilteredOutRows(e,t){var n;return(n=this._tableFilteredOutRows.get(this._getSheetKey(e,t)))==null?new Set:n}_getSheetKey(e,t){return`${e}|${t}`}dispose(){var e;super.dispose(),(e=this._subscription)==null||e.unsubscribe()}};Q=F([P(0,(0,t.Inject)(I)),P(1,(0,t.Inject)(r.SheetInterceptorService)),P(2,(0,t.Inject)(t.IUniverInstanceService)),P(3,(0,t.Inject)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=C,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},C,this._config);this._configService.setConfig(`sheets-table.config`,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[I],[J],[W],[L],[Q],[X],[Z],[Y]])}onReady(){(0,t.touchDependencies)(this._injector,[[Y],[X],[Z],[J],[W],[L],[Q]]),(0,t.touchDependencies)(this._injector,[[I]])}_initRegisterCommand(){[lt,R,V,z,U,pt,H,B,ut,dt,mt,gt,ht,_t,vt,q,K].forEach(e=>this._commandService.registerCommand(e))}};O($,`pluginName`,ne),O($,`packageName`,yt),O($,`version`,bt),O($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=F([(0,t.DependentOn)(r.UniverSheetsPlugin),P(1,(0,t.Inject)(t.Injector)),P(2,t.IConfigService),P(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=lt,e.AddSheetTableMutation=R,e.AddTableThemeCommand=ut,e.DeleteSheetTableCommand=V,e.DeleteSheetTableMutation=z,e.RemoveTableThemeCommand=dt,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=re,e.SetSheetTableCommand=H,e.SetSheetTableFilterCommand=pt,e.SetSheetTableFilterMutation=U,e.SetSheetTableMutation=B,e.SheetTableInsertColCommand=gt,e.SheetTableInsertColumnAtCommand=_t,e.SheetTableInsertRowAtCommand=ht,e.SheetTableInsertRowCommand=mt,e.SheetTableRemoveColCommand=q,e.SheetTableRemoveColumnAtCommand=K,e.SheetTableRemoveRowCommand=vt,Object.defineProperty(e,"SheetTableService",{enumerable:!0,get:function(){return L}}),e.SheetsTableButtonStateEnum=d,Object.defineProperty(e,"SheetsTableController",{enumerable:!0,get:function(){return W}}),e.SheetsTableSortStateEnum=f,Object.defineProperty(e,"SheetsTableThemeController",{enumerable:!0,get:function(){return J}}),e.TABLE_FILTER_EMPTY_VALUE=ie,e.TableColumnDataTypeEnum=a,e.TableColumnFilterTypeEnum=o,e.TableConditionTypeEnum=s,e.TableDateCompareTypeEnum=u,Object.defineProperty(e,"TableManager",{enumerable:!0,get:function(){return I}}),e.TableNumberCompareTypeEnum=c,e.TableStringCompareTypeEnum=l,Object.defineProperty(e,"UniverSheetsTablePlugin",{enumerable:!0,get:function(){return $}}),e.customEmptyThemeWithBorderStyle=w,e.getExistingNamesSet=x,e.isConditionFilter=y,e.isManualTableFilter=b,e.processStyleWithBorderStyle=T,e.validateSheetTableName=ft});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-formula`,`@univerjs/sheets`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsTable={},e.UniverCore,e.UniverEngineFormula,e.UniverSheets,e.rxjs))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=function(e){return e.None=`none`,e.String=`string`,e.Number=`number`,e.Date=`date`,e.Bool=`bool`,e.Checkbox=`checkbox`,e.List=`list`,e}({}),o=function(e){return e.manual=`manual`,e.condition=`condition`,e}({}),s=function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),c=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.GreaterThan=`greaterThan`,e.GreaterThanOrEqual=`greaterThanOrEqual`,e.LessThan=`lessThan`,e.LessThanOrEqual=`lessThanOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Above=`above`,e.Below=`below`,e.TopN=`topN`,e}({}),l=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),u=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.After=`after`,e.AfterOrEqual=`afterOrEqual`,e.Before=`before`,e.BeforeOrEqual=`beforeOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Today=`today`,e.Yesterday=`yesterday`,e.Tomorrow=`tomorrow`,e.ThisWeek=`thisWeek`,e.LastWeek=`lastWeek`,e.NextWeek=`nextWeek`,e.ThisMonth=`thisMonth`,e.LastMonth=`lastMonth`,e.NextMonth=`nextMonth`,e.ThisQuarter=`thisQuarter`,e.LastQuarter=`lastQuarter`,e.NextQuarter=`nextQuarter`,e.ThisYear=`thisYear`,e.LastYear=`lastYear`,e.NextYear=`nextYear`,e.YearToDate=`yearToDate`,e.Quarter=`quarter`,e.Month=`month`,e.M1=`m1`,e.M2=`m2`,e.M3=`m3`,e.M4=`m4`,e.M5=`m5`,e.M6=`m6`,e.M7=`m7`,e.M8=`m8`,e.M9=`m9`,e.M10=`m10`,e.M11=`m11`,e.M12=`m12`,e.Q1=`q1`,e.Q2=`q2`,e.Q3=`q3`,e.Q4=`q4`,e}({}),d=function(e){return e[e.FilteredSortNone=1]=`FilteredSortNone`,e[e.FilteredSortAsc=2]=`FilteredSortAsc`,e[e.FilteredSortDesc=3]=`FilteredSortDesc`,e[e.FilterNoneSortNone=4]=`FilterNoneSortNone`,e[e.FilterNoneSortAsc=5]=`FilterNoneSortAsc`,e[e.FilterNoneSortDesc=6]=`FilterNoneSortDesc`,e}({}),f=function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function p(e,t){return`${t} ${e}`}let m=`TRUE`,h=`FALSE`,g=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function _(e){if(e){let{v:n,t:r,p:i}=e;return i?g(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?m:h:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?m:h:n==null?``:String(n)}return``}function v(e,t){if(e!=null)switch(t){case`asc`:return 2;case`desc`:return 3;default:return 1}else switch(t){case`asc`:return 5;case`desc`:return 6;default:return 4}}function y(e){return e?e.filterType===`condition`:!1}function b(e){return e?e.filterType===`manual`:!1}function x(e,n){let{univerInstanceService:r,tableManager:i,definedNamesService:a}=n,o=new Set,s=r==null?void 0:r.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);s&&s.getSheets().forEach(e=>{o.add(e.getName().toLowerCase())});let c=i==null?void 0:i.getTableList(e);c&&c.length>0&&c.forEach(e=>{o.add(e.name.toLowerCase())});let l=a==null?void 0:a.getDefinedNameMap(e);return l&&Object.values(l).forEach(e=>{o.add(e.name.toLowerCase())}),o}let S={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},C={},ee={headerRowStyle:{bd:{t:S}},headerColumnStyle:{bd:{l:S}},lastColumnStyle:{bd:{r:S}},lastRowStyle:{bd:{b:S}}},te=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:S}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:S}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:S}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:S}};return t},w=[[[`#6280F9`,`#FFFFFF`,`#EEF2FF`,`#DCE4FF`],[`#fff`]],[[`#16BDCA`,`#FFFFFF`,`#EDFAFA`,`#AFECEF`],[`#000`]],[[`#31C48D`,`#FFFFFF`,`#F3FAF7`,`#BCF0DA`],[`#fff`]],[[`#AC94FA`,`#FFFFFF`,`#F6F5FF`,`#EDEBFE`],[`#fff`]],[[`#F17EBB`,`#FFFFFF`,`#FDF2F8`,`#FCE8F3`],[`#fff`]],[[`#F98080`,`#FFFFFF`,`#FDF2F2`,`#FDE8E8`],[`#fff`]]].map((e,t)=>{let[n,r]=e,[i,a,o,s]=n,[c]=r;return{name:`table-default-${t}`,style:{headerRowStyle:{bg:{rgb:i},cl:{rgb:c},bd:{t:S}},headerColumnStyle:{bd:{l:S}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:S}},lastColumnStyle:{bd:{r:S}}}}});function T(e){"@babel/helpers - typeof";return T=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},T(e)}function ne(e,t){if(T(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(T(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function re(e){var t=ne(e,`string`);return T(t)==`symbol`?t:t+``}function E(e,t,n){return(t=re(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var D=class{constructor(e,t){E(this,`dataType`,void 0),E(this,`id`,void 0),E(this,`displayName`,void 0),E(this,`formula`,void 0),E(this,`meta`,void 0),E(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=`string`,this.formula=``,this.meta={},this.style={}}getMeta(){return this.meta}setMeta(e){this.meta=e}getDisplayName(){return this.displayName}toJSON(){return{id:this.id,displayName:this.displayName,dataType:this.dataType,formula:this.formula,meta:this.meta,style:this.style}}fromJSON(e){this.id=e.id,this.displayName=e.displayName,this.dataType=e.dataType,this.formula=e.formula,this.meta=e.meta,this.style=e.style}};let ie=`SHEET_TABLE_PLUGIN`,O=`SHEET_TABLE`,ae=`table-custom`,oe=`__UNIVER_TABLE_FILTER_EMPTY__`,se=e=>e.getMonth()<=2,ce=e=>{let t=e.getMonth();return t>2&&t<=5},le=e=>{let t=e.getMonth();return t>5&&t<=8},ue=e=>{let t=e.getMonth();return t>8&&t<=11},de=e=>e.getMonth()===0,fe=e=>e.getMonth()===1,pe=e=>e.getMonth()===2,me=e=>e.getMonth()===3,he=e=>e.getMonth()===4,ge=e=>e.getMonth()===5,_e=e=>e.getMonth()===6,ve=e=>e.getMonth()===7,ye=e=>e.getMonth()===8,be=e=>e.getMonth()===9,xe=e=>e.getMonth()===10,Se=e=>e.getMonth()===11,Ce=(e,t=new Date)=>e.toDateString()===t.toDateString(),we=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},Te=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()-1),e.toDateString()===n.toDateString()},k=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1),r=new Date(e);return r.setDate(n),r},A=10080*60*1e3,Ee=(e,t=new Date)=>{let n=k(e),r=k(t);return n.toDateString()===r.toDateString()},De=(e,t=new Date)=>{let n=k(e),r=new Date(k(t).getTime()+A);return n.toDateString()===r.toDateString()},Oe=(e,t=new Date)=>{let n=k(e),r=new Date(k(t).getTime()-A);return n.toDateString()===r.toDateString()},ke=(e,t=new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),Ae=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},je=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(n.getMonth()+1,1);let r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Me=(e,t=new Date)=>{let n=Ae(t),r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},j=e=>{let t=new Date(e);t.setHours(0,0,0,0),t.setDate(1);let n=t.getMonth();return t.setMonth(n-n%3),t},Ne=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Pe=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=new Date(r);i.setMonth(i.getMonth()+3,0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Fe=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()-3);let i=new Date(n);i.setDate(0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Ie=(e,t=new Date)=>e.getFullYear()===t.getFullYear(),Le=(e,t=new Date)=>e.getFullYear()===t.getFullYear()+1,Re=(e,t=new Date)=>e.getFullYear()===t.getFullYear()-1,ze=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(0,1);let r=e.getTime();return r>=n.getTime()&&r<t.getTime()};function Be(e){switch(e.compareType){case`equal`:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case`notEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case`after`:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case`before`:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case`afterOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case`beforeOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case`between`:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case`notBetween`:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case`today`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ce(e,t)}case`yesterday`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Te(e,t)}case`tomorrow`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>we(e,t)}case`thisWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ee(e,t)}case`lastWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Oe(e,t)}case`nextWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>De(e,t)}case`thisMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ke(e,t)}case`lastMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Me(e,t)}case`nextMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>je(e,t)}case`thisQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ne(e,t)}case`lastQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Fe(e,t)}case`nextQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Pe(e,t)}case`thisYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ie(e,t)}case`lastYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Re(e,t)}case`nextYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Le(e,t)}case`yearToDate`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ze(e,t)}case`m1`:return de;case`m2`:return fe;case`m3`:return pe;case`m4`:return me;case`m5`:return he;case`m6`:return ge;case`m7`:return _e;case`m8`:return ve;case`m9`:return ye;case`m10`:return be;case`m11`:return xe;case`m12`:return Se;case`q1`:return se;case`q2`:return ce;case`q3`:return le;case`q4`:return ue;default:throw Error(`Unsupported compare type`)}}var Ve=class{constructor(){E(this,`heap`,void 0),this.heap=[]}swap(e,t){let n=this.heap[e];this.heap[e]=this.heap[t],this.heap[t]=n}getParentIndex(e){return Math.floor((e-1)/2)}getLeftIndex(e){return e*2+1}getRightIndex(e){return e*2+2}size(){return this.heap.length}peek(){return this.heap[0]}include(e){return this.heap.includes(e)}},He=class extends Ve{constructor(){super()}shiftUp(e){if(e===0)return;let t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){let t=this.getLeftIndex(e),n=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[n]<this.heap[e]&&(this.swap(n,e),this.shiftDown(n))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}};let Ue=(e,t)=>{let n=new He;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},We=(e,t)=>e>t,Ge=(e,t)=>e<t,Ke=(e,t,n)=>Ue(e,t).includes(n);function qe(e,t){switch(e.compareType){case`equal`:{let t=Number(e.expectedValue);return e=>e===t}case`notEqual`:{let t=Number(e.expectedValue);return e=>e!==t}case`greaterThan`:{let t=Number(e.expectedValue);return e=>e>t}case`greaterThanOrEqual`:{let t=Number(e.expectedValue);return e=>e>=t}case`lessThan`:{let t=Number(e.expectedValue);return e=>e<t}case`lessThanOrEqual`:{let t=Number(e.expectedValue);return e=>e<=t}case`between`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e>=i&&e<=r:e=>e>=r&&e<=i}case`notBetween`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e<i||e>r:e=>e<r||e>i}case`above`:{let e=t.average;return t=>We(t,e)}case`below`:{let e=t.average;return t=>Ge(t,e)}case`topN`:{let n=t.list,r=Number(e.expectedValue);return e=>Ke(n,r,e)}}}let Je=(e,n)=>t.regexp.createFromWildcard(n).test(e),Ye=(e,n)=>!t.regexp.createFromWildcard(n).test(e),Xe=(e,n)=>t.regexp.createFromWildcard(`*${n}*`).test(e),Ze=(e,n)=>!t.regexp.createFromWildcard(`*${n}*`).test(e),Qe=(e,n)=>t.regexp.createFromWildcard(`${n}*`).test(e),$e=(e,n)=>t.regexp.createFromWildcard(`*${n}`).test(e);function et(e){switch(e.compareType){case`equal`:return t=>Je(t,e.expectedValue);case`notEqual`:return t=>Ye(t,e.expectedValue);case`contains`:return t=>Xe(t,e.expectedValue);case`notContains`:return t=>Ze(t,e.expectedValue);case`startsWith`:return t=>Qe(t,e.expectedValue);case`endsWith`:return t=>$e(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let tt=new Set([`above`,`below`,`topN`]);function nt(e){return tt.has(e)}function rt(e,t){if(nt(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case`date`:return Be(e.filterInfo);case`number`:return qe(e.filterInfo,t);case`string`:return et(e.filterInfo);default:return e=>!0}}function M(e,t,n,r){switch(r){case`date`:{let r=ot(e,t,n);return r?st(r):null}case`number`:return ot(e,t,n);default:return at(e,t,n)}}let it=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function at(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return it(s);if(typeof a==`string`)return o===t.CellValueType.BOOLEAN?a.toUpperCase():a;if(typeof a==`number`)return o===t.CellValueType.BOOLEAN?a?`TRUE`:`FALSE`:a;if(typeof a==`boolean`)return a?`TRUE`:`FALSE`;if(a!==void 0)return String(a)}function ot(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;return s?null:typeof a==`string`&&o===t.CellValueType.NUMBER?Number(e.getCellRaw(n,r).v):Number(a)}function st(e){let t=new Date(Date.UTC(1900,0,1,0,0,0)),n=new Date(Date.UTC(1900,1,28,0,0,0)),r=e-1;return r>(n.getTime()-t.getTime())/(1e3*3600*24)&&--r,r<0&&(r=e),new Date(t.getTime()+1e3*3600*24*r)}var ct=class{constructor(){E(this,`_tableColumnFilterList`,void 0),E(this,`_tableSortInfo`,void 0),E(this,`_filterOutRows`,void 0),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}getColumnFilter(e){return this._tableColumnFilterList[e]}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:`none`;return v(this._tableColumnFilterList[e],n)}getSortState(){return this._tableSortInfo??{}}getFilterStates(e){let t=[],{startColumn:n,endColumn:r}=e;for(let e=n;e<=r;e++)t.push(this.getFilterState(e-n));return t}getFilterOutRows(){return this._filterOutRows}doFilter(e,t){let n=new Set,r=this._tableColumnFilterList;for(let i=0;i<r.length;i++)r[i]&&this.doColumnFilter(e,t,i,n);return this._filterOutRows=n,n}doColumnFilter(e,t,n,r){let i=this._tableColumnFilterList[n];if(i&&e){let{startRow:a,endRow:o,startColumn:s}=t,c=s+n,l=this.getExecuteFunc(e,t,n,i);for(let t=a;t<=o;t++){let n=y(i)?i.filterInfo.conditionType:`string`,a=M(e,t,c,n);a===null&&!l(a)?r.add(t):l(M(e,t,c,n))||r.add(t)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,l=0;for(let t=r;t<=i;t++){let n=M(e,t,o,`number`);n!==null&&(s.push(n),c++,l+=n)}return{list:s,average:c>0?l/c:0}}getExecuteFunc(e,t,n,r){if(r.filterType===`manual`){let e=new Set(r.values);return t=>t==null?e.has(oe):e.has(t)}else if(r.filterType===`condition`)return rt(r,nt(r.filterInfo.compareType)?this._getNumberCalculatedOptions(e,t,n):void 0);else return e=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){this._tableColumnFilterList=e.tableColumnFilterList??[],e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[]}},lt=class{constructor(e,t,n,r,i={}){E(this,`_id`,void 0),E(this,`_name`,void 0),E(this,`_tableStyleId`,void 0),E(this,`_showHeader`,void 0),E(this,`_showFooter`,void 0),E(this,`_range`,void 0),E(this,`_columns`,new Map),E(this,`_columnOrder`,[]),E(this,`tableMeta`,void 0),E(this,`_tableFilters`,void 0),E(this,`_subUnitId`,void 0),this._id=e,this._range=n,this._name=t,this._tableFilters=new ct,this._init(r,i)}_init(e,n){this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(n==null?void 0:n.showHeader)??!0,this._showFooter=!1;let r=this.getRange(),i=r.startColumn,a=r.endColumn;for(let r=i;r<=a;r++){var o;let a=r-i,s,c;(o=n.columns)!=null&&o[a]?(s=n.columns[a].id,c=n.columns[a].displayName):(s=(0,t.generateRandomId)(),c=e[r-i]);let l=new D(s,c);this._columns.set(s,l),this._columnOrder.push(s)}n.filters&&n.filters.forEach((e,t)=>{e&&this._tableFilters.setColumnFilter(t,e)})}setTableFilterColumn(e,t){this._tableFilters.setColumnFilter(e,t)}getTableFilterColumn(e){return this._tableFilters.getColumnFilter(e)}getTableFilters(){return this._tableFilters}getTableFilterRange(){let e=this.getRange(),t=this.isShowHeader(),n=this.isShowFooter(),{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return{startRow:t?r+1:r,startColumn:i,endRow:n?a-1:a,endColumn:o}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(e=>{let t=new D(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)})}getColumnsCount(){return this._columnOrder.length}insertColumn(e,t){let n=t.id;this._columns.set(n,t),this._columnOrder.splice(e,0,n)}removeColumn(e){let t=this._columnOrder[e];this._columns.delete(t),this._columnOrder.splice(e,1)}setTableMeta(e){this.tableMeta=e}getTableMeta(){return this.tableMeta}getColumn(e){return this._columns.get(e)}getTableColumnByIndex(e){let t=this._columnOrder[e];return this.getColumn(t)}getColumnNameByIndex(e){var t;let n=this._columnOrder[e];return((t=this.getColumn(n))==null?void 0:t.getDisplayName())||``}getId(){return this._id}getRangeInfo(){return{...this._range}}getRange(){return{...this._range}}setRange(e){this._range=e}setDisplayName(e){this._name=e}getDisplayName(){return this._name}getSubunitId(){return this._subUnitId}setSubunitId(e){this._subUnitId=e}getTableStyleId(){return this._tableStyleId??w[0].name}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){return this._showHeader??!0}setShowHeader(e){this._showHeader=e}isShowFooter(){return this._showFooter??!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(){let e=[];return this._columns.forEach(t=>{e.push(t.toJSON())}),{id:this._id,name:this._name,range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=e.options.showHeader??!0,this._showFooter=e.options.showFooter??!0,e.columns.forEach(e=>{let t=new D(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new ct,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}};function N(e,t){return function(n,r){t(n,r,e)}}function P(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let F=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._localeService=t,E(this,`_tableMap`,void 0),E(this,`_tableAdd$`,new i.Subject),E(this,`tableAdd$`,this._tableAdd$.asObservable()),E(this,`_tableDelete$`,new i.Subject),E(this,`tableDelete$`,this._tableDelete$.asObservable()),E(this,`_tableNameChanged$`,new i.Subject),E(this,`tableNameChanged$`,this._tableNameChanged$.asObservable()),E(this,`_tableRangeChanged$`,new i.Subject),E(this,`tableRangeChanged$`,this._tableRangeChanged$.asObservable()),E(this,`_tableThemeChanged$`,new i.Subject),E(this,`tableThemeChanged$`,this._tableThemeChanged$.asObservable()),E(this,`_tableFilterChanged$`,new i.Subject),E(this,`tableFilterChanged$`,this._tableFilterChanged$.asObservable()),E(this,`_tableInitStatus`,new i.BehaviorSubject(!1)),E(this,`tableInitStatus$`,this._tableInitStatus.asObservable()),this._tableMap=new Map}_ensureUnit(e){return this._tableMap.has(e)||this._tableMap.set(e,new Map),this._tableMap.get(e)}getColumnHeader(e,t,n,r){var i;let a=(i=this._univerInstanceService.getUnit(e))==null?void 0:i.getSheetBySheetId(t),{startRow:o,startColumn:s,endColumn:c}=n,l=[],u=r??`Column`;for(let e=s;e<=c;e++)l.push(_(a==null?void 0:a.getCell(o,e))||p(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o??(0,t.generateRandomId)(),l=new lt(c,r,i,a||this.getColumnHeader(e,n,i),s);if(l.setSubunitId(n),this._ensureUnit(e).set(c,l),this._tableAdd$.next({unitId:e,subUnitId:n,range:i,tableName:r,tableId:c,tableStyleId:s==null?void 0:s.tableStyleId}),s!=null&&s.filters){var u;let t=(u=this._univerInstanceService.getUnit(e))==null?void 0:u.getSheetBySheetId(n);l.getTableFilters().doFilter(t,i),this._tableFilterChanged$.next({unitId:e,subUnitId:n,tableId:c})}return c}addFilter(e,t,n,r){let i=this.getTable(e,t);if(i){i.getTableFilters().setColumnFilter(n,r);let a=i.getSubunitId();this._tableFilterChanged$.next({unitId:e,subUnitId:a,tableId:t})}}getFilterRanges(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push(e.getRange())}),r}getSheetFilterRangeWithState(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push({tableId:e.getId(),range:e.getRange(),states:e.getFilterStates(e.getRange())})}),r}getTable(e,t){let n=this._tableMap.get(e);if(n)return n.get(t)}getUniqueTableName(e,t){let n=this._tableMap.get(e);if(!n)return t;let r=new Set(Array.from(n.values()).map(e=>e.getDisplayName())),i=t,a=1;for(;r.has(i);)i=`${t}-${a}`,a++;return i}getTableById(e,t){return this.getTable(e,t)}getTableList(e){let t=this._tableMap.get(e);return t?Array.from(t.values()).map(t=>({...t.getTableInfo(),unitId:e})):[]}getTablesBySubunitId(e,t){let n=this._tableMap.get(e);return n?Array.from(n.values()).filter(e=>e.getSubunitId()===t):[]}getTablesInfoBySubunitId(e,t){return this.getTablesBySubunitId(e,t).map(e=>({id:e.getId(),name:e.getDisplayName(),range:e.getRange()}))}deleteTable(e,t){let n=this._tableMap.get(e),r=n==null?void 0:n.get(t);if(r){let i=r.getTableInfo(),a=r.getTableStyleId();n==null||n.delete(t);let{subUnitId:o,range:s,name:c}=i;this._tableDelete$.next({unitId:e,subUnitId:o,tableId:t,range:s,tableName:c,tableStyleId:a})}}operationTableRowCol(e,n,r){let i=this.getTableById(e,n);if(!i)return;let{operationType:a,rowColType:o,index:s,count:c,columnsJson:l}=r,u=i.getRange(),d={...u};if(a===`insert`){if(o===`row`)d.endRow+=c;else if(o===`column`){d.endColumn+=c;for(let e=0;e<c;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new D((0,t.generateRandomId)(),p(i.getColumnsCount()+1+e,n));l!=null&&l[e]&&r.fromJSON(l[e]);let a=s+e-u.startColumn;i.insertColumn(a,r)}}}else if(o===`row`)d.endRow-=c;else if(o===`column`){d.endColumn-=c;for(let e=c-1;e>=0;e--){let t=s+e-u.startColumn;i.removeColumn(t)}}i.setRange(d),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:d,oldRange:u})}updateTableRange(e,n,r){let i=this.getTableById(e,n);if(!i)return;let a=i.getRange(),o=r.newRange;if(o.startColumn<a.startColumn){let e=a.startColumn-o.startColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.startColumn,new D((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}else if(o.startColumn>a.startColumn){let e=o.startColumn-a.startColumn;for(let t=e-1;t>=0;t--){let e=o.startColumn+t-a.startColumn;i.removeColumn(e)}}if(o.endColumn<a.endColumn){let e=a.endColumn-o.endColumn;for(let t=e-1;t>=0;t--){let e=o.endColumn+t-a.startColumn;i.removeColumn(e)}}else if(o.endColumn>a.endColumn){let e=o.endColumn-a.endColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.endColumn,new D((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}i.setRange(o),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:o,oldRange:a})}setTableByConfig(e,t,n){let r=this._tableMap.get(e),i=r==null?void 0:r.get(t);if(!i)return;let a=i.getSubunitId(),{name:o,updateRange:s,rowColOperation:c,theme:l,options:u}=n;if(o){let n=i.getDisplayName();i.setDisplayName(o),this._tableNameChanged$.next({unitId:e,subUnitId:a,tableId:t,tableName:o,oldTableName:n})}if(c&&this.operationTableRowCol(e,t,c),s&&this.updateTableRange(e,t,s),l){let n=i.getTableStyleId()??`default`;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}u&&u.showHeader!==void 0&&i.setShowHeader(u.showHeader)}toJSON(e){let t={},n=this._tableMap.get(e);return n&&n.forEach(n=>{let r=n.getSubunitId();if(!t[r]){let n=new Set;this.getTablesBySubunitId(e,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),t[r]={tables:[],tableFilteredOutRows:Array.from(n)}}t[r].tables.push(n.toJSON())}),t}fromJSON(e,t){let n=this._ensureUnit(e);Object.keys(t).forEach(i=>{let a=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:i});if(!a)return;let o=a.worksheet,s;t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),s&&s.forEach(t=>{var r;let a=this.getColumnHeader(e,i,t.range),s=new lt(t.id,t.name,t.range,a,t.options);if(s.setTableMeta(t.meta),t.columns.length&&s.setColumns(t.columns),t.filters){let e=s.getTableFilters();e.fromJSON(t.filters),e.doFilter(o,s.getTableFilterRange())}s.setSubunitId(i),n.set(t.id,s),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id,tableStyleId:(r=t.options)==null?void 0:r.tableStyleId})})}),this._tableInitStatus.next(!0)}deleteUnitId(e){let t=this._tableMap.get(e);t&&t.forEach(e=>e.dispose()),this._tableMap.delete(e)}dispose(){super.dispose(),this._tableAdd$.complete(),this._tableDelete$.complete(),this._tableNameChanged$.complete(),this._tableRangeChanged$.complete(),this._tableThemeChanged$.complete(),this._tableFilterChanged$.complete(),this._tableInitStatus.complete(),this._tableMap.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._tableMap.clear()}};F=P([N(0,t.IUniverInstanceService),N(1,(0,t.Inject)(t.LocaleService))],F);let I=class extends t.Disposable{constructor(e){super(),this._tableManager=e}getTableInfo(e,t){let n=this._tableManager.getTable(e,t);if(n)return{unitId:e,...n.getTableInfo()}}getTableList(e){return this._tableManager.getTableList(e)}addTable(e,t,n,r,i,a,o){return this._tableManager.addTable(e,t,n,r,i,a,o)}deleteTable(e,t,n){this._tableManager.deleteTable(e,n)}getTableMeta(e,t){var n;return(n=this._tableManager.getTable(e,t))==null?void 0:n.getTableMeta()}setTableMeta(e,t,n){var r;(r=this._tableManager.getTable(e,t))==null||r.setTableMeta(n)}getTableColumnMeta(e,t,n){var r;return(r=this._tableManager.getTable(e,t))==null||(r=r.getTableColumnByIndex(n))==null?void 0:r.getMeta()}selTableColumnMeta(e,t,n,r){var i;(i=this._tableManager.getTable(e,t))==null||(i=i.getTableColumnByIndex(n))==null||i.setMeta(r)}addFilter(e,t,n,r){this._tableManager.addFilter(e,t,n,r)}getCellValueWithConditionType(e,t,n,r=`string`){return M(e,t,n,r)}};I=P([N(0,(0,t.Inject)(F))],I);let L={id:`sheet.mutation.add-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,subUnitId:i,name:a,range:o,header:s,options:c}=t;return e.get(I).addTable(r,i,a,o,s,n,c),!0}},R={id:`sheet.mutation.delete-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,tableId:i}=t;return e.get(I).deleteTable(n,r,i),!0}},z={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(t.LocaleService),s=e.get(F),c=r.id??(0,t.generateRandomId)(),l=x(r.unitId,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:s,definedNamesService:e.get(n.IDefinedNamesService)}),u=r.name;if(!u||!(0,t.customNameCharacterCheck)(u.toLowerCase(),l)){let e=o.t(`sheets-table.tablePrefix`),t=s.getTableList(r.unitId).length+1;for(let n of l)if(n.startsWith(e.toLowerCase())){let r=Number(n.slice(e.length));Number.isInteger(r)&&r>=t&&(t=r+1)}u=`${e}${t}`}let d=[],f=[],{unitId:p,subUnitId:m,range:h}=r,g=s.getColumnHeader(p,m,h,o.t(`sheets-table.columnPrefix`));return d.push({id:L.id,params:{...r,tableId:c,name:u,header:g}}),f.push({id:R.id,params:{tableId:c,unitId:r.unitId}}),(0,t.sequenceExecute)(d,a).result?(i.pushUndoRedo({unitID:r.unitId,undoMutations:f,redoMutations:d}),!0):!1}},B={id:`sheet.mutation.set-sheet-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,tableId:r,config:i}=t;return e.get(F).setTableByConfig(n,r,i),!0}},ut={id:`sheet.command.add-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(F),{unitId:a,tableId:o,themeStyle:s}=n,c=[],l=[],u=i.getTableById(a,o);if(!u)return!1;let d=u.getSubunitId();return c.push({id:r.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleJSON:s.toJson()}}),c.push({id:B.id,params:{unitId:a,subUnitId:d,tableId:o,config:{theme:s.getName()}}}),l.push({id:B.id,params:{unitId:a,subUnitId:d,tableId:o,config:{themeStyle:u.getTableStyleId()}}}),l.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleName:s.getName()}}),(0,t.sequenceExecute)(c,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0):!1}},V={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(F),s=e.get(t.ILogService),c=[],l=[],u=o.getTable(n.unitId,n.tableId),d=u==null?void 0:u.toJSON();if(!d)return s.error(`[TableManager]: Table not found`),!1;let f=e.get(r.SheetInterceptorService).onCommandExecute({id:V.id,params:{...n,tableName:d.name}});return c.push(...f.preRedos??[]),c.push({id:R.id,params:{...n}}),c.push(...f.redos),l.push(...f.preUndos??[]),l.push({id:L.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:d.name,range:d.range,options:d.options}}),l.push(...f.undos),(0,t.sequenceExecute)(c,a).result?(i.pushUndoRedo({unitID:n.unitId,undoMutations:l,redoMutations:c}),!0):!1}},dt={id:`sheet.command.remove-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,tableId:a,themeName:o}=n,s=e.get(F),c=e.get(r.SheetRangeThemeModel),l=s.getTableById(i,a);if(!l)return!1;let u=l.getSubunitId(),d=[],f=[],p=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(`table-default`)),m=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(ae)).find(e=>e!==o);m||=p[0],d.push({id:B.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:m}}}),d.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleName:o}});let h=c.getDefaultRangeThemeStyle(o);return h&&(f.push({id:r.AddRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleJSON:h.toJson()}}),f.push({id:B.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:o}}})),(0,t.sequenceExecute)(d,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0):!1}};function ft(e,n){let r=e.trim();if(!r)return{valid:!1,reason:`empty`};let i=new Set(Array.from(n,e=>e.toLowerCase()));return(0,t.customNameCharacterCheck)(r.toLowerCase(),i)?{valid:!0}:{valid:!1,reason:`invalid`}}let H={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,tableId:o,name:s,updateRange:c,rowColOperation:l,theme:u}=i,d=e.get(F),f=d.getTableById(a,o);if(!f)return!1;let p={},m={},h=e.get(t.LocaleService),g=x(a,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:d,definedNamesService:e.get(n.IDefinedNamesService)});if(s){if(!ft(s,g).valid)return e.get(t.ILogService).warn(h.t(`sheets-table.tableNameError`)),!1;p.name=f.getDisplayName(),m.name=s}l&&(p.rowColOperation={operationType:l.operationType===`insert`?`delete`:`insert`,rowColType:l.rowColType,index:l.index,count:l.count},m.rowColOperation=l),c&&(p.updateRange={newRange:f.getRange()},m.updateRange=c),u&&(p.theme=f.getTableStyleId(),m.theme=u);let _={unitId:a,subUnitId:f.getSubunitId(),tableId:o,config:m},v={unitId:a,subUnitId:f.getSubunitId(),tableId:o,config:p},y=e.get(r.SheetInterceptorService).onCommandExecute({id:H.id,params:{...i,oldTableName:p.name}}),b=[...y.preRedos??[],{id:B.id,params:_},...y.redos],S=[...y.preUndos??[],{id:B.id,params:v},...y.undos],C=e.get(t.ICommandService);return b.forEach(e=>{C.executeCommand(e.id,e.params)}),e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:S,redoMutations:b}),!0}},U={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t;return e.get(F).addFilter(r,n,i,a),!0}},pt={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(t.IUndoRedoService),i=e.get(t.ICommandService),a=n.tableId||(0,t.generateRandomId)(),o=[],s=[];return o.push({id:U.id,params:{...n,tableId:a}}),s.push({id:U.id,params:{...n,tableId:a,tableFilter:void 0}}),(0,t.sequenceExecute)(o,i).result?(r.pushUndoRedo({unitID:n.unitId,undoMutations:s,redoMutations:o}),!0):!1}},W=class extends t.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetInterceptorService=t,this._tableManager=n,this._resourceManagerService=r,E(this,`_tableRangeRTree`,new Map),this._initSnapshot(),this._initSheetChange(),this.registerTableChangeEvent(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(e,n,r){let i=this._ensureTableRangeRTree(e),a=Array.from(i.bulkSearch([{unitId:e,sheetId:n,range:r}])).find(n=>{let i=this._tableManager.getTable(e,String(n));return i?t.Rectangle.contains(i.getRange(),r):!1});if(a)return this._tableManager.getTable(e,String(a))}_ensureTableRangeRTree(e){return this._tableRangeRTree.has(e)||this._tableRangeRTree.set(e,new t.RTree),this._tableRangeRTree.get(e)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._ensureTableRangeRTree(r).insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,oldRange:a}=e,o=this._ensureTableRangeRTree(r);o.remove({unitId:r,sheetId:i,id:n,range:{...a}}),o.insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._ensureTableRangeRTree(n).remove({unitId:n,sheetId:r,id:t,range:{...i}})}))}registerTableHeaderInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._ensureTableRangeRTree(a);if((e==null?void 0:e.v)===void 0&&s){let c=Array.from(s.bulkSearch([{unitId:a,sheetId:o,range:{startColumn:i,endColumn:i,startRow:r,endRow:r}}]));if(c.length>0){let o=this._tableManager.getTable(a,c[0]);if(o){let a=o.getRange(),s=i-a.startColumn;if(a.startRow===r){let r=o.getColumnNameByIndex(s);return(!e||e===t.rawData)&&(e={...t.rawData}),e.v=r,n(e)}}}}return n(e)}}))}_toJson(e){return this._tableManager.toJSON(e)}_fromJSON(e,t){return this._tableManager.fromJSON(e,t)}_deleteUnitId(e){this._tableManager.deleteUnitId(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>JSON.stringify(this._toJson(e)),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:ie,onLoad:(e,t)=>{this._fromJSON(e,t)},onUnLoad:e=>{this._deleteUnitId(e)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId||this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=r.subUnitId||((n=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:n.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._tableManager.getTablesBySubunitId(i,a);if(o.length===0)return{redos:[],undos:[]};let s=[],c=[];return o.forEach(e=>{let t=e.toJSON();s.push({id:R.id,params:{unitId:i,subUnitId:a,tableId:t.id}}),c.push({id:L.id,params:{unitId:i,subUnitId:a,name:t.name,range:t.range,tableId:t.id,options:{...t.options,columns:t.columns,filters:t.filters.tableColumnFilterList}}})}),{redos:s,undos:c}}else if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._tableManager.getTablesBySubunitId(n,r);if(a.length===0)return{redos:[],undos:[]};let o=[],s=[];return a.forEach(e=>{let r=e.toJSON(),a=(0,t.generateRandomId)();o.push({id:L.id,params:{unitId:n,subUnitId:i,name:r.name,range:{...r.range,sheetId:i},tableId:a,options:{...r.options,columns:r.columns,filters:r.filters.tableColumnFilterList}}}),s.push({id:R.id,params:{unitId:n,subUnitId:i,tableId:a}})}),{redos:o,undos:s}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}};W=P([N(0,(0,t.Inject)(t.IUniverInstanceService)),N(1,(0,t.Inject)(r.SheetInterceptorService)),N(2,(0,t.Inject)(F)),N(3,(0,t.Inject)(t.IResourceManagerService))],W);function G(e,n,r,i){return(0,t.sequenceExecute)(r,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:i,redoMutations:r}),!0):!1}let mt={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let n=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService));if(!n)return!1;let{workbook:i,worksheet:a,unitId:o,subUnitId:s}=n,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;e.get(F);let l=c[0].range,u=e.get(W).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endRow-l.startRow+1,f=a.getRowCount()-1,p=a.getCellMatrix().getDataRange().endRow,m=[],h=[];if(f-p<d)m.push({id:r.InsertRowMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...u.getRange(),endRow:u.getRange().endRow+d}}}}}),h.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:u.getRange()}}}}),h.push({id:r.RemoveRowMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}});else{let t={...u.getRange()};m.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...t,endRow:t.endRow+d}}}}}),h.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:p,startColumn:t.startColumn,endColumn:t.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow+d,endRow:p+d,startColumn:t.startColumn,endColumn:t.endColumn}});n&&(m.push(...n.redos),h.push(...n.undos))}return(0,t.sequenceExecute)(m,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},ht={id:`sheet.command.table-insert-row-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:i,subUnitId:a});if(!l)return!1;let u=e.get(F).getTableById(i,o);if(!u||u.getSubunitId()!==a)return!1;let d=u.getRange();if(s<=d.startRow||s>d.endRow+1)return!1;let f=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{updateRange:{newRange:{...d,endRow:d.endRow+c}}}}}],p=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{updateRange:{newRange:{...d}}}}}],m=l.worksheet.getCellMatrix().getDataRange().endRow,h=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:s,endRow:m,startColumn:d.startColumn,endColumn:d.endColumn}},{unitId:i,subUnitId:a,range:{startRow:s+c,endRow:m+c,startColumn:d.startColumn,endColumn:d.endColumn}});return h&&(f.push(...h.redos),p.push(...h.undos)),G(e,i,f,p)}},gt={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService));if(!n)return!1;let{worksheet:i,unitId:a,subUnitId:o}=n,s=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!s.length||s.length>1)return!1;let c=s[0].range,l=e.get(W).getContainerTableWithRange(a,o,c);if(!l)return!1;let u=c.endColumn-c.startColumn+1,d=i.getColumnCount()-1,f=i.getCellMatrix().getDataRange().endColumn,p=[],m=[];if(d-f<u)p.push({id:r.InsertColMutation.id,params:{unitId:a,subUnitId:o,range:{...c}}}),p.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:u}}}}),m.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:u}}}}),m.push({id:r.RemoveColMutation.id,params:{unitId:a,subUnitId:o,range:{...c}}});else{let t=l.getRange();p.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:u}}}}),m.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:u}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:a,subUnitId:o,range:{startRow:t.startRow,endRow:t.endRow,startColumn:c.startColumn,endColumn:f}},{unitId:a,subUnitId:o,range:{startRow:t.startRow,endRow:t.endRow,startColumn:c.startColumn+u,endColumn:f+u}});n&&(p.push(...n.redos),m.push(...n.undos))}return(0,t.sequenceExecute)(p,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:m,redoMutations:p}),!0):!1}},_t={id:`sheet.command.table-insert-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:i,subUnitId:a});if(!l)return!1;let u=e.get(F).getTableById(i,o);if(!u||u.getSubunitId()!==a)return!1;let d=u.getRange();if(s<d.startColumn||s>d.endColumn+1)return!1;let f=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c}}}}],p=[{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}}],m=l.worksheet.getCellMatrix().getDataRange().endColumn;if(s<=m){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:d.startRow,endRow:d.endRow,startColumn:s,endColumn:m}},{unitId:i,subUnitId:a,range:{startRow:d.startRow,endRow:d.endRow,startColumn:s+c,endColumn:m+c}});t&&(f.push(...t.redos),p.push(...t.undos))}return G(e,i,f,p)}},K={id:`sheet.command.table-remove-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),{unitId:i,subUnitId:a});if(!l)return!1;let u=e.get(F).getTableById(i,o);if(!u||u.getSubunitId()!==a)return!1;let d=u.getRange();if(s<d.startColumn||s+c-1>d.endColumn||c>=d.endColumn-d.startColumn+1)return!1;let f=u.getTableInfo(),p=[],m=s-d.startColumn;for(let e=0;e<c;e++){let t=f.columns[m+e];t&&p.push(t)}let h=e.get(r.SheetInterceptorService).onCommandExecute({id:K.id,params:{...n,tableName:f.name,removedColumnNames:p.map(e=>e.displayName)}}),g=[...h.preRedos??[],{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}},...h.redos],_=[...h.preUndos??[],{id:B.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c,columnsJson:p}}}},...h.undos],v=l.worksheet.getCellMatrix().getDataRange().endColumn;if(s+c<=v){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:d.startRow,endRow:d.endRow,startColumn:s+c,endColumn:v}},{unitId:i,subUnitId:a,range:{startRow:d.startRow,endRow:d.endRow,startColumn:s,endColumn:v-c}});t&&(g.push(...t.redos),_.push(...t.undos))}return G(e,i,g,_)}},vt={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{unitId:a,subUnitId:o}=i,s=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!s.length||s.length>1)return!1;let c=s[0].range,l=e.get(W).getContainerTableWithRange(a,o,c);if(!l)return!1;let u=c.endRow-c.startRow+1,d=[],f=[],p=l.getRange();d.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{updateRange:{newRange:{...p,endRow:p.endRow-u}}}}}),f.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:l.getId(),config:{updateRange:{newRange:{...p}}}}});let m=i.worksheet.getCellMatrix().getDataRange().endRow,h=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:a,subUnitId:o,range:{startRow:c.endRow+1,endRow:m,startColumn:p.startColumn,endColumn:p.endColumn}},{unitId:a,subUnitId:o,range:{startRow:c.startRow,endRow:m-u,startColumn:p.startColumn,endColumn:p.endColumn}});return h&&(d.push(...h.redos),f.push(...h.undos)),(0,t.sequenceExecute)(d,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:f,redoMutations:d}),!0):!1}},q={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=(0,r.getSheetCommandTarget)(e.get(t.IUniverInstanceService),n);if(!i)return!1;let{workbook:a,unitId:o,subUnitId:s}=i;e.get(F);let c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(W).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endColumn-l.startColumn+1,f=[],p=[],m=u.getRange();f.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}});let h=u.getTableInfo(),g=[],_=l.startColumn-m.startColumn;for(let e=0;e<d;e++){let t=h.columns[_+e];t&&g.push(t)}let v=e.get(r.SheetInterceptorService).onCommandExecute({id:q.id,params:{...n,tableName:h.name,removedColumnNames:g.map(e=>e.displayName)}});f.unshift(...v.preRedos??[]),f.push(...v.redos),p.unshift(...v.preUndos??[]),p.push({id:B.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d,columnsJson:g}}}}),p.push(...v.undos);let y=i.worksheet.getCellMatrix().getDataRange().endColumn,b=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:m.startRow,endRow:m.endRow,startColumn:l.endColumn+1,endColumn:y}},{unitId:o,subUnitId:s,range:{startRow:m.startRow,endRow:m.endRow,startColumn:l.startColumn,endColumn:y-d}});return b&&(f.push(...b.redos),p.push(...b.undos)),(0,t.sequenceExecute)(f,e.get(t.ICommandService)).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:p,redoMutations:f}),!0):!1}},J=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=n,this._configService=r,E(this,`_defaultThemeIndex`,0),E(this,`_allThemes`,[]),this._initUserTableTheme(),this.registerTableChangeEvent(),this._initDefaultTableTheme()}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,tableStyleId:a}=e,o=this._tableManager.getTable(r,n),s=a||this._allThemes[this._defaultThemeIndex].name;o.setTableStyleId(s),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:r,subUnitId:i,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,oldRange:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r),s=o.getTableStyleId();s||(s=this._allThemes[this._defaultThemeIndex].name,o.setTableStyleId(s)),this._sheetRangeThemeService.removeRangeThemeRule(s,{unitId:i,subUnitId:a,range:{...n}}),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:i,subUnitId:a,range:{...t}})})),this.disposeWithMe(this._tableManager.tableThemeChanged$.subscribe(e=>{let{theme:t,oldTheme:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r).getRange();this._sheetRangeThemeService.removeRangeThemeRule(n,{unitId:i,subUnitId:a,range:{...o}}),this._sheetRangeThemeService.registerRangeThemeStyle(t,{unitId:i,subUnitId:a,range:{...o}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{range:t,unitId:n,subUnitId:r,tableStyleId:i=this._allThemes[this._defaultThemeIndex].name}=e;this._sheetRangeThemeService.removeRangeThemeRule(i,{unitId:n,subUnitId:r,range:{...t}})}))}_initUserTableTheme(){let e=this._configService.getConfig(`sheets-table.config`)||{},t=e.defaultThemeIndex||0,n=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=n.concat(w)}_initDefaultTableTheme(){for(let e=0;e<this._allThemes.length;e++){let{name:t,style:n}=this._allThemes[e],i=new r.RangeThemeStyle(t,n);this._sheetRangeThemeModel.registerDefaultRangeTheme(i)}}dispose(){super.dispose(),this._allThemes=[],this._defaultThemeIndex=0}};J=P([N(0,(0,t.Inject)(F)),N(1,(0,t.Inject)(r.SheetRangeThemeService)),N(2,(0,t.Inject)(r.SheetRangeThemeModel)),N(3,t.IConfigService)],J);var yt=`@univerjs/sheets-table`,bt=`1.0.0-beta.0`;let Y=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._commandService=t,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{unitId:t,subUnitId:r,tableName:i,range:a}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:i,reference:{sheetId:r,range:a}},{onlyLocal:!0})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(e=>{let{tableId:t,unitId:r,oldTableName:i}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:r,tableName:i},{onlyLocal:!0});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a,i)}))}_updateSuperTable(e,t,r){let i=t.getTableInfo(),a=i.name,o=i.columns,s=new Map;o.forEach((e,t)=>{s.set(e.displayName,t)}),this._commandService.executeCommand(n.SetSuperTableMutation.id,{unitId:e,tableName:a,oldTableName:r,reference:{range:i.range,sheetId:i.subUnitId,titleMap:s}},{onlyLocal:!0})}};Y=P([N(0,(0,t.Inject)(F)),N(1,t.ICommandService)],Y);let X=class extends t.Disposable{constructor(e,t){super(),this._tableManager=e,this._exclusiveRangeService=t,this._initRangeListener()}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(r,i,O,n),this._exclusiveRangeService.addExclusiveRange(r,i,O,[{range:{...t},groupId:n}])})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._exclusiveRangeService.addExclusiveRange(n,r,O,[{range:{...i},groupId:t}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(n,r,O,t)}))}};X=P([N(0,(0,t.Inject)(F)),N(1,(0,t.Inject)(r.IExclusiveRangeService))],X);let Z=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._tableManager=a,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({priority:-1,getMutations(t){let n={redos:[],undos:[]},{id:i,params:a}=t;switch(i){case r.InsertRowCommand.id:return e._generateTableMutationWithInsertRow(a);case r.InsertColCommand.id:return e._generateTableMutationWithInsertCol(a);case r.RemoveRowCommand.id:return e._generateTableMutationWithRemoveRow(a);case r.RemoveColCommand.id:return e._generateTableMutationWithRemoveCol(a)}return n}})}_generateTableMutationWithInsertRow(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startRow>r.startRow&&c.startRow<=r.endRow){let i=c.endRow-c.startRow+1;n.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+i}}}}}),t.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:n}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startColumn>r.startColumn&&c.startColumn<=r.endColumn){let r=c.endColumn-c.startColumn+1;n.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:r}}}}),t.push({id:B.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:r}}}})}}),{undos:t,redos:n}}_generateTableMutationWithRemoveRow(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endRow-d.startRow+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d))if(d.startRow<=r.startRow&&d.endRow>=r.startRow){a.push({id:R.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let t=e.toJSON();n.push({id:L.id,params:{unitId:c,subUnitId:l,tableId:t.id,name:t.name,range:t.range,options:t.options}})}else d.startRow>r.startRow&&d.startRow<=r.endRow?(i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow-f}}}}}),n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})):d.startRow<r.endRow&&d.endRow>=r.endRow&&(i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:d.startRow-1}}}}}),n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}}))}),{undos:n,redos:i,preRedos:a,preUndos:o}}_generateTableMutationWithRemoveCol(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endColumn-d.startColumn+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startColumn<=r.startColumn&&d.endColumn>=r.endColumn){let t=e.getTableInfo(),r=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.delete-table`,params:{unitId:c,subUnitId:l,tableId:e.getId(),tableName:t.name}});a.push(...r.preRedos??[],...r.redos),a.push({id:R.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let s=e.toJSON(),{startRow:u,startColumn:d,endColumn:f}=s.range,m=this._univerInstanceService.getUnit(c),h=m==null?void 0:m.getSheetBySheetId(l);if(!h)return{undos:n,redos:i,preRedos:a,preUndos:o};let g=[];for(let e=d;e<=f;e++)g.push(_(h==null?void 0:h.getCell(u,e))||p(e-d+1,this._localeService.t(`sheets-table.columnPrefix`)));n.push({id:L.id,params:{unitId:c,subUnitId:l,tableId:s.id,name:s.name,header:g,range:s.range,options:s.options}}),n.push(...r.preUndos??[],...r.undos)}else if(d.startColumn<=r.startColumn&&d.endColumn>=r.startColumn){let t=e.toJSON(),a=d.endColumn-r.startColumn+1;i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:r.startColumn,count:a}}}});let s=[];for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn>r.endColumn){let t=e.toJSON(),a=r.endColumn-d.startColumn+1;i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:a}}}});let s=[],u=d.startColumn-r.startColumn;for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t+u);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn<=r.endColumn){let t=e.toJSON();i.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:f}}}});let a=[],s=d.startColumn-r.startColumn;for(let t=0;t<f;t++){let n=e.getTableColumnByIndex(t+s);n&&a.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:a})}}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_getDeleteTableMutation(e,t,n){return{id:R.id,params:{unitId:e,subUnitId:t,tableId:n}}}_getAddTableMutation(e,t,n){let r=n.columns.map(e=>e.displayName);return{id:L.id,params:{unitId:e,subUnitId:t,tableId:n.id,name:n.name,header:r,range:n.range,options:{...n.options,columns:n.columns,filters:n.filters.tableColumnFilterList}}}}_appendTableColumnFormulaMutations(e,t,n){let r=n.columns.map(e=>e.displayName);if(!r.length)return;let i=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.table-remove-col`,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,tableName:n.tableName,range:n.range,removedColumnNames:r}});e.splice(Math.max(e.length-1,0),0,...i.preRedos??[],...i.redos),t.push(...i.preUndos??[],...i.undos)}_initCommandListener(){this._commandService.onCommandExecuted(e=>{if(e.id===r.InsertRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<=n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow+i,endRow:n.endRow+i}})})}else if(e.id===r.InsertColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<=n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn+i,endColumn:n.endColumn+i}})})}else if(e.id===r.RemoveRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow-i,endRow:n.endRow-i}})})}else if(e.id===r.RemoveColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn-i,endColumn:n.endColumn-i}})})}})}};Z=P([N(0,(0,t.Inject)(t.ICommandService)),N(1,(0,t.Inject)(r.RefRangeService)),N(2,(0,t.Inject)(t.IUniverInstanceService)),N(3,(0,t.Inject)(t.Injector)),N(4,(0,t.Inject)(r.SheetInterceptorService)),N(5,(0,t.Inject)(F)),N(6,(0,t.Inject)(t.LocaleService))],Z);let Q=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._zebraCrossingCacheController=r,E(this,`_tableFilteredOutRows`,new Map),E(this,`_subscription`,null),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._initFilteredOutRows()}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this._getTableFilteredOutRows(t.unitId,t.subUnitId).has(t.row);return r?!0:n(r)}}))}_initFilteredOutRows(){this._tableManager.tableInitStatus$.pipe((0,i.filter)(e=>e),(0,i.switchMap)(()=>this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET)),(0,i.filter)(e=>e!=null),(0,i.switchMap)(e=>e.activeSheet$),(0,i.filter)(e=>e!=null)).subscribe(()=>{let e=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!e)return;let{unitId:t,subUnitId:n}=e;this._refreshTableFilteredOutRows(t,n)})}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{var t;let{unitId:n,subUnitId:r,tableId:i}=e,a=(t=this._univerInstanceService.getUnit(n))==null?void 0:t.getSheetBySheetId(r),o=this._tableManager.getTable(n,i);!a||!o||(o.getTableFilters().doFilter(a,o.getTableFilterRange()),this._refreshTableFilteredOutRows(n,r),this._zebraCrossingCacheController.updateZebraCrossingCache(n,r))}))}_refreshTableFilteredOutRows(e,t){let n=new Set;this._tableManager.getTablesBySubunitId(e,t).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),this._tableFilteredOutRows.set(this._getSheetKey(e,t),n)}_getTableFilteredOutRows(e,t){return this._tableFilteredOutRows.get(this._getSheetKey(e,t))??new Set}_getSheetKey(e,t){return`${e}|${t}`}dispose(){var e;super.dispose(),(e=this._subscription)==null||e.unsubscribe()}};Q=P([N(0,(0,t.Inject)(F)),N(1,(0,t.Inject)(r.SheetInterceptorService)),N(2,(0,t.Inject)(t.IUniverInstanceService)),N(3,(0,t.Inject)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=C,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},C,this._config);this._configService.setConfig(`sheets-table.config`,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[F],[J],[W],[I],[Q],[X],[Z],[Y]])}onReady(){(0,t.touchDependencies)(this._injector,[[Y],[X],[Z],[J],[W],[I],[Q]]),(0,t.touchDependencies)(this._injector,[[F]])}_initRegisterCommand(){[z,L,V,R,U,pt,H,B,ut,dt,mt,gt,ht,_t,vt,q,K].forEach(e=>this._commandService.registerCommand(e))}};E($,`pluginName`,ie),E($,`packageName`,yt),E($,`version`,bt),E($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=P([(0,t.DependentOn)(r.UniverSheetsPlugin),N(1,(0,t.Inject)(t.Injector)),N(2,t.IConfigService),N(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=z,e.AddSheetTableMutation=L,e.AddTableThemeCommand=ut,e.DeleteSheetTableCommand=V,e.DeleteSheetTableMutation=R,e.RemoveTableThemeCommand=dt,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=ae,e.SetSheetTableCommand=H,e.SetSheetTableFilterCommand=pt,e.SetSheetTableFilterMutation=U,e.SetSheetTableMutation=B,e.SheetTableInsertColCommand=gt,e.SheetTableInsertColumnAtCommand=_t,e.SheetTableInsertRowAtCommand=ht,e.SheetTableInsertRowCommand=mt,e.SheetTableRemoveColCommand=q,e.SheetTableRemoveColumnAtCommand=K,e.SheetTableRemoveRowCommand=vt,Object.defineProperty(e,"SheetTableService",{enumerable:!0,get:function(){return I}}),e.SheetsTableButtonStateEnum=d,Object.defineProperty(e,"SheetsTableController",{enumerable:!0,get:function(){return W}}),e.SheetsTableSortStateEnum=f,Object.defineProperty(e,"SheetsTableThemeController",{enumerable:!0,get:function(){return J}}),e.TABLE_FILTER_EMPTY_VALUE=oe,e.TableColumnDataTypeEnum=a,e.TableColumnFilterTypeEnum=o,e.TableConditionTypeEnum=s,e.TableDateCompareTypeEnum=u,Object.defineProperty(e,"TableManager",{enumerable:!0,get:function(){return F}}),e.TableNumberCompareTypeEnum=c,e.TableStringCompareTypeEnum=l,Object.defineProperty(e,"UniverSheetsTablePlugin",{enumerable:!0,get:function(){return $}}),e.customEmptyThemeWithBorderStyle=ee,e.getExistingNamesSet=x,e.isConditionFilter=y,e.isManualTableFilter=b,e.processStyleWithBorderStyle=te,e.validateSheetTableName=ft});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@univerjs/sheets-table",
3
- "version": "1.0.0-alpha.8",
3
+ "version": "1.0.0-beta.0",
4
4
  "private": false,
5
5
  "description": "Structured table model and commands for Univer Sheets.",
6
6
  "author": "DreamNum Co., Ltd. <developer@univer.ai>",
@@ -67,17 +67,17 @@
67
67
  "rxjs": ">=7.0.0"
68
68
  },
69
69
  "dependencies": {
70
- "@univerjs/core": "1.0.0-alpha.8",
71
- "@univerjs/sheets": "1.0.0-alpha.8",
72
- "@univerjs/engine-formula": "1.0.0-alpha.8"
70
+ "@univerjs/core": "1.0.0-beta.0",
71
+ "@univerjs/sheets": "1.0.0-beta.0",
72
+ "@univerjs/engine-formula": "1.0.0-beta.0"
73
73
  },
74
74
  "devDependencies": {
75
75
  "rxjs": "^7.8.2",
76
76
  "typescript": "^6.0.3",
77
77
  "vitest": "^4.1.10",
78
- "@univerjs-infra/shared": "1.0.0-alpha.8",
79
- "@univerjs/sheets-formula": "1.0.0-alpha.8",
80
- "@univerjs/engine-render": "1.0.0-alpha.8"
78
+ "@univerjs-infra/shared": "1.0.0-beta.0",
79
+ "@univerjs/engine-render": "1.0.0-beta.0",
80
+ "@univerjs/sheets-formula": "1.0.0-beta.0"
81
81
  },
82
82
  "scripts": {
83
83
  "test": "vitest run",