@progress/kendo-angular-grid 21.2.0-develop.2 → 21.2.0-develop.4

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.
@@ -7,7 +7,7 @@ import { Component, Input } from '@angular/core';
7
7
  import { ColumnComponent } from "../../columns/column.component";
8
8
  import { FilterService } from '../filter.service';
9
9
  import { SinglePopupService } from '../../common/single-popup.service';
10
- import { filter } from 'rxjs/operators';
10
+ import { take } from 'rxjs/operators';
11
11
  import { DatePickerComponent, DatePickerCustomMessagesComponent } from '@progress/kendo-angular-dateinputs';
12
12
  import { ContextService } from '../../common/provider.service';
13
13
  import { FilterInputDirective } from '../filter-input.directive';
@@ -49,9 +49,12 @@ export class DateFilterMenuInputComponent {
49
49
  this.subscription.unsubscribe();
50
50
  }
51
51
  }
52
- open(picker) {
52
+ open() {
53
+ if (this.subscription) {
54
+ this.subscription.unsubscribe();
55
+ }
53
56
  this.subscription = this.popupService.onClose
54
- .pipe(filter(() => picker.isActive))
57
+ .pipe(take(1))
55
58
  .subscribe(e => e.preventDefault());
56
59
  }
57
60
  messageFor(key) {
@@ -74,13 +77,12 @@ export class DateFilterMenuInputComponent {
74
77
  [isFirstDropDown]="isFirstDropDown"
75
78
  [menuTabbingService]="menuTabbingService">
76
79
  <kendo-datepicker
77
- #picker
78
80
  kendoFilterInput
79
81
  [adaptiveMode]="ctx.grid?.adaptiveMode"
80
82
  [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
81
83
  [columnLabel]="columnLabel"
82
84
  [filterDelay]="0"
83
- (open)="open(picker)"
85
+ (open)="open()"
84
86
  [value]="currentFilter?.value"
85
87
  [placeholder]="placeholder"
86
88
  [formatPlaceholder]="formatPlaceholder"
@@ -114,13 +116,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
114
116
  [isFirstDropDown]="isFirstDropDown"
115
117
  [menuTabbingService]="menuTabbingService">
116
118
  <kendo-datepicker
117
- #picker
118
119
  kendoFilterInput
119
120
  [adaptiveMode]="ctx.grid?.adaptiveMode"
120
121
  [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
121
122
  [columnLabel]="columnLabel"
122
123
  [filterDelay]="0"
123
- (open)="open(picker)"
124
+ (open)="open()"
124
125
  [value]="currentFilter?.value"
125
126
  [placeholder]="placeholder"
126
127
  [formatPlaceholder]="formatPlaceholder"
@@ -4,6 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { MenuTabbingService } from './menu-tabbing.service';
6
6
  import { Component, Input, SkipSelf, Output, EventEmitter, ChangeDetectorRef, ElementRef, ViewChild } from '@angular/core';
7
+ import { isCompositeFilterDescriptor } from "@progress/kendo-data-query";
7
8
  import { ColumnComponent } from "../../columns/column.component";
8
9
  import { FilterService } from "../filter.service";
9
10
  import { removeFilter, filtersByField } from "../base-filter-cell.component";
@@ -32,9 +33,23 @@ const isNoValueOperator = operator => (operator === "isnull"
32
33
  * @hidden
33
34
  */
34
35
  export const validFilters = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);
35
- const trimFilters = filter => {
36
- filter.filters = filter.filters.filter(validFilters);
37
- return filter;
36
+ const trimFilters = (filter) => {
37
+ const trimComposite = (node) => {
38
+ const trimmed = [];
39
+ for (const f of node.filters || []) {
40
+ if (isCompositeFilterDescriptor(f)) {
41
+ const child = trimComposite(f);
42
+ if (child.filters.length) {
43
+ trimmed.push(child);
44
+ }
45
+ }
46
+ else if (validFilters(f)) {
47
+ trimmed.push(f);
48
+ }
49
+ }
50
+ return { logic: node.logic || 'and', filters: trimmed };
51
+ };
52
+ return trimComposite(filter);
38
53
  };
39
54
  const findParent = (filters, field, parent) => {
40
55
  return filters.reduce((acc, filter) => {
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1764002331,
14
- version: '21.2.0-develop.2',
13
+ publishDate: 1764059241,
14
+ version: '21.2.0-develop.4',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -10237,9 +10237,12 @@ class DateFilterMenuInputComponent {
10237
10237
  this.subscription.unsubscribe();
10238
10238
  }
10239
10239
  }
10240
- open(picker) {
10240
+ open() {
10241
+ if (this.subscription) {
10242
+ this.subscription.unsubscribe();
10243
+ }
10241
10244
  this.subscription = this.popupService.onClose
10242
- .pipe(filter(() => picker.isActive))
10245
+ .pipe(take(1))
10243
10246
  .subscribe(e => e.preventDefault());
10244
10247
  }
10245
10248
  messageFor(key) {
@@ -10262,13 +10265,12 @@ class DateFilterMenuInputComponent {
10262
10265
  [isFirstDropDown]="isFirstDropDown"
10263
10266
  [menuTabbingService]="menuTabbingService">
10264
10267
  <kendo-datepicker
10265
- #picker
10266
10268
  kendoFilterInput
10267
10269
  [adaptiveMode]="ctx.grid?.adaptiveMode"
10268
10270
  [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
10269
10271
  [columnLabel]="columnLabel"
10270
10272
  [filterDelay]="0"
10271
- (open)="open(picker)"
10273
+ (open)="open()"
10272
10274
  [value]="currentFilter?.value"
10273
10275
  [placeholder]="placeholder"
10274
10276
  [formatPlaceholder]="formatPlaceholder"
@@ -10302,13 +10304,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
10302
10304
  [isFirstDropDown]="isFirstDropDown"
10303
10305
  [menuTabbingService]="menuTabbingService">
10304
10306
  <kendo-datepicker
10305
- #picker
10306
10307
  kendoFilterInput
10307
10308
  [adaptiveMode]="ctx.grid?.adaptiveMode"
10308
10309
  [size]="ctx.grid?.isActionSheetExpanded ? 'large' : null"
10309
10310
  [columnLabel]="columnLabel"
10310
10311
  [filterDelay]="0"
10311
- (open)="open(picker)"
10312
+ (open)="open()"
10312
10313
  [value]="currentFilter?.value"
10313
10314
  [placeholder]="placeholder"
10314
10315
  [formatPlaceholder]="formatPlaceholder"
@@ -11222,9 +11223,23 @@ const isNoValueOperator = operator => (operator === "isnull"
11222
11223
  * @hidden
11223
11224
  */
11224
11225
  const validFilters = ({ value, operator }) => !isNullOrEmptyString(value) || isNoValueOperator(operator);
11225
- const trimFilters = filter => {
11226
- filter.filters = filter.filters.filter(validFilters);
11227
- return filter;
11226
+ const trimFilters = (filter) => {
11227
+ const trimComposite = (node) => {
11228
+ const trimmed = [];
11229
+ for (const f of node.filters || []) {
11230
+ if (isCompositeFilterDescriptor(f)) {
11231
+ const child = trimComposite(f);
11232
+ if (child.filters.length) {
11233
+ trimmed.push(child);
11234
+ }
11235
+ }
11236
+ else if (validFilters(f)) {
11237
+ trimmed.push(f);
11238
+ }
11239
+ }
11240
+ return { logic: node.logic || 'and', filters: trimmed };
11241
+ };
11242
+ return trimComposite(filter);
11228
11243
  };
11229
11244
  const findParent = (filters, field, parent) => {
11230
11245
  return filters.reduce((acc, filter) => {
@@ -23560,8 +23575,8 @@ const packageMetadata = {
23560
23575
  productName: 'Kendo UI for Angular',
23561
23576
  productCode: 'KENDOUIANGULAR',
23562
23577
  productCodes: ['KENDOUIANGULAR'],
23563
- publishDate: 1764002331,
23564
- version: '21.2.0-develop.2',
23578
+ publishDate: 1764059241,
23579
+ version: '21.2.0-develop.4',
23565
23580
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
23566
23581
  };
23567
23582
 
@@ -8,7 +8,6 @@ import { FilterDescriptor, CompositeFilterDescriptor } from '@progress/kendo-dat
8
8
  import { ColumnComponent } from "../../columns/column.component";
9
9
  import { FilterService } from '../filter.service';
10
10
  import { SinglePopupService } from '../../common/single-popup.service';
11
- import { DatePickerComponent } from '@progress/kendo-angular-dateinputs';
12
11
  import { CalendarView, DateInputFormatPlaceholder } from '@progress/kendo-angular-dateinputs';
13
12
  import { ContextService } from '../../common/provider.service';
14
13
  import * as i0 from "@angular/core";
@@ -41,7 +40,7 @@ export declare class DateFilterMenuInputComponent implements OnDestroy {
41
40
  private subscription;
42
41
  constructor(popupService: SinglePopupService, ctx: ContextService);
43
42
  ngOnDestroy(): void;
44
- open(picker: DatePickerComponent): void;
43
+ open(): void;
45
44
  messageFor(key: string): string;
46
45
  get columnLabel(): string;
47
46
  static ɵfac: i0.ɵɵFactoryDeclaration<DateFilterMenuInputComponent, never>;
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { MenuTabbingService } from './menu-tabbing.service';
6
- import { OnInit, EventEmitter, OnDestroy, ChangeDetectorRef } from '@angular/core';
6
+ import { OnInit, EventEmitter, OnDestroy, ChangeDetectorRef, AfterViewChecked } from '@angular/core';
7
7
  import { CompositeFilterDescriptor, FilterDescriptor } from "@progress/kendo-data-query";
8
8
  import { ColumnComponent } from "../../columns/column.component";
9
9
  import { FilterService } from "../filter.service";
@@ -21,7 +21,7 @@ export declare const parentLogicOfDefault: (filter: any, field: any, def?: strin
21
21
  /**
22
22
  * @hidden
23
23
  */
24
- export declare class FilterMenuContainerComponent implements OnInit, OnDestroy {
24
+ export declare class FilterMenuContainerComponent implements AfterViewChecked, OnInit, OnDestroy {
25
25
  protected parentService: FilterService;
26
26
  childService: FilterService;
27
27
  ctx: ContextService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-grid",
3
- "version": "21.2.0-develop.2",
3
+ "version": "21.2.0-develop.4",
4
4
  "description": "Kendo UI Grid for Angular - high performance data grid with paging, filtering, virtualization, CRUD, and more.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -73,7 +73,7 @@
73
73
  "package": {
74
74
  "productName": "Kendo UI for Angular",
75
75
  "productCode": "KENDOUIANGULAR",
76
- "publishDate": 1764002331,
76
+ "publishDate": 1764059241,
77
77
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
78
78
  }
79
79
  },
@@ -86,32 +86,32 @@
86
86
  "@progress/kendo-data-query": "^1.0.0",
87
87
  "@progress/kendo-drawing": "^1.21.0",
88
88
  "@progress/kendo-licensing": "^1.7.0",
89
- "@progress/kendo-angular-buttons": "21.2.0-develop.2",
90
- "@progress/kendo-angular-common": "21.2.0-develop.2",
91
- "@progress/kendo-angular-dateinputs": "21.2.0-develop.2",
92
- "@progress/kendo-angular-layout": "21.2.0-develop.2",
93
- "@progress/kendo-angular-navigation": "21.2.0-develop.2",
94
- "@progress/kendo-angular-dropdowns": "21.2.0-develop.2",
95
- "@progress/kendo-angular-excel-export": "21.2.0-develop.2",
96
- "@progress/kendo-angular-icons": "21.2.0-develop.2",
97
- "@progress/kendo-angular-indicators": "21.2.0-develop.2",
98
- "@progress/kendo-angular-inputs": "21.2.0-develop.2",
99
- "@progress/kendo-angular-conversational-ui": "21.2.0-develop.2",
100
- "@progress/kendo-angular-intl": "21.2.0-develop.2",
101
- "@progress/kendo-angular-l10n": "21.2.0-develop.2",
102
- "@progress/kendo-angular-label": "21.2.0-develop.2",
103
- "@progress/kendo-angular-menu": "21.2.0-develop.2",
104
- "@progress/kendo-angular-pager": "21.2.0-develop.2",
105
- "@progress/kendo-angular-pdf-export": "21.2.0-develop.2",
106
- "@progress/kendo-angular-popup": "21.2.0-develop.2",
107
- "@progress/kendo-angular-toolbar": "21.2.0-develop.2",
108
- "@progress/kendo-angular-upload": "21.2.0-develop.2",
109
- "@progress/kendo-angular-utils": "21.2.0-develop.2",
89
+ "@progress/kendo-angular-buttons": "21.2.0-develop.4",
90
+ "@progress/kendo-angular-common": "21.2.0-develop.4",
91
+ "@progress/kendo-angular-dateinputs": "21.2.0-develop.4",
92
+ "@progress/kendo-angular-layout": "21.2.0-develop.4",
93
+ "@progress/kendo-angular-navigation": "21.2.0-develop.4",
94
+ "@progress/kendo-angular-dropdowns": "21.2.0-develop.4",
95
+ "@progress/kendo-angular-excel-export": "21.2.0-develop.4",
96
+ "@progress/kendo-angular-icons": "21.2.0-develop.4",
97
+ "@progress/kendo-angular-indicators": "21.2.0-develop.4",
98
+ "@progress/kendo-angular-inputs": "21.2.0-develop.4",
99
+ "@progress/kendo-angular-conversational-ui": "21.2.0-develop.4",
100
+ "@progress/kendo-angular-intl": "21.2.0-develop.4",
101
+ "@progress/kendo-angular-l10n": "21.2.0-develop.4",
102
+ "@progress/kendo-angular-label": "21.2.0-develop.4",
103
+ "@progress/kendo-angular-menu": "21.2.0-develop.4",
104
+ "@progress/kendo-angular-pager": "21.2.0-develop.4",
105
+ "@progress/kendo-angular-pdf-export": "21.2.0-develop.4",
106
+ "@progress/kendo-angular-popup": "21.2.0-develop.4",
107
+ "@progress/kendo-angular-toolbar": "21.2.0-develop.4",
108
+ "@progress/kendo-angular-upload": "21.2.0-develop.4",
109
+ "@progress/kendo-angular-utils": "21.2.0-develop.4",
110
110
  "rxjs": "^6.5.3 || ^7.0.0"
111
111
  },
112
112
  "dependencies": {
113
113
  "tslib": "^2.3.1",
114
- "@progress/kendo-angular-schematics": "21.2.0-develop.2",
114
+ "@progress/kendo-angular-schematics": "21.2.0-develop.4",
115
115
  "@progress/kendo-common": "^1.0.1",
116
116
  "@progress/kendo-file-saver": "^1.0.0",
117
117
  "node-html-parser": "^7.0.1"
@@ -9,19 +9,19 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'GridModule', package: 'grid', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '21.2.0-develop.2',
13
- '@progress/kendo-angular-navigation': '21.2.0-develop.2',
12
+ '@progress/kendo-angular-treeview': '21.2.0-develop.4',
13
+ '@progress/kendo-angular-navigation': '21.2.0-develop.4',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '21.2.0-develop.2',
15
+ '@progress/kendo-angular-dialog': '21.2.0-develop.4',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0',
18
18
  // peer dependency of kendo-angular-layout
19
- '@progress/kendo-angular-progressbar': '21.2.0-develop.2',
19
+ '@progress/kendo-angular-progressbar': '21.2.0-develop.4',
20
20
  // transitive peer dependencies from toolbar
21
- '@progress/kendo-angular-indicators': '21.2.0-develop.2',
21
+ '@progress/kendo-angular-indicators': '21.2.0-develop.4',
22
22
  // transitive peer dependencies from conversational-ui
23
- '@progress/kendo-angular-menu': '21.2.0-develop.2',
24
- '@progress/kendo-angular-upload': '21.2.0-develop.2'
23
+ '@progress/kendo-angular-menu': '21.2.0-develop.4',
24
+ '@progress/kendo-angular-upload': '21.2.0-develop.4'
25
25
  } });
26
26
  return (0, schematics_1.externalSchematic)('@progress/kendo-angular-schematics', 'ng-add', finalOptions);
27
27
  }