@progress/kendo-angular-filter 21.4.1-develop.1 → 22.0.0-develop.1

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.
Files changed (30) hide show
  1. package/base-filter-row.component.d.ts +1 -1
  2. package/fesm2022/progress-kendo-angular-filter.mjs +61 -61
  3. package/localization/messages.d.ts +1 -1
  4. package/package.json +16 -24
  5. package/schematics/ngAdd/index.js +4 -4
  6. package/esm2022/aria-label.directive.mjs +0 -34
  7. package/esm2022/base-filter-row.component.mjs +0 -75
  8. package/esm2022/directives.mjs +0 -17
  9. package/esm2022/editors/boolean-editor.component.mjs +0 -97
  10. package/esm2022/editors/date-editor.component.mjs +0 -75
  11. package/esm2022/editors/numeric-editor.component.mjs +0 -75
  12. package/esm2022/editors/text-editor.component.mjs +0 -62
  13. package/esm2022/error-messages.mjs +0 -16
  14. package/esm2022/filter-expression-operators.component.mjs +0 -90
  15. package/esm2022/filter-expression.component.mjs +0 -352
  16. package/esm2022/filter-field.component.mjs +0 -109
  17. package/esm2022/filter-group.component.mjs +0 -303
  18. package/esm2022/filter.component.mjs +0 -611
  19. package/esm2022/filter.module.mjs +0 -105
  20. package/esm2022/filter.service.mjs +0 -41
  21. package/esm2022/index.mjs +0 -19
  22. package/esm2022/localization/custom-messages.component.mjs +0 -44
  23. package/esm2022/localization/localized-messages.directive.mjs +0 -39
  24. package/esm2022/localization/messages.mjs +0 -243
  25. package/esm2022/model/filter-expression.mjs +0 -8
  26. package/esm2022/navigation.service.mjs +0 -162
  27. package/esm2022/package-metadata.mjs +0 -16
  28. package/esm2022/progress-kendo-angular-filter.mjs +0 -8
  29. package/esm2022/templates/value-editor.template.mjs +0 -32
  30. package/esm2022/util.mjs +0 -174
