@progress/kendo-angular-grid 21.1.1-develop.2 → 21.2.0-develop.10
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/codemods/utils.js +805 -394
- package/codemods/v20/grid-kendogridgroupbinding.js +8 -11
- package/esm2022/adaptiveness/adaptive-renderer.component.mjs +850 -756
- package/esm2022/aggregates/status-bar.component.mjs +13 -11
- package/esm2022/column-menu/column-chooser-content.component.mjs +133 -123
- package/esm2022/column-menu/column-list.component.mjs +64 -61
- package/esm2022/column-menu/column-menu-autosize-all.component.mjs +12 -11
- package/esm2022/column-menu/column-menu-autosize.component.mjs +12 -11
- package/esm2022/column-menu/column-menu-item.component.mjs +221 -85
- package/esm2022/column-menu/column-menu-position.component.mjs +46 -43
- package/esm2022/column-menu/column-menu.component.mjs +401 -315
- package/esm2022/databinding.directive.mjs +1 -0
- package/esm2022/editing/add-command.directive.mjs +27 -17
- package/esm2022/editing/cancel-command.directive.mjs +27 -17
- package/esm2022/editing/edit-command.directive.mjs +27 -17
- package/esm2022/editing/form/form-formfield.component.mjs +97 -70
- package/esm2022/editing/form/form.component.mjs +77 -61
- package/esm2022/editing/remove-command.directive.mjs +27 -17
- package/esm2022/editing/save-command.directive.mjs +27 -17
- package/esm2022/excel/excel-command.directive.mjs +27 -17
- package/esm2022/filtering/cell/filter-cell-operators.component.mjs +20 -17
- package/esm2022/filtering/cell/filter-cell.component.mjs +35 -33
- package/esm2022/filtering/filter-row.component.mjs +37 -29
- package/esm2022/filtering/menu/boolean-filter-menu.component.mjs +34 -31
- package/esm2022/filtering/menu/date-filter-menu-input.component.mjs +8 -7
- package/esm2022/filtering/menu/date-filter-menu.component.mjs +52 -49
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +115 -92
- package/esm2022/filtering/menu/numeric-filter-menu.component.mjs +50 -47
- package/esm2022/filtering/menu/string-filter-menu.component.mjs +36 -33
- package/esm2022/filtering/multicheckbox-filter.component.mjs +54 -43
- package/esm2022/grid.component.mjs +1579 -1483
- package/esm2022/grouping/group-header.component.mjs +113 -89
- package/esm2022/grouping/group-panel.component.mjs +84 -77
- package/esm2022/index.mjs +1 -0
- package/esm2022/navigation/navigation.service.mjs +4 -4
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pdf/pdf-command.directive.mjs +27 -17
- package/esm2022/rendering/cell.component.mjs +411 -365
- package/esm2022/rendering/common/col-group.component.mjs +25 -15
- package/esm2022/rendering/common/loading.component.mjs +23 -19
- package/esm2022/rendering/details/detail-template.directive.mjs +6 -4
- package/esm2022/rendering/footer/footer.component.mjs +128 -112
- package/esm2022/rendering/header/header.component.mjs +414 -353
- package/esm2022/rendering/list.component.mjs +227 -204
- package/esm2022/rendering/table-body.component.mjs +553 -493
- package/esm2022/rendering/toolbar/toolbar.component.mjs +13 -11
- package/esm2022/rendering/toolbar/tools/ai-assistant/ai-assistant.component.mjs +86 -79
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +54 -51
- package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +141 -118
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +72 -65
- package/fesm2022/progress-kendo-angular-grid.mjs +6462 -5545
- package/filtering/menu/date-filter-menu-input.component.d.ts +1 -2
- package/filtering/menu/filter-menu-container.component.d.ts +2 -2
- package/index.d.ts +1 -0
- package/package.json +25 -26
- package/rendering/details/detail-template.directive.d.ts +6 -4
- package/schematics/ngAdd/index.js +7 -7
- package/codemods/template-transformer/index.js +0 -93
|
@@ -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";
|
|
@@ -11,7 +12,7 @@ import { isPresent, isNullOrEmptyString } from "../../utils";
|
|
|
11
12
|
import { cloneFilters } from '../../common/filter-descriptor-differ';
|
|
12
13
|
import { ContextService } from '../../common/provider.service';
|
|
13
14
|
import { FilterMenuHostDirective } from './filter-menu-host.directive';
|
|
14
|
-
import {
|
|
15
|
+
import { NgTemplateOutlet, NgClass } from '@angular/common';
|
|
15
16
|
import { FormsModule } from '@angular/forms';
|
|
16
17
|
import { AdaptiveGridService } from '../../common/adaptiveness.service';
|
|
17
18
|
import { MultiCheckboxFilterComponent } from '../multicheckbox-filter.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
|
-
|
|
37
|
-
|
|
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) => {
|
|
@@ -266,55 +281,59 @@ export class FilterMenuContainerComponent {
|
|
|
266
281
|
return eq(checkboxFilter, gridFilter);
|
|
267
282
|
}
|
|
268
283
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", 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 });
|
|
269
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
284
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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: [
|
|
270
285
|
FilterService,
|
|
271
286
|
MenuTabbingService
|
|
272
287
|
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }], ngImport: i0, template: `
|
|
273
288
|
<form (submit)="submit()" (reset)="reset()"
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
289
|
+
class="k-filter-menu"
|
|
290
|
+
[ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
|
|
291
|
+
<div class="k-filter-menu-container">
|
|
292
|
+
@switch (hasTemplate) {
|
|
293
|
+
@case (false) {
|
|
294
|
+
@if (!isMultiFilter) {
|
|
295
|
+
<ng-container
|
|
296
|
+
kendoFilterMenuHost
|
|
297
|
+
[filterService]="childService"
|
|
298
|
+
[column]="column"
|
|
299
|
+
[filter]="childFilter"
|
|
300
|
+
[menuTabbingService]="menuTabbingService">
|
|
301
|
+
</ng-container>
|
|
302
|
+
} @else {
|
|
303
|
+
<kendo-grid-multicheckbox-filter style="display: contents;" [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
@case (true) {
|
|
307
|
+
@if (column.filterMenuTemplateRef) {
|
|
308
|
+
<ng-template
|
|
309
|
+
[ngTemplateOutlet]="column.filterMenuTemplateRef"
|
|
310
|
+
[ngTemplateOutletContext]="templateContext"
|
|
311
|
+
>
|
|
312
|
+
</ng-template>
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
@if (!ctx.grid?.isActionSheetExpanded) {
|
|
317
|
+
<div [ngClass]="actionsClass">
|
|
318
|
+
<button #filterButton kendoButton
|
|
319
|
+
themeColor="primary"
|
|
320
|
+
type="submit"
|
|
321
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
322
|
+
[disabled]="disabled"
|
|
323
|
+
[icon]="getButtonIcon('filter', 'icon')"
|
|
324
|
+
[svgIcon]="getButtonIcon('filter', 'svgIcon')"
|
|
325
|
+
(keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
|
|
326
|
+
<button #resetButton kendoButton
|
|
327
|
+
type="reset"
|
|
328
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
329
|
+
[icon]="getButtonIcon('reset', 'icon')"
|
|
330
|
+
[svgIcon]="getButtonIcon('reset', 'svgIcon')"
|
|
331
|
+
(keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
|
|
332
|
+
</div>
|
|
333
|
+
}
|
|
334
|
+
</div>
|
|
316
335
|
</form>
|
|
317
|
-
|
|
336
|
+
`, 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: FilterMenuHostDirective, selector: "[kendoFilterMenuHost]", inputs: ["filterService", "menuTabbingService"] }, { 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"] }] });
|
|
318
337
|
}
|
|
319
338
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
|
|
320
339
|
type: Component,
|
|
@@ -326,52 +345,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
326
345
|
selector: 'kendo-grid-filter-menu-container',
|
|
327
346
|
template: `
|
|
328
347
|
<form (submit)="submit()" (reset)="reset()"
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
348
|
+
class="k-filter-menu"
|
|
349
|
+
[ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
|
|
350
|
+
<div class="k-filter-menu-container">
|
|
351
|
+
@switch (hasTemplate) {
|
|
352
|
+
@case (false) {
|
|
353
|
+
@if (!isMultiFilter) {
|
|
354
|
+
<ng-container
|
|
355
|
+
kendoFilterMenuHost
|
|
356
|
+
[filterService]="childService"
|
|
357
|
+
[column]="column"
|
|
358
|
+
[filter]="childFilter"
|
|
359
|
+
[menuTabbingService]="menuTabbingService">
|
|
360
|
+
</ng-container>
|
|
361
|
+
} @else {
|
|
362
|
+
<kendo-grid-multicheckbox-filter style="display: contents;" [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
@case (true) {
|
|
366
|
+
@if (column.filterMenuTemplateRef) {
|
|
367
|
+
<ng-template
|
|
368
|
+
[ngTemplateOutlet]="column.filterMenuTemplateRef"
|
|
369
|
+
[ngTemplateOutletContext]="templateContext"
|
|
370
|
+
>
|
|
371
|
+
</ng-template>
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
@if (!ctx.grid?.isActionSheetExpanded) {
|
|
376
|
+
<div [ngClass]="actionsClass">
|
|
377
|
+
<button #filterButton kendoButton
|
|
378
|
+
themeColor="primary"
|
|
379
|
+
type="submit"
|
|
380
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
381
|
+
[disabled]="disabled"
|
|
382
|
+
[icon]="getButtonIcon('filter', 'icon')"
|
|
383
|
+
[svgIcon]="getButtonIcon('filter', 'svgIcon')"
|
|
384
|
+
(keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
|
|
385
|
+
<button #resetButton kendoButton
|
|
386
|
+
type="reset"
|
|
387
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
388
|
+
[icon]="getButtonIcon('reset', 'icon')"
|
|
389
|
+
[svgIcon]="getButtonIcon('reset', 'svgIcon')"
|
|
390
|
+
(keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
|
|
391
|
+
</div>
|
|
392
|
+
}
|
|
393
|
+
</div>
|
|
371
394
|
</form>
|
|
372
|
-
|
|
395
|
+
`,
|
|
373
396
|
standalone: true,
|
|
374
|
-
imports: [FormsModule,
|
|
397
|
+
imports: [FormsModule, FilterMenuHostDirective, NgTemplateOutlet, NgClass, MultiCheckboxFilterComponent, ButtonComponent]
|
|
375
398
|
}]
|
|
376
399
|
}], ctorParameters: () => [{ type: i1.FilterService, decorators: [{
|
|
377
400
|
type: SkipSelf
|
|
@@ -9,7 +9,6 @@ import { setFilter, logicOperators } from '../base-filter-cell.component';
|
|
|
9
9
|
import { MenuTabbingService } from './menu-tabbing.service';
|
|
10
10
|
import { ContextService } from '../../common/provider.service';
|
|
11
11
|
import { FilterMenuDropDownListDirective } from './filter-menu-dropdownlist.directive';
|
|
12
|
-
import { NgIf } from '@angular/common';
|
|
13
12
|
import { NumericFilterMenuInputComponent } from './numeric-filter-menu-input.component';
|
|
14
13
|
import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
15
14
|
import { replaceMessagePlaceholder } from '@progress/kendo-angular-common';
|
|
@@ -99,26 +98,26 @@ export class NumericFilterMenuComponent extends NumericFilterComponent {
|
|
|
99
98
|
super.localizationChange();
|
|
100
99
|
}
|
|
101
100
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericFilterMenuComponent, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
101
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NumericFilterMenuComponent, isStandalone: true, selector: "kendo-grid-numeric-filter-menu", inputs: { filter: "filter", extra: "extra", filterService: "filterService", filterDelay: "filterDelay", placeholder: "placeholder", extraPlaceholder: "extraPlaceholder", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
|
|
103
102
|
<kendo-grid-numeric-filter-menu-input
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
[currentFilter]="firstFilter"
|
|
104
|
+
[operators]="operators"
|
|
105
|
+
[filterService]="filterService"
|
|
106
|
+
[column]="column"
|
|
107
|
+
[filter]="filter"
|
|
108
|
+
[filterDelay]="filterDelay"
|
|
109
|
+
[format]="format"
|
|
110
|
+
[decimals]="decimals"
|
|
111
|
+
[spinners]="spinners"
|
|
112
|
+
[min]="min"
|
|
113
|
+
[max]="max"
|
|
114
|
+
[step]="step"
|
|
115
|
+
[menuTabbingService]="menuTabbingService"
|
|
116
|
+
[isFirstDropDown]="true"
|
|
117
|
+
[placeholder]="placeholder">
|
|
119
118
|
</kendo-grid-numeric-filter-menu-input>
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
@if (extra) {
|
|
120
|
+
<kendo-dropdownlist
|
|
122
121
|
kendoFilterMenuDropDown
|
|
123
122
|
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
124
123
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
@@ -131,9 +130,10 @@ export class NumericFilterMenuComponent extends NumericFilterComponent {
|
|
|
131
130
|
[value]="filter?.logic"
|
|
132
131
|
textField="text"
|
|
133
132
|
valueField="value">
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
133
|
+
</kendo-dropdownlist>
|
|
134
|
+
}
|
|
135
|
+
@if (extra) {
|
|
136
|
+
<kendo-grid-numeric-filter-menu-input
|
|
137
137
|
[operators]="operators"
|
|
138
138
|
[currentFilter]="secondFilter"
|
|
139
139
|
[filterService]="filterService"
|
|
@@ -147,8 +147,9 @@ export class NumericFilterMenuComponent extends NumericFilterComponent {
|
|
|
147
147
|
[step]="step"
|
|
148
148
|
[menuTabbingService]="menuTabbingService"
|
|
149
149
|
[placeholder]="extraPlaceholder">
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
</kendo-grid-numeric-filter-menu-input>
|
|
151
|
+
}
|
|
152
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format", "placeholder"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
152
153
|
}
|
|
153
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
|
|
154
155
|
type: Component,
|
|
@@ -156,24 +157,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
156
157
|
selector: 'kendo-grid-numeric-filter-menu',
|
|
157
158
|
template: `
|
|
158
159
|
<kendo-grid-numeric-filter-menu-input
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
160
|
+
[currentFilter]="firstFilter"
|
|
161
|
+
[operators]="operators"
|
|
162
|
+
[filterService]="filterService"
|
|
163
|
+
[column]="column"
|
|
164
|
+
[filter]="filter"
|
|
165
|
+
[filterDelay]="filterDelay"
|
|
166
|
+
[format]="format"
|
|
167
|
+
[decimals]="decimals"
|
|
168
|
+
[spinners]="spinners"
|
|
169
|
+
[min]="min"
|
|
170
|
+
[max]="max"
|
|
171
|
+
[step]="step"
|
|
172
|
+
[menuTabbingService]="menuTabbingService"
|
|
173
|
+
[isFirstDropDown]="true"
|
|
174
|
+
[placeholder]="placeholder">
|
|
174
175
|
</kendo-grid-numeric-filter-menu-input>
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
@if (extra) {
|
|
177
|
+
<kendo-dropdownlist
|
|
177
178
|
kendoFilterMenuDropDown
|
|
178
179
|
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
179
180
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
@@ -186,9 +187,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
186
187
|
[value]="filter?.logic"
|
|
187
188
|
textField="text"
|
|
188
189
|
valueField="value">
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
</kendo-dropdownlist>
|
|
191
|
+
}
|
|
192
|
+
@if (extra) {
|
|
193
|
+
<kendo-grid-numeric-filter-menu-input
|
|
192
194
|
[operators]="operators"
|
|
193
195
|
[currentFilter]="secondFilter"
|
|
194
196
|
[filterService]="filterService"
|
|
@@ -202,10 +204,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
202
204
|
[step]="step"
|
|
203
205
|
[menuTabbingService]="menuTabbingService"
|
|
204
206
|
[placeholder]="extraPlaceholder">
|
|
205
|
-
|
|
206
|
-
|
|
207
|
+
</kendo-grid-numeric-filter-menu-input>
|
|
208
|
+
}
|
|
209
|
+
`,
|
|
207
210
|
standalone: true,
|
|
208
|
-
imports: [NumericFilterMenuInputComponent,
|
|
211
|
+
imports: [NumericFilterMenuInputComponent, DropDownListComponent, FilterMenuDropDownListDirective]
|
|
209
212
|
}]
|
|
210
213
|
}], ctorParameters: () => [{ type: i1.ContextService }], propDecorators: { hostClasses: [{
|
|
211
214
|
type: HostBinding,
|
|
@@ -9,7 +9,6 @@ import { FilterService } from '../filter.service';
|
|
|
9
9
|
import { setFilter, logicOperators } from '../base-filter-cell.component';
|
|
10
10
|
import { ContextService } from '../../common/provider.service';
|
|
11
11
|
import { FilterMenuDropDownListDirective } from './filter-menu-dropdownlist.directive';
|
|
12
|
-
import { NgIf } from '@angular/common';
|
|
13
12
|
import { StringFilterMenuInputComponent } from './string-filter-menu-input.component';
|
|
14
13
|
import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
15
14
|
import { replaceMessagePlaceholder } from '@progress/kendo-angular-common';
|
|
@@ -97,19 +96,19 @@ export class StringFilterMenuComponent extends StringFilterComponent {
|
|
|
97
96
|
super.localizationChange();
|
|
98
97
|
}
|
|
99
98
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StringFilterMenuComponent, deps: [{ token: i1.ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
100
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
99
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StringFilterMenuComponent, isStandalone: true, selector: "kendo-grid-string-filter-menu", inputs: { filter: "filter", extra: "extra", filterService: "filterService", placeholder: "placeholder", extraPlaceholder: "extraPlaceholder", menuTabbingService: "menuTabbingService" }, host: { properties: { "class.k-filtercell": "this.hostClasses" } }, usesInheritance: true, ngImport: i0, template: `
|
|
101
100
|
<kendo-grid-string-filter-menu-input
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
101
|
+
[currentFilter]="firstFilter"
|
|
102
|
+
[operators]="operators"
|
|
103
|
+
[filterService]="filterService"
|
|
104
|
+
[column]="column"
|
|
105
|
+
[filter]="filter"
|
|
106
|
+
[isFirstDropDown]="true"
|
|
107
|
+
[placeholder]="placeholder"
|
|
108
|
+
[menuTabbingService]="menuTabbingService">
|
|
110
109
|
</kendo-grid-string-filter-menu-input>
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
@if (extra) {
|
|
111
|
+
<kendo-dropdownlist
|
|
113
112
|
kendoFilterMenuDropDown
|
|
114
113
|
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
115
114
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
@@ -121,9 +120,10 @@ export class StringFilterMenuComponent extends StringFilterComponent {
|
|
|
121
120
|
[value]="filter?.logic"
|
|
122
121
|
textField="text"
|
|
123
122
|
valueField="value">
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
</kendo-dropdownlist>
|
|
124
|
+
}
|
|
125
|
+
@if (extra) {
|
|
126
|
+
<kendo-grid-string-filter-menu-input
|
|
127
127
|
[operators]="operators"
|
|
128
128
|
[currentFilter]="secondFilter"
|
|
129
129
|
[filterService]="filterService"
|
|
@@ -131,8 +131,9 @@ export class StringFilterMenuComponent extends StringFilterComponent {
|
|
|
131
131
|
[filter]="filter"
|
|
132
132
|
[placeholder]="extraPlaceholder"
|
|
133
133
|
[menuTabbingService]="menuTabbingService">
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
</kendo-grid-string-filter-menu-input>
|
|
135
|
+
}
|
|
136
|
+
`, isInline: true, dependencies: [{ kind: "component", type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService", "placeholder"] }, { kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
136
137
|
}
|
|
137
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
|
|
138
139
|
type: Component,
|
|
@@ -140,17 +141,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
140
141
|
selector: 'kendo-grid-string-filter-menu',
|
|
141
142
|
template: `
|
|
142
143
|
<kendo-grid-string-filter-menu-input
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
144
|
+
[currentFilter]="firstFilter"
|
|
145
|
+
[operators]="operators"
|
|
146
|
+
[filterService]="filterService"
|
|
147
|
+
[column]="column"
|
|
148
|
+
[filter]="filter"
|
|
149
|
+
[isFirstDropDown]="true"
|
|
150
|
+
[placeholder]="placeholder"
|
|
151
|
+
[menuTabbingService]="menuTabbingService">
|
|
151
152
|
</kendo-grid-string-filter-menu-input>
|
|
152
|
-
|
|
153
|
-
|
|
153
|
+
@if (extra) {
|
|
154
|
+
<kendo-dropdownlist
|
|
154
155
|
kendoFilterMenuDropDown
|
|
155
156
|
[adaptiveTitle]="ctx.localization.get('adaptiveFilterOperatorsTitle')"
|
|
156
157
|
[adaptiveMode]="ctx.grid?.adaptiveMode"
|
|
@@ -162,9 +163,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
162
163
|
[value]="filter?.logic"
|
|
163
164
|
textField="text"
|
|
164
165
|
valueField="value">
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
</kendo-dropdownlist>
|
|
167
|
+
}
|
|
168
|
+
@if (extra) {
|
|
169
|
+
<kendo-grid-string-filter-menu-input
|
|
168
170
|
[operators]="operators"
|
|
169
171
|
[currentFilter]="secondFilter"
|
|
170
172
|
[filterService]="filterService"
|
|
@@ -172,10 +174,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
172
174
|
[filter]="filter"
|
|
173
175
|
[placeholder]="extraPlaceholder"
|
|
174
176
|
[menuTabbingService]="menuTabbingService">
|
|
175
|
-
|
|
176
|
-
|
|
177
|
+
</kendo-grid-string-filter-menu-input>
|
|
178
|
+
}
|
|
179
|
+
`,
|
|
177
180
|
standalone: true,
|
|
178
|
-
imports: [StringFilterMenuInputComponent,
|
|
181
|
+
imports: [StringFilterMenuInputComponent, DropDownListComponent, FilterMenuDropDownListDirective]
|
|
179
182
|
}]
|
|
180
183
|
}], ctorParameters: () => [{ type: i1.ContextService }], propDecorators: { hostClasses: [{
|
|
181
184
|
type: HostBinding,
|