@univerjs/sheets-filter 1.0.0-alpha.7 → 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/facade.js +2 -2
- package/lib/cjs/index.js +31 -39
- package/lib/es/facade.js +2 -2
- package/lib/es/index.js +34 -42
- package/lib/facade.js +2 -2
- package/lib/index.js +34 -42
- package/lib/umd/index.js +1 -1
- package/package.json +7 -7
package/lib/cjs/facade.js
CHANGED
|
@@ -70,7 +70,7 @@ var FUniverSheetsFilterMixin = class extends _univerjs_core_facade.FUniver {
|
|
|
70
70
|
_univerjs_core_facade.FUniver.extend(FUniverSheetsFilterMixin);
|
|
71
71
|
|
|
72
72
|
//#endregion
|
|
73
|
-
//#region \0@oxc-project+runtime@0.
|
|
73
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
|
|
74
74
|
function __decorateParam(paramIndex, decorator) {
|
|
75
75
|
return function(target, key) {
|
|
76
76
|
decorator(target, key, paramIndex);
|
|
@@ -78,7 +78,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
//#endregion
|
|
81
|
-
//#region \0@oxc-project+runtime@0.
|
|
81
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
|
|
82
82
|
function __decorate(decorators, target, key, desc) {
|
|
83
83
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
84
84
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/lib/cjs/index.js
CHANGED
|
@@ -164,7 +164,7 @@ function isWildCardString(str) {
|
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
//#endregion
|
|
167
|
-
//#region \0@oxc-project+runtime@0.
|
|
167
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
|
|
168
168
|
function _typeof(o) {
|
|
169
169
|
"@babel/helpers - typeof";
|
|
170
170
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -175,7 +175,7 @@ function _typeof(o) {
|
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
//#endregion
|
|
178
|
-
//#region \0@oxc-project+runtime@0.
|
|
178
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
|
|
179
179
|
function toPrimitive(t, r) {
|
|
180
180
|
if ("object" != _typeof(t) || !t) return t;
|
|
181
181
|
var e = t[Symbol.toPrimitive];
|
|
@@ -188,14 +188,14 @@ function toPrimitive(t, r) {
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
//#endregion
|
|
191
|
-
//#region \0@oxc-project+runtime@0.
|
|
191
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
|
|
192
192
|
function toPropertyKey(t) {
|
|
193
193
|
var i = toPrimitive(t, "string");
|
|
194
194
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
//#endregion
|
|
198
|
-
//#region \0@oxc-project+runtime@0.
|
|
198
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
|
|
199
199
|
function _defineProperty(e, r, t) {
|
|
200
200
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
201
201
|
value: t,
|
|
@@ -337,8 +337,7 @@ var FilterModel = class FilterModel extends _univerjs_core.Disposable {
|
|
|
337
337
|
return this._getAllFilterColumns(true);
|
|
338
338
|
}
|
|
339
339
|
getFilterColumn(index) {
|
|
340
|
-
|
|
341
|
-
return (_this$_filterColumnBy = this._filterColumnByIndex.get(index)) !== null && _this$_filterColumnBy !== void 0 ? _this$_filterColumnBy : null;
|
|
340
|
+
return this._filterColumnByIndex.get(index) ?? null;
|
|
342
341
|
}
|
|
343
342
|
reCalc() {
|
|
344
343
|
this._reCalcAllColumns();
|
|
@@ -596,7 +595,7 @@ function extractFilterValueFromCell(cell) {
|
|
|
596
595
|
}
|
|
597
596
|
|
|
598
597
|
//#endregion
|
|
599
|
-
//#region \0@oxc-project+runtime@0.
|
|
598
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
|
|
600
599
|
function __decorateParam(paramIndex, decorator) {
|
|
601
600
|
return function(target, key) {
|
|
602
601
|
decorator(target, key, paramIndex);
|
|
@@ -604,7 +603,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
604
603
|
}
|
|
605
604
|
|
|
606
605
|
//#endregion
|
|
607
|
-
//#region \0@oxc-project+runtime@0.
|
|
606
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
|
|
608
607
|
function __decorate(decorators, target, key, desc) {
|
|
609
608
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
610
609
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -643,7 +642,7 @@ let SheetsFilterService = class SheetsFilterService extends _univerjs_core.Dispo
|
|
|
643
642
|
ensureFilterModel(unitId, subUnitId) {
|
|
644
643
|
const already = this.getFilterModel(unitId, subUnitId);
|
|
645
644
|
if (already) return already;
|
|
646
|
-
const workbook = this._univerInstanceService.
|
|
645
|
+
const workbook = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
647
646
|
if (!workbook) throw new Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing workbook ${unitId}!`);
|
|
648
647
|
const worksheet = workbook.getSheetBySheetId(subUnitId);
|
|
649
648
|
if (!worksheet) throw new Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing worksheet ${subUnitId}!`);
|
|
@@ -652,8 +651,8 @@ let SheetsFilterService = class SheetsFilterService extends _univerjs_core.Dispo
|
|
|
652
651
|
return filterModel;
|
|
653
652
|
}
|
|
654
653
|
getFilterModel(unitId, subUnitId) {
|
|
655
|
-
var _this$_filterModels$g
|
|
656
|
-
return (_this$_filterModels$g =
|
|
654
|
+
var _this$_filterModels$g;
|
|
655
|
+
return ((_this$_filterModels$g = this._filterModels.get(unitId)) === null || _this$_filterModels$g === void 0 ? void 0 : _this$_filterModels$g.get(subUnitId)) ?? null;
|
|
657
656
|
}
|
|
658
657
|
removeFilterModel(unitId, subUnitId) {
|
|
659
658
|
const already = this.getFilterModel(unitId, subUnitId);
|
|
@@ -690,10 +689,7 @@ let SheetsFilterService = class SheetsFilterService extends _univerjs_core.Dispo
|
|
|
690
689
|
this._activeFilterModel$.next(filterModel);
|
|
691
690
|
}
|
|
692
691
|
_initActiveFilterModel() {
|
|
693
|
-
this.disposeWithMe((0, rxjs.merge)((0, _univerjs_core.fromCallback)(this._commandService.onCommandExecuted.bind(this._commandService)).pipe((0, rxjs.filter)(([command]) => command.type === _univerjs_core.CommandType.MUTATION && FILTER_MUTATIONS.has(command.id))), this._univerInstanceService.getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET).pipe((0, rxjs.switchMap)((workbook) =>
|
|
694
|
-
var _workbook$activeSheet;
|
|
695
|
-
return (_workbook$activeSheet = workbook === null || workbook === void 0 ? void 0 : workbook.activeSheet$) !== null && _workbook$activeSheet !== void 0 ? _workbook$activeSheet : (0, rxjs.of)(null);
|
|
696
|
-
}))).subscribe(() => this._updateActiveFilterModel()));
|
|
692
|
+
this.disposeWithMe((0, rxjs.merge)((0, _univerjs_core.fromCallback)(this._commandService.onCommandExecuted.bind(this._commandService)).pipe((0, rxjs.filter)(([command]) => command.type === _univerjs_core.CommandType.MUTATION && FILTER_MUTATIONS.has(command.id))), this._univerInstanceService.getCurrentTypeOfUnit$(_univerjs_core.UniverInstanceType.UNIVER_SHEET).pipe((0, rxjs.switchMap)((workbook) => (workbook === null || workbook === void 0 ? void 0 : workbook.activeSheet$) ?? (0, rxjs.of)(null)))).subscribe(() => this._updateActiveFilterModel()));
|
|
697
693
|
}
|
|
698
694
|
_serializeAutoFiltersForUnit(unitId) {
|
|
699
695
|
const allFilterModels = this._filterModels.get(unitId);
|
|
@@ -705,7 +701,7 @@ let SheetsFilterService = class SheetsFilterService extends _univerjs_core.Dispo
|
|
|
705
701
|
return JSON.stringify(json);
|
|
706
702
|
}
|
|
707
703
|
_deserializeAutoFiltersForUnit(unitId, json) {
|
|
708
|
-
const workbook = this._univerInstanceService.
|
|
704
|
+
const workbook = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
709
705
|
Object.keys(json).forEach((worksheetId) => {
|
|
710
706
|
const autoFilter = json[worksheetId];
|
|
711
707
|
const filterModel = FilterModel.deserialize(unitId, worksheetId, workbook.getSheetBySheetId(worksheetId), autoFilter);
|
|
@@ -1242,7 +1238,7 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1242
1238
|
}));
|
|
1243
1239
|
this.disposeWithMe(this._sheetsFilterService.loadedUnitId$.subscribe((unitId) => {
|
|
1244
1240
|
if (unitId) {
|
|
1245
|
-
const workbook = this._univerInstanceService.
|
|
1241
|
+
const workbook = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
1246
1242
|
const sheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
|
|
1247
1243
|
if (sheet) this._registerRefRange(unitId, sheet.getSheetId());
|
|
1248
1244
|
}
|
|
@@ -1251,7 +1247,7 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1251
1247
|
_registerRefRange(unitId, subUnitId) {
|
|
1252
1248
|
var _this$_sheetsFilterSe;
|
|
1253
1249
|
this._disposableCollection.dispose();
|
|
1254
|
-
const workbook = this._univerInstanceService.
|
|
1250
|
+
const workbook = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET);
|
|
1255
1251
|
const workSheet = workbook === null || workbook === void 0 ? void 0 : workbook.getSheetBySheetId(subUnitId);
|
|
1256
1252
|
if (!workbook || !workSheet) return;
|
|
1257
1253
|
const range = (_this$_sheetsFilterSe = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe === void 0 ? void 0 : _this$_sheetsFilterSe.getRange();
|
|
@@ -1319,9 +1315,8 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1319
1315
|
};
|
|
1320
1316
|
}
|
|
1321
1317
|
handleInsertColCommand(range, unitId, subUnitId) {
|
|
1322
|
-
var _filterModel$getRange;
|
|
1323
1318
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1324
|
-
const filterRange = (
|
|
1319
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1325
1320
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1326
1321
|
const { startColumn, endColumn } = filterRange;
|
|
1327
1322
|
const { startColumn: insertStartColumn, endColumn: insertEndColumn } = range;
|
|
@@ -1364,9 +1359,8 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1364
1359
|
};
|
|
1365
1360
|
}
|
|
1366
1361
|
_handleInsertRowCommand(config, unitId, subUnitId) {
|
|
1367
|
-
var _filterModel$getRange2;
|
|
1368
1362
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1369
|
-
const filterRange = (
|
|
1363
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1370
1364
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1371
1365
|
const { startRow, endRow } = filterRange;
|
|
1372
1366
|
const { startRow: insertStartRow, endRow: insertEndRow } = config.range;
|
|
@@ -1402,9 +1396,8 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1402
1396
|
};
|
|
1403
1397
|
}
|
|
1404
1398
|
handleRemoveColCommand(range, unitId, subUnitId) {
|
|
1405
|
-
var _filterModel$getRange3;
|
|
1406
1399
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1407
|
-
const filterRange = (
|
|
1400
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1408
1401
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1409
1402
|
const { startColumn, endColumn } = filterRange;
|
|
1410
1403
|
const { startColumn: removeStartColumn, endColumn: removeEndColumn } = range;
|
|
@@ -1572,7 +1565,7 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1572
1565
|
});
|
|
1573
1566
|
} else {
|
|
1574
1567
|
var _this$_univerInstance;
|
|
1575
|
-
const worksheet = (_this$_univerInstance = this._univerInstanceService.
|
|
1568
|
+
const worksheet = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId, _univerjs_core.UniverInstanceType.UNIVER_SHEET)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
|
|
1576
1569
|
if (!worksheet) return this._handleNull();
|
|
1577
1570
|
const hiddenRowCount = this._getFilteredRowCount(worksheet, removeStartRow, removeEndRow);
|
|
1578
1571
|
const afterStartRow = Math.min(startRow, removeStartRow);
|
|
@@ -1602,9 +1595,8 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1602
1595
|
return count;
|
|
1603
1596
|
}
|
|
1604
1597
|
handleMoveColsCommand({ fromRange, toRange }, unitId, subUnitId) {
|
|
1605
|
-
var _filterModel$getRange4;
|
|
1606
1598
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1607
|
-
const filterRange = (
|
|
1599
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1608
1600
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1609
1601
|
const { startColumn, endColumn } = filterRange;
|
|
1610
1602
|
if (fromRange.endColumn < startColumn && toRange.startColumn <= startColumn || fromRange.startColumn > endColumn && toRange.endColumn > endColumn) return this._handleNull();
|
|
@@ -1712,9 +1704,8 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1712
1704
|
};
|
|
1713
1705
|
}
|
|
1714
1706
|
_handleMoveRowsCommand(config, unitId, subUnitId) {
|
|
1715
|
-
var _filterModel$getRange5;
|
|
1716
1707
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1717
|
-
const filterRange = (
|
|
1708
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1718
1709
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1719
1710
|
const { startRow, endRow } = filterRange;
|
|
1720
1711
|
const { fromRange, toRange } = config;
|
|
@@ -1975,9 +1966,9 @@ let SheetsFilterController = class SheetsFilterController extends _univerjs_core
|
|
|
1975
1966
|
}
|
|
1976
1967
|
_initRowFilteredInterceptor() {
|
|
1977
1968
|
this.disposeWithMe(this._sheetInterceptorService.intercept(_univerjs_sheets.INTERCEPTOR_POINT.ROW_FILTERED, { handler: (filtered, rowLocation) => {
|
|
1978
|
-
var _this$_sheetsFilterSe2
|
|
1969
|
+
var _this$_sheetsFilterSe2;
|
|
1979
1970
|
if (filtered) return true;
|
|
1980
|
-
return (_this$_sheetsFilterSe2 =
|
|
1971
|
+
return ((_this$_sheetsFilterSe2 = this._sheetsFilterService.getFilterModel(rowLocation.unitId, rowLocation.subUnitId)) === null || _this$_sheetsFilterSe2 === void 0 ? void 0 : _this$_sheetsFilterSe2.isRowFiltered(rowLocation.row)) ?? false;
|
|
1981
1972
|
} }));
|
|
1982
1973
|
}
|
|
1983
1974
|
_moveCriteria(unitId, subUnitId, target, step) {
|
|
@@ -2180,10 +2171,7 @@ let SheetsFilterSyncController = class SheetsFilterSyncController extends _unive
|
|
|
2180
2171
|
const config = this._configService.getConfig(SHEETS_FILTER_PLUGIN_CONFIG_KEY);
|
|
2181
2172
|
if (config === null || config === void 0 ? void 0 : config.enableSyncSwitch) {
|
|
2182
2173
|
this._visible$.next(true);
|
|
2183
|
-
if (typeof config.enableSyncSwitch === "object")
|
|
2184
|
-
var _config$enableSyncSwi;
|
|
2185
|
-
this.setEnabled((_config$enableSyncSwi = config.enableSyncSwitch.defaultValue) !== null && _config$enableSyncSwi !== void 0 ? _config$enableSyncSwi : true);
|
|
2186
|
-
}
|
|
2174
|
+
if (typeof config.enableSyncSwitch === "object") this.setEnabled(config.enableSyncSwitch.defaultValue ?? true);
|
|
2187
2175
|
}
|
|
2188
2176
|
}
|
|
2189
2177
|
setEnabled(enabled) {
|
|
@@ -2229,7 +2217,7 @@ SheetsFilterSyncController = __decorate([
|
|
|
2229
2217
|
//#endregion
|
|
2230
2218
|
//#region package.json
|
|
2231
2219
|
var name = "@univerjs/sheets-filter";
|
|
2232
|
-
var version = "1.0.0-
|
|
2220
|
+
var version = "1.0.0-beta.0";
|
|
2233
2221
|
|
|
2234
2222
|
//#endregion
|
|
2235
2223
|
//#region src/services/sheet-filter-formula.service.ts
|
|
@@ -2276,8 +2264,8 @@ let SheetsFilterFormulaService = class SheetsFilterFormulaService extends _unive
|
|
|
2276
2264
|
}
|
|
2277
2265
|
_registerSheetRowFiltered() {
|
|
2278
2266
|
this._sheetRowFilteredService.register((unitId, subUnitId, row) => {
|
|
2279
|
-
var _this$_sheetsFilterSe2
|
|
2280
|
-
return (_this$_sheetsFilterSe2 =
|
|
2267
|
+
var _this$_sheetsFilterSe2;
|
|
2268
|
+
return ((_this$_sheetsFilterSe2 = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe2 === void 0 ? void 0 : _this$_sheetsFilterSe2.isRowFiltered(row)) ?? false;
|
|
2281
2269
|
});
|
|
2282
2270
|
}
|
|
2283
2271
|
};
|
|
@@ -2319,7 +2307,11 @@ _defineProperty(UniverSheetsFilterPlugin, "type", _univerjs_core.UniverInstanceT
|
|
|
2319
2307
|
_defineProperty(UniverSheetsFilterPlugin, "pluginName", SHEET_FILTER_SNAPSHOT_ID);
|
|
2320
2308
|
_defineProperty(UniverSheetsFilterPlugin, "packageName", name);
|
|
2321
2309
|
_defineProperty(UniverSheetsFilterPlugin, "version", version);
|
|
2322
|
-
UniverSheetsFilterPlugin = __decorate([
|
|
2310
|
+
UniverSheetsFilterPlugin = __decorate([
|
|
2311
|
+
(0, _univerjs_core.DependentOn)(_univerjs_engine_formula.UniverFormulaEnginePlugin, _univerjs_sheets.UniverSheetsPlugin),
|
|
2312
|
+
__decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_core.Injector)),
|
|
2313
|
+
__decorateParam(2, _univerjs_core.IConfigService)
|
|
2314
|
+
], UniverSheetsFilterPlugin);
|
|
2323
2315
|
|
|
2324
2316
|
//#endregion
|
|
2325
2317
|
exports.ClearSheetsFilterCriteriaCommand = ClearSheetsFilterCriteriaCommand;
|
package/lib/es/facade.js
CHANGED
|
@@ -69,7 +69,7 @@ var FUniverSheetsFilterMixin = class extends FUniver {
|
|
|
69
69
|
FUniver.extend(FUniverSheetsFilterMixin);
|
|
70
70
|
|
|
71
71
|
//#endregion
|
|
72
|
-
//#region \0@oxc-project+runtime@0.
|
|
72
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
|
|
73
73
|
function __decorateParam(paramIndex, decorator) {
|
|
74
74
|
return function(target, key) {
|
|
75
75
|
decorator(target, key, paramIndex);
|
|
@@ -77,7 +77,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
//#endregion
|
|
80
|
-
//#region \0@oxc-project+runtime@0.
|
|
80
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
|
|
81
81
|
function __decorate(decorators, target, key, desc) {
|
|
82
82
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
83
83
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/lib/es/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { CellValueType, ColorKit, CommandType, Disposable, DisposableCollection, ErrorService, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, LocaleService, Optional, Plugin, Rectangle, Tools, UniverInstanceType, extractPureTextFromCell, fromCallback, isNumeric, merge, mergeSets, moveMatrixArray, regexp, sequenceExecute, touchDependencies } from "@univerjs/core";
|
|
2
|
-
import { CopySheetCommand, EffectRefRangId, INTERCEPTOR_POINT, InsertColCommand, InsertColMutation, InsertRowCommand, InsertRowMutation, MarkDirtyFilterChangeMutation, MoveColsMutation, MoveRangeCommand, MoveRowsCommand, RefRangeService, RemoveColCommand, RemoveColMutation, RemoveRowCommand, RemoveRowMutation, RemoveSheetCommand, SetRangeValuesMutation, SetWorksheetActiveOperation, SheetInterceptorService, SheetsSelectionsService, ZebraCrossingCacheController, expandToContinuousRange, getSheetCommandTarget, isSingleCellSelection } from "@univerjs/sheets";
|
|
1
|
+
import { CellValueType, ColorKit, CommandType, DependentOn, Disposable, DisposableCollection, ErrorService, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, LocaleService, Optional, Plugin, Rectangle, Tools, UniverInstanceType, extractPureTextFromCell, fromCallback, isNumeric, merge, mergeSets, moveMatrixArray, regexp, sequenceExecute, touchDependencies } from "@univerjs/core";
|
|
2
|
+
import { CopySheetCommand, EffectRefRangId, INTERCEPTOR_POINT, InsertColCommand, InsertColMutation, InsertRowCommand, InsertRowMutation, MarkDirtyFilterChangeMutation, MoveColsMutation, MoveRangeCommand, MoveRowsCommand, RefRangeService, RemoveColCommand, RemoveColMutation, RemoveRowCommand, RemoveRowMutation, RemoveSheetCommand, SetRangeValuesMutation, SetWorksheetActiveOperation, SheetInterceptorService, SheetsSelectionsService, UniverSheetsPlugin, ZebraCrossingCacheController, expandToContinuousRange, getSheetCommandTarget, isSingleCellSelection } from "@univerjs/sheets";
|
|
3
3
|
import { BehaviorSubject, filter, merge as merge$1, of, switchMap } from "rxjs";
|
|
4
4
|
import { COLOR_BLACK_RGB } from "@univerjs/engine-render";
|
|
5
5
|
import { DataSyncPrimaryController } from "@univerjs/rpc";
|
|
6
|
-
import { IActiveDirtyManagerService, ISheetRowFilteredService } from "@univerjs/engine-formula";
|
|
6
|
+
import { IActiveDirtyManagerService, ISheetRowFilteredService, UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
|
|
7
7
|
|
|
8
8
|
//#region src/common/const.ts
|
|
9
9
|
/**
|
|
@@ -163,7 +163,7 @@ function isWildCardString(str) {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
//#endregion
|
|
166
|
-
//#region \0@oxc-project+runtime@0.
|
|
166
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
|
|
167
167
|
function _typeof(o) {
|
|
168
168
|
"@babel/helpers - typeof";
|
|
169
169
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -174,7 +174,7 @@ function _typeof(o) {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
//#endregion
|
|
177
|
-
//#region \0@oxc-project+runtime@0.
|
|
177
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
|
|
178
178
|
function toPrimitive(t, r) {
|
|
179
179
|
if ("object" != _typeof(t) || !t) return t;
|
|
180
180
|
var e = t[Symbol.toPrimitive];
|
|
@@ -187,14 +187,14 @@ function toPrimitive(t, r) {
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
//#endregion
|
|
190
|
-
//#region \0@oxc-project+runtime@0.
|
|
190
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
|
|
191
191
|
function toPropertyKey(t) {
|
|
192
192
|
var i = toPrimitive(t, "string");
|
|
193
193
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
//#endregion
|
|
197
|
-
//#region \0@oxc-project+runtime@0.
|
|
197
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
|
|
198
198
|
function _defineProperty(e, r, t) {
|
|
199
199
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
200
200
|
value: t,
|
|
@@ -336,8 +336,7 @@ var FilterModel = class FilterModel extends Disposable {
|
|
|
336
336
|
return this._getAllFilterColumns(true);
|
|
337
337
|
}
|
|
338
338
|
getFilterColumn(index) {
|
|
339
|
-
|
|
340
|
-
return (_this$_filterColumnBy = this._filterColumnByIndex.get(index)) !== null && _this$_filterColumnBy !== void 0 ? _this$_filterColumnBy : null;
|
|
339
|
+
return this._filterColumnByIndex.get(index) ?? null;
|
|
341
340
|
}
|
|
342
341
|
reCalc() {
|
|
343
342
|
this._reCalcAllColumns();
|
|
@@ -595,7 +594,7 @@ function extractFilterValueFromCell(cell) {
|
|
|
595
594
|
}
|
|
596
595
|
|
|
597
596
|
//#endregion
|
|
598
|
-
//#region \0@oxc-project+runtime@0.
|
|
597
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
|
|
599
598
|
function __decorateParam(paramIndex, decorator) {
|
|
600
599
|
return function(target, key) {
|
|
601
600
|
decorator(target, key, paramIndex);
|
|
@@ -603,7 +602,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
603
602
|
}
|
|
604
603
|
|
|
605
604
|
//#endregion
|
|
606
|
-
//#region \0@oxc-project+runtime@0.
|
|
605
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
|
|
607
606
|
function __decorate(decorators, target, key, desc) {
|
|
608
607
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
609
608
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -642,7 +641,7 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
642
641
|
ensureFilterModel(unitId, subUnitId) {
|
|
643
642
|
const already = this.getFilterModel(unitId, subUnitId);
|
|
644
643
|
if (already) return already;
|
|
645
|
-
const workbook = this._univerInstanceService.
|
|
644
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
646
645
|
if (!workbook) throw new Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing workbook ${unitId}!`);
|
|
647
646
|
const worksheet = workbook.getSheetBySheetId(subUnitId);
|
|
648
647
|
if (!worksheet) throw new Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing worksheet ${subUnitId}!`);
|
|
@@ -651,8 +650,8 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
651
650
|
return filterModel;
|
|
652
651
|
}
|
|
653
652
|
getFilterModel(unitId, subUnitId) {
|
|
654
|
-
var _this$_filterModels$g
|
|
655
|
-
return (_this$_filterModels$g =
|
|
653
|
+
var _this$_filterModels$g;
|
|
654
|
+
return ((_this$_filterModels$g = this._filterModels.get(unitId)) === null || _this$_filterModels$g === void 0 ? void 0 : _this$_filterModels$g.get(subUnitId)) ?? null;
|
|
656
655
|
}
|
|
657
656
|
removeFilterModel(unitId, subUnitId) {
|
|
658
657
|
const already = this.getFilterModel(unitId, subUnitId);
|
|
@@ -689,10 +688,7 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
689
688
|
this._activeFilterModel$.next(filterModel);
|
|
690
689
|
}
|
|
691
690
|
_initActiveFilterModel() {
|
|
692
|
-
this.disposeWithMe(merge$1(fromCallback(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(filter(([command]) => command.type === CommandType.MUTATION && FILTER_MUTATIONS.has(command.id))), this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(switchMap((workbook) =>
|
|
693
|
-
var _workbook$activeSheet;
|
|
694
|
-
return (_workbook$activeSheet = workbook === null || workbook === void 0 ? void 0 : workbook.activeSheet$) !== null && _workbook$activeSheet !== void 0 ? _workbook$activeSheet : of(null);
|
|
695
|
-
}))).subscribe(() => this._updateActiveFilterModel()));
|
|
691
|
+
this.disposeWithMe(merge$1(fromCallback(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(filter(([command]) => command.type === CommandType.MUTATION && FILTER_MUTATIONS.has(command.id))), this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(switchMap((workbook) => (workbook === null || workbook === void 0 ? void 0 : workbook.activeSheet$) ?? of(null)))).subscribe(() => this._updateActiveFilterModel()));
|
|
696
692
|
}
|
|
697
693
|
_serializeAutoFiltersForUnit(unitId) {
|
|
698
694
|
const allFilterModels = this._filterModels.get(unitId);
|
|
@@ -704,7 +700,7 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
704
700
|
return JSON.stringify(json);
|
|
705
701
|
}
|
|
706
702
|
_deserializeAutoFiltersForUnit(unitId, json) {
|
|
707
|
-
const workbook = this._univerInstanceService.
|
|
703
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
708
704
|
Object.keys(json).forEach((worksheetId) => {
|
|
709
705
|
const autoFilter = json[worksheetId];
|
|
710
706
|
const filterModel = FilterModel.deserialize(unitId, worksheetId, workbook.getSheetBySheetId(worksheetId), autoFilter);
|
|
@@ -1241,7 +1237,7 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1241
1237
|
}));
|
|
1242
1238
|
this.disposeWithMe(this._sheetsFilterService.loadedUnitId$.subscribe((unitId) => {
|
|
1243
1239
|
if (unitId) {
|
|
1244
|
-
const workbook = this._univerInstanceService.
|
|
1240
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
1245
1241
|
const sheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
|
|
1246
1242
|
if (sheet) this._registerRefRange(unitId, sheet.getSheetId());
|
|
1247
1243
|
}
|
|
@@ -1250,7 +1246,7 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1250
1246
|
_registerRefRange(unitId, subUnitId) {
|
|
1251
1247
|
var _this$_sheetsFilterSe;
|
|
1252
1248
|
this._disposableCollection.dispose();
|
|
1253
|
-
const workbook = this._univerInstanceService.
|
|
1249
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
1254
1250
|
const workSheet = workbook === null || workbook === void 0 ? void 0 : workbook.getSheetBySheetId(subUnitId);
|
|
1255
1251
|
if (!workbook || !workSheet) return;
|
|
1256
1252
|
const range = (_this$_sheetsFilterSe = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe === void 0 ? void 0 : _this$_sheetsFilterSe.getRange();
|
|
@@ -1318,9 +1314,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1318
1314
|
};
|
|
1319
1315
|
}
|
|
1320
1316
|
handleInsertColCommand(range, unitId, subUnitId) {
|
|
1321
|
-
var _filterModel$getRange;
|
|
1322
1317
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1323
|
-
const filterRange = (
|
|
1318
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1324
1319
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1325
1320
|
const { startColumn, endColumn } = filterRange;
|
|
1326
1321
|
const { startColumn: insertStartColumn, endColumn: insertEndColumn } = range;
|
|
@@ -1363,9 +1358,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1363
1358
|
};
|
|
1364
1359
|
}
|
|
1365
1360
|
_handleInsertRowCommand(config, unitId, subUnitId) {
|
|
1366
|
-
var _filterModel$getRange2;
|
|
1367
1361
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1368
|
-
const filterRange = (
|
|
1362
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1369
1363
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1370
1364
|
const { startRow, endRow } = filterRange;
|
|
1371
1365
|
const { startRow: insertStartRow, endRow: insertEndRow } = config.range;
|
|
@@ -1401,9 +1395,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1401
1395
|
};
|
|
1402
1396
|
}
|
|
1403
1397
|
handleRemoveColCommand(range, unitId, subUnitId) {
|
|
1404
|
-
var _filterModel$getRange3;
|
|
1405
1398
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1406
|
-
const filterRange = (
|
|
1399
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1407
1400
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1408
1401
|
const { startColumn, endColumn } = filterRange;
|
|
1409
1402
|
const { startColumn: removeStartColumn, endColumn: removeEndColumn } = range;
|
|
@@ -1571,7 +1564,7 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1571
1564
|
});
|
|
1572
1565
|
} else {
|
|
1573
1566
|
var _this$_univerInstance;
|
|
1574
|
-
const worksheet = (_this$_univerInstance = this._univerInstanceService.
|
|
1567
|
+
const worksheet = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
|
|
1575
1568
|
if (!worksheet) return this._handleNull();
|
|
1576
1569
|
const hiddenRowCount = this._getFilteredRowCount(worksheet, removeStartRow, removeEndRow);
|
|
1577
1570
|
const afterStartRow = Math.min(startRow, removeStartRow);
|
|
@@ -1601,9 +1594,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1601
1594
|
return count;
|
|
1602
1595
|
}
|
|
1603
1596
|
handleMoveColsCommand({ fromRange, toRange }, unitId, subUnitId) {
|
|
1604
|
-
var _filterModel$getRange4;
|
|
1605
1597
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1606
|
-
const filterRange = (
|
|
1598
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1607
1599
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1608
1600
|
const { startColumn, endColumn } = filterRange;
|
|
1609
1601
|
if (fromRange.endColumn < startColumn && toRange.startColumn <= startColumn || fromRange.startColumn > endColumn && toRange.endColumn > endColumn) return this._handleNull();
|
|
@@ -1711,9 +1703,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1711
1703
|
};
|
|
1712
1704
|
}
|
|
1713
1705
|
_handleMoveRowsCommand(config, unitId, subUnitId) {
|
|
1714
|
-
var _filterModel$getRange5;
|
|
1715
1706
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1716
|
-
const filterRange = (
|
|
1707
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1717
1708
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1718
1709
|
const { startRow, endRow } = filterRange;
|
|
1719
1710
|
const { fromRange, toRange } = config;
|
|
@@ -1974,9 +1965,9 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1974
1965
|
}
|
|
1975
1966
|
_initRowFilteredInterceptor() {
|
|
1976
1967
|
this.disposeWithMe(this._sheetInterceptorService.intercept(INTERCEPTOR_POINT.ROW_FILTERED, { handler: (filtered, rowLocation) => {
|
|
1977
|
-
var _this$_sheetsFilterSe2
|
|
1968
|
+
var _this$_sheetsFilterSe2;
|
|
1978
1969
|
if (filtered) return true;
|
|
1979
|
-
return (_this$_sheetsFilterSe2 =
|
|
1970
|
+
return ((_this$_sheetsFilterSe2 = this._sheetsFilterService.getFilterModel(rowLocation.unitId, rowLocation.subUnitId)) === null || _this$_sheetsFilterSe2 === void 0 ? void 0 : _this$_sheetsFilterSe2.isRowFiltered(rowLocation.row)) ?? false;
|
|
1980
1971
|
} }));
|
|
1981
1972
|
}
|
|
1982
1973
|
_moveCriteria(unitId, subUnitId, target, step) {
|
|
@@ -2179,10 +2170,7 @@ let SheetsFilterSyncController = class SheetsFilterSyncController extends Dispos
|
|
|
2179
2170
|
const config = this._configService.getConfig(SHEETS_FILTER_PLUGIN_CONFIG_KEY);
|
|
2180
2171
|
if (config === null || config === void 0 ? void 0 : config.enableSyncSwitch) {
|
|
2181
2172
|
this._visible$.next(true);
|
|
2182
|
-
if (typeof config.enableSyncSwitch === "object")
|
|
2183
|
-
var _config$enableSyncSwi;
|
|
2184
|
-
this.setEnabled((_config$enableSyncSwi = config.enableSyncSwitch.defaultValue) !== null && _config$enableSyncSwi !== void 0 ? _config$enableSyncSwi : true);
|
|
2185
|
-
}
|
|
2173
|
+
if (typeof config.enableSyncSwitch === "object") this.setEnabled(config.enableSyncSwitch.defaultValue ?? true);
|
|
2186
2174
|
}
|
|
2187
2175
|
}
|
|
2188
2176
|
setEnabled(enabled) {
|
|
@@ -2228,7 +2216,7 @@ SheetsFilterSyncController = __decorate([
|
|
|
2228
2216
|
//#endregion
|
|
2229
2217
|
//#region package.json
|
|
2230
2218
|
var name = "@univerjs/sheets-filter";
|
|
2231
|
-
var version = "1.0.0-
|
|
2219
|
+
var version = "1.0.0-beta.0";
|
|
2232
2220
|
|
|
2233
2221
|
//#endregion
|
|
2234
2222
|
//#region src/services/sheet-filter-formula.service.ts
|
|
@@ -2275,8 +2263,8 @@ let SheetsFilterFormulaService = class SheetsFilterFormulaService extends Dispos
|
|
|
2275
2263
|
}
|
|
2276
2264
|
_registerSheetRowFiltered() {
|
|
2277
2265
|
this._sheetRowFilteredService.register((unitId, subUnitId, row) => {
|
|
2278
|
-
var _this$_sheetsFilterSe2
|
|
2279
|
-
return (_this$_sheetsFilterSe2 =
|
|
2266
|
+
var _this$_sheetsFilterSe2;
|
|
2267
|
+
return ((_this$_sheetsFilterSe2 = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe2 === void 0 ? void 0 : _this$_sheetsFilterSe2.isRowFiltered(row)) ?? false;
|
|
2280
2268
|
});
|
|
2281
2269
|
}
|
|
2282
2270
|
};
|
|
@@ -2318,7 +2306,11 @@ _defineProperty(UniverSheetsFilterPlugin, "type", UniverInstanceType.UNIVER_SHEE
|
|
|
2318
2306
|
_defineProperty(UniverSheetsFilterPlugin, "pluginName", SHEET_FILTER_SNAPSHOT_ID);
|
|
2319
2307
|
_defineProperty(UniverSheetsFilterPlugin, "packageName", name);
|
|
2320
2308
|
_defineProperty(UniverSheetsFilterPlugin, "version", version);
|
|
2321
|
-
UniverSheetsFilterPlugin = __decorate([
|
|
2309
|
+
UniverSheetsFilterPlugin = __decorate([
|
|
2310
|
+
DependentOn(UniverFormulaEnginePlugin, UniverSheetsPlugin),
|
|
2311
|
+
__decorateParam(1, Inject(Injector)),
|
|
2312
|
+
__decorateParam(2, IConfigService)
|
|
2313
|
+
], UniverSheetsFilterPlugin);
|
|
2322
2314
|
|
|
2323
2315
|
//#endregion
|
|
2324
2316
|
export { ClearSheetsFilterCriteriaCommand, CustomFilterOperator, FILTER_MUTATIONS, FilterBy, FilterColumn, FilterModel, ReCalcSheetsFilterCommand, ReCalcSheetsFilterMutation, RemoveSheetFilterCommand, RemoveSheetsFilterMutation, SHEET_FILTER_SNAPSHOT_ID, SetSheetFilterRangeCommand, SetSheetsFilterCriteriaCommand, SetSheetsFilterCriteriaMutation, SetSheetsFilterRangeMutation, SheetsFilterService, SheetsFilterSyncController, SmartToggleSheetsFilterCommand, UniverSheetsFilterPlugin, equals, getCustomFilterFn, greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo, notEquals };
|
package/lib/facade.js
CHANGED
|
@@ -69,7 +69,7 @@ var FUniverSheetsFilterMixin = class extends FUniver {
|
|
|
69
69
|
FUniver.extend(FUniverSheetsFilterMixin);
|
|
70
70
|
|
|
71
71
|
//#endregion
|
|
72
|
-
//#region \0@oxc-project+runtime@0.
|
|
72
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
|
|
73
73
|
function __decorateParam(paramIndex, decorator) {
|
|
74
74
|
return function(target, key) {
|
|
75
75
|
decorator(target, key, paramIndex);
|
|
@@ -77,7 +77,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
//#endregion
|
|
80
|
-
//#region \0@oxc-project+runtime@0.
|
|
80
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
|
|
81
81
|
function __decorate(decorators, target, key, desc) {
|
|
82
82
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
83
83
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
package/lib/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { CellValueType, ColorKit, CommandType, Disposable, DisposableCollection, ErrorService, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, LocaleService, Optional, Plugin, Rectangle, Tools, UniverInstanceType, extractPureTextFromCell, fromCallback, isNumeric, merge, mergeSets, moveMatrixArray, regexp, sequenceExecute, touchDependencies } from "@univerjs/core";
|
|
2
|
-
import { CopySheetCommand, EffectRefRangId, INTERCEPTOR_POINT, InsertColCommand, InsertColMutation, InsertRowCommand, InsertRowMutation, MarkDirtyFilterChangeMutation, MoveColsMutation, MoveRangeCommand, MoveRowsCommand, RefRangeService, RemoveColCommand, RemoveColMutation, RemoveRowCommand, RemoveRowMutation, RemoveSheetCommand, SetRangeValuesMutation, SetWorksheetActiveOperation, SheetInterceptorService, SheetsSelectionsService, ZebraCrossingCacheController, expandToContinuousRange, getSheetCommandTarget, isSingleCellSelection } from "@univerjs/sheets";
|
|
1
|
+
import { CellValueType, ColorKit, CommandType, DependentOn, Disposable, DisposableCollection, ErrorService, ICommandService, IConfigService, IResourceManagerService, IUndoRedoService, IUniverInstanceService, Inject, Injector, LocaleService, Optional, Plugin, Rectangle, Tools, UniverInstanceType, extractPureTextFromCell, fromCallback, isNumeric, merge, mergeSets, moveMatrixArray, regexp, sequenceExecute, touchDependencies } from "@univerjs/core";
|
|
2
|
+
import { CopySheetCommand, EffectRefRangId, INTERCEPTOR_POINT, InsertColCommand, InsertColMutation, InsertRowCommand, InsertRowMutation, MarkDirtyFilterChangeMutation, MoveColsMutation, MoveRangeCommand, MoveRowsCommand, RefRangeService, RemoveColCommand, RemoveColMutation, RemoveRowCommand, RemoveRowMutation, RemoveSheetCommand, SetRangeValuesMutation, SetWorksheetActiveOperation, SheetInterceptorService, SheetsSelectionsService, UniverSheetsPlugin, ZebraCrossingCacheController, expandToContinuousRange, getSheetCommandTarget, isSingleCellSelection } from "@univerjs/sheets";
|
|
3
3
|
import { BehaviorSubject, filter, merge as merge$1, of, switchMap } from "rxjs";
|
|
4
4
|
import { COLOR_BLACK_RGB } from "@univerjs/engine-render";
|
|
5
5
|
import { DataSyncPrimaryController } from "@univerjs/rpc";
|
|
6
|
-
import { IActiveDirtyManagerService, ISheetRowFilteredService } from "@univerjs/engine-formula";
|
|
6
|
+
import { IActiveDirtyManagerService, ISheetRowFilteredService, UniverFormulaEnginePlugin } from "@univerjs/engine-formula";
|
|
7
7
|
|
|
8
8
|
//#region src/common/const.ts
|
|
9
9
|
/**
|
|
@@ -163,7 +163,7 @@ function isWildCardString(str) {
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
//#endregion
|
|
166
|
-
//#region \0@oxc-project+runtime@0.
|
|
166
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/typeof.js
|
|
167
167
|
function _typeof(o) {
|
|
168
168
|
"@babel/helpers - typeof";
|
|
169
169
|
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o) {
|
|
@@ -174,7 +174,7 @@ function _typeof(o) {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
//#endregion
|
|
177
|
-
//#region \0@oxc-project+runtime@0.
|
|
177
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPrimitive.js
|
|
178
178
|
function toPrimitive(t, r) {
|
|
179
179
|
if ("object" != _typeof(t) || !t) return t;
|
|
180
180
|
var e = t[Symbol.toPrimitive];
|
|
@@ -187,14 +187,14 @@ function toPrimitive(t, r) {
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
//#endregion
|
|
190
|
-
//#region \0@oxc-project+runtime@0.
|
|
190
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/toPropertyKey.js
|
|
191
191
|
function toPropertyKey(t) {
|
|
192
192
|
var i = toPrimitive(t, "string");
|
|
193
193
|
return "symbol" == _typeof(i) ? i : i + "";
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
//#endregion
|
|
197
|
-
//#region \0@oxc-project+runtime@0.
|
|
197
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/defineProperty.js
|
|
198
198
|
function _defineProperty(e, r, t) {
|
|
199
199
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
200
200
|
value: t,
|
|
@@ -336,8 +336,7 @@ var FilterModel = class FilterModel extends Disposable {
|
|
|
336
336
|
return this._getAllFilterColumns(true);
|
|
337
337
|
}
|
|
338
338
|
getFilterColumn(index) {
|
|
339
|
-
|
|
340
|
-
return (_this$_filterColumnBy = this._filterColumnByIndex.get(index)) !== null && _this$_filterColumnBy !== void 0 ? _this$_filterColumnBy : null;
|
|
339
|
+
return this._filterColumnByIndex.get(index) ?? null;
|
|
341
340
|
}
|
|
342
341
|
reCalc() {
|
|
343
342
|
this._reCalcAllColumns();
|
|
@@ -595,7 +594,7 @@ function extractFilterValueFromCell(cell) {
|
|
|
595
594
|
}
|
|
596
595
|
|
|
597
596
|
//#endregion
|
|
598
|
-
//#region \0@oxc-project+runtime@0.
|
|
597
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorateParam.js
|
|
599
598
|
function __decorateParam(paramIndex, decorator) {
|
|
600
599
|
return function(target, key) {
|
|
601
600
|
decorator(target, key, paramIndex);
|
|
@@ -603,7 +602,7 @@ function __decorateParam(paramIndex, decorator) {
|
|
|
603
602
|
}
|
|
604
603
|
|
|
605
604
|
//#endregion
|
|
606
|
-
//#region \0@oxc-project+runtime@0.
|
|
605
|
+
//#region \0@oxc-project+runtime@0.140.0/helpers/esm/decorate.js
|
|
607
606
|
function __decorate(decorators, target, key, desc) {
|
|
608
607
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
609
608
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -642,7 +641,7 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
642
641
|
ensureFilterModel(unitId, subUnitId) {
|
|
643
642
|
const already = this.getFilterModel(unitId, subUnitId);
|
|
644
643
|
if (already) return already;
|
|
645
|
-
const workbook = this._univerInstanceService.
|
|
644
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
646
645
|
if (!workbook) throw new Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing workbook ${unitId}!`);
|
|
647
646
|
const worksheet = workbook.getSheetBySheetId(subUnitId);
|
|
648
647
|
if (!worksheet) throw new Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing worksheet ${subUnitId}!`);
|
|
@@ -651,8 +650,8 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
651
650
|
return filterModel;
|
|
652
651
|
}
|
|
653
652
|
getFilterModel(unitId, subUnitId) {
|
|
654
|
-
var _this$_filterModels$g
|
|
655
|
-
return (_this$_filterModels$g =
|
|
653
|
+
var _this$_filterModels$g;
|
|
654
|
+
return ((_this$_filterModels$g = this._filterModels.get(unitId)) === null || _this$_filterModels$g === void 0 ? void 0 : _this$_filterModels$g.get(subUnitId)) ?? null;
|
|
656
655
|
}
|
|
657
656
|
removeFilterModel(unitId, subUnitId) {
|
|
658
657
|
const already = this.getFilterModel(unitId, subUnitId);
|
|
@@ -689,10 +688,7 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
689
688
|
this._activeFilterModel$.next(filterModel);
|
|
690
689
|
}
|
|
691
690
|
_initActiveFilterModel() {
|
|
692
|
-
this.disposeWithMe(merge$1(fromCallback(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(filter(([command]) => command.type === CommandType.MUTATION && FILTER_MUTATIONS.has(command.id))), this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(switchMap((workbook) =>
|
|
693
|
-
var _workbook$activeSheet;
|
|
694
|
-
return (_workbook$activeSheet = workbook === null || workbook === void 0 ? void 0 : workbook.activeSheet$) !== null && _workbook$activeSheet !== void 0 ? _workbook$activeSheet : of(null);
|
|
695
|
-
}))).subscribe(() => this._updateActiveFilterModel()));
|
|
691
|
+
this.disposeWithMe(merge$1(fromCallback(this._commandService.onCommandExecuted.bind(this._commandService)).pipe(filter(([command]) => command.type === CommandType.MUTATION && FILTER_MUTATIONS.has(command.id))), this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_SHEET).pipe(switchMap((workbook) => (workbook === null || workbook === void 0 ? void 0 : workbook.activeSheet$) ?? of(null)))).subscribe(() => this._updateActiveFilterModel()));
|
|
696
692
|
}
|
|
697
693
|
_serializeAutoFiltersForUnit(unitId) {
|
|
698
694
|
const allFilterModels = this._filterModels.get(unitId);
|
|
@@ -704,7 +700,7 @@ let SheetsFilterService = class SheetsFilterService extends Disposable {
|
|
|
704
700
|
return JSON.stringify(json);
|
|
705
701
|
}
|
|
706
702
|
_deserializeAutoFiltersForUnit(unitId, json) {
|
|
707
|
-
const workbook = this._univerInstanceService.
|
|
703
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
708
704
|
Object.keys(json).forEach((worksheetId) => {
|
|
709
705
|
const autoFilter = json[worksheetId];
|
|
710
706
|
const filterModel = FilterModel.deserialize(unitId, worksheetId, workbook.getSheetBySheetId(worksheetId), autoFilter);
|
|
@@ -1241,7 +1237,7 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1241
1237
|
}));
|
|
1242
1238
|
this.disposeWithMe(this._sheetsFilterService.loadedUnitId$.subscribe((unitId) => {
|
|
1243
1239
|
if (unitId) {
|
|
1244
|
-
const workbook = this._univerInstanceService.
|
|
1240
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
1245
1241
|
const sheet = workbook === null || workbook === void 0 ? void 0 : workbook.getActiveSheet();
|
|
1246
1242
|
if (sheet) this._registerRefRange(unitId, sheet.getSheetId());
|
|
1247
1243
|
}
|
|
@@ -1250,7 +1246,7 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1250
1246
|
_registerRefRange(unitId, subUnitId) {
|
|
1251
1247
|
var _this$_sheetsFilterSe;
|
|
1252
1248
|
this._disposableCollection.dispose();
|
|
1253
|
-
const workbook = this._univerInstanceService.
|
|
1249
|
+
const workbook = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET);
|
|
1254
1250
|
const workSheet = workbook === null || workbook === void 0 ? void 0 : workbook.getSheetBySheetId(subUnitId);
|
|
1255
1251
|
if (!workbook || !workSheet) return;
|
|
1256
1252
|
const range = (_this$_sheetsFilterSe = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe === void 0 ? void 0 : _this$_sheetsFilterSe.getRange();
|
|
@@ -1318,9 +1314,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1318
1314
|
};
|
|
1319
1315
|
}
|
|
1320
1316
|
handleInsertColCommand(range, unitId, subUnitId) {
|
|
1321
|
-
var _filterModel$getRange;
|
|
1322
1317
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1323
|
-
const filterRange = (
|
|
1318
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1324
1319
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1325
1320
|
const { startColumn, endColumn } = filterRange;
|
|
1326
1321
|
const { startColumn: insertStartColumn, endColumn: insertEndColumn } = range;
|
|
@@ -1363,9 +1358,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1363
1358
|
};
|
|
1364
1359
|
}
|
|
1365
1360
|
_handleInsertRowCommand(config, unitId, subUnitId) {
|
|
1366
|
-
var _filterModel$getRange2;
|
|
1367
1361
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1368
|
-
const filterRange = (
|
|
1362
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1369
1363
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1370
1364
|
const { startRow, endRow } = filterRange;
|
|
1371
1365
|
const { startRow: insertStartRow, endRow: insertEndRow } = config.range;
|
|
@@ -1401,9 +1395,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1401
1395
|
};
|
|
1402
1396
|
}
|
|
1403
1397
|
handleRemoveColCommand(range, unitId, subUnitId) {
|
|
1404
|
-
var _filterModel$getRange3;
|
|
1405
1398
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1406
|
-
const filterRange = (
|
|
1399
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1407
1400
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1408
1401
|
const { startColumn, endColumn } = filterRange;
|
|
1409
1402
|
const { startColumn: removeStartColumn, endColumn: removeEndColumn } = range;
|
|
@@ -1571,7 +1564,7 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1571
1564
|
});
|
|
1572
1565
|
} else {
|
|
1573
1566
|
var _this$_univerInstance;
|
|
1574
|
-
const worksheet = (_this$_univerInstance = this._univerInstanceService.
|
|
1567
|
+
const worksheet = (_this$_univerInstance = this._univerInstanceService.getUnit(unitId, UniverInstanceType.UNIVER_SHEET)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
|
|
1575
1568
|
if (!worksheet) return this._handleNull();
|
|
1576
1569
|
const hiddenRowCount = this._getFilteredRowCount(worksheet, removeStartRow, removeEndRow);
|
|
1577
1570
|
const afterStartRow = Math.min(startRow, removeStartRow);
|
|
@@ -1601,9 +1594,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1601
1594
|
return count;
|
|
1602
1595
|
}
|
|
1603
1596
|
handleMoveColsCommand({ fromRange, toRange }, unitId, subUnitId) {
|
|
1604
|
-
var _filterModel$getRange4;
|
|
1605
1597
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1606
|
-
const filterRange = (
|
|
1598
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1607
1599
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1608
1600
|
const { startColumn, endColumn } = filterRange;
|
|
1609
1601
|
if (fromRange.endColumn < startColumn && toRange.startColumn <= startColumn || fromRange.startColumn > endColumn && toRange.endColumn > endColumn) return this._handleNull();
|
|
@@ -1711,9 +1703,8 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1711
1703
|
};
|
|
1712
1704
|
}
|
|
1713
1705
|
_handleMoveRowsCommand(config, unitId, subUnitId) {
|
|
1714
|
-
var _filterModel$getRange5;
|
|
1715
1706
|
const filterModel = this._sheetsFilterService.getFilterModel(unitId, subUnitId);
|
|
1716
|
-
const filterRange = (
|
|
1707
|
+
const filterRange = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) ?? null;
|
|
1717
1708
|
if (!filterModel || !filterRange) return this._handleNull();
|
|
1718
1709
|
const { startRow, endRow } = filterRange;
|
|
1719
1710
|
const { fromRange, toRange } = config;
|
|
@@ -1974,9 +1965,9 @@ let SheetsFilterController = class SheetsFilterController extends Disposable {
|
|
|
1974
1965
|
}
|
|
1975
1966
|
_initRowFilteredInterceptor() {
|
|
1976
1967
|
this.disposeWithMe(this._sheetInterceptorService.intercept(INTERCEPTOR_POINT.ROW_FILTERED, { handler: (filtered, rowLocation) => {
|
|
1977
|
-
var _this$_sheetsFilterSe2
|
|
1968
|
+
var _this$_sheetsFilterSe2;
|
|
1978
1969
|
if (filtered) return true;
|
|
1979
|
-
return (_this$_sheetsFilterSe2 =
|
|
1970
|
+
return ((_this$_sheetsFilterSe2 = this._sheetsFilterService.getFilterModel(rowLocation.unitId, rowLocation.subUnitId)) === null || _this$_sheetsFilterSe2 === void 0 ? void 0 : _this$_sheetsFilterSe2.isRowFiltered(rowLocation.row)) ?? false;
|
|
1980
1971
|
} }));
|
|
1981
1972
|
}
|
|
1982
1973
|
_moveCriteria(unitId, subUnitId, target, step) {
|
|
@@ -2179,10 +2170,7 @@ let SheetsFilterSyncController = class SheetsFilterSyncController extends Dispos
|
|
|
2179
2170
|
const config = this._configService.getConfig(SHEETS_FILTER_PLUGIN_CONFIG_KEY);
|
|
2180
2171
|
if (config === null || config === void 0 ? void 0 : config.enableSyncSwitch) {
|
|
2181
2172
|
this._visible$.next(true);
|
|
2182
|
-
if (typeof config.enableSyncSwitch === "object")
|
|
2183
|
-
var _config$enableSyncSwi;
|
|
2184
|
-
this.setEnabled((_config$enableSyncSwi = config.enableSyncSwitch.defaultValue) !== null && _config$enableSyncSwi !== void 0 ? _config$enableSyncSwi : true);
|
|
2185
|
-
}
|
|
2173
|
+
if (typeof config.enableSyncSwitch === "object") this.setEnabled(config.enableSyncSwitch.defaultValue ?? true);
|
|
2186
2174
|
}
|
|
2187
2175
|
}
|
|
2188
2176
|
setEnabled(enabled) {
|
|
@@ -2228,7 +2216,7 @@ SheetsFilterSyncController = __decorate([
|
|
|
2228
2216
|
//#endregion
|
|
2229
2217
|
//#region package.json
|
|
2230
2218
|
var name = "@univerjs/sheets-filter";
|
|
2231
|
-
var version = "1.0.0-
|
|
2219
|
+
var version = "1.0.0-beta.0";
|
|
2232
2220
|
|
|
2233
2221
|
//#endregion
|
|
2234
2222
|
//#region src/services/sheet-filter-formula.service.ts
|
|
@@ -2275,8 +2263,8 @@ let SheetsFilterFormulaService = class SheetsFilterFormulaService extends Dispos
|
|
|
2275
2263
|
}
|
|
2276
2264
|
_registerSheetRowFiltered() {
|
|
2277
2265
|
this._sheetRowFilteredService.register((unitId, subUnitId, row) => {
|
|
2278
|
-
var _this$_sheetsFilterSe2
|
|
2279
|
-
return (_this$_sheetsFilterSe2 =
|
|
2266
|
+
var _this$_sheetsFilterSe2;
|
|
2267
|
+
return ((_this$_sheetsFilterSe2 = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe2 === void 0 ? void 0 : _this$_sheetsFilterSe2.isRowFiltered(row)) ?? false;
|
|
2280
2268
|
});
|
|
2281
2269
|
}
|
|
2282
2270
|
};
|
|
@@ -2318,7 +2306,11 @@ _defineProperty(UniverSheetsFilterPlugin, "type", UniverInstanceType.UNIVER_SHEE
|
|
|
2318
2306
|
_defineProperty(UniverSheetsFilterPlugin, "pluginName", SHEET_FILTER_SNAPSHOT_ID);
|
|
2319
2307
|
_defineProperty(UniverSheetsFilterPlugin, "packageName", name);
|
|
2320
2308
|
_defineProperty(UniverSheetsFilterPlugin, "version", version);
|
|
2321
|
-
UniverSheetsFilterPlugin = __decorate([
|
|
2309
|
+
UniverSheetsFilterPlugin = __decorate([
|
|
2310
|
+
DependentOn(UniverFormulaEnginePlugin, UniverSheetsPlugin),
|
|
2311
|
+
__decorateParam(1, Inject(Injector)),
|
|
2312
|
+
__decorateParam(2, IConfigService)
|
|
2313
|
+
], UniverSheetsFilterPlugin);
|
|
2322
2314
|
|
|
2323
2315
|
//#endregion
|
|
2324
2316
|
export { ClearSheetsFilterCriteriaCommand, CustomFilterOperator, FILTER_MUTATIONS, FilterBy, FilterColumn, FilterModel, ReCalcSheetsFilterCommand, ReCalcSheetsFilterMutation, RemoveSheetFilterCommand, RemoveSheetsFilterMutation, SHEET_FILTER_SNAPSHOT_ID, SetSheetFilterRangeCommand, SetSheetsFilterCriteriaCommand, SetSheetsFilterCriteriaMutation, SetSheetsFilterRangeMutation, SheetsFilterService, SheetsFilterSyncController, SmartToggleSheetsFilterCommand, UniverSheetsFilterPlugin, equals, getCustomFilterFn, greaterThan, greaterThanOrEqualTo, lessThan, lessThanOrEqualTo, notEquals };
|
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/sheets"),require("rxjs"),require("@univerjs/engine-render"),require("@univerjs/rpc"),require("@univerjs/engine-formula")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-render`,`@univerjs/rpc`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsFilter={},e.UniverCore,e.UniverSheets,e.rxjs,e.UniverEngineRender,e.UniverRpc,e.UniverEngineFormula))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let s=`sheet.mutation.set-filter-range`,c=`sheet.mutation.set-filter-criteria`,l=`sheet.mutation.remove-filter`,u=`sheet.mutation.re-calc-filter`,d=new Set([s,c,l,u]),f=function(e){return e[e.VALUES=0]=`VALUES`,e[e.COLORS=1]=`COLORS`,e[e.CONDITIONS=2]=`CONDITIONS`,e}({}),p=function(e){return e.EQUAL=`equal`,e.GREATER_THAN=`greaterThan`,e.GREATER_THAN_OR_EQUAL=`greaterThanOrEqual`,e.LESS_THAN=`lessThan`,e.LESS_THAN_OR_EQUAL=`lessThanOrEqual`,e.NOT_EQUALS=`notEqual`,e}({}),m={operator:`greaterThan`,fn:(e,t)=>C(e)?e>t:!1},h={operator:`greaterThanOrEqual`,fn:(e,t)=>C(e)?e>=t:!1},g={operator:`lessThan`,fn:(e,t)=>C(e)?e<t:!1},_={operator:`lessThanOrEqual`,fn:(e,t)=>C(e)?e<=t:!1},v={operator:`equal`,fn:(e,t)=>C(e)?e===t:!1},y={operator:`notEqual`,fn:(e,n)=>{if(typeof n==`string`){if(n===` `)return e!=null;let r=T(e);return r&&te(n)?!t.regexp.createFromWildcard(n).test(r):r!==n}return C(e)?e!==n:!0}},b=new Map([]);[m,h,g,_,v,y].forEach(e=>{b.set(e.operator,e)});function ee(e){return!!e}let x={fn:(e,n)=>{let r=T(e);return r===null?n===``:t.regexp.createFromWildcard(n).test(r)}};function S(e){return e?b.get(e):x}function C(e){return typeof e==`number`}function w(e){return!!(typeof e==`number`||typeof e==`string`&&(0,t.isNumeric)(e))}function T(e){return typeof e==`boolean`||e==null?null:typeof e==`string`?e:e.toString()}function te(e){return typeof e==`number`?!1:e.indexOf(`*`)!==-1||e.indexOf(`?`)!==-1}function E(e){"@babel/helpers - typeof";return E=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},E(e)}function ne(e,t){if(E(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(E(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function D(e){var t=ne(e,`string`);return E(t)==`symbol`?t:t+``}function O(e,t,n){return(t=D(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let k=()=>new Set;var A=class e extends t.Disposable{get filteredOutRows(){return this._filteredOutRows$.getValue()}set filteredOutRows(e){this._alreadyFilteredOutRows=e,this._filteredOutRows$.next(e)}constructor(e,t,n){super(),this.unitId=e,this.subUnitId=t,this._worksheet=n,O(this,`_filteredOutRows$`,new r.BehaviorSubject(k())),O(this,`filteredOutRows$`,this._filteredOutRows$.asObservable()),O(this,`_hasCriteria$`,new r.BehaviorSubject(!1)),O(this,`hasCriteria$`,this._hasCriteria$.asObservable()),O(this,`_filterColumnByIndex`,new Map),O(this,`_alreadyFilteredOutRows`,k()),O(this,`_range`,void 0)}dispose(){super.dispose(),this._filteredOutRows$.complete(),this._hasCriteria$.complete(),this._worksheet=null}serialize(){let e={ref:t.Rectangle.clone(this._range),filterColumns:this._getAllFilterColumns(!0).sort(([e],[t])=>e-t).map(([e,t])=>t.serialize())};return this._alreadyFilteredOutRows&&(e.cachedFilteredOut=Array.from(this._alreadyFilteredOutRows).sort()),e}static deserialize(t,n,r,i){let a=new e(t,n,r);return a._dump(i),a}_dump(e){var t;this.setRange(e.ref),(t=e.filterColumns)==null||t.filter(e=>!(!e.filters&&!e.colorFilters&&!e.customFilters)).forEach(e=>this._setCriteriaWithoutReCalc(e.colId,e)),e.cachedFilteredOut?(this._alreadyFilteredOutRows=new Set(e.cachedFilteredOut),this._emit()):e.filterColumns&&e.filterColumns.length>0&&(this._reCalcAllColumns(),this._emit()),this._emitHasCriteria()}isRowFiltered(e){return this._alreadyFilteredOutRows.has(e)}getRange(){if(!this._range)throw Error(`[FilterModel] could not get range before a range is set!`);return this._range}getFilteredOutRowsExceptCol(e){return this._getAllFilterColumns(!0).filter(([t])=>t!==e).reduce((e,[,n])=>{let r=n.calc({getAlreadyFilteredOutRows:()=>e});return r?(0,t.mergeSets)(e,r):e},new Set)}setRange(e){this._range=e,this._getAllFilterColumns(!0).forEach(([t,n])=>{n.setRangeAndColumn({startRow:e.startRow,endRow:e.endRow,startColumn:t,endColumn:t},t)})}setCriteria(e,t,n=!1){if(!this._range)throw Error(`[FilterModel] could not set criteria before a range is set!`);if(!t){this._removeCriteria(e),this._rebuildAlreadyFilteredOutRowsWithCache(),n&&this._reCalcAllColumns(),this._emit(),this._emitHasCriteria();return}this._setCriteriaWithoutReCalc(e,t),n&&(this._rebuildAlreadyFilteredOutRowsWithCache(),this._getAllFilterColumns().forEach(e=>e.__clearCache()),this._reCalcWithNoCacheColumns(),this._emit(),this._emitHasCriteria())}getAllFilterColumns(){return this._getAllFilterColumns(!0)}getFilterColumn(e){var t;return(t=this._filterColumnByIndex.get(e))==null?null:t}reCalc(){this._reCalcAllColumns(),this._emit()}_getAllFilterColumns(e=!1){let t=Array.from(this._filterColumnByIndex.entries());return e?t:t.map(([e,t])=>t)}_reCalcAllColumns(){this._alreadyFilteredOutRows=k(),this._getAllFilterColumns().forEach(e=>e.__clearCache()),this._reCalcWithNoCacheColumns()}_setCriteriaWithoutReCalc(e,t){let n=this._range;if(!n)throw Error(`[FilterModel] could not set criteria before a range is set!`);let{startColumn:r,endColumn:i}=n;if(e>i||e<r)throw Error(`[FilterModel] could not set criteria on column ${e} which is out of range!`);let a;this._filterColumnByIndex.has(e)?a=this._filterColumnByIndex.get(e):(a=new j(this.unitId,this.subUnitId,this._worksheet,t,{getAlreadyFilteredOutRows:()=>this._alreadyFilteredOutRows}),a.setRangeAndColumn(n,e),this._filterColumnByIndex.set(e,a)),a.setCriteria(t)}_removeCriteria(e){let t=this._filterColumnByIndex.get(e);t&&(t.dispose(),this._filterColumnByIndex.delete(e))}_emit(){this._filteredOutRows$.next(this._alreadyFilteredOutRows)}_emitHasCriteria(){this._hasCriteria$.next(this._filterColumnByIndex.size>0)}_rebuildAlreadyFilteredOutRowsWithCache(){let e=this._getAllFilterColumns().filter(e=>e.hasCache()).reduce((e,n)=>(0,t.mergeSets)(e,n.filteredOutRows),new Set);this._alreadyFilteredOutRows=e}_reCalcWithNoCacheColumns(){let e=this._getAllFilterColumns().filter(e=>!e.hasCache());for(let n of e){let e=n.reCalc();e&&(this._alreadyFilteredOutRows=(0,t.mergeSets)(this._alreadyFilteredOutRows,e))}}},j=class extends t.Disposable{get filteredOutRows(){return this._filteredOutRows}get filterBy(){return this._filterBy}constructor(e,t,n,r,i){super(),this.unitId=e,this.subUnitId=t,this._worksheet=n,this._criteria=r,this._filterColumnContext=i,O(this,`_filteredOutRows`,null),O(this,`_filterFn`,null),O(this,`_range`,null),O(this,`_column`,0),O(this,`_filterBy`,0)}dispose(){super.dispose(),this._filteredOutRows=null}__clearCache(){this._filteredOutRows=null}serialize(){if(!this._criteria)throw Error(`[FilterColumn]: could not serialize without a filter column!`);return t.Tools.deepClone({...this._criteria,colId:this._column})}hasCache(){return this._filteredOutRows!==null}setRangeAndColumn(e,t){this._range=e,this._column=t}setCriteria(e){this._criteria=e,this._generateFilterFn(),this._filteredOutRows=null}getColumnData(){return t.Tools.deepClone(this._criteria)}reCalc(){return this._filteredOutRows=this.calc(this._filterColumnContext),this._filteredOutRows}calc(e){if(!this._filterFn)throw Error(`[FilterColumn] cannot calculate without a filter fn!`);if(!this._range)throw Error(`[FilterColumn] cannot calculate without a range!`);if(typeof this._column!=`number`)throw TypeError(`[FilterColumn] cannot calculate without a column offset!`);let n=this._column,r={startColumn:n,endColumn:n,startRow:this._range.startRow+1,endRow:this._range.endRow},i=new Set,a=e.getAlreadyFilteredOutRows();for(let e of this._worksheet.iterateByColumn(r,!1,!1)){let{row:n,rowSpan:r,col:o}=e;if(!(a.has(n)&&(!r||r===1))&&!(this._filterBy===0?this._filterFn((0,t.extractPureTextFromCell)(this._worksheet.getCell(n,o))):this._filterBy===1?this._filterFn(this._worksheet.getComposedCellStyle(n,o)):this._filterFn(de(this._worksheet,n,o)))&&(i.add(n),r))for(let e=1;e<r;e++)i.add(n+e)}return i}_generateFilterFn(){this._criteria&&(this._filterFn=re(this._criteria),this._filterBy=this._criteria.filters?0:this._criteria.colorFilters?1:2)}};function re(e){if(e.filters)return ie(e.filters);if(e.colorFilters)return ae(e.colorFilters);if(e.customFilters)return oe(e.customFilters);throw Error(`[FilterModel]: other types of filters are not supported yet.`)}function ie(e){let t=!!e.blank,n=new Set(e.filters);return e=>e===void 0||e===``?t:n.has(typeof e==`string`?e:`${e}`)}function ae(e){if(e.cellFillColors){let n=new Set(e.cellFillColors);return e=>{var r;if(!e||!((r=e.bg)!=null&&r.rgb))return!!n.has(null);let i=new t.ColorKit(e.bg.rgb).toRgbString();return n.has(i)}}if(e.cellTextColors){let n=new Set(e.cellTextColors);return e=>{var r;if(!e||!((r=e.cl)!=null&&r.rgb))return!!n.has(i.COLOR_BLACK_RGB);let a=new t.ColorKit(e.cl.rgb).toRgbString();return n.has(a)}}throw Error(`[FilterModel]: color filters are not supported yet.`)}function oe(e){let t=e.customFilters.map(e=>ue(e));return le(t)?e.and?se(t):ce(t):t[0]}function se(e){let[t,n]=e;return e=>t(e)&&n(e)}function ce(e){let[t,n]=e;return e=>t(e)||n(e)}function le(e){return e.length===2}function ue(e){let t=e.val;if(e.operator===`notEqual`&&!w(t))return e=>y.fn(e,t);if(ee(e.operator)){if(!w(t))return()=>!1;let n=S(e.operator),r=Number(t);return e=>n.fn(e,r)}let n=S(e.operator);return e=>n.fn(e,t)}function de(e,n,r){let i=e.getCell(n,r);if(!i)return null;let a=e.getCellRaw(n,r);return i&&!a?M(i):a?i.t===t.CellValueType.NUMBER&&typeof i.v==`string`?a.v:i.t===t.CellValueType.NUMBER?Number(a.v):M(a):null}function M(e){var n;let r=(n=e.p)==null||(n=n.body)==null?void 0:n.dataStream;if(r)return r.trimEnd();let i=e.v;return typeof i==`string`?e.t===t.CellValueType.BOOLEAN?i.toUpperCase():i:typeof i==`number`?e.t===t.CellValueType.BOOLEAN?i?`TRUE`:`FALSE`:i:typeof i==`boolean`?i?`TRUE`:`FALSE`:``}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=`SHEET_FILTER_PLUGIN`,I=class extends t.Disposable{get activeFilterModel(){return this._activeFilterModel$.getValue()}constructor(e,t,n){super(),this._resourcesManagerService=e,this._univerInstanceService=t,this._commandService=n,O(this,`_filterModels`,new Map),O(this,`_loadedUnitId$`,new r.BehaviorSubject(null)),O(this,`loadedUnitId$`,this._loadedUnitId$.asObservable()),O(this,`_errorMsg$`,new r.BehaviorSubject(null)),O(this,`errorMsg$`,this._errorMsg$.asObservable()),O(this,`_activeFilterModel$`,new r.BehaviorSubject(null)),O(this,`activeFilterModel$`,this._activeFilterModel$.asObservable()),this._initModel(),this._initActiveFilterModel()}ensureFilterModel(e,t){let n=this.getFilterModel(e,t);if(n)return n;let r=this._univerInstanceService.getUniverSheetInstance(e);if(!r)throw Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing workbook ${e}!`);let i=r.getSheetBySheetId(t);if(!i)throw Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing worksheet ${t}!`);let a=new A(e,t,i);return this._cacheFilterModel(e,t,a),a}getFilterModel(e,t){var n,r;return(n=(r=this._filterModels.get(e))==null?void 0:r.get(t))==null?null:n}removeFilterModel(e,t){let n=this.getFilterModel(e,t);return n?(n.dispose(),this._filterModels.get(e).delete(t),!0):!1}setFilterErrorMsg(e){this._errorMsg$.next(e)}_updateActiveFilterModel(){let e;try{if(e=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),!e){this._activeFilterModel$.next(null);return}}catch(e){console.error(`[SheetsFilterService]: could not get active workbook!`,e);return}let n=e.getActiveSheet(!0);if(!n){this._activeFilterModel$.next(null);return}let r=n.getUnitId(),i=n.getSheetId(),a=this.getFilterModel(r,i);this._activeFilterModel$.next(a)}_initActiveFilterModel(){this.disposeWithMe((0,r.merge)((0,t.fromCallback)(this._commandService.onCommandExecuted.bind(this._commandService)).pipe((0,r.filter)(([e])=>e.type===t.CommandType.MUTATION&&d.has(e.id))),this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,r.switchMap)(e=>{var t;return(t=e==null?void 0:e.activeSheet$)==null?(0,r.of)(null):t}))).subscribe(()=>this._updateActiveFilterModel()))}_serializeAutoFiltersForUnit(e){let t=this._filterModels.get(e);if(!t)return`{}`;let n={};return t.forEach((e,t)=>{n[t]=e.serialize()}),JSON.stringify(n)}_deserializeAutoFiltersForUnit(e,t){let n=this._univerInstanceService.getUniverSheetInstance(e);Object.keys(t).forEach(r=>{let i=t[r],a=A.deserialize(e,r,n.getSheetBySheetId(r),i);this._cacheFilterModel(e,r,a)})}dispose(){super.dispose(),this._loadedUnitId$.complete(),this._errorMsg$.complete(),this._activeFilterModel$.complete(),this._filterModels.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._filterModels.clear()}_initModel(){this._resourcesManagerService.registerPluginResource({pluginName:F,businesses:[t.UniverInstanceType.UNIVER_SHEET],toJson:e=>this._serializeAutoFiltersForUnit(e),parseJson:e=>JSON.parse(e),onLoad:(e,t)=>{this._deserializeAutoFiltersForUnit(e,t),this._loadedUnitId$.next(e),this._updateActiveFilterModel()},onUnLoad:e=>{let t=this._filterModels.get(e);t&&(t.forEach(e=>e.dispose()),this._filterModels.delete(e))}})}_cacheFilterModel(e,t,n){this._filterModels.has(e)||this._filterModels.set(e,new Map),this._filterModels.get(e).set(t,n)}};I=P([N(0,t.IResourceManagerService),N(1,t.IUniverInstanceService),N(2,t.ICommandService)],I);let L={id:s,type:t.CommandType.MUTATION,handler:(e,t)=>{let{subUnitId:n,unitId:r,range:i}=t;return e.get(I).ensureFilterModel(r,n).setRange(i),!0}},R={id:c,type:t.CommandType.MUTATION,handler:(e,t)=>{let{subUnitId:n,unitId:r,criteria:i,col:a,reCalc:o=!0}=t,s=e.get(I).getFilterModel(r,n);return s?(s.setCriteria(a,i,o),!0):!1}},z={id:l,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r}=t;return e.get(I).removeFilterModel(n,r)}},B={id:u,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r}=t,i=e.get(I).getFilterModel(n,r);return i?(i.reCalc(),!0):!1}},V={id:`sheet.command.set-filter-range`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(I),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),{unitId:c,subUnitId:l,range:u}=r;if(!(0,n.getSheetCommandTarget)(s,r)||i.getFilterModel(c,l))return!1;if(u.endRow===u.startRow){let n=e.get(t.ErrorService),r=e.get(t.LocaleService);return n.emit(r.t(`sheets-filter.command.not-valid-filter-range`)),!1}let d={id:L.id,params:{unitId:c,subUnitId:l,range:u}},f=a.syncExecuteCommand(d.id,d.params);return f&&o.pushUndoRedo({unitID:c,undoMutations:[{id:z.id,params:{unitId:c,subUnitId:l}}],redoMutations:[d]}),f}},H={id:`sheet.command.remove-sheet-filter`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!i)return!1;let a=e.get(I),{unitId:o,subUnitId:s}=i,c=a.getFilterModel(o,s);if(!c)return!1;let l=c.getRange();if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=pe(o,s,c.serialize()),p=u.syncExecuteCommand(z.id,{unitId:o,subUnitId:s});return p&&(d.pushUndoRedo({unitID:o,undoMutations:f,redoMutations:[{id:z.id,params:{unitId:o,subUnitId:s}}]}),u.executeCommand(n.MarkDirtyFilterChangeMutation.id,{unitId:o,subUnitId:s,filterRange:l})),p}},fe={id:`sheet.command.smart-toggle-filter`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.IUniverInstanceService),i=e.get(I),a=e.get(t.ICommandService),o=r.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),s=o==null?void 0:o.getActiveSheet();if(!s||!o)return!1;let c=o.getUnitId(),l=s.getSheetId();if(i.getFilterModel(c,l))return a.executeCommand(H.id,{unitId:c,subUnitId:l});let u=e.get(n.SheetsSelectionsService).getCurrentLastSelection();if(!u)return!1;let d=u.range,f=(0,n.isSingleCellSelection)(u)?(0,n.expandToContinuousRange)(d,{left:!0,right:!0,up:!0,down:!0},s):d.startRow===d.endRow?(0,n.expandToContinuousRange)(d,{down:!0},s):d;return a.executeCommand(V.id,{unitId:c,subUnitId:l,range:f})}},U={id:`sheet.command.set-filter-criteria`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!i)return!1;let a=e.get(I),{unitId:o,subUnitId:s}=i,c=a.getFilterModel(o,s);if(!c)return!1;let{col:l,criteria:u}=r,d=c.getRange();if(!d||l<d.startColumn||l>d.endColumn)return!1;let f=e.get(t.ICommandService),p=e.get(t.IUndoRedoService),m=he(o,s,l,c.getFilterColumn(l)),h={id:R.id,params:{unitId:o,subUnitId:s,col:l,criteria:u}},g=f.syncExecuteCommand(h.id,h.params);return g&&(p.pushUndoRedo({unitID:o,undoMutations:[m],redoMutations:[h]}),f.executeCommand(n.MarkDirtyFilterChangeMutation.id,{unitId:o,subUnitId:s,filterRange:d})),g}},W={id:`sheet.command.clear-filter-criteria`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!i)return!1;let a=e.get(I),{unitId:o,subUnitId:s}=i,c=a.getFilterModel(o,s);if(!c)return!1;let l=c.getRange();if(!l)return!1;let u=e.get(t.IUndoRedoService),d=e.get(t.ICommandService),f=c.serialize(),p=K(o,s,f),m=me(o,s,f);return(0,t.sequenceExecute)(m,d).result?(u.pushUndoRedo({unitID:o,undoMutations:p,redoMutations:m}),d.executeCommand(n.MarkDirtyFilterChangeMutation.id,{unitId:o,subUnitId:s,filterRange:l}),!0):!1}},G={id:`sheet.command.re-calc-filter`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(I),a=e.get(t.ICommandService),o=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!o)return!1;let{unitId:s,subUnitId:c}=o;return i.getFilterModel(o.unitId,o.subUnitId)?a.executeCommand(B.id,{unitId:s,subUnitId:c}):!1}};function pe(e,t,n){let r=[],i={id:L.id,params:{unitId:e,subUnitId:t,range:n.ref}};return r.push(i),K(e,t,n).forEach(e=>r.push(e)),r}function K(e,t,n){var r;let i=[];return(r=n.filterColumns)==null||r.forEach(n=>{let r={id:R.id,params:{unitId:e,subUnitId:t,col:n.colId,criteria:n}};i.push(r)}),i}function me(e,t,n){var r;let i=[];return(r=n.filterColumns)==null||r.forEach(n=>{let r={id:R.id,params:{unitId:e,subUnitId:t,col:n.colId,criteria:null}};i.push(r)}),i}function he(e,t,n,r){if(!r)return{id:R.id,params:{unitId:e,subUnitId:t,col:n,criteria:null}};let i=r.serialize();return{id:R.id,params:{unitId:e,subUnitId:t,col:n,criteria:i}}}let q=`sheets-filter.config`,J={};function ge(e,t){for(let n=0;n<e.length;n++){let r=n;if(e[n])for(let i=n+1;i<e.length;i++)e[r]&&e[i]&&t(e[r],e[i])&&(e[r]=null,r=i)}return e.filter(e=>e!==null)}function Y(e){return ge(e,(e,t)=>e.id===R.id&&t.id===R.id&&e.params.unitId===t.params.unitId&&e.params.subUnitId===t.params.subUnitId&&e.params.col===t.params.col)}let X=class extends t.Disposable{constructor(e,n,r,i,a,o,s){super(),this._commandService=e,this._sheetInterceptorService=n,this._sheetsFilterService=r,this._univerInstanceService=i,this._refRangeService=a,this._dataSyncPrimaryController=o,this._zebraCrossingCacheController=s,O(this,`_disposableCollection`,new t.DisposableCollection),this._initCommands(),this._initRowFilteredInterceptor(),this._initInterceptors(),this._commandExecutedListener(),this._initErrorHandling(),this._initZebraCrossingCacheListener()}_initZebraCrossingCacheListener(){this.disposeWithMe(this._sheetsFilterService.activeFilterModel$.subscribe(e=>{e&&this.disposeWithMe(e.filteredOutRows$.subscribe(()=>{this._zebraCrossingCacheController.updateZebraCrossingCache(e.unitId,e.subUnitId)}))}))}_initCommands(){[V,H,U,W,G].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))}),[R,L,B,z].forEach(e=>{var t;this.disposeWithMe(this._commandService.registerCommand(e)),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)})}_initInterceptors(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>this._getUpdateFilter(e)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===n.SetWorksheetActiveOperation.id){let t=e.params,n=t.subUnitId,r=t.unitId;if(!n||!r)return;this._registerRefRange(r,n)}if(e.id===L.id){let t=e.params,n=t.subUnitId,r=t.unitId;if(!n||!r)return;this._registerRefRange(t.unitId,t.subUnitId)}})),this.disposeWithMe(this._sheetsFilterService.loadedUnitId$.subscribe(e=>{if(e){let t=this._univerInstanceService.getUniverSheetInstance(e),n=t==null?void 0:t.getActiveSheet();n&&this._registerRefRange(e,n.getSheetId())}}))}_registerRefRange(e,t){var r;this._disposableCollection.dispose();let i=this._univerInstanceService.getUniverSheetInstance(e),a=i==null?void 0:i.getSheetBySheetId(t);if(!i||!a)return;let o=(r=this._sheetsFilterService.getFilterModel(e,t))==null?void 0:r.getRange();o&&this._disposableCollection.add(this._refRangeService.registerRefRange(o,r=>{switch(r.id){case n.InsertRowCommand.id:{let n=r.params,i=n.unitId||e,a=n.subUnitId||t;return this._handleInsertRowCommand(n,i,a)}case n.InsertColCommand.id:{let n=r.params,i=n.unitId||e,a=n.subUnitId||t;return this.handleInsertColCommand(n.range,i,a)}case n.RemoveColCommand.id:{let n=r.params;return this.handleRemoveColCommand(n.range,e,t)}case n.RemoveRowCommand.id:{let n=r.params;return this._handleRemoveRowCommand(n,e,t)}case n.EffectRefRangId.MoveColsCommandId:{let n=r.params;return this.handleMoveColsCommand({fromRange:n.fromRange,toRange:n.toRange},e,t)}case n.EffectRefRangId.MoveRowsCommandId:{let n=r.params;return this._handleMoveRowsCommand(n,e,t)}case n.MoveRangeCommand.id:{let n=r.params;return this._handleMoveRangeCommand(n,e,t)}}return{redos:[],undos:[]}},e,t))}_getUpdateFilter(e){let{id:t}=e;switch(t){case n.RemoveSheetCommand.id:{let t=e.params;return this._handleRemoveSheetCommand(t,t.unitId,t.subUnitId)}case n.CopySheetCommand.id:{let{targetSubUnitId:t,unitId:n,subUnitId:r}=e.params;return!n||!r||!t?this._handleNull():this._handleCopySheetCommand(n,r,t)}}return{redos:[],undos:[]}}handleInsertColCommand(e,t,n){var r;let i=this._sheetsFilterService.getFilterModel(t,n),a=(r=i==null?void 0:i.getRange())==null?null:r;if(!i||!a)return this._handleNull();let{startColumn:o,endColumn:s}=a,{startColumn:c,endColumn:l}=e,u=l-c+1;if(l>s)return this._handleNull();let d=[],f=[],p=c,m={unitId:t,subUnitId:n,range:{...a,startColumn:c<=o?o+u:o,endColumn:s+u}},h={unitId:t,subUnitId:n,range:a};d.push({id:L.id,params:m}),f.push({id:L.id,params:h});let g=i.getAllFilterColumns().filter(e=>e[0]>=p);if(g.length!==0){let{newRange:e,oldRange:r}=this._moveCriteria(t,n,g,u);d.push(...r.redos,...e.redos),f.push(...e.undos,...r.undos)}return{redos:Y(d),undos:Y(f)}}_handleInsertRowCommand(e,t,n){var r;let i=this._sheetsFilterService.getFilterModel(t,n),a=(r=i==null?void 0:i.getRange())==null?null:r;if(!i||!a)return this._handleNull();let{startRow:o,endRow:s}=a,{startRow:c,endRow:l}=e.range,u=l-c+1;if(l>s)return this._handleNull();let d=[],f=[],p={unitId:t,subUnitId:n,range:{...a,startRow:c<=o?o+u:o,endRow:s+u}},m={unitId:t,subUnitId:n,range:a};return d.push({id:L.id,params:p}),f.push({id:L.id,params:m}),{redos:Y(d),undos:Y(f)}}handleRemoveColCommand(e,t,n){var r;let i=this._sheetsFilterService.getFilterModel(t,n),a=(r=i==null?void 0:i.getRange())==null?null:r;if(!i||!a)return this._handleNull();let{startColumn:o,endColumn:s}=a,{startColumn:c,endColumn:l}=e;if(c>s)return this._handleNull();let u=[],d=[],f=l<o?0:Math.min(l,s)-Math.max(c,o)+1,p=l-c+1,m=i.getAllFilterColumns();m.forEach(e=>{let[r,i]=e;r<=l&&r>=c&&(u.push({id:R.id,params:{unitId:t,subUnitId:n,col:r,criteria:null}}),d.push({id:R.id,params:{unitId:t,subUnitId:n,col:r,criteria:{...i.serialize(),colId:r}}}))});let h=m.filter(e=>{let[t,n]=e;return t>l}),g={undos:[],redos:[]};if(h.length>0){let{oldRange:e,newRange:r}=this._moveCriteria(t,n,h,-p);g=r,u.push(...e.redos),d.unshift(...e.undos)}if(f===s-o+1){let e={unitId:t,subUnitId:n};u.push({id:z.id,params:e}),d.unshift({id:L.id,params:{range:a,unitId:t,subUnitId:n}})}else{let e=o<=c?o:f===0?o-p:c,r=o<=c?s-f:s-p,i={unitId:t,subUnitId:n,range:{...a,startColumn:e,endColumn:r}};u.push({id:L.id,params:i}),d.unshift({id:L.id,params:{range:a,unitId:t,subUnitId:n}}),u.push(...g.redos),d.unshift(...g.undos)}return{undos:d,redos:u}}_handleRemoveRowCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(t,n);if(!r)return this._handleNull();let i=r.getRange(),{startRow:a,endRow:o}=i,{startRow:s,endRow:c}=e.range;if(s>o)return this._handleNull();if(c<a)return{undos:[{id:L.id,params:{range:i,unitId:t,subUnitId:n}}],redos:[{id:L.id,params:{range:{...i,startRow:a-(c-s+1),endRow:o-(c-s+1)},unitId:t,subUnitId:n}}]};let l=[],u=[],d=r.getAllFilterColumns(),f=a<=c&&a>=s;u.push({id:L.id,params:{range:i,unitId:t,subUnitId:n}});let p=Math.min(c,o)-Math.max(s,a)+1;if(p===o-a+1||f){let e={unitId:t,subUnitId:n};l.push({id:z.id,params:e}),d.forEach(e=>{let[r,i]=e,a={unitId:t,subUnitId:n,col:r,criteria:{...i.serialize(),colId:r}};u.push({id:R.id,params:a})})}else{var m;let e=(m=this._univerInstanceService.getUniverSheetInstance(t))==null?void 0:m.getSheetBySheetId(n);if(!e)return this._handleNull();let r=this._getFilteredRowCount(e,s,c),u=Math.min(a,s),d=u+(o-a)-p+r,f={unitId:t,subUnitId:n,range:{...i,startRow:u,endRow:d}};l.push({id:L.id,params:f})}return{undos:Y(u),redos:Y(l)}}_getFilteredRowCount(e,t,n){let r=0;for(let i=t;i<=n;i++)e.getRowFiltered(i)&&r++;return r}handleMoveColsCommand({fromRange:e,toRange:n},r,i){var a;let o=this._sheetsFilterService.getFilterModel(r,i),s=(a=o==null?void 0:o.getRange())==null?null:a;if(!o||!s)return this._handleNull();let{startColumn:c,endColumn:l}=s;if(e.endColumn<c&&n.startColumn<=c||e.startColumn>l&&n.endColumn>l)return this._handleNull();let u=[],d=[],f={};for(let e=c;e<=l;e++)f[e]={colIndex:e,filter:o.getFilterColumn(e)};(0,t.moveMatrixArray)(e.startColumn,e.endColumn-e.startColumn+1,n.startColumn,f);let p=s.startColumn,m=s.endColumn;c>=e.startColumn&&c<=e.endColumn&&n.startColumn>e.startColumn&&e.endColumn<l&&(p=e.endColumn+1),l>=e.startColumn&&l<=e.endColumn&&n.startColumn<e.startColumn&&e.startColumn>c&&(m=e.startColumn-1);let h=Object.keys(f).map(e=>Number(e)),g=h.find(e=>f[e].colIndex===m),_=h.find(e=>f[e].colIndex===p);if(h.forEach(e=>{let{colIndex:t,filter:n}=f[e],a=e;if(n){var s;if(a>=_&&a<=g){var c;let e={unitId:r,subUnitId:i,col:a,criteria:{...n.serialize(),colId:a}},t={unitId:r,subUnitId:i,col:a,criteria:o.getFilterColumn(a)?{...(c=o.getFilterColumn(a))==null?void 0:c.serialize(),colId:a}:null};u.push({id:R.id,params:e}),d.push({id:R.id,params:t})}if(!((s=f[t])!=null&&s.filter)){let e={unitId:r,subUnitId:i,col:t,criteria:null};u.push({id:R.id,params:e}),d.push({id:R.id,params:{unitId:r,subUnitId:i,col:t,criteria:{...n.serialize(),colId:t}}})}}}),c!==_||l!==g){let e={unitId:r,subUnitId:i,range:{...s,startColumn:_,endColumn:g}};u.unshift({id:L.id,params:e}),d.unshift({id:L.id,params:{range:s,unitId:r,subUnitId:i}})}return{undos:d,redos:u}}_handleMoveRowsCommand(e,n,r){var i;let a=this._sheetsFilterService.getFilterModel(n,r),o=(i=a==null?void 0:a.getRange())==null?null:i;if(!a||!o)return this._handleNull();let{startRow:s,endRow:c}=o,{fromRange:l,toRange:u}=e;if(l.endRow<s&&u.startRow<=s||l.startRow>c&&u.endRow>c)return this._handleNull();let d=[],f=[],p={};for(let e=s;e<=c;e++)p[e]={oldIndex:e};let m=s,h=c;c>=l.startRow&&c<=l.endRow&&u.startRow<l.startRow&&l.startRow>s&&(h=l.startRow-1),(0,t.moveMatrixArray)(l.startRow,l.endRow-l.startRow+1,u.startRow,p);let g=Object.keys(p).map(e=>Number(e)),_=g.find(e=>p[e].oldIndex===h),v=g.find(e=>p[e].oldIndex===m);if(s!==v||c!==_){let e={unitId:n,subUnitId:r,range:{...o,startRow:v,endRow:_}};d.push({id:L.id,params:e},{id:B.id,params:{unitId:n,subUnitId:r}}),f.push({id:L.id,params:{range:o,unitId:n,subUnitId:r}},{id:B.id,params:{unitId:n,subUnitId:r}})}return{redos:d,undos:f}}_handleMoveRangeCommand(e,n,r){let{fromRange:i,toRange:a}=e,o=this._sheetsFilterService.getFilterModel(n,r);if(!o)return this._handleNull();let s=o.getRange();if(!s)return this._handleNull();let c=[],l=[];if(t.Rectangle.contains(i,s)){let e=s.startRow-i.startRow,t=s.startColumn-i.startColumn,u={startRow:a.startRow+e,startColumn:a.startColumn+t,endRow:a.startRow+e+(s.endRow-s.startRow),endColumn:a.startColumn+t+(s.endColumn-s.startColumn)},d={id:z.id,params:{unitId:n,subUnitId:r}},f={id:L.id,params:{unitId:n,subUnitId:r,range:u}},p={id:L.id,params:{unitId:n,subUnitId:r,range:s}};c.push(d,f),l.push(d,p);let m=o.getAllFilterColumns(),h=a.startColumn-i.startColumn;m.forEach(e=>{let[t,i]=e;i&&(c.push({id:R.id,params:{unitId:n,subUnitId:r,col:t+h,criteria:{...i.serialize(),colId:t+h}}}),l.push({id:R.id,params:{unitId:n,subUnitId:r,col:t,criteria:{...i.serialize(),colId:t}}}))})}else if(t.Rectangle.intersects(a,s)){let e={...s,endRow:Math.max(s.endRow,a.endRow)};c.push({id:L.id,params:{unitId:n,subUnitId:r,range:e}}),l.push({id:L.id,params:{unitId:n,subUnitId:r,range:s}})}return{redos:c,undos:l}}_handleRemoveSheetCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(t,n);if(!r)return this._handleNull();let i=r.getRange();if(!i)return this._handleNull();let a=[],o=[];return r.getAllFilterColumns().forEach(([e,r])=>{o.push({id:R.id,params:{unitId:t,subUnitId:n,col:e,criteria:{...r.serialize(),colId:e}}})}),a.push({id:z.id,params:{unitId:t,subUnitId:n,range:i}}),o.unshift({id:L.id,params:{range:i,unitId:t,subUnitId:n}}),{undos:o,redos:a}}_handleCopySheetCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(e,t);if(!r)return this._handleNull();let i=r.getRange();if(!i)return this._handleNull();let a=[],o=[],s=[];return r.getAllFilterColumns().forEach(([t,r])=>{a.push({id:R.id,params:{unitId:e,subUnitId:n,col:t,criteria:{...r.serialize(),colId:t}}}),s.push({id:R.id,params:{unitId:e,subUnitId:n,col:t,criteria:null}})}),s.push({id:z.id,params:{unitId:e,subUnitId:n,range:i}}),a.unshift({id:L.id,params:{range:i,unitId:e,subUnitId:n}}),{undos:o,redos:a,preUndos:s,preRedos:[]}}_handleNull(){return{redos:[],undos:[]}}_initRowFilteredInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.ROW_FILTERED,{handler:(e,t)=>{var n,r;return e?!0:(n=(r=this._sheetsFilterService.getFilterModel(t.unitId,t.subUnitId))==null?void 0:r.isRowFiltered(t.row))==null?!1:n}}))}_moveCriteria(e,t,n,r){let i={unitId:e,subUnitId:t,criteria:null,col:-1},a=[],o=[],s=[],c=[];return n.forEach(e=>{let[t,n]=e;o.push({id:R.id,params:{...i,col:t}}),a.push({id:R.id,params:{...i,col:t,criteria:{...n.serialize(),colId:t}}})}),n.forEach(e=>{let[t,n]=e;c.push({id:R.id,params:{...i,col:t+r,criteria:{...n.serialize(),colId:t+r}}}),s.push({id:R.id,params:{...i,col:t+r,criteria:null}})}),{newRange:{redos:c,undos:s},oldRange:{redos:o,undos:a}}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{let{unitId:r,subUnitId:i}=e.params||{},a=this._sheetsFilterService.getFilterModel(r,i);if(!a)return;let o=Array.from(a.filteredOutRows).sort((e,t)=>e-t),s=[],c=!1;if(e.id===n.RemoveRowMutation.id){let{startRow:t,endRow:n}=e.params.range,r=o.filter(e=>e>=t&&e<=n);o.forEach(e=>{if(e<t)s.push(e);else if(c=!0,e<=n){let e=Math.max(t,s.length?s[s.length-1]+1:t);s.push(e)}else s.push(e-(n-t+1-r.length))})}if(e.id===n.InsertRowMutation.id){let{startRow:t,endRow:n}=e.params.range;o.forEach(e=>{e>=t?(c=!0,s.push(e+(n-t+1))):s.push(e)})}if(c&&(a.filteredOutRows=new Set(s)),e.id===n.SetRangeValuesMutation.id&&!(t!=null&&t.onlyLocal)){let t=this._getExtendRegion(r,i);if(t){let a=e.params.cellValue;if(a)for(let e=t.startColumn;e<=t.endColumn;e++){var l;let o=a==null||(l=a[t.startRow])==null?void 0:l[e];if(o&&this._cellHasValue(o)){var u;let e=(u=this._univerInstanceService.getUnit(r))==null?void 0:u.getSheetBySheetId(i);if(e){let a=(0,n.expandToContinuousRange)(t,{down:!0},e),o=this._sheetsFilterService.getFilterModel(r,i),s=o.getRange();o.setRange({...s,endRow:a.endRow}),this._registerRefRange(r,i)}}}}}}))}_getExtendRegion(e,t){var n;let r=this._sheetsFilterService.getFilterModel(e,t);if(!r)return null;let i=(n=this._univerInstanceService.getUnit(e))==null?void 0:n.getSheetBySheetId(t);if(!i)return null;let a=r.getRange();if(!a)return null;let o=i.getRowCount()-1,s=i.getRowManager();for(let e=a.endRow+1;e<=o;e++)if(s.getRowRawVisible(e))return{startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn};return null}_initErrorHandling(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{let t=e.params,r=(0,n.getSheetCommandTarget)(this._univerInstanceService,t);if(!r)return;let{subUnitId:i,unitId:a}=r,o=this._sheetsFilterService.getFilterModel(a,i);if(!o)return;let s=o.getRange();if(e.id===n.MoveRowsCommand.id&&t.fromRange.startRow<=s.startRow&&t.fromRange.endRow<s.endRow&&t.fromRange.endRow>=s.startRow)throw this._sheetsFilterService.setFilterErrorMsg(`sheets-filter.msg.filter-header-forbidden`),Error(`[SheetsFilterController]: Cannot move header row of filter`)}))}_cellHasValue(e){let t=Object.values(e);return!(t.length===0||t.every(e=>e==null))}};X=P([N(0,t.ICommandService),N(1,(0,t.Inject)(n.SheetInterceptorService)),N(2,(0,t.Inject)(I)),N(3,t.IUniverInstanceService),N(4,(0,t.Inject)(n.RefRangeService)),N(5,(0,t.Optional)(a.DataSyncPrimaryController)),N(6,(0,t.Inject)(n.ZebraCrossingCacheController))],X);let _e=[R.id,B.id],ve=[n.InsertColMutation.id,n.RemoveColMutation.id,n.MoveColsMutation.id],Z=class extends t.Disposable{get visible(){return this._visible$.getValue()}get enabled(){return this._enabled$.getValue()}constructor(e,n,i){super(),this._sheetsFilterController=e,this._commandService=n,this._configService=i,O(this,`_d`,new t.DisposableCollection),O(this,`_visible$`,new r.BehaviorSubject(!1)),O(this,`visible$`,this._visible$.asObservable()),O(this,`_enabled$`,new r.BehaviorSubject(!0)),O(this,`enabled$`,this._enabled$.asObservable());let a=this._configService.getConfig(q);if(a!=null&&a.enableSyncSwitch&&(this._visible$.next(!0),typeof a.enableSyncSwitch==`object`)){var o;this.setEnabled((o=a.enableSyncSwitch.defaultValue)==null?!0:o)}}setEnabled(e){this._enabled$.next(e),e?this._d.dispose():this._initOnlyLocalListener()}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{_e.includes(e.id)&&(t||(t={}),t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,r)=>{if(ve.includes(e.id)&&r!=null&&r.fromCollab){if(e.id===n.InsertColMutation.id){let{range:n,unitId:i,subUnitId:a}=e.params,{redos:o}=this._sheetsFilterController.handleInsertColCommand(n,i,a);(0,t.sequenceExecute)(o,this._commandService,r)}else if(e.id===n.RemoveColMutation.id){let{range:n,unitId:i,subUnitId:a}=e.params,{redos:o}=this._sheetsFilterController.handleRemoveColCommand(n,i,a);(0,t.sequenceExecute)(o,this._commandService,r)}else if(e.id===n.MoveColsMutation.id){let{sourceRange:n,targetRange:i,unitId:a,subUnitId:o}=e.params,{redos:s}=this._sheetsFilterController.handleMoveColsCommand({fromRange:n,toRange:i},a,o);(0,t.sequenceExecute)(s,this._commandService,r)}}}))}};Z=P([N(0,(0,t.Inject)(X)),N(1,t.ICommandService),N(2,t.IConfigService)],Z);var ye=`@univerjs/sheets-filter`,be=`1.0.0-alpha.7`;let Q=class extends t.Disposable{constructor(e,t,n,r){super(),this._activeDirtyManagerService=e,this._sheetRowFilteredService=t,this._sheetsFilterService=n,this._univerInstanceService=r,this._initFormulaDirtyRange(),this._registerSheetRowFiltered()}_initFormulaDirtyRange(){d.forEach(e=>{this._activeDirtyManagerService.register(e,{commandId:e,getDirtyData:e=>{let{unitId:t,subUnitId:n}=e.params;return{dirtyRanges:this._getHideRowMutation(t,n),clearDependencyTreeCache:{[t]:{[n]:`1`}}}}})})}_getHideRowMutation(e,t){var n,r;let i=(n=this._sheetsFilterService.getFilterModel(e,t))==null?void 0:n.getRange(),a=(r=this._univerInstanceService.getUnit(e))==null?void 0:r.getSheetBySheetId(t);if(i==null||a==null)return[];let{startRow:o,endRow:s}=i;return[{unitId:e,sheetId:t,range:{startRow:o,startColumn:0,endRow:s,endColumn:a.getColumnCount()-1}}]}_registerSheetRowFiltered(){this._sheetRowFilteredService.register((e,t,n)=>{var r,i;return(r=(i=this._sheetsFilterService.getFilterModel(e,t))==null?void 0:i.isRowFiltered(n))==null?!1:r})}};Q=P([N(0,(0,t.Inject)(o.IActiveDirtyManagerService)),N(1,(0,t.Inject)(o.ISheetRowFilteredService)),N(2,(0,t.Inject)(I)),N(3,t.IUniverInstanceService)],Q);let $=class extends t.Plugin{constructor(e=J,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},J,this._config);this._configService.setConfig(q,i)}onStarting(){[[Q],[I],[X],[Z]].forEach(e=>this._injector.add(e))}onReady(){(0,t.touchDependencies)(this._injector,[[Q],[X],[Z]])}};O($,`type`,t.UniverInstanceType.UNIVER_SHEET),O($,`pluginName`,F),O($,`packageName`,ye),O($,`version`,be),$=P([N(1,(0,t.Inject)(t.Injector)),N(2,t.IConfigService)],$),e.ClearSheetsFilterCriteriaCommand=W,e.CustomFilterOperator=p,e.FILTER_MUTATIONS=d,e.FilterBy=f,e.FilterColumn=j,e.FilterModel=A,e.ReCalcSheetsFilterCommand=G,e.ReCalcSheetsFilterMutation=B,e.RemoveSheetFilterCommand=H,e.RemoveSheetsFilterMutation=z,e.SHEET_FILTER_SNAPSHOT_ID=F,e.SetSheetFilterRangeCommand=V,e.SetSheetsFilterCriteriaCommand=U,e.SetSheetsFilterCriteriaMutation=R,e.SetSheetsFilterRangeMutation=L,Object.defineProperty(e,"SheetsFilterService",{enumerable:!0,get:function(){return I}}),Object.defineProperty(e,"SheetsFilterSyncController",{enumerable:!0,get:function(){return Z}}),e.SmartToggleSheetsFilterCommand=fe,Object.defineProperty(e,"UniverSheetsFilterPlugin",{enumerable:!0,get:function(){return $}}),e.equals=v,e.getCustomFilterFn=S,e.greaterThan=m,e.greaterThanOrEqualTo=h,e.lessThan=g,e.lessThanOrEqualTo=_,e.notEquals=y});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("@univerjs/core"),require("@univerjs/sheets"),require("rxjs"),require("@univerjs/engine-render"),require("@univerjs/rpc"),require("@univerjs/engine-formula")):typeof define==`function`&&define.amd?define([`exports`,`@univerjs/core`,`@univerjs/sheets`,`rxjs`,`@univerjs/engine-render`,`@univerjs/rpc`,`@univerjs/engine-formula`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UniverSheetsFilter={},e.UniverCore,e.UniverSheets,e.rxjs,e.UniverEngineRender,e.UniverRpc,e.UniverEngineFormula))})(this,function(e,t,n,r,i,a,o){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let s=`sheet.mutation.set-filter-range`,c=`sheet.mutation.set-filter-criteria`,l=`sheet.mutation.remove-filter`,u=`sheet.mutation.re-calc-filter`,d=new Set([s,c,l,u]),f=function(e){return e[e.VALUES=0]=`VALUES`,e[e.COLORS=1]=`COLORS`,e[e.CONDITIONS=2]=`CONDITIONS`,e}({}),p=function(e){return e.EQUAL=`equal`,e.GREATER_THAN=`greaterThan`,e.GREATER_THAN_OR_EQUAL=`greaterThanOrEqual`,e.LESS_THAN=`lessThan`,e.LESS_THAN_OR_EQUAL=`lessThanOrEqual`,e.NOT_EQUALS=`notEqual`,e}({}),m={operator:`greaterThan`,fn:(e,t)=>S(e)?e>t:!1},h={operator:`greaterThanOrEqual`,fn:(e,t)=>S(e)?e>=t:!1},g={operator:`lessThan`,fn:(e,t)=>S(e)?e<t:!1},_={operator:`lessThanOrEqual`,fn:(e,t)=>S(e)?e<=t:!1},v={operator:`equal`,fn:(e,t)=>S(e)?e===t:!1},y={operator:`notEqual`,fn:(e,n)=>{if(typeof n==`string`){if(n===` `)return e!=null;let r=w(e);return r&&ne(n)?!t.regexp.createFromWildcard(n).test(r):r!==n}return!S(e)||e!==n}},b=new Map([]);[m,h,g,_,v,y].forEach(e=>{b.set(e.operator,e)});function ee(e){return!!e}let te={fn:(e,n)=>{let r=w(e);return r===null?n===``:t.regexp.createFromWildcard(n).test(r)}};function x(e){return e?b.get(e):te}function S(e){return typeof e==`number`}function C(e){return!!(typeof e==`number`||typeof e==`string`&&(0,t.isNumeric)(e))}function w(e){return typeof e==`boolean`||e==null?null:typeof e==`string`?e:e.toString()}function ne(e){return typeof e==`number`?!1:e.indexOf(`*`)!==-1||e.indexOf(`?`)!==-1}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 re(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 ie(e){var t=re(e,`string`);return T(t)==`symbol`?t:t+``}function E(e,t,n){return(t=ie(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let D=()=>new Set;var O=class e extends t.Disposable{get filteredOutRows(){return this._filteredOutRows$.getValue()}set filteredOutRows(e){this._alreadyFilteredOutRows=e,this._filteredOutRows$.next(e)}constructor(e,t,n){super(),this.unitId=e,this.subUnitId=t,this._worksheet=n,E(this,`_filteredOutRows$`,new r.BehaviorSubject(D())),E(this,`filteredOutRows$`,this._filteredOutRows$.asObservable()),E(this,`_hasCriteria$`,new r.BehaviorSubject(!1)),E(this,`hasCriteria$`,this._hasCriteria$.asObservable()),E(this,`_filterColumnByIndex`,new Map),E(this,`_alreadyFilteredOutRows`,D()),E(this,`_range`,void 0)}dispose(){super.dispose(),this._filteredOutRows$.complete(),this._hasCriteria$.complete(),this._worksheet=null}serialize(){let e={ref:t.Rectangle.clone(this._range),filterColumns:this._getAllFilterColumns(!0).sort(([e],[t])=>e-t).map(([e,t])=>t.serialize())};return this._alreadyFilteredOutRows&&(e.cachedFilteredOut=Array.from(this._alreadyFilteredOutRows).sort()),e}static deserialize(t,n,r,i){let a=new e(t,n,r);return a._dump(i),a}_dump(e){var t;this.setRange(e.ref),(t=e.filterColumns)==null||t.filter(e=>!(!e.filters&&!e.colorFilters&&!e.customFilters)).forEach(e=>this._setCriteriaWithoutReCalc(e.colId,e)),e.cachedFilteredOut?(this._alreadyFilteredOutRows=new Set(e.cachedFilteredOut),this._emit()):e.filterColumns&&e.filterColumns.length>0&&(this._reCalcAllColumns(),this._emit()),this._emitHasCriteria()}isRowFiltered(e){return this._alreadyFilteredOutRows.has(e)}getRange(){if(!this._range)throw Error(`[FilterModel] could not get range before a range is set!`);return this._range}getFilteredOutRowsExceptCol(e){return this._getAllFilterColumns(!0).filter(([t])=>t!==e).reduce((e,[,n])=>{let r=n.calc({getAlreadyFilteredOutRows:()=>e});return r?(0,t.mergeSets)(e,r):e},new Set)}setRange(e){this._range=e,this._getAllFilterColumns(!0).forEach(([t,n])=>{n.setRangeAndColumn({startRow:e.startRow,endRow:e.endRow,startColumn:t,endColumn:t},t)})}setCriteria(e,t,n=!1){if(!this._range)throw Error(`[FilterModel] could not set criteria before a range is set!`);if(!t){this._removeCriteria(e),this._rebuildAlreadyFilteredOutRowsWithCache(),n&&this._reCalcAllColumns(),this._emit(),this._emitHasCriteria();return}this._setCriteriaWithoutReCalc(e,t),n&&(this._rebuildAlreadyFilteredOutRowsWithCache(),this._getAllFilterColumns().forEach(e=>e.__clearCache()),this._reCalcWithNoCacheColumns(),this._emit(),this._emitHasCriteria())}getAllFilterColumns(){return this._getAllFilterColumns(!0)}getFilterColumn(e){return this._filterColumnByIndex.get(e)??null}reCalc(){this._reCalcAllColumns(),this._emit()}_getAllFilterColumns(e=!1){let t=Array.from(this._filterColumnByIndex.entries());return e?t:t.map(([e,t])=>t)}_reCalcAllColumns(){this._alreadyFilteredOutRows=D(),this._getAllFilterColumns().forEach(e=>e.__clearCache()),this._reCalcWithNoCacheColumns()}_setCriteriaWithoutReCalc(e,t){let n=this._range;if(!n)throw Error(`[FilterModel] could not set criteria before a range is set!`);let{startColumn:r,endColumn:i}=n;if(e>i||e<r)throw Error(`[FilterModel] could not set criteria on column ${e} which is out of range!`);let a;this._filterColumnByIndex.has(e)?a=this._filterColumnByIndex.get(e):(a=new k(this.unitId,this.subUnitId,this._worksheet,t,{getAlreadyFilteredOutRows:()=>this._alreadyFilteredOutRows}),a.setRangeAndColumn(n,e),this._filterColumnByIndex.set(e,a)),a.setCriteria(t)}_removeCriteria(e){let t=this._filterColumnByIndex.get(e);t&&(t.dispose(),this._filterColumnByIndex.delete(e))}_emit(){this._filteredOutRows$.next(this._alreadyFilteredOutRows)}_emitHasCriteria(){this._hasCriteria$.next(this._filterColumnByIndex.size>0)}_rebuildAlreadyFilteredOutRowsWithCache(){let e=this._getAllFilterColumns().filter(e=>e.hasCache()).reduce((e,n)=>(0,t.mergeSets)(e,n.filteredOutRows),new Set);this._alreadyFilteredOutRows=e}_reCalcWithNoCacheColumns(){let e=this._getAllFilterColumns().filter(e=>!e.hasCache());for(let n of e){let e=n.reCalc();e&&(this._alreadyFilteredOutRows=(0,t.mergeSets)(this._alreadyFilteredOutRows,e))}}},k=class extends t.Disposable{get filteredOutRows(){return this._filteredOutRows}get filterBy(){return this._filterBy}constructor(e,t,n,r,i){super(),this.unitId=e,this.subUnitId=t,this._worksheet=n,this._criteria=r,this._filterColumnContext=i,E(this,`_filteredOutRows`,null),E(this,`_filterFn`,null),E(this,`_range`,null),E(this,`_column`,0),E(this,`_filterBy`,0)}dispose(){super.dispose(),this._filteredOutRows=null}__clearCache(){this._filteredOutRows=null}serialize(){if(!this._criteria)throw Error(`[FilterColumn]: could not serialize without a filter column!`);return t.Tools.deepClone({...this._criteria,colId:this._column})}hasCache(){return this._filteredOutRows!==null}setRangeAndColumn(e,t){this._range=e,this._column=t}setCriteria(e){this._criteria=e,this._generateFilterFn(),this._filteredOutRows=null}getColumnData(){return t.Tools.deepClone(this._criteria)}reCalc(){return this._filteredOutRows=this.calc(this._filterColumnContext),this._filteredOutRows}calc(e){if(!this._filterFn)throw Error(`[FilterColumn] cannot calculate without a filter fn!`);if(!this._range)throw Error(`[FilterColumn] cannot calculate without a range!`);if(typeof this._column!=`number`)throw TypeError(`[FilterColumn] cannot calculate without a column offset!`);let n=this._column,r={startColumn:n,endColumn:n,startRow:this._range.startRow+1,endRow:this._range.endRow},i=new Set,a=e.getAlreadyFilteredOutRows();for(let e of this._worksheet.iterateByColumn(r,!1,!1)){let{row:n,rowSpan:r,col:o}=e;if(!(a.has(n)&&(!r||r===1))&&!(this._filterBy===0?this._filterFn((0,t.extractPureTextFromCell)(this._worksheet.getCell(n,o))):this._filterBy===1?this._filterFn(this._worksheet.getComposedCellStyle(n,o)):this._filterFn(fe(this._worksheet,n,o)))&&(i.add(n),r))for(let e=1;e<r;e++)i.add(n+e)}return i}_generateFilterFn(){this._criteria&&(this._filterFn=ae(this._criteria),this._filterBy=this._criteria.filters?0:this._criteria.colorFilters?1:2)}};function ae(e){if(e.filters)return oe(e.filters);if(e.colorFilters)return se(e.colorFilters);if(e.customFilters)return ce(e.customFilters);throw Error(`[FilterModel]: other types of filters are not supported yet.`)}function oe(e){let t=!!e.blank,n=new Set(e.filters);return e=>e===void 0||e===``?t:n.has(typeof e==`string`?e:`${e}`)}function se(e){if(e.cellFillColors){let n=new Set(e.cellFillColors);return e=>{var r;if(!e||!((r=e.bg)!=null&&r.rgb))return!!n.has(null);let i=new t.ColorKit(e.bg.rgb).toRgbString();return n.has(i)}}if(e.cellTextColors){let n=new Set(e.cellTextColors);return e=>{var r;if(!e||!((r=e.cl)!=null&&r.rgb))return!!n.has(i.COLOR_BLACK_RGB);let a=new t.ColorKit(e.cl.rgb).toRgbString();return n.has(a)}}throw Error(`[FilterModel]: color filters are not supported yet.`)}function ce(e){let t=e.customFilters.map(e=>A(e));return de(t)?e.and?le(t):ue(t):t[0]}function le(e){let[t,n]=e;return e=>t(e)&&n(e)}function ue(e){let[t,n]=e;return e=>t(e)||n(e)}function de(e){return e.length===2}function A(e){let t=e.val;if(e.operator===`notEqual`&&!C(t))return e=>y.fn(e,t);if(ee(e.operator)){if(!C(t))return()=>!1;let n=x(e.operator),r=Number(t);return e=>n.fn(e,r)}let n=x(e.operator);return e=>n.fn(e,t)}function fe(e,n,r){let i=e.getCell(n,r);if(!i)return null;let a=e.getCellRaw(n,r);return i&&!a?j(i):a?i.t===t.CellValueType.NUMBER&&typeof i.v==`string`?a.v:i.t===t.CellValueType.NUMBER?Number(a.v):j(a):null}function j(e){var n;let r=(n=e.p)==null||(n=n.body)==null?void 0:n.dataStream;if(r)return r.trimEnd();let i=e.v;return typeof i==`string`?e.t===t.CellValueType.BOOLEAN?i.toUpperCase():i:typeof i==`number`?e.t===t.CellValueType.BOOLEAN?i?`TRUE`:`FALSE`:i:typeof i==`boolean`?i?`TRUE`:`FALSE`:``}function M(e,t){return function(n,r){t(n,r,e)}}function N(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 P=`SHEET_FILTER_PLUGIN`,F=class extends t.Disposable{get activeFilterModel(){return this._activeFilterModel$.getValue()}constructor(e,t,n){super(),this._resourcesManagerService=e,this._univerInstanceService=t,this._commandService=n,E(this,`_filterModels`,new Map),E(this,`_loadedUnitId$`,new r.BehaviorSubject(null)),E(this,`loadedUnitId$`,this._loadedUnitId$.asObservable()),E(this,`_errorMsg$`,new r.BehaviorSubject(null)),E(this,`errorMsg$`,this._errorMsg$.asObservable()),E(this,`_activeFilterModel$`,new r.BehaviorSubject(null)),E(this,`activeFilterModel$`,this._activeFilterModel$.asObservable()),this._initModel(),this._initActiveFilterModel()}ensureFilterModel(e,n){let r=this.getFilterModel(e,n);if(r)return r;let i=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);if(!i)throw Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing workbook ${e}!`);let a=i.getSheetBySheetId(n);if(!a)throw Error(`[SheetsFilterService]: could not create "FilterModel" on a non-existing worksheet ${n}!`);let o=new O(e,n,a);return this._cacheFilterModel(e,n,o),o}getFilterModel(e,t){var n;return((n=this._filterModels.get(e))==null?void 0:n.get(t))??null}removeFilterModel(e,t){let n=this.getFilterModel(e,t);return n?(n.dispose(),this._filterModels.get(e).delete(t),!0):!1}setFilterErrorMsg(e){this._errorMsg$.next(e)}_updateActiveFilterModel(){let e;try{if(e=this._univerInstanceService.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),!e){this._activeFilterModel$.next(null);return}}catch(e){console.error(`[SheetsFilterService]: could not get active workbook!`,e);return}let n=e.getActiveSheet(!0);if(!n){this._activeFilterModel$.next(null);return}let r=n.getUnitId(),i=n.getSheetId(),a=this.getFilterModel(r,i);this._activeFilterModel$.next(a)}_initActiveFilterModel(){this.disposeWithMe((0,r.merge)((0,t.fromCallback)(this._commandService.onCommandExecuted.bind(this._commandService)).pipe((0,r.filter)(([e])=>e.type===t.CommandType.MUTATION&&d.has(e.id))),this._univerInstanceService.getCurrentTypeOfUnit$(t.UniverInstanceType.UNIVER_SHEET).pipe((0,r.switchMap)(e=>(e==null?void 0:e.activeSheet$)??(0,r.of)(null)))).subscribe(()=>this._updateActiveFilterModel()))}_serializeAutoFiltersForUnit(e){let t=this._filterModels.get(e);if(!t)return`{}`;let n={};return t.forEach((e,t)=>{n[t]=e.serialize()}),JSON.stringify(n)}_deserializeAutoFiltersForUnit(e,n){let r=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET);Object.keys(n).forEach(t=>{let i=n[t],a=O.deserialize(e,t,r.getSheetBySheetId(t),i);this._cacheFilterModel(e,t,a)})}dispose(){super.dispose(),this._loadedUnitId$.complete(),this._errorMsg$.complete(),this._activeFilterModel$.complete(),this._filterModels.forEach(e=>{e.forEach(e=>e.dispose()),e.clear()}),this._filterModels.clear()}_initModel(){this._resourcesManagerService.registerPluginResource({pluginName:P,businesses:[t.UniverInstanceType.UNIVER_SHEET],toJson:e=>this._serializeAutoFiltersForUnit(e),parseJson:e=>JSON.parse(e),onLoad:(e,t)=>{this._deserializeAutoFiltersForUnit(e,t),this._loadedUnitId$.next(e),this._updateActiveFilterModel()},onUnLoad:e=>{let t=this._filterModels.get(e);t&&(t.forEach(e=>e.dispose()),this._filterModels.delete(e))}})}_cacheFilterModel(e,t,n){this._filterModels.has(e)||this._filterModels.set(e,new Map),this._filterModels.get(e).set(t,n)}};F=N([M(0,t.IResourceManagerService),M(1,t.IUniverInstanceService),M(2,t.ICommandService)],F);let I={id:s,type:t.CommandType.MUTATION,handler:(e,t)=>{let{subUnitId:n,unitId:r,range:i}=t;return e.get(F).ensureFilterModel(r,n).setRange(i),!0}},L={id:c,type:t.CommandType.MUTATION,handler:(e,t)=>{let{subUnitId:n,unitId:r,criteria:i,col:a,reCalc:o=!0}=t,s=e.get(F).getFilterModel(r,n);return s?(s.setCriteria(a,i,o),!0):!1}},R={id:l,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r}=t;return e.get(F).removeFilterModel(n,r)}},z={id:u,type:t.CommandType.MUTATION,handler:(e,t)=>{let{unitId:n,subUnitId:r}=t,i=e.get(F).getFilterModel(n,r);return i?(i.reCalc(),!0):!1}},B={id:`sheet.command.set-filter-range`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(F),a=e.get(t.ICommandService),o=e.get(t.IUndoRedoService),s=e.get(t.IUniverInstanceService),{unitId:c,subUnitId:l,range:u}=r;if(!(0,n.getSheetCommandTarget)(s,r)||i.getFilterModel(c,l))return!1;if(u.endRow===u.startRow){let n=e.get(t.ErrorService),r=e.get(t.LocaleService);return n.emit(r.t(`sheets-filter.command.not-valid-filter-range`)),!1}let d={id:I.id,params:{unitId:c,subUnitId:l,range:u}},f=a.syncExecuteCommand(d.id,d.params);return f&&o.pushUndoRedo({unitID:c,undoMutations:[{id:R.id,params:{unitId:c,subUnitId:l}}],redoMutations:[d]}),f}},V={id:`sheet.command.remove-sheet-filter`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!i)return!1;let a=e.get(F),{unitId:o,subUnitId:s}=i,c=a.getFilterModel(o,s);if(!c)return!1;let l=c.getRange();if(!l)return!1;let u=e.get(t.ICommandService),d=e.get(t.IUndoRedoService),f=me(o,s,c.serialize()),p=u.syncExecuteCommand(R.id,{unitId:o,subUnitId:s});return p&&(d.pushUndoRedo({unitID:o,undoMutations:f,redoMutations:[{id:R.id,params:{unitId:o,subUnitId:s}}]}),u.executeCommand(n.MarkDirtyFilterChangeMutation.id,{unitId:o,subUnitId:s,filterRange:l})),p}},pe={id:`sheet.command.smart-toggle-filter`,type:t.CommandType.COMMAND,handler:async e=>{let r=e.get(t.IUniverInstanceService),i=e.get(F),a=e.get(t.ICommandService),o=r.getCurrentUnitOfType(t.UniverInstanceType.UNIVER_SHEET),s=o==null?void 0:o.getActiveSheet();if(!s||!o)return!1;let c=o.getUnitId(),l=s.getSheetId();if(i.getFilterModel(c,l))return a.executeCommand(V.id,{unitId:c,subUnitId:l});let u=e.get(n.SheetsSelectionsService).getCurrentLastSelection();if(!u)return!1;let d=u.range,f=(0,n.isSingleCellSelection)(u)?(0,n.expandToContinuousRange)(d,{left:!0,right:!0,up:!0,down:!0},s):d.startRow===d.endRow?(0,n.expandToContinuousRange)(d,{down:!0},s):d;return a.executeCommand(B.id,{unitId:c,subUnitId:l,range:f})}},H={id:`sheet.command.set-filter-criteria`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!i)return!1;let a=e.get(F),{unitId:o,subUnitId:s}=i,c=a.getFilterModel(o,s);if(!c)return!1;let{col:l,criteria:u}=r,d=c.getRange();if(!d||l<d.startColumn||l>d.endColumn)return!1;let f=e.get(t.ICommandService),p=e.get(t.IUndoRedoService),m=ge(o,s,l,c.getFilterColumn(l)),h={id:L.id,params:{unitId:o,subUnitId:s,col:l,criteria:u}},g=f.syncExecuteCommand(h.id,h.params);return g&&(p.pushUndoRedo({unitID:o,undoMutations:[m],redoMutations:[h]}),f.executeCommand(n.MarkDirtyFilterChangeMutation.id,{unitId:o,subUnitId:s,filterRange:d})),g}},U={id:`sheet.command.clear-filter-criteria`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!i)return!1;let a=e.get(F),{unitId:o,subUnitId:s}=i,c=a.getFilterModel(o,s);if(!c)return!1;let l=c.getRange();if(!l)return!1;let u=e.get(t.IUndoRedoService),d=e.get(t.ICommandService),f=c.serialize(),p=G(o,s,f),m=he(o,s,f);return(0,t.sequenceExecute)(m,d).result?(u.pushUndoRedo({unitID:o,undoMutations:p,redoMutations:m}),d.executeCommand(n.MarkDirtyFilterChangeMutation.id,{unitId:o,subUnitId:s,filterRange:l}),!0):!1}},W={id:`sheet.command.re-calc-filter`,type:t.CommandType.COMMAND,handler:(e,r)=>{let i=e.get(F),a=e.get(t.ICommandService),o=(0,n.getSheetCommandTarget)(e.get(t.IUniverInstanceService),r);if(!o)return!1;let{unitId:s,subUnitId:c}=o;return i.getFilterModel(o.unitId,o.subUnitId)?a.executeCommand(z.id,{unitId:s,subUnitId:c}):!1}};function me(e,t,n){let r=[],i={id:I.id,params:{unitId:e,subUnitId:t,range:n.ref}};return r.push(i),G(e,t,n).forEach(e=>r.push(e)),r}function G(e,t,n){var r;let i=[];return(r=n.filterColumns)==null||r.forEach(n=>{let r={id:L.id,params:{unitId:e,subUnitId:t,col:n.colId,criteria:n}};i.push(r)}),i}function he(e,t,n){var r;let i=[];return(r=n.filterColumns)==null||r.forEach(n=>{let r={id:L.id,params:{unitId:e,subUnitId:t,col:n.colId,criteria:null}};i.push(r)}),i}function ge(e,t,n,r){if(!r)return{id:L.id,params:{unitId:e,subUnitId:t,col:n,criteria:null}};let i=r.serialize();return{id:L.id,params:{unitId:e,subUnitId:t,col:n,criteria:i}}}let K=`sheets-filter.config`,q={};function _e(e,t){for(let n=0;n<e.length;n++){let r=n;if(e[n])for(let i=n+1;i<e.length;i++)e[r]&&e[i]&&t(e[r],e[i])&&(e[r]=null,r=i)}return e.filter(e=>e!==null)}function J(e){return _e(e,(e,t)=>e.id===L.id&&t.id===L.id&&e.params.unitId===t.params.unitId&&e.params.subUnitId===t.params.subUnitId&&e.params.col===t.params.col)}let Y=class extends t.Disposable{constructor(e,n,r,i,a,o,s){super(),this._commandService=e,this._sheetInterceptorService=n,this._sheetsFilterService=r,this._univerInstanceService=i,this._refRangeService=a,this._dataSyncPrimaryController=o,this._zebraCrossingCacheController=s,E(this,`_disposableCollection`,new t.DisposableCollection),this._initCommands(),this._initRowFilteredInterceptor(),this._initInterceptors(),this._commandExecutedListener(),this._initErrorHandling(),this._initZebraCrossingCacheListener()}_initZebraCrossingCacheListener(){this.disposeWithMe(this._sheetsFilterService.activeFilterModel$.subscribe(e=>{e&&this.disposeWithMe(e.filteredOutRows$.subscribe(()=>{this._zebraCrossingCacheController.updateZebraCrossingCache(e.unitId,e.subUnitId)}))}))}_initCommands(){[B,V,H,U,W].forEach(e=>{this.disposeWithMe(this._commandService.registerCommand(e))}),[L,I,z,R].forEach(e=>{var t;this.disposeWithMe(this._commandService.registerCommand(e)),(t=this._dataSyncPrimaryController)==null||t.registerSyncingMutations(e)})}_initInterceptors(){this.disposeWithMe(this._sheetInterceptorService.interceptCommand({getMutations:e=>this._getUpdateFilter(e)})),this.disposeWithMe(this._commandService.onCommandExecuted(e=>{if(e.id===n.SetWorksheetActiveOperation.id){let t=e.params,n=t.subUnitId,r=t.unitId;if(!n||!r)return;this._registerRefRange(r,n)}if(e.id===I.id){let t=e.params,n=t.subUnitId,r=t.unitId;if(!n||!r)return;this._registerRefRange(t.unitId,t.subUnitId)}})),this.disposeWithMe(this._sheetsFilterService.loadedUnitId$.subscribe(e=>{if(e){let n=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET),r=n==null?void 0:n.getActiveSheet();r&&this._registerRefRange(e,r.getSheetId())}}))}_registerRefRange(e,r){var i;this._disposableCollection.dispose();let a=this._univerInstanceService.getUnit(e,t.UniverInstanceType.UNIVER_SHEET),o=a==null?void 0:a.getSheetBySheetId(r);if(!a||!o)return;let s=(i=this._sheetsFilterService.getFilterModel(e,r))==null?void 0:i.getRange();s&&this._disposableCollection.add(this._refRangeService.registerRefRange(s,t=>{switch(t.id){case n.InsertRowCommand.id:{let n=t.params,i=n.unitId||e,a=n.subUnitId||r;return this._handleInsertRowCommand(n,i,a)}case n.InsertColCommand.id:{let n=t.params,i=n.unitId||e,a=n.subUnitId||r;return this.handleInsertColCommand(n.range,i,a)}case n.RemoveColCommand.id:{let n=t.params;return this.handleRemoveColCommand(n.range,e,r)}case n.RemoveRowCommand.id:{let n=t.params;return this._handleRemoveRowCommand(n,e,r)}case n.EffectRefRangId.MoveColsCommandId:{let n=t.params;return this.handleMoveColsCommand({fromRange:n.fromRange,toRange:n.toRange},e,r)}case n.EffectRefRangId.MoveRowsCommandId:{let n=t.params;return this._handleMoveRowsCommand(n,e,r)}case n.MoveRangeCommand.id:{let n=t.params;return this._handleMoveRangeCommand(n,e,r)}}return{redos:[],undos:[]}},e,r))}_getUpdateFilter(e){let{id:t}=e;switch(t){case n.RemoveSheetCommand.id:{let t=e.params;return this._handleRemoveSheetCommand(t,t.unitId,t.subUnitId)}case n.CopySheetCommand.id:{let{targetSubUnitId:t,unitId:n,subUnitId:r}=e.params;return!n||!r||!t?this._handleNull():this._handleCopySheetCommand(n,r,t)}}return{redos:[],undos:[]}}handleInsertColCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(t,n),i=(r==null?void 0:r.getRange())??null;if(!r||!i)return this._handleNull();let{startColumn:a,endColumn:o}=i,{startColumn:s,endColumn:c}=e,l=c-s+1;if(c>o)return this._handleNull();let u=[],d=[],f=s,p={unitId:t,subUnitId:n,range:{...i,startColumn:s<=a?a+l:a,endColumn:o+l}},m={unitId:t,subUnitId:n,range:i};u.push({id:I.id,params:p}),d.push({id:I.id,params:m});let h=r.getAllFilterColumns().filter(e=>e[0]>=f);if(h.length!==0){let{newRange:e,oldRange:r}=this._moveCriteria(t,n,h,l);u.push(...r.redos,...e.redos),d.push(...e.undos,...r.undos)}return{redos:J(u),undos:J(d)}}_handleInsertRowCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(t,n),i=(r==null?void 0:r.getRange())??null;if(!r||!i)return this._handleNull();let{startRow:a,endRow:o}=i,{startRow:s,endRow:c}=e.range,l=c-s+1;if(c>o)return this._handleNull();let u=[],d=[],f={unitId:t,subUnitId:n,range:{...i,startRow:s<=a?a+l:a,endRow:o+l}},p={unitId:t,subUnitId:n,range:i};return u.push({id:I.id,params:f}),d.push({id:I.id,params:p}),{redos:J(u),undos:J(d)}}handleRemoveColCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(t,n),i=(r==null?void 0:r.getRange())??null;if(!r||!i)return this._handleNull();let{startColumn:a,endColumn:o}=i,{startColumn:s,endColumn:c}=e;if(s>o)return this._handleNull();let l=[],u=[],d=c<a?0:Math.min(c,o)-Math.max(s,a)+1,f=c-s+1,p=r.getAllFilterColumns();p.forEach(e=>{let[r,i]=e;r<=c&&r>=s&&(l.push({id:L.id,params:{unitId:t,subUnitId:n,col:r,criteria:null}}),u.push({id:L.id,params:{unitId:t,subUnitId:n,col:r,criteria:{...i.serialize(),colId:r}}}))});let m=p.filter(e=>{let[t,n]=e;return t>c}),h={undos:[],redos:[]};if(m.length>0){let{oldRange:e,newRange:r}=this._moveCriteria(t,n,m,-f);h=r,l.push(...e.redos),u.unshift(...e.undos)}if(d===o-a+1){let e={unitId:t,subUnitId:n};l.push({id:R.id,params:e}),u.unshift({id:I.id,params:{range:i,unitId:t,subUnitId:n}})}else{let e=a<=s?a:d===0?a-f:s,r=a<=s?o-d:o-f,c={unitId:t,subUnitId:n,range:{...i,startColumn:e,endColumn:r}};l.push({id:I.id,params:c}),u.unshift({id:I.id,params:{range:i,unitId:t,subUnitId:n}}),l.push(...h.redos),u.unshift(...h.undos)}return{undos:u,redos:l}}_handleRemoveRowCommand(e,n,r){let i=this._sheetsFilterService.getFilterModel(n,r);if(!i)return this._handleNull();let a=i.getRange(),{startRow:o,endRow:s}=a,{startRow:c,endRow:l}=e.range;if(c>s)return this._handleNull();if(l<o)return{undos:[{id:I.id,params:{range:a,unitId:n,subUnitId:r}}],redos:[{id:I.id,params:{range:{...a,startRow:o-(l-c+1),endRow:s-(l-c+1)},unitId:n,subUnitId:r}}]};let u=[],d=[],f=i.getAllFilterColumns(),p=o<=l&&o>=c;d.push({id:I.id,params:{range:a,unitId:n,subUnitId:r}});let m=Math.min(l,s)-Math.max(c,o)+1;if(m===s-o+1||p){let e={unitId:n,subUnitId:r};u.push({id:R.id,params:e}),f.forEach(e=>{let[t,i]=e,a={unitId:n,subUnitId:r,col:t,criteria:{...i.serialize(),colId:t}};d.push({id:L.id,params:a})})}else{var h;let e=(h=this._univerInstanceService.getUnit(n,t.UniverInstanceType.UNIVER_SHEET))==null?void 0:h.getSheetBySheetId(r);if(!e)return this._handleNull();let i=this._getFilteredRowCount(e,c,l),d=Math.min(o,c),f=d+(s-o)-m+i,p={unitId:n,subUnitId:r,range:{...a,startRow:d,endRow:f}};u.push({id:I.id,params:p})}return{undos:J(d),redos:J(u)}}_getFilteredRowCount(e,t,n){let r=0;for(let i=t;i<=n;i++)e.getRowFiltered(i)&&r++;return r}handleMoveColsCommand({fromRange:e,toRange:n},r,i){let a=this._sheetsFilterService.getFilterModel(r,i),o=(a==null?void 0:a.getRange())??null;if(!a||!o)return this._handleNull();let{startColumn:s,endColumn:c}=o;if(e.endColumn<s&&n.startColumn<=s||e.startColumn>c&&n.endColumn>c)return this._handleNull();let l=[],u=[],d={};for(let e=s;e<=c;e++)d[e]={colIndex:e,filter:a.getFilterColumn(e)};(0,t.moveMatrixArray)(e.startColumn,e.endColumn-e.startColumn+1,n.startColumn,d);let f=o.startColumn,p=o.endColumn;s>=e.startColumn&&s<=e.endColumn&&n.startColumn>e.startColumn&&e.endColumn<c&&(f=e.endColumn+1),c>=e.startColumn&&c<=e.endColumn&&n.startColumn<e.startColumn&&e.startColumn>s&&(p=e.startColumn-1);let m=Object.keys(d).map(e=>Number(e)),h=m.find(e=>d[e].colIndex===p),g=m.find(e=>d[e].colIndex===f);if(m.forEach(e=>{let{colIndex:t,filter:n}=d[e],o=e;if(n){var s;if(o>=g&&o<=h){var c;let e={unitId:r,subUnitId:i,col:o,criteria:{...n.serialize(),colId:o}},t={unitId:r,subUnitId:i,col:o,criteria:a.getFilterColumn(o)?{...(c=a.getFilterColumn(o))==null?void 0:c.serialize(),colId:o}:null};l.push({id:L.id,params:e}),u.push({id:L.id,params:t})}if(!((s=d[t])!=null&&s.filter)){let e={unitId:r,subUnitId:i,col:t,criteria:null};l.push({id:L.id,params:e}),u.push({id:L.id,params:{unitId:r,subUnitId:i,col:t,criteria:{...n.serialize(),colId:t}}})}}}),s!==g||c!==h){let e={unitId:r,subUnitId:i,range:{...o,startColumn:g,endColumn:h}};l.unshift({id:I.id,params:e}),u.unshift({id:I.id,params:{range:o,unitId:r,subUnitId:i}})}return{undos:u,redos:l}}_handleMoveRowsCommand(e,n,r){let i=this._sheetsFilterService.getFilterModel(n,r),a=(i==null?void 0:i.getRange())??null;if(!i||!a)return this._handleNull();let{startRow:o,endRow:s}=a,{fromRange:c,toRange:l}=e;if(c.endRow<o&&l.startRow<=o||c.startRow>s&&l.endRow>s)return this._handleNull();let u=[],d=[],f={};for(let e=o;e<=s;e++)f[e]={oldIndex:e};let p=o,m=s;s>=c.startRow&&s<=c.endRow&&l.startRow<c.startRow&&c.startRow>o&&(m=c.startRow-1),(0,t.moveMatrixArray)(c.startRow,c.endRow-c.startRow+1,l.startRow,f);let h=Object.keys(f).map(e=>Number(e)),g=h.find(e=>f[e].oldIndex===m),_=h.find(e=>f[e].oldIndex===p);if(o!==_||s!==g){let e={unitId:n,subUnitId:r,range:{...a,startRow:_,endRow:g}};u.push({id:I.id,params:e},{id:z.id,params:{unitId:n,subUnitId:r}}),d.push({id:I.id,params:{range:a,unitId:n,subUnitId:r}},{id:z.id,params:{unitId:n,subUnitId:r}})}return{redos:u,undos:d}}_handleMoveRangeCommand(e,n,r){let{fromRange:i,toRange:a}=e,o=this._sheetsFilterService.getFilterModel(n,r);if(!o)return this._handleNull();let s=o.getRange();if(!s)return this._handleNull();let c=[],l=[];if(t.Rectangle.contains(i,s)){let e=s.startRow-i.startRow,t=s.startColumn-i.startColumn,u={startRow:a.startRow+e,startColumn:a.startColumn+t,endRow:a.startRow+e+(s.endRow-s.startRow),endColumn:a.startColumn+t+(s.endColumn-s.startColumn)},d={id:R.id,params:{unitId:n,subUnitId:r}},f={id:I.id,params:{unitId:n,subUnitId:r,range:u}},p={id:I.id,params:{unitId:n,subUnitId:r,range:s}};c.push(d,f),l.push(d,p);let m=o.getAllFilterColumns(),h=a.startColumn-i.startColumn;m.forEach(e=>{let[t,i]=e;i&&(c.push({id:L.id,params:{unitId:n,subUnitId:r,col:t+h,criteria:{...i.serialize(),colId:t+h}}}),l.push({id:L.id,params:{unitId:n,subUnitId:r,col:t,criteria:{...i.serialize(),colId:t}}}))})}else if(t.Rectangle.intersects(a,s)){let e={...s,endRow:Math.max(s.endRow,a.endRow)};c.push({id:I.id,params:{unitId:n,subUnitId:r,range:e}}),l.push({id:I.id,params:{unitId:n,subUnitId:r,range:s}})}return{redos:c,undos:l}}_handleRemoveSheetCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(t,n);if(!r)return this._handleNull();let i=r.getRange();if(!i)return this._handleNull();let a=[],o=[];return r.getAllFilterColumns().forEach(([e,r])=>{o.push({id:L.id,params:{unitId:t,subUnitId:n,col:e,criteria:{...r.serialize(),colId:e}}})}),a.push({id:R.id,params:{unitId:t,subUnitId:n,range:i}}),o.unshift({id:I.id,params:{range:i,unitId:t,subUnitId:n}}),{undos:o,redos:a}}_handleCopySheetCommand(e,t,n){let r=this._sheetsFilterService.getFilterModel(e,t);if(!r)return this._handleNull();let i=r.getRange();if(!i)return this._handleNull();let a=[],o=[],s=[];return r.getAllFilterColumns().forEach(([t,r])=>{a.push({id:L.id,params:{unitId:e,subUnitId:n,col:t,criteria:{...r.serialize(),colId:t}}}),s.push({id:L.id,params:{unitId:e,subUnitId:n,col:t,criteria:null}})}),s.push({id:R.id,params:{unitId:e,subUnitId:n,range:i}}),a.unshift({id:I.id,params:{range:i,unitId:e,subUnitId:n}}),{undos:o,redos:a,preUndos:s,preRedos:[]}}_handleNull(){return{redos:[],undos:[]}}_initRowFilteredInterceptor(){this.disposeWithMe(this._sheetInterceptorService.intercept(n.INTERCEPTOR_POINT.ROW_FILTERED,{handler:(e,t)=>{var n;return e?!0:((n=this._sheetsFilterService.getFilterModel(t.unitId,t.subUnitId))==null?void 0:n.isRowFiltered(t.row))??!1}}))}_moveCriteria(e,t,n,r){let i={unitId:e,subUnitId:t,criteria:null,col:-1},a=[],o=[],s=[],c=[];return n.forEach(e=>{let[t,n]=e;o.push({id:L.id,params:{...i,col:t}}),a.push({id:L.id,params:{...i,col:t,criteria:{...n.serialize(),colId:t}}})}),n.forEach(e=>{let[t,n]=e;c.push({id:L.id,params:{...i,col:t+r,criteria:{...n.serialize(),colId:t+r}}}),s.push({id:L.id,params:{...i,col:t+r,criteria:null}})}),{newRange:{redos:c,undos:s},oldRange:{redos:o,undos:a}}}_commandExecutedListener(){this.disposeWithMe(this._commandService.onCommandExecuted((e,t)=>{let{unitId:r,subUnitId:i}=e.params||{},a=this._sheetsFilterService.getFilterModel(r,i);if(!a)return;let o=Array.from(a.filteredOutRows).sort((e,t)=>e-t),s=[],c=!1;if(e.id===n.RemoveRowMutation.id){let{startRow:t,endRow:n}=e.params.range,r=o.filter(e=>e>=t&&e<=n);o.forEach(e=>{if(e<t)s.push(e);else if(c=!0,e<=n){let e=Math.max(t,s.length?s[s.length-1]+1:t);s.push(e)}else s.push(e-(n-t+1-r.length))})}if(e.id===n.InsertRowMutation.id){let{startRow:t,endRow:n}=e.params.range;o.forEach(e=>{e>=t?(c=!0,s.push(e+(n-t+1))):s.push(e)})}if(c&&(a.filteredOutRows=new Set(s)),e.id===n.SetRangeValuesMutation.id&&!(t!=null&&t.onlyLocal)){let t=this._getExtendRegion(r,i);if(t){let a=e.params.cellValue;if(a)for(let e=t.startColumn;e<=t.endColumn;e++){var l;let o=a==null||(l=a[t.startRow])==null?void 0:l[e];if(o&&this._cellHasValue(o)){var u;let e=(u=this._univerInstanceService.getUnit(r))==null?void 0:u.getSheetBySheetId(i);if(e){let a=(0,n.expandToContinuousRange)(t,{down:!0},e),o=this._sheetsFilterService.getFilterModel(r,i),s=o.getRange();o.setRange({...s,endRow:a.endRow}),this._registerRefRange(r,i)}}}}}}))}_getExtendRegion(e,t){var n;let r=this._sheetsFilterService.getFilterModel(e,t);if(!r)return null;let i=(n=this._univerInstanceService.getUnit(e))==null?void 0:n.getSheetBySheetId(t);if(!i)return null;let a=r.getRange();if(!a)return null;let o=i.getRowCount()-1,s=i.getRowManager();for(let e=a.endRow+1;e<=o;e++)if(s.getRowRawVisible(e))return{startRow:e,endRow:e,startColumn:a.startColumn,endColumn:a.endColumn};return null}_initErrorHandling(){this.disposeWithMe(this._commandService.beforeCommandExecuted(e=>{let t=e.params,r=(0,n.getSheetCommandTarget)(this._univerInstanceService,t);if(!r)return;let{subUnitId:i,unitId:a}=r,o=this._sheetsFilterService.getFilterModel(a,i);if(!o)return;let s=o.getRange();if(e.id===n.MoveRowsCommand.id&&t.fromRange.startRow<=s.startRow&&t.fromRange.endRow<s.endRow&&t.fromRange.endRow>=s.startRow)throw this._sheetsFilterService.setFilterErrorMsg(`sheets-filter.msg.filter-header-forbidden`),Error(`[SheetsFilterController]: Cannot move header row of filter`)}))}_cellHasValue(e){let t=Object.values(e);return!(t.length===0||t.every(e=>e==null))}};Y=N([M(0,t.ICommandService),M(1,(0,t.Inject)(n.SheetInterceptorService)),M(2,(0,t.Inject)(F)),M(3,t.IUniverInstanceService),M(4,(0,t.Inject)(n.RefRangeService)),M(5,(0,t.Optional)(a.DataSyncPrimaryController)),M(6,(0,t.Inject)(n.ZebraCrossingCacheController))],Y);let ve=[L.id,z.id],X=[n.InsertColMutation.id,n.RemoveColMutation.id,n.MoveColsMutation.id],Z=class extends t.Disposable{get visible(){return this._visible$.getValue()}get enabled(){return this._enabled$.getValue()}constructor(e,n,i){super(),this._sheetsFilterController=e,this._commandService=n,this._configService=i,E(this,`_d`,new t.DisposableCollection),E(this,`_visible$`,new r.BehaviorSubject(!1)),E(this,`visible$`,this._visible$.asObservable()),E(this,`_enabled$`,new r.BehaviorSubject(!0)),E(this,`enabled$`,this._enabled$.asObservable());let a=this._configService.getConfig(K);a!=null&&a.enableSyncSwitch&&(this._visible$.next(!0),typeof a.enableSyncSwitch==`object`&&this.setEnabled(a.enableSyncSwitch.defaultValue??!0))}setEnabled(e){this._enabled$.next(e),e?this._d.dispose():this._initOnlyLocalListener()}_initOnlyLocalListener(){this._d.add(this._commandService.beforeCommandExecuted((e,t)=>{ve.includes(e.id)&&(t||={},t.onlyLocal=!0)})),this._d.add(this._commandService.onCommandExecuted((e,r)=>{if(X.includes(e.id)&&r!=null&&r.fromCollab){if(e.id===n.InsertColMutation.id){let{range:n,unitId:i,subUnitId:a}=e.params,{redos:o}=this._sheetsFilterController.handleInsertColCommand(n,i,a);(0,t.sequenceExecute)(o,this._commandService,r)}else if(e.id===n.RemoveColMutation.id){let{range:n,unitId:i,subUnitId:a}=e.params,{redos:o}=this._sheetsFilterController.handleRemoveColCommand(n,i,a);(0,t.sequenceExecute)(o,this._commandService,r)}else if(e.id===n.MoveColsMutation.id){let{sourceRange:n,targetRange:i,unitId:a,subUnitId:o}=e.params,{redos:s}=this._sheetsFilterController.handleMoveColsCommand({fromRange:n,toRange:i},a,o);(0,t.sequenceExecute)(s,this._commandService,r)}}}))}};Z=N([M(0,(0,t.Inject)(Y)),M(1,t.ICommandService),M(2,t.IConfigService)],Z);var ye=`@univerjs/sheets-filter`,be=`1.0.0-beta.0`;let Q=class extends t.Disposable{constructor(e,t,n,r){super(),this._activeDirtyManagerService=e,this._sheetRowFilteredService=t,this._sheetsFilterService=n,this._univerInstanceService=r,this._initFormulaDirtyRange(),this._registerSheetRowFiltered()}_initFormulaDirtyRange(){d.forEach(e=>{this._activeDirtyManagerService.register(e,{commandId:e,getDirtyData:e=>{let{unitId:t,subUnitId:n}=e.params;return{dirtyRanges:this._getHideRowMutation(t,n),clearDependencyTreeCache:{[t]:{[n]:`1`}}}}})})}_getHideRowMutation(e,t){var n,r;let i=(n=this._sheetsFilterService.getFilterModel(e,t))==null?void 0:n.getRange(),a=(r=this._univerInstanceService.getUnit(e))==null?void 0:r.getSheetBySheetId(t);if(i==null||a==null)return[];let{startRow:o,endRow:s}=i;return[{unitId:e,sheetId:t,range:{startRow:o,startColumn:0,endRow:s,endColumn:a.getColumnCount()-1}}]}_registerSheetRowFiltered(){this._sheetRowFilteredService.register((e,t,n)=>{var r;return((r=this._sheetsFilterService.getFilterModel(e,t))==null?void 0:r.isRowFiltered(n))??!1})}};Q=N([M(0,(0,t.Inject)(o.IActiveDirtyManagerService)),M(1,(0,t.Inject)(o.ISheetRowFilteredService)),M(2,(0,t.Inject)(F)),M(3,t.IUniverInstanceService)],Q);let $=class extends t.Plugin{constructor(e=q,n,r){super(),this._config=e,this._injector=n,this._configService=r;let{...i}=(0,t.merge)({},q,this._config);this._configService.setConfig(K,i)}onStarting(){[[Q],[F],[Y],[Z]].forEach(e=>this._injector.add(e))}onReady(){(0,t.touchDependencies)(this._injector,[[Q],[Y],[Z]])}};E($,`type`,t.UniverInstanceType.UNIVER_SHEET),E($,`pluginName`,P),E($,`packageName`,ye),E($,`version`,be),$=N([(0,t.DependentOn)(o.UniverFormulaEnginePlugin,n.UniverSheetsPlugin),M(1,(0,t.Inject)(t.Injector)),M(2,t.IConfigService)],$),e.ClearSheetsFilterCriteriaCommand=U,e.CustomFilterOperator=p,e.FILTER_MUTATIONS=d,e.FilterBy=f,e.FilterColumn=k,e.FilterModel=O,e.ReCalcSheetsFilterCommand=W,e.ReCalcSheetsFilterMutation=z,e.RemoveSheetFilterCommand=V,e.RemoveSheetsFilterMutation=R,e.SHEET_FILTER_SNAPSHOT_ID=P,e.SetSheetFilterRangeCommand=B,e.SetSheetsFilterCriteriaCommand=H,e.SetSheetsFilterCriteriaMutation=L,e.SetSheetsFilterRangeMutation=I,Object.defineProperty(e,"SheetsFilterService",{enumerable:!0,get:function(){return F}}),Object.defineProperty(e,"SheetsFilterSyncController",{enumerable:!0,get:function(){return Z}}),e.SmartToggleSheetsFilterCommand=pe,Object.defineProperty(e,"UniverSheetsFilterPlugin",{enumerable:!0,get:function(){return $}}),e.equals=v,e.getCustomFilterFn=x,e.greaterThan=m,e.greaterThanOrEqualTo=h,e.lessThan=g,e.lessThanOrEqualTo=_,e.notEquals=y});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs/sheets-filter",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Filtering model, commands, and services 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/
|
|
71
|
-
"@univerjs/
|
|
72
|
-
"@univerjs/
|
|
73
|
-
"@univerjs/engine-formula": "1.0.0-
|
|
74
|
-
"@univerjs/
|
|
70
|
+
"@univerjs/engine-render": "1.0.0-beta.0",
|
|
71
|
+
"@univerjs/rpc": "1.0.0-beta.0",
|
|
72
|
+
"@univerjs/core": "1.0.0-beta.0",
|
|
73
|
+
"@univerjs/engine-formula": "1.0.0-beta.0",
|
|
74
|
+
"@univerjs/sheets": "1.0.0-beta.0"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"rxjs": "^7.8.2",
|
|
78
78
|
"typescript": "^6.0.3",
|
|
79
79
|
"vitest": "^4.1.10",
|
|
80
|
-
"@univerjs-infra/shared": "1.0.0-
|
|
80
|
+
"@univerjs-infra/shared": "1.0.0-beta.0"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"test": "vitest run",
|