@univerjs/sheets-table 1.0.4 → 1.1.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 +62 -50
- package/lib/es/index.js +57 -45
- package/lib/index.js +57 -45
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +8 -8
package/lib/cjs/index.js
CHANGED
|
@@ -317,7 +317,7 @@ const tableThemeConfig = tableDefaultThemeStyleArr.map((item, index) => {
|
|
|
317
317
|
});
|
|
318
318
|
|
|
319
319
|
//#endregion
|
|
320
|
-
//#region \0@oxc-project+runtime@0.
|
|
320
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
321
321
|
function _typeof(o) {
|
|
322
322
|
"@babel/helpers - typeof";
|
|
323
323
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -328,7 +328,7 @@ function _typeof(o) {
|
|
|
328
328
|
}
|
|
329
329
|
|
|
330
330
|
//#endregion
|
|
331
|
-
//#region \0@oxc-project+runtime@0.
|
|
331
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
332
332
|
function toPrimitive(t, r) {
|
|
333
333
|
if ("object" != _typeof(t) || !t) return t;
|
|
334
334
|
var e = t[Symbol.toPrimitive];
|
|
@@ -341,14 +341,14 @@ function toPrimitive(t, r) {
|
|
|
341
341
|
}
|
|
342
342
|
|
|
343
343
|
//#endregion
|
|
344
|
-
//#region \0@oxc-project+runtime@0.
|
|
344
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
345
345
|
function toPropertyKey(t) {
|
|
346
346
|
var i = toPrimitive(t, "string");
|
|
347
347
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
//#endregion
|
|
351
|
-
//#region \0@oxc-project+runtime@0.
|
|
351
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
352
352
|
function _defineProperty(e, r, t) {
|
|
353
353
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
354
354
|
value: t,
|
|
@@ -621,7 +621,6 @@ const getWeekStart = (date) => {
|
|
|
621
621
|
weekStart.setDate(diff);
|
|
622
622
|
return weekStart;
|
|
623
623
|
};
|
|
624
|
-
const perWeek = 6048e5;
|
|
625
624
|
/**
|
|
626
625
|
* The provided date is in the current week.
|
|
627
626
|
* @param {Date} date - The date to compare.
|
|
@@ -641,7 +640,8 @@ const thisWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
641
640
|
*/
|
|
642
641
|
const nextWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
643
642
|
const weekStart = getWeekStart(date);
|
|
644
|
-
const anchorTimeNextWeekStart =
|
|
643
|
+
const anchorTimeNextWeekStart = getWeekStart(anchorTime);
|
|
644
|
+
anchorTimeNextWeekStart.setDate(anchorTimeNextWeekStart.getDate() + 7);
|
|
645
645
|
return weekStart.toDateString() === anchorTimeNextWeekStart.toDateString();
|
|
646
646
|
};
|
|
647
647
|
/**
|
|
@@ -652,7 +652,8 @@ const nextWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
652
652
|
*/
|
|
653
653
|
const lastWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
654
654
|
const weekStart = getWeekStart(date);
|
|
655
|
-
const anchorTimeLastWeekStart =
|
|
655
|
+
const anchorTimeLastWeekStart = getWeekStart(anchorTime);
|
|
656
|
+
anchorTimeLastWeekStart.setDate(anchorTimeLastWeekStart.getDate() - 7);
|
|
656
657
|
return weekStart.toDateString() === anchorTimeLastWeekStart.toDateString();
|
|
657
658
|
};
|
|
658
659
|
/**
|
|
@@ -686,7 +687,7 @@ const nextMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
686
687
|
nextMonthStart.setHours(0, 0, 0, 0);
|
|
687
688
|
nextMonthStart.setMonth(nextMonthStart.getMonth() + 1, 1);
|
|
688
689
|
const monthEnd = new Date(nextMonthStart);
|
|
689
|
-
monthEnd.setMonth(monthEnd.getMonth() + 1
|
|
690
|
+
monthEnd.setMonth(monthEnd.getMonth() + 1);
|
|
690
691
|
const dateTime = date.getTime();
|
|
691
692
|
return dateTime >= nextMonthStart.getTime() && dateTime < monthEnd.getTime();
|
|
692
693
|
};
|
|
@@ -697,9 +698,9 @@ const nextMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
697
698
|
* @returns {boolean} return the date is match
|
|
698
699
|
*/
|
|
699
700
|
const lastMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
700
|
-
const
|
|
701
|
-
const
|
|
702
|
-
|
|
701
|
+
const monthEnd = getMonthStart(anchorTime);
|
|
702
|
+
const lastMonthStart = new Date(monthEnd);
|
|
703
|
+
lastMonthStart.setMonth(lastMonthStart.getMonth() - 1);
|
|
703
704
|
const dateTime = date.getTime();
|
|
704
705
|
return dateTime >= lastMonthStart.getTime() && dateTime < monthEnd.getTime();
|
|
705
706
|
};
|
|
@@ -740,7 +741,7 @@ const nextQuarter = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
740
741
|
const nextQuarterStart = new Date(quarterStart);
|
|
741
742
|
nextQuarterStart.setMonth(nextQuarterStart.getMonth() + 3);
|
|
742
743
|
const nextQuarterEnd = new Date(nextQuarterStart);
|
|
743
|
-
nextQuarterEnd.setMonth(nextQuarterEnd.getMonth() + 3
|
|
744
|
+
nextQuarterEnd.setMonth(nextQuarterEnd.getMonth() + 3);
|
|
744
745
|
const dateTime = date.getTime();
|
|
745
746
|
return dateTime >= nextQuarterStart.getTime() && dateTime < nextQuarterEnd.getTime();
|
|
746
747
|
};
|
|
@@ -754,10 +755,8 @@ const lastQuarter = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
754
755
|
const quarterStart = getQuarterStart(anchorTime);
|
|
755
756
|
const lastQuarterStart = new Date(quarterStart);
|
|
756
757
|
lastQuarterStart.setMonth(lastQuarterStart.getMonth() - 3);
|
|
757
|
-
const lastQuarterEnd = new Date(quarterStart);
|
|
758
|
-
lastQuarterEnd.setDate(0);
|
|
759
758
|
const dateTime = date.getTime();
|
|
760
|
-
return dateTime >= lastQuarterStart.getTime() && dateTime <
|
|
759
|
+
return dateTime >= lastQuarterStart.getTime() && dateTime < quarterStart.getTime();
|
|
761
760
|
};
|
|
762
761
|
/**
|
|
763
762
|
* The provided date is in the current year.
|
|
@@ -1496,7 +1495,7 @@ var TableFilters = class {
|
|
|
1496
1495
|
}
|
|
1497
1496
|
getExecuteFunc(sheet, range, columnIndex, filter) {
|
|
1498
1497
|
if (filter.filterType === "manual") {
|
|
1499
|
-
const valuesSet = new Set(filter.values);
|
|
1498
|
+
const valuesSet = new Set(filter.values.map(String));
|
|
1500
1499
|
return (value) => {
|
|
1501
1500
|
if (value == null) return valuesSet.has(TABLE_FILTER_EMPTY_VALUE);
|
|
1502
1501
|
return valuesSet.has(String(value));
|
|
@@ -1725,10 +1724,7 @@ var Table = class {
|
|
|
1725
1724
|
return this._tableFilters.getFilterStates(range);
|
|
1726
1725
|
}
|
|
1727
1726
|
toJSON() {
|
|
1728
|
-
const columns =
|
|
1729
|
-
this._columns.forEach((column) => {
|
|
1730
|
-
columns.push(column.toJSON());
|
|
1731
|
-
});
|
|
1727
|
+
const columns = this._columnOrder.map((columnId) => this._columns.get(columnId).toJSON());
|
|
1732
1728
|
return {
|
|
1733
1729
|
id: this._id,
|
|
1734
1730
|
name: this._name,
|
|
@@ -1778,7 +1774,7 @@ var Table = class {
|
|
|
1778
1774
|
};
|
|
1779
1775
|
|
|
1780
1776
|
//#endregion
|
|
1781
|
-
//#region \0@oxc-project+runtime@0.
|
|
1777
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
1782
1778
|
function __decorateParam(paramIndex, decorator) {
|
|
1783
1779
|
return function(target, key) {
|
|
1784
1780
|
decorator(target, key, paramIndex);
|
|
@@ -1786,7 +1782,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
1786
1782
|
}
|
|
1787
1783
|
|
|
1788
1784
|
//#endregion
|
|
1789
|
-
//#region \0@oxc-project+runtime@0.
|
|
1785
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
1790
1786
|
function __decorate(decorators, target, key, desc) {
|
|
1791
1787
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1792
1788
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2416,12 +2412,35 @@ const AddTableThemeCommand = {
|
|
|
2416
2412
|
}
|
|
2417
2413
|
};
|
|
2418
2414
|
|
|
2415
|
+
//#endregion
|
|
2416
|
+
//#region src/commands/mutations/set-table-filter.mutation.ts
|
|
2417
|
+
const SetSheetTableFilterMutation = {
|
|
2418
|
+
id: "sheet.mutation.set-table-filter",
|
|
2419
|
+
type: _univerjs_core.CommandType.MUTATION,
|
|
2420
|
+
handler: (accessor, params) => {
|
|
2421
|
+
const { tableId, unitId, column, tableFilter } = params;
|
|
2422
|
+
const tableManager = accessor.get(TableManager);
|
|
2423
|
+
const table = tableManager.getTable(unitId, tableId);
|
|
2424
|
+
tableManager.addFilter(unitId, tableId, column, tableFilter);
|
|
2425
|
+
if (table) {
|
|
2426
|
+
var _tableManager$toJSON$;
|
|
2427
|
+
const tableFilters = table.getTableFilters();
|
|
2428
|
+
if (params.filterOutRows) tableFilters.setFilterOutRows(params.filterOutRows);
|
|
2429
|
+
else params.filterOutRows = [...tableFilters.getFilterOutRows()];
|
|
2430
|
+
params.subUnitId = table.getSubunitId();
|
|
2431
|
+
params.tableFilteredOutRows = ((_tableManager$toJSON$ = tableManager.toJSON(unitId)[params.subUnitId]) === null || _tableManager$toJSON$ === void 0 ? void 0 : _tableManager$toJSON$.tableFilteredOutRows) ?? [];
|
|
2432
|
+
}
|
|
2433
|
+
return true;
|
|
2434
|
+
}
|
|
2435
|
+
};
|
|
2436
|
+
|
|
2419
2437
|
//#endregion
|
|
2420
2438
|
//#region src/commands/commands/delete-sheet-table.command.ts
|
|
2421
2439
|
const DeleteSheetTableCommand = {
|
|
2422
2440
|
id: "sheet.command.delete-table",
|
|
2423
2441
|
type: _univerjs_core.CommandType.COMMAND,
|
|
2424
2442
|
handler: (accessor, params) => {
|
|
2443
|
+
var _tableConfig$filters$;
|
|
2425
2444
|
if (!params) return false;
|
|
2426
2445
|
const undoRedoService = accessor.get(_univerjs_core.IUndoRedoService);
|
|
2427
2446
|
const commandService = accessor.get(_univerjs_core.ICommandService);
|
|
@@ -2460,6 +2479,17 @@ const DeleteSheetTableCommand = {
|
|
|
2460
2479
|
options: tableConfig.options
|
|
2461
2480
|
}
|
|
2462
2481
|
});
|
|
2482
|
+
(_tableConfig$filters$ = tableConfig.filters.tableColumnFilterList) === null || _tableConfig$filters$ === void 0 || _tableConfig$filters$.forEach((tableFilter, column) => {
|
|
2483
|
+
if (tableFilter) undos.push({
|
|
2484
|
+
id: SetSheetTableFilterMutation.id,
|
|
2485
|
+
params: {
|
|
2486
|
+
unitId: params.unitId,
|
|
2487
|
+
tableId: params.tableId,
|
|
2488
|
+
column,
|
|
2489
|
+
tableFilter
|
|
2490
|
+
}
|
|
2491
|
+
});
|
|
2492
|
+
});
|
|
2463
2493
|
undos.push(...interceptorCommands.undos);
|
|
2464
2494
|
if ((0, _univerjs_core.sequenceExecute)(redos, commandService).result) {
|
|
2465
2495
|
undoRedoService.pushUndoRedo({
|
|
@@ -2802,28 +2832,6 @@ const SetSheetTableCommand = {
|
|
|
2802
2832
|
}
|
|
2803
2833
|
};
|
|
2804
2834
|
|
|
2805
|
-
//#endregion
|
|
2806
|
-
//#region src/commands/mutations/set-table-filter.mutation.ts
|
|
2807
|
-
const SetSheetTableFilterMutation = {
|
|
2808
|
-
id: "sheet.mutation.set-table-filter",
|
|
2809
|
-
type: _univerjs_core.CommandType.MUTATION,
|
|
2810
|
-
handler: (accessor, params) => {
|
|
2811
|
-
const { tableId, unitId, column, tableFilter } = params;
|
|
2812
|
-
const tableManager = accessor.get(TableManager);
|
|
2813
|
-
const table = tableManager.getTable(unitId, tableId);
|
|
2814
|
-
tableManager.addFilter(unitId, tableId, column, tableFilter);
|
|
2815
|
-
if (table) {
|
|
2816
|
-
var _tableManager$toJSON$;
|
|
2817
|
-
const tableFilters = table.getTableFilters();
|
|
2818
|
-
if (params.filterOutRows) tableFilters.setFilterOutRows(params.filterOutRows);
|
|
2819
|
-
else params.filterOutRows = [...tableFilters.getFilterOutRows()];
|
|
2820
|
-
params.subUnitId = table.getSubunitId();
|
|
2821
|
-
params.tableFilteredOutRows = ((_tableManager$toJSON$ = tableManager.toJSON(unitId)[params.subUnitId]) === null || _tableManager$toJSON$ === void 0 ? void 0 : _tableManager$toJSON$.tableFilteredOutRows) ?? [];
|
|
2822
|
-
}
|
|
2823
|
-
return true;
|
|
2824
|
-
}
|
|
2825
|
-
};
|
|
2826
|
-
|
|
2827
2835
|
//#endregion
|
|
2828
2836
|
//#region src/commands/commands/set-table-filter.command.ts
|
|
2829
2837
|
const SetSheetTableFilterCommand = {
|
|
@@ -3947,7 +3955,7 @@ SheetsTableThemeController = __decorate([
|
|
|
3947
3955
|
//#endregion
|
|
3948
3956
|
//#region package.json
|
|
3949
3957
|
var name = "@univerjs/sheets-table";
|
|
3950
|
-
var version = "1.0
|
|
3958
|
+
var version = "1.1.0";
|
|
3951
3959
|
|
|
3952
3960
|
//#endregion
|
|
3953
3961
|
//#region src/commands/mutations/move-sheet-table.mutation.ts
|
|
@@ -4800,6 +4808,10 @@ let TableFilterController = class TableFilterController extends _univerjs_core.D
|
|
|
4800
4808
|
}));
|
|
4801
4809
|
}
|
|
4802
4810
|
registerFilterChangeEvent() {
|
|
4811
|
+
this.disposeWithMe(this._tableManager.tableDelete$.subscribe(({ unitId, subUnitId }) => {
|
|
4812
|
+
this._refreshTableFilteredOutRows(unitId, subUnitId);
|
|
4813
|
+
this._zebraCrossingCacheController.updateZebraCrossingCache(unitId, subUnitId);
|
|
4814
|
+
}));
|
|
4803
4815
|
this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe((event) => {
|
|
4804
4816
|
const { unitId, subUnitId, tableId, oldSubUnitId } = event;
|
|
4805
4817
|
const workbook = this._univerInstanceService.getUnit(unitId);
|
|
@@ -4939,21 +4951,21 @@ exports.SheetTableInsertRowCommand = SheetTableInsertRowCommand;
|
|
|
4939
4951
|
exports.SheetTableRemoveColCommand = SheetTableRemoveColCommand;
|
|
4940
4952
|
exports.SheetTableRemoveColumnAtCommand = SheetTableRemoveColumnAtCommand;
|
|
4941
4953
|
exports.SheetTableRemoveRowCommand = SheetTableRemoveRowCommand;
|
|
4942
|
-
Object.defineProperty(exports,
|
|
4954
|
+
Object.defineProperty(exports, "SheetTableService", {
|
|
4943
4955
|
enumerable: true,
|
|
4944
4956
|
get: function () {
|
|
4945
4957
|
return SheetTableService;
|
|
4946
4958
|
}
|
|
4947
4959
|
});
|
|
4948
4960
|
exports.SheetsTableButtonStateEnum = SheetsTableButtonStateEnum;
|
|
4949
|
-
Object.defineProperty(exports,
|
|
4961
|
+
Object.defineProperty(exports, "SheetsTableController", {
|
|
4950
4962
|
enumerable: true,
|
|
4951
4963
|
get: function () {
|
|
4952
4964
|
return SheetsTableController;
|
|
4953
4965
|
}
|
|
4954
4966
|
});
|
|
4955
4967
|
exports.SheetsTableSortStateEnum = SheetsTableSortStateEnum;
|
|
4956
|
-
Object.defineProperty(exports,
|
|
4968
|
+
Object.defineProperty(exports, "SheetsTableThemeController", {
|
|
4957
4969
|
enumerable: true,
|
|
4958
4970
|
get: function () {
|
|
4959
4971
|
return SheetsTableThemeController;
|
|
@@ -4964,7 +4976,7 @@ exports.TableColumnDataTypeEnum = TableColumnDataTypeEnum;
|
|
|
4964
4976
|
exports.TableColumnFilterTypeEnum = TableColumnFilterTypeEnum;
|
|
4965
4977
|
exports.TableConditionTypeEnum = TableConditionTypeEnum;
|
|
4966
4978
|
exports.TableDateCompareTypeEnum = TableDateCompareTypeEnum;
|
|
4967
|
-
Object.defineProperty(exports,
|
|
4979
|
+
Object.defineProperty(exports, "TableManager", {
|
|
4968
4980
|
enumerable: true,
|
|
4969
4981
|
get: function () {
|
|
4970
4982
|
return TableManager;
|
|
@@ -4972,7 +4984,7 @@ Object.defineProperty(exports, 'TableManager', {
|
|
|
4972
4984
|
});
|
|
4973
4985
|
exports.TableNumberCompareTypeEnum = TableNumberCompareTypeEnum;
|
|
4974
4986
|
exports.TableStringCompareTypeEnum = TableStringCompareTypeEnum;
|
|
4975
|
-
Object.defineProperty(exports,
|
|
4987
|
+
Object.defineProperty(exports, "UniverSheetsTablePlugin", {
|
|
4976
4988
|
enumerable: true,
|
|
4977
4989
|
get: function () {
|
|
4978
4990
|
return UniverSheetsTablePlugin;
|
package/lib/es/index.js
CHANGED
|
@@ -316,7 +316,7 @@ const tableThemeConfig = tableDefaultThemeStyleArr.map((item, index) => {
|
|
|
316
316
|
});
|
|
317
317
|
|
|
318
318
|
//#endregion
|
|
319
|
-
//#region \0@oxc-project+runtime@0.
|
|
319
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
320
320
|
function _typeof(o) {
|
|
321
321
|
"@babel/helpers - typeof";
|
|
322
322
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -327,7 +327,7 @@ function _typeof(o) {
|
|
|
327
327
|
}
|
|
328
328
|
|
|
329
329
|
//#endregion
|
|
330
|
-
//#region \0@oxc-project+runtime@0.
|
|
330
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
331
331
|
function toPrimitive(t, r) {
|
|
332
332
|
if ("object" != _typeof(t) || !t) return t;
|
|
333
333
|
var e = t[Symbol.toPrimitive];
|
|
@@ -340,14 +340,14 @@ function toPrimitive(t, r) {
|
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
//#endregion
|
|
343
|
-
//#region \0@oxc-project+runtime@0.
|
|
343
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
344
344
|
function toPropertyKey(t) {
|
|
345
345
|
var i = toPrimitive(t, "string");
|
|
346
346
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
347
347
|
}
|
|
348
348
|
|
|
349
349
|
//#endregion
|
|
350
|
-
//#region \0@oxc-project+runtime@0.
|
|
350
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
351
351
|
function _defineProperty(e, r, t) {
|
|
352
352
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
353
353
|
value: t,
|
|
@@ -620,7 +620,6 @@ const getWeekStart = (date) => {
|
|
|
620
620
|
weekStart.setDate(diff);
|
|
621
621
|
return weekStart;
|
|
622
622
|
};
|
|
623
|
-
const perWeek = 6048e5;
|
|
624
623
|
/**
|
|
625
624
|
* The provided date is in the current week.
|
|
626
625
|
* @param {Date} date - The date to compare.
|
|
@@ -640,7 +639,8 @@ const thisWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
640
639
|
*/
|
|
641
640
|
const nextWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
642
641
|
const weekStart = getWeekStart(date);
|
|
643
|
-
const anchorTimeNextWeekStart =
|
|
642
|
+
const anchorTimeNextWeekStart = getWeekStart(anchorTime);
|
|
643
|
+
anchorTimeNextWeekStart.setDate(anchorTimeNextWeekStart.getDate() + 7);
|
|
644
644
|
return weekStart.toDateString() === anchorTimeNextWeekStart.toDateString();
|
|
645
645
|
};
|
|
646
646
|
/**
|
|
@@ -651,7 +651,8 @@ const nextWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
651
651
|
*/
|
|
652
652
|
const lastWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
653
653
|
const weekStart = getWeekStart(date);
|
|
654
|
-
const anchorTimeLastWeekStart =
|
|
654
|
+
const anchorTimeLastWeekStart = getWeekStart(anchorTime);
|
|
655
|
+
anchorTimeLastWeekStart.setDate(anchorTimeLastWeekStart.getDate() - 7);
|
|
655
656
|
return weekStart.toDateString() === anchorTimeLastWeekStart.toDateString();
|
|
656
657
|
};
|
|
657
658
|
/**
|
|
@@ -685,7 +686,7 @@ const nextMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
685
686
|
nextMonthStart.setHours(0, 0, 0, 0);
|
|
686
687
|
nextMonthStart.setMonth(nextMonthStart.getMonth() + 1, 1);
|
|
687
688
|
const monthEnd = new Date(nextMonthStart);
|
|
688
|
-
monthEnd.setMonth(monthEnd.getMonth() + 1
|
|
689
|
+
monthEnd.setMonth(monthEnd.getMonth() + 1);
|
|
689
690
|
const dateTime = date.getTime();
|
|
690
691
|
return dateTime >= nextMonthStart.getTime() && dateTime < monthEnd.getTime();
|
|
691
692
|
};
|
|
@@ -696,9 +697,9 @@ const nextMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
696
697
|
* @returns {boolean} return the date is match
|
|
697
698
|
*/
|
|
698
699
|
const lastMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
699
|
-
const
|
|
700
|
-
const
|
|
701
|
-
|
|
700
|
+
const monthEnd = getMonthStart(anchorTime);
|
|
701
|
+
const lastMonthStart = new Date(monthEnd);
|
|
702
|
+
lastMonthStart.setMonth(lastMonthStart.getMonth() - 1);
|
|
702
703
|
const dateTime = date.getTime();
|
|
703
704
|
return dateTime >= lastMonthStart.getTime() && dateTime < monthEnd.getTime();
|
|
704
705
|
};
|
|
@@ -739,7 +740,7 @@ const nextQuarter = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
739
740
|
const nextQuarterStart = new Date(quarterStart);
|
|
740
741
|
nextQuarterStart.setMonth(nextQuarterStart.getMonth() + 3);
|
|
741
742
|
const nextQuarterEnd = new Date(nextQuarterStart);
|
|
742
|
-
nextQuarterEnd.setMonth(nextQuarterEnd.getMonth() + 3
|
|
743
|
+
nextQuarterEnd.setMonth(nextQuarterEnd.getMonth() + 3);
|
|
743
744
|
const dateTime = date.getTime();
|
|
744
745
|
return dateTime >= nextQuarterStart.getTime() && dateTime < nextQuarterEnd.getTime();
|
|
745
746
|
};
|
|
@@ -753,10 +754,8 @@ const lastQuarter = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
753
754
|
const quarterStart = getQuarterStart(anchorTime);
|
|
754
755
|
const lastQuarterStart = new Date(quarterStart);
|
|
755
756
|
lastQuarterStart.setMonth(lastQuarterStart.getMonth() - 3);
|
|
756
|
-
const lastQuarterEnd = new Date(quarterStart);
|
|
757
|
-
lastQuarterEnd.setDate(0);
|
|
758
757
|
const dateTime = date.getTime();
|
|
759
|
-
return dateTime >= lastQuarterStart.getTime() && dateTime <
|
|
758
|
+
return dateTime >= lastQuarterStart.getTime() && dateTime < quarterStart.getTime();
|
|
760
759
|
};
|
|
761
760
|
/**
|
|
762
761
|
* The provided date is in the current year.
|
|
@@ -1495,7 +1494,7 @@ var TableFilters = class {
|
|
|
1495
1494
|
}
|
|
1496
1495
|
getExecuteFunc(sheet, range, columnIndex, filter) {
|
|
1497
1496
|
if (filter.filterType === "manual") {
|
|
1498
|
-
const valuesSet = new Set(filter.values);
|
|
1497
|
+
const valuesSet = new Set(filter.values.map(String));
|
|
1499
1498
|
return (value) => {
|
|
1500
1499
|
if (value == null) return valuesSet.has(TABLE_FILTER_EMPTY_VALUE);
|
|
1501
1500
|
return valuesSet.has(String(value));
|
|
@@ -1724,10 +1723,7 @@ var Table = class {
|
|
|
1724
1723
|
return this._tableFilters.getFilterStates(range);
|
|
1725
1724
|
}
|
|
1726
1725
|
toJSON() {
|
|
1727
|
-
const columns =
|
|
1728
|
-
this._columns.forEach((column) => {
|
|
1729
|
-
columns.push(column.toJSON());
|
|
1730
|
-
});
|
|
1726
|
+
const columns = this._columnOrder.map((columnId) => this._columns.get(columnId).toJSON());
|
|
1731
1727
|
return {
|
|
1732
1728
|
id: this._id,
|
|
1733
1729
|
name: this._name,
|
|
@@ -1777,7 +1773,7 @@ var Table = class {
|
|
|
1777
1773
|
};
|
|
1778
1774
|
|
|
1779
1775
|
//#endregion
|
|
1780
|
-
//#region \0@oxc-project+runtime@0.
|
|
1776
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
1781
1777
|
function __decorateParam(paramIndex, decorator) {
|
|
1782
1778
|
return function(target, key) {
|
|
1783
1779
|
decorator(target, key, paramIndex);
|
|
@@ -1785,7 +1781,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
1785
1781
|
}
|
|
1786
1782
|
|
|
1787
1783
|
//#endregion
|
|
1788
|
-
//#region \0@oxc-project+runtime@0.
|
|
1784
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
1789
1785
|
function __decorate(decorators, target, key, desc) {
|
|
1790
1786
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1791
1787
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2415,12 +2411,35 @@ const AddTableThemeCommand = {
|
|
|
2415
2411
|
}
|
|
2416
2412
|
};
|
|
2417
2413
|
|
|
2414
|
+
//#endregion
|
|
2415
|
+
//#region src/commands/mutations/set-table-filter.mutation.ts
|
|
2416
|
+
const SetSheetTableFilterMutation = {
|
|
2417
|
+
id: "sheet.mutation.set-table-filter",
|
|
2418
|
+
type: CommandType.MUTATION,
|
|
2419
|
+
handler: (accessor, params) => {
|
|
2420
|
+
const { tableId, unitId, column, tableFilter } = params;
|
|
2421
|
+
const tableManager = accessor.get(TableManager);
|
|
2422
|
+
const table = tableManager.getTable(unitId, tableId);
|
|
2423
|
+
tableManager.addFilter(unitId, tableId, column, tableFilter);
|
|
2424
|
+
if (table) {
|
|
2425
|
+
var _tableManager$toJSON$;
|
|
2426
|
+
const tableFilters = table.getTableFilters();
|
|
2427
|
+
if (params.filterOutRows) tableFilters.setFilterOutRows(params.filterOutRows);
|
|
2428
|
+
else params.filterOutRows = [...tableFilters.getFilterOutRows()];
|
|
2429
|
+
params.subUnitId = table.getSubunitId();
|
|
2430
|
+
params.tableFilteredOutRows = ((_tableManager$toJSON$ = tableManager.toJSON(unitId)[params.subUnitId]) === null || _tableManager$toJSON$ === void 0 ? void 0 : _tableManager$toJSON$.tableFilteredOutRows) ?? [];
|
|
2431
|
+
}
|
|
2432
|
+
return true;
|
|
2433
|
+
}
|
|
2434
|
+
};
|
|
2435
|
+
|
|
2418
2436
|
//#endregion
|
|
2419
2437
|
//#region src/commands/commands/delete-sheet-table.command.ts
|
|
2420
2438
|
const DeleteSheetTableCommand = {
|
|
2421
2439
|
id: "sheet.command.delete-table",
|
|
2422
2440
|
type: CommandType.COMMAND,
|
|
2423
2441
|
handler: (accessor, params) => {
|
|
2442
|
+
var _tableConfig$filters$;
|
|
2424
2443
|
if (!params) return false;
|
|
2425
2444
|
const undoRedoService = accessor.get(IUndoRedoService);
|
|
2426
2445
|
const commandService = accessor.get(ICommandService);
|
|
@@ -2459,6 +2478,17 @@ const DeleteSheetTableCommand = {
|
|
|
2459
2478
|
options: tableConfig.options
|
|
2460
2479
|
}
|
|
2461
2480
|
});
|
|
2481
|
+
(_tableConfig$filters$ = tableConfig.filters.tableColumnFilterList) === null || _tableConfig$filters$ === void 0 || _tableConfig$filters$.forEach((tableFilter, column) => {
|
|
2482
|
+
if (tableFilter) undos.push({
|
|
2483
|
+
id: SetSheetTableFilterMutation.id,
|
|
2484
|
+
params: {
|
|
2485
|
+
unitId: params.unitId,
|
|
2486
|
+
tableId: params.tableId,
|
|
2487
|
+
column,
|
|
2488
|
+
tableFilter
|
|
2489
|
+
}
|
|
2490
|
+
});
|
|
2491
|
+
});
|
|
2462
2492
|
undos.push(...interceptorCommands.undos);
|
|
2463
2493
|
if (sequenceExecute(redos, commandService).result) {
|
|
2464
2494
|
undoRedoService.pushUndoRedo({
|
|
@@ -2801,28 +2831,6 @@ const SetSheetTableCommand = {
|
|
|
2801
2831
|
}
|
|
2802
2832
|
};
|
|
2803
2833
|
|
|
2804
|
-
//#endregion
|
|
2805
|
-
//#region src/commands/mutations/set-table-filter.mutation.ts
|
|
2806
|
-
const SetSheetTableFilterMutation = {
|
|
2807
|
-
id: "sheet.mutation.set-table-filter",
|
|
2808
|
-
type: CommandType.MUTATION,
|
|
2809
|
-
handler: (accessor, params) => {
|
|
2810
|
-
const { tableId, unitId, column, tableFilter } = params;
|
|
2811
|
-
const tableManager = accessor.get(TableManager);
|
|
2812
|
-
const table = tableManager.getTable(unitId, tableId);
|
|
2813
|
-
tableManager.addFilter(unitId, tableId, column, tableFilter);
|
|
2814
|
-
if (table) {
|
|
2815
|
-
var _tableManager$toJSON$;
|
|
2816
|
-
const tableFilters = table.getTableFilters();
|
|
2817
|
-
if (params.filterOutRows) tableFilters.setFilterOutRows(params.filterOutRows);
|
|
2818
|
-
else params.filterOutRows = [...tableFilters.getFilterOutRows()];
|
|
2819
|
-
params.subUnitId = table.getSubunitId();
|
|
2820
|
-
params.tableFilteredOutRows = ((_tableManager$toJSON$ = tableManager.toJSON(unitId)[params.subUnitId]) === null || _tableManager$toJSON$ === void 0 ? void 0 : _tableManager$toJSON$.tableFilteredOutRows) ?? [];
|
|
2821
|
-
}
|
|
2822
|
-
return true;
|
|
2823
|
-
}
|
|
2824
|
-
};
|
|
2825
|
-
|
|
2826
2834
|
//#endregion
|
|
2827
2835
|
//#region src/commands/commands/set-table-filter.command.ts
|
|
2828
2836
|
const SetSheetTableFilterCommand = {
|
|
@@ -3946,7 +3954,7 @@ SheetsTableThemeController = __decorate([
|
|
|
3946
3954
|
//#endregion
|
|
3947
3955
|
//#region package.json
|
|
3948
3956
|
var name = "@univerjs/sheets-table";
|
|
3949
|
-
var version = "1.0
|
|
3957
|
+
var version = "1.1.0";
|
|
3950
3958
|
|
|
3951
3959
|
//#endregion
|
|
3952
3960
|
//#region src/commands/mutations/move-sheet-table.mutation.ts
|
|
@@ -4799,6 +4807,10 @@ let TableFilterController = class TableFilterController extends Disposable {
|
|
|
4799
4807
|
}));
|
|
4800
4808
|
}
|
|
4801
4809
|
registerFilterChangeEvent() {
|
|
4810
|
+
this.disposeWithMe(this._tableManager.tableDelete$.subscribe(({ unitId, subUnitId }) => {
|
|
4811
|
+
this._refreshTableFilteredOutRows(unitId, subUnitId);
|
|
4812
|
+
this._zebraCrossingCacheController.updateZebraCrossingCache(unitId, subUnitId);
|
|
4813
|
+
}));
|
|
4802
4814
|
this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe((event) => {
|
|
4803
4815
|
const { unitId, subUnitId, tableId, oldSubUnitId } = event;
|
|
4804
4816
|
const workbook = this._univerInstanceService.getUnit(unitId);
|
package/lib/index.js
CHANGED
|
@@ -316,7 +316,7 @@ const tableThemeConfig = tableDefaultThemeStyleArr.map((item, index) => {
|
|
|
316
316
|
});
|
|
317
317
|
|
|
318
318
|
//#endregion
|
|
319
|
-
//#region \0@oxc-project+runtime@0.
|
|
319
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/typeof.js
|
|
320
320
|
function _typeof(o) {
|
|
321
321
|
"@babel/helpers - typeof";
|
|
322
322
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -327,7 +327,7 @@ function _typeof(o) {
|
|
|
327
327
|
}
|
|
328
328
|
|
|
329
329
|
//#endregion
|
|
330
|
-
//#region \0@oxc-project+runtime@0.
|
|
330
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPrimitive.js
|
|
331
331
|
function toPrimitive(t, r) {
|
|
332
332
|
if ("object" != _typeof(t) || !t) return t;
|
|
333
333
|
var e = t[Symbol.toPrimitive];
|
|
@@ -340,14 +340,14 @@ function toPrimitive(t, r) {
|
|
|
340
340
|
}
|
|
341
341
|
|
|
342
342
|
//#endregion
|
|
343
|
-
//#region \0@oxc-project+runtime@0.
|
|
343
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/toPropertyKey.js
|
|
344
344
|
function toPropertyKey(t) {
|
|
345
345
|
var i = toPrimitive(t, "string");
|
|
346
346
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
347
347
|
}
|
|
348
348
|
|
|
349
349
|
//#endregion
|
|
350
|
-
//#region \0@oxc-project+runtime@0.
|
|
350
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/defineProperty.js
|
|
351
351
|
function _defineProperty(e, r, t) {
|
|
352
352
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
353
353
|
value: t,
|
|
@@ -620,7 +620,6 @@ const getWeekStart = (date) => {
|
|
|
620
620
|
weekStart.setDate(diff);
|
|
621
621
|
return weekStart;
|
|
622
622
|
};
|
|
623
|
-
const perWeek = 6048e5;
|
|
624
623
|
/**
|
|
625
624
|
* The provided date is in the current week.
|
|
626
625
|
* @param {Date} date - The date to compare.
|
|
@@ -640,7 +639,8 @@ const thisWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
640
639
|
*/
|
|
641
640
|
const nextWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
642
641
|
const weekStart = getWeekStart(date);
|
|
643
|
-
const anchorTimeNextWeekStart =
|
|
642
|
+
const anchorTimeNextWeekStart = getWeekStart(anchorTime);
|
|
643
|
+
anchorTimeNextWeekStart.setDate(anchorTimeNextWeekStart.getDate() + 7);
|
|
644
644
|
return weekStart.toDateString() === anchorTimeNextWeekStart.toDateString();
|
|
645
645
|
};
|
|
646
646
|
/**
|
|
@@ -651,7 +651,8 @@ const nextWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
651
651
|
*/
|
|
652
652
|
const lastWeek = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
653
653
|
const weekStart = getWeekStart(date);
|
|
654
|
-
const anchorTimeLastWeekStart =
|
|
654
|
+
const anchorTimeLastWeekStart = getWeekStart(anchorTime);
|
|
655
|
+
anchorTimeLastWeekStart.setDate(anchorTimeLastWeekStart.getDate() - 7);
|
|
655
656
|
return weekStart.toDateString() === anchorTimeLastWeekStart.toDateString();
|
|
656
657
|
};
|
|
657
658
|
/**
|
|
@@ -685,7 +686,7 @@ const nextMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
685
686
|
nextMonthStart.setHours(0, 0, 0, 0);
|
|
686
687
|
nextMonthStart.setMonth(nextMonthStart.getMonth() + 1, 1);
|
|
687
688
|
const monthEnd = new Date(nextMonthStart);
|
|
688
|
-
monthEnd.setMonth(monthEnd.getMonth() + 1
|
|
689
|
+
monthEnd.setMonth(monthEnd.getMonth() + 1);
|
|
689
690
|
const dateTime = date.getTime();
|
|
690
691
|
return dateTime >= nextMonthStart.getTime() && dateTime < monthEnd.getTime();
|
|
691
692
|
};
|
|
@@ -696,9 +697,9 @@ const nextMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
696
697
|
* @returns {boolean} return the date is match
|
|
697
698
|
*/
|
|
698
699
|
const lastMonth = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
699
|
-
const
|
|
700
|
-
const
|
|
701
|
-
|
|
700
|
+
const monthEnd = getMonthStart(anchorTime);
|
|
701
|
+
const lastMonthStart = new Date(monthEnd);
|
|
702
|
+
lastMonthStart.setMonth(lastMonthStart.getMonth() - 1);
|
|
702
703
|
const dateTime = date.getTime();
|
|
703
704
|
return dateTime >= lastMonthStart.getTime() && dateTime < monthEnd.getTime();
|
|
704
705
|
};
|
|
@@ -739,7 +740,7 @@ const nextQuarter = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
739
740
|
const nextQuarterStart = new Date(quarterStart);
|
|
740
741
|
nextQuarterStart.setMonth(nextQuarterStart.getMonth() + 3);
|
|
741
742
|
const nextQuarterEnd = new Date(nextQuarterStart);
|
|
742
|
-
nextQuarterEnd.setMonth(nextQuarterEnd.getMonth() + 3
|
|
743
|
+
nextQuarterEnd.setMonth(nextQuarterEnd.getMonth() + 3);
|
|
743
744
|
const dateTime = date.getTime();
|
|
744
745
|
return dateTime >= nextQuarterStart.getTime() && dateTime < nextQuarterEnd.getTime();
|
|
745
746
|
};
|
|
@@ -753,10 +754,8 @@ const lastQuarter = (date, anchorTime = /* @__PURE__ */ new Date()) => {
|
|
|
753
754
|
const quarterStart = getQuarterStart(anchorTime);
|
|
754
755
|
const lastQuarterStart = new Date(quarterStart);
|
|
755
756
|
lastQuarterStart.setMonth(lastQuarterStart.getMonth() - 3);
|
|
756
|
-
const lastQuarterEnd = new Date(quarterStart);
|
|
757
|
-
lastQuarterEnd.setDate(0);
|
|
758
757
|
const dateTime = date.getTime();
|
|
759
|
-
return dateTime >= lastQuarterStart.getTime() && dateTime <
|
|
758
|
+
return dateTime >= lastQuarterStart.getTime() && dateTime < quarterStart.getTime();
|
|
760
759
|
};
|
|
761
760
|
/**
|
|
762
761
|
* The provided date is in the current year.
|
|
@@ -1495,7 +1494,7 @@ var TableFilters = class {
|
|
|
1495
1494
|
}
|
|
1496
1495
|
getExecuteFunc(sheet, range, columnIndex, filter) {
|
|
1497
1496
|
if (filter.filterType === "manual") {
|
|
1498
|
-
const valuesSet = new Set(filter.values);
|
|
1497
|
+
const valuesSet = new Set(filter.values.map(String));
|
|
1499
1498
|
return (value) => {
|
|
1500
1499
|
if (value == null) return valuesSet.has(TABLE_FILTER_EMPTY_VALUE);
|
|
1501
1500
|
return valuesSet.has(String(value));
|
|
@@ -1724,10 +1723,7 @@ var Table = class {
|
|
|
1724
1723
|
return this._tableFilters.getFilterStates(range);
|
|
1725
1724
|
}
|
|
1726
1725
|
toJSON() {
|
|
1727
|
-
const columns =
|
|
1728
|
-
this._columns.forEach((column) => {
|
|
1729
|
-
columns.push(column.toJSON());
|
|
1730
|
-
});
|
|
1726
|
+
const columns = this._columnOrder.map((columnId) => this._columns.get(columnId).toJSON());
|
|
1731
1727
|
return {
|
|
1732
1728
|
id: this._id,
|
|
1733
1729
|
name: this._name,
|
|
@@ -1777,7 +1773,7 @@ var Table = class {
|
|
|
1777
1773
|
};
|
|
1778
1774
|
|
|
1779
1775
|
//#endregion
|
|
1780
|
-
//#region \0@oxc-project+runtime@0.
|
|
1776
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorateParam.js
|
|
1781
1777
|
function __decorateParam(paramIndex, decorator) {
|
|
1782
1778
|
return function(target, key) {
|
|
1783
1779
|
decorator(target, key, paramIndex);
|
|
@@ -1785,7 +1781,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
1785
1781
|
}
|
|
1786
1782
|
|
|
1787
1783
|
//#endregion
|
|
1788
|
-
//#region \0@oxc-project+runtime@0.
|
|
1784
|
+
//#region \0@oxc-project+runtime@0.153.0/helpers/esm/decorate.js
|
|
1789
1785
|
function __decorate(decorators, target, key, desc) {
|
|
1790
1786
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1791
1787
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2415,12 +2411,35 @@ const AddTableThemeCommand = {
|
|
|
2415
2411
|
}
|
|
2416
2412
|
};
|
|
2417
2413
|
|
|
2414
|
+
//#endregion
|
|
2415
|
+
//#region src/commands/mutations/set-table-filter.mutation.ts
|
|
2416
|
+
const SetSheetTableFilterMutation = {
|
|
2417
|
+
id: "sheet.mutation.set-table-filter",
|
|
2418
|
+
type: CommandType.MUTATION,
|
|
2419
|
+
handler: (accessor, params) => {
|
|
2420
|
+
const { tableId, unitId, column, tableFilter } = params;
|
|
2421
|
+
const tableManager = accessor.get(TableManager);
|
|
2422
|
+
const table = tableManager.getTable(unitId, tableId);
|
|
2423
|
+
tableManager.addFilter(unitId, tableId, column, tableFilter);
|
|
2424
|
+
if (table) {
|
|
2425
|
+
var _tableManager$toJSON$;
|
|
2426
|
+
const tableFilters = table.getTableFilters();
|
|
2427
|
+
if (params.filterOutRows) tableFilters.setFilterOutRows(params.filterOutRows);
|
|
2428
|
+
else params.filterOutRows = [...tableFilters.getFilterOutRows()];
|
|
2429
|
+
params.subUnitId = table.getSubunitId();
|
|
2430
|
+
params.tableFilteredOutRows = ((_tableManager$toJSON$ = tableManager.toJSON(unitId)[params.subUnitId]) === null || _tableManager$toJSON$ === void 0 ? void 0 : _tableManager$toJSON$.tableFilteredOutRows) ?? [];
|
|
2431
|
+
}
|
|
2432
|
+
return true;
|
|
2433
|
+
}
|
|
2434
|
+
};
|
|
2435
|
+
|
|
2418
2436
|
//#endregion
|
|
2419
2437
|
//#region src/commands/commands/delete-sheet-table.command.ts
|
|
2420
2438
|
const DeleteSheetTableCommand = {
|
|
2421
2439
|
id: "sheet.command.delete-table",
|
|
2422
2440
|
type: CommandType.COMMAND,
|
|
2423
2441
|
handler: (accessor, params) => {
|
|
2442
|
+
var _tableConfig$filters$;
|
|
2424
2443
|
if (!params) return false;
|
|
2425
2444
|
const undoRedoService = accessor.get(IUndoRedoService);
|
|
2426
2445
|
const commandService = accessor.get(ICommandService);
|
|
@@ -2459,6 +2478,17 @@ const DeleteSheetTableCommand = {
|
|
|
2459
2478
|
options: tableConfig.options
|
|
2460
2479
|
}
|
|
2461
2480
|
});
|
|
2481
|
+
(_tableConfig$filters$ = tableConfig.filters.tableColumnFilterList) === null || _tableConfig$filters$ === void 0 || _tableConfig$filters$.forEach((tableFilter, column) => {
|
|
2482
|
+
if (tableFilter) undos.push({
|
|
2483
|
+
id: SetSheetTableFilterMutation.id,
|
|
2484
|
+
params: {
|
|
2485
|
+
unitId: params.unitId,
|
|
2486
|
+
tableId: params.tableId,
|
|
2487
|
+
column,
|
|
2488
|
+
tableFilter
|
|
2489
|
+
}
|
|
2490
|
+
});
|
|
2491
|
+
});
|
|
2462
2492
|
undos.push(...interceptorCommands.undos);
|
|
2463
2493
|
if (sequenceExecute(redos, commandService).result) {
|
|
2464
2494
|
undoRedoService.pushUndoRedo({
|
|
@@ -2801,28 +2831,6 @@ const SetSheetTableCommand = {
|
|
|
2801
2831
|
}
|
|
2802
2832
|
};
|
|
2803
2833
|
|
|
2804
|
-
//#endregion
|
|
2805
|
-
//#region src/commands/mutations/set-table-filter.mutation.ts
|
|
2806
|
-
const SetSheetTableFilterMutation = {
|
|
2807
|
-
id: "sheet.mutation.set-table-filter",
|
|
2808
|
-
type: CommandType.MUTATION,
|
|
2809
|
-
handler: (accessor, params) => {
|
|
2810
|
-
const { tableId, unitId, column, tableFilter } = params;
|
|
2811
|
-
const tableManager = accessor.get(TableManager);
|
|
2812
|
-
const table = tableManager.getTable(unitId, tableId);
|
|
2813
|
-
tableManager.addFilter(unitId, tableId, column, tableFilter);
|
|
2814
|
-
if (table) {
|
|
2815
|
-
var _tableManager$toJSON$;
|
|
2816
|
-
const tableFilters = table.getTableFilters();
|
|
2817
|
-
if (params.filterOutRows) tableFilters.setFilterOutRows(params.filterOutRows);
|
|
2818
|
-
else params.filterOutRows = [...tableFilters.getFilterOutRows()];
|
|
2819
|
-
params.subUnitId = table.getSubunitId();
|
|
2820
|
-
params.tableFilteredOutRows = ((_tableManager$toJSON$ = tableManager.toJSON(unitId)[params.subUnitId]) === null || _tableManager$toJSON$ === void 0 ? void 0 : _tableManager$toJSON$.tableFilteredOutRows) ?? [];
|
|
2821
|
-
}
|
|
2822
|
-
return true;
|
|
2823
|
-
}
|
|
2824
|
-
};
|
|
2825
|
-
|
|
2826
2834
|
//#endregion
|
|
2827
2835
|
//#region src/commands/commands/set-table-filter.command.ts
|
|
2828
2836
|
const SetSheetTableFilterCommand = {
|
|
@@ -3946,7 +3954,7 @@ SheetsTableThemeController = __decorate([
|
|
|
3946
3954
|
//#endregion
|
|
3947
3955
|
//#region package.json
|
|
3948
3956
|
var name = "@univerjs/sheets-table";
|
|
3949
|
-
var version = "1.0
|
|
3957
|
+
var version = "1.1.0";
|
|
3950
3958
|
|
|
3951
3959
|
//#endregion
|
|
3952
3960
|
//#region src/commands/mutations/move-sheet-table.mutation.ts
|
|
@@ -4799,6 +4807,10 @@ let TableFilterController = class TableFilterController extends Disposable {
|
|
|
4799
4807
|
}));
|
|
4800
4808
|
}
|
|
4801
4809
|
registerFilterChangeEvent() {
|
|
4810
|
+
this.disposeWithMe(this._tableManager.tableDelete$.subscribe(({ unitId, subUnitId }) => {
|
|
4811
|
+
this._refreshTableFilteredOutRows(unitId, subUnitId);
|
|
4812
|
+
this._zebraCrossingCacheController.updateZebraCrossingCache(unitId, subUnitId);
|
|
4813
|
+
}));
|
|
4802
4814
|
this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe((event) => {
|
|
4803
4815
|
const { unitId, subUnitId, tableId, oldSubUnitId } = event;
|
|
4804
4816
|
const workbook = this._univerInstanceService.getUnit(unitId);
|
package/lib/umd/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(require("@univerjs/core"),require("@univerjs/sheets-table"),require("@univerjs/sheets/facade"),require("@univerjs/sheets"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`@univerjs/core`,`@univerjs/sheets-table`,`@univerjs/sheets/facade`,`@univerjs/sheets`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverCore,e.UniverSheetsTable,e.UniverSheetsFacade,e.UniverSheets,e.UniverCoreFacade))})(this,function(e,t,n,r,i){var a=class extends n.FWorkbook{getTableInfo(e){let n=this.getId();return this._injector.get(t.SheetTableService).getTableInfo(n,e)}getTableList(){let e=this.getId();return this._injector.get(t.SheetTableService).getTableList(e)}async addTable(n,r,i,a,o){let s=this._injector.get(t.SheetTableService),c=this._injector.get(e.IUniverInstanceService).getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET),l
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(require("@univerjs/core"),require("@univerjs/sheets-table"),require("@univerjs/sheets/facade"),require("@univerjs/sheets"),require("@univerjs/core/facade")):typeof define==`function`&&define.amd?define([`@univerjs/core`,`@univerjs/sheets-table`,`@univerjs/sheets/facade`,`@univerjs/sheets`,`@univerjs/core/facade`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverCore,e.UniverSheetsTable,e.UniverSheetsFacade,e.UniverSheets,e.UniverCoreFacade))})(this,function(e,t,n,r,i){var a=class extends n.FWorkbook{getTableInfo(e){let n=this.getId();return this._injector.get(t.SheetTableService).getTableInfo(n,e)}getTableList(){let e=this.getId();return this._injector.get(t.SheetTableService).getTableList(e)}async addTable(n,r,i,a,o){let s=this._injector.get(t.SheetTableService),c=this._injector.get(e.IUniverInstanceService).getCurrentUnitOfType(e.UniverInstanceType.UNIVER_SHEET),l=/* @__PURE__ */ new Set;if(c&&c.getSheets().forEach(e=>{l.add(e.getName())}),!(0,e.customNameCharacterCheck)(r,l))return;let u={unitId:this.getId(),name:r,subUnitId:n,range:i,options:o,id:a};if(await this._commandService.executeCommand(t.AddSheetTableCommand.id,u)){var d;return(d=s.getTableList(this.getId()).find(e=>e.name===r))==null?void 0:d.id}}async removeTable(e){var n;let r=(n=this.getTableInfo(e))==null?void 0:n.subUnitId;if(!r)return!1;let i={unitId:this.getId(),subUnitId:r,tableId:e};return this._commandService.executeCommand(t.DeleteSheetTableCommand.id,i)}getTableInfoByName(e){return this.getTableList().find(t=>t.name===e)}setTableFilter(e,n,r){let i={unitId:this.getId(),tableId:e,column:n,tableFilter:r};return this._commandService.executeCommand(t.SetSheetTableFilterCommand.id,i)}};n.FWorkbook.extend(a);var o=class extends n.FWorksheet{setTableColumnFormula(e,n,r){let i=this.getWorkbook().getUnitId(),a=this._injector.get(t.TableManager).getTableById(i,e);return!a||a.getSubunitId()!==this.getSheetId()?!1:this._commandService.syncExecuteCommand(t.SetSheetTableCommand.id,{unitId:i,tableId:e,calculatedColumn:{columnId:n,formula:r}})}setTableFilterButtons(e,n){let r=this.getWorkbook().getUnitId(),i=this._injector.get(t.TableManager).getTableById(r,e);return!i||i.getSubunitId()!==this.getSheetId()?!1:this._commandService.syncExecuteCommand(t.SetSheetTableCommand.id,{unitId:r,tableId:e,filterButtons:n})}addTable(n,r,i,a){let o=this.getSheetId(),s=this.getWorkbook(),c=s.getUnitId(),l=/* @__PURE__ */ new Set;if(s&&s.getSheets().forEach(e=>{l.add(e.getName())}),!(0,e.customNameCharacterCheck)(n,l))return!1;let u={unitId:c,subUnitId:o,name:n,range:r,id:i,options:a};return this._commandService.executeCommand(t.AddSheetTableCommand.id,u)}setTableFilter(e,n,r){let i={unitId:this.getWorkbook().getUnitId(),tableId:e,column:n,tableFilter:r};return this._commandService.executeCommand(t.SetSheetTableFilterCommand.id,i)}removeTable(e){let n={unitId:this._fWorkbook.getId(),subUnitId:this.getSheetId(),tableId:e};return this._commandService.executeCommand(t.DeleteSheetTableCommand.id,n)}setTableRange(e,n){let r={unitId:this.getWorkbook().getUnitId(),tableId:e,updateRange:{newRange:n}};return this._commandService.executeCommand(t.SetSheetTableCommand.id,r)}setTableName(n,r){let i=this.getWorkbook(),a=/* @__PURE__ */ new Set;if(i&&i.getSheets().forEach(e=>{a.add(e.getName())}),!(0,e.customNameCharacterCheck)(r,a))return!1;let o={unitId:this.getWorkbook().getUnitId(),tableId:n,name:r};return this._commandService.executeCommand(t.SetSheetTableCommand.id,o)}getSubTableInfos(){let e=this._fWorkbook.getId();return this._injector.get(t.SheetTableService).getTableList(e).filter(e=>e.subUnitId===this.getSheetId())}resetFilter(e,n){let r={unitId:this._fWorkbook.getId(),tableId:e,column:n,tableFilter:void 0};return this._commandService.executeCommand(t.SetSheetTableFilterCommand.id,r)}getTableByCell(n,r){let i=this._fWorkbook.getId(),a=this._injector.get(t.SheetTableService).getTableList(i).filter(e=>e.subUnitId===this.getSheetId()),o=(0,e.cellToRange)(n,r);return a.find(t=>{let n=t.range;return e.Rectangle.intersects(n,o)})}addTableTheme(e,n){let i=new r.RangeThemeStyle(`table-style`);return i.fromJson(n),this._commandService.executeCommand(t.AddTableThemeCommand.id,{unitId:this._fWorkbook.getId(),tableId:e,themeStyle:i})}};n.FWorksheet.extend(o);var s=class extends i.FEnum{get TableColumnFilterTypeEnum(){return t.TableColumnFilterTypeEnum}get TableConditionTypeEnum(){return t.TableConditionTypeEnum}get TableNumberCompareTypeEnum(){return t.TableNumberCompareTypeEnum}get TableStringCompareTypeEnum(){return t.TableStringCompareTypeEnum}get TableDateCompareTypeEnum(){return t.TableDateCompareTypeEnum}};i.FEnum.extend(s)});
|
package/lib/umd/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-formula`,`@univerjs/sheets`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsTable={},e.UniverCore,e.UniverEngineFormula,e.UniverSheets,e.rxjs))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=function(e){return e.None=`none`,e.String=`string`,e.Number=`number`,e.Date=`date`,e.Bool=`bool`,e.Checkbox=`checkbox`,e.List=`list`,e}({}),o=function(e){return e.manual=`manual`,e.condition=`condition`,e.color=`color`,e.record=`record`,e}({}),s=function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),c=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.GreaterThan=`greaterThan`,e.GreaterThanOrEqual=`greaterThanOrEqual`,e.LessThan=`lessThan`,e.LessThanOrEqual=`lessThanOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Above=`above`,e.Below=`below`,e.TopN=`topN`,e}({}),l=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),u=function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.After=`after`,e.AfterOrEqual=`afterOrEqual`,e.Before=`before`,e.BeforeOrEqual=`beforeOrEqual`,e.Between=`between`,e.NotBetween=`notBetween`,e.Today=`today`,e.Yesterday=`yesterday`,e.Tomorrow=`tomorrow`,e.ThisWeek=`thisWeek`,e.LastWeek=`lastWeek`,e.NextWeek=`nextWeek`,e.ThisMonth=`thisMonth`,e.LastMonth=`lastMonth`,e.NextMonth=`nextMonth`,e.ThisQuarter=`thisQuarter`,e.LastQuarter=`lastQuarter`,e.NextQuarter=`nextQuarter`,e.ThisYear=`thisYear`,e.LastYear=`lastYear`,e.NextYear=`nextYear`,e.YearToDate=`yearToDate`,e.Quarter=`quarter`,e.Month=`month`,e.M1=`m1`,e.M2=`m2`,e.M3=`m3`,e.M4=`m4`,e.M5=`m5`,e.M6=`m6`,e.M7=`m7`,e.M8=`m8`,e.M9=`m9`,e.M10=`m10`,e.M11=`m11`,e.M12=`m12`,e.Q1=`q1`,e.Q2=`q2`,e.Q3=`q3`,e.Q4=`q4`,e}({}),d=function(e){return e[e.FilteredSortNone=1]=`FilteredSortNone`,e[e.FilteredSortAsc=2]=`FilteredSortAsc`,e[e.FilteredSortDesc=3]=`FilteredSortDesc`,e[e.FilterNoneSortNone=4]=`FilterNoneSortNone`,e[e.FilterNoneSortAsc=5]=`FilterNoneSortAsc`,e[e.FilterNoneSortDesc=6]=`FilterNoneSortDesc`,e}({}),f=function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function p(e,t){return`${t} ${e}`}let m=`TRUE`,h=`FALSE`,g=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function _(e){if(e){let{v:n,t:r,p:i}=e;return i?g(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?m:h:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?m:h:n==null?``:String(n)}return``}function v(e,t){if(e!=null)switch(t){case`asc`:return 2;case`desc`:return 3;default:return 1}else switch(t){case`asc`:return 5;case`desc`:return 6;default:return 4}}function y(e){return e?e.filterType===`condition`:!1}function b(e){return e?e.filterType===`manual`:!1}function x(e){return e?e.filterType===`color`:!1}function S(e){return e?e.filterType===`record`:!1}function C(e,n){let{univerInstanceService:r,tableManager:i,definedNamesService:a}=n,o=new Set,s=r==null?void 0:r.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);s&&s.getSheets().forEach(e=>{o.add(e.getName().toLowerCase())});let c=i==null?void 0:i.getTableList(e);c&&c.length>0&&c.forEach(e=>{o.add(e.name.toLowerCase())});let l=a==null?void 0:a.getDefinedNameMap(e);return l&&Object.values(l).forEach(e=>{o.add(e.name.toLowerCase())}),o}let w={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},T={},ee={headerRowStyle:{bd:{t:w}},headerColumnStyle:{bd:{l:w}},lastColumnStyle:{bd:{r:w}},lastRowStyle:{bd:{b:w}}},te=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:w}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:w}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:w}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:w}};return t},ne=[[[`#6280F9`,`#FFFFFF`,`#EEF2FF`,`#DCE4FF`],[`#fff`]],[[`#16BDCA`,`#FFFFFF`,`#EDFAFA`,`#AFECEF`],[`#000`]],[[`#31C48D`,`#FFFFFF`,`#F3FAF7`,`#BCF0DA`],[`#fff`]],[[`#AC94FA`,`#FFFFFF`,`#F6F5FF`,`#EDEBFE`],[`#fff`]],[[`#F17EBB`,`#FFFFFF`,`#FDF2F8`,`#FCE8F3`],[`#fff`]],[[`#F98080`,`#FFFFFF`,`#FDF2F2`,`#FDE8E8`],[`#fff`]]].map((e,t)=>{let[n,r]=e,[i,a,o,s]=n,[c]=r;return{name:`table-default-${t}`,style:{headerRowStyle:{bg:{rgb:i},cl:{rgb:c},bd:{t:w}},headerColumnStyle:{bd:{l:w}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:w}},lastColumnStyle:{bd:{r:w}}}}});function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function re(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function ie(e){var t=re(e,`string`);return E(t)==`symbol`?t:t+``}function D(e,t,n){return(t=ie(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=class{constructor(e,t){D(this,`dataType`,void 0),D(this,`id`,void 0),D(this,`displayName`,void 0),D(this,`formula`,void 0),D(this,`formulaIsArray`,void 0),D(this,`totalsRowLabel`,void 0),D(this,`totalsRowFunction`,void 0),D(this,`totalsRowFormula`,void 0),D(this,`showFilterButton`,void 0),D(this,`meta`,void 0),D(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=`string`,this.formula=``,this.showFilterButton=!0,this.meta={},this.style={}}getMeta(){return this.meta}setMeta(e){this.meta=e}getDisplayName(){return this.displayName}toJSON(){return{id:this.id,displayName:this.displayName,dataType:this.dataType,formula:this.formula,formulaIsArray:this.formulaIsArray,totalsRowLabel:this.totalsRowLabel,totalsRowFunction:this.totalsRowFunction,totalsRowFormula:this.totalsRowFormula,showFilterButton:this.showFilterButton,meta:this.meta,style:this.style}}fromJSON(e){this.id=e.id,this.displayName=e.displayName,this.dataType=e.dataType,this.formula=e.formula,this.formulaIsArray=e.formulaIsArray,this.totalsRowLabel=e.totalsRowLabel,this.totalsRowFunction=e.totalsRowFunction,this.totalsRowFormula=e.totalsRowFormula,this.showFilterButton=e.showFilterButton??!0,this.meta=e.meta,this.style=e.style}isShowFilterButton(){return this.showFilterButton}};let ae=`SHEET_TABLE_PLUGIN`,k=`SHEET_TABLE`,oe=`table-custom`,se=`__UNIVER_TABLE_FILTER_EMPTY__`,ce=e=>e.getMonth()<=2,le=e=>{let t=e.getMonth();return t>2&&t<=5},ue=e=>{let t=e.getMonth();return t>5&&t<=8},de=e=>{let t=e.getMonth();return t>8&&t<=11},fe=e=>e.getMonth()===0,pe=e=>e.getMonth()===1,me=e=>e.getMonth()===2,he=e=>e.getMonth()===3,ge=e=>e.getMonth()===4,_e=e=>e.getMonth()===5,ve=e=>e.getMonth()===6,ye=e=>e.getMonth()===7,be=e=>e.getMonth()===8,xe=e=>e.getMonth()===9,Se=e=>e.getMonth()===10,Ce=e=>e.getMonth()===11,we=(e,t=new Date)=>e.toDateString()===t.toDateString(),Te=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},Ee=(e,t=new Date)=>{let n=new Date(t);return n.setDate(n.getDate()-1),e.toDateString()===n.toDateString()},A=e=>{let t=e.getDay(),n=e.getDate()-t+(t===0?-6:1),r=new Date(e);return r.setDate(n),r},De=6048e5,Oe=(e,t=new Date)=>{let n=A(e),r=A(t);return n.toDateString()===r.toDateString()},ke=(e,t=new Date)=>{let n=A(e),r=new Date(A(t).getTime()+De);return n.toDateString()===r.toDateString()},Ae=(e,t=new Date)=>{let n=A(e),r=new Date(A(t).getTime()-De);return n.toDateString()===r.toDateString()},je=(e,t=new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),Me=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},Ne=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(n.getMonth()+1,1);let r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Pe=(e,t=new Date)=>{let n=Me(t),r=new Date(n);r.setMonth(r.getMonth()+1,0);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},j=e=>{let t=new Date(e);t.setHours(0,0,0,0),t.setDate(1);let n=t.getMonth();return t.setMonth(n-n%3),t},Fe=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Ie=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=new Date(r);i.setMonth(i.getMonth()+3,0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Le=(e,t=new Date)=>{let n=j(t),r=new Date(n);r.setMonth(r.getMonth()-3);let i=new Date(n);i.setDate(0);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Re=(e,t=new Date)=>e.getFullYear()===t.getFullYear(),ze=(e,t=new Date)=>e.getFullYear()===t.getFullYear()+1,Be=(e,t=new Date)=>e.getFullYear()===t.getFullYear()-1,Ve=(e,t=new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(0,1);let r=e.getTime();return r>=n.getTime()&&r<t.getTime()};function He(e){switch(e.compareType){case`equal`:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case`notEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case`after`:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case`before`:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case`afterOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case`beforeOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case`between`:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case`notBetween`:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case`today`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>we(e,t)}case`yesterday`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ee(e,t)}case`tomorrow`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Te(e,t)}case`thisWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Oe(e,t)}case`lastWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ae(e,t)}case`nextWeek`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ke(e,t)}case`thisMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>je(e,t)}case`lastMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Pe(e,t)}case`nextMonth`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ne(e,t)}case`thisQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Fe(e,t)}case`lastQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Le(e,t)}case`nextQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ie(e,t)}case`thisYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Re(e,t)}case`lastYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Be(e,t)}case`nextYear`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>ze(e,t)}case`yearToDate`:{let t=e.anchorTime?new Date(e.anchorTime):new Date;return e=>Ve(e,t)}case`m1`:return fe;case`m2`:return pe;case`m3`:return me;case`m4`:return he;case`m5`:return ge;case`m6`:return _e;case`m7`:return ve;case`m8`:return ye;case`m9`:return be;case`m10`:return xe;case`m11`:return Se;case`m12`:return Ce;case`q1`:return ce;case`q2`:return le;case`q3`:return ue;case`q4`:return de;default:throw Error(`Unsupported compare type`)}}var Ue=class{constructor(){D(this,`heap`,void 0),this.heap=[]}swap(e,t){let n=this.heap[e];this.heap[e]=this.heap[t],this.heap[t]=n}getParentIndex(e){return Math.floor((e-1)/2)}getLeftIndex(e){return e*2+1}getRightIndex(e){return e*2+2}size(){return this.heap.length}peek(){return this.heap[0]}include(e){return this.heap.includes(e)}},We=class extends Ue{constructor(){super()}shiftUp(e){if(e===0)return;let t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){let t=this.getLeftIndex(e),n=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[n]<this.heap[e]&&(this.swap(n,e),this.shiftDown(n))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}};let Ge=(e,t)=>{let n=new We;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},Ke=(e,t)=>e>t,qe=(e,t)=>e<t,Je=(e,t,n)=>Ge(e,t).includes(n);function Ye(e,t){switch(e.compareType){case`equal`:{let t=Number(e.expectedValue);return e=>e===t}case`notEqual`:{let t=Number(e.expectedValue);return e=>e!==t}case`greaterThan`:{let t=Number(e.expectedValue);return e=>e>t}case`greaterThanOrEqual`:{let t=Number(e.expectedValue);return e=>e>=t}case`lessThan`:{let t=Number(e.expectedValue);return e=>e<t}case`lessThanOrEqual`:{let t=Number(e.expectedValue);return e=>e<=t}case`between`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e>=i&&e<=r:e=>e>=r&&e<=i}case`notBetween`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e<i||e>r:e=>e<r||e>i}case`above`:{let e=t.average;return t=>Ke(t,e)}case`below`:{let e=t.average;return t=>qe(t,e)}case`topN`:{let n=t.list,r=Number(e.expectedValue);return e=>Je(n,r,e)}}}let Xe=(e,n)=>t.regexp.createFromWildcard(n).test(e),Ze=(e,n)=>!t.regexp.createFromWildcard(n).test(e),Qe=(e,n)=>t.regexp.createFromWildcard(`*${n}*`).test(e),$e=(e,n)=>!t.regexp.createFromWildcard(`*${n}*`).test(e),et=(e,n)=>t.regexp.createFromWildcard(`${n}*`).test(e),tt=(e,n)=>t.regexp.createFromWildcard(`*${n}`).test(e);function nt(e){switch(e.compareType){case`equal`:return t=>Xe(t,e.expectedValue);case`notEqual`:return t=>Ze(t,e.expectedValue);case`contains`:return t=>Qe(t,e.expectedValue);case`notContains`:return t=>$e(t,e.expectedValue);case`startsWith`:return t=>et(t,e.expectedValue);case`endsWith`:return t=>tt(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let rt=new Set([`above`,`below`,`topN`]);function it(e){return rt.has(e)}function at(e,t){if(it(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case`date`:return He(e.filterInfo);case`number`:return Ye(e.filterInfo,t);case`string`:return nt(e.filterInfo);default:return e=>!0}}function M(e,n,r,i,a=t.DateSystem.Date1900){switch(i){case`date`:{let t=ct(e,n,r);return t==null?null:lt(t,a)}case`number`:return ct(e,n,r);default:return st(e,n,r)}}let ot=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function st(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return ot(s);if(typeof a==`string`)return o===t.CellValueType.BOOLEAN?a.toUpperCase():a;if(typeof a==`number`)return o===t.CellValueType.BOOLEAN?a?`TRUE`:`FALSE`:a;if(typeof a==`boolean`)return a?`TRUE`:`FALSE`;if(a!==void 0)return String(a)}function ct(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;return s?null:typeof a==`string`&&o===t.CellValueType.NUMBER?Number(e.getCellRaw(n,r).v):Number(a)}function lt(e,n=t.DateSystem.Date1900){let r=(0,t.excelSerialToDateTime)(e,n);return Number.isNaN(r.getTime())?r:new Date(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds())}function ut(e,r,i){let a=e.getCell(r,i),o=(0,n.extractFormulaError)(a,(a==null?void 0:a.isInArrayFormulaRange)===!0);if(o!==null)return{type:t.RecordValueType.Error,value:o};if(!a)return{type:t.RecordValueType.Blank};if(a.p)return{type:t.RecordValueType.String,value:_(a)};let s=a.v;if(s==null)return{type:t.RecordValueType.Blank};if(a.t===t.CellValueType.STRING||a.t===t.CellValueType.FORCE_STRING)return{type:t.RecordValueType.String,value:String(s)};if(a.t===t.CellValueType.BOOLEAN)return{type:t.RecordValueType.Boolean,value:dt(s)};if(a.t===t.CellValueType.NUMBER||typeof s==`number`){var c;let n=ft(pt(e,r,i,s,a.t===t.CellValueType.NUMBER,a.isInArrayFormulaRange===!0)),o=(c=e.getComposedCellStyleByCellData(r,i,a).n)==null?void 0:c.pattern;return o&&t.numfmt.getFormatInfo(o).isDate?{type:t.RecordValueType.Date,value:n}:{type:t.RecordValueType.Number,value:n}}if(typeof s==`boolean`)return{type:t.RecordValueType.Boolean,value:s};if(typeof s==`string`)return{type:t.RecordValueType.String,value:s};throw TypeError(`Invalid table record cell value.`)}function N(e){let n=e;if(!mt(n)||typeof n.type!=`string`)throw TypeError(`Invalid table record value.`);switch(n.type){case t.RecordValueType.Blank:if(`value`in n)throw TypeError(`Blank table record values cannot have a value.`);return`["blank"]`;case t.RecordValueType.String:case t.RecordValueType.Error:if(typeof n.value!=`string`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Boolean:if(typeof n.value!=`boolean`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Number:case t.RecordValueType.Date:if(typeof n.value!=`number`)throw TypeError(`Invalid table record value.`);if(!Number.isFinite(n.value))throw RangeError(`Table record numeric values must be finite.`);return JSON.stringify([n.type,n.value===0?0:n.value]);default:throw TypeError(`Unknown table record value type.`)}}function P(e){let n=e;if(!mt(n)||n.filterType!==`record`||n.mode!==t.FilterSelectionMode.Include&&n.mode!==t.FilterSelectionMode.Exclude||!Array.isArray(n.values))throw TypeError(`Invalid table record filter.`);let r=new Set(n.values.map(e=>N(e)));return n.mode===t.FilterSelectionMode.Include?e=>r.has(N(e)):e=>!r.has(N(e))}function F(e){return P(e),{filterType:`record`,mode:e.mode,values:e.values.map(e=>e.type===t.RecordValueType.Blank?{type:t.RecordValueType.Blank}:{...e})}}function dt(e){if(e===!0||e===1||typeof e==`string`&&e.toUpperCase()===`TRUE`)return!0;if(e===!1||e===0||typeof e==`string`&&e.toUpperCase()===`FALSE`)return!1;throw TypeError(`Invalid table record boolean value.`)}function ft(e){let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))throw RangeError(`Table record numeric values must be finite.`);return t}function pt(e,t,n,r,i,a){var o;return!i||a?r:((o=e.getCellRaw(t,n))==null?void 0:o.v)??r}function mt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ht=class{constructor(){D(this,`_tableColumnFilterList`,void 0),D(this,`_tableSortInfo`,void 0),D(this,`_filterOutRows`,new Set),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?t.filterType===`record`?this._tableColumnFilterList[e]=F(t):this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}setSortInfo(e){this._tableSortInfo=e}getColumnFilter(e){let t=this._tableColumnFilterList[e];return(t==null?void 0:t.filterType)===`record`?F(t):t}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:`none`;return v(this._tableColumnFilterList[e],n)}getSortState(){return this._tableSortInfo??{}}getFilterStates(e){let t=[],{startColumn:n,endColumn:r}=e;for(let e=n;e<=r;e++)t.push(this.getFilterState(e-n));return t}getFilterOutRows(){return this._filterOutRows}setFilterOutRows(e){this._filterOutRows=new Set(e)}doFilter(e,n,r=t.DateSystem.Date1900){let i=new Set,a=this._tableColumnFilterList;for(let t=0;t<a.length;t++)a[t]&&this.doColumnFilter(e,n,t,i,r);return this._filterOutRows=i,i}doColumnFilter(e,n,r,i,a=t.DateSystem.Date1900){let o=this._tableColumnFilterList[r];if(o&&e){let{startRow:t,endRow:s,startColumn:c}=n,l=c+r;if(o.filterType===`record`){let n=P(o);for(let r=t;r<=s;r++)n(ut(e,r,l))||i.add(r);return}let u=this.getExecuteFunc(e,n,r,o);for(let n=t;n<=s;n++){if(x(o)){let t=e.getCell(n,l);u(e.getComposedCellStyleByCellData(n,l,t))||i.add(n);continue}let t=y(o)?o.filterInfo.conditionType:`string`,r=M(e,n,l,t,a);r===null&&!u(r)?i.add(n):u(M(e,n,l,t,a))||i.add(n)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,l=0;for(let t=r;t<=i;t++){let n=M(e,t,o,`number`);n!==null&&(s.push(n),c++,l+=n)}return{list:s,average:c>0?l/c:0}}getExecuteFunc(e,n,r,i){if(i.filterType===`manual`){let e=new Set(i.values);return t=>t==null?e.has(se):e.has(String(t))}if(i.filterType===`record`)return P(i);if(i.filterType===`condition`)return at(i,it(i.filterInfo.compareType)?this._getNumberCalculatedOptions(e,n,r):void 0);if(i.filterType===`color`){let e=e=>e?new t.ColorKit(e).toRgbString():null;if(i.cellFillColors){let n=new Set(i.cellFillColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.bg)))}if(i.cellTextColors){let n=new Set(i.cellTextColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.cl)??(0,t.getColorStyle)(t.DEFAULT_STYLES.cl)))}}else return e=>!0;return()=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList.some(e=>(e==null?void 0:e.filterType)===`record`)?this._tableColumnFilterList.map(e=>(e==null?void 0:e.filterType)===`record`?F(e):e):this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){let t=e.tableColumnFilterList??[];t.some(e=>(e==null?void 0:e.filterType)===`record`)?(this._tableColumnFilterList=[],t.forEach((e,t)=>this.setColumnFilter(t,e))):this._tableColumnFilterList=t,e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[],this._filterOutRows=new Set}},gt=class{constructor(e,t,n,r,i={}){D(this,`_id`,void 0),D(this,`_name`,void 0),D(this,`_tableStyleId`,void 0),D(this,`_showHeader`,void 0),D(this,`_showFooter`,void 0),D(this,`_showAutoFilter`,void 0),D(this,`_range`,void 0),D(this,`_columns`,new Map),D(this,`_columnOrder`,[]),D(this,`tableMeta`,void 0),D(this,`_tableFilters`,void 0),D(this,`_subUnitId`,void 0),this._id=e,this._range=n,this._name=t,this._tableFilters=new ht,this._init(r,i)}_init(e,n){this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(n==null?void 0:n.showHeader)??!0,this._showFooter=(n==null?void 0:n.showFooter)??!1,this._showAutoFilter=(n==null?void 0:n.showAutoFilter)??!0;let r=this.getRange(),i=r.startColumn,a=r.endColumn;for(let r=i;r<=a;r++){var o;let a=r-i,s,c;(o=n.columns)!=null&&o[a]?(s=n.columns[a].id,c=n.columns[a].displayName):(s=(0,t.generateRandomId)(),c=e[r-i]);let l=new O(s,c);this._columns.set(s,l),this._columnOrder.push(s)}n.filters&&n.filters.forEach((e,t)=>{e&&this._tableFilters.setColumnFilter(t,e)})}setTableFilterColumn(e,t){this._tableFilters.setColumnFilter(e,t)}getTableFilterColumn(e){return this._tableFilters.getColumnFilter(e)}getTableFilters(){return this._tableFilters}getTableFilterRange(){let e=this.getRange(),t=this.isShowHeader(),n=this.isShowFooter(),{startRow:r,startColumn:i,endRow:a,endColumn:o}=e;return{startRow:t?r+1:r,startColumn:i,endRow:n?a-1:a,endColumn:o}}setColumns(e){this._columns.clear(),this._columnOrder=[],e.forEach(e=>{let t=new O(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)})}getColumnsCount(){return this._columnOrder.length}insertColumn(e,t){let n=t.id;this._columns.set(n,t),this._columnOrder.splice(e,0,n)}removeColumn(e){let t=this._columnOrder[e];this._columns.delete(t),this._columnOrder.splice(e,1)}setTableMeta(e){this.tableMeta=e}getTableMeta(){return this.tableMeta}getColumn(e){return this._columns.get(e)}getTableColumnByIndex(e){let t=this._columnOrder[e];return this.getColumn(t)}getColumnNameByIndex(e){var t;let n=this._columnOrder[e];return((t=this.getColumn(n))==null?void 0:t.getDisplayName())||``}getId(){return this._id}getRangeInfo(){return{...this._range}}getRange(){return{...this._range}}setRange(e){this._range=e}setDisplayName(e){this._name=e}getDisplayName(){return this._name}getSubunitId(){return this._subUnitId}setSubunitId(e){this._subUnitId=e}getTableStyleId(){return this._tableStyleId??ne[0].name}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){return this._showHeader??!0}setShowHeader(e){this._showHeader=e}isShowFooter(){return this._showFooter??!1}isShowAutoFilter(){return this._showAutoFilter??!0}setShowAutoFilter(e){this._showAutoFilter=e}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,showAutoFilter:this._showAutoFilter,columns:this._columnOrder.map(e=>this._columns.get(e).toJSON())}}getTableConfig(){return{name:this.getDisplayName(),range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter},tableStyleId:this._tableStyleId}}getFilterStates(e){return this._tableFilters.getFilterStates(e)}toJSON(){let e=[];return this._columns.forEach(t=>{e.push(t.toJSON())}),{id:this._id,name:this._name,range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=e.options.showHeader??!0,this._showFooter=e.options.showFooter??!0,this._showAutoFilter=e.options.showAutoFilter??!0,this._columns.clear(),this._columnOrder=[],e.columns.forEach(e=>{let t=new O(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new ht,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!0,this._showAutoFilter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}};function I(e,t){return function(n,r){t(n,r,e)}}function L(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}let R=class extends t.Disposable{constructor(e,t){super(),this._univerInstanceService=e,this._localeService=t,D(this,`_tableMap`,void 0),D(this,`_tableAdd$`,new i.Subject),D(this,`tableAdd$`,this._tableAdd$.asObservable()),D(this,`_tableDelete$`,new i.Subject),D(this,`tableDelete$`,this._tableDelete$.asObservable()),D(this,`_tableNameChanged$`,new i.Subject),D(this,`tableNameChanged$`,this._tableNameChanged$.asObservable()),D(this,`_tableRangeChanged$`,new i.Subject),D(this,`tableRangeChanged$`,this._tableRangeChanged$.asObservable()),D(this,`_tableThemeChanged$`,new i.Subject),D(this,`tableThemeChanged$`,this._tableThemeChanged$.asObservable()),D(this,`_tableFilterChanged$`,new i.Subject),D(this,`tableFilterChanged$`,this._tableFilterChanged$.asObservable()),D(this,`_tableInitStatus`,new i.BehaviorSubject(!1)),D(this,`tableInitStatus$`,this._tableInitStatus.asObservable()),this._tableMap=new Map}_ensureUnit(e){return this._tableMap.has(e)||this._tableMap.set(e,new Map),this._tableMap.get(e)}getColumnHeader(e,t,n,r){var i;let a=(i=this._univerInstanceService.getUnit(e))==null?void 0:i.getSheetBySheetId(t),{startRow:o,startColumn:s,endColumn:c}=n,l=[],u=r??`Column`;for(let e=s;e<=c;e++)l.push(_(a==null?void 0:a.getCell(o,e))||p(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o??(0,t.generateRandomId)(),l=new gt(c,r,i,a||this.getColumnHeader(e,n,i),s);if(l.setSubunitId(n),this._ensureUnit(e).set(c,l),this._tableAdd$.next({unitId:e,subUnitId:n,range:i,tableName:r,tableId:c,tableStyleId:s==null?void 0:s.tableStyleId}),s!=null&&s.filters){let t=this._univerInstanceService.getUnit(e),r=t==null?void 0:t.getSheetBySheetId(n);l.getTableFilters().doFilter(r,i,t==null?void 0:t.getDateSystem()),this._tableFilterChanged$.next({unitId:e,subUnitId:n,tableId:c})}return c}addFilter(e,t,n,r){let i=this.getTable(e,t);if(i){i.getTableFilters().setColumnFilter(n,r);let a=i.getSubunitId();this._tableFilterChanged$.next({unitId:e,subUnitId:a,tableId:t})}}getFilterRanges(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push(e.getRange())}),r}getSheetFilterRangeWithState(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&e.isShowAutoFilter()&&r.push({tableId:e.getId(),range:e.getRange(),states:e.getFilterStates(e.getRange())})}),r}getTable(e,t){let n=this._tableMap.get(e);if(n)return n.get(t)}getUniqueTableName(e,t){let n=this._tableMap.get(e);if(!n)return t;let r=new Set(Array.from(n.values()).map(e=>e.getDisplayName())),i=t,a=1;for(;r.has(i);)i=`${t}-${a}`,a++;return i}getTableById(e,t){return this.getTable(e,t)}getTableList(e){let t=this._tableMap.get(e);return t?Array.from(t.values()).map(t=>({...t.getTableInfo(),unitId:e})):[]}getTablesBySubunitId(e,t){let n=this._tableMap.get(e);return n?Array.from(n.values()).filter(e=>e.getSubunitId()===t):[]}getTablesInfoBySubunitId(e,t){return this.getTablesBySubunitId(e,t).map(e=>({id:e.getId(),name:e.getDisplayName(),range:e.getRange()}))}deleteTable(e,t){let n=this._tableMap.get(e),r=n==null?void 0:n.get(t);if(r){let i=r.getTableInfo(),a=r.getTableStyleId();n==null||n.delete(t);let{subUnitId:o,range:s,name:c}=i;this._tableDelete$.next({unitId:e,subUnitId:o,tableId:t,range:s,tableName:c,tableStyleId:a})}}operationTableRowCol(e,n,r){let i=this.getTableById(e,n);if(!i)return;let{operationType:a,rowColType:o,index:s,count:c,columnsJson:l}=r,u=i.getRange(),d={...u};if(a===`insert`){if(o===`row`)d.endRow+=c;else if(o===`column`){d.endColumn+=c;for(let e=0;e<c;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1+e,n));l!=null&&l[e]&&r.fromJSON(l[e]);let a=s+e-u.startColumn;i.insertColumn(a,r)}}}else if(o===`row`)d.endRow-=c;else if(o===`column`){d.endColumn-=c;for(let e=c-1;e>=0;e--){let t=s+e-u.startColumn;i.removeColumn(t)}}i.setRange(d),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:d,oldRange:u})}updateTableRange(e,n,r){let i=this.getTableById(e,n);if(!i)return;let a=i.getRange(),o=r.newRange;if(o.startColumn<a.startColumn){let e=a.startColumn-o.startColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.startColumn,new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}else if(o.startColumn>a.startColumn){let e=o.startColumn-a.startColumn;for(let t=e-1;t>=0;t--){let e=o.startColumn+t-a.startColumn;i.removeColumn(e)}}if(o.endColumn<a.endColumn){let e=a.endColumn-o.endColumn;for(let t=e-1;t>=0;t--){let e=o.endColumn+t-a.startColumn;i.removeColumn(e)}}else if(o.endColumn>a.endColumn){let e=o.endColumn-a.endColumn,n=this._localeService.t(`sheets-table.columnPrefix`);for(let r=0;r<e;r++)i.insertColumn(a.endColumn,new O((0,t.generateRandomId)(),p(i.getColumnsCount()+1,n)))}i.setRange(o),this._tableRangeChanged$.next({unitId:e,subUnitId:i.getSubunitId(),tableId:n,range:o,oldRange:a})}moveTable(e,t,n,r){let i=this.getTableById(e,t);if(!i)return;let a=i.getRange(),o=i.getSubunitId();i.setSubunitId(n),i.setRange({...r}),this._tableRangeChanged$.next({unitId:e,subUnitId:n,oldSubUnitId:o,tableId:t,range:{...r},oldRange:a}),this._tableFilterChanged$.next({unitId:e,subUnitId:n,oldSubUnitId:o,tableId:t})}setTableByConfig(e,t,n){let r=this._tableMap.get(e),i=r==null?void 0:r.get(t);if(!i)return;let a=i.getSubunitId(),{name:o,updateRange:s,rowColOperation:c,theme:l,sortInfo:u,options:d,filterButtons:f}=n;if(n.calculatedColumn){let e=i.getColumn(n.calculatedColumn.columnId);e&&(e.formula=n.calculatedColumn.formula,e.formulaIsArray=n.calculatedColumn.formulaIsArray)}if(f){f.showAutoFilter!==void 0&&i.setShowAutoFilter(f.showAutoFilter);for(let[e,t]of Object.entries(f.columns??{})){let n=i.getColumn(e);n&&(n.showFilterButton=t)}}if(o){let n=i.getDisplayName();i.setDisplayName(o),this._tableNameChanged$.next({unitId:e,subUnitId:a,tableId:t,tableName:o,oldTableName:n})}if(c&&this.operationTableRowCol(e,t,c),s&&this.updateTableRange(e,t,s),l){let n=i.getTableStyleId()??`default`;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}`sortInfo`in n&&i.getTableFilters().setSortInfo(u),d&&d.showHeader!==void 0&&i.setShowHeader(d.showHeader)}toJSON(e){let t={},n=this._tableMap.get(e);return n&&n.forEach(n=>{let r=n.getSubunitId();if(!t[r]){let n=new Set;this.getTablesBySubunitId(e,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),t[r]={tables:[],tableFilteredOutRows:Array.from(n)}}t[r].tables.push(n.toJSON())}),t}fromJSON(e,t){let n=this._ensureUnit(e);Object.keys(t).forEach(i=>{let a=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:i});if(!a)return;let o=a.worksheet,s;if(t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),!s)return;let c=t[i].tableFilteredOutRows;s.forEach(t=>{var r;let s=this.getColumnHeader(e,i,t.range),l=new gt(t.id,t.name,t.range,s,t.options);if(l.setTableMeta(t.meta),t.columns.length&&l.setColumns(t.columns),t.filters){let e=l.getTableFilters();if(e.fromJSON(t.filters),Array.isArray(c)){let{startRow:t,endRow:n}=l.getTableFilterRange();e.setFilterOutRows(c.filter(e=>e>=t&&e<=n))}else e.doFilter(o,l.getTableFilterRange(),a.workbook.getDateSystem())}l.setSubunitId(i),n.set(t.id,l),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id,tableStyleId:(r=t.options)==null?void 0:r.tableStyleId})})}),this._tableInitStatus.next(!0)}deleteUnitId(e){let t=this._tableMap.get(e);t&&t.forEach(e=>e.dispose()),this._tableMap.delete(e)}dispose(){super.dispose(),this._tableAdd$.complete(),this._tableDelete$.complete(),this._tableNameChanged$.complete(),this._tableRangeChanged$.complete(),this._tableThemeChanged$.complete(),this._tableFilterChanged$.complete(),this._tableInitStatus.complete(),this._tableMap.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._tableMap.clear()}};R=L([I(0,t.IUniverInstanceService),I(1,(0,t.Inject)(t.LocaleService))],R);let z=class extends t.Disposable{constructor(e){super(),this._tableManager=e}getTableInfo(e,t){let n=this._tableManager.getTable(e,t);if(n)return{unitId:e,...n.getTableInfo()}}getTableList(e){return this._tableManager.getTableList(e)}addTable(e,t,n,r,i,a,o){return this._tableManager.addTable(e,t,n,r,i,a,o)}deleteTable(e,t,n){this._tableManager.deleteTable(e,n)}getTableMeta(e,t){var n;return(n=this._tableManager.getTable(e,t))==null?void 0:n.getTableMeta()}setTableMeta(e,t,n){var r;(r=this._tableManager.getTable(e,t))==null||r.setTableMeta(n)}getTableColumnMeta(e,t,n){var r;return(r=this._tableManager.getTable(e,t))==null||(r=r.getTableColumnByIndex(n))==null?void 0:r.getMeta()}selTableColumnMeta(e,t,n,r){var i;(i=this._tableManager.getTable(e,t))==null||(i=i.getTableColumnByIndex(n))==null||i.setMeta(r)}addFilter(e,t,n,r){this._tableManager.addFilter(e,t,n,r)}getCellValueWithConditionType(e,t,n,r=`string`){return M(e,t,n,r)}};z=L([I(0,(0,t.Inject)(R))],z);let B={id:`sheet.mutation.add-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,subUnitId:i,name:a,range:o,header:s,options:c}=t;return e.get(z).addTable(r,i,a,o,s,n,c),!0}},V={id:`sheet.mutation.delete-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,tableId:i}=t;return e.get(z).deleteTable(n,r,i),!0}},_t={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(t.LocaleService),s=e.get(R),c=r.id??(0,t.generateRandomId)(),l=C(r.unitId,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:s,definedNamesService:e.get(n.IDefinedNamesService)}),u=r.name;if(!u||!(0,t.customNameCharacterCheck)(u.toLowerCase(),l)){let e=o.t(`sheets-table.tablePrefix`),t=s.getTableList(r.unitId).length+1;for(let n of l)if(n.startsWith(e.toLowerCase())){let r=Number(n.slice(e.length));Number.isInteger(r)&&r>=t&&(t=r+1)}u=`${e}${t}`}let d=[],f=[],{unitId:p,subUnitId:m,range:h}=r,g=s.getColumnHeader(p,m,h,o.t(`sheets-table.columnPrefix`));return d.push({id:B.id,params:{...r,tableId:c,name:u,header:g}}),f.push({id:V.id,params:{tableId:c,unitId:r.unitId}}),(0,t.sequenceExecute)(d,a).result?(i.pushUndoRedo({unitID:r.unitId,undoMutations:f,redoMutations:d}),!0):!1}},H={id:`sheet.mutation.set-sheet-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{if(!t)return!1;let{unitId:n,tableId:r,config:i}=t;return e.get(R).setTableByConfig(n,r,i),!0}},vt={id:`sheet.command.add-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(R),{unitId:a,tableId:o,themeStyle:s}=n,c=[],l=[],u=i.getTableById(a,o);if(!u)return!1;let d=u.getSubunitId();c.push({id:r.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleJSON:s.toJson()}}),c.push({id:H.id,params:{unitId:a,subUnitId:d,tableId:o,config:{theme:s.getName()}}}),l.push({id:H.id,params:{unitId:a,subUnitId:d,tableId:o,config:{themeStyle:u.getTableStyleId()}}}),l.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleName:s.getName()}});let f=e.get(t.ICommandService);return(0,t.sequenceExecute)(c,f).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0):!1}},U={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(R),s=e.get(t.ILogService),c=[],l=[],u=o.getTable(n.unitId,n.tableId),d=u==null?void 0:u.toJSON();if(!d)return s.error(`[TableManager]: Table not found`),!1;let f=e.get(r.SheetInterceptorService).onCommandExecute({id:U.id,params:{...n,tableName:d.name}});return c.push(...f.preRedos??[]),c.push({id:V.id,params:{...n}}),c.push(...f.redos),l.push(...f.preUndos??[]),l.push({id:B.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:d.name,range:d.range,options:d.options}}),l.push(...f.undos),(0,t.sequenceExecute)(c,a).result?(i.pushUndoRedo({unitID:n.unitId,undoMutations:l,redoMutations:c}),!0):!1}},yt={id:`sheet.command.remove-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,tableId:a,themeName:o}=n,s=e.get(R),c=e.get(r.SheetRangeThemeModel),l=s.getTableById(i,a);if(!l)return!1;let u=l.getSubunitId(),d=[],f=[],p=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(`table-default`)),m=c.getRegisteredRangeThemes().filter(e=>e==null?void 0:e.startsWith(oe)).find(e=>e!==o);m||=p[0],d.push({id:H.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:m}}}),d.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleName:o}});let h=c.getDefaultRangeThemeStyle(o);h&&(f.push({id:r.AddRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleJSON:h.toJson()}}),f.push({id:H.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:o}}}));let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(d,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0):!1}};function bt(e,n){let r=e.trim();if(!r)return{valid:!1,reason:`empty`};let i=new Set(Array.from(n,e=>e.toLowerCase()));return(0,t.customNameCharacterCheck)(r.toLowerCase(),i)?{valid:!0}:{valid:!1,reason:`invalid`}}function W(e,i,a,o,s,c,l){var u;let d=(u=e.getTableInfo)==null?void 0:u.call(e);if(!d)return;let f=d.range.startRow+ +!!d.showHeader,p={},m;if(d.columns.forEach((e,r)=>{var i;if(l&&e.id!==l.columnId)return;let a=(i=(l==null?void 0:l.formula)??e.formula)==null?void 0:i.trim(),u=(l==null?void 0:l.formulaIsArray)??e.formulaIsArray;if(!a)return;let h=xt(a.startsWith(`=`)?a:`=${a}`,d.name),g=d.range.startColumn+r;m??=c();for(let e=o;e<=s;e++){p[e]??={};let r={f:m.moveFormulaRefOffset(h,0,e-f),si:null,ref:null,ft:u?t.FormulaType.ARRAY:null,fd:u?t.BooleanNumber.FALSE:null,v:null,p:null,t:null};u&&(r.ref=(0,n.serializeRange)({startRow:e,endRow:e,startColumn:g,endColumn:g})),p[e][g]=r}}),Object.keys(p).length)return{id:r.SetRangeValuesMutation.id,params:{unitId:i,subUnitId:a,cellValue:p}}}function xt(e,t){let n=``;for(let r=0;r<e.length;r++){let i=r,a=e[r];if(a===`"`||a===`'`){for(;++r<e.length;)if(e[r]===a){if(e[r+1]!==a)break;r++}}else if(a===`[`){let a=1;for(;++r<e.length&&a>0&&(e[r]===`'`?r++:e[r]===`[`?a++:e[r]===`]`&&a--,a!==0););if(a===0){let a=e.slice(i+1,r),o=e.slice(0,i).trimEnd().slice(-1),s=!o||/[=+\-*/^&(<>,;:{]/.test(o),c=e.slice(r+1).trimStart();if(!/^[^+\-*/^&=<>%),;}:\s]/.test(c)){let e=s?t:``,r=a.slice(1);n+=a.startsWith(`@`)?`${e}[[#This Row],${r.startsWith(`[`)?r:`[${r}]`}]`:`${e}[${a}]`;continue}}}n+=e.slice(i,r+1)}return n}let St={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,tableId:o,name:s,updateRange:c,rowColOperation:l,theme:u,filterButtons:d}=i,f=e.get(R),p=f.getTableById(a,o);if(!p)return!1;let m=[],h=[],g={},_={};if(i.calculatedColumn){let{columnId:t,formula:o,formulaIsArray:s}=i.calculatedColumn,u=p.getColumn(t);if(!u||typeof o!=`string`||s!==void 0&&typeof s!=`boolean`||c||l)return!1;let d=p.getTableFilterRange(),f=p.getTableInfo().columns.findIndex(e=>e.id===t),v=d.startColumn+f,y={...d,startColumn:v,endColumn:v};if(!(0,r.checkRangesEditablePermission)(e,a,p.getSubunitId(),[y]))return!1;let b=o.trim();if(b===`=`)return!1;g.calculatedColumn={columnId:t,formula:u.formula,formulaIsArray:u.formulaIsArray},_.calculatedColumn={columnId:t,formula:b&&!b.startsWith(`=`)?`=${b}`:b,formulaIsArray:b?s??u.formulaIsArray:void 0};let x=W(p,a,p.getSubunitId(),d.startRow,d.endRow,()=>e.get(n.LexerTreeBuilder),_.calculatedColumn);x&&(m.push(x),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,x.params)}))}if(d){var v;if(((v=e.get(t.IPermissionService).getPermissionPoint(new r.WorkbookEditablePermission(a).id))==null?void 0:v.value)===!1)return!1;let{showAutoFilter:n,columns:i}=d;if(n!==void 0&&typeof n!=`boolean`)return!1;let o=Object.entries(i??{});if(o.some(([e,t])=>!p.getColumn(e)||typeof t!=`boolean`))return!1;g.filterButtons={...n===void 0?{}:{showAutoFilter:p.isShowAutoFilter()},columns:Object.fromEntries(o.map(([e])=>[e,p.getColumn(e).isShowFilterButton()]))},_.filterButtons={...n===void 0?{}:{showAutoFilter:n},columns:Object.fromEntries(o)}}let y=e.get(t.LocaleService),b=C(a,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:f,definedNamesService:e.get(n.IDefinedNamesService)});if(s){if(!bt(s,b).valid)return e.get(t.ILogService).warn(y.t(`sheets-table.tableNameError`)),!1;g.name=p.getDisplayName(),_.name=s}l&&(g.rowColOperation={operationType:l.operationType===`insert`?`delete`:`insert`,rowColType:l.rowColType,index:l.index,count:l.count},_.rowColOperation=l),c&&(g.updateRange={newRange:p.getRange()},_.updateRange=c),u&&(g.theme=p.getTableStyleId(),_.theme=u);let x={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:_},S={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:g},w=e.get(r.SheetInterceptorService).onCommandExecute({id:St.id,params:{...i,oldTableName:g.name}}),T=[...w.preRedos??[],{id:H.id,params:x},...m,...w.redos],ee=[...w.preUndos??[],{id:H.id,params:S},...h,...w.undos],te=e.get(t.ICommandService);return(0,t.sequenceExecute)(T,te).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:ee,redoMutations:T}),!0):!1}},G={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t,o=e.get(R),s=o.getTable(r,n);if(o.addFilter(r,n,i,a),s){var c;let e=s.getTableFilters();t.filterOutRows?e.setFilterOutRows(t.filterOutRows):t.filterOutRows=[...e.getFilterOutRows()],t.subUnitId=s.getSubunitId(),t.tableFilteredOutRows=((c=o.toJSON(r)[t.subUnitId])==null?void 0:c.tableFilteredOutRows)??[]}return!0}},Ct={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;if(!n)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(R),c=n.tableId||(0,t.generateRandomId)(),l=(r=s.getTable(n.unitId,c))==null?void 0:r.getTableFilters(),u=l==null?void 0:l.getColumnFilter(n.column),d=[...(l==null?void 0:l.getFilterOutRows())??[]],f=((i=n.tableFilter)==null?void 0:i.filterType)===`record`?F(n.tableFilter):n.tableFilter,p=[],m=[];return p.push({id:G.id,params:{...n,tableId:c,tableFilter:f}}),m.push({id:G.id,params:{...n,tableId:c,tableFilter:u,filterOutRows:d}}),(0,t.sequenceExecute)(p,o).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:m,redoMutations:p}),!0):!1}},wt={id:`sheet.command.set-table-sort-state`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(R).getTable(n.unitId,n.tableId);if(!r)return!1;let i=r.getTableFilters().toJSON().tableSortInfo,a=e.get(t.ICommandService),o={unitId:n.unitId,subUnitId:r.getSubunitId(),tableId:n.tableId,config:{sortInfo:n.sortInfo}};return a.syncExecuteCommand(H.id,o)?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n.unitId,undoMutations:[{id:H.id,params:{...o,config:{sortInfo:i}}}],redoMutations:[{id:H.id,params:o}]}),!0):!1}},K=class extends t.Disposable{constructor(e,t,n,r){super(),this._univerInstanceService=e,this._sheetInterceptorService=t,this._tableManager=n,this._resourceManagerService=r,D(this,`_tableRangeRTree`,new Map),this.registerTableChangeEvent(),this._initSnapshot(),this._initSheetChange(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(e,n,r){let i=this._ensureTableRangeRTree(e),a=Array.from(i.bulkSearch([{unitId:e,sheetId:n,range:r}])).find(n=>{let i=this._tableManager.getTable(e,String(n));return i?t.Rectangle.contains(i.getRange(),r):!1});if(a)return this._tableManager.getTable(e,String(a))}_ensureTableRangeRTree(e){return this._tableRangeRTree.has(e)||this._tableRangeRTree.set(e,new t.RTree),this._tableRangeRTree.get(e)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._ensureTableRangeRTree(r).insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,oldRange:a,oldSubUnitId:o=i}=e,s=this._ensureTableRangeRTree(r);s.remove({unitId:r,sheetId:o,id:n,range:{...a}}),s.insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._ensureTableRangeRTree(n).remove({unitId:n,sheetId:r,id:t,range:{...i}})}))}registerTableHeaderInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.CELL_CONTENT,{effect:t.InterceptorEffectEnum.Value,handler:(e,t,n)=>{let{row:r,col:i,unitId:a,subUnitId:o}=t,s=this._ensureTableRangeRTree(a);if((e==null?void 0:e.v)===void 0&&s){let c=Array.from(s.bulkSearch([{unitId:a,sheetId:o,range:{startColumn:i,endColumn:i,startRow:r,endRow:r}}]));if(c.length>0){let o=this._tableManager.getTable(a,c[0]);if(o){let a=o.getRange(),s=i-a.startColumn;if(a.startRow===r){let r=o.getColumnNameByIndex(s);return(!e||e===t.rawData)&&(e={...t.rawData}),e.v=r,n(e)}}}}return n(e)}}))}_toJson(e){return this._tableManager.toJSON(e)}_fromJSON(e,t){return this._tableManager.fromJSON(e,t)}_deleteUnitId(e){this._tableManager.deleteUnitId(e)}_initSnapshot(){this.disposeWithMe(this._resourceManagerService.registerPluginResource({toJson:e=>JSON.stringify(this._toJson(e)),parseJson:e=>{if(!e)return{};try{return JSON.parse(e)}catch{return{}}},businesses:[t.UniverInstanceType.UNIVER_SHEET],pluginName:ae,onLoad:(e,t)=>{this._fromJSON(e,t)},onUnLoad:e=>{this._deleteUnitId(e)}}))}_initSheetChange(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>{if(e.id===r.RemoveSheetCommand.id){var n;let r=e.params,i=r.unitId||this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getUnitId(),a=r.subUnitId||((n=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET).getActiveSheet())==null?void 0:n.getSheetId());if(!i||!a)return{redos:[],undos:[]};let o=this._tableManager.getTablesBySubunitId(i,a);if(o.length===0)return{redos:[],undos:[]};let s=[],c=[];return o.forEach(e=>{let t=e.toJSON();s.push({id:V.id,params:{unitId:i,subUnitId:a,tableId:t.id}}),c.push({id:B.id,params:{unitId:i,subUnitId:a,name:t.name,range:t.range,tableId:t.id,options:{...t.options,columns:t.columns,filters:t.filters.tableColumnFilterList}}})}),{redos:s,undos:c}}if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._tableManager.getTablesBySubunitId(n,r);if(a.length===0)return{redos:[],undos:[]};let o=[],s=[];return a.forEach(e=>{let r=e.toJSON(),a=(0,t.generateRandomId)();o.push({id:B.id,params:{unitId:n,subUnitId:i,name:r.name,range:{...r.range,sheetId:i},tableId:a,options:{...r.options,columns:r.columns,filters:r.filters.tableColumnFilterList}}}),s.push({id:V.id,params:{unitId:n,subUnitId:i,tableId:a}})}),{redos:o,undos:s}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}};K=L([I(0,(0,t.Inject)(t.IUniverInstanceService)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,(0,t.Inject)(R)),I(3,(0,t.Inject)(t.IResourceManagerService))],K);function Tt(e,n,r,i){let a=e.get(t.ICommandService);return(0,t.sequenceExecute)(r,a).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:i,redoMutations:r}),!0):!1}let Et={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(K).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endRow-u.startRow+1,p=o.getRowCount()-1,m=o.getCellMatrix().getDataRange().endRow,h=[],g=[];if(p-m<f)h.push({id:r.InsertRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}}),h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...d.getRange(),endRow:d.getRange().endRow+f}}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:d.getRange()}}}}),g.push({id:r.RemoveRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}});else{let t={...d.getRange()};h.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t,endRow:t.endRow+f}}}}}),g.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:s,fromSubUnitId:c,toSubUnitId:c,fromRange:{startRow:u.startRow,endRow:m,startColumn:t.startColumn,endColumn:t.endColumn},toRange:{startRow:u.startRow+f,endRow:m+f,startColumn:t.startColumn,endColumn:t.endColumn}},{includeSelection:!1,includeAutoHeight:!1});n&&(h.push(...n.redos),g.push(...n.undos))}let _=W(d,s,c,u.startRow,u.endRow,()=>e.get(n.LexerTreeBuilder));_&&(h.push(_),g.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,_.params)}));let v=e.get(t.ICommandService);return(0,t.sequenceExecute)(h,v).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:g,redoMutations:h}),!0):!1}},Dt={id:`sheet.command.table-insert-row-at`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,subUnitId:o,tableId:s,index:c,count:l=1}=i;if(l<=0)return!1;let u=e.get(t.IUniverInstanceService),d=(0,r.getSheetCommandTarget)(u,{unitId:a,subUnitId:o});if(!d)return!1;let f=e.get(R).getTableById(a,s);if(!f||f.getSubunitId()!==o)return!1;let p=f.getRange();if(c<=p.startRow||c>p.endRow+1)return!1;let m=[{id:H.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p,endRow:p.endRow+l}}}}}],h=[{id:H.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p}}}}}],g=d.worksheet.getCellMatrix().getDataRange().endRow,_=c<=g?(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:a,fromSubUnitId:o,toSubUnitId:o,fromRange:{startRow:c,endRow:g,startColumn:p.startColumn,endColumn:p.endColumn},toRange:{startRow:c+l,endRow:g+l,startColumn:p.startColumn,endColumn:p.endColumn}},{includeSelection:!1,includeAutoHeight:!1}):null;_&&(m.push(..._.redos),h.push(..._.undos));let v=W(f,a,o,c,c+l-1,()=>e.get(n.LexerTreeBuilder));return v&&(m.push(v),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,v.params)})),Tt(e,a,m,h)}},Ot={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=e.get(t.IUniverInstanceService),i=(0,r.getSheetCommandTarget)(n);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(K).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endColumn-l.startColumn+1,f=a.getColumnCount()-1,p=a.getCellMatrix().getDataRange().endColumn,m=[],h=[];if(f-p<d)m.push({id:r.InsertColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:r.RemoveColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}});else{let t=u.getRange();m.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn,endColumn:p}},{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn+d,endColumn:p+d}});n&&(m.push(...n.redos),h.push(...n.undos))}let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(m,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},kt={id:`sheet.command.table-insert-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(R).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s>f.endColumn+1)return!1;let p=[{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c}}}}],m=[{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}}],h=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s<=h){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:h}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:h+c}});t&&(p.push(...t.redos),m.push(...t.undos))}return Tt(e,i,p,m)}},At={id:`sheet.command.table-remove-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(R).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s+c-1>f.endColumn||c>=f.endColumn-f.startColumn+1)return!1;let p=d.getTableInfo(),m=[],h=s-f.startColumn;for(let e=0;e<c;e++){let t=p.columns[h+e];t&&m.push(t)}let g=e.get(r.SheetInterceptorService).onCommandExecute({id:At.id,params:{...n,tableName:p.name,removedColumnNames:m.map(e=>e.displayName)}}),_=[...g.preRedos??[],{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}},...g.redos],v=[...g.preUndos??[],{id:H.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c,columnsJson:m}}}},...g.undos],y=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s+c<=y){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:y}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:y-c}});t&&(_.push(...t.redos),v.push(...t.undos))}return Tt(e,i,_,v)}},jt={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(K).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endRow-l.startRow+1,f=[],p=[],m=u.getRange();f.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m,endRow:m.endRow-d}}}}}),p.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m}}}}});let h=a.worksheet.getCellMatrix().getDataRange().endRow,g=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.endRow+1,endRow:h,startColumn:m.startColumn,endColumn:m.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:h-d,startColumn:m.startColumn,endColumn:m.endColumn}});g&&(f.push(...g.redos),p.push(...g.undos));let _=e.get(t.ICommandService);return(0,t.sequenceExecute)(f,_).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:p,redoMutations:f}),!0):!1}},Mt={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{workbook:o,unitId:s,subUnitId:c}=a;e.get(R);let l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(K).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endColumn-u.startColumn+1,p=[],m=[],h=d.getRange();p.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:u.startColumn,count:f}}}});let g=d.getTableInfo(),_=[],v=u.startColumn-h.startColumn;for(let e=0;e<f;e++){let t=g.columns[v+e];t&&_.push(t)}let y=e.get(r.SheetInterceptorService).onCommandExecute({id:Mt.id,params:{...n,tableName:g.name,removedColumnNames:_.map(e=>e.displayName)}});p.unshift(...y.preRedos??[]),p.push(...y.redos),m.unshift(...y.preUndos??[]),m.push({id:H.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:u.startColumn,count:f,columnsJson:_}}}}),m.push(...y.undos);let b=a.worksheet.getCellMatrix().getDataRange().endColumn,x=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.endColumn+1,endColumn:b}},{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.startColumn,endColumn:b-f}});x&&(p.push(...x.redos),m.push(...x.undos));let S=e.get(t.ICommandService);return(0,t.sequenceExecute)(p,S).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}},q=class extends t.Disposable{constructor(e,t,n,r){super(),this._tableManager=e,this._sheetRangeThemeService=t,this._sheetRangeThemeModel=n,this._configService=r,D(this,`_defaultThemeIndex`,0),D(this,`_allThemes`,[]),this._initUserTableTheme(),this.registerTableChangeEvent(),this._initDefaultTableTheme()}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,tableStyleId:a}=e,o=this._tableManager.getTable(r,n),s=a||this._allThemes[this._defaultThemeIndex].name;o.setTableStyleId(s),this._sheetRangeThemeService.registerRangeThemeStyle(s,{unitId:r,subUnitId:i,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,oldRange:n,tableId:r,unitId:i,subUnitId:a,oldSubUnitId:o=a}=e,s=this._tableManager.getTable(i,r),c=s.getTableStyleId();c||(c=this._allThemes[this._defaultThemeIndex].name,s.setTableStyleId(c)),this._sheetRangeThemeService.removeRangeThemeRule(c,{unitId:i,subUnitId:o,range:{...n}}),this._sheetRangeThemeService.registerRangeThemeStyle(c,{unitId:i,subUnitId:a,range:{...t}})})),this.disposeWithMe(this._tableManager.tableThemeChanged$.subscribe(e=>{let{theme:t,oldTheme:n,tableId:r,unitId:i,subUnitId:a}=e,o=this._tableManager.getTable(i,r).getRange();this._sheetRangeThemeService.removeRangeThemeRule(n,{unitId:i,subUnitId:a,range:{...o}}),this._sheetRangeThemeService.registerRangeThemeStyle(t,{unitId:i,subUnitId:a,range:{...o}})})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{range:t,unitId:n,subUnitId:r,tableStyleId:i=this._allThemes[this._defaultThemeIndex].name}=e;this._sheetRangeThemeService.removeRangeThemeRule(i,{unitId:n,subUnitId:r,range:{...t}})}))}_initUserTableTheme(){let e=this._configService.getConfig(`sheets-table.config`)||{},t=e.defaultThemeIndex||0,n=e.userThemes||[];this._defaultThemeIndex=t,this._allThemes=n.concat(ne)}_initDefaultTableTheme(){for(let e=0;e<this._allThemes.length;e++){let{name:t,style:n}=this._allThemes[e],i=new r.RangeThemeStyle(t,n);this._sheetRangeThemeModel.registerDefaultRangeTheme(i)}}dispose(){super.dispose(),this._allThemes=[],this._defaultThemeIndex=0}};q=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetRangeThemeService)),I(2,(0,t.Inject)(r.SheetRangeThemeModel)),I(3,t.IConfigService)],q);var Nt=`@univerjs/sheets-table`,Pt=`1.0.4`;let Ft={id:`sheet.mutation.move-table`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!n)return!1;let{unitId:r,tableId:i,subUnitId:a,range:o,calculatedColumns:s}=n,c=e.get(R),l=c.getTableById(r,i),u=e.get(t.IUniverInstanceService).getUnit(r),d=u==null?void 0:u.getSheetBySheetId(a);if(!l||!d)return!1;let f=s??l.getTableInfo().columns.map((e,t)=>{var n;let r=o.startRow+ +!!l.isShowHeader(),i=o.endRow-+!!l.isShowFooter(),a=e.formula&&r<=i?(n=d.getCellRaw(r,o.startColumn+t))==null?void 0:n.f:void 0;return{columnId:e.id,formula:a||e.formula,formulaIsArray:e.formulaIsArray}}).filter(e=>e.formula);for(let e of f){let t=l.getColumn(e.columnId);t&&(t.formula=e.formula,t.formulaIsArray=e.formulaIsArray)}return c.moveTable(r,i,a,o),!0}},J=class extends t.Disposable{constructor(e,t,n){super(),this._tableManager=e,this._commandService=t,this._activeDirtyManagerService=n,this._initRangeListener(),this._initFilterDirtyRange()}_initFilterDirtyRange(){this._activeDirtyManagerService.register(G.id,{commandId:G.id,getDirtyData:e=>{let t=e.params,n=this._tableManager.getTableById(t.unitId,t.tableId);if(!n)return{};let{subUnitId:r,range:i}=n.getTableInfo();return{dirtyRanges:[{unitId:t.unitId,sheetId:r,range:i}],clearDependencyTreeCache:{[t.unitId]:{[r]:`1`}}}}}),this.disposeWithMe((0,t.toDisposable)(()=>{this._activeDirtyManagerService.remove(G.id)}))}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{unitId:t,subUnitId:r,tableName:i,range:a}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:i,reference:{sheetId:r,range:a}},{onlyLocal:!0})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(e=>{let{tableId:t,unitId:r,oldTableName:i}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:r,tableName:i},{onlyLocal:!0});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a,i)}))}_updateSuperTable(e,t,r){let i=t.getTableInfo(),a=i.name,o=i.columns,s=new Map;o.forEach((e,t)=>{s.set(e.displayName,t)}),this._commandService.executeCommand(n.SetSuperTableMutation.id,{unitId:e,tableName:a,oldTableName:r,reference:{range:i.range,sheetId:i.subUnitId,titleMap:s}},{onlyLocal:!0})}};J=L([I(0,(0,t.Inject)(R)),I(1,t.ICommandService),I(2,n.IActiveDirtyManagerService)],J);let Y=class extends t.Disposable{constructor(e,t,n,i,a,o){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._injector=i,this._localeService=a,this._errorService=o,this.disposeWithMe(this._sheetInterceptorService.interceptBeforeCommand({performCheck:async e=>e.id!==r.MoveRangeCommand.id||this._checkMove(e.params)})),this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>e.id===r.MoveRangeCommand.id?this._getMoveMutations(e.params):{redos:[],undos:[]}}))}_getTargets(e){let t=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.fromUnitId??e.toUnitId,subUnitId:e.fromSubUnitId});return{source:t,target:(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.toUnitId??(t==null?void 0:t.unitId),subUnitId:e.toSubUnitId??(t==null?void 0:t.subUnitId)})}}_checkMove(e){let{source:n,target:i}=this._getTargets(e);if(!n||!i||n.unitId!==i.unitId)return!1;let a=this._tableManager.getTablesBySubunitId(n.unitId,n.subUnitId).filter(n=>t.Rectangle.contains(e.fromRange,n.getRange()));if(!a.length)return!0;let o=this._tableManager.getTablesBySubunitId(i.unitId,i.subUnitId);for(let n of o)if(!a.includes(n)&&t.Rectangle.intersects(e.toRange,n.getRange()))return this._errorService.emit(this._localeService.t(`sheets-table.moveTableOverlapError`)),!1;let{fromRange:s,toRange:c}=e;return this._isValidMoveRange(e,i.worksheet)?(0,r.checkRangesEditablePermission)(this._injector,n.unitId,n.subUnitId,[s])&&(0,r.checkRangesEditablePermission)(this._injector,i.unitId,i.subUnitId,[c]):!1}_isValidMoveRange(e,t){let{fromRange:n,toRange:r}=e;return!(n.endRow-n.startRow!==r.endRow-r.startRow||n.endColumn-n.startColumn!==r.endColumn-r.startColumn||r.startRow<0||r.startColumn<0||r.endRow>=t.getRowCount()||r.endColumn>=t.getColumnCount())}_getMoveMutations(e){let n=[],r=[],{source:i,target:a}=this._getTargets(e);if(!i||!a||i.unitId!==a.unitId)return{redos:n,undos:r};let o=e.toRange.startRow-e.fromRange.startRow,s=e.toRange.startColumn-e.fromRange.startColumn,c=this._tableManager.getTablesBySubunitId(i.unitId,i.subUnitId);for(let l of c){let c=l.getRange();t.Rectangle.contains(e.fromRange,c)&&(n.push({id:Ft.id,params:{unitId:i.unitId,tableId:l.getId(),subUnitId:a.subUnitId,range:{startRow:c.startRow+o,endRow:c.endRow+o,startColumn:c.startColumn+s,endColumn:c.endColumn+s}}}),r.push({id:Ft.id,params:{unitId:i.unitId,tableId:l.getId(),subUnitId:i.subUnitId,range:c,calculatedColumns:l.getTableInfo().columns.filter(e=>e.formula).map(e=>({columnId:e.id,formula:e.formula,formulaIsArray:e.formulaIsArray}))}}))}return{redos:n,undos:r}}};Y=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,t.IUniverInstanceService),I(3,(0,t.Inject)(t.Injector)),I(4,(0,t.Inject)(t.LocaleService)),I(5,(0,t.Inject)(t.ErrorService))],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,oldSubUnitId:a=i}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(r,a,k,n),this._exclusiveRangeService.addExclusiveRange(r,i,k,[{range:{...t},groupId:n}])})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r,range:i}=e;this._exclusiveRangeService.addExclusiveRange(n,r,k,[{range:{...i},groupId:t}])})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{tableId:t,unitId:n,subUnitId:r}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(n,r,k,t)}))}};X=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.IExclusiveRangeService))],X);let Z=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._tableManager=a,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({priority:-1,getMutations(t){let n={redos:[],undos:[]},{id:i,params:a}=t;switch(i){case r.InsertRowCommand.id:return e._generateTableMutationWithInsertRow(a);case r.InsertColCommand.id:return e._generateTableMutationWithInsertCol(a);case r.RemoveRowCommand.id:return e._generateTableMutationWithRemoveRow(a);case r.RemoveColCommand.id:return e._generateTableMutationWithRemoveCol(a)}return n}})}_generateTableMutationWithInsertRow(e){let t=[],i=[],a=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!a)return{undos:t,redos:i};let{unitId:o,subUnitId:s}=a,c=this._tableManager.getTablesBySubunitId(o,s);if(!c.length)return{undos:t,redos:i};let{range:l}=e;return c.forEach(e=>{let r=e.getRange();if(l.startRow>r.startRow&&l.startRow<=r.endRow){let a=l.endRow-l.startRow+1;i.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+a}}}}});let c=W(e,o,s,l.startRow,l.endRow,()=>this._injector.get(n.LexerTreeBuilder));c&&i.push(c),t.push({id:H.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:i}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startColumn>r.startColumn&&c.startColumn<=r.endColumn){let r=c.endColumn-c.startColumn+1;n.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:r}}}}),t.push({id:H.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:c.startColumn,count:r}}}})}}),{undos:t,redos:n}}_generateTableMutationWithRemoveRow(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endRow-d.startRow+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startRow<=r.startRow&&d.endRow>=r.startRow){a.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let t=e.toJSON();n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:t.id,name:t.name,range:t.range,options:t.options}})}else d.startRow>r.startRow&&d.startRow<=r.endRow?(i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow-f}}}}}),n.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})):d.startRow<r.endRow&&d.endRow>=r.endRow&&(i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:d.startRow-1}}}}}),n.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}}))}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_generateTableMutationWithRemoveCol(e){let n=[],i=[],a=[],o=[],s=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!s)return{undos:n,redos:i,preRedos:a,preUndos:o};let{unitId:c,subUnitId:l}=s,u=this._tableManager.getTablesBySubunitId(c,l);if(!u.length)return{undos:n,redos:i,preRedos:a,preUndos:o};let{range:d}=e,f=d.endColumn-d.startColumn+1;return u.forEach(e=>{let r=e.getRange();if(t.Rectangle.intersects(r,d)){if(d.startColumn<=r.startColumn&&d.endColumn>=r.endColumn){let t=e.getTableInfo(),r=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.delete-table`,params:{unitId:c,subUnitId:l,tableId:e.getId(),tableName:t.name}});a.push(...r.preRedos??[],...r.redos),a.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let s=e.toJSON(),{startRow:u,startColumn:d,endColumn:f}=s.range,m=this._univerInstanceService.getUnit(c),h=m==null?void 0:m.getSheetBySheetId(l);if(!h)return{undos:n,redos:i,preRedos:a,preUndos:o};let g=[];for(let e=d;e<=f;e++)g.push(_(h==null?void 0:h.getCell(u,e))||p(e-d+1,this._localeService.t(`sheets-table.columnPrefix`)));n.push({id:B.id,params:{unitId:c,subUnitId:l,tableId:s.id,name:s.name,header:g,range:s.range,options:s.options}}),n.push(...r.preUndos??[],...r.undos)}else if(d.startColumn<=r.startColumn&&d.endColumn>=r.startColumn){let t=e.toJSON(),a=d.endColumn-r.startColumn+1;i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:r.startColumn,count:a}}}});let s=[];for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn>r.endColumn){let t=e.toJSON(),a=r.endColumn-d.startColumn+1;i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:a}}}});let s=[],u=d.startColumn-r.startColumn;for(let t=0;t<a;t++){let n=e.getTableColumnByIndex(t+u);n&&s.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:s})}else if(d.startColumn>r.startColumn&&d.endColumn<=r.endColumn){let t=e.toJSON();i.push({id:H.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:d.startColumn,count:f}}}});let a=[],s=d.startColumn-r.startColumn;for(let t=0;t<f;t++){let n=e.getTableColumnByIndex(t+s);n&&a.push(n.toJSON())}o.push(this._getDeleteTableMutation(c,l,e.getId())),n.push(this._getAddTableMutation(c,l,t)),this._appendTableColumnFormulaMutations(i,n,{unitId:c,subUnitId:l,tableId:e.getId(),tableName:e.getTableInfo().name,range:d,columns:a})}}}),{undos:n,redos:i,preRedos:a,preUndos:o}}_getDeleteTableMutation(e,t,n){return{id:V.id,params:{unitId:e,subUnitId:t,tableId:n}}}_getAddTableMutation(e,t,n){let r=n.columns.map(e=>e.displayName);return{id:B.id,params:{unitId:e,subUnitId:t,tableId:n.id,name:n.name,header:r,range:n.range,options:{...n.options,columns:n.columns,filters:n.filters.tableColumnFilterList}}}}_appendTableColumnFormulaMutations(e,t,n){let r=n.columns.map(e=>e.displayName);if(!r.length)return;let i=this._sheetInterceptorService.onCommandExecute({id:`sheet.command.table-remove-col`,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,tableName:n.tableName,range:n.range,removedColumnNames:r}});e.splice(Math.max(e.length-1,0),0,...i.preRedos??[],...i.redos),t.push(...i.preUndos??[],...i.undos)}_initCommandListener(){this._commandService.onCommandExecuted(e=>{if(e.id===r.InsertRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<=n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow+i,endRow:n.endRow+i}})})}else if(e.id===r.InsertColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<=n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn+i,endColumn:n.endColumn+i}})})}else if(e.id===r.RemoveRowMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endRow-r.startRow+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startRow<n.startRow&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startRow:n.startRow-i,endRow:n.endRow-i}})})}else if(e.id===r.RemoveColMutation.id){let{unitId:t,subUnitId:n,range:r}=e.params,i=r.endColumn-r.startColumn+1;this._tableManager.getTablesBySubunitId(t,n).forEach(e=>{let n=e.getRange();r.startColumn<n.startColumn&&this._tableManager.updateTableRange(t,e.getId(),{newRange:{...n,startColumn:n.startColumn-i,endColumn:n.endColumn-i}})})}})}};Z=L([I(0,(0,t.Inject)(t.ICommandService)),I(1,(0,t.Inject)(r.RefRangeService)),I(2,(0,t.Inject)(t.IUniverInstanceService)),I(3,(0,t.Inject)(t.Injector)),I(4,(0,t.Inject)(r.SheetInterceptorService)),I(5,(0,t.Inject)(R)),I(6,(0,t.Inject)(t.LocaleService))],Z);let Q=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._sheetRowFilteredService=r,this._zebraCrossingCacheController=i,D(this,`_tableFilteredOutRows`,new Map),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._registerFormulaRowFiltered(),this._initFilteredOutRows()}_registerFormulaRowFiltered(){this.disposeWithMe(this._sheetRowFilteredService.register((e,t,n)=>this._getTableFilteredOutRows(e,t).has(n)))}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this._getTableFilteredOutRows(t.unitId,t.subUnitId).has(t.row);return r?!0:n(r)}}))}_initFilteredOutRows(){this.disposeWithMe(this._tableManager.tableInitStatus$.pipe((0,i.filter)(e=>e),(0,i.switchMap)(()=>this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET)),(0,i.filter)(e=>e!=null),(0,i.switchMap)(e=>e.activeSheet$),(0,i.filter)(e=>e!=null)).subscribe(()=>{let e=(0,r.getSheetCommandTarget)(this._univerInstanceService);if(!e)return;let{unitId:t,subUnitId:n}=e;this._refreshTableFilteredOutRows(t,n)}))}registerFilterChangeEvent(){this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{let{unitId:t,subUnitId:n,tableId:r,oldSubUnitId:i}=e,a=this._univerInstanceService.getUnit(t),o=a==null?void 0:a.getSheetBySheetId(n),s=this._tableManager.getTable(t,r);o&&s&&(s.getTableFilters().doFilter(o,s.getTableFilterRange(),a==null?void 0:a.getDateSystem()),this._refreshTableFilteredOutRows(t,n),this._zebraCrossingCacheController.updateZebraCrossingCache(t,n),i&&i!==n&&(this._refreshTableFilteredOutRows(t,i),this._zebraCrossingCacheController.updateZebraCrossingCache(t,i)))}))}_refreshTableFilteredOutRows(e,t){let n=new Set;this._tableManager.getTablesBySubunitId(e,t).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),this._tableFilteredOutRows.set(this._getSheetKey(e,t),n)}_getTableFilteredOutRows(e,t){let n=this._getSheetKey(e,t);return this._tableFilteredOutRows.has(n)||this._refreshTableFilteredOutRows(e,t),this._tableFilteredOutRows.get(n)??new Set}_getSheetKey(e,t){return`${e}|${t}`}dispose(){super.dispose(),this._tableFilteredOutRows.clear()}};Q=L([I(0,(0,t.Inject)(R)),I(1,(0,t.Inject)(r.SheetInterceptorService)),I(2,(0,t.Inject)(t.IUniverInstanceService)),I(3,(0,t.Inject)(n.ISheetRowFilteredService)),I(4,(0,t.Inject)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=T,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},T,this._config);this._configService.setConfig(`sheets-table.config`,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[R],[q],[K],[z],[Q],[X],[Z],[Y],[J]])}onReady(){(0,t.touchDependencies)(this._injector,[[J],[X],[Z],[Y],[q],[K],[z],[Q]]),(0,t.touchDependencies)(this._injector,[[R]])}_initRegisterCommand(){[_t,B,U,V,Ft,G,Ct,wt,St,H,vt,yt,Et,Ot,Dt,kt,jt,Mt,At].forEach(e=>this._commandService.registerCommand(e))}};D($,`pluginName`,ae),D($,`packageName`,Nt),D($,`version`,Pt),D($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=L([(0,t.DependentOn)(r.UniverSheetsPlugin),I(1,(0,t.Inject)(t.Injector)),I(2,t.IConfigService),I(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=_t,e.AddSheetTableMutation=B,e.AddTableThemeCommand=vt,e.DeleteSheetTableCommand=U,e.DeleteSheetTableMutation=V,e.RemoveTableThemeCommand=yt,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=oe,e.SetSheetTableCommand=St,e.SetSheetTableFilterCommand=Ct,e.SetSheetTableFilterMutation=G,e.SetSheetTableMutation=H,e.SetSheetTableSortStateCommand=wt,e.SheetTableInsertColCommand=Ot,e.SheetTableInsertColumnAtCommand=kt,e.SheetTableInsertRowAtCommand=Dt,e.SheetTableInsertRowCommand=Et,e.SheetTableRemoveColCommand=Mt,e.SheetTableRemoveColumnAtCommand=At,e.SheetTableRemoveRowCommand=jt,Object.defineProperty(e,"SheetTableService",{enumerable:!0,get:function(){return z}}),e.SheetsTableButtonStateEnum=d,Object.defineProperty(e,"SheetsTableController",{enumerable:!0,get:function(){return K}}),e.SheetsTableSortStateEnum=f,Object.defineProperty(e,"SheetsTableThemeController",{enumerable:!0,get:function(){return q}}),e.TABLE_FILTER_EMPTY_VALUE=se,e.TableColumnDataTypeEnum=a,e.TableColumnFilterTypeEnum=o,e.TableConditionTypeEnum=s,e.TableDateCompareTypeEnum=u,Object.defineProperty(e,"TableManager",{enumerable:!0,get:function(){return R}}),e.TableNumberCompareTypeEnum=c,e.TableStringCompareTypeEnum=l,Object.defineProperty(e,"UniverSheetsTablePlugin",{enumerable:!0,get:function(){return $}}),e.compileTableRecordFilter=P,e.customEmptyThemeWithBorderStyle=ee,e.getExistingNamesSet=C,e.getTableRecordValue=ut,e.getTableRecordValueKey=N,e.isColorTableFilter=x,e.isConditionFilter=y,e.isManualTableFilter=b,e.isRecordTableFilter=S,e.processStyleWithBorderStyle=te,e.validateSheetTableName=bt});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/engine-formula"),require("@univerjs/sheets"),require("rxjs")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/engine-formula`,`@univerjs/sheets`,`rxjs`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsTable={},e.UniverCore,e.UniverEngineFormula,e.UniverSheets,e.rxjs))})(this,function(e,t,n,r,i){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let a=/* @__PURE__ */ 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=/* @__PURE__ */ function(e){return e.manual=`manual`,e.condition=`condition`,e.color=`color`,e.record=`record`,e}({}),s=/* @__PURE__ */ function(e){return e.Date=`date`,e.Number=`number`,e.String=`string`,e.Logic=`logic`,e}({}),c=/* @__PURE__ */ 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=/* @__PURE__ */ function(e){return e.Equal=`equal`,e.NotEqual=`notEqual`,e.Contains=`contains`,e.NotContains=`notContains`,e.StartsWith=`startsWith`,e.EndsWith=`endsWith`,e}({}),u=/* @__PURE__ */ 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=/* @__PURE__ */ 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=/* @__PURE__ */ function(e){return e.Asc=`asc`,e.Desc=`desc`,e.None=`none`,e}({});function p(e,t){return`${t} ${e}`}let m=`TRUE`,h=`FALSE`,g=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function _(e){if(e){let{v:n,t:r,p:i}=e;return i?g(i):(r===t.CellValueType.FORCE_STRING||r===t.CellValueType.STRING)&&n!=null?String(n):r===t.CellValueType.BOOLEAN?n?m:h:r===t.CellValueType.NUMBER?String(n):typeof n==`boolean`?n?m:h:n==null?``:String(n)}return``}function v(e,t){if(e!=null)switch(t){case`asc`:return 2;case`desc`:return 3;default:return 1}else switch(t){case`asc`:return 5;case`desc`:return 6;default:return 4}}function y(e){return e?e.filterType===`condition`:!1}function b(e){return e?e.filterType===`manual`:!1}function x(e){return e?e.filterType===`color`:!1}function ee(e){return e?e.filterType===`record`:!1}function S(e,n){let{univerInstanceService:r,tableManager:i,definedNamesService:a}=n,o=/* @__PURE__ */ 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 C={s:t.BorderStyleTypes.THIN,cl:{rgb:`rgb(95, 101, 116)`}},w={},te={headerRowStyle:{bd:{t:C}},headerColumnStyle:{bd:{l:C}},lastColumnStyle:{bd:{r:C}},lastRowStyle:{bd:{b:C}}},ne=(e,t)=>{if(e===`headerRowStyle`){if(!t.bd)return{...t,bd:{t:C}}}else if(e===`lastRowStyle`){if(!t.bd)return{...t,bd:{b:C}}}else if(e===`lastColumnStyle`){if(!t.bd)return{...t,bd:{r:C}}}else if(e===`headerColumnStyle`&&!t.bd)return{...t,bd:{l:C}};return t},re=[[[`#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:C}},headerColumnStyle:{bd:{l:C}},firstRowStyle:{bg:{rgb:a}},secondRowStyle:{bg:{rgb:o}},lastRowStyle:{bg:{rgb:s},bd:{b:C}},lastColumnStyle:{bd:{r:C}}}}});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 ie(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 ae(e){var t=ie(e,`string`);return T(t)==`symbol`?t:t+``}function E(e,t,n){return(t=ae(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,`formulaIsArray`,void 0),E(this,`totalsRowLabel`,void 0),E(this,`totalsRowFunction`,void 0),E(this,`totalsRowFormula`,void 0),E(this,`showFilterButton`,void 0),E(this,`meta`,void 0),E(this,`style`,void 0),this.id=e,this.displayName=t,this.dataType=`string`,this.formula=``,this.showFilterButton=!0,this.meta={},this.style={}}getMeta(){return this.meta}setMeta(e){this.meta=e}getDisplayName(){return this.displayName}toJSON(){return{id:this.id,displayName:this.displayName,dataType:this.dataType,formula:this.formula,formulaIsArray:this.formulaIsArray,totalsRowLabel:this.totalsRowLabel,totalsRowFunction:this.totalsRowFunction,totalsRowFormula:this.totalsRowFormula,showFilterButton:this.showFilterButton,meta:this.meta,style:this.style}}fromJSON(e){this.id=e.id,this.displayName=e.displayName,this.dataType=e.dataType,this.formula=e.formula,this.formulaIsArray=e.formulaIsArray,this.totalsRowLabel=e.totalsRowLabel,this.totalsRowFunction=e.totalsRowFunction,this.totalsRowFormula=e.totalsRowFormula,this.showFilterButton=e.showFilterButton??!0,this.meta=e.meta,this.style=e.style}isShowFilterButton(){return this.showFilterButton}};let oe=`SHEET_TABLE_PLUGIN`,O=`SHEET_TABLE`,se=`table-custom`,ce=`__UNIVER_TABLE_FILTER_EMPTY__`,le=e=>e.getMonth()<=2,ue=e=>{let t=e.getMonth();return t>2&&t<=5},de=e=>{let t=e.getMonth();return t>5&&t<=8},fe=e=>{let t=e.getMonth();return t>8&&t<=11},pe=e=>e.getMonth()===0,me=e=>e.getMonth()===1,he=e=>e.getMonth()===2,ge=e=>e.getMonth()===3,_e=e=>e.getMonth()===4,ve=e=>e.getMonth()===5,ye=e=>e.getMonth()===6,be=e=>e.getMonth()===7,xe=e=>e.getMonth()===8,Se=e=>e.getMonth()===9,Ce=e=>e.getMonth()===10,we=e=>e.getMonth()===11,Te=(e,t=/* @__PURE__ */ new Date)=>e.toDateString()===t.toDateString(),Ee=(e,t=/* @__PURE__ */ new Date)=>{let n=new Date(t);return n.setDate(n.getDate()+1),e.toDateString()===n.toDateString()},De=(e,t=/* @__PURE__ */ 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},Oe=(e,t=/* @__PURE__ */ new Date)=>{let n=k(e),r=k(t);return n.toDateString()===r.toDateString()},ke=(e,t=/* @__PURE__ */ new Date)=>{let n=k(e),r=k(t);return r.setDate(r.getDate()+7),n.toDateString()===r.toDateString()},Ae=(e,t=/* @__PURE__ */ new Date)=>{let n=k(e),r=k(t);return r.setDate(r.getDate()-7),n.toDateString()===r.toDateString()},je=(e,t=/* @__PURE__ */ new Date)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth(),Me=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t.setDate(1),t},Ne=(e,t=/* @__PURE__ */ 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);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Pe=(e,t=/* @__PURE__ */ new Date)=>{let n=Me(t),r=new Date(n);r.setMonth(r.getMonth()-1);let i=e.getTime();return i>=r.getTime()&&i<n.getTime()},A=e=>{let t=new Date(e);t.setHours(0,0,0,0),t.setDate(1);let n=t.getMonth();return t.setMonth(n-n%3),t},Fe=(e,t=/* @__PURE__ */ new Date)=>{let n=A(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=e.getTime();return i>=n.getTime()&&i<r.getTime()},Ie=(e,t=/* @__PURE__ */ new Date)=>{let n=A(t),r=new Date(n);r.setMonth(r.getMonth()+3);let i=new Date(r);i.setMonth(i.getMonth()+3);let a=e.getTime();return a>=r.getTime()&&a<i.getTime()},Le=(e,t=/* @__PURE__ */ new Date)=>{let n=A(t),r=new Date(n);r.setMonth(r.getMonth()-3);let i=e.getTime();return i>=r.getTime()&&i<n.getTime()},Re=(e,t=/* @__PURE__ */ new Date)=>e.getFullYear()===t.getFullYear(),ze=(e,t=/* @__PURE__ */ new Date)=>e.getFullYear()===t.getFullYear()+1,Be=(e,t=/* @__PURE__ */ new Date)=>e.getFullYear()===t.getFullYear()-1,Ve=(e,t=/* @__PURE__ */ new Date)=>{let n=new Date(t);n.setHours(0,0,0,0),n.setMonth(0,1);let r=e.getTime();return r>=n.getTime()&&r<t.getTime()};function He(e){switch(e.compareType){case`equal`:{let t=new Date(e.expectedValue);return e=>e.getTime()===t.getTime()}case`notEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()!==t.getTime()}case`after`:{let t=new Date(e.expectedValue);return e=>e.getTime()>t.getTime()}case`before`:{let t=new Date(e.expectedValue);return e=>e.getTime()<t.getTime()}case`afterOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()>=t.getTime()}case`beforeOrEqual`:{let t=new Date(e.expectedValue);return e=>e.getTime()<=t.getTime()}case`between`:return t=>{let[n,r]=e.expectedValue;return t.getTime()>=new Date(n).getTime()&&t.getTime()<=new Date(r).getTime()};case`notBetween`:return t=>{let[n,r]=e.expectedValue;return t.getTime()<new Date(n).getTime()||t.getTime()>new Date(r).getTime()};case`today`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Te(e,t)}case`yesterday`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>De(e,t)}case`tomorrow`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Ee(e,t)}case`thisWeek`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Oe(e,t)}case`lastWeek`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Ae(e,t)}case`nextWeek`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>ke(e,t)}case`thisMonth`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>je(e,t)}case`lastMonth`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Pe(e,t)}case`nextMonth`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Ne(e,t)}case`thisQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Fe(e,t)}case`lastQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Le(e,t)}case`nextQuarter`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Ie(e,t)}case`thisYear`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Re(e,t)}case`lastYear`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Be(e,t)}case`nextYear`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>ze(e,t)}case`yearToDate`:{let t=e.anchorTime?new Date(e.anchorTime):/* @__PURE__ */ new Date;return e=>Ve(e,t)}case`m1`:return pe;case`m2`:return me;case`m3`:return he;case`m4`:return ge;case`m5`:return _e;case`m6`:return ve;case`m7`:return ye;case`m8`:return be;case`m9`:return xe;case`m10`:return Se;case`m11`:return Ce;case`m12`:return we;case`q1`:return le;case`q2`:return ue;case`q3`:return de;case`q4`:return fe;default:throw Error(`Unsupported compare type`)}}var Ue=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)}},We=class extends Ue{constructor(){super()}shiftUp(e){if(e===0)return;let t=this.getParentIndex(e);this.heap[t]>this.heap[e]&&(this.swap(t,e),this.shiftUp(t))}shiftDown(e){let t=this.getLeftIndex(e),n=this.getRightIndex(e);this.heap[t]<this.heap[e]&&(this.swap(t,e),this.shiftDown(t)),this.heap[n]<this.heap[e]&&(this.swap(n,e),this.shiftDown(n))}insert(e){this.heap.push(e),this.shiftUp(this.heap.length-1)}pop(){this.heap[0]=this.heap.pop(),this.shiftDown(0)}};let Ge=(e,t)=>{let n=new We;for(let r of e)n.insert(r),n.size()>t&&n.pop();return n.heap},Ke=(e,t)=>e>t,qe=(e,t)=>e<t,Je=(e,t,n)=>Ge(e,t).includes(n);function Ye(e,t){switch(e.compareType){case`equal`:{let t=Number(e.expectedValue);return e=>e===t}case`notEqual`:{let t=Number(e.expectedValue);return e=>e!==t}case`greaterThan`:{let t=Number(e.expectedValue);return e=>e>t}case`greaterThanOrEqual`:{let t=Number(e.expectedValue);return e=>e>=t}case`lessThan`:{let t=Number(e.expectedValue);return e=>e<t}case`lessThanOrEqual`:{let t=Number(e.expectedValue);return e=>e<=t}case`between`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e>=i&&e<=r:e=>e>=r&&e<=i}case`notBetween`:{let[t,n]=e.expectedValue,r=Number(t),i=Number(n);return r>i?e=>e<i||e>r:e=>e<r||e>i}case`above`:{let e=t.average;return t=>Ke(t,e)}case`below`:{let e=t.average;return t=>qe(t,e)}case`topN`:{let n=t.list,r=Number(e.expectedValue);return e=>Je(n,r,e)}}}let Xe=(e,n)=>t.regexp.createFromWildcard(n).test(e),Ze=(e,n)=>!t.regexp.createFromWildcard(n).test(e),Qe=(e,n)=>t.regexp.createFromWildcard(`*${n}*`).test(e),$e=(e,n)=>!t.regexp.createFromWildcard(`*${n}*`).test(e),et=(e,n)=>t.regexp.createFromWildcard(`${n}*`).test(e),tt=(e,n)=>t.regexp.createFromWildcard(`*${n}`).test(e);function nt(e){switch(e.compareType){case`equal`:return t=>Xe(t,e.expectedValue);case`notEqual`:return t=>Ze(t,e.expectedValue);case`contains`:return t=>Qe(t,e.expectedValue);case`notContains`:return t=>$e(t,e.expectedValue);case`startsWith`:return t=>et(t,e.expectedValue);case`endsWith`:return t=>tt(t,e.expectedValue);default:return console.error(`Unknown filter operator: ${e.compareType}`),e=>!0}}let rt=/* @__PURE__ */ new Set([`above`,`below`,`topN`]);function it(e){return rt.has(e)}function at(e,t){if(it(e.filterInfo.compareType))return e=>!0;switch(e.filterInfo.conditionType){case`date`:return He(e.filterInfo);case`number`:return Ye(e.filterInfo,t);case`string`:return nt(e.filterInfo);default:return e=>!0}}function j(e,n,r,i,a=t.DateSystem.Date1900){switch(i){case`date`:{let t=ct(e,n,r);return t==null?null:lt(t,a)}case`number`:return ct(e,n,r);default:return st(e,n,r)}}let ot=e=>{var t;return((t=e.body)==null?void 0:t.dataStream.replace(/\r\n$/,``))||``};function st(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;if(s)return ot(s);if(typeof a==`string`)return o===t.CellValueType.BOOLEAN?a.toUpperCase():a;if(typeof a==`number`)return o===t.CellValueType.BOOLEAN?a?`TRUE`:`FALSE`:a;if(typeof a==`boolean`)return a?`TRUE`:`FALSE`;if(a!==void 0)return String(a)}function ct(e,n,r){let i=e.getCell(n,r);if(!i)return null;let{v:a,t:o,p:s}=i;return s?null:typeof a==`string`&&o===t.CellValueType.NUMBER?Number(e.getCellRaw(n,r).v):Number(a)}function lt(e,n=t.DateSystem.Date1900){let r=(0,t.excelSerialToDateTime)(e,n);return Number.isNaN(r.getTime())?r:new Date(r.getUTCFullYear(),r.getUTCMonth(),r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds())}function ut(e,r,i){let a=e.getCell(r,i),o=(0,n.extractFormulaError)(a,(a==null?void 0:a.isInArrayFormulaRange)===!0);if(o!==null)return{type:t.RecordValueType.Error,value:o};if(!a)return{type:t.RecordValueType.Blank};if(a.p)return{type:t.RecordValueType.String,value:_(a)};let s=a.v;if(s==null)return{type:t.RecordValueType.Blank};if(a.t===t.CellValueType.STRING||a.t===t.CellValueType.FORCE_STRING)return{type:t.RecordValueType.String,value:String(s)};if(a.t===t.CellValueType.BOOLEAN)return{type:t.RecordValueType.Boolean,value:dt(s)};if(a.t===t.CellValueType.NUMBER||typeof s==`number`){var c;let n=ft(pt(e,r,i,s,a.t===t.CellValueType.NUMBER,a.isInArrayFormulaRange===!0)),o=(c=e.getComposedCellStyleByCellData(r,i,a).n)==null?void 0:c.pattern;return o&&t.numfmt.getFormatInfo(o).isDate?{type:t.RecordValueType.Date,value:n}:{type:t.RecordValueType.Number,value:n}}if(typeof s==`boolean`)return{type:t.RecordValueType.Boolean,value:s};if(typeof s==`string`)return{type:t.RecordValueType.String,value:s};throw TypeError(`Invalid table record cell value.`)}function M(e){let n=e;if(!mt(n)||typeof n.type!=`string`)throw TypeError(`Invalid table record value.`);switch(n.type){case t.RecordValueType.Blank:if(`value`in n)throw TypeError(`Blank table record values cannot have a value.`);return`["blank"]`;case t.RecordValueType.String:case t.RecordValueType.Error:if(typeof n.value!=`string`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Boolean:if(typeof n.value!=`boolean`)throw TypeError(`Invalid table record value.`);return JSON.stringify([n.type,n.value]);case t.RecordValueType.Number:case t.RecordValueType.Date:if(typeof n.value!=`number`)throw TypeError(`Invalid table record value.`);if(!Number.isFinite(n.value))throw RangeError(`Table record numeric values must be finite.`);return JSON.stringify([n.type,n.value===0?0:n.value]);default:throw TypeError(`Unknown table record value type.`)}}function N(e){let n=e;if(!mt(n)||n.filterType!==`record`||n.mode!==t.FilterSelectionMode.Include&&n.mode!==t.FilterSelectionMode.Exclude||!Array.isArray(n.values))throw TypeError(`Invalid table record filter.`);let r=new Set(n.values.map(e=>M(e)));return n.mode===t.FilterSelectionMode.Include?e=>r.has(M(e)):e=>!r.has(M(e))}function P(e){return N(e),{filterType:`record`,mode:e.mode,values:e.values.map(e=>e.type===t.RecordValueType.Blank?{type:t.RecordValueType.Blank}:{...e})}}function dt(e){if(e===!0||e===1||typeof e==`string`&&e.toUpperCase()===`TRUE`)return!0;if(e===!1||e===0||typeof e==`string`&&e.toUpperCase()===`FALSE`)return!1;throw TypeError(`Invalid table record boolean value.`)}function ft(e){let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))throw RangeError(`Table record numeric values must be finite.`);return t}function pt(e,t,n,r,i,a){var o;return!i||a?r:((o=e.getCellRaw(t,n))==null?void 0:o.v)??r}function mt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var ht=class{constructor(){E(this,`_tableColumnFilterList`,void 0),E(this,`_tableSortInfo`,void 0),E(this,`_filterOutRows`,/* @__PURE__ */ new Set),this._tableColumnFilterList=[]}setColumnFilter(e,t){t?t.filterType===`record`?this._tableColumnFilterList[e]=P(t):this._tableColumnFilterList[e]=t:this._tableColumnFilterList[e]=void 0}setSortState(e,t){this._tableSortInfo={columnIndex:e,sortState:t}}setSortInfo(e){this._tableSortInfo=e}getColumnFilter(e){let t=this._tableColumnFilterList[e];return(t==null?void 0:t.filterType)===`record`?P(t):t}getFilterState(e){var t;let n=((t=this._tableSortInfo)==null?void 0:t.columnIndex)===e?this._tableSortInfo.sortState:`none`;return v(this._tableColumnFilterList[e],n)}getSortState(){return this._tableSortInfo??{}}getFilterStates(e){let t=[],{startColumn:n,endColumn:r}=e;for(let e=n;e<=r;e++)t.push(this.getFilterState(e-n));return t}getFilterOutRows(){return this._filterOutRows}setFilterOutRows(e){this._filterOutRows=new Set(e)}doFilter(e,n,r=t.DateSystem.Date1900){let i=/* @__PURE__ */ new Set,a=this._tableColumnFilterList;for(let t=0;t<a.length;t++)a[t]&&this.doColumnFilter(e,n,t,i,r);return this._filterOutRows=i,i}doColumnFilter(e,n,r,i,a=t.DateSystem.Date1900){let o=this._tableColumnFilterList[r];if(o&&e){let{startRow:t,endRow:s,startColumn:c}=n,l=c+r;if(o.filterType===`record`){let n=N(o);for(let r=t;r<=s;r++)n(ut(e,r,l))||i.add(r);return}let u=this.getExecuteFunc(e,n,r,o);for(let n=t;n<=s;n++){if(x(o)){let t=e.getCell(n,l);u(e.getComposedCellStyleByCellData(n,l,t))||i.add(n);continue}let t=y(o)?o.filterInfo.conditionType:`string`,r=j(e,n,l,t,a);r===null&&!u(r)?i.add(n):u(j(e,n,l,t,a))||i.add(n)}}}_getNumberCalculatedOptions(e,t,n){let{startRow:r,endRow:i,startColumn:a}=t,o=a+n,s=[],c=0,l=0;for(let t=r;t<=i;t++){let n=j(e,t,o,`number`);n!==null&&(s.push(n),c++,l+=n)}return{list:s,average:c>0?l/c:0}}getExecuteFunc(e,n,r,i){if(i.filterType===`manual`){let e=new Set(i.values.map(String));return t=>t==null?e.has(ce):e.has(String(t))}if(i.filterType===`record`)return N(i);if(i.filterType===`condition`)return at(i,it(i.filterInfo.compareType)?this._getNumberCalculatedOptions(e,n,r):void 0);if(i.filterType===`color`){let e=e=>e?new t.ColorKit(e).toRgbString():null;if(i.cellFillColors){let n=new Set(i.cellFillColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.bg)))}if(i.cellTextColors){let n=new Set(i.cellTextColors.map(e));return r=>n.has(e((0,t.getColorStyle)(r==null?void 0:r.cl)??(0,t.getColorStyle)(t.DEFAULT_STYLES.cl)))}}else return e=>!0;return()=>!0}toJSON(){return{tableColumnFilterList:this._tableColumnFilterList.some(e=>(e==null?void 0:e.filterType)===`record`)?this._tableColumnFilterList.map(e=>(e==null?void 0:e.filterType)===`record`?P(e):e):this._tableColumnFilterList,tableSortInfo:this._tableSortInfo}}fromJSON(e){let t=e.tableColumnFilterList??[];t.some(e=>(e==null?void 0:e.filterType)===`record`)?(this._tableColumnFilterList=[],t.forEach((e,t)=>this.setColumnFilter(t,e))):this._tableColumnFilterList=t,e.tableSortInfo&&(this._tableSortInfo=e.tableSortInfo)}dispose(){this._tableColumnFilterList=[],this._filterOutRows=/* @__PURE__ */ new Set}},gt=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,`_showAutoFilter`,void 0),E(this,`_range`,void 0),E(this,`_columns`,/* @__PURE__ */ 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 ht,this._init(r,i)}_init(e,n){this._tableStyleId=n==null?void 0:n.tableStyleId,this._showHeader=(n==null?void 0:n.showHeader)??!0,this._showFooter=(n==null?void 0:n.showFooter)??!1,this._showAutoFilter=(n==null?void 0:n.showAutoFilter)??!0;let r=this.getRange(),i=r.startColumn,a=r.endColumn;for(let r=i;r<=a;r++){var o;let a=r-i,s,c;(o=n.columns)!=null&&o[a]?(s=n.columns[a].id,c=n.columns[a].displayName):(s=(0,t.generateRandomId)(),c=e[r-i]);let l=new 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??re[0].name}setTableStyleId(e){this._tableStyleId=e}isShowHeader(){return this._showHeader??!0}setShowHeader(e){this._showHeader=e}isShowFooter(){return this._showFooter??!1}isShowAutoFilter(){return this._showAutoFilter??!0}setShowAutoFilter(e){this._showAutoFilter=e}getTableInfo(){return{id:this._id,subUnitId:this._subUnitId,name:this._name,range:this.getRangeInfo(),meta:this.tableMeta,showHeader:this._showHeader,showAutoFilter:this._showAutoFilter,columns:this._columnOrder.map(e=>this._columns.get(e).toJSON())}}getTableConfig(){return{name:this.getDisplayName(),range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter},tableStyleId:this._tableStyleId}}getFilterStates(e){return this._tableFilters.getFilterStates(e)}toJSON(){let e=this._columnOrder.map(e=>this._columns.get(e).toJSON());return{id:this._id,name:this._name,range:this.getRangeInfo(),options:{showHeader:this._showHeader,showFooter:this._showFooter,showAutoFilter:this._showAutoFilter,tableStyleId:this._tableStyleId},filters:this._tableFilters.toJSON(),columns:e,meta:this.tableMeta}}fromJSON(e){this._id=e.id,this._name=e.name,this._range=e.range,this.tableMeta=e.meta,this._tableStyleId=e.options.tableStyleId||``,this._showHeader=e.options.showHeader??!0,this._showFooter=e.options.showFooter??!0,this._showAutoFilter=e.options.showAutoFilter??!0,this._columns.clear(),this._columnOrder=[],e.columns.forEach(e=>{let t=new D(e.id,e.displayName);t.fromJSON(e),this._columns.set(e.id,t),this._columnOrder.push(e.id)}),this._tableFilters=new ht,this._tableFilters.fromJSON(e.filters)}dispose(){this._id=``,this._name=``,this._tableStyleId=``,this._showHeader=!0,this._showFooter=!0,this._showAutoFilter=!0,delete this._range,this._columns.clear(),this._columnOrder=[]}};function F(e,t){return function(n,r){t(n,r,e)}}function I(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 L=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=/* @__PURE__ */ new Map}_ensureUnit(e){return this._tableMap.has(e)||this._tableMap.set(e,/* @__PURE__ */ new Map),this._tableMap.get(e)}getColumnHeader(e,t,n,r){var i;let a=(i=this._univerInstanceService.getUnit(e))==null?void 0:i.getSheetBySheetId(t),{startRow:o,startColumn:s,endColumn:c}=n,l=[],u=r??`Column`;for(let e=s;e<=c;e++)l.push(_(a==null?void 0:a.getCell(o,e))||p(e-s+1,u));return l}addTable(e,n,r,i,a,o,s){let c=o??(0,t.generateRandomId)(),l=new gt(c,r,i,a||this.getColumnHeader(e,n,i),s);if(l.setSubunitId(n),this._ensureUnit(e).set(c,l),this._tableAdd$.next({unitId:e,subUnitId:n,range:i,tableName:r,tableId:c,tableStyleId:s==null?void 0:s.tableStyleId}),s!=null&&s.filters){let t=this._univerInstanceService.getUnit(e),r=t==null?void 0:t.getSheetBySheetId(n);l.getTableFilters().doFilter(r,i,t==null?void 0:t.getDateSystem()),this._tableFilterChanged$.next({unitId:e,subUnitId:n,tableId:c})}return c}addFilter(e,t,n,r){let i=this.getTable(e,t);if(i){i.getTableFilters().setColumnFilter(n,r);let a=i.getSubunitId();this._tableFilterChanged$.next({unitId:e,subUnitId:a,tableId:t})}}getFilterRanges(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&r.push(e.getRange())}),r}getSheetFilterRangeWithState(e,t){let n=this._tableMap.get(e);if(!n)return[];let r=[];return n.forEach(e=>{e.getSubunitId()===t&&e.isShowHeader()&&e.isShowAutoFilter()&&r.push({tableId:e.getId(),range:e.getRange(),states:e.getFilterStates(e.getRange())})}),r}getTable(e,t){let n=this._tableMap.get(e);if(n)return n.get(t)}getUniqueTableName(e,t){let n=this._tableMap.get(e);if(!n)return t;let r=new Set(Array.from(n.values()).map(e=>e.getDisplayName())),i=t,a=1;for(;r.has(i);)i=`${t}-${a}`,a++;return i}getTableById(e,t){return this.getTable(e,t)}getTableList(e){let t=this._tableMap.get(e);return t?Array.from(t.values()).map(t=>({...t.getTableInfo(),unitId:e})):[]}getTablesBySubunitId(e,t){let n=this._tableMap.get(e);return n?Array.from(n.values()).filter(e=>e.getSubunitId()===t):[]}getTablesInfoBySubunitId(e,t){return this.getTablesBySubunitId(e,t).map(e=>({id:e.getId(),name:e.getDisplayName(),range:e.getRange()}))}deleteTable(e,t){let n=this._tableMap.get(e),r=n==null?void 0:n.get(t);if(r){let i=r.getTableInfo(),a=r.getTableStyleId();n==null||n.delete(t);let{subUnitId:o,range:s,name:c}=i;this._tableDelete$.next({unitId:e,subUnitId:o,tableId:t,range:s,tableName:c,tableStyleId:a})}}operationTableRowCol(e,n,r){let i=this.getTableById(e,n);if(!i)return;let{operationType:a,rowColType:o,index:s,count:c,columnsJson:l}=r,u=i.getRange(),d={...u};if(a===`insert`){if(o===`row`)d.endRow+=c;else if(o===`column`){d.endColumn+=c;for(let e=0;e<c;e++){let n=this._localeService.t(`sheets-table.columnPrefix`),r=new 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})}moveTable(e,t,n,r){let i=this.getTableById(e,t);if(!i)return;let a=i.getRange(),o=i.getSubunitId();i.setSubunitId(n),i.setRange({...r}),this._tableRangeChanged$.next({unitId:e,subUnitId:n,oldSubUnitId:o,tableId:t,range:{...r},oldRange:a}),this._tableFilterChanged$.next({unitId:e,subUnitId:n,oldSubUnitId:o,tableId:t})}setTableByConfig(e,t,n){let r=this._tableMap.get(e),i=r==null?void 0:r.get(t);if(!i)return;let a=i.getSubunitId(),{name:o,updateRange:s,rowColOperation:c,theme:l,sortInfo:u,options:d,filterButtons:f}=n;if(n.calculatedColumn){let e=i.getColumn(n.calculatedColumn.columnId);e&&(e.formula=n.calculatedColumn.formula,e.formulaIsArray=n.calculatedColumn.formulaIsArray)}if(f){f.showAutoFilter!==void 0&&i.setShowAutoFilter(f.showAutoFilter);for(let[e,t]of Object.entries(f.columns??{})){let n=i.getColumn(e);n&&(n.showFilterButton=t)}}if(o){let n=i.getDisplayName();i.setDisplayName(o),this._tableNameChanged$.next({unitId:e,subUnitId:a,tableId:t,tableName:o,oldTableName:n})}if(c&&this.operationTableRowCol(e,t,c),s&&this.updateTableRange(e,t,s),l){let n=i.getTableStyleId()??`default`;i.setTableStyleId(l),this._tableThemeChanged$.next({unitId:e,subUnitId:a,tableId:t,theme:l,oldTheme:n})}`sortInfo`in n&&i.getTableFilters().setSortInfo(u),d&&d.showHeader!==void 0&&i.setShowHeader(d.showHeader)}toJSON(e){let t={},n=this._tableMap.get(e);return n&&n.forEach(n=>{let r=n.getSubunitId();if(!t[r]){let n=/* @__PURE__ */ new Set;this.getTablesBySubunitId(e,r).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),t[r]={tables:[],tableFilteredOutRows:Array.from(n)}}t[r].tables.push(n.toJSON())}),t}fromJSON(e,t){let n=this._ensureUnit(e);Object.keys(t).forEach(i=>{let a=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e,subUnitId:i});if(!a)return;let o=a.worksheet,s;if(t[i].tables?s=t[i].tables:Array.isArray(t[i])&&(s=t[i]),!s)return;let c=t[i].tableFilteredOutRows;s.forEach(t=>{var r;let s=this.getColumnHeader(e,i,t.range),l=new gt(t.id,t.name,t.range,s,t.options);if(l.setTableMeta(t.meta),t.columns.length&&l.setColumns(t.columns),t.filters){let e=l.getTableFilters();if(e.fromJSON(t.filters),Array.isArray(c)){let{startRow:t,endRow:n}=l.getTableFilterRange();e.setFilterOutRows(c.filter(e=>e>=t&&e<=n))}else e.doFilter(o,l.getTableFilterRange(),a.workbook.getDateSystem())}l.setSubunitId(i),n.set(t.id,l),this._tableAdd$.next({unitId:e,subUnitId:i,range:t.range,tableName:t.name,tableId:t.id,tableStyleId:(r=t.options)==null?void 0:r.tableStyleId})})}),this._tableInitStatus.next(!0)}deleteUnitId(e){let t=this._tableMap.get(e);t&&t.forEach(e=>e.dispose()),this._tableMap.delete(e)}dispose(){super.dispose(),this._tableAdd$.complete(),this._tableDelete$.complete(),this._tableNameChanged$.complete(),this._tableRangeChanged$.complete(),this._tableThemeChanged$.complete(),this._tableFilterChanged$.complete(),this._tableInitStatus.complete(),this._tableMap.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._tableMap.clear()}};L=I([F(0,t.IUniverInstanceService),F(1,(0,t.Inject)(t.LocaleService))],L);let R=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 j(e,t,n,r)}};R=I([F(0,(0,t.Inject)(L))],R);let z={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(R).addTable(r,i,a,o,s,n,c),!0}},B={id:`sheet.mutation.delete-table`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r,tableId:i}=t;return e.get(R).deleteTable(n,r,i),!0}},_t={id:`sheet.command.add-table`,type:t.CommandType.COMMAND,handler:(e,r)=>{if(!r)return!1;let i=e.get(t.IUndoRedoService),a=e.get(t.ICommandService),o=e.get(t.LocaleService),s=e.get(L),c=r.id??(0,t.generateRandomId)(),l=S(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:z.id,params:{...r,tableId:c,name:u,header:g}}),f.push({id:B.id,params:{tableId:c,unitId:r.unitId}}),(0,t.sequenceExecute)(d,a).result?(i.pushUndoRedo({unitID:r.unitId,undoMutations:f,redoMutations:d}),!0):!1}},V={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(L).setTableByConfig(n,r,i),!0}},vt={id:`sheet.command.add-table-theme`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(L),{unitId:a,tableId:o,themeStyle:s}=n,c=[],l=[],u=i.getTableById(a,o);if(!u)return!1;let d=u.getSubunitId();c.push({id:r.AddRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleJSON:s.toJson()}}),c.push({id:V.id,params:{unitId:a,subUnitId:d,tableId:o,config:{theme:s.getName()}}}),l.push({id:V.id,params:{unitId:a,subUnitId:d,tableId:o,config:{themeStyle:u.getTableStyleId()}}}),l.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:a,subUnitId:d,styleName:s.getName()}});let f=e.get(t.ICommandService);return(0,t.sequenceExecute)(c,f).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:l,redoMutations:c}),!0):!1}},H={id:`sheet.mutation.set-table-filter`,type:t.CommandType.MUTATION,handler:(e,t)=>{let{tableId:n,unitId:r,column:i,tableFilter:a}=t,o=e.get(L),s=o.getTable(r,n);if(o.addFilter(r,n,i,a),s){var c;let e=s.getTableFilters();t.filterOutRows?e.setFilterOutRows(t.filterOutRows):t.filterOutRows=[...e.getFilterOutRows()],t.subUnitId=s.getSubunitId(),t.tableFilteredOutRows=((c=o.toJSON(r)[t.subUnitId])==null?void 0:c.tableFilteredOutRows)??[]}return!0}},yt={id:`sheet.command.delete-table`,type:t.CommandType.COMMAND,handler:(e,n)=>{var i;if(!n)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(L),c=e.get(t.ILogService),l=[],u=[],d=s.getTable(n.unitId,n.tableId),f=d==null?void 0:d.toJSON();if(!f)return c.error(`[TableManager]: Table not found`),!1;let p=e.get(r.SheetInterceptorService).onCommandExecute({id:yt.id,params:{...n,tableName:f.name}});return l.push(...p.preRedos??[]),l.push({id:B.id,params:{...n}}),l.push(...p.redos),u.push(...p.preUndos??[]),u.push({id:z.id,params:{unitId:n.unitId,subUnitId:n.subUnitId,tableId:n.tableId,name:f.name,range:f.range,options:f.options}}),(i=f.filters.tableColumnFilterList)==null||i.forEach((e,t)=>{e&&u.push({id:H.id,params:{unitId:n.unitId,tableId:n.tableId,column:t,tableFilter:e}})}),u.push(...p.undos),(0,t.sequenceExecute)(l,o).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:u,redoMutations:l}),!0):!1}},bt={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(L),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(se)).find(e=>e!==o);m||=p[0],d.push({id:V.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:m}}}),d.push({id:r.RemoveRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleName:o}});let h=c.getDefaultRangeThemeStyle(o);h&&(f.push({id:r.AddRangeThemeMutation.id,params:{unitId:i,subUnitId:u,styleJSON:h.toJson()}}),f.push({id:V.id,params:{unitId:i,subUnitId:u,tableId:a,config:{theme:o}}}));let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(d,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:i,redoMutations:d,undoMutations:f}),!0):!1}};function xt(e,n){let r=e.trim();if(!r)return{valid:!1,reason:`empty`};let i=new Set(Array.from(n,e=>e.toLowerCase()));return(0,t.customNameCharacterCheck)(r.toLowerCase(),i)?{valid:!0}:{valid:!1,reason:`invalid`}}function U(e,i,a,o,s,c,l){var u;let d=(u=e.getTableInfo)==null?void 0:u.call(e);if(!d)return;let f=d.range.startRow+ +!!d.showHeader,p={},m;if(d.columns.forEach((e,r)=>{var i;if(l&&e.id!==l.columnId)return;let a=(i=(l==null?void 0:l.formula)??e.formula)==null?void 0:i.trim(),u=(l==null?void 0:l.formulaIsArray)??e.formulaIsArray;if(!a)return;let h=St(a.startsWith(`=`)?a:`=${a}`,d.name),g=d.range.startColumn+r;m??=c();for(let e=o;e<=s;e++){p[e]??={};let r={f:m.moveFormulaRefOffset(h,0,e-f),si:null,ref:null,ft:u?t.FormulaType.ARRAY:null,fd:u?t.BooleanNumber.FALSE:null,v:null,p:null,t:null};u&&(r.ref=(0,n.serializeRange)({startRow:e,endRow:e,startColumn:g,endColumn:g})),p[e][g]=r}}),Object.keys(p).length)return{id:r.SetRangeValuesMutation.id,params:{unitId:i,subUnitId:a,cellValue:p}}}function St(e,t){let n=``;for(let r=0;r<e.length;r++){let i=r,a=e[r];if(a===`"`||a===`'`){for(;++r<e.length;)if(e[r]===a){if(e[r+1]!==a)break;r++}}else if(a===`[`){let a=1;for(;++r<e.length&&a>0&&(e[r]===`'`?r++:e[r]===`[`?a++:e[r]===`]`&&a--,a!==0););if(a===0){let a=e.slice(i+1,r),o=e.slice(0,i).trimEnd().slice(-1),s=!o||/[=+\-*/^&(<>,;:{]/.test(o),c=e.slice(r+1).trimStart();if(!/^[^+\-*/^&=<>%),;}:\s]/.test(c)){let e=s?t:``,r=a.slice(1);n+=a.startsWith(`@`)?`${e}[[#This Row],${r.startsWith(`[`)?r:`[${r}]`}]`:`${e}[${a}]`;continue}}}n+=e.slice(i,r+1)}return n}let Ct={id:`sheet.command.set-table-config`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,tableId:o,name:s,updateRange:c,rowColOperation:l,theme:u,filterButtons:d}=i,f=e.get(L),p=f.getTableById(a,o);if(!p)return!1;let m=[],h=[],g={},_={};if(i.calculatedColumn){let{columnId:t,formula:o,formulaIsArray:s}=i.calculatedColumn,u=p.getColumn(t);if(!u||typeof o!=`string`||s!==void 0&&typeof s!=`boolean`||c||l)return!1;let d=p.getTableFilterRange(),f=p.getTableInfo().columns.findIndex(e=>e.id===t),v=d.startColumn+f,y={...d,startColumn:v,endColumn:v};if(!(0,r.checkRangesEditablePermission)(e,a,p.getSubunitId(),[y]))return!1;let b=o.trim();if(b===`=`)return!1;g.calculatedColumn={columnId:t,formula:u.formula,formulaIsArray:u.formulaIsArray},_.calculatedColumn={columnId:t,formula:b&&!b.startsWith(`=`)?`=${b}`:b,formulaIsArray:b?s??u.formulaIsArray:void 0};let x=U(p,a,p.getSubunitId(),d.startRow,d.endRow,()=>e.get(n.LexerTreeBuilder),_.calculatedColumn);x&&(m.push(x),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,x.params)}))}if(d){var v;if(((v=e.get(t.IPermissionService).getPermissionPoint(new r.WorkbookEditablePermission(a).id))==null?void 0:v.value)===!1)return!1;let{showAutoFilter:n,columns:i}=d;if(n!==void 0&&typeof n!=`boolean`)return!1;let o=Object.entries(i??{});if(o.some(([e,t])=>!p.getColumn(e)||typeof t!=`boolean`))return!1;g.filterButtons={...n===void 0?{}:{showAutoFilter:p.isShowAutoFilter()},columns:Object.fromEntries(o.map(([e])=>[e,p.getColumn(e).isShowFilterButton()]))},_.filterButtons={...n===void 0?{}:{showAutoFilter:n},columns:Object.fromEntries(o)}}let y=e.get(t.LocaleService),b=S(a,{univerInstanceService:e.get(t.IUniverInstanceService),tableManager:f,definedNamesService:e.get(n.IDefinedNamesService)});if(s){if(!xt(s,b).valid)return e.get(t.ILogService).warn(y.t(`sheets-table.tableNameError`)),!1;g.name=p.getDisplayName(),_.name=s}l&&(g.rowColOperation={operationType:l.operationType===`insert`?`delete`:`insert`,rowColType:l.rowColType,index:l.index,count:l.count},_.rowColOperation=l),c&&(g.updateRange={newRange:p.getRange()},_.updateRange=c),u&&(g.theme=p.getTableStyleId(),_.theme=u);let x={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:_},ee={unitId:a,subUnitId:p.getSubunitId(),tableId:o,config:g},C=e.get(r.SheetInterceptorService).onCommandExecute({id:Ct.id,params:{...i,oldTableName:g.name}}),w=[...C.preRedos??[],{id:V.id,params:x},...m,...C.redos],te=[...C.preUndos??[],{id:V.id,params:ee},...h,...C.undos],ne=e.get(t.ICommandService);return(0,t.sequenceExecute)(w,ne).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:a,undoMutations:te,redoMutations:w}),!0):!1}},wt={id:`sheet.command.set-table-filter`,type:t.CommandType.COMMAND,handler:(e,n)=>{var r,i;if(!n)return!1;let a=e.get(t.IUndoRedoService),o=e.get(t.ICommandService),s=e.get(L),c=n.tableId||(0,t.generateRandomId)(),l=(r=s.getTable(n.unitId,c))==null?void 0:r.getTableFilters(),u=l==null?void 0:l.getColumnFilter(n.column),d=[...(l==null?void 0:l.getFilterOutRows())??[]],f=((i=n.tableFilter)==null?void 0:i.filterType)===`record`?P(n.tableFilter):n.tableFilter,p=[],m=[];return p.push({id:H.id,params:{...n,tableId:c,tableFilter:f}}),m.push({id:H.id,params:{...n,tableId:c,tableFilter:u,filterOutRows:d}}),(0,t.sequenceExecute)(p,o).result?(a.pushUndoRedo({unitID:n.unitId,undoMutations:m,redoMutations:p}),!0):!1}},Tt={id:`sheet.command.set-table-sort-state`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let r=e.get(L).getTable(n.unitId,n.tableId);if(!r)return!1;let i=r.getTableFilters().toJSON().tableSortInfo,a=e.get(t.ICommandService),o={unitId:n.unitId,subUnitId:r.getSubunitId(),tableId:n.tableId,config:{sortInfo:n.sortInfo}};return a.syncExecuteCommand(V.id,o)?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n.unitId,undoMutations:[{id:V.id,params:{...o,config:{sortInfo:i}}}],redoMutations:[{id:V.id,params: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`,/* @__PURE__ */ new Map),this.registerTableChangeEvent(),this._initSnapshot(),this._initSheetChange(),this.registerTableHeaderInterceptor()}getContainerTableWithRange(e,n,r){let i=this._ensureTableRangeRTree(e),a=Array.from(i.bulkSearch([{unitId:e,sheetId:n,range:r}])).find(n=>{let i=this._tableManager.getTable(e,String(n));return i?t.Rectangle.contains(i.getRange(),r):!1});if(a)return this._tableManager.getTable(e,String(a))}_ensureTableRangeRTree(e){return this._tableRangeRTree.has(e)||this._tableRangeRTree.set(e,new t.RTree),this._tableRangeRTree.get(e)}registerTableChangeEvent(){this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i}=e;this._ensureTableRangeRTree(r).insert({unitId:r,sheetId:i,id:n,range:{...t}})})),this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{range:t,tableId:n,unitId:r,subUnitId:i,oldRange:a,oldSubUnitId:o=i}=e,s=this._ensureTableRangeRTree(r);s.remove({unitId:r,sheetId:o,id:n,range:{...a}}),s.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:oe,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:B.id,params:{unitId:i,subUnitId:a,tableId:t.id}}),c.push({id:z.id,params:{unitId:i,subUnitId:a,name:t.name,range:t.range,tableId:t.id,options:{...t.options,columns:t.columns,filters:t.filters.tableColumnFilterList}}})}),{redos:s,undos:c}}if(e.id===r.CopySheetCommand.id){let{unitId:n,subUnitId:r,targetSubUnitId:i}=e.params;if(!n||!r||!i)return{redos:[],undos:[]};let a=this._tableManager.getTablesBySubunitId(n,r);if(a.length===0)return{redos:[],undos:[]};let o=[],s=[];return a.forEach(e=>{let r=e.toJSON(),a=(0,t.generateRandomId)();o.push({id:z.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:B.id,params:{unitId:n,subUnitId:i,tableId:a}})}),{redos:o,undos:s}}return{redos:[],undos:[]}}}))}dispose(){super.dispose(),this._tableRangeRTree.clear()}};W=I([F(0,(0,t.Inject)(t.IUniverInstanceService)),F(1,(0,t.Inject)(r.SheetInterceptorService)),F(2,(0,t.Inject)(L)),F(3,(0,t.Inject)(t.IResourceManagerService))],W);function Et(e,n,r,i){let a=e.get(t.ICommandService);return(0,t.sequenceExecute)(r,a).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:n,undoMutations:i,redoMutations:r}),!0):!1}let Dt={id:`sheet.command.table-insert-row`,type:t.CommandType.COMMAND,handler:e=>{let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i);if(!a)return!1;let{worksheet:o,unitId:s,subUnitId:c}=a,l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(W).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endRow-u.startRow+1,p=o.getRowCount()-1,m=o.getCellMatrix().getDataRange().endRow,h=[],g=[];if(p-m<f)h.push({id:r.InsertRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}}),h.push({id:V.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...d.getRange(),endRow:d.getRange().endRow+f}}}}}),g.push({id:V.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:d.getRange()}}}}),g.push({id:r.RemoveRowMutation.id,params:{unitId:s,subUnitId:c,range:{...u}}});else{let t={...d.getRange()};h.push({id:V.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t,endRow:t.endRow+f}}}}}),g.push({id:V.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{updateRange:{newRange:{...t}}}}});let n=(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:s,fromSubUnitId:c,toSubUnitId:c,fromRange:{startRow:u.startRow,endRow:m,startColumn:t.startColumn,endColumn:t.endColumn},toRange:{startRow:u.startRow+f,endRow:m+f,startColumn:t.startColumn,endColumn:t.endColumn}},{includeSelection:!1,includeAutoHeight:!1});n&&(h.push(...n.redos),g.push(...n.undos))}let _=U(d,s,c,u.startRow,u.endRow,()=>e.get(n.LexerTreeBuilder));_&&(h.push(_),g.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,_.params)}));let v=e.get(t.ICommandService);return(0,t.sequenceExecute)(h,v).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:g,redoMutations:h}),!0):!1}},Ot={id:`sheet.command.table-insert-row-at`,type:t.CommandType.COMMAND,handler:(e,i)=>{if(!i)return!1;let{unitId:a,subUnitId:o,tableId:s,index:c,count:l=1}=i;if(l<=0)return!1;let u=e.get(t.IUniverInstanceService),d=(0,r.getSheetCommandTarget)(u,{unitId:a,subUnitId:o});if(!d)return!1;let f=e.get(L).getTableById(a,s);if(!f||f.getSubunitId()!==o)return!1;let p=f.getRange();if(c<=p.startRow||c>p.endRow+1)return!1;let m=[{id:V.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p,endRow:p.endRow+l}}}}}],h=[{id:V.id,params:{unitId:a,subUnitId:o,tableId:s,config:{updateRange:{newRange:{...p}}}}}],g=d.worksheet.getCellMatrix().getDataRange().endRow,_=c<=g?(0,r.getMoveRangeCommandMutations)(e,{fromUnitId:a,fromSubUnitId:o,toSubUnitId:o,fromRange:{startRow:c,endRow:g,startColumn:p.startColumn,endColumn:p.endColumn},toRange:{startRow:c+l,endRow:g+l,startColumn:p.startColumn,endColumn:p.endColumn}},{includeSelection:!1,includeAutoHeight:!1}):null;_&&(m.push(..._.redos),h.push(..._.undos));let v=U(f,a,o,c,c+l-1,()=>e.get(n.LexerTreeBuilder));return v&&(m.push(v),h.push({id:r.SetRangeValuesMutation.id,params:(0,r.SetRangeValuesUndoMutationFactory)(e,v.params)})),Et(e,a,m,h)}},kt={id:`sheet.command.table-insert-col`,type:t.CommandType.COMMAND,handler:e=>{let n=e.get(t.IUniverInstanceService),i=(0,r.getSheetCommandTarget)(n);if(!i)return!1;let{worksheet:a,unitId:o,subUnitId:s}=i,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(W).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endColumn-l.startColumn+1,f=a.getColumnCount()-1,p=a.getCellMatrix().getDataRange().endColumn,m=[],h=[];if(f-p<d)m.push({id:r.InsertColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}}),m.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:r.RemoveColMutation.id,params:{unitId:o,subUnitId:s,range:{...l}}});else{let t=u.getRange();m.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:l.startColumn,count:d}}}}),h.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:l.startColumn,count:d}}}});let n=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn,endColumn:p}},{unitId:o,subUnitId:s,range:{startRow:t.startRow,endRow:t.endRow,startColumn:l.startColumn+d,endColumn:p+d}});n&&(m.push(...n.redos),h.push(...n.undos))}let g=e.get(t.ICommandService);return(0,t.sequenceExecute)(m,g).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:h,redoMutations:m}),!0):!1}},At={id:`sheet.command.table-insert-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(L).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s>f.endColumn+1)return!1;let p=[{id:V.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c}}}}],m=[{id:V.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}}],h=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s<=h){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:h}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:h+c}});t&&(p.push(...t.redos),m.push(...t.undos))}return Et(e,i,p,m)}},G={id:`sheet.command.table-remove-column-at`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let{unitId:i,subUnitId:a,tableId:o,index:s,count:c=1}=n;if(c<=0)return!1;let l=e.get(t.IUniverInstanceService),u=(0,r.getSheetCommandTarget)(l,{unitId:i,subUnitId:a});if(!u)return!1;let d=e.get(L).getTableById(i,o);if(!d||d.getSubunitId()!==a)return!1;let f=d.getRange();if(s<f.startColumn||s+c-1>f.endColumn||c>=f.endColumn-f.startColumn+1)return!1;let p=d.getTableInfo(),m=[],h=s-f.startColumn;for(let e=0;e<c;e++){let t=p.columns[h+e];t&&m.push(t)}let g=e.get(r.SheetInterceptorService).onCommandExecute({id:G.id,params:{...n,tableName:p.name,removedColumnNames:m.map(e=>e.displayName)}}),_=[...g.preRedos??[],{id:V.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:s,count:c}}}},...g.redos],v=[...g.preUndos??[],{id:V.id,params:{unitId:i,subUnitId:a,tableId:o,config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:s,count:c,columnsJson:m}}}},...g.undos],y=u.worksheet.getCellMatrix().getDataRange().endColumn;if(s+c<=y){let t=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s+c,endColumn:y}},{unitId:i,subUnitId:a,range:{startRow:f.startRow,endRow:f.endRow,startColumn:s,endColumn:y-c}});t&&(_.push(...t.redos),v.push(...t.undos))}return Et(e,i,_,v)}},jt={id:`sheet.command.table-remove-row`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{unitId:o,subUnitId:s}=a,c=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!c.length||c.length>1)return!1;let l=c[0].range,u=e.get(W).getContainerTableWithRange(o,s,l);if(!u)return!1;let d=l.endRow-l.startRow+1,f=[],p=[],m=u.getRange();f.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m,endRow:m.endRow-d}}}}}),p.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:u.getId(),config:{updateRange:{newRange:{...m}}}}});let h=a.worksheet.getCellMatrix().getDataRange().endRow,g=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:o,subUnitId:s,range:{startRow:l.endRow+1,endRow:h,startColumn:m.startColumn,endColumn:m.endColumn}},{unitId:o,subUnitId:s,range:{startRow:l.startRow,endRow:h-d,startColumn:m.startColumn,endColumn:m.endColumn}});g&&(f.push(...g.redos),p.push(...g.undos));let _=e.get(t.ICommandService);return(0,t.sequenceExecute)(f,_).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:o,undoMutations:p,redoMutations:f}),!0):!1}},Mt={id:`sheet.command.table-remove-col`,type:t.CommandType.COMMAND,handler:(e,n)=>{if(!n)return!1;let i=e.get(t.IUniverInstanceService),a=(0,r.getSheetCommandTarget)(i,n);if(!a)return!1;let{workbook:o,unitId:s,subUnitId:c}=a;e.get(L);let l=e.get(r.SheetsSelectionsService).getCurrentSelections();if(!l.length||l.length>1)return!1;let u=l[0].range,d=e.get(W).getContainerTableWithRange(s,c,u);if(!d)return!1;let f=u.endColumn-u.startColumn+1,p=[],m=[],h=d.getRange();p.push({id:V.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`delete`,rowColType:`column`,index:u.startColumn,count:f}}}});let g=d.getTableInfo(),_=[],v=u.startColumn-h.startColumn;for(let e=0;e<f;e++){let t=g.columns[v+e];t&&_.push(t)}let y=e.get(r.SheetInterceptorService).onCommandExecute({id:Mt.id,params:{...n,tableName:g.name,removedColumnNames:_.map(e=>e.displayName)}});p.unshift(...y.preRedos??[]),p.push(...y.redos),m.unshift(...y.preUndos??[]),m.push({id:V.id,params:{unitId:s,subUnitId:c,tableId:d.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:u.startColumn,count:f,columnsJson:_}}}}),m.push(...y.undos);let b=a.worksheet.getCellMatrix().getDataRange().endColumn,x=(0,r.getMoveRangeUndoRedoMutations)(e,{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.endColumn+1,endColumn:b}},{unitId:s,subUnitId:c,range:{startRow:h.startRow,endRow:h.endRow,startColumn:u.startColumn,endColumn:b-f}});x&&(p.push(...x.redos),m.push(...x.undos));let ee=e.get(t.ICommandService);return(0,t.sequenceExecute)(p,ee).result?(e.get(t.IUndoRedoService).pushUndoRedo({unitID:s,undoMutations:m,redoMutations:p}),!0):!1}},K=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,oldSubUnitId:o=a}=e,s=this._tableManager.getTable(i,r),c=s.getTableStyleId();c||(c=this._allThemes[this._defaultThemeIndex].name,s.setTableStyleId(c)),this._sheetRangeThemeService.removeRangeThemeRule(c,{unitId:i,subUnitId:o,range:{...n}}),this._sheetRangeThemeService.registerRangeThemeStyle(c,{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(re)}_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}};K=I([F(0,(0,t.Inject)(L)),F(1,(0,t.Inject)(r.SheetRangeThemeService)),F(2,(0,t.Inject)(r.SheetRangeThemeModel)),F(3,t.IConfigService)],K);var Nt=`@univerjs/sheets-table`,Pt=`1.1.0`;let q={id:`sheet.mutation.move-table`,type:t.CommandType.MUTATION,handler:(e,n)=>{if(!n)return!1;let{unitId:r,tableId:i,subUnitId:a,range:o,calculatedColumns:s}=n,c=e.get(L),l=c.getTableById(r,i),u=e.get(t.IUniverInstanceService).getUnit(r),d=u==null?void 0:u.getSheetBySheetId(a);if(!l||!d)return!1;let f=s??l.getTableInfo().columns.map((e,t)=>{var n;let r=o.startRow+ +!!l.isShowHeader(),i=o.endRow-+!!l.isShowFooter(),a=e.formula&&r<=i?(n=d.getCellRaw(r,o.startColumn+t))==null?void 0:n.f:void 0;return{columnId:e.id,formula:a||e.formula,formulaIsArray:e.formulaIsArray}}).filter(e=>e.formula);for(let e of f){let t=l.getColumn(e.columnId);t&&(t.formula=e.formula,t.formulaIsArray=e.formulaIsArray)}return c.moveTable(r,i,a,o),!0}},J=class extends t.Disposable{constructor(e,t,n){super(),this._tableManager=e,this._commandService=t,this._activeDirtyManagerService=n,this._initRangeListener(),this._initFilterDirtyRange()}_initFilterDirtyRange(){this._activeDirtyManagerService.register(H.id,{commandId:H.id,getDirtyData:e=>{let t=e.params,n=this._tableManager.getTableById(t.unitId,t.tableId);if(!n)return{};let{subUnitId:r,range:i}=n.getTableInfo();return{dirtyRanges:[{unitId:t.unitId,sheetId:r,range:i}],clearDependencyTreeCache:{[t.unitId]:{[r]:`1`}}}}}),this.disposeWithMe((0,t.toDisposable)(()=>{this._activeDirtyManagerService.remove(H.id)}))}_initRangeListener(){this.disposeWithMe(this._tableManager.tableRangeChanged$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableAdd$.subscribe(e=>{let{tableId:t,unitId:n}=e,r=this._tableManager.getTableById(n,t);r&&this._updateSuperTable(n,r)})),this.disposeWithMe(this._tableManager.tableDelete$.subscribe(e=>{let{unitId:t,subUnitId:r,tableName:i,range:a}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:t,tableName:i,reference:{sheetId:r,range:a}},{onlyLocal:!0})})),this.disposeWithMe(this._tableManager.tableNameChanged$.subscribe(e=>{let{tableId:t,unitId:r,oldTableName:i}=e;this._commandService.executeCommand(n.RemoveSuperTableMutation.id,{unitId:r,tableName:i},{onlyLocal:!0});let a=this._tableManager.getTableById(r,t);a&&this._updateSuperTable(r,a,i)}))}_updateSuperTable(e,t,r){let i=t.getTableInfo(),a=i.name,o=i.columns,s=/* @__PURE__ */ 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})}};J=I([F(0,(0,t.Inject)(L)),F(1,t.ICommandService),F(2,n.IActiveDirtyManagerService)],J);let Y=class extends t.Disposable{constructor(e,t,n,i,a,o){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._injector=i,this._localeService=a,this._errorService=o,this.disposeWithMe(this._sheetInterceptorService.interceptBeforeCommand({performCheck:async e=>e.id!==r.MoveRangeCommand.id||this._checkMove(e.params)})),this.disposeWithMe(this._sheetInterceptorService.interceptAfterCommand({getMutations:e=>e.id===r.MoveRangeCommand.id?this._getMoveMutations(e.params):{redos:[],undos:[]}}))}_getTargets(e){let t=(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.fromUnitId??e.toUnitId,subUnitId:e.fromSubUnitId});return{source:t,target:(0,r.getSheetCommandTarget)(this._univerInstanceService,{unitId:e.toUnitId??(t==null?void 0:t.unitId),subUnitId:e.toSubUnitId??(t==null?void 0:t.subUnitId)})}}_checkMove(e){let{source:n,target:i}=this._getTargets(e);if(!n||!i||n.unitId!==i.unitId)return!1;let a=this._tableManager.getTablesBySubunitId(n.unitId,n.subUnitId).filter(n=>t.Rectangle.contains(e.fromRange,n.getRange()));if(!a.length)return!0;let o=this._tableManager.getTablesBySubunitId(i.unitId,i.subUnitId);for(let n of o)if(!a.includes(n)&&t.Rectangle.intersects(e.toRange,n.getRange()))return this._errorService.emit(this._localeService.t(`sheets-table.moveTableOverlapError`)),!1;let{fromRange:s,toRange:c}=e;return this._isValidMoveRange(e,i.worksheet)?(0,r.checkRangesEditablePermission)(this._injector,n.unitId,n.subUnitId,[s])&&(0,r.checkRangesEditablePermission)(this._injector,i.unitId,i.subUnitId,[c]):!1}_isValidMoveRange(e,t){let{fromRange:n,toRange:r}=e;return!(n.endRow-n.startRow!==r.endRow-r.startRow||n.endColumn-n.startColumn!==r.endColumn-r.startColumn||r.startRow<0||r.startColumn<0||r.endRow>=t.getRowCount()||r.endColumn>=t.getColumnCount())}_getMoveMutations(e){let n=[],r=[],{source:i,target:a}=this._getTargets(e);if(!i||!a||i.unitId!==a.unitId)return{redos:n,undos:r};let o=e.toRange.startRow-e.fromRange.startRow,s=e.toRange.startColumn-e.fromRange.startColumn,c=this._tableManager.getTablesBySubunitId(i.unitId,i.subUnitId);for(let l of c){let c=l.getRange();t.Rectangle.contains(e.fromRange,c)&&(n.push({id:q.id,params:{unitId:i.unitId,tableId:l.getId(),subUnitId:a.subUnitId,range:{startRow:c.startRow+o,endRow:c.endRow+o,startColumn:c.startColumn+s,endColumn:c.endColumn+s}}}),r.push({id:q.id,params:{unitId:i.unitId,tableId:l.getId(),subUnitId:i.subUnitId,range:c,calculatedColumns:l.getTableInfo().columns.filter(e=>e.formula).map(e=>({columnId:e.id,formula:e.formula,formulaIsArray:e.formulaIsArray}))}}))}return{redos:n,undos:r}}};Y=I([F(0,(0,t.Inject)(L)),F(1,(0,t.Inject)(r.SheetInterceptorService)),F(2,t.IUniverInstanceService),F(3,(0,t.Inject)(t.Injector)),F(4,(0,t.Inject)(t.LocaleService)),F(5,(0,t.Inject)(t.ErrorService))],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,oldSubUnitId:a=i}=e;this._exclusiveRangeService.clearExclusiveRangesByGroupId(r,a,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=I([F(0,(0,t.Inject)(L)),F(1,(0,t.Inject)(r.IExclusiveRangeService))],X);let Z=class extends t.Disposable{constructor(e,t,n,r,i,a,o){super(),this._commandService=e,this._refRangeService=t,this._univerInstanceService=n,this._injector=r,this._sheetInterceptorService=i,this._tableManager=a,this._localeService=o,this._initCommandInterceptor(),this._initCommandListener()}_initCommandInterceptor(){let e=this;this._sheetInterceptorService.interceptCommand({priority:-1,getMutations(t){let n={redos:[],undos:[]},{id:i,params:a}=t;switch(i){case r.InsertRowCommand.id:return e._generateTableMutationWithInsertRow(a);case r.InsertColCommand.id:return e._generateTableMutationWithInsertCol(a);case r.RemoveRowCommand.id:return e._generateTableMutationWithRemoveRow(a);case r.RemoveColCommand.id:return e._generateTableMutationWithRemoveCol(a)}return n}})}_generateTableMutationWithInsertRow(e){let t=[],i=[],a=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!a)return{undos:t,redos:i};let{unitId:o,subUnitId:s}=a,c=this._tableManager.getTablesBySubunitId(o,s);if(!c.length)return{undos:t,redos:i};let{range:l}=e;return c.forEach(e=>{let r=e.getRange();if(l.startRow>r.startRow&&l.startRow<=r.endRow){let a=l.endRow-l.startRow+1;i.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow+a}}}}});let c=U(e,o,s,l.startRow,l.endRow,()=>this._injector.get(n.LexerTreeBuilder));c&&i.push(c),t.push({id:V.id,params:{unitId:o,subUnitId:s,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})}}),{undos:t,redos:i}}_generateTableMutationWithInsertCol(e){let t=[],n=[],i=(0,r.getSheetCommandTarget)(this._univerInstanceService,e);if(!i)return{undos:t,redos:n};let{unitId:a,subUnitId:o}=i,s=this._tableManager.getTablesBySubunitId(a,o);if(!s.length)return{undos:t,redos:n};let{range:c}=e;return s.forEach(e=>{let r=e.getRange();if(c.startColumn>r.startColumn&&c.startColumn<=r.endColumn){let r=c.endColumn-c.startColumn+1;n.push({id:V.id,params:{unitId:a,subUnitId:o,tableId:e.getId(),config:{rowColOperation:{operationType:`insert`,rowColType:`column`,index:c.startColumn,count:r}}}}),t.push({id:V.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:B.id,params:{unitId:c,subUnitId:l,tableId:e.getId()}});let t=e.toJSON();n.push({id:z.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:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:r.endRow-f}}}}}),n.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r}}}}})):d.startRow<r.endRow&&d.endRow>=r.endRow&&(i.push({id:V.id,params:{unitId:c,subUnitId:l,tableId:e.getId(),config:{updateRange:{newRange:{...r,endRow:d.startRow-1}}}}}),n.push({id:V.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:B.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:z.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:V.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:V.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:V.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:B.id,params:{unitId:e,subUnitId:t,tableId:n}}}_getAddTableMutation(e,t,n){let r=n.columns.map(e=>e.displayName);return{id:z.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=I([F(0,(0,t.Inject)(t.ICommandService)),F(1,(0,t.Inject)(r.RefRangeService)),F(2,(0,t.Inject)(t.IUniverInstanceService)),F(3,(0,t.Inject)(t.Injector)),F(4,(0,t.Inject)(r.SheetInterceptorService)),F(5,(0,t.Inject)(L)),F(6,(0,t.Inject)(t.LocaleService))],Z);let Q=class extends t.Disposable{constructor(e,t,n,r,i){super(),this._tableManager=e,this._sheetInterceptorService=t,this._univerInstanceService=n,this._sheetRowFilteredService=r,this._zebraCrossingCacheController=i,E(this,`_tableFilteredOutRows`,/* @__PURE__ */ new Map),this.registerFilterChangeEvent(),this.initTableHiddenRowIntercept(),this._registerFormulaRowFiltered(),this._initFilteredOutRows()}_registerFormulaRowFiltered(){this.disposeWithMe(this._sheetRowFilteredService.register((e,t,n)=>this._getTableFilteredOutRows(e,t).has(n)))}initTableHiddenRowIntercept(){this.disposeWithMe(this._sheetInterceptorService.intercept(r.INTERCEPTOR_POINT.ROW_FILTERED,{priority:100,handler:(e,t,n)=>{if(e)return!0;let r=this._getTableFilteredOutRows(t.unitId,t.subUnitId).has(t.row);return r?!0:n(r)}}))}_initFilteredOutRows(){this.disposeWithMe(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.tableDelete$.subscribe(({unitId:e,subUnitId:t})=>{this._refreshTableFilteredOutRows(e,t),this._zebraCrossingCacheController.updateZebraCrossingCache(e,t)})),this.disposeWithMe(this._tableManager.tableFilterChanged$.subscribe(e=>{let{unitId:t,subUnitId:n,tableId:r,oldSubUnitId:i}=e,a=this._univerInstanceService.getUnit(t),o=a==null?void 0:a.getSheetBySheetId(n),s=this._tableManager.getTable(t,r);o&&s&&(s.getTableFilters().doFilter(o,s.getTableFilterRange(),a==null?void 0:a.getDateSystem()),this._refreshTableFilteredOutRows(t,n),this._zebraCrossingCacheController.updateZebraCrossingCache(t,n),i&&i!==n&&(this._refreshTableFilteredOutRows(t,i),this._zebraCrossingCacheController.updateZebraCrossingCache(t,i)))}))}_refreshTableFilteredOutRows(e,t){let n=/* @__PURE__ */ new Set;this._tableManager.getTablesBySubunitId(e,t).forEach(e=>{let t=e.getTableFilters().getFilterOutRows();if(t)for(let e of t)n.add(e)}),this._tableFilteredOutRows.set(this._getSheetKey(e,t),n)}_getTableFilteredOutRows(e,t){let n=this._getSheetKey(e,t);return this._tableFilteredOutRows.has(n)||this._refreshTableFilteredOutRows(e,t),this._tableFilteredOutRows.get(n)??/* @__PURE__ */ new Set}_getSheetKey(e,t){return`${e}|${t}`}dispose(){super.dispose(),this._tableFilteredOutRows.clear()}};Q=I([F(0,(0,t.Inject)(L)),F(1,(0,t.Inject)(r.SheetInterceptorService)),F(2,(0,t.Inject)(t.IUniverInstanceService)),F(3,(0,t.Inject)(n.ISheetRowFilteredService)),F(4,(0,t.Inject)(r.ZebraCrossingCacheController))],Q);let $=class extends t.Plugin{constructor(e=w,n,r,i){super(),this._config=e,this._injector=n,this._configService=r,this._commandService=i;let{...a}=(0,t.merge)({},w,this._config);this._configService.setConfig(`sheets-table.config`,a),this._initRegisterCommand()}onStarting(){(0,t.registerDependencies)(this._injector,[[L],[K],[W],[R],[Q],[X],[Z],[Y],[J]])}onReady(){(0,t.touchDependencies)(this._injector,[[J],[X],[Z],[Y],[K],[W],[R],[Q]]),(0,t.touchDependencies)(this._injector,[[L]])}_initRegisterCommand(){[_t,z,yt,B,q,H,wt,Tt,Ct,V,vt,bt,Dt,kt,Ot,At,jt,Mt,G].forEach(e=>this._commandService.registerCommand(e))}};E($,`pluginName`,oe),E($,`packageName`,Nt),E($,`version`,Pt),E($,`type`,t.UniverInstanceType.UNIVER_SHEET),$=I([(0,t.DependentOn)(r.UniverSheetsPlugin),F(1,(0,t.Inject)(t.Injector)),F(2,t.IConfigService),F(3,(0,t.Inject)(t.ICommandService))],$),e.AddSheetTableCommand=_t,e.AddSheetTableMutation=z,e.AddTableThemeCommand=vt,e.DeleteSheetTableCommand=yt,e.DeleteSheetTableMutation=B,e.RemoveTableThemeCommand=bt,e.SHEET_TABLE_CUSTOM_THEME_PREFIX=se,e.SetSheetTableCommand=Ct,e.SetSheetTableFilterCommand=wt,e.SetSheetTableFilterMutation=H,e.SetSheetTableMutation=V,e.SetSheetTableSortStateCommand=Tt,e.SheetTableInsertColCommand=kt,e.SheetTableInsertColumnAtCommand=At,e.SheetTableInsertRowAtCommand=Ot,e.SheetTableInsertRowCommand=Dt,e.SheetTableRemoveColCommand=Mt,e.SheetTableRemoveColumnAtCommand=G,e.SheetTableRemoveRowCommand=jt,Object.defineProperty(e,"SheetTableService",{enumerable:!0,get:function(){return R}}),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 K}}),e.TABLE_FILTER_EMPTY_VALUE=ce,e.TableColumnDataTypeEnum=a,e.TableColumnFilterTypeEnum=o,e.TableConditionTypeEnum=s,e.TableDateCompareTypeEnum=u,Object.defineProperty(e,"TableManager",{enumerable:!0,get:function(){return L}}),e.TableNumberCompareTypeEnum=c,e.TableStringCompareTypeEnum=l,Object.defineProperty(e,"UniverSheetsTablePlugin",{enumerable:!0,get:function(){return $}}),e.compileTableRecordFilter=N,e.customEmptyThemeWithBorderStyle=te,e.getExistingNamesSet=S,e.getTableRecordValue=ut,e.getTableRecordValueKey=M,e.isColorTableFilter=x,e.isConditionFilter=y,e.isManualTableFilter=b,e.isRecordTableFilter=ee,e.processStyleWithBorderStyle=ne,e.validateSheetTableName=xt});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-table",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.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
|
|
71
|
-
"@univerjs/engine-formula": "1.0
|
|
72
|
-
"@univerjs/sheets": "1.0
|
|
70
|
+
"@univerjs/core": "1.1.0",
|
|
71
|
+
"@univerjs/engine-formula": "1.1.0",
|
|
72
|
+
"@univerjs/sheets": "1.1.0"
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@univerjs-infra/shared": "1.0
|
|
76
|
-
"@univerjs/engine-render": "1.0
|
|
77
|
-
"@univerjs/sheets-formula": "1.0
|
|
75
|
+
"@univerjs-infra/shared": "1.1.0",
|
|
76
|
+
"@univerjs/engine-render": "1.1.0",
|
|
77
|
+
"@univerjs/sheets-formula": "1.1.0",
|
|
78
78
|
"rxjs": "^7.8.2",
|
|
79
79
|
"typescript": "^6.0.3",
|
|
80
|
-
"vitest": "^5.0.
|
|
80
|
+
"vitest": "^5.0.4"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"test": "vitest run",
|