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