@progress/kendo-angular-filter 24.0.0-develop.3 → 24.0.0-develop.30

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.
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { ElementRef, OnInit, Renderer2, TemplateRef } from '@angular/core';
5
+ import { DoCheck, ElementRef, OnInit, Renderer2, TemplateRef } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { CompositeFilterDescriptor, FilterDescriptor } from '@progress/kendo-data-query';
8
8
  import { SVGIcon } from '@progress/kendo-svg-icons';
@@ -14,7 +14,7 @@ import * as i0 from "@angular/core";
14
14
  /**
15
15
  * @hidden
16
16
  */
17
- export declare class FilterExpressionComponent extends BaseFilterRowComponent implements OnInit {
17
+ export declare class FilterExpressionComponent extends BaseFilterRowComponent implements OnInit, DoCheck {
18
18
  private filterService;
19
19
  /**
20
20
  * @hidden
@@ -27,13 +27,18 @@ export declare class FilterExpressionComponent extends BaseFilterRowComponent im
27
27
  editorType: FilterEditor;
28
28
  isEditorDisabled: boolean;
29
29
  editorTemplate: TemplateRef<any>;
30
+ operatorTemplate: TemplateRef<any>;
30
31
  editorFormat: string | DateFormat | NumberFormat;
32
+ get availableFilters(): FilterExpression[];
33
+ private _previousField;
34
+ get fieldTemplate(): TemplateRef<any>;
31
35
  private get currentFilterExpression();
32
36
  get numericEditorFormat(): string | NumberFormat;
33
37
  get dateEditorFormat(): string | DateFormat;
34
38
  private isNumberFormat;
35
39
  private isDateFormat;
36
40
  constructor(filterService: FilterService, element: ElementRef, navigationService: NavigationService, localization: LocalizationService, renderer: Renderer2);
41
+ ngDoCheck(): void;
37
42
  ngOnInit(): void;
38
43
  normalizeOperators(filterEditor: FilterEditor, operators: FilterOperator[]): {
39
44
  text: string;
@@ -46,11 +51,10 @@ export declare class FilterExpressionComponent extends BaseFilterRowComponent im
46
51
  value: string;
47
52
  }[];
48
53
  getEditorType(): FilterEditor;
49
- getFilters(): FilterExpression[];
50
54
  removeFilterExpression(): void;
51
55
  private setOperators;
52
56
  onOperatorChange(value: string): void;
53
- setEditorTemplate(): void;
57
+ setTemplates(): void;
54
58
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterExpressionComponent, never>;
55
59
  static ɵcmp: i0.ɵɵComponentDeclaration<FilterExpressionComponent, "kendo-filter-expression", never, { "currentItem": { "alias": "currentItem"; "required": false; }; }, {}, never, never, true, never>;
56
60
  }
@@ -3,7 +3,8 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { DateFormat, FilterEditor, FilterOperator, NumberFormat } from './model/filter-expression';
6
- import { FilterValueEditorTemplateDirective } from './templates/value-editor.template';
6
+ import { FilterValueEditorTemplateDirective } from './templates/value-editor-template.directive';
7
+ import { FilterOperatorTemplateDirective } from './templates/operator-template.directive';
7
8
  import * as i0 from "@angular/core";
8
9
  /**
9
10
  * Represents the [Kendo UI Filter Field component for Angular](https://www.telerik.com/kendo-angular-ui/components/filter/api/filterfieldcomponent).
@@ -73,6 +74,10 @@ export declare class FilterFieldComponent {
73
74
  * @hidden
74
75
  */
75
76
  editorTemplate: FilterValueEditorTemplateDirective;
77
+ /**
78
+ * @hidden
79
+ */
80
+ operatorTemplate: FilterOperatorTemplateDirective;
76
81
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterFieldComponent, never>;
77
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterFieldComponent, "kendo-filter-field", never, { "field": { "alias": "field"; "required": false; }; "title": { "alias": "title"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "operators": { "alias": "operators"; "required": false; }; "editorFormat": { "alias": "editorFormat"; "required": false; }; }, {}, ["editorTemplate"], never, true, never>;
82
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterFieldComponent, "kendo-filter-field", never, { "field": { "alias": "field"; "required": false; }; "title": { "alias": "title"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "operators": { "alias": "operators"; "required": false; }; "editorFormat": { "alias": "editorFormat"; "required": false; }; }, {}, ["editorTemplate", "operatorTemplate"], never, true, never>;
78
83
  }
@@ -2,7 +2,7 @@
2
2
  * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { OnInit, EventEmitter, ElementRef, Renderer2 } from '@angular/core';
5
+ import { AfterContentInit, ElementRef, EventEmitter, OnInit, Renderer2 } from '@angular/core';
6
6
  import { LocalizationService } from '@progress/kendo-angular-l10n';
7
7
  import { FilterService } from './filter.service';
8
8
  import { CompositeFilterDescriptor } from '@progress/kendo-data-query';
@@ -48,7 +48,7 @@ import * as i0 from "@angular/core";
48
48
  * @remarks
49
49
  * Supported children components are: {@link CustomMessagesComponent}, {@link FilterFieldComponent}.
50
50
  */
51
- export declare class FilterComponent implements OnInit, OnDestroy {
51
+ export declare class FilterComponent implements OnInit, AfterContentInit, OnDestroy {
52
52
  private filterService;
53
53
  private localization;
54
54
  private cdr;
@@ -87,11 +87,13 @@ export declare class FilterComponent implements OnInit, OnDestroy {
87
87
  private filterFieldsSubscription;
88
88
  private _value;
89
89
  private filterFields;
90
+ private fieldTemplate;
90
91
  private _filterItems;
91
92
  get filterItems(): FilterItem[];
92
93
  get toolbarElement(): HTMLElement;
93
94
  constructor(filterService: FilterService, localization: LocalizationService, cdr: ChangeDetectorRef, element: ElementRef, navigationService: NavigationService, renderer: Renderer2);
94
95
  ngOnInit(): void;
96
+ ngAfterContentInit(): void;
95
97
  ngAfterViewInit(): void;
96
98
  ngOnDestroy(): void;
97
99
  private filterFieldsChanged;
@@ -120,5 +122,5 @@ export declare class FilterComponent implements OnInit, OnDestroy {
120
122
  */
121
123
  private filtersTypeChanged;
122
124
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterComponent, never>;
123
- static ɵcmp: i0.ɵɵComponentDeclaration<FilterComponent, "kendo-filter", never, { "filters": { "alias": "filters"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, ["filterFields"], never, true, never>;
125
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterComponent, "kendo-filter", never, { "filters": { "alias": "filters"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "valueChange": "valueChange"; }, ["fieldTemplate", "filterFields"], never, true, never>;
124
126
  }
@@ -6,7 +6,9 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "./filter.component";
7
7
  import * as i2 from "./filter-field.component";
8
8
  import * as i3 from "./localization/custom-messages.component";
9
- import * as i4 from "./templates/value-editor.template";
9
+ import * as i4 from "./templates/value-editor-template.directive";
10
+ import * as i5 from "./templates/operator-template.directive";
11
+ import * as i6 from "./templates/field-template.directive";
10
12
  /**
11
13
  * Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
12
14
  * definition for the Filter component.
@@ -40,6 +42,6 @@ import * as i4 from "./templates/value-editor.template";
40
42
  */
41
43
  export declare class FilterModule {
42
44
  static ɵfac: i0.ɵɵFactoryDeclaration<FilterModule, never>;
43
- static ɵmod: i0.ɵɵNgModuleDeclaration<FilterModule, never, [typeof i1.FilterComponent, typeof i2.FilterFieldComponent, typeof i3.CustomMessagesComponent, typeof i4.FilterValueEditorTemplateDirective], [typeof i1.FilterComponent, typeof i2.FilterFieldComponent, typeof i3.CustomMessagesComponent, typeof i4.FilterValueEditorTemplateDirective]>;
45
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FilterModule, never, [typeof i1.FilterComponent, typeof i2.FilterFieldComponent, typeof i3.CustomMessagesComponent, typeof i4.FilterValueEditorTemplateDirective, typeof i5.FilterOperatorTemplateDirective, typeof i6.FilterFieldsTemplateDirective], [typeof i1.FilterComponent, typeof i2.FilterFieldComponent, typeof i3.CustomMessagesComponent, typeof i4.FilterValueEditorTemplateDirective, typeof i5.FilterOperatorTemplateDirective, typeof i6.FilterFieldsTemplateDirective]>;
44
46
  static ɵinj: i0.ɵɵInjectorDeclaration<FilterModule>;
45
47
  }
@@ -2,6 +2,7 @@
2
2
  * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
+ import { TemplateRef } from '@angular/core';
5
6
  import { CompositeFilterDescriptor, FilterDescriptor } from '@progress/kendo-data-query';
6
7
  import { FilterExpression } from './model/filter-expression';
7
8
  import * as i0 from "@angular/core";
@@ -11,6 +12,7 @@ import * as i0 from "@angular/core";
11
12
  export declare class FilterService {
12
13
  normalizedValue: CompositeFilterDescriptor;
13
14
  filters: FilterExpression[];
15
+ fieldTemplate: TemplateRef<any> | null;
14
16
  addFilterGroup(item: CompositeFilterDescriptor): void;
15
17
  addFilterExpression(item: CompositeFilterDescriptor): void;
16
18
  remove(item: CompositeFilterDescriptor | FilterDescriptor, positionIndex: number, parentItem?: CompositeFilterDescriptor): void;
package/index.d.ts CHANGED
@@ -16,6 +16,8 @@ export { FilterExpressionComponent } from './filter-expression.component';
16
16
  export { CustomMessagesComponent } from './localization/custom-messages.component';
17
17
  export { LocalizedMessagesDirective } from './localization/localized-messages.directive';
18
18
  export { FilterFieldComponent } from './filter-field.component';
19
- export { FilterValueEditorTemplateDirective } from './templates/value-editor.template';
19
+ export { FilterValueEditorTemplateDirective } from './templates/value-editor-template.directive';
20
+ export { FilterOperatorTemplateDirective } from './templates/operator-template.directive';
21
+ export { FilterFieldsTemplateDirective } from './templates/field-template.directive';
20
22
  export { FilterOperator, FilterEditor } from './model/filter-expression';
21
23
  export * from './directives';
@@ -78,6 +78,12 @@ export interface FilterExpression {
78
78
  * Specifies a template for the expression value editor input.
79
79
  */
80
80
  editorTemplate?: TemplateRef<any>;
81
+ /**
82
+ * Specifies a custom template for the operator dropdown.
83
+ * When set, the default operator DropDownList is replaced with the provided template.
84
+ * The template receives the current [`FilterDescriptor`](slug:api_kendo-data-query_filterdescriptor) as implicit context.
85
+ */
86
+ operatorTemplate?: TemplateRef<any>;
81
87
  /**
82
88
  * Specifies the user-defined filter `editor` format that will be used.
83
89
  * See the [Filter editor formats documentation](https://www.telerik.com/kendo-angular-ui/components/filter/filter-editors-format).
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1776940655,
11
- "version": "24.0.0-develop.3",
10
+ "publishDate": 1778748863,
11
+ "version": "24.0.0-develop.30",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-filter",
3
- "version": "24.0.0-develop.3",
3
+ "version": "24.0.0-develop.30",
4
4
  "description": "Kendo UI Angular Filter",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -17,7 +17,7 @@
17
17
  "package": {
18
18
  "productName": "Kendo UI for Angular",
19
19
  "productCode": "KENDOUIANGULAR",
20
- "publishDate": 1776940655,
20
+ "publishDate": 1778748863,
21
21
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
22
22
  }
23
23
  },
@@ -28,20 +28,20 @@
28
28
  "@angular/platform-browser": "19 - 21",
29
29
  "@progress/kendo-data-query": "^1.7.3",
30
30
  "@progress/kendo-licensing": "^1.11.0",
31
- "@progress/kendo-angular-buttons": "24.0.0-develop.3",
32
- "@progress/kendo-angular-common": "24.0.0-develop.3",
33
- "@progress/kendo-angular-dateinputs": "24.0.0-develop.3",
34
- "@progress/kendo-angular-dropdowns": "24.0.0-develop.3",
35
- "@progress/kendo-angular-inputs": "24.0.0-develop.3",
36
- "@progress/kendo-angular-intl": "24.0.0-develop.3",
37
- "@progress/kendo-angular-l10n": "24.0.0-develop.3",
38
- "@progress/kendo-angular-icons": "24.0.0-develop.3",
39
- "@progress/kendo-angular-label": "24.0.0-develop.3",
31
+ "@progress/kendo-angular-buttons": "24.0.0-develop.30",
32
+ "@progress/kendo-angular-common": "24.0.0-develop.30",
33
+ "@progress/kendo-angular-dateinputs": "24.0.0-develop.30",
34
+ "@progress/kendo-angular-dropdowns": "24.0.0-develop.30",
35
+ "@progress/kendo-angular-inputs": "24.0.0-develop.30",
36
+ "@progress/kendo-angular-intl": "24.0.0-develop.30",
37
+ "@progress/kendo-angular-l10n": "24.0.0-develop.30",
38
+ "@progress/kendo-angular-icons": "24.0.0-develop.30",
39
+ "@progress/kendo-angular-label": "24.0.0-develop.30",
40
40
  "rxjs": "^6.5.3 || ^7.0.0"
41
41
  },
42
42
  "dependencies": {
43
43
  "tslib": "^2.3.1",
44
- "@progress/kendo-angular-schematics": "24.0.0-develop.3"
44
+ "@progress/kendo-angular-schematics": "24.0.0-develop.30"
45
45
  },
46
46
  "schematics": "./schematics/collection.json",
47
47
  "module": "fesm2022/progress-kendo-angular-filter.mjs",
@@ -9,12 +9,12 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'FilterModule', package: 'filter', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '24.0.0-develop.3',
13
- '@progress/kendo-angular-popup': '24.0.0-develop.3',
14
- '@progress/kendo-angular-navigation': '24.0.0-develop.3',
12
+ '@progress/kendo-angular-treeview': '24.0.0-develop.30',
13
+ '@progress/kendo-angular-popup': '24.0.0-develop.30',
14
+ '@progress/kendo-angular-navigation': '24.0.0-develop.30',
15
15
  // peer dependency of kendo-angular-inputs
16
16
  '@progress/kendo-drawing': '^1.16.0',
17
- '@progress/kendo-angular-dialog': '24.0.0-develop.3',
17
+ '@progress/kendo-angular-dialog': '24.0.0-develop.30',
18
18
  // Peer dependency of icons
19
19
  '@progress/kendo-svg-icons': '^4.0.0'
20
20
  } });
@@ -0,0 +1,38 @@
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 { TemplateRef } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Replaces the default field selector DropDownList in the Filter component with a custom template.
9
+ * Apply it to an `ng-template` that is a direct child of a `kendo-filter` element.
10
+ *
11
+ * The template context provides the following fields:
12
+ *
13
+ * - `let-currentItem`&mdash;The [filter descriptor](slug:api_kendo-data-query_filterdescriptor) for the current row. Set its `field` property to change the selected field. The component detects the change and updates the value, operator list, and editor type automatically.
14
+ * - `let-filters="filters"`&mdash;The list of available [`FilterExpression`](slug:api_filter_filterexpression) items.
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <kendo-filter>
19
+ * <ng-template kendoFilterFieldsTemplate let-currentItem let-filters="filters">
20
+ * <kendo-dropdownlist
21
+ * [data]="filters"
22
+ * textField="title"
23
+ * valueField="field"
24
+ * [valuePrimitive]="true"
25
+ * [value]="currentItem.field"
26
+ * (valueChange)="currentItem.field = $event">
27
+ * </kendo-dropdownlist>
28
+ * </ng-template>
29
+ * <kendo-filter-field field="name" editor="string"></kendo-filter-field>
30
+ * </kendo-filter>
31
+ * ```
32
+ */
33
+ export declare class FilterFieldsTemplateDirective {
34
+ templateRef: TemplateRef<any>;
35
+ constructor(templateRef: TemplateRef<any>);
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterFieldsTemplateDirective, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FilterFieldsTemplateDirective, "[kendoFilterFieldsTemplate]", never, {}, {}, never, never, true, never>;
38
+ }
@@ -0,0 +1,38 @@
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 { TemplateRef } from '@angular/core';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Replaces the default operator DropDownList in the Filter component with a custom template.
9
+ * Apply it to an `ng-template` inside a `kendo-filter-field` element.
10
+ *
11
+ * The template context provides the following field:
12
+ *
13
+ * - `let-filter`&mdash;The [filter descriptor](slug:api_kendo-data-query_filterdescriptor) for the current row. Set its `operator` property when the user selects a new operator.
14
+ *
15
+ * @example
16
+ * ```html
17
+ * <kendo-filter>
18
+ * <kendo-filter-field field="name" editor="string">
19
+ * <ng-template kendoFilterOperatorTemplate let-filter>
20
+ * <kendo-combobox
21
+ * [data]="customOperators"
22
+ * textField="text"
23
+ * valueField="value"
24
+ * [valuePrimitive]="true"
25
+ * [value]="filter.operator"
26
+ * (valueChange)="filter.operator = $event">
27
+ * </kendo-combobox>
28
+ * </ng-template>
29
+ * </kendo-filter-field>
30
+ * </kendo-filter>
31
+ * ```
32
+ */
33
+ export declare class FilterOperatorTemplateDirective {
34
+ templateRef: TemplateRef<any>;
35
+ constructor(templateRef: TemplateRef<any>);
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterOperatorTemplateDirective, never>;
37
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FilterOperatorTemplateDirective, "[kendoFilterOperatorTemplate]", never, {}, {}, never, never, true, never>;
38
+ }