@progress/kendo-angular-grid 20.1.0-develop.9 → 20.1.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.
Files changed (30) hide show
  1. package/columns/column.component.d.ts +8 -1
  2. package/esm2022/columns/column.component.mjs +9 -1
  3. package/esm2022/common/clipboard.directive.mjs +3 -0
  4. package/esm2022/filtering/menu/filter-menu-container.component.mjs +120 -31
  5. package/esm2022/filtering/menu/filter-menu.component.mjs +4 -6
  6. package/esm2022/filtering/multicheckbox-filter.component.mjs +313 -0
  7. package/esm2022/grid.component.mjs +25 -12
  8. package/esm2022/index.mjs +1 -0
  9. package/esm2022/localization/messages.mjs +28 -1
  10. package/esm2022/package-metadata.mjs +2 -2
  11. package/esm2022/pdf/pdf.component.mjs +8 -3
  12. package/esm2022/rendering/cell.component.mjs +2 -2
  13. package/esm2022/rendering/common/field-accessor.pipe.mjs +1 -1
  14. package/esm2022/rendering/common/format.pipe.mjs +37 -0
  15. package/esm2022/rendering/header/header.component.mjs +1 -1
  16. package/esm2022/rendering/list.component.mjs +2 -2
  17. package/esm2022/rendering/table-body.component.mjs +4 -2
  18. package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +4 -3
  19. package/esm2022/scrolling/scroller.service.mjs +0 -3
  20. package/fesm2022/progress-kendo-angular-grid.mjs +1965 -1500
  21. package/filtering/filterable.d.ts +23 -0
  22. package/filtering/menu/filter-menu-container.component.d.ts +5 -1
  23. package/filtering/menu/filter-menu.component.d.ts +3 -4
  24. package/filtering/multicheckbox-filter.component.d.ts +50 -0
  25. package/grid.component.d.ts +4 -6
  26. package/index.d.ts +1 -0
  27. package/localization/messages.d.ts +22 -1
  28. package/package.json +21 -21
  29. package/rendering/common/format.pipe.d.ts +17 -0
  30. package/schematics/ngAdd/index.js +4 -4
@@ -14,6 +14,7 @@ import { FilterCellTemplateDirective } from '../filtering/cell/filter-cell-templ
14
14
  import { FilterMenuTemplateDirective } from '../filtering/menu/filter-menu-template.directive';
15
15
  import { IdService } from '../common/id.service';
16
16
  import { FieldDataType } from '../common/field-datatype';
17
+ import { FilterVariant, FilterVariantSettings } from '../filtering/filterable';
17
18
  import * as i0 from "@angular/core";
18
19
  /**
19
20
  * @hidden
@@ -72,6 +73,12 @@ export declare class ColumnComponent extends ColumnBase {
72
73
  * @default 'text'
73
74
  */
74
75
  filter: FieldDataType;
76
+ /**
77
+ * Specifies the filter type for the filter menu UI.
78
+ *
79
+ * @default 'default'
80
+ */
81
+ filterVariant: FilterVariant | FilterVariantSettings;
75
82
  /**
76
83
  * Shows or hides the filter UI for this column. [See example](slug:filtering_grid).
77
84
  *
@@ -101,5 +108,5 @@ export declare class ColumnComponent extends ColumnBase {
101
108
  get filterMenuTemplateRef(): TemplateRef<any>;
102
109
  get displayTitle(): string;
103
110
  static ɵfac: i0.ɵɵFactoryDeclaration<ColumnComponent, [{ optional: true; host: true; skipSelf: true; }, { optional: true; }]>;
104
- static ɵcmp: i0.ɵɵComponentDeclaration<ColumnComponent, "kendo-grid-column", never, { "field": { "alias": "field"; "required": false; }; "format": { "alias": "format"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "groupable": { "alias": "groupable"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; }, {}, ["template", "groupHeaderTemplate", "groupHeaderColumnTemplate", "groupFooterTemplate", "editTemplate", "filterCellTemplate", "filterMenuTemplate"], never, true, never>;
111
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnComponent, "kendo-grid-column", never, { "field": { "alias": "field"; "required": false; }; "format": { "alias": "format"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "groupable": { "alias": "groupable"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterVariant": { "alias": "filterVariant"; "required": false; }; "filterable": { "alias": "filterable"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; }, {}, ["template", "groupHeaderTemplate", "groupHeaderColumnTemplate", "groupFooterTemplate", "editTemplate", "filterCellTemplate", "filterMenuTemplate"], never, true, never>;
105
112
  }
@@ -75,6 +75,12 @@ export class ColumnComponent extends ColumnBase {
75
75
  * @default 'text'
76
76
  */
