@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 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.137.0/helpers/esm/decorateParam.js
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.137.0/helpers/esm/decorate.js
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.137.0/helpers/esm/typeof.js
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.137.0/helpers/esm/toPrimitive.js
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.137.0/helpers/esm/toPropertyKey.js
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.137.0/helpers/esm/defineProperty.js
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
- var _this$_filterColumnBy;
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.137.0/helpers/esm/decorateParam.js
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.137.0/helpers/esm/decorate.js
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.getUniverSheetInstance(unitId);
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, _this$_filterModels$g2;
656
- return (_this$_filterModels$g = (_this$_filterModels$g2 = this._filterModels.get(unitId)) === null || _this$_filterModels$g2 === void 0 ? void 0 : _this$_filterModels$g2.get(subUnitId)) !== null && _this$_filterModels$g !== void 0 ? _this$_filterModels$g : null;
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.getUniverSheetInstance(unitId);
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.getUniverSheetInstance(unitId);
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.getUniverSheetInstance(unitId);
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 = (_filterModel$getRange = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange !== void 0 ? _filterModel$getRange : null;
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 = (_filterModel$getRange2 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange2 !== void 0 ? _filterModel$getRange2 : null;
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 = (_filterModel$getRange3 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange3 !== void 0 ? _filterModel$getRange3 : null;
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.getUniverSheetInstance(unitId)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
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 = (_filterModel$getRange4 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange4 !== void 0 ? _filterModel$getRange4 : null;
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 = (_filterModel$getRange5 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange5 !== void 0 ? _filterModel$getRange5 : null;
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, _this$_sheetsFilterSe3;
1969
+ var _this$_sheetsFilterSe2;
1979
1970
  if (filtered) return true;
1980
- return (_this$_sheetsFilterSe2 = (_this$_sheetsFilterSe3 = this._sheetsFilterService.getFilterModel(rowLocation.unitId, rowLocation.subUnitId)) === null || _this$_sheetsFilterSe3 === void 0 ? void 0 : _this$_sheetsFilterSe3.isRowFiltered(rowLocation.row)) !== null && _this$_sheetsFilterSe2 !== void 0 ? _this$_sheetsFilterSe2 : false;
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-alpha.7";
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, _this$_sheetsFilterSe3;
2280
- return (_this$_sheetsFilterSe2 = (_this$_sheetsFilterSe3 = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe3 === void 0 ? void 0 : _this$_sheetsFilterSe3.isRowFiltered(row)) !== null && _this$_sheetsFilterSe2 !== void 0 ? _this$_sheetsFilterSe2 : false;
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([__decorateParam(1, (0, _univerjs_core.Inject)(_univerjs_core.Injector)), __decorateParam(2, _univerjs_core.IConfigService)], UniverSheetsFilterPlugin);
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.137.0/helpers/esm/decorateParam.js
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.137.0/helpers/esm/decorate.js
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.137.0/helpers/esm/typeof.js
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.137.0/helpers/esm/toPrimitive.js
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.137.0/helpers/esm/toPropertyKey.js
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.137.0/helpers/esm/defineProperty.js
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
- var _this$_filterColumnBy;
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.137.0/helpers/esm/decorateParam.js
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.137.0/helpers/esm/decorate.js
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.getUniverSheetInstance(unitId);
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, _this$_filterModels$g2;
655
- return (_this$_filterModels$g = (_this$_filterModels$g2 = this._filterModels.get(unitId)) === null || _this$_filterModels$g2 === void 0 ? void 0 : _this$_filterModels$g2.get(subUnitId)) !== null && _this$_filterModels$g !== void 0 ? _this$_filterModels$g : null;
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.getUniverSheetInstance(unitId);
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.getUniverSheetInstance(unitId);
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.getUniverSheetInstance(unitId);
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 = (_filterModel$getRange = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange !== void 0 ? _filterModel$getRange : null;
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 = (_filterModel$getRange2 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange2 !== void 0 ? _filterModel$getRange2 : null;
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 = (_filterModel$getRange3 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange3 !== void 0 ? _filterModel$getRange3 : null;
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.getUniverSheetInstance(unitId)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
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 = (_filterModel$getRange4 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange4 !== void 0 ? _filterModel$getRange4 : null;
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 = (_filterModel$getRange5 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange5 !== void 0 ? _filterModel$getRange5 : null;
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, _this$_sheetsFilterSe3;
1968
+ var _this$_sheetsFilterSe2;
1978
1969
  if (filtered) return true;
1979
- return (_this$_sheetsFilterSe2 = (_this$_sheetsFilterSe3 = this._sheetsFilterService.getFilterModel(rowLocation.unitId, rowLocation.subUnitId)) === null || _this$_sheetsFilterSe3 === void 0 ? void 0 : _this$_sheetsFilterSe3.isRowFiltered(rowLocation.row)) !== null && _this$_sheetsFilterSe2 !== void 0 ? _this$_sheetsFilterSe2 : false;
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-alpha.7";
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, _this$_sheetsFilterSe3;
2279
- return (_this$_sheetsFilterSe2 = (_this$_sheetsFilterSe3 = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe3 === void 0 ? void 0 : _this$_sheetsFilterSe3.isRowFiltered(row)) !== null && _this$_sheetsFilterSe2 !== void 0 ? _this$_sheetsFilterSe2 : false;
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([__decorateParam(1, Inject(Injector)), __decorateParam(2, IConfigService)], UniverSheetsFilterPlugin);
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.137.0/helpers/esm/decorateParam.js
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.137.0/helpers/esm/decorate.js
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.137.0/helpers/esm/typeof.js
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.137.0/helpers/esm/toPrimitive.js
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.137.0/helpers/esm/toPropertyKey.js
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.137.0/helpers/esm/defineProperty.js
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
- var _this$_filterColumnBy;
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.137.0/helpers/esm/decorateParam.js
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.137.0/helpers/esm/decorate.js
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.getUniverSheetInstance(unitId);
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, _this$_filterModels$g2;
655
- return (_this$_filterModels$g = (_this$_filterModels$g2 = this._filterModels.get(unitId)) === null || _this$_filterModels$g2 === void 0 ? void 0 : _this$_filterModels$g2.get(subUnitId)) !== null && _this$_filterModels$g !== void 0 ? _this$_filterModels$g : null;
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.getUniverSheetInstance(unitId);
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.getUniverSheetInstance(unitId);
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.getUniverSheetInstance(unitId);
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 = (_filterModel$getRange = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange !== void 0 ? _filterModel$getRange : null;
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 = (_filterModel$getRange2 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange2 !== void 0 ? _filterModel$getRange2 : null;
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 = (_filterModel$getRange3 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange3 !== void 0 ? _filterModel$getRange3 : null;
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.getUniverSheetInstance(unitId)) === null || _this$_univerInstance === void 0 ? void 0 : _this$_univerInstance.getSheetBySheetId(subUnitId);
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 = (_filterModel$getRange4 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange4 !== void 0 ? _filterModel$getRange4 : null;
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 = (_filterModel$getRange5 = filterModel === null || filterModel === void 0 ? void 0 : filterModel.getRange()) !== null && _filterModel$getRange5 !== void 0 ? _filterModel$getRange5 : null;
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, _this$_sheetsFilterSe3;
1968
+ var _this$_sheetsFilterSe2;
1978
1969
  if (filtered) return true;
1979
- return (_this$_sheetsFilterSe2 = (_this$_sheetsFilterSe3 = this._sheetsFilterService.getFilterModel(rowLocation.unitId, rowLocation.subUnitId)) === null || _this$_sheetsFilterSe3 === void 0 ? void 0 : _this$_sheetsFilterSe3.isRowFiltered(rowLocation.row)) !== null && _this$_sheetsFilterSe2 !== void 0 ? _this$_sheetsFilterSe2 : false;
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-alpha.7";
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, _this$_sheetsFilterSe3;
2279
- return (_this$_sheetsFilterSe2 = (_this$_sheetsFilterSe3 = this._sheetsFilterService.getFilterModel(unitId, subUnitId)) === null || _this$_sheetsFilterSe3 === void 0 ? void 0 : _this$_sheetsFilterSe3.isRowFiltered(row)) !== null && _this$_sheetsFilterSe2 !== void 0 ? _this$_sheetsFilterSe2 : false;
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([__decorateParam(1, Inject(Injector)), __decorateParam(2, IConfigService)], UniverSheetsFilterPlugin);
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-alpha.7",
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/core": "1.0.0-alpha.7",
71
- "@univerjs/engine-render": "1.0.0-alpha.7",
72
- "@univerjs/sheets": "1.0.0-alpha.7",
73
- "@univerjs/engine-formula": "1.0.0-alpha.7",
74
- "@univerjs/rpc": "1.0.0-alpha.7"
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-alpha.7"
80
+ "@univerjs-infra/shared": "1.0.0-beta.0"
81
81
  },
82
82
  "scripts": {
83
83
  "test": "vitest run",