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