77
77
  filter = 'text';
78
+ /**
79
+ * Specifies the filter type for the filter menu UI.
80
+ *
81
+ * @default 'default'
82
+ */
83
+ filterVariant = 'default';
78
84
  /**
79
85
  * Shows or hides the filter UI for this column. [See example](slug:filtering_grid).
80
86
  *
@@ -122,7 +128,7 @@ export class ColumnComponent extends ColumnBase {
122
128
  return this.title === undefined ? this.field : this.title;
123
129
  }
124
130
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnComponent, deps: [{ token: i1.ColumnBase, host: true, optional: true, skipSelf: true }, { token: i2.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnComponent, isStandalone: true, selector: "kendo-grid-column", inputs: { field: "field", format: "format", sortable: "sortable", groupable: "groupable", editor: "editor", filter: "filter", filterable: "filterable", editable: "editable" }, providers: [
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnComponent, isStandalone: true, selector: "kendo-grid-column", inputs: { field: "field", format: "format", sortable: "sortable", groupable: "groupable", editor: "editor", filter: "filter", filterVariant: "filterVariant", filterable: "filterable", editable: "editable" }, providers: [
126
132
  {
127
133
  provide: ColumnBase,
128
134
  useExisting: forwardRef(() => ColumnComponent)
@@ -162,6 +168,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
162
168
  type: Input
163
169
  }], filter: [{
164
170
  type: Input
171
+ }], filterVariant: [{
172
+ type: Input
165
173
  }], filterable: [{
166
174
  type: Input
167
175
  }], editable: [{
@@ -136,6 +136,9 @@ export class GridClipboardDirective {
136
136
  const isPaste = operationType === 'paste';
137
137
  const pastedData = args.clipboardData.getData('text');
138
138
  const visibleCols = this.host.columns.toArray().filter(c => c.isVisible);
139
+ if (visibleCols.some(c => c.orderIndex > 0)) { // columns have been reordered
140
+ visibleCols.sort((a, b) => a.orderIndex - b.orderIndex);
141
+ }
139
142
  const data = isPaste ?
140
143
  {
141
144
  dataString: pastedData,
@@ -14,6 +14,10 @@ import { FilterMenuHostDirective } from './filter-menu-host.directive';
14
14
  import { NgSwitch, NgSwitchCase, NgIf, NgTemplateOutlet, NgClass } from '@angular/common';
15
15
  import { FormsModule } from '@angular/forms';
16
16
  import { AdaptiveGridService } from '../../common/adaptiveness.service';
17
+ import { MultiCheckboxFilterComponent } from '../multicheckbox-filter.component';
18
+ import { ButtonComponent } from '@progress/kendo-angular-buttons';
19
+ import { filterClearIcon, filterIcon } from '@progress/kendo-svg-icons';
20
+ import { areObjectsEqual } from '@progress/kendo-angular-common';
17
21
  import * as i0 from "@angular/core";
18
22
  import * as i1 from "../filter.service";
19
23
  import * as i2 from "../../common/provider.service";
@@ -104,11 +108,11 @@ export class FilterMenuContainerComponent {
104
108
  return this._childFilter;
105
109
  }
106
110
  resetButton;
107
- filterButton;
108
111
  _childFilter;
109
112
  subscription;
110
113
  _templateContext = {};
111
114
  _filter;
115
+ checkboxFilter;
112
116
  constructor(parentService, childService, ctx, cd, menuTabbingService, adaptiveGridService) {
113
117
  this.parentService = parentService;
114
118
  this.childService = childService;
@@ -134,7 +138,7 @@ export class FilterMenuContainerComponent {
134
138
  this.menuTabbingService.lastFocusable = undefined;
135
139
  }
136
140
  get disabled() {
137
- return !this.childFilter.filters.some(validFilters);
141
+ return this.isMultiFilter ? this.areFiltersEqual : !this.childFilter.filters.some(validFilters);
138
142
  }
139
143
  get templateContext() {
140
144
  this._templateContext.column = this.column;
@@ -147,15 +151,20 @@ export class FilterMenuContainerComponent {
147
151
  return isPresent(this.column) && isPresent(this.column.filterMenuTemplateRef);
148
152
  }
149
153
  submit() {
150
- const filter = trimFilters(this.childFilter);
151
- if (filter.filters.length) {
152
- const root = this.filter || {
153
- filters: [],
154
- logic: "and"
155
- };
156
- removeFilter(root, this.column.field);
157
- root.filters.push(filter);
158
- this.parentService.filter(root);
154
+ if (this.isMultiFilter) {
155
+ this.parentService.filter(this.checkboxFilter);
156
+ }
157
+ else {
158
+ const filter = trimFilters(this.childFilter);
159
+ if (filter.filters.length) {
160
+ const root = this.filter || {
161
+ filters: [],
162
+ logic: "and"
163
+ };
164
+ removeFilter(root, this.column.field);
165
+ root.filters.push(filter);
166
+ this.parentService.filter(root);
167
+ }
159
168
  }
160
169
  this.close.emit();
161
170
  return false;
@@ -183,29 +192,100 @@ export class FilterMenuContainerComponent {
183
192
  }
184
193
  }
185
194
  }
195
+ onCheckboxFilterChange(filter) {
196
+ this.checkboxFilter = filter;
197
+ }
198
+ getButtonIcon(buttonType, iconType) {
199
+ if (!this.isMultiFilter) {
200
+ return;
201
+ }
202
+ const icons = {
203
+ filter: {
204
+ icon: 'filter',
205
+ svgIcon: filterIcon
206
+ },
207
+ reset: {
208
+ icon: 'filter-clear',
209
+ svgIcon: filterClearIcon
210
+ }
211
+ };
212
+ return icons[buttonType]?.[iconType];
213
+ }
186
214
  get clearText() {
187
215
  return this.ctx.localization.get("filterClearButton");
188
216
  }
189
217
  get filterText() {
190
218
  return this.ctx.localization.get("filterFilterButton");
191
219
  }
220
+ get isMultiFilter() {
221
+ if (!isPresent(this.column?.filterVariant)) {
222
+ return false;
223
+ }
224
+ const filterVariant = this.column?.filterVariant;
225
+ return isPresent(filterVariant) && (filterVariant === 'multiCheckbox' || typeof filterVariant === 'object' && filterVariant.variant === 'multiCheckbox');
226
+ }
227
+ get areFiltersEqual() {
228
+ const checkboxFilter = this.checkboxFilter;
229
+ const gridFilter = this.filter;
230
+ const isComposite = (f) => !!f && Array.isArray(f.filters);
231
+ // Treat undefined and "empty (no inner filters)" as equivalent
232
+ const isEmptyComposite = (f) => isComposite(f) && f.filters.length === 0;
233
+ if (!checkboxFilter && !gridFilter) {
234
+ return true;
235
+ }
236
+ if ((!checkboxFilter && isEmptyComposite(gridFilter)) || (!gridFilter && isEmptyComposite(checkboxFilter))) {
237
+ return true;
238
+ }
239
+ if (!checkboxFilter || !gridFilter) {
240
+ return false;
241
+ }
242
+ const eq = (x, y) => {
243
+ const xIsComp = isComposite(x);
244
+ const yIsComp = isComposite(y);
245
+ if (xIsComp !== yIsComp) {
246
+ return false;
247
+ }
248
+ if (xIsComp) {
249
+ const xLogic = x.logic || 'and';
250
+ const yLogic = y.logic || 'and';
251
+ if (xLogic !== yLogic) {
252
+ return false;
253
+ }
254
+ if (x.filters.length !== y.filters.length) {
255
+ return false;
256
+ }
257
+ for (let i = 0; i < x.filters.length; i++) {
258
+ if (!eq(x.filters[i], y.filters[i])) {
259
+ return false;
260
+ }
261
+ }
262
+ return true;
263
+ }
264
+ return areObjectsEqual(x, y);
265
+ };
266
+ return eq(checkboxFilter, gridFilter);
267
+ }
192
268
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: i1.FilterService, skipSelf: true }, { token: i1.FilterService }, { token: i2.ContextService }, { token: i0.ChangeDetectorRef }, { token: i3.MenuTabbingService }, { token: i4.AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
193
269
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuContainerComponent, isStandalone: true, selector: "kendo-grid-filter-menu-container", inputs: { column: "column", isLast: "isLast", isExpanded: "isExpanded", menuTabbingService: "menuTabbingService", filter: "filter", actionsClass: "actionsClass" }, outputs: { close: "close" }, providers: [
194
270
  FilterService,
195
271
  MenuTabbingService
196
- ], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "filterButton", first: true, predicate: ["filterButton"], descendants: true }], ngImport: i0, template: `
272
+ ], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }], ngImport: i0, template: `
197
273
  <form (submit)="submit()" (reset)="reset()"
198
- class="k-filter-menu">
274
+ class="k-filter-menu"
275
+ [ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
199
276
  <div class="k-filter-menu-container">
200
277
  <ng-container [ngSwitch]="hasTemplate">
201
278
  <ng-container *ngSwitchCase="false">
202
- <ng-container
279
+ <ng-container *ngIf="!isMultiFilter; else multiFilter"
203
280
  kendoFilterMenuHost
204
281
  [filterService]="childService"
205
282
  [column]="column"
206
283
  [filter]="childFilter"
207
284
  [menuTabbingService]="menuTabbingService">
208
285
  </ng-container>
286
+ <ng-template #multiFilter>
287
+ <kendo-grid-multicheckbox-filter [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
288
+ </ng-template>
209
289
  </ng-container>
210
290
  <ng-container *ngSwitchCase="true">
211
291
  <ng-template
@@ -217,20 +297,24 @@ export class FilterMenuContainerComponent {
217
297
  </ng-container>
218
298
  </ng-container>
219
299
  <div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
220
- <button #filterButton
300
+ <button #filterButton kendoButton
301
+ themeColor="primary"
221
302
  type="submit"
222
- class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
303
+ [ngClass]="{'k-button-rectangle': !isMultiFilter}"
223
304
  [disabled]="disabled"
305
+ [icon]="getButtonIcon('filter', 'icon')"
306
+ [svgIcon]="getButtonIcon('filter', 'svgIcon')"
224
307
  (keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
225
- <button
226
- #resetButton
308
+ <button #resetButton kendoButton
227
309
  type="reset"
228
- class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
310
+ [ngClass]="{'k-button-rectangle': !isMultiFilter}"
311
+ [icon]="getButtonIcon('reset', 'icon')"
312
+ [svgIcon]="getButtonIcon('reset', 'svgIcon')"
229
313
  (keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
230
314
  </div>
231
315
  </div>
232
316
  </form>
233
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService", "menuTabbingService"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
317
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService", "menuTabbingService"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MultiCheckboxFilterComponent, selector: "kendo-grid-multicheckbox-filter", inputs: ["column"], outputs: ["filterChange"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
234
318
  }
235
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
236
320
  type: Component,
@@ -242,17 +326,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
242
326
  selector: 'kendo-grid-filter-menu-container',
243
327
  template: `
244
328
  <form (submit)="submit()" (reset)="reset()"
245
- class="k-filter-menu">
329
+ class="k-filter-menu"
330
+ [ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
246
331
  <div class="k-filter-menu-container">
247
332
  <ng-container [ngSwitch]="hasTemplate">
248
333
  <ng-container *ngSwitchCase="false">
249
- <ng-container
334
+ <ng-container *ngIf="!isMultiFilter; else multiFilter"
250
335
  kendoFilterMenuHost
251
336
  [filterService]="childService"
252
337
  [column]="column"
253
338
  [filter]="childFilter"
254
339
  [menuTabbingService]="menuTabbingService">
255
340
  </ng-container>
341
+ <ng-template #multiFilter>
342
+ <kendo-grid-multicheckbox-filter [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
343
+ </ng-template>
256
344
  </ng-container>
257
345
  <ng-container *ngSwitchCase="true">
258
346
  <ng-template
@@ -264,22 +352,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
264
352
  </ng-container>
265
353
  </ng-container>
266
354
  <div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
267
- <button #filterButton
355
+ <button #filterButton kendoButton
356
+ themeColor="primary"
268
357
  type="submit"
269
- class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
358
+ [ngClass]="{'k-button-rectangle': !isMultiFilter}"
270
359
  [disabled]="disabled"
360
+ [icon]="getButtonIcon('filter', 'icon')"
361
+ [svgIcon]="getButtonIcon('filter', 'svgIcon')"
271
362
  (keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
272
- <button
273
- #resetButton
363
+ <button #resetButton kendoButton
274
364
  type="reset"
275
- class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
365
+ [ngClass]="{'k-button-rectangle': !isMultiFilter}"
366
+ [icon]="getButtonIcon('reset', 'icon')"
367
+ [svgIcon]="getButtonIcon('reset', 'svgIcon')"
276
368
  (keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
277
369
  </div>
278
370
  </div>
279
371
  </form>
280
372
  `,
281
373
  standalone: true,
282
- imports: [FormsModule, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass]
374
+ imports: [FormsModule, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass, MultiCheckboxFilterComponent, ButtonComponent]
283
375
  }]
284
376
  }], ctorParameters: function () { return [{ type: i1.FilterService, decorators: [{
285
377
  type: SkipSelf
@@ -300,7 +392,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
300
392
  }], resetButton: [{
301
393
  type: ViewChild,
302
394
  args: ['resetButton', { static: false }]
303
- }], filterButton: [{
304
- type: ViewChild,
305
- args: ['filterButton', { static: false }]
306
395
  }] } });
@@ -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 { NavigationService } from './../../navigation/navigation.service';
6
- import { ChangeDetectorRef, Component, ElementRef, Input, NgZone, Optional, Renderer2, TemplateRef, ViewChild } from '@angular/core';
6
+ import { ChangeDetectorRef, Component, ElementRef, Input, Optional, Renderer2, TemplateRef, ViewChild } from '@angular/core';
7
7
  import { FilterService } from "../filter.service";
8
8
  import { ColumnComponent } from '../../columns/column.component';
9
9
  import { SinglePopupService } from '../../common/single-popup.service';
@@ -35,7 +35,6 @@ export class FilterMenuComponent {
35
35
  renderer;
36
36
  cdr;
37
37
  adaptiveGridService;
38
- zone;
39
38
  idService;
40
39
  filterIcon = filterIcon;
41
40
  /**
@@ -53,7 +52,7 @@ export class FilterMenuComponent {
53
52
  tabIndex = '-1';
54
53
  popupRef;
55
54
  popupSubs;
56
- constructor(filterService, popupService, ctx, navigationService, renderer, cdr, adaptiveGridService, zone, idService) {
55
+ constructor(filterService, popupService, ctx, navigationService, renderer, cdr, adaptiveGridService, idService) {
57
56
  this.filterService = filterService;
58
57
  this.popupService = popupService;
59
58
  this.ctx = ctx;
@@ -61,7 +60,6 @@ export class FilterMenuComponent {
61
60
  this.renderer = renderer;
62
61
  this.cdr = cdr;
63
62
  this.adaptiveGridService = adaptiveGridService;
64
- this.zone = zone;
65
63
  this.idService = idService;
66
64
  }
67
65
  ngOnDestroy() {
@@ -147,7 +145,7 @@ export class FilterMenuComponent {
147
145
  this.anchor.nativeElement.focus({ preventScroll: true });
148
146
  }
149
147
  }
150
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: i1.FilterService }, { token: i2.SinglePopupService }, { token: i3.ContextService }, { token: i4.NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.AdaptiveGridService }, { token: i0.NgZone }, { token: i6.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: i1.FilterService }, { token: i2.SinglePopupService }, { token: i3.ContextService }, { token: i4.NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i5.AdaptiveGridService }, { token: i6.IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
151
149
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FilterMenuComponent, isStandalone: true, selector: "kendo-grid-filter-menu", inputs: { column: "column", filter: "filter", tabIndex: "tabIndex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `
152
150
  <a #anchor
153
151
  class="k-grid-filter-menu k-grid-header-menu"
@@ -206,7 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
206
204
  standalone: true,
207
205
  imports: [IconWrapperComponent, FilterMenuContainerComponent],
208
206
  }]
209
- }], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.SinglePopupService }, { type: i3.ContextService }, { type: i4.NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.AdaptiveGridService }, { type: i0.NgZone }, { type: i6.IdService, decorators: [{
207
+ }], ctorParameters: function () { return [{ type: i1.FilterService }, { type: i2.SinglePopupService }, { type: i3.ContextService }, { type: i4.NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i5.AdaptiveGridService }, { type: i6.IdService, decorators: [{
210
208
  type: Optional
211
209
  }] }]; }, propDecorators: { column: [{
212
210
  type: Input