@univerjs/sheets-filter 0.20.1 → 0.21.0-insiders.20260422-d7fcb4d

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
@@ -1 +1,491 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@univerjs/core`),t=require(`@univerjs/core/facade`),n=require(`@univerjs/sheets-filter`),r=require(`@univerjs/sheets/facade`);var i=class extends t.FUniver{_initialize(t){let r=t.get(e.ICommandService);this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeFilter,()=>r.beforeCommandExecuted(e=>{e.id===n.SetSheetsFilterCriteriaCommand.id&&this._beforeRangeFilter(e)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeFilterClear,()=>r.beforeCommandExecuted(e=>{e.id===n.ClearSheetsFilterCriteriaCommand.id&&this._beforeRangeFilterClear()}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeFiltered,()=>r.onCommandExecuted(e=>{e.id===n.SetSheetsFilterCriteriaCommand.id&&this._onRangeFiltered(e)}))),this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeFilterCleared,()=>r.onCommandExecuted(e=>{e.id===n.ClearSheetsFilterCriteriaCommand.id&&this._onRangeFilterCleared()})))}_beforeRangeFilter(e){let t=e.params,n=this.getUniverSheet(t.unitId),r={workbook:n,worksheet:n.getSheetBySheetId(t.subUnitId),col:t.col,criteria:t.criteria};if(this.fireEvent(this.Event.SheetBeforeRangeFilter,r),r.cancel)throw Error(`SetSheetsFilterCriteriaCommand canceled.`)}_onRangeFiltered(e){let t=e.params,n=this.getUniverSheet(t.unitId),r={workbook:n,worksheet:n.getSheetBySheetId(t.subUnitId),col:t.col,criteria:t.criteria};this.fireEvent(this.Event.SheetRangeFiltered,r)}_beforeRangeFilterClear(){let e=this.getActiveWorkbook();if(!e)return;let t={workbook:e,worksheet:e.getActiveSheet()};if(this.fireEvent(this.Event.SheetBeforeRangeFilterClear,t),t.cancel)throw Error(`SetSheetsFilterCriteriaCommand canceled.`)}_onRangeFilterCleared(){let e=this.getActiveWorkbook();if(!e)return;let t={workbook:e,worksheet:e.getActiveSheet()};this.fireEvent(this.Event.SheetRangeFilterCleared,t)}};t.FUniver.extend(i);function a(e,t){return function(n,r){t(n,r,e)}}function o(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 s=class{constructor(e,t,n,r,i){this._workbook=e,this._worksheet=t,this._filterModel=n,this._injector=r,this._commandSrv=i}getFilteredOutRows(){return Array.from(this._filterModel.filteredOutRows).sort()}getColumnFilterCriteria(e){var t;return(t=this._filterModel.getFilterColumn(e))==null?void 0:t.getColumnData()}removeColumnFilterCriteria(e){return this._commandSrv.syncExecuteCommand(n.SetSheetsFilterCriteriaCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),col:e,criteria:null}),this}setColumnFilterCriteria(e,t){return this._commandSrv.syncExecuteCommand(n.SetSheetsFilterCriteriaCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),col:e,criteria:t}),this}getRange(){let e=this._filterModel.getRange();return this._injector.createInstance(r.FRange,this._workbook,this._worksheet,e)}removeFilterCriteria(){return this._commandSrv.syncExecuteCommand(n.ClearSheetsFilterCriteriaCommand.id),this}remove(){return this._commandSrv.syncExecuteCommand(n.RemoveSheetFilterCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId()})}};s=o([a(3,(0,e.Inject)(e.Injector)),a(4,e.ICommandService)],s);var c=class extends r.FRange{createFilter(){return this._getFilterModel()||!this._commandService.syncExecuteCommand(n.SetSheetFilterRangeCommand.id,{unitId:this._workbook.getUnitId(),subUnitId:this._worksheet.getSheetId(),range:this._range})?null:this.getFilter()}getFilter(){let e=this._getFilterModel();return e?this._injector.createInstance(s,this._workbook,this._worksheet,e):null}_getFilterModel(){return this._injector.get(n.SheetsFilterService).getFilterModel(this._workbook.getUnitId(),this._worksheet.getSheetId())}};r.FRange.extend(c);var l=class extends r.FWorksheet{getFilter(){let e=this._getFilterModel();return e?this._injector.createInstance(s,this._workbook,this._worksheet,e):null}_getFilterModel(){return this._injector.get(n.SheetsFilterService).getFilterModel(this._workbook.getUnitId(),this._worksheet.getSheetId())}};r.FWorksheet.extend(l);var u=class extends t.FEnum{get CustomFilterOperator(){return n.CustomFilterOperator}};t.FEnum.extend(u);var d=class extends t.FEventName{get SheetBeforeRangeFilter(){return`SheetBeforeRangeFilter`}get SheetRangeFiltered(){return`SheetRangeFiltered`}get SheetRangeFilterCleared(){return`SheetRangeFilterCleared`}get SheetBeforeRangeFilterClear(){return`SheetBeforeRangeFilterClear`}};t.FEventName.extend(d),Object.defineProperty(exports,`FFilter`,{enumerable:!0,get:function(){return s}});
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ let _univerjs_core = require("@univerjs/core");
3
+ let _univerjs_core_facade = require("@univerjs/core/facade");
4
+ let _univerjs_sheets_filter = require("@univerjs/sheets-filter");
5
+ let _univerjs_sheets_facade = require("@univerjs/sheets/facade");
6
+
7
+ //#region src/facade/f-univer.ts
8
+ var FUniverSheetsFilterMixin = class extends _univerjs_core_facade.FUniver {
9
+ /**
10
+ * @ignore
11
+ */
12
+ _initialize(injector) {
13
+ const commandService = injector.get(_univerjs_core.ICommandService);
14
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeFilter, () => commandService.beforeCommandExecuted((commandInfo) => {
15
+ if (commandInfo.id === _univerjs_sheets_filter.SetSheetsFilterCriteriaCommand.id) this._beforeRangeFilter(commandInfo);
16
+ })));
17
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetBeforeRangeFilterClear, () => commandService.beforeCommandExecuted((commandInfo) => {
18
+ if (commandInfo.id === _univerjs_sheets_filter.ClearSheetsFilterCriteriaCommand.id) this._beforeRangeFilterClear();
19
+ })));
20
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeFiltered, () => commandService.onCommandExecuted((commandInfo) => {
21
+ if (commandInfo.id === _univerjs_sheets_filter.SetSheetsFilterCriteriaCommand.id) this._onRangeFiltered(commandInfo);
22
+ })));
23
+ this.disposeWithMe(this.registerEventHandler(this.Event.SheetRangeFilterCleared, () => commandService.onCommandExecuted((commandInfo) => {
24
+ if (commandInfo.id === _univerjs_sheets_filter.ClearSheetsFilterCriteriaCommand.id) this._onRangeFilterCleared();
25
+ })));
26
+ }
27
+ _beforeRangeFilter(commandInfo) {
28
+ const params = commandInfo.params;
29
+ const fWorkbook = this.getUniverSheet(params.unitId);
30
+ const eventParams = {
31
+ workbook: fWorkbook,
32
+ worksheet: fWorkbook.getSheetBySheetId(params.subUnitId),
33
+ col: params.col,
34
+ criteria: params.criteria
35
+ };
36
+ this.fireEvent(this.Event.SheetBeforeRangeFilter, eventParams);
37
+ if (eventParams.cancel) throw new Error("SetSheetsFilterCriteriaCommand canceled.");
38
+ }
39
+ _onRangeFiltered(commandInfo) {
40
+ const params = commandInfo.params;
41
+ const fWorkbook = this.getUniverSheet(params.unitId);
42
+ const eventParams = {
43
+ workbook: fWorkbook,
44
+ worksheet: fWorkbook.getSheetBySheetId(params.subUnitId),
45
+ col: params.col,
46
+ criteria: params.criteria
47
+ };
48
+ this.fireEvent(this.Event.SheetRangeFiltered, eventParams);
49
+ }
50
+ _beforeRangeFilterClear() {
51
+ const fWorkbook = this.getActiveWorkbook();
52
+ if (!fWorkbook) return;
53
+ const eventParams = {
54
+ workbook: fWorkbook,
55
+ worksheet: fWorkbook.getActiveSheet()
56
+ };
57
+ this.fireEvent(this.Event.SheetBeforeRangeFilterClear, eventParams);
58
+ if (eventParams.cancel) throw new Error("SetSheetsFilterCriteriaCommand canceled.");
59
+ }
60
+ _onRangeFilterCleared() {
61
+ const fWorkbook = this.getActiveWorkbook();
62
+ if (!fWorkbook) return;
63
+ const eventParams = {
64
+ workbook: fWorkbook,
65
+ worksheet: fWorkbook.getActiveSheet()
66
+ };
67
+ this.fireEvent(this.Event.SheetRangeFilterCleared, eventParams);
68
+ }
69
+ };
70
+ _univerjs_core_facade.FUniver.extend(FUniverSheetsFilterMixin);
71
+
72
+ //#endregion
73
+ //#region \0@oxc-project+runtime@0.124.0/helpers/decorateParam.js
74
+ function __decorateParam(paramIndex, decorator) {
75
+ return function(target, key) {
76
+ decorator(target, key, paramIndex);
77
+ };
78
+ }
79
+
80
+ //#endregion
81
+ //#region \0@oxc-project+runtime@0.124.0/helpers/decorate.js
82
+ function __decorate(decorators, target, key, desc) {
83
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
84
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
85
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
86
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
87
+ }
88
+
89
+ //#endregion
90
+ //#region src/facade/f-filter.ts
91
+ let FFilter = class FFilter {
92
+ constructor(_workbook, _worksheet, _filterModel, _injector, _commandSrv) {
93
+ this._workbook = _workbook;
94
+ this._worksheet = _worksheet;
95
+ this._filterModel = _filterModel;
96
+ this._injector = _injector;
97
+ this._commandSrv = _commandSrv;
98
+ }
99
+ /**
100
+ * Get the filtered out rows by this filter.
101
+ * @returns {number[]} Filtered out rows by this filter.
102
+ * @example
103
+ * ```typescript
104
+ * const fWorkbook = univerAPI.getActiveWorkbook();
105
+ * const fWorksheet = fWorkbook.getActiveSheet();
106
+ *
107
+ * // Set some values of the range C1:F10
108
+ * const fRange = fWorksheet.getRange('C1:F10');
109
+ * fRange.setValues([
110
+ * [1, 2, 3, 4],
111
+ * [2, 3, 4, 5],
112
+ * [3, 4, 5, 6],
113
+ * [4, 5, 6, 7],
114
+ * [5, 6, 7, 8],
115
+ * [6, 7, 8, 9],
116
+ * [7, 8, 9, 10],
117
+ * [8, 9, 10, 11],
118
+ * [9, 10, 11, 12],
119
+ * [10, 11, 12, 13],
120
+ * ]);
121
+ *
122
+ * // Create a filter on the range C1:F10
123
+ * let fFilter = fRange.createFilter();
124
+ *
125
+ * // If the filter already exists, remove it and create a new one
126
+ * if (!fFilter) {
127
+ * fRange.getFilter().remove();
128
+ * fFilter = fRange.createFilter();
129
+ * }
130
+ *
131
+ * // Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
132
+ * const column = fWorksheet.getRange('C:C').getColumn();
133
+ * fFilter.setColumnFilterCriteria(column, {
134
+ * colId: 0,
135
+ * filters: {
136
+ * filters: ['1', '5', '9'],
137
+ * },
138
+ * });
139
+ *
140
+ * // Get the filtered out rows
141
+ * console.log(fFilter.getFilteredOutRows()); // [1, 2, 3, 5, 6, 7, 9]
142
+ * ```
143
+ */
144
+ getFilteredOutRows() {
145
+ return Array.from(this._filterModel.filteredOutRows).sort();
146
+ }
147
+ /**
148
+ * Get the filter criteria of a column.
149
+ * @param {number} column - The column index.
150
+ * @returns {Nullable<IFilterColumn>} The filter criteria of the column.
151
+ * @example
152
+ * ```typescript
153
+ * const fWorkbook = univerAPI.getActiveWorkbook();
154
+ * const fWorksheet = fWorkbook.getActiveSheet();
155
+ *
156
+ * // Set some values of the range C1:F10
157
+ * const fRange = fWorksheet.getRange('C1:F10');
158
+ * fRange.setValues([
159
+ * [1, 2, 3, 4],
160
+ * [2, 3, 4, 5],
161
+ * [3, 4, 5, 6],
162
+ * [4, 5, 6, 7],
163
+ * [5, 6, 7, 8],
164
+ * [6, 7, 8, 9],
165
+ * [7, 8, 9, 10],
166
+ * [8, 9, 10, 11],
167
+ * [9, 10, 11, 12],
168
+ * [10, 11, 12, 13],
169
+ * ]);
170
+ *
171
+ * // Create a filter on the range C1:F10
172
+ * let fFilter = fRange.createFilter();
173
+ *
174
+ * // If the filter already exists, remove it and create a new one
175
+ * if (!fFilter) {
176
+ * fRange.getFilter().remove();
177
+ * fFilter = fRange.createFilter();
178
+ * }
179
+ *
180
+ * // Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
181
+ * const column = fWorksheet.getRange('C:C').getColumn();
182
+ * fFilter.setColumnFilterCriteria(column, {
183
+ * colId: 0,
184
+ * filters: {
185
+ * filters: ['1', '5', '9'],
186
+ * },
187
+ * });
188
+ *
189
+ * // Print the filter criteria of the column C and D
190
+ * console.log(fFilter.getColumnFilterCriteria(column)); // { colId: 0, filters: { filters: ['1', '5', '9'] } }
191
+ * console.log(fFilter.getColumnFilterCriteria(column + 1)); // undefined
192
+ * ```
193
+ */
194
+ getColumnFilterCriteria(column) {
195
+ var _this$_filterModel$ge;
196
+ return (_this$_filterModel$ge = this._filterModel.getFilterColumn(column)) === null || _this$_filterModel$ge === void 0 ? void 0 : _this$_filterModel$ge.getColumnData();
197
+ }
198
+ /**
199
+ * Clear the filter criteria of a column.
200
+ * @param {number} column - The column index.
201
+ * @returns {FFilter} The FFilter instance for chaining.
202
+ * @example
203
+ * ```typescript
204
+ * const fWorkbook = univerAPI.getActiveWorkbook();
205
+ * const fWorksheet = fWorkbook.getActiveSheet();
206
+ *
207
+ * // Set some values of the range C1:F10
208
+ * const fRange = fWorksheet.getRange('C1:F10');
209
+ * fRange.setValues([
210
+ * [1, 2, 3, 4],
211
+ * [2, 3, 4, 5],
212
+ * [3, 4, 5, 6],
213
+ * [4, 5, 6, 7],
214
+ * [5, 6, 7, 8],
215
+ * [6, 7, 8, 9],
216
+ * [7, 8, 9, 10],
217
+ * [8, 9, 10, 11],
218
+ * [9, 10, 11, 12],
219
+ * [10, 11, 12, 13],
220
+ * ]);
221
+ *
222
+ * // Create a filter on the range C1:F10
223
+ * let fFilter = fRange.createFilter();
224
+ *
225
+ * // If the filter already exists, remove it and create a new one
226
+ * if (!fFilter) {
227
+ * fRange.getFilter().remove();
228
+ * fFilter = fRange.createFilter();
229
+ * }
230
+ *
231
+ * // Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
232
+ * const column = fWorksheet.getRange('C:C').getColumn();
233
+ * fFilter.setColumnFilterCriteria(column, {
234
+ * colId: 0,
235
+ * filters: {
236
+ * filters: ['1', '5', '9'],
237
+ * },
238
+ * });
239
+ *
240
+ * // Clear the filter criteria of the column C after 3 seconds
241
+ * setTimeout(() => {
242
+ * fFilter.removeColumnFilterCriteria(column);
243
+ * }, 3000);
244
+ * ```
245
+ */
246
+ removeColumnFilterCriteria(column) {
247
+ this._commandSrv.syncExecuteCommand(_univerjs_sheets_filter.SetSheetsFilterCriteriaCommand.id, {
248
+ unitId: this._workbook.getUnitId(),
249
+ subUnitId: this._worksheet.getSheetId(),
250
+ col: column,
251
+ criteria: null
252
+ });
253
+ return this;
254
+ }
255
+ /**
256
+ * Set the filter criteria of a column.
257
+ * @param {number} column - The column index.
258
+ * @param {ISetSheetsFilterCriteriaCommandParams['criteria']} criteria - The new filter criteria.
259
+ * @returns {FFilter} The FFilter instance for chaining.
260
+ * @example
261
+ * ```typescript
262
+ * const fWorkbook = univerAPI.getActiveWorkbook();
263
+ * const fWorksheet = fWorkbook.getActiveSheet();
264
+ *
265
+ * // Set some values of the range C1:F10
266
+ * const fRange = fWorksheet.getRange('C1:F10');
267
+ * fRange.setValues([
268
+ * [1, 2, 3, 4],
269
+ * [2, 3, 4, 5],
270
+ * [3, 4, 5, 6],
271
+ * [4, 5, 6, 7],
272
+ * [5, 6, 7, 8],
273
+ * [6, 7, 8, 9],
274
+ * [7, 8, 9, 10],
275
+ * [8, 9, 10, 11],
276
+ * [9, 10, 11, 12],
277
+ * [10, 11, 12, 13],
278
+ * ]);
279
+ *
280
+ * // Create a filter on the range C1:F10
281
+ * let fFilter = fRange.createFilter();
282
+ *
283
+ * // If the filter already exists, remove it and create a new one
284
+ * if (!fFilter) {
285
+ * fRange.getFilter().remove();
286
+ * fFilter = fRange.createFilter();
287
+ * }
288
+ *
289
+ * // Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
290
+ * const column = fWorksheet.getRange('C:C').getColumn();
291
+ * fFilter.setColumnFilterCriteria(column, {
292
+ * colId: 0,
293
+ * filters: {
294
+ * filters: ['1', '5', '9'],
295
+ * },
296
+ * });
297
+ * ```
298
+ */
299
+ setColumnFilterCriteria(column, criteria) {
300
+ this._commandSrv.syncExecuteCommand(_univerjs_sheets_filter.SetSheetsFilterCriteriaCommand.id, {
301
+ unitId: this._workbook.getUnitId(),
302
+ subUnitId: this._worksheet.getSheetId(),
303
+ col: column,
304
+ criteria
305
+ });
306
+ return this;
307
+ }
308
+ /**
309
+ * Get the range of the filter.
310
+ * @returns {FRange} The range of the filter.
311
+ * @example
312
+ * ```typescript
313
+ * const fWorkbook = univerAPI.getActiveWorkbook();
314
+ * const fWorksheet = fWorkbook.getActiveSheet();
315
+ * const fFilter = fWorksheet.getFilter();
316
+ * console.log(fFilter?.getRange().getA1Notation());
317
+ * ```
318
+ */
319
+ getRange() {
320
+ const range = this._filterModel.getRange();
321
+ return this._injector.createInstance(_univerjs_sheets_facade.FRange, this._workbook, this._worksheet, range);
322
+ }
323
+ /**
324
+ * Remove the filter criteria of all columns.
325
+ * @returns {FFilter} The FFilter instance for chaining.
326
+ * @example
327
+ * ```typescript
328
+ * const fWorkbook = univerAPI.getActiveWorkbook();
329
+ * const fWorksheet = fWorkbook.getActiveSheet();
330
+ *
331
+ * // Set some values of the range C1:F10
332
+ * const fRange = fWorksheet.getRange('C1:F10');
333
+ * fRange.setValues([
334
+ * [1, 2, 3, 4],
335
+ * [2, 3, 4, 5],
336
+ * [3, 4, 5, 6],
337
+ * [4, 5, 6, 7],
338
+ * [5, 6, 7, 8],
339
+ * [6, 7, 8, 9],
340
+ * [7, 8, 9, 10],
341
+ * [8, 9, 10, 11],
342
+ * [9, 10, 11, 12],
343
+ * [10, 11, 12, 13],
344
+ * ]);
345
+ *
346
+ * // Create a filter on the range C1:F10
347
+ * let fFilter = fRange.createFilter();
348
+ *
349
+ * // If the filter already exists, remove it and create a new one
350
+ * if (!fFilter) {
351
+ * fRange.getFilter().remove();
352
+ * fFilter = fRange.createFilter();
353
+ * }
354
+ *
355
+ * // Set the filter criteria of the column C, filter out the rows that are not 1, 5, 9
356
+ * const column = fWorksheet.getRange('C:C').getColumn();
357
+ * fFilter.setColumnFilterCriteria(column, {
358
+ * colId: 0,
359
+ * filters: {
360
+ * filters: ['1', '5', '9'],
361
+ * },
362
+ * });
363
+ *
364
+ * // Clear the filter criteria of all columns after 3 seconds
365
+ * setTimeout(() => {
366
+ * fFilter.removeFilterCriteria();
367
+ * }, 3000);
368
+ * ```
369
+ */
370
+ removeFilterCriteria() {
371
+ this._commandSrv.syncExecuteCommand(_univerjs_sheets_filter.ClearSheetsFilterCriteriaCommand.id);
372
+ return this;
373
+ }
374
+ /**
375
+ * Remove the filter from the worksheet.
376
+ * @returns {boolean} True if the filter is removed successfully; otherwise, false.
377
+ * @example
378
+ * ```typescript
379
+ * const fWorkbook = univerAPI.getActiveWorkbook();
380
+ * const fWorksheet = fWorkbook.getActiveSheet();
381
+ * const fRange = fWorksheet.getRange('A1:D14');
382
+ * let fFilter = fRange.createFilter();
383
+ *
384
+ * // If the worksheet already has a filter, remove it and create a new filter.
385
+ * if (!fFilter) {
386
+ * fWorksheet.getFilter().remove();
387
+ * fFilter = fRange.createFilter();
388
+ * }
389
+ * console.log(fFilter);
390
+ * ```
391
+ */
392
+ remove() {
393
+ return this._commandSrv.syncExecuteCommand(_univerjs_sheets_filter.RemoveSheetFilterCommand.id, {
394
+ unitId: this._workbook.getUnitId(),
395
+ subUnitId: this._worksheet.getSheetId()
396
+ });
397
+ }
398
+ };
399
+ FFilter = __decorate([__decorateParam(3, (0, _univerjs_core.Inject)(_univerjs_core.Injector)), __decorateParam(4, _univerjs_core.ICommandService)], FFilter);
400
+
401
+ //#endregion
402
+ //#region src/facade/f-range.ts
403
+ var FRangeSheetsFilterMixin = class extends _univerjs_sheets_facade.FRange {
404
+ createFilter() {
405
+ if (this._getFilterModel()) return null;
406
+ if (!this._commandService.syncExecuteCommand(_univerjs_sheets_filter.SetSheetFilterRangeCommand.id, {
407
+ unitId: this._workbook.getUnitId(),
408
+ subUnitId: this._worksheet.getSheetId(),
409
+ range: this._range
410
+ })) return null;
411
+ return this.getFilter();
412
+ }
413
+ /**
414
+ * Get the filter for the current range's worksheet.
415
+ * @returns {FFilter | null} The interface class to handle the filter. If the worksheet does not have a filter,
416
+ * this method would return `null`.
417
+ */
418
+ getFilter() {
419
+ const filterModel = this._getFilterModel();
420
+ if (!filterModel) return null;
421
+ return this._injector.createInstance(FFilter, this._workbook, this._worksheet, filterModel);
422
+ }
423
+ _getFilterModel() {
424
+ return this._injector.get(_univerjs_sheets_filter.SheetsFilterService).getFilterModel(this._workbook.getUnitId(), this._worksheet.getSheetId());
425
+ }
426
+ };
427
+ _univerjs_sheets_facade.FRange.extend(FRangeSheetsFilterMixin);
428
+
429
+ //#endregion
430
+ //#region src/facade/f-worksheet.ts
431
+ var FWorksheetFilterMixin = class extends _univerjs_sheets_facade.FWorksheet {
432
+ getFilter() {
433
+ const filterModel = this._getFilterModel();
434
+ if (!filterModel) return null;
435
+ return this._injector.createInstance(FFilter, this._workbook, this._worksheet, filterModel);
436
+ }
437
+ _getFilterModel() {
438
+ return this._injector.get(_univerjs_sheets_filter.SheetsFilterService).getFilterModel(this._workbook.getUnitId(), this._worksheet.getSheetId());
439
+ }
440
+ };
441
+ _univerjs_sheets_facade.FWorksheet.extend(FWorksheetFilterMixin);
442
+
443
+ //#endregion
444
+ //#region src/facade/f-enum.ts
445
+ /**
446
+ * Copyright 2023-present DreamNum Co., Ltd.
447
+ *
448
+ * Licensed under the Apache License, Version 2.0 (the "License");
449
+ * you may not use this file except in compliance with the License.
450
+ * You may obtain a copy of the License at
451
+ *
452
+ * http://www.apache.org/licenses/LICENSE-2.0
453
+ *
454
+ * Unless required by applicable law or agreed to in writing, software
455
+ * distributed under the License is distributed on an "AS IS" BASIS,
456
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
457
+ * See the License for the specific language governing permissions and
458
+ * limitations under the License.
459
+ */
460
+ var FSheetsFilterEnumMixin = class extends _univerjs_core_facade.FEnum {
461
+ get CustomFilterOperator() {
462
+ return _univerjs_sheets_filter.CustomFilterOperator;
463
+ }
464
+ };
465
+ _univerjs_core_facade.FEnum.extend(FSheetsFilterEnumMixin);
466
+
467
+ //#endregion
468
+ //#region src/facade/f-event.ts
469
+ var FSheetsFilterEventNameMixin = class extends _univerjs_core_facade.FEventName {
470
+ get SheetBeforeRangeFilter() {
471
+ return "SheetBeforeRangeFilter";
472
+ }
473
+ get SheetRangeFiltered() {
474
+ return "SheetRangeFiltered";
475
+ }
476
+ get SheetRangeFilterCleared() {
477
+ return "SheetRangeFilterCleared";
478
+ }
479
+ get SheetBeforeRangeFilterClear() {
480
+ return "SheetBeforeRangeFilterClear";
481
+ }
482
+ };
483
+ _univerjs_core_facade.FEventName.extend(FSheetsFilterEventNameMixin);
484
+
485
+ //#endregion
486
+ Object.defineProperty(exports, 'FFilter', {
487
+ enumerable: true,
488
+ get: function () {
489
+ return FFilter;
490
+ }
491
+ });