@@ -1,611 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, Input, Output, EventEmitter, HostBinding, isDevMode, ContentChildren, QueryList, HostListener, ElementRef, ViewChildren, Renderer2 } from '@angular/core';
6
- import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { FilterService } from './filter.service';
8
- import { nullOperators, isPresent } from './util';
9
- import { ChangeDetectorRef } from '@angular/core';
10
- import { validatePackage } from '@progress/kendo-licensing';
11
- import { packageMetadata } from './package-metadata';
12
- import { FilterFieldComponent } from './filter-field.component';
13
- import { FilterItem } from './util';
14
- import { NavigationService } from './navigation.service';
15
- import { Keys, normalizeKeys } from '@progress/kendo-angular-common';
16
- import { FilterErrorMessages } from './error-messages';
17
- import { FilterGroupComponent } from './filter-group.component';
18
- import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
19
- import * as i0 from "@angular/core";
20
- import * as i1 from "./filter.service";
21
- import * as i2 from "@progress/kendo-angular-l10n";
22
- import * as i3 from "./navigation.service";
23
- /**
24
- * Represents the [Kendo UI Filter component for Angular]({% slug overview_filter %}).
25
- * The Filter component enables users to define and apply complex filter criteria.
26
- *
27
- * @example
28
- * ```ts
29
- * @Component({
30
- * selector: 'my-app',
31
- * template: `
32
- * <kendo-filter [filters]="filters" (valueChange)="onValueChange($event)"></kendo-filter>
33
- * `
34
- * })
35
- * export class AppComponent {
36
- * public filters: FilterExpression[] = [
37
- * {
38
- * name: 'country',
39
- * label: 'Country',
40
- * filter: 'string',
41
- * operators: ['eq', 'neq'],
42
- * },
43
- * {
44
- * name: 'budget',
45
- * filter: 'number'
46
- * }
47
- * ];
48
- *
49
- * onValueChange(e: CompositeFilterDescriptor) {
50
- * console.log(e);
51
- * }
52
- * }
53
- * ```
54
- *
55
- * @remarks
56
- * Supported children components are: {@link CustomMessagesComponent}, {@link FilterFieldComponent}.
57
- */
58
- export class FilterComponent {
59
- filterService;
60
- localization;
61
- cdr;
62
- element;
63
- navigationService;
64
- renderer;
65
- /**
66
- * @hidden
67
- */
68
- focusout() {
69
- setTimeout(() => {
70
- if (!(document.activeElement.closest('.k-filter'))) {
71
- this.renderer.setAttribute(this.navigationService.currentlyFocusedElement, 'tabindex', '-1');
72
- this.navigationService.currentlyFocusedElement = this.navigationService.flattenFilterItems[this.navigationService.currentToolbarItemIndex].focusableChildren[0];
73
- this.renderer.setAttribute(this.navigationService.currentlyFocusedElement, 'tabindex', '0');
74
- this.navigationService.isFilterNavigationActivated = false;
75
- this.navigationService.isFilterExpressionComponentFocused = false;
76
- }
77
- });
78
- }
79
- /**
80
- * @hidden
81
- */
82
- focusin() {
83
- if (this.navigationService.isFilterNavigationActivated) {
84
- return;
85
- }
86
- this.navigationService.isFilterNavigationActivated = true;
87
- this.navigationService.currentToolbarItemChildrenIndex = 0;
88
- }
89
- /**
90
- * @hidden
91
- */
92
- onKeydown(event) {
93
- const keyCode = normalizeKeys(event);
94
- const keys = [Keys.ArrowUp, Keys.ArrowDown, Keys.ArrowLeft, Keys.ArrowRight, Keys.Enter,
95
- Keys.NumpadEnter, Keys.Escape, Keys.Tab];
96
- if (keys.indexOf(keyCode) > -1) {
97
- this.navigationService.processKeyDown(keyCode, event);
98
- }
99
- }
100
- direction;
101
- /**
102
- * Specifies the available user-defined filters. At least one filter should be provided.
103
- */
104
- set filters(_filters) {
105
- if (_filters.length > 0) {
106
- this.filterService.filters = _filters.map(filterExpression => {
107
- const clonedFilter = Object.assign({}, filterExpression);
108
- if (!clonedFilter.title) {
109
- clonedFilter.title = clonedFilter.field;
110
- }
111
- return clonedFilter;
112
- });
113
- this.setValue(this.value);
114
- }
115
- }
116
- get filters() {
117
- return this.filterService.filters;
118
- }
119
- /**
120
- * Sets the initial `value` of the Filter component.
121
- */
122
- set value(value) {
123
- const clonedValue = structuredClone(value);
124
- if (this.filtersTypeChanged(this.value, clonedValue)) {
125
- // due to tracking group items by index, the filters should first be set to [] when the value is changed programmatically
126
- this.currentFilter.filters = [];
127
- this.cdr.detectChanges();
128
- }
129
- this._value = clonedValue;
130
- if (this.filters.length > 0) {
131
- this.setValue(this.value);
132
- }
133
- }
134
- get value() {
135
- return this._value;
136
- }
137
- /**
138
- * Fires every time the Filter component value is updated.
139
- * That is each time a Filter Group or Filter Expression is added, removed, or updated.
140
- */
141
- valueChange = new EventEmitter();
142
- localizationSubscription;
143
- filterFieldsSubscription;
144
- _value = { filters: [], logic: 'and' };
145
- filterFields;
146
- _filterItems;
147
- get filterItems() {
148
- return this._filterItems.toArray();
149
- }
150
- get toolbarElement() {
151
- return this.element.nativeElement.querySelector('.k-toolbar');
152
- }
153
- constructor(filterService, localization, cdr, element, navigationService, renderer) {
154
- this.filterService = filterService;
155
- this.localization = localization;
156
- this.cdr = cdr;
157
- this.element = element;
158
- this.navigationService = navigationService;
159
- this.renderer = renderer;
160
- validatePackage(packageMetadata);
161
- this.direction = localization.rtl ? 'rtl' : 'ltr';
162
- }
163
- ngOnInit() {
164
- this.localizationSubscription = this.localization.changes.subscribe(({ rtl }) => {
165
- this.direction = rtl ? 'rtl' : 'ltr';
166
- this.cdr.detectChanges();
167
- });
168
- }
169
- ngAfterViewInit() {
170
- this.filterFieldsChanged();
171
- this.filterFieldsSubscription = this.filterFields.changes.subscribe(this.filterFieldsChanged.bind(this));
172
- }
173
- ngOnDestroy() {
174
- if (this.localizationSubscription) {
175
- this.localizationSubscription.unsubscribe();
176
- }
177
- if (this.filterFieldsSubscription) {
178
- this.filterFieldsSubscription.unsubscribe();
179
- }
180
- }
181
- filterFieldsChanged() {
182
- if (this.filterFields && this.filterFields.length > 0) {
183
- this.filters = this.filterFields.map((filterField) => ({
184
- ...filterField,
185
- title: filterField.title,
186
- editorTemplate: filterField.editorTemplate?.templateRef
187
- }));
188
- }
189
- if (this.filters.length === 0) {
190
- throw new Error(FilterErrorMessages.missingFilters);
191
- }
192
- this.navigationService.reset(this.filterItems);
193
- if (!this.navigationService.currentlyFocusedElement) {
194
- const firstElement = this.navigationService.flattenFilterItems[0].focusableChildren[0];
195
- this.navigationService.currentlyFocusedElement = firstElement;
196
- this.renderer.setAttribute(firstElement, 'tabindex', '0');
197
- }
198
- }
199
- _currentFilter = { logic: 'and', filters: [] };
200
- /**
201
- * @hidden
202
- */
203
- get currentFilter() {
204
- return this._currentFilter;
205
- }
206
- /**
207
- * @hidden
208
- */
209
- set currentFilter(value) {
210
- this._currentFilter = value;
211
- }
212
- /**
213
- * @hidden
214
- */
215
- onValueChange(isRemoveOperation) {
216
- this.cdr.detectChanges();
217
- this.valueChange.emit(this.filterService.normalizedValue);
218
- this.navigationService.reset(this.filterItems);
219
- if (isRemoveOperation) {
220
- if (this.navigationService.currentToolbarItemIndex === this.navigationService.flattenFilterItems.length) {
221
- this.navigationService.currentToolbarItemIndex -= 1;
222
- }
223
- this.navigationService.isFilterExpressionComponentFocused = false;
224
- const itemIndex = this.navigationService.currentToolbarItemIndex;
225
- const toolbarItem = this.navigationService.flattenFilterItems[itemIndex];
226
- const activeChildIndex = toolbarItem.focusableChildren.length - 1;
227
- this.navigationService.currentlyFocusedElement = toolbarItem.focusableChildren[activeChildIndex];
228
- this.renderer.setAttribute(this.navigationService.currentlyFocusedElement, 'tabindex', '0');
229
- this.renderer.addClass(this.navigationService.currentlyFocusedElement, 'k-focus');
230
- this.navigationService.currentlyFocusedElement.focus();
231
- }
232
- }
233
- normalizeFilter(filterDescriptor) {
234
- const foundFilter = this.filterService.filters.find((filter) => filter.field === filterDescriptor.field);
235
- if (isDevMode() && !foundFilter) {
236
- throw new Error(FilterErrorMessages.missingFilterForUsedField(filterDescriptor.field));
237
- }
238
- if (isDevMode() && foundFilter.editor === 'boolean' && (!filterDescriptor.value && filterDescriptor.value !== false)) {
239
- console.warn(FilterErrorMessages.missingValueForBooleanField(filterDescriptor.field));
240
- }
241
- if (isDevMode() && foundFilter.editor === 'boolean' && filterDescriptor.operator !== 'eq') {
242
- console.warn(FilterErrorMessages.operatorBooleanField(filterDescriptor.field));
243
- }
244
- if (filterDescriptor.operator && foundFilter.operators && !foundFilter.operators.some(operator => operator === filterDescriptor.operator)) {
245
- throw new Error(FilterErrorMessages.filterMissingUsedOperator(filterDescriptor.field, filterDescriptor.operator));
246
- }
247
- if (foundFilter.editor === 'boolean') {
248
- filterDescriptor.operator = 'eq';
249
- }
250
- if (foundFilter.editor === 'date' && filterDescriptor.value) {
251
- filterDescriptor.value = new Date(filterDescriptor.value);
252
- }
253
- if (!isPresent(filterDescriptor.value)) {
254
- filterDescriptor.value = null;
255
- }
256
- if (nullOperators.indexOf(filterDescriptor.operator) >= 0) {
257
- filterDescriptor.value = null;
258
- }
259
- }
260
- setValue(items) {
261
- this.normalizeValue(items);
262
- this.filterService.normalizedValue = items;
263
- this.currentFilter = items;
264
- this.cdr.detectChanges();
265
- this.navigationService.reset(this.filterItems);
266
- }
267
- normalizeValue(items) {
268
- if (!this.filterService.filters.length) {
269
- return;
270
- }
271
- items.filters.forEach((item) => {
272
- if (item.filters) {
273
- this.normalizeValue(item);
274
- }
275
- else {
276
- this.normalizeFilter(item);
277
- }
278
- });
279
- }
280
- /**
281
- * @hidden
282
- */
283
- messageFor(key) {
284
- return this.localization.get(key);
285
- }
286
- /**
287
- * @hidden
288
- */
289
- filtersTypeChanged(previousValue, newValue) {
290
- if (!(previousValue?.filters) && !(newValue?.filters)) {
291
- return previousValue?.operator != newValue?.operator ||
292
- previousValue?.field != newValue?.field;
293
- }
294
- if (!(previousValue?.filters) || !(newValue?.filters)) {
295
- return true;
296
- }
297
- const previousFilters = previousValue.filters;
298
- const newFilters = newValue.filters;
299
- if (previousFilters.length !== newFilters.length) {
300
- return true;
301
- }
302
- for (let i = 0; i < previousFilters.length; i++) {
303
- if (this.filtersTypeChanged(previousFilters[i], newFilters[i])) {
304
- return true;
305
- }
306
- }
307
- return false;
308
- }
309
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterComponent, deps: [{ token: i1.FilterService }, { token: i2.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i3.NavigationService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
310
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: FilterComponent, isStandalone: true, selector: "kendo-filter", inputs: { filters: "filters", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "focusout": "focusout($event)", "focusin": "focusin($event)", "keydown": "onKeydown($event)" }, properties: { "attr.dir": "this.direction" } }, providers: [
311
- LocalizationService,
312
- {
313
- provide: L10N_PREFIX,
314
- useValue: 'kendo.filter'
315
- },
316
- FilterService,
317
- NavigationService
318
- ], queries: [{ propertyName: "filterFields", predicate: FilterFieldComponent }], viewQueries: [{ propertyName: "_filterItems", predicate: FilterItem, descendants: true }], ngImport: i0, template: `
319
- <ng-container kendoFilterLocalizedMessages
320
- i18n-editorDateTodayText="kendo.filter.editorDateTodayText|The text of the Today button of the Date editor"
321
- editorDateTodayText="Today"
322
-
323
- i18n-editorDateToggleText="kendo.filter.editorDateToggleText|The title of the Toggle button of the Date editor."
324
- editorDateToggleText="Toggle calendar"
325
-
326
- i18n-editorNumericDecrement="kendo.filter.editorNumericDecrement|The title of the Decrement button of the Numeric editor"
327
- editorNumericDecrement="Decrement"
328
-
329
- i18n-editorNumericIncrement="kendo.filter.editorNumericIncrement|The title of the Increment button of the Numeric editor"
330
- editorNumericIncrement="Increment"
331
-
332
- i18n-filterExpressionOperators="kendo.filter.filterExpressionOperators|The text of the Filter Expression Operators drop down"
333
- filterExpressionOperators="Operators"
334
-
335
- i18n-filterExpressionFilters="kendo.filter.filterExpressionFilters|The text of the Filter Expression filters drop down"
336
- filterExpressionFilters="Fields"
337
-
338
- i18n-remove="kendo.filter.remove|The text of the Remove button"
339
- remove="Remove"
340
-
341
- i18n-addFilter="kendo.filter.addFilter|The text of the Add Filter button"
342
- addFilter="Add Filter"
343
-
344
- i18n-addGroup="kendo.filter.addGroup|The text of the Add Group button"
345
- addGroup="Add Group"
346
-
347
- i18n-filterAndLogic="kendo.filter.filterAndLogic|The text of the And filter logic"
348
- filterAndLogic="And"
349
-
350
- i18n-filterOrLogic="kendo.filter.filterOrLogic|The text of the Or filter logic"
351
- filterOrLogic="Or"
352
-
353
- i18n-filterEqOperator="kendo.filter.filterEqOperator|The text of the equal filter operator"
354
- filterEqOperator="Is equal to"
355
-
356
- i18n-filterNotEqOperator="kendo.filter.filterNotEqOperator|The text of the not equal filter operator"
357
- filterNotEqOperator="Is not equal to"
358
-
359
- i18n-filterIsNullOperator="kendo.filter.filterIsNullOperator|The text of the is null filter operator"
360
- filterIsNullOperator="Is null"
361
-
362
- i18n-filterIsNotNullOperator="kendo.filter.filterIsNotNullOperator|The text of the is not null filter operator"
363
- filterIsNotNullOperator="Is not null"
364
-
365
- i18n-filterIsEmptyOperator="kendo.filter.filterIsEmptyOperator|The text of the is empty filter operator"
366
- filterIsEmptyOperator="Is empty"
367
-
368
- i18n-filterIsNotEmptyOperator="kendo.filter.filterIsNotEmptyOperator|The text of the is not empty filter operator"
369
- filterIsNotEmptyOperator="Is not empty"
370
-
371
- i18n-filterStartsWithOperator="kendo.filter.filterStartsWithOperator|The text of the starts with filter operator"
372
- filterStartsWithOperator="Starts with"
373
-
374
- i18n-filterContainsOperator="kendo.filter.filterContainsOperator|The text of the contains filter operator"
375
- filterContainsOperator="Contains"
376
-
377
- i18n-filterNotContainsOperator="kendo.filter.filterNotContainsOperator|The text of the does not contain filter operator"
378
- filterNotContainsOperator="Does not contain"
379
-
380
- i18n-filterEndsWithOperator="kendo.filter.filterEndsWithOperator|The text of the ends with filter operator"
381
- filterEndsWithOperator="Ends with"
382
-
383
- i18n-filterGteOperator="kendo.filter.filterGteOperator|The text of the greater than or equal filter operator"
384
- filterGteOperator="Is greater than or equal to"
385
-
386
- i18n-filterGtOperator="kendo.filter.filterGtOperator|The text of the greater than filter operator"
387
- filterGtOperator="Is greater than"
388
-
389
- i18n-filterLteOperator="kendo.filter.filterLteOperator|The text of the less than or equal filter operator"
390
- filterLteOperator="Is less than or equal to"
391
-
392
- i18n-filterLtOperator="kendo.filter.filterLtOperator|The text of the less than filter operator"
393
- filterLtOperator="Is less than"
394
-
395
- i18n-filterIsTrue="kendo.filter.filterIsTrue|The text of the IsTrue boolean filter option"
396
- filterIsTrue="Is True"
397
-
398
- i18n-filterIsFalse="kendo.filter.filterIsFalse|The text of the IsFalse boolean filter option"
399
- filterIsFalse="Is False"
400
-
401
- i18n-filterBooleanAll="kendo.filter.filterBooleanAll|The text of the (All) boolean filter option"
402
- filterBooleanAll="(All)"
403
-
404
- i18n-filterAfterOrEqualOperator="kendo.filter.filterAfterOrEqualOperator|The text of the after or equal date filter operator"
405
- filterAfterOrEqualOperator="Is after or equal to"
406
-
407
- i18n-filterAfterOperator="kendo.filter.filterAfterOperator|The text of the after date filter operator"
408
- filterAfterOperator="Is after"
409
-
410
- i18n-filterBeforeOperator="kendo.filter.filterBeforeOperator|The text of the before date filter operator"
411
- filterBeforeOperator="Is before"
412
-
413
- i18n-filterBeforeOrEqualOperator="kendo.filter.filterBeforeOrEqualOperator|The text of the before or equal date filter operator"
414
- filterBeforeOrEqualOperator="Is before or equal to"
415
-
416
- i18n-filterFieldAriaLabel="kendo.filter.filterFieldAriaLabel|The text of the filter field aria label"
417
- filterFieldAriaLabel="field"
418
-
419
- i18n-filterOperatorAriaLabel="kendo.filter.filterOperatorAriaLabel|The text of the filter operator aria label"
420
- filterOperatorAriaLabel="operator"
421
-
422
- i18n-filterValueAriaLabel="kendo.filter.filterValueAriaLabel|The text of the filter value aria label"
423
- filterValueAriaLabel="value"
424
-
425
- i18n-filterToolbarAriaLabel="kendo.filter.filterToolbarAriaLabel|The text of the filter row aria label"
426
- filterToolbarAriaLabel="filter row settings"
427
-
428
- i18n-filterComponentAriaLabel="kendo.filter.filterComponentAriaLabel|The text of the filter component aria label"
429
- filterComponentAriaLabel="filter component"
430
- >
431
- </ng-container>
432
- <div class="k-filter" [attr.dir]="direction">
433
- <ul class='k-filter-container' role="tree" [attr.aria-label]="messageFor('filterComponentAriaLabel')">
434
- <li class='k-filter-group-main' role="treeitem">
435
- <kendo-filter-group
436
- [currentItem]="currentFilter"
437
- (valueChange)="onValueChange($event)"
438
- >
439
- </kendo-filter-group>
440
- </li>
441
- </ul>
442
- </div>
443
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoFilterLocalizedMessages]" }, { kind: "component", type: FilterGroupComponent, selector: "kendo-filter-group", inputs: ["currentItem"] }] });
444
- }
445
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterComponent, decorators: [{
446
- type: Component,
447
- args: [{
448
- providers: [
449
- LocalizationService,
450
- {
451
- provide: L10N_PREFIX,
452
- useValue: 'kendo.filter'
453
- },
454
- FilterService,
455
- NavigationService
456
- ],
457
- selector: 'kendo-filter',
458
- template: `
459
- <ng-container kendoFilterLocalizedMessages
460
- i18n-editorDateTodayText="kendo.filter.editorDateTodayText|The text of the Today button of the Date editor"
461
- editorDateTodayText="Today"
462
-
463
- i18n-editorDateToggleText="kendo.filter.editorDateToggleText|The title of the Toggle button of the Date editor."
464
- editorDateToggleText="Toggle calendar"
465
-
466
- i18n-editorNumericDecrement="kendo.filter.editorNumericDecrement|The title of the Decrement button of the Numeric editor"
467
- editorNumericDecrement="Decrement"
468
-
469
- i18n-editorNumericIncrement="kendo.filter.editorNumericIncrement|The title of the Increment button of the Numeric editor"
470
- editorNumericIncrement="Increment"
471
-
472
- i18n-filterExpressionOperators="kendo.filter.filterExpressionOperators|The text of the Filter Expression Operators drop down"
473
- filterExpressionOperators="Operators"
474
-
475
- i18n-filterExpressionFilters="kendo.filter.filterExpressionFilters|The text of the Filter Expression filters drop down"
476
- filterExpressionFilters="Fields"
477
-
478
- i18n-remove="kendo.filter.remove|The text of the Remove button"
479
- remove="Remove"
480
-
481
- i18n-addFilter="kendo.filter.addFilter|The text of the Add Filter button"
482
- addFilter="Add Filter"
483
-
484
- i18n-addGroup="kendo.filter.addGroup|The text of the Add Group button"
485
- addGroup="Add Group"
486
-
487
- i18n-filterAndLogic="kendo.filter.filterAndLogic|The text of the And filter logic"
488
- filterAndLogic="And"
489
-
490
- i18n-filterOrLogic="kendo.filter.filterOrLogic|The text of the Or filter logic"
491
- filterOrLogic="Or"
492
-
493
- i18n-filterEqOperator="kendo.filter.filterEqOperator|The text of the equal filter operator"
494
- filterEqOperator="Is equal to"
495
-
496
- i18n-filterNotEqOperator="kendo.filter.filterNotEqOperator|The text of the not equal filter operator"
497
- filterNotEqOperator="Is not equal to"
498
-
499
- i18n-filterIsNullOperator="kendo.filter.filterIsNullOperator|The text of the is null filter operator"
500
- filterIsNullOperator="Is null"
501
-
502
- i18n-filterIsNotNullOperator="kendo.filter.filterIsNotNullOperator|The text of the is not null filter operator"
503
- filterIsNotNullOperator="Is not null"
504
-
505
- i18n-filterIsEmptyOperator="kendo.filter.filterIsEmptyOperator|The text of the is empty filter operator"
506
- filterIsEmptyOperator="Is empty"
507
-
508
- i18n-filterIsNotEmptyOperator="kendo.filter.filterIsNotEmptyOperator|The text of the is not empty filter operator"
509
- filterIsNotEmptyOperator="Is not empty"
510
-
511
- i18n-filterStartsWithOperator="kendo.filter.filterStartsWithOperator|The text of the starts with filter operator"
512
- filterStartsWithOperator="Starts with"
513
-
514
- i18n-filterContainsOperator="kendo.filter.filterContainsOperator|The text of the contains filter operator"
515
- filterContainsOperator="Contains"
516
-
517
- i18n-filterNotContainsOperator="kendo.filter.filterNotContainsOperator|The text of the does not contain filter operator"
518
- filterNotContainsOperator="Does not contain"
519
-
520
- i18n-filterEndsWithOperator="kendo.filter.filterEndsWithOperator|The text of the ends with filter operator"
521
- filterEndsWithOperator="Ends with"
522
-
523
- i18n-filterGteOperator="kendo.filter.filterGteOperator|The text of the greater than or equal filter operator"
524
- filterGteOperator="Is greater than or equal to"
525
-
526
- i18n-filterGtOperator="kendo.filter.filterGtOperator|The text of the greater than filter operator"
527
- filterGtOperator="Is greater than"
528
-
529
- i18n-filterLteOperator="kendo.filter.filterLteOperator|The text of the less than or equal filter operator"
530
- filterLteOperator="Is less than or equal to"
531
-
532
- i18n-filterLtOperator="kendo.filter.filterLtOperator|The text of the less than filter operator"
533
- filterLtOperator="Is less than"
534
-
535
- i18n-filterIsTrue="kendo.filter.filterIsTrue|The text of the IsTrue boolean filter option"
536
- filterIsTrue="Is True"
537
-
538
- i18n-filterIsFalse="kendo.filter.filterIsFalse|The text of the IsFalse boolean filter option"
539
- filterIsFalse="Is False"
540
-
541
- i18n-filterBooleanAll="kendo.filter.filterBooleanAll|The text of the (All) boolean filter option"
542
- filterBooleanAll="(All)"
543
-
544
- i18n-filterAfterOrEqualOperator="kendo.filter.filterAfterOrEqualOperator|The text of the after or equal date filter operator"
545
- filterAfterOrEqualOperator="Is after or equal to"
546
-
547
- i18n-filterAfterOperator="kendo.filter.filterAfterOperator|The text of the after date filter operator"
548
- filterAfterOperator="Is after"
549
-
550
- i18n-filterBeforeOperator="kendo.filter.filterBeforeOperator|The text of the before date filter operator"
551
- filterBeforeOperator="Is before"
552
-
553
- i18n-filterBeforeOrEqualOperator="kendo.filter.filterBeforeOrEqualOperator|The text of the before or equal date filter operator"
554
- filterBeforeOrEqualOperator="Is before or equal to"
555
-
556
- i18n-filterFieldAriaLabel="kendo.filter.filterFieldAriaLabel|The text of the filter field aria label"
557
- filterFieldAriaLabel="field"
558
-
559
- i18n-filterOperatorAriaLabel="kendo.filter.filterOperatorAriaLabel|The text of the filter operator aria label"
560
- filterOperatorAriaLabel="operator"
561
-
562
- i18n-filterValueAriaLabel="kendo.filter.filterValueAriaLabel|The text of the filter value aria label"
563
- filterValueAriaLabel="value"
564
-
565
- i18n-filterToolbarAriaLabel="kendo.filter.filterToolbarAriaLabel|The text of the filter row aria label"
566
- filterToolbarAriaLabel="filter row settings"
567
-
568
- i18n-filterComponentAriaLabel="kendo.filter.filterComponentAriaLabel|The text of the filter component aria label"
569
- filterComponentAriaLabel="filter component"
570
- >
571
- </ng-container>
572
- <div class="k-filter" [attr.dir]="direction">
573
- <ul class='k-filter-container' role="tree" [attr.aria-label]="messageFor('filterComponentAriaLabel')">
574
- <li class='k-filter-group-main' role="treeitem">
575
- <kendo-filter-group
576
- [currentItem]="currentFilter"
577
- (valueChange)="onValueChange($event)"
578
- >
579
- </kendo-filter-group>
580
- </li>
581
- </ul>
582
- </div>
583
- `,
584
- standalone: true,
585
- imports: [LocalizedMessagesDirective, FilterGroupComponent]
586
- }]
587
- }], ctorParameters: () => [{ type: i1.FilterService }, { type: i2.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i3.NavigationService }, { type: i0.Renderer2 }], propDecorators: { focusout: [{
588
- type: HostListener,
589
- args: ['focusout', ['$event']]
590
- }], focusin: [{
591
- type: HostListener,
592
- args: ['focusin', ['$event']]
593
- }], onKeydown: [{
594
- type: HostListener,
595
- args: ['keydown', ['$event']]
596
- }], direction: [{
597
- type: HostBinding,
598
- args: ['attr.dir']
599
- }], filters: [{
600
- type: Input
601
- }], value: [{
602
- type: Input
603
- }], valueChange: [{
604
- type: Output
605
- }], filterFields: [{
606
- type: ContentChildren,
607
- args: [FilterFieldComponent]
608
- }], _filterItems: [{
609
- type: ViewChildren,
610
- args: [FilterItem]
611
- }] } });