@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 +491 -1
- package/lib/cjs/index.js +2351 -1
- package/lib/es/facade.js +485 -1
- package/lib/es/index.js +2310 -1
- package/lib/facade.js +485 -1
- package/lib/index.js +2310 -1
- package/lib/umd/index.js +1 -1
- package/package.json +8 -8
- package/LICENSE +0 -176
package/lib/cjs/facade.js
CHANGED
|
@@ -1 +1,491 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,
|
|
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
|
+
});
|