@progress/kendo-angular-grid 20.1.0-develop.2 → 20.1.0-develop.20
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/column-menu/column-list.component.d.ts +0 -2
- package/columns/column.component.d.ts +8 -1
- package/columns/command-column.component.d.ts +1 -1
- package/columns/span-column.component.d.ts +1 -1
- package/editing/cancel-command.directive.d.ts +1 -1
- package/editing/edit-row-options.interface.d.ts +1 -1
- package/editing/edit-template.directive.d.ts +1 -1
- package/editing/remove-command.directive.d.ts +1 -1
- package/editing/save-command.directive.d.ts +1 -1
- package/editing-directives/edit-service.interface.d.ts +2 -2
- package/editing-directives/external-editing.directive.d.ts +1 -1
- package/editing-directives/in-cell-editing.directive.d.ts +1 -1
- package/editing-directives/reactive-editing.directive.d.ts +1 -1
- package/editing-directives/template-editing.directive.d.ts +1 -1
- package/esm2022/column-menu/column-list-kb-nav.service.mjs +1 -1
- package/esm2022/column-menu/column-list.component.mjs +7 -43
- package/esm2022/column-menu/column-menu-container.component.mjs +10 -1
- package/esm2022/column-menu/column-menu.component.mjs +7 -1
- package/esm2022/columns/column.component.mjs +9 -1
- package/esm2022/columns/command-column.component.mjs +1 -1
- package/esm2022/columns/span-column.component.mjs +1 -1
- package/esm2022/editing/cancel-command.directive.mjs +1 -1
- package/esm2022/editing/edit-template.directive.mjs +1 -1
- package/esm2022/editing/remove-command.directive.mjs +1 -1
- package/esm2022/editing/save-command.directive.mjs +1 -1
- package/esm2022/editing-directives/external-editing.directive.mjs +1 -1
- package/esm2022/editing-directives/in-cell-editing.directive.mjs +1 -1
- package/esm2022/editing-directives/reactive-editing.directive.mjs +1 -1
- package/esm2022/editing-directives/template-editing.directive.mjs +1 -1
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +120 -31
- package/esm2022/filtering/menu/filter-menu-input-wrapper.component.mjs +2 -2
- package/esm2022/filtering/menu/filter-menu.component.mjs +11 -7
- package/esm2022/filtering/multicheckbox-filter.component.mjs +268 -0
- package/esm2022/grid.component.mjs +21 -3
- package/esm2022/index.mjs +1 -0
- package/esm2022/localization/messages.mjs +28 -1
- package/esm2022/navigation/logical-cell.directive.mjs +8 -2
- package/esm2022/navigation/navigation.service.mjs +1 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/rendering/common/field-accessor.pipe.mjs +1 -1
- package/esm2022/rendering/common/format.pipe.mjs +37 -0
- package/esm2022/rendering/header/header.component.mjs +1 -1
- package/esm2022/rendering/list.component.mjs +18 -2
- package/esm2022/rendering/toolbar/tools/column-chooser-tool.directive.mjs +1 -1
- package/esm2022/rendering/toolbar/tools/filter-toolbar-tool.component.mjs +1 -1
- package/esm2022/rendering/toolbar/tools/group-toolbar-tool.component.mjs +2 -2
- package/esm2022/rendering/toolbar/tools/sort-toolbar-tool.component.mjs +1 -1
- package/esm2022/scrolling/scroller.service.mjs +0 -3
- package/fesm2022/progress-kendo-angular-grid.mjs +553 -132
- package/filtering/filterable.d.ts +23 -0
- package/filtering/menu/filter-menu-container.component.d.ts +5 -1
- package/filtering/menu/filter-menu.component.d.ts +3 -4
- package/filtering/multicheckbox-filter.component.d.ts +41 -0
- package/grid.component.d.ts +3 -3
- package/index.d.ts +1 -0
- package/localization/messages.d.ts +22 -1
- package/navigation/navigation.service.d.ts +1 -0
- package/package.json +21 -21
- package/rendering/common/format.pipe.d.ts +17 -0
- package/rendering/list.component.d.ts +1 -0
- package/schematics/ngAdd/index.js +4 -4
|
@@ -6,7 +6,7 @@ import * as i0 from '@angular/core';
|
|
|
6
6
|
import { EventEmitter, Injectable, SecurityContext, InjectionToken, Optional, Inject, Directive, SkipSelf, Input, isDevMode, QueryList, Component, ContentChildren, ContentChild, forwardRef, Host, Output, HostBinding, Pipe, TemplateRef, ChangeDetectionStrategy, ViewChildren, ViewChild, Self, NgZone, HostListener, ElementRef, ViewContainerRef, ViewEncapsulation, inject, Injector, NgModule } from '@angular/core';
|
|
7
7
|
import { merge, of, Subject, zip as zip$1, from, Subscription, interval, fromEvent, Observable, BehaviorSubject } from 'rxjs';
|
|
8
8
|
import * as i1$3 from '@progress/kendo-angular-common';
|
|
9
|
-
import { isDocumentAvailable, Keys, hasClasses as hasClasses$1, isPresent as isPresent$1, normalizeNumpadKeys, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, replaceMessagePlaceholder, isChanged as isChanged$1, KendoInput, guid, PrefixTemplateDirective, closest as closest$1, hasObservers, ResizeSensorComponent, isFirefox, firefoxMaxHeight, closestInScope as closestInScope$1, isFocusable as isFocusable$1, PreventableEvent as PreventableEvent$1, getLicenseMessage, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
9
|
+
import { isDocumentAvailable, Keys, hasClasses as hasClasses$1, isPresent as isPresent$1, normalizeNumpadKeys, anyChanged, TemplateContextDirective, DraggableDirective, EventsOutsideAngularDirective, replaceMessagePlaceholder, isChanged as isChanged$1, KendoInput, guid, areObjectsEqual, PrefixTemplateDirective, closest as closest$1, hasObservers, ResizeSensorComponent, isFirefox, firefoxMaxHeight, closestInScope as closestInScope$1, isFocusable as isFocusable$1, PreventableEvent as PreventableEvent$1, getLicenseMessage, shouldShowValidationUI, WatermarkOverlayComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
10
10
|
import * as i1 from '@angular/platform-browser';
|
|
11
11
|
import * as i1$1 from '@progress/kendo-angular-icons';
|
|
12
12
|
import { IconWrapperComponent, IconsService, KENDO_ICONS } from '@progress/kendo-angular-icons';
|
|
@@ -32,7 +32,7 @@ import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, FormControl, FormG
|
|
|
32
32
|
import * as i2$1 from '@progress/kendo-angular-utils';
|
|
33
33
|
import { DragTargetContainerDirective, DropTargetContainerDirective } from '@progress/kendo-angular-utils';
|
|
34
34
|
import * as i4 from '@progress/kendo-angular-inputs';
|
|
35
|
-
import { TextBoxComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, RadioButtonComponent, CheckBoxComponent, KENDO_FORMFIELD, KENDO_TEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_CHECKBOX } from '@progress/kendo-angular-inputs';
|
|
35
|
+
import { TextBoxComponent, NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, RadioButtonComponent, CheckBoxComponent, TextBoxPrefixTemplateDirective, KENDO_FORMFIELD, KENDO_TEXTBOX, KENDO_NUMERICTEXTBOX, KENDO_CHECKBOX } from '@progress/kendo-angular-inputs';
|
|
36
36
|
import * as i5 from '@progress/kendo-angular-dateinputs';
|
|
37
37
|
import { DatePickerComponent, DatePickerCustomMessagesComponent, KENDO_DATEPICKER, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService as NavigationService$1 } from '@progress/kendo-angular-dateinputs';
|
|
38
38
|
import * as i54 from '@progress/kendo-angular-toolbar';
|
|
@@ -1933,7 +1933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1933
1933
|
}] }]; } });
|
|
1934
1934
|
|
|
1935
1935
|
/**
|
|
1936
|
-
* Lets you customize the content of edited cells by providing a column edit-cell template for the Grid ([see example](slug:
|
|
1936
|
+
* Lets you customize the content of edited cells by providing a column edit-cell template for the Grid ([see example](slug:custom_editors_grid#setting-up-custom-editors)).
|
|
1937
1937
|
* Place an `<ng-template>` tag with the `kendoGridEditTemplate` directive inside a `<kendo-grid-column>` tag to define the template.
|
|
1938
1938
|
*
|
|
1939
1939
|
* The template context includes:
|
|
@@ -2869,6 +2869,12 @@ class ColumnComponent extends ColumnBase {
|
|
|
2869
2869
|
* @default 'text'
|
|
2870
2870
|
*/
|
|
2871
2871
|
filter = 'text';
|
|
2872
|
+
/**
|
|
2873
|
+
* Specifies the filter type for the filter menu UI.
|
|
2874
|
+
*
|
|
2875
|
+
* @default 'default'
|
|
2876
|
+
*/
|
|
2877
|
+
filterVariant = 'default';
|
|
2872
2878
|
/**
|
|
2873
2879
|
* Shows or hides the filter UI for this column. [See example](slug:filtering_grid).
|
|
2874
2880
|
*
|
|
@@ -2916,7 +2922,7 @@ class ColumnComponent extends ColumnBase {
|
|
|
2916
2922
|
return this.title === undefined ? this.field : this.title;
|
|
2917
2923
|
}
|
|
2918
2924
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnComponent, deps: [{ token: ColumnBase, host: true, optional: true, skipSelf: true }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2919
|
-
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: [
|
|
2925
|
+
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: [
|
|
2920
2926
|
{
|
|
2921
2927
|
provide: ColumnBase,
|
|
2922
2928
|
useExisting: forwardRef(() => ColumnComponent)
|
|
@@ -2956,6 +2962,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2956
2962
|
type: Input
|
|
2957
2963
|
}], filter: [{
|
|
2958
2964
|
type: Input
|
|
2965
|
+
}], filterVariant: [{
|
|
2966
|
+
type: Input
|
|
2959
2967
|
}], filterable: [{
|
|
2960
2968
|
type: Input
|
|
2961
2969
|
}], editable: [{
|
|
@@ -3045,7 +3053,7 @@ class SpanColumnComponent extends ColumnBase {
|
|
|
3045
3053
|
includeInChooser = false;
|
|
3046
3054
|
/**
|
|
3047
3055
|
* Sets whether the edit template of the column is rendered.
|
|
3048
|
-
* To enable editing for a spanned column, set an edit template for it ([see example](slug:
|
|
3056
|
+
* To enable editing for a spanned column, set an edit template for it ([see example](slug:custom_editors_grid#setting-up-custom-editors)).
|
|
3049
3057
|
* @default false
|
|
3050
3058
|
*/
|
|
3051
3059
|
set editable(value) {
|
|
@@ -3507,6 +3515,7 @@ class NavigationService {
|
|
|
3507
3515
|
return columnIndexInsideGroup !== columnGroupChildren.length - 1;
|
|
3508
3516
|
}
|
|
3509
3517
|
}
|
|
3518
|
+
preventScroll = false;
|
|
3510
3519
|
viewport;
|
|
3511
3520
|
columnViewport;
|
|
3512
3521
|
activeRowIndex = 0;
|
|
@@ -5264,8 +5273,14 @@ class LogicalCellDirective {
|
|
|
5264
5273
|
this.focusGroup.focus();
|
|
5265
5274
|
}
|
|
5266
5275
|
else {
|
|
5267
|
-
if (!this.logicalSlaveCell &&
|
|
5268
|
-
this.
|
|
5276
|
+
if (!this.logicalSlaveCell &&
|
|
5277
|
+
this.navigationService.autoFocusCell(this.logicalColIndex, this.logicalColIndex + this.colSpan - 1)) {
|
|
5278
|
+
this.microtask(() => {
|
|
5279
|
+
if (this.isFocused()) {
|
|
5280
|
+
el.focus({ preventScroll: this.navigationService.preventScroll });
|
|
5281
|
+
this.navigationService.preventScroll = false;
|
|
5282
|
+
}
|
|
5283
|
+
});
|
|
5269
5284
|
}
|
|
5270
5285
|
this.renderer.addClass(el, 'k-focus');
|
|
5271
5286
|
}
|
|
@@ -5478,7 +5493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5478
5493
|
args: ['attr.aria-owns']
|
|
5479
5494
|
}] } });
|
|
5480
5495
|
|
|
5481
|
-
const FORMAT_REGEX = /\{\d+:?/;
|
|
5496
|
+
const FORMAT_REGEX$1 = /\{\d+:?/;
|
|
5482
5497
|
/**
|
|
5483
5498
|
* @hidden
|
|
5484
5499
|
*/
|
|
@@ -5499,7 +5514,7 @@ class FieldAccessorPipe {
|
|
|
5499
5514
|
}
|
|
5500
5515
|
formatValue(format, value) {
|
|
5501
5516
|
const intl = this.intlService;
|
|
5502
|
-
if (isString(format) &&
|
|
5517
|
+
if (isString(format) && FORMAT_REGEX$1.exec(format)) {
|
|
5503
5518
|
return intl.format(format, value);
|
|
5504
5519
|
}
|
|
5505
5520
|
return intl.toString(value, format);
|
|
@@ -8964,11 +8979,11 @@ class FilterMenuInputWrapperComponent extends FilterInputWrapperComponent {
|
|
|
8964
8979
|
this.filterService.menuTabbingService.firstFocusable = this.firstOperatorDropDown;
|
|
8965
8980
|
if (this.ctx.grid?.isActionSheetExpanded) {
|
|
8966
8981
|
this.subs.add(this.adaptiveGridService.animationEnd.subscribe(() => {
|
|
8967
|
-
this.firstOperatorDropDown.focus();
|
|
8982
|
+
this.firstOperatorDropDown.wrapper.nativeElement.focus({ preventScroll: true });
|
|
8968
8983
|
}));
|
|
8969
8984
|
}
|
|
8970
8985
|
else {
|
|
8971
|
-
this.firstOperatorDropDown.focus();
|
|
8986
|
+
this.firstOperatorDropDown.wrapper.nativeElement.focus({ preventScroll: true });
|
|
8972
8987
|
}
|
|
8973
8988
|
}
|
|
8974
8989
|
}
|
|
@@ -10670,6 +10685,300 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10670
10685
|
type: Input
|
|
10671
10686
|
}] } });
|
|
10672
10687
|
|
|
10688
|
+
/**
|
|
10689
|
+
* @hidden
|
|
10690
|
+
*/
|
|
10691
|
+
class LocalDataChangesService {
|
|
10692
|
+
changes = new EventEmitter();
|
|
10693
|
+
data;
|
|
10694
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10695
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService });
|
|
10696
|
+
}
|
|
10697
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService, decorators: [{
|
|
10698
|
+
type: Injectable
|
|
10699
|
+
}] });
|
|
10700
|
+
|
|
10701
|
+
const FORMAT_REGEX = /\{\d+:?/;
|
|
10702
|
+
/**
|
|
10703
|
+
* @hidden
|
|
10704
|
+
*/
|
|
10705
|
+
class FormatPipe {
|
|
10706
|
+
intlService;
|
|
10707
|
+
constructor(intlService) {
|
|
10708
|
+
this.intlService = intlService;
|
|
10709
|
+
}
|
|
10710
|
+
transform(value, format) {
|
|
10711
|
+
const intl = this.intlService;
|
|
10712
|
+
if (isString(format) && FORMAT_REGEX.exec(format)) {
|
|
10713
|
+
return intl.format(format, value);
|
|
10714
|
+
}
|
|
10715
|
+
return intl.toString(value, format);
|
|
10716
|
+
}
|
|
10717
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormatPipe, deps: [{ token: i1$4.IntlService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10718
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FormatPipe, isStandalone: true, name: "format", pure: false });
|
|
10719
|
+
}
|
|
10720
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormatPipe, decorators: [{
|
|
10721
|
+
type: Pipe,
|
|
10722
|
+
args: [{
|
|
10723
|
+
// eslint-disable-next-line @angular-eslint/pipe-prefix
|
|
10724
|
+
name: 'format',
|
|
10725
|
+
pure: false,
|
|
10726
|
+
standalone: true
|
|
10727
|
+
}]
|
|
10728
|
+
}], ctorParameters: function () { return [{ type: i1$4.IntlService }]; } });
|
|
10729
|
+
|
|
10730
|
+
const DEFAULT_SEARCH_DELAY = 500;
|
|
10731
|
+
/**
|
|
10732
|
+
* @hidden
|
|
10733
|
+
*/
|
|
10734
|
+
class MultiCheckboxFilterComponent {
|
|
10735
|
+
ctx;
|
|
10736
|
+
dataChangesService;
|
|
10737
|
+
column;
|
|
10738
|
+
filterChange = new EventEmitter();
|
|
10739
|
+
constructor(ctx, dataChangesService) {
|
|
10740
|
+
this.ctx = ctx;
|
|
10741
|
+
this.dataChangesService = dataChangesService;
|
|
10742
|
+
}
|
|
10743
|
+
listData;
|
|
10744
|
+
searchIcon = searchIcon;
|
|
10745
|
+
showSelectAll = true;
|
|
10746
|
+
currentlySelected = new Set();
|
|
10747
|
+
isSearched = false;
|
|
10748
|
+
currentFilter;
|
|
10749
|
+
typingTimeout;
|
|
10750
|
+
ngOnInit() {
|
|
10751
|
+
this.listData = [...new Set(this.gridData.map(i => i[this.column.field]))].sort((a, b) => { return a - b; });
|
|
10752
|
+
this.currentlySelected = new Set(this.filteredGridData.map(i => i[this.column.field]));
|
|
10753
|
+
this.currentFilter = this.ctx.grid?.filter;
|
|
10754
|
+
if (this.currentFilter) {
|
|
10755
|
+
this.filterChange.emit(this.currentFilter);
|
|
10756
|
+
}
|
|
10757
|
+
}
|
|
10758
|
+
ngOnDestroy() {
|
|
10759
|
+
if (this.typingTimeout) {
|
|
10760
|
+
clearTimeout(this.typingTimeout);
|
|
10761
|
+
this.typingTimeout = null;
|
|
10762
|
+
}
|
|
10763
|
+
}
|
|
10764
|
+
isItemSelected(item) {
|
|
10765
|
+
return this.currentlySelected.has(item);
|
|
10766
|
+
}
|
|
10767
|
+
onSearch(value) {
|
|
10768
|
+
clearTimeout(this.typingTimeout);
|
|
10769
|
+
this.typingTimeout = setTimeout(() => {
|
|
10770
|
+
this.isSearched = value.length > 0;
|
|
10771
|
+
this.showSelectAll = !this.isSearched;
|
|
10772
|
+
const field = this.column?.field;
|
|
10773
|
+
if (!field) {
|
|
10774
|
+
this.listData = [];
|
|
10775
|
+
return;
|
|
10776
|
+
}
|
|
10777
|
+
const base = [...new Set(this.gridData.map(i => i[field]))].sort((a, b) => { return a - b; });
|
|
10778
|
+
if (!value) {
|
|
10779
|
+
this.listData = base;
|
|
10780
|
+
return;
|
|
10781
|
+
}
|
|
10782
|
+
this.listData = filterBy(base, { operator: 'contains', value });
|
|
10783
|
+
}, DEFAULT_SEARCH_DELAY);
|
|
10784
|
+
}
|
|
10785
|
+
handleCheckBoxChange(checkedState, value, selectAllChecked) {
|
|
10786
|
+
const field = this.column?.field;
|
|
10787
|
+
if (!field) {
|
|
10788
|
+
return;
|
|
10789
|
+
}
|
|
10790
|
+
if (!this.currentFilter) {
|
|
10791
|
+
const existing = this.ctx.grid.filter;
|
|
10792
|
+
this.currentFilter = existing ? { ...existing } : { logic: 'and', filters: [] };
|
|
10793
|
+
}
|
|
10794
|
+
const compositeIndex = this.currentFilter.filters.findIndex((f) => f && Array.isArray(f.filters) && f.filters.some((ff) => ff.field === field));
|
|
10795
|
+
let fieldFilters = [];
|
|
10796
|
+
if (compositeIndex !== -1) {
|
|
10797
|
+
fieldFilters = [...this.currentFilter.filters[compositeIndex].filters];
|
|
10798
|
+
}
|
|
10799
|
+
const valueForItem = (item) => item?.[field];
|
|
10800
|
+
if (selectAllChecked) {
|
|
10801
|
+
if (checkedState) {
|
|
10802
|
+
fieldFilters = [];
|
|
10803
|
+
this.currentlySelected = new Set(this.gridData.map(i => i[this.column.field]));
|
|
10804
|
+
}
|
|
10805
|
+
else {
|
|
10806
|
+
fieldFilters = this.gridData.map(item => ({
|
|
10807
|
+
field,
|
|
10808
|
+
operator: 'neq',
|
|
10809
|
+
value: valueForItem(item)
|
|
10810
|
+
}));
|
|
10811
|
+
this.currentlySelected.clear();
|
|
10812
|
+
}
|
|
10813
|
+
}
|
|
10814
|
+
else {
|
|
10815
|
+
const exists = fieldFilters.some(f => f.value === value);
|
|
10816
|
+
if (checkedState) {
|
|
10817
|
+
if (!exists) {
|
|
10818
|
+
fieldFilters.push({ field, operator: 'eq', value });
|
|
10819
|
+
}
|
|
10820
|
+
else {
|
|
10821
|
+
fieldFilters = fieldFilters.filter(f => f.value !== value);
|
|
10822
|
+
}
|
|
10823
|
+
this.currentlySelected.add(value);
|
|
10824
|
+
}
|
|
10825
|
+
else {
|
|
10826
|
+
if (exists) {
|
|
10827
|
+
fieldFilters = fieldFilters.filter(f => f.value !== value);
|
|
10828
|
+
}
|
|
10829
|
+
else {
|
|
10830
|
+
fieldFilters.push({ field, operator: 'neq', value });
|
|
10831
|
+
}
|
|
10832
|
+
this.currentlySelected.delete(value);
|
|
10833
|
+
}
|
|
10834
|
+
}
|
|
10835
|
+
if (fieldFilters.length === 0) {
|
|
10836
|
+
if (compositeIndex !== -1) {
|
|
10837
|
+
this.currentFilter.filters.splice(compositeIndex, 1);
|
|
10838
|
+
}
|
|
10839
|
+
else {
|
|
10840
|
+
this.currentFilter.filters = fieldFilters;
|
|
10841
|
+
}
|
|
10842
|
+
}
|
|
10843
|
+
else {
|
|
10844
|
+
const compositeBlock = {
|
|
10845
|
+
logic: 'and',
|
|
10846
|
+
filters: fieldFilters
|
|
10847
|
+
};
|
|
10848
|
+
if (compositeIndex !== -1) {
|
|
10849
|
+
this.currentFilter.filters[compositeIndex] = compositeBlock;
|
|
10850
|
+
}
|
|
10851
|
+
else {
|
|
10852
|
+
this.currentFilter.filters.push(compositeBlock);
|
|
10853
|
+
}
|
|
10854
|
+
}
|
|
10855
|
+
this.filterChange.emit(this.currentFilter);
|
|
10856
|
+
}
|
|
10857
|
+
get filteredGridData() {
|
|
10858
|
+
return filterBy(this.gridData, this.ctx.grid?.filter);
|
|
10859
|
+
}
|
|
10860
|
+
get selectAllChecked() {
|
|
10861
|
+
if (!this.listData) {
|
|
10862
|
+
return;
|
|
10863
|
+
}
|
|
10864
|
+
if (this.currentlySelected.size === this.listData.length && this.currentlySelected.size > 0) {
|
|
10865
|
+
return true;
|
|
10866
|
+
}
|
|
10867
|
+
else if (this.currentlySelected.size === 0) {
|
|
10868
|
+
return false;
|
|
10869
|
+
}
|
|
10870
|
+
else {
|
|
10871
|
+
return 'indeterminate';
|
|
10872
|
+
}
|
|
10873
|
+
}
|
|
10874
|
+
get gridData() {
|
|
10875
|
+
let data = [];
|
|
10876
|
+
const isLocalData = isPresent$1(this.ctx?.dataBindingDirective);
|
|
10877
|
+
if (isPresent$1(this.normalizedFilterVariant.data)) {
|
|
10878
|
+
data = this.normalizedFilterVariant.data;
|
|
10879
|
+
}
|
|
10880
|
+
else if (isLocalData) {
|
|
10881
|
+
data = this.dataChangesService.data;
|
|
10882
|
+
}
|
|
10883
|
+
else {
|
|
10884
|
+
data = this.ctx.grid?.flatData;
|
|
10885
|
+
}
|
|
10886
|
+
return data || [];
|
|
10887
|
+
}
|
|
10888
|
+
get normalizedFilterVariant() {
|
|
10889
|
+
const defaultMultiCheckboxSettings = { variant: 'multiCheckbox', search: true };
|
|
10890
|
+
if (typeof this.column?.filterVariant === 'string') {
|
|
10891
|
+
return {
|
|
10892
|
+
variant: this.column.filterVariant,
|
|
10893
|
+
search: true
|
|
10894
|
+
};
|
|
10895
|
+
}
|
|
10896
|
+
return Object.assign(defaultMultiCheckboxSettings, this.column?.filterVariant);
|
|
10897
|
+
}
|
|
10898
|
+
get selectedItemsMessage() {
|
|
10899
|
+
const localizationMsg = this.messageFor('multiCheckboxFilterSelectedItemsCount') || '';
|
|
10900
|
+
return replaceMessagePlaceholder(localizationMsg, 'selectedItemsCount', this.currentlySelected.size.toString());
|
|
10901
|
+
}
|
|
10902
|
+
messageFor(key) {
|
|
10903
|
+
return this.ctx.localization.get(key);
|
|
10904
|
+
}
|
|
10905
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiCheckboxFilterComponent, deps: [{ token: ContextService }, { token: LocalDataChangesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10906
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiCheckboxFilterComponent, isStandalone: true, selector: "kendo-grid-multicheckbox-filter", inputs: { column: "column" }, outputs: { filterChange: "filterChange" }, ngImport: i0, template: `
|
|
10907
|
+
<kendo-textbox *ngIf="normalizedFilterVariant.search"
|
|
10908
|
+
class="k-searchbox"
|
|
10909
|
+
[placeholder]="messageFor('multiCheckboxFilterSearchPlaceholder')"
|
|
10910
|
+
(valueChange)="onSearch($event)">
|
|
10911
|
+
<ng-template kendoTextBoxPrefixTemplate>
|
|
10912
|
+
<kendo-icon-wrapper innerCssClass="k-input-icon" name="search" [svgIcon]="searchIcon"></kendo-icon-wrapper>
|
|
10913
|
+
</ng-template>
|
|
10914
|
+
</kendo-textbox>
|
|
10915
|
+
<ul class="k-reset k-multicheck-wrap">
|
|
10916
|
+
<li class="k-item k-check-all-wrap" *ngIf="showSelectAll">
|
|
10917
|
+
<label class="k-label k-checkbox-label" role="option">
|
|
10918
|
+
<kendo-checkbox
|
|
10919
|
+
[checkedState]="selectAllChecked"
|
|
10920
|
+
(checkedStateChange)="handleCheckBoxChange($event, null, true)">
|
|
10921
|
+
</kendo-checkbox>
|
|
10922
|
+
<span>{{ messageFor('multiCheckboxFilterSelectAllLabel') }}</span>
|
|
10923
|
+
</label>
|
|
10924
|
+
</li>
|
|
10925
|
+
<li class="k-item" *ngFor="let item of listData">
|
|
10926
|
+
<label class="k-label k-checkbox-label" role="option">
|
|
10927
|
+
<kendo-checkbox
|
|
10928
|
+
[checkedState]="isItemSelected(item)"
|
|
10929
|
+
(checkedStateChange)="handleCheckBoxChange($event, item)">
|
|
10930
|
+
</kendo-checkbox>
|
|
10931
|
+
<span>{{ item | format: column.format }}</span>
|
|
10932
|
+
</label>
|
|
10933
|
+
</li>
|
|
10934
|
+
</ul>
|
|
10935
|
+
<div class="k-filter-selected-items">{{selectedItemsMessage}}</div>
|
|
10936
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }, { kind: "component", type: TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { kind: "pipe", type: FormatPipe, name: "format" }] });
|
|
10937
|
+
}
|
|
10938
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiCheckboxFilterComponent, decorators: [{
|
|
10939
|
+
type: Component,
|
|
10940
|
+
args: [{
|
|
10941
|
+
selector: 'kendo-grid-multicheckbox-filter',
|
|
10942
|
+
template: `
|
|
10943
|
+
<kendo-textbox *ngIf="normalizedFilterVariant.search"
|
|
10944
|
+
class="k-searchbox"
|
|
10945
|
+
[placeholder]="messageFor('multiCheckboxFilterSearchPlaceholder')"
|
|
10946
|
+
(valueChange)="onSearch($event)">
|
|
10947
|
+
<ng-template kendoTextBoxPrefixTemplate>
|
|
10948
|
+
<kendo-icon-wrapper innerCssClass="k-input-icon" name="search" [svgIcon]="searchIcon"></kendo-icon-wrapper>
|
|
10949
|
+
</ng-template>
|
|
10950
|
+
</kendo-textbox>
|
|
10951
|
+
<ul class="k-reset k-multicheck-wrap">
|
|
10952
|
+
<li class="k-item k-check-all-wrap" *ngIf="showSelectAll">
|
|
10953
|
+
<label class="k-label k-checkbox-label" role="option">
|
|
10954
|
+
<kendo-checkbox
|
|
10955
|
+
[checkedState]="selectAllChecked"
|
|
10956
|
+
(checkedStateChange)="handleCheckBoxChange($event, null, true)">
|
|
10957
|
+
</kendo-checkbox>
|
|
10958
|
+
<span>{{ messageFor('multiCheckboxFilterSelectAllLabel') }}</span>
|
|
10959
|
+
</label>
|
|
10960
|
+
</li>
|
|
10961
|
+
<li class="k-item" *ngFor="let item of listData">
|
|
10962
|
+
<label class="k-label k-checkbox-label" role="option">
|
|
10963
|
+
<kendo-checkbox
|
|
10964
|
+
[checkedState]="isItemSelected(item)"
|
|
10965
|
+
(checkedStateChange)="handleCheckBoxChange($event, item)">
|
|
10966
|
+
</kendo-checkbox>
|
|
10967
|
+
<span>{{ item | format: column.format }}</span>
|
|
10968
|
+
</label>
|
|
10969
|
+
</li>
|
|
10970
|
+
</ul>
|
|
10971
|
+
<div class="k-filter-selected-items">{{selectedItemsMessage}}</div>
|
|
10972
|
+
`,
|
|
10973
|
+
standalone: true,
|
|
10974
|
+
imports: [NgFor, NgIf, CheckBoxComponent, TextBoxComponent, TextBoxPrefixTemplateDirective, IconWrapperComponent, FormatPipe]
|
|
10975
|
+
}]
|
|
10976
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: LocalDataChangesService }]; }, propDecorators: { column: [{
|
|
10977
|
+
type: Input
|
|
10978
|
+
}], filterChange: [{
|
|
10979
|
+
type: Output
|
|
10980
|
+
}] } });
|
|
10981
|
+
|
|
10673
10982
|
const isNoValueOperator = operator => (operator === "isnull"
|
|
10674
10983
|
|| operator === "isnotnull"
|
|
10675
10984
|
|| operator === "isempty"
|
|
@@ -10754,11 +11063,11 @@ class FilterMenuContainerComponent {
|
|
|
10754
11063
|
return this._childFilter;
|
|
10755
11064
|
}
|
|
10756
11065
|
resetButton;
|
|
10757
|
-
filterButton;
|
|
10758
11066
|
_childFilter;
|
|
10759
11067
|
subscription;
|
|
10760
11068
|
_templateContext = {};
|
|
10761
11069
|
_filter;
|
|
11070
|
+
checkboxFilter;
|
|
10762
11071
|
constructor(parentService, childService, ctx, cd, menuTabbingService, adaptiveGridService) {
|
|
10763
11072
|
this.parentService = parentService;
|
|
10764
11073
|
this.childService = childService;
|
|
@@ -10784,7 +11093,7 @@ class FilterMenuContainerComponent {
|
|
|
10784
11093
|
this.menuTabbingService.lastFocusable = undefined;
|
|
10785
11094
|
}
|
|
10786
11095
|
get disabled() {
|
|
10787
|
-
return !this.childFilter.filters.some(validFilters);
|
|
11096
|
+
return this.isMultiFilter ? this.areFiltersEqual : !this.childFilter.filters.some(validFilters);
|
|
10788
11097
|
}
|
|
10789
11098
|
get templateContext() {
|
|
10790
11099
|
this._templateContext.column = this.column;
|
|
@@ -10797,15 +11106,20 @@ class FilterMenuContainerComponent {
|
|
|
10797
11106
|
return isPresent(this.column) && isPresent(this.column.filterMenuTemplateRef);
|
|
10798
11107
|
}
|
|
10799
11108
|
submit() {
|
|
10800
|
-
|
|
10801
|
-
|
|
10802
|
-
|
|
10803
|
-
|
|
10804
|
-
|
|
10805
|
-
|
|
10806
|
-
|
|
10807
|
-
|
|
10808
|
-
|
|
11109
|
+
if (this.isMultiFilter) {
|
|
11110
|
+
this.parentService.filter(this.checkboxFilter);
|
|
11111
|
+
}
|
|
11112
|
+
else {
|
|
11113
|
+
const filter = trimFilters(this.childFilter);
|
|
11114
|
+
if (filter.filters.length) {
|
|
11115
|
+
const root = this.filter || {
|
|
11116
|
+
filters: [],
|
|
11117
|
+
logic: "and"
|
|
11118
|
+
};
|
|
11119
|
+
removeFilter(root, this.column.field);
|
|
11120
|
+
root.filters.push(filter);
|
|
11121
|
+
this.parentService.filter(root);
|
|
11122
|
+
}
|
|
10809
11123
|
}
|
|
10810
11124
|
this.close.emit();
|
|
10811
11125
|
return false;
|
|
@@ -10833,29 +11147,100 @@ class FilterMenuContainerComponent {
|
|
|
10833
11147
|
}
|
|
10834
11148
|
}
|
|
10835
11149
|
}
|
|
11150
|
+
onCheckboxFilterChange(filter) {
|
|
11151
|
+
this.checkboxFilter = filter;
|
|
11152
|
+
}
|
|
11153
|
+
getButtonIcon(buttonType, iconType) {
|
|
11154
|
+
if (!this.isMultiFilter) {
|
|
11155
|
+
return;
|
|
11156
|
+
}
|
|
11157
|
+
const icons = {
|
|
11158
|
+
filter: {
|
|
11159
|
+
icon: 'filter',
|
|
11160
|
+
svgIcon: filterIcon
|
|
11161
|
+
},
|
|
11162
|
+
reset: {
|
|
11163
|
+
icon: 'filter-clear',
|
|
11164
|
+
svgIcon: filterClearIcon
|
|
11165
|
+
}
|
|
11166
|
+
};
|
|
11167
|
+
return icons[buttonType]?.[iconType];
|
|
11168
|
+
}
|
|
10836
11169
|
get clearText() {
|
|
10837
11170
|
return this.ctx.localization.get("filterClearButton");
|
|
10838
11171
|
}
|
|
10839
11172
|
get filterText() {
|
|
10840
11173
|
return this.ctx.localization.get("filterFilterButton");
|
|
10841
11174
|
}
|
|
11175
|
+
get isMultiFilter() {
|
|
11176
|
+
if (!isPresent(this.column?.filterVariant)) {
|
|
11177
|
+
return false;
|
|
11178
|
+
}
|
|
11179
|
+
const filterVariant = this.column?.filterVariant;
|
|
11180
|
+
return isPresent(filterVariant) && (filterVariant === 'multiCheckbox' || typeof filterVariant === 'object' && filterVariant.variant === 'multiCheckbox');
|
|
11181
|
+
}
|
|
11182
|
+
get areFiltersEqual() {
|
|
11183
|
+
const checkboxFilter = this.checkboxFilter;
|
|
11184
|
+
const gridFilter = this.filter;
|
|
11185
|
+
const isComposite = (f) => !!f && Array.isArray(f.filters);
|
|
11186
|
+
// Treat undefined and "empty (no inner filters)" as equivalent
|
|
11187
|
+
const isEmptyComposite = (f) => isComposite(f) && f.filters.length === 0;
|
|
11188
|
+
if (!checkboxFilter && !gridFilter) {
|
|
11189
|
+
return true;
|
|
11190
|
+
}
|
|
11191
|
+
if ((!checkboxFilter && isEmptyComposite(gridFilter)) || (!gridFilter && isEmptyComposite(checkboxFilter))) {
|
|
11192
|
+
return true;
|
|
11193
|
+
}
|
|
11194
|
+
if (!checkboxFilter || !gridFilter) {
|
|
11195
|
+
return false;
|
|
11196
|
+
}
|
|
11197
|
+
const eq = (x, y) => {
|
|
11198
|
+
const xIsComp = isComposite(x);
|
|
11199
|
+
const yIsComp = isComposite(y);
|
|
11200
|
+
if (xIsComp !== yIsComp) {
|
|
11201
|
+
return false;
|
|
11202
|
+
}
|
|
11203
|
+
if (xIsComp) {
|
|
11204
|
+
const xLogic = x.logic || 'and';
|
|
11205
|
+
const yLogic = y.logic || 'and';
|
|
11206
|
+
if (xLogic !== yLogic) {
|
|
11207
|
+
return false;
|
|
11208
|
+
}
|
|
11209
|
+
if (x.filters.length !== y.filters.length) {
|
|
11210
|
+
return false;
|
|
11211
|
+
}
|
|
11212
|
+
for (let i = 0; i < x.filters.length; i++) {
|
|
11213
|
+
if (!eq(x.filters[i], y.filters[i])) {
|
|
11214
|
+
return false;
|
|
11215
|
+
}
|
|
11216
|
+
}
|
|
11217
|
+
return true;
|
|
11218
|
+
}
|
|
11219
|
+
return areObjectsEqual(x, y);
|
|
11220
|
+
};
|
|
11221
|
+
return eq(checkboxFilter, gridFilter);
|
|
11222
|
+
}
|
|
10842
11223
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, deps: [{ token: FilterService, skipSelf: true }, { token: FilterService }, { token: ContextService }, { token: i0.ChangeDetectorRef }, { token: MenuTabbingService }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10843
11224
|
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: [
|
|
10844
11225
|
FilterService,
|
|
10845
11226
|
MenuTabbingService
|
|
10846
|
-
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }
|
|
11227
|
+
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }], ngImport: i0, template: `
|
|
10847
11228
|
<form (submit)="submit()" (reset)="reset()"
|
|
10848
|
-
class="k-filter-menu"
|
|
11229
|
+
class="k-filter-menu"
|
|
11230
|
+
[ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
|
|
10849
11231
|
<div class="k-filter-menu-container">
|
|
10850
11232
|
<ng-container [ngSwitch]="hasTemplate">
|
|
10851
11233
|
<ng-container *ngSwitchCase="false">
|
|
10852
|
-
<ng-container
|
|
11234
|
+
<ng-container *ngIf="!isMultiFilter; else multiFilter"
|
|
10853
11235
|
kendoFilterMenuHost
|
|
10854
11236
|
[filterService]="childService"
|
|
10855
11237
|
[column]="column"
|
|
10856
11238
|
[filter]="childFilter"
|
|
10857
11239
|
[menuTabbingService]="menuTabbingService">
|
|
10858
11240
|
</ng-container>
|
|
11241
|
+
<ng-template #multiFilter>
|
|
11242
|
+
<kendo-grid-multicheckbox-filter [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
|
|
11243
|
+
</ng-template>
|
|
10859
11244
|
</ng-container>
|
|
10860
11245
|
<ng-container *ngSwitchCase="true">
|
|
10861
11246
|
<ng-template
|
|
@@ -10867,20 +11252,24 @@ class FilterMenuContainerComponent {
|
|
|
10867
11252
|
</ng-container>
|
|
10868
11253
|
</ng-container>
|
|
10869
11254
|
<div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
|
|
10870
|
-
<button #filterButton
|
|
11255
|
+
<button #filterButton kendoButton
|
|
11256
|
+
themeColor="primary"
|
|
10871
11257
|
type="submit"
|
|
10872
|
-
|
|
11258
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
10873
11259
|
[disabled]="disabled"
|
|
11260
|
+
[icon]="getButtonIcon('filter', 'icon')"
|
|
11261
|
+
[svgIcon]="getButtonIcon('filter', 'svgIcon')"
|
|
10874
11262
|
(keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
|
|
10875
|
-
<button
|
|
10876
|
-
#resetButton
|
|
11263
|
+
<button #resetButton kendoButton
|
|
10877
11264
|
type="reset"
|
|
10878
|
-
|
|
11265
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
11266
|
+
[icon]="getButtonIcon('reset', 'icon')"
|
|
11267
|
+
[svgIcon]="getButtonIcon('reset', 'svgIcon')"
|
|
10879
11268
|
(keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
|
|
10880
11269
|
</div>
|
|
10881
11270
|
</div>
|
|
10882
11271
|
</form>
|
|
10883
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.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"] }] });
|
|
11272
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.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"] }] });
|
|
10884
11273
|
}
|
|
10885
11274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
|
|
10886
11275
|
type: Component,
|
|
@@ -10892,17 +11281,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10892
11281
|
selector: 'kendo-grid-filter-menu-container',
|
|
10893
11282
|
template: `
|
|
10894
11283
|
<form (submit)="submit()" (reset)="reset()"
|
|
10895
|
-
class="k-filter-menu"
|
|
11284
|
+
class="k-filter-menu"
|
|
11285
|
+
[ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
|
|
10896
11286
|
<div class="k-filter-menu-container">
|
|
10897
11287
|
<ng-container [ngSwitch]="hasTemplate">
|
|
10898
11288
|
<ng-container *ngSwitchCase="false">
|
|
10899
|
-
<ng-container
|
|
11289
|
+
<ng-container *ngIf="!isMultiFilter; else multiFilter"
|
|
10900
11290
|
kendoFilterMenuHost
|
|
10901
11291
|
[filterService]="childService"
|
|
10902
11292
|
[column]="column"
|
|
10903
11293
|
[filter]="childFilter"
|
|
10904
11294
|
[menuTabbingService]="menuTabbingService">
|
|
10905
11295
|
</ng-container>
|
|
11296
|
+
<ng-template #multiFilter>
|
|
11297
|
+
<kendo-grid-multicheckbox-filter [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
|
|
11298
|
+
</ng-template>
|
|
10906
11299
|
</ng-container>
|
|
10907
11300
|
<ng-container *ngSwitchCase="true">
|
|
10908
11301
|
<ng-template
|
|
@@ -10914,22 +11307,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10914
11307
|
</ng-container>
|
|
10915
11308
|
</ng-container>
|
|
10916
11309
|
<div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
|
|
10917
|
-
<button #filterButton
|
|
11310
|
+
<button #filterButton kendoButton
|
|
11311
|
+
themeColor="primary"
|
|
10918
11312
|
type="submit"
|
|
10919
|
-
|
|
11313
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
10920
11314
|
[disabled]="disabled"
|
|
11315
|
+
[icon]="getButtonIcon('filter', 'icon')"
|
|
11316
|
+
[svgIcon]="getButtonIcon('filter', 'svgIcon')"
|
|
10921
11317
|
(keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
|
|
10922
|
-
<button
|
|
10923
|
-
#resetButton
|
|
11318
|
+
<button #resetButton kendoButton
|
|
10924
11319
|
type="reset"
|
|
10925
|
-
|
|
11320
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
11321
|
+
[icon]="getButtonIcon('reset', 'icon')"
|
|
11322
|
+
[svgIcon]="getButtonIcon('reset', 'svgIcon')"
|
|
10926
11323
|
(keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
|
|
10927
11324
|
</div>
|
|
10928
11325
|
</div>
|
|
10929
11326
|
</form>
|
|
10930
11327
|
`,
|
|
10931
11328
|
standalone: true,
|
|
10932
|
-
imports: [FormsModule, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass]
|
|
11329
|
+
imports: [FormsModule, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass, MultiCheckboxFilterComponent, ButtonComponent]
|
|
10933
11330
|
}]
|
|
10934
11331
|
}], ctorParameters: function () { return [{ type: FilterService, decorators: [{
|
|
10935
11332
|
type: SkipSelf
|
|
@@ -10950,9 +11347,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10950
11347
|
}], resetButton: [{
|
|
10951
11348
|
type: ViewChild,
|
|
10952
11349
|
args: ['resetButton', { static: false }]
|
|
10953
|
-
}], filterButton: [{
|
|
10954
|
-
type: ViewChild,
|
|
10955
|
-
args: ['filterButton', { static: false }]
|
|
10956
11350
|
}] } });
|
|
10957
11351
|
|
|
10958
11352
|
let id$1 = 0;
|
|
@@ -10968,7 +11362,6 @@ class FilterMenuComponent {
|
|
|
10968
11362
|
renderer;
|
|
10969
11363
|
cdr;
|
|
10970
11364
|
adaptiveGridService;
|
|
10971
|
-
zone;
|
|
10972
11365
|
idService;
|
|
10973
11366
|
filterIcon = filterIcon;
|
|
10974
11367
|
/**
|
|
@@ -10986,7 +11379,7 @@ class FilterMenuComponent {
|
|
|
10986
11379
|
tabIndex = '-1';
|
|
10987
11380
|
popupRef;
|
|
10988
11381
|
popupSubs;
|
|
10989
|
-
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, adaptiveGridService,
|
|
11382
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, adaptiveGridService, idService) {
|
|
10990
11383
|
this.filterService = filterService;
|
|
10991
11384
|
this.popupService = popupService;
|
|
10992
11385
|
this.ctx = ctx;
|
|
@@ -10994,7 +11387,6 @@ class FilterMenuComponent {
|
|
|
10994
11387
|
this.renderer = renderer;
|
|
10995
11388
|
this.cdr = cdr;
|
|
10996
11389
|
this.adaptiveGridService = adaptiveGridService;
|
|
10997
|
-
this.zone = zone;
|
|
10998
11390
|
this.idService = idService;
|
|
10999
11391
|
}
|
|
11000
11392
|
ngOnDestroy() {
|
|
@@ -11072,9 +11464,15 @@ class FilterMenuComponent {
|
|
|
11072
11464
|
this.cdr.markForCheck();
|
|
11073
11465
|
}
|
|
11074
11466
|
focusRoot() {
|
|
11075
|
-
|
|
11467
|
+
if (this.isNavigable) {
|
|
11468
|
+
this.navigationService.preventScroll = true;
|
|
11469
|
+
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11470
|
+
}
|
|
11471
|
+
else {
|
|
11472
|
+
this.anchor.nativeElement.focus({ preventScroll: true });
|
|
11473
|
+
}
|
|
11076
11474
|
}
|
|
11077
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: AdaptiveGridService }, { token:
|
|
11475
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: AdaptiveGridService }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11078
11476
|
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: `
|
|
11079
11477
|
<a #anchor
|
|
11080
11478
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -11133,7 +11531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11133
11531
|
standalone: true,
|
|
11134
11532
|
imports: [IconWrapperComponent, FilterMenuContainerComponent],
|
|
11135
11533
|
}]
|
|
11136
|
-
}], ctorParameters: function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: AdaptiveGridService }, { type:
|
|
11534
|
+
}], ctorParameters: function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: AdaptiveGridService }, { type: IdService, decorators: [{
|
|
11137
11535
|
type: Optional
|
|
11138
11536
|
}] }]; }, propDecorators: { column: [{
|
|
11139
11537
|
type: Input
|
|
@@ -12087,7 +12485,7 @@ class ColumnListKeyboardNavigation {
|
|
|
12087
12485
|
toggle(index, active) {
|
|
12088
12486
|
const element = this.items[index]?.hostElement.nativeElement.closest('.k-column-list-item');
|
|
12089
12487
|
element && this.renderer.setAttribute(element, 'tabindex', active ? '0' : '-1');
|
|
12090
|
-
active && element?.focus();
|
|
12488
|
+
active && element?.focus({ preventScroll: true });
|
|
12091
12489
|
}
|
|
12092
12490
|
toggleCheckedState() {
|
|
12093
12491
|
this.items[this.activeIndex].hostElement.nativeElement.closest('.k-column-list-item').firstElementChild.click();
|
|
@@ -12217,15 +12615,6 @@ class ColumnListComponent {
|
|
|
12217
12615
|
this.service.menuTabbingService.lastFocusable = this.applyButton.nativeElement;
|
|
12218
12616
|
}
|
|
12219
12617
|
}
|
|
12220
|
-
onSelectAllClick(e) {
|
|
12221
|
-
if (e.target.classList.contains('k-checkbox')) {
|
|
12222
|
-
return;
|
|
12223
|
-
}
|
|
12224
|
-
e.preventDefault();
|
|
12225
|
-
const label = e.target.closest('.k-column-list-item');
|
|
12226
|
-
const input = label?.querySelector('input');
|
|
12227
|
-
input.click();
|
|
12228
|
-
}
|
|
12229
12618
|
onSelectAllCheckboxChange(checkedState) {
|
|
12230
12619
|
if (!checkedState && !this.allowHideAll) {
|
|
12231
12620
|
const columnsToKeep = [];
|
|
@@ -12407,25 +12796,6 @@ class ColumnListComponent {
|
|
|
12407
12796
|
});
|
|
12408
12797
|
}
|
|
12409
12798
|
}
|
|
12410
|
-
checkBoxClick(e) {
|
|
12411
|
-
const closestItem = e.target.closest('.k-column-list-item');
|
|
12412
|
-
if (!closestItem)
|
|
12413
|
-
return;
|
|
12414
|
-
const checkboxElement = closestItem.querySelector('.k-checkbox-wrap');
|
|
12415
|
-
const input = checkboxElement?.querySelector('input');
|
|
12416
|
-
if (e.target === input) {
|
|
12417
|
-
return;
|
|
12418
|
-
}
|
|
12419
|
-
e.preventDefault();
|
|
12420
|
-
if (input) {
|
|
12421
|
-
const index = parseInt(input.getAttribute('data-index'), 10);
|
|
12422
|
-
const column = this.filteredColumns[index];
|
|
12423
|
-
const isDisabled = checkboxElement.classList.contains('k-disabled');
|
|
12424
|
-
if (column && !isDisabled) {
|
|
12425
|
-
input.click();
|
|
12426
|
-
}
|
|
12427
|
-
}
|
|
12428
|
-
}
|
|
12429
12799
|
onCheckboxChange(checkedState, column, _index) {
|
|
12430
12800
|
column.currentlyChecked = checkedState;
|
|
12431
12801
|
if (this.autoSync) {
|
|
@@ -12459,9 +12829,7 @@ class ColumnListComponent {
|
|
|
12459
12829
|
<label
|
|
12460
12830
|
*ngIf="showSelectAll"
|
|
12461
12831
|
class='k-column-list-item'
|
|
12462
|
-
role="option"
|
|
12463
|
-
[kendoEventsOutsideAngular]="{click: onSelectAllClick}"
|
|
12464
|
-
[scope]="this">
|
|
12832
|
+
role="option">
|
|
12465
12833
|
<kendo-checkbox
|
|
12466
12834
|
#checkbox
|
|
12467
12835
|
[inputAttributes]="{'data-index': '0'}"
|
|
@@ -12474,9 +12842,7 @@ class ColumnListComponent {
|
|
|
12474
12842
|
<label
|
|
12475
12843
|
*ngFor="let column of filteredColumns; let index = index;"
|
|
12476
12844
|
class='k-column-list-item'
|
|
12477
|
-
role="option"
|
|
12478
|
-
[kendoEventsOutsideAngular]="{click: checkBoxClick}"
|
|
12479
|
-
[scope]="this">
|
|
12845
|
+
role="option">
|
|
12480
12846
|
<kendo-checkbox
|
|
12481
12847
|
#checkbox
|
|
12482
12848
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
@@ -12487,7 +12853,7 @@ class ColumnListComponent {
|
|
|
12487
12853
|
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12488
12854
|
</label>
|
|
12489
12855
|
</div>
|
|
12490
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }
|
|
12856
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CheckBoxComponent, selector: "kendo-checkbox", inputs: ["checkedState", "rounded"], outputs: ["checkedStateChange"], exportAs: ["kendoCheckBox"] }] });
|
|
12491
12857
|
}
|
|
12492
12858
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
12493
12859
|
type: Component,
|
|
@@ -12503,9 +12869,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12503
12869
|
<label
|
|
12504
12870
|
*ngIf="showSelectAll"
|
|
12505
12871
|
class='k-column-list-item'
|
|
12506
|
-
role="option"
|
|
12507
|
-
[kendoEventsOutsideAngular]="{click: onSelectAllClick}"
|
|
12508
|
-
[scope]="this">
|
|
12872
|
+
role="option">
|
|
12509
12873
|
<kendo-checkbox
|
|
12510
12874
|
#checkbox
|
|
12511
12875
|
[inputAttributes]="{'data-index': '0'}"
|
|
@@ -12518,9 +12882,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12518
12882
|
<label
|
|
12519
12883
|
*ngFor="let column of filteredColumns; let index = index;"
|
|
12520
12884
|
class='k-column-list-item'
|
|
12521
|
-
role="option"
|
|
12522
|
-
[kendoEventsOutsideAngular]="{click: checkBoxClick}"
|
|
12523
|
-
[scope]="this">
|
|
12885
|
+
role="option">
|
|
12524
12886
|
<kendo-checkbox
|
|
12525
12887
|
#checkbox
|
|
12526
12888
|
[inputAttributes]="{'data-index': index.toString()}"
|
|
@@ -12533,7 +12895,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
12533
12895
|
</div>
|
|
12534
12896
|
`,
|
|
12535
12897
|
standalone: true,
|
|
12536
|
-
imports: [NgFor, NgIf, CheckBoxComponent
|
|
12898
|
+
imports: [NgFor, NgIf, CheckBoxComponent]
|
|
12537
12899
|
}]
|
|
12538
12900
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ColumnListKeyboardNavigation }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService, decorators: [{
|
|
12539
12901
|
type: Optional
|
|
@@ -13375,7 +13737,7 @@ class ColumnChooserToolbarDirective extends ToolbarToolBase {
|
|
|
13375
13737
|
this.buttonElement?.setAttribute('aria-expanded', 'false');
|
|
13376
13738
|
this.buttonElement?.removeAttribute('aria-controls');
|
|
13377
13739
|
this.host.selected = false;
|
|
13378
|
-
focusAnchor && this.buttonElement?.focus();
|
|
13740
|
+
focusAnchor && this.buttonElement?.focus({ preventScroll: true });
|
|
13379
13741
|
}
|
|
13380
13742
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChooserToolbarDirective, deps: [{ token: i0.Renderer2 }, { token: i2.PopupService }, { token: i54.ToolBarButtonComponent }, { token: ContextService }, { token: i0.NgZone }, { token: i54.RefreshService }, { token: AdaptiveGridService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
13381
13743
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChooserToolbarDirective, isStandalone: true, selector: "[kendoGridColumnChooserTool]", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll", filterable: "filterable", showSelectAll: "showSelectAll" }, usesInheritance: true, ngImport: i0 });
|
|
@@ -14899,7 +15261,15 @@ class ColumnMenuContainerComponent {
|
|
|
14899
15261
|
else {
|
|
14900
15262
|
return;
|
|
14901
15263
|
}
|
|
14902
|
-
this.ngZone.onStable.pipe(take(1)).subscribe(() =>
|
|
15264
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
15265
|
+
const firstFocusable = this.service.menuTabbingService.firstFocusable;
|
|
15266
|
+
if (firstFocusable instanceof DropDownListComponent) {
|
|
15267
|
+
firstFocusable.wrapper.nativeElement.focus({ preventScroll: true });
|
|
15268
|
+
}
|
|
15269
|
+
else {
|
|
15270
|
+
firstFocusable?.focus({ preventScroll: true });
|
|
15271
|
+
}
|
|
15272
|
+
});
|
|
14903
15273
|
}
|
|
14904
15274
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuContainerComponent, deps: [{ token: ColumnMenuService }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
14905
15275
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuContainerComponent, isStandalone: true, selector: "kendo-grid-columnmenu-container", queries: [{ propertyName: "columnMenuItems", predicate: ColumnMenuItemDirective, descendants: true }], ngImport: i0, template: `
|
|
@@ -15354,7 +15724,13 @@ class ColumnMenuComponent {
|
|
|
15354
15724
|
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
15355
15725
|
}
|
|
15356
15726
|
focusRoot() {
|
|
15357
|
-
|
|
15727
|
+
if (this.isNavigable) {
|
|
15728
|
+
this.navigationService.preventScroll = true;
|
|
15729
|
+
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
15730
|
+
}
|
|
15731
|
+
else {
|
|
15732
|
+
this.anchor.nativeElement.focus({ preventScroll: true });
|
|
15733
|
+
}
|
|
15358
15734
|
}
|
|
15359
15735
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }, { token: IdService, optional: true }, { token: AdaptiveGridService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15360
15736
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnMenuComponent, isStandalone: true, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
|
|
@@ -17258,19 +17634,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17258
17634
|
args: ['dblclick']
|
|
17259
17635
|
}] } });
|
|
17260
17636
|
|
|
17261
|
-
/**
|
|
17262
|
-
* @hidden
|
|
17263
|
-
*/
|
|
17264
|
-
class LocalDataChangesService {
|
|
17265
|
-
changes = new EventEmitter();
|
|
17266
|
-
data;
|
|
17267
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17268
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService });
|
|
17269
|
-
}
|
|
17270
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService, decorators: [{
|
|
17271
|
-
type: Injectable
|
|
17272
|
-
}] });
|
|
17273
|
-
|
|
17274
17637
|
/**
|
|
17275
17638
|
* @hidden
|
|
17276
17639
|
*/
|
|
@@ -18491,7 +18854,7 @@ class HeaderComponent {
|
|
|
18491
18854
|
}
|
|
18492
18855
|
onHeaderKeydown(column, args) {
|
|
18493
18856
|
const code = normalizeNumpadKeys(args);
|
|
18494
|
-
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
|
18857
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column)) {
|
|
18495
18858
|
args.preventDefault();
|
|
18496
18859
|
args.stopImmediatePropagation();
|
|
18497
18860
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
|
@@ -19549,7 +19912,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
19549
19912
|
|
|
19550
19913
|
/**
|
|
19551
19914
|
* Represents the command columns of the Grid. Define the content of the column inside an `<ng-template>` tag.
|
|
19552
|
-
* For more information and examples, see the [
|
|
19915
|
+
* For more information and examples, see the [Editing Action Buttons](slug:basics_editing_grid#editing-action-buttons) article.
|
|
19553
19916
|
*
|
|
19554
19917
|
* @example
|
|
19555
19918
|
* ```html
|
|
@@ -21796,7 +22159,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
21796
22159
|
/**
|
|
21797
22160
|
* Represents the `cancel` command of the Grid. Apply this directive to any `button`
|
|
21798
22161
|
* element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
21799
|
-
* ([see example](slug:
|
|
22162
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
21800
22163
|
*
|
|
21801
22164
|
* When a button with this directive is clicked, the
|
|
21802
22165
|
* [`cancel`]({% slug api_grid_gridcomponent %}#toc-cancel) event
|
|
@@ -21900,7 +22263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
21900
22263
|
/**
|
|
21901
22264
|
* Represents the `save` command of the Grid. Apply this directive to any `button`
|
|
21902
22265
|
* element inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
21903
|
-
* ([see example](slug:
|
|
22266
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
21904
22267
|
* When you click the button with this directive, the
|
|
21905
22268
|
* [`save`]({% slug api_grid_gridcomponent %}#toc-save) event fires.
|
|
21906
22269
|
* The button with `kendoGridSaveCommand` is automatically hidden when the row is not in edit mode.
|
|
@@ -22003,7 +22366,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
22003
22366
|
/**
|
|
22004
22367
|
* Represents the `remove` command of the Grid. Apply this directive to any `button` element
|
|
22005
22368
|
* inside a [CommandColumnComponent]({% slug api_grid_commandcolumncomponent %})
|
|
22006
|
-
* ([see example](slug:
|
|
22369
|
+
* ([see example](slug:basics_editing_grid#editing-action-buttons)).
|
|
22007
22370
|
* When you click the button with this directive, the
|
|
22008
22371
|
* [`remove`]({% slug api_grid_gridcomponent %}#toc-remove) event fires.
|
|
22009
22372
|
* The button with `kendoGridRemoveCommand` is automatically hidden when the row is in edit mode.
|
|
@@ -22427,8 +22790,8 @@ const packageMetadata = {
|
|
|
22427
22790
|
productName: 'Kendo UI for Angular',
|
|
22428
22791
|
productCode: 'KENDOUIANGULAR',
|
|
22429
22792
|
productCodes: ['KENDOUIANGULAR'],
|
|
22430
|
-
publishDate:
|
|
22431
|
-
version: '20.1.0-develop.
|
|
22793
|
+
publishDate: 1760010088,
|
|
22794
|
+
version: '20.1.0-develop.20',
|
|
22432
22795
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
22433
22796
|
};
|
|
22434
22797
|
|
|
@@ -24389,9 +24752,6 @@ class ScrollerService {
|
|
|
24389
24752
|
const lastItemIndex = this.rowHeightService.index(scrollTop + offsetHeight);
|
|
24390
24753
|
const overflow = Math.max(firstItemIndex + (this.virtualPageSize || this.take) - this.total, 0);
|
|
24391
24754
|
firstItemIndex = Math.max(firstItemIndex - overflow, 0);
|
|
24392
|
-
if (lastItemIndex < this.lastLoaded) {
|
|
24393
|
-
this.lastLoaded = lastItemIndex;
|
|
24394
|
-
}
|
|
24395
24755
|
if (down) {
|
|
24396
24756
|
const atBottom = scrollHeight - clientHeight - scrollTop < SCROLL_BOTTOM_THRESHOLD;
|
|
24397
24757
|
if (atBottom) {
|
|
@@ -24993,6 +25353,9 @@ class ListComponent {
|
|
|
24993
25353
|
this.handleSkipOnData = true;
|
|
24994
25354
|
}
|
|
24995
25355
|
if (isChanged$1('isVirtual', changes)) {
|
|
25356
|
+
if (this.isVirtual && !(this.minRowHeight || this.rowHeight)) {
|
|
25357
|
+
this.minRowHeight = calcRowHeight(this.table.nativeElement);
|
|
25358
|
+
}
|
|
24996
25359
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
24997
25360
|
this.scroller.reset();
|
|
24998
25361
|
this.rowHeightService = this.scroller.rowHeightService = new RowHeightService(this.total, this.rowHeight || this.minRowHeight);
|
|
@@ -25013,6 +25376,7 @@ class ListComponent {
|
|
|
25013
25376
|
get totalIsAllItems() {
|
|
25014
25377
|
return this.isVirtual && (Boolean(this.ctx.grid?.pageable || this.ctx.grid?.group?.length));
|
|
25015
25378
|
}
|
|
25379
|
+
rebindGroupedDataFlag = false;
|
|
25016
25380
|
ngDoCheck() {
|
|
25017
25381
|
if (this.virtualColumns && (!this.viewportColumns || this.viewportWidthChange())) {
|
|
25018
25382
|
this.updateViewportColumns();
|
|
@@ -25031,6 +25395,14 @@ class ListComponent {
|
|
|
25031
25395
|
this.scroller.reset(this.skipScroll);
|
|
25032
25396
|
this.scroller.total = this.allItems.length;
|
|
25033
25397
|
}
|
|
25398
|
+
else if (totalChanged && !this.ctx.grid?.group?.length) {
|
|
25399
|
+
this.scroller.reset(this.skipScroll);
|
|
25400
|
+
this.scroller.total = this.total;
|
|
25401
|
+
}
|
|
25402
|
+
const rebindGroupedData = this.isVirtual && !totalChanged && this.ctx.grid?.group?.length && !this.rebindGroupedDataFlag;
|
|
25403
|
+
if (rebindGroupedData) {
|
|
25404
|
+
this.rebindGroupedDataFlag = true;
|
|
25405
|
+
}
|
|
25034
25406
|
if (shouldCalculatePageSize || !isPresent(this.scroller.rowHeightService)) {
|
|
25035
25407
|
const calculatedPageSize = this.virtualPageSize ?? this.calcVirtualPageSize();
|
|
25036
25408
|
if (calculatedPageSize > 0) {
|
|
@@ -25051,6 +25423,10 @@ class ListComponent {
|
|
|
25051
25423
|
});
|
|
25052
25424
|
}
|
|
25053
25425
|
}
|
|
25426
|
+
else if (this.rebindGroupedDataFlag) {
|
|
25427
|
+
this.ngZone.run(() => this.itemsToRender = this.allItems.slice(this.scroller.virtualSkip, this.scroller.virtualSkip + this.virtualPageSize));
|
|
25428
|
+
this.rebindGroupedDataFlag = false;
|
|
25429
|
+
}
|
|
25054
25430
|
if (!this.zoneSub) {
|
|
25055
25431
|
this.zoneSub = this.ngZone.onStable.subscribe(() => {
|
|
25056
25432
|
if (!this.scroller.rowHeightService) {
|
|
@@ -25571,7 +25947,7 @@ class ListComponent {
|
|
|
25571
25947
|
<div></div>
|
|
25572
25948
|
</div>
|
|
25573
25949
|
</div>
|
|
25574
|
-
<div
|
|
25950
|
+
<div
|
|
25575
25951
|
#container
|
|
25576
25952
|
class="k-grid-content k-virtual-content"
|
|
25577
25953
|
[kendoGridResizableContainer]="lockedLeafColumns.length > 0"
|
|
@@ -25696,7 +26072,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
25696
26072
|
<div></div>
|
|
25697
26073
|
</div>
|
|
25698
26074
|
</div>
|
|
25699
|
-
<div
|
|
26075
|
+
<div
|
|
25700
26076
|
#container
|
|
25701
26077
|
class="k-grid-content k-virtual-content"
|
|
25702
26078
|
[kendoGridResizableContainer]="lockedLeafColumns.length > 0"
|
|
@@ -26561,8 +26937,29 @@ class GridMessages extends ComponentMessages {
|
|
|
26561
26937
|
* Sets the text for the external editing Dialog <b>Cancel</b> button.
|
|
26562
26938
|
*/
|
|
26563
26939
|
externalEditingCancelText;
|
|
26940
|
+
/**
|
|
26941
|
+
* The placeholder text for the multi-checkbox filter search input
|
|
26942
|
+
*/
|
|
26943
|
+
multiCheckboxFilterSearchPlaceholder;
|
|
26944
|
+
/**
|
|
26945
|
+
* The label for the multi-checkbox filter select all option
|
|
26946
|
+
*/
|
|
26947
|
+
multiCheckboxFilterSelectAllLabel;
|
|
26948
|
+
/**
|
|
26949
|
+
* The text for the multi-checkbox filter selected items count
|
|
26950
|
+
*
|
|
26951
|
+
* The text includes the selected items count and a localizable string.
|
|
26952
|
+
* For 3 selected items the default text is `3 selected items`.
|
|
26953
|
+
*
|
|
26954
|
+
* To customize the text, use the `{selectedItemsCount}` placeholder and a custom localizable string.
|
|
26955
|
+
* For example, `{selectedItemsCount} items are selected`.
|
|
26956
|
+
*
|
|
26957
|
+
* The `{selectedItemsCount}` placeholder is replaced with the count of selected items,
|
|
26958
|
+
* and the message is rendered as `3 items are selected`.
|
|
26959
|
+
*/
|
|
26960
|
+
multiCheckboxFilterSelectedItemsCount;
|
|
26564
26961
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
26565
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", aiAssistantApplyButtonText: "aiAssistantApplyButtonText", aiAssistantToolbarToolText: "aiAssistantToolbarToolText", aiAssistantWindowTitle: "aiAssistantWindowTitle", aiAssistantWindowCloseTitle: "aiAssistantWindowCloseTitle", aiAssistantOutputCardTitle: "aiAssistantOutputCardTitle", aiAssistantOutputCardBodyContent: "aiAssistantOutputCardBodyContent", aiAssistantWindowMaximizeTitle: "aiAssistantWindowMaximizeTitle", aiAssistantWindowMinimizeTitle: "aiAssistantWindowMinimizeTitle", aiAssistantWindowRestoreTitle: "aiAssistantWindowRestoreTitle", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", adaptiveFilterOperatorsTitle: "adaptiveFilterOperatorsTitle", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", adaptiveBackButtonTitle: "adaptiveBackButtonTitle", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", filterToolbarToolText: "filterToolbarToolText", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", columnChooserSelectedColumnsCount: "columnChooserSelectedColumnsCount", columnsSubtitle: "columnsSubtitle", adaptiveFilterTitle: "adaptiveFilterTitle", adaptiveSortTitle: "adaptiveSortTitle", adaptiveGroupTitle: "adaptiveGroupTitle", filterClearAllButton: "filterClearAllButton", groupClearButton: "groupClearButton", sortClearButton: "sortClearButton", sortDoneButton: "sortDoneButton", groupDoneButton: "groupDoneButton", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", sortToolbarToolText: "sortToolbarToolText", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", editToolbarToolText: "editToolbarToolText", saveToolbarToolText: "saveToolbarToolText", addToolbarToolText: "addToolbarToolText", cancelToolbarToolText: "cancelToolbarToolText", removeToolbarToolText: "removeToolbarToolText", excelExportToolbarToolText: "excelExportToolbarToolText", pdfExportToolbarToolText: "pdfExportToolbarToolText", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", groupToolbarToolText: "groupToolbarToolText", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingAddTitle: "externalEditingAddTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText" }, usesInheritance: true, ngImport: i0 });
|
|
26962
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GridMessages, selector: "kendo-grid-messages-base", inputs: { groupPanelEmpty: "groupPanelEmpty", noRecords: "noRecords", pagerLabel: "pagerLabel", pagerFirstPage: "pagerFirstPage", pagerLastPage: "pagerLastPage", pagerPreviousPage: "pagerPreviousPage", pagerNextPage: "pagerNextPage", pagerPage: "pagerPage", pagerItemsPerPage: "pagerItemsPerPage", pagerOf: "pagerOf", pagerItems: "pagerItems", pagerPageNumberInputTitle: "pagerPageNumberInputTitle", pagerInputLabel: "pagerInputLabel", pagerSelectPage: "pagerSelectPage", filter: "filter", filterInputLabel: "filterInputLabel", filterMenuTitle: "filterMenuTitle", filterMenuOperatorsDropDownLabel: "filterMenuOperatorsDropDownLabel", filterMenuLogicDropDownLabel: "filterMenuLogicDropDownLabel", filterCellOperatorLabel: "filterCellOperatorLabel", booleanFilterCellLabel: "booleanFilterCellLabel", aiAssistantApplyButtonText: "aiAssistantApplyButtonText", aiAssistantToolbarToolText: "aiAssistantToolbarToolText", aiAssistantWindowTitle: "aiAssistantWindowTitle", aiAssistantWindowCloseTitle: "aiAssistantWindowCloseTitle", aiAssistantOutputCardTitle: "aiAssistantOutputCardTitle", aiAssistantOutputCardBodyContent: "aiAssistantOutputCardBodyContent", aiAssistantWindowMaximizeTitle: "aiAssistantWindowMaximizeTitle", aiAssistantWindowMinimizeTitle: "aiAssistantWindowMinimizeTitle", aiAssistantWindowRestoreTitle: "aiAssistantWindowRestoreTitle", filterEqOperator: "filterEqOperator", filterNotEqOperator: "filterNotEqOperator", filterIsNullOperator: "filterIsNullOperator", filterIsNotNullOperator: "filterIsNotNullOperator", filterIsEmptyOperator: "filterIsEmptyOperator", filterIsNotEmptyOperator: "filterIsNotEmptyOperator", filterStartsWithOperator: "filterStartsWithOperator", filterContainsOperator: "filterContainsOperator", filterNotContainsOperator: "filterNotContainsOperator", filterEndsWithOperator: "filterEndsWithOperator", filterGteOperator: "filterGteOperator", filterGtOperator: "filterGtOperator", filterLteOperator: "filterLteOperator", filterLtOperator: "filterLtOperator", filterIsTrue: "filterIsTrue", filterIsFalse: "filterIsFalse", filterBooleanAll: "filterBooleanAll", adaptiveFilterOperatorsTitle: "adaptiveFilterOperatorsTitle", filterAfterOrEqualOperator: "filterAfterOrEqualOperator", filterAfterOperator: "filterAfterOperator", filterBeforeOperator: "filterBeforeOperator", filterBeforeOrEqualOperator: "filterBeforeOrEqualOperator", filterFilterButton: "filterFilterButton", filterClearButton: "filterClearButton", adaptiveCloseButtonTitle: "adaptiveCloseButtonTitle", adaptiveBackButtonTitle: "adaptiveBackButtonTitle", filterAndLogic: "filterAndLogic", filterOrLogic: "filterOrLogic", filterToolbarToolText: "filterToolbarToolText", loading: "loading", gridLabel: "gridLabel", columnMenu: "columnMenu", setColumnPosition: "setColumnPosition", columns: "columns", columnChooserSelectedColumnsCount: "columnChooserSelectedColumnsCount", columnsSubtitle: "columnsSubtitle", adaptiveFilterTitle: "adaptiveFilterTitle", adaptiveSortTitle: "adaptiveSortTitle", adaptiveGroupTitle: "adaptiveGroupTitle", filterClearAllButton: "filterClearAllButton", groupClearButton: "groupClearButton", sortClearButton: "sortClearButton", sortDoneButton: "sortDoneButton", groupDoneButton: "groupDoneButton", lock: "lock", unlock: "unlock", stick: "stick", unstick: "unstick", sortable: "sortable", sortAscending: "sortAscending", sortDescending: "sortDescending", autosizeThisColumn: "autosizeThisColumn", autosizeAllColumns: "autosizeAllColumns", sortedAscending: "sortedAscending", sortedDescending: "sortedDescending", sortedDefault: "sortedDefault", sortToolbarToolText: "sortToolbarToolText", columnsApply: "columnsApply", columnsReset: "columnsReset", detailExpand: "detailExpand", detailCollapse: "detailCollapse", filterDateToday: "filterDateToday", filterDateToggle: "filterDateToggle", filterNumericDecrement: "filterNumericDecrement", filterNumericIncrement: "filterNumericIncrement", selectionCheckboxLabel: "selectionCheckboxLabel", selectAllCheckboxLabel: "selectAllCheckboxLabel", groupCollapse: "groupCollapse", groupExpand: "groupExpand", topToolbarLabel: "topToolbarLabel", bottomToolbarLabel: "bottomToolbarLabel", editToolbarToolText: "editToolbarToolText", saveToolbarToolText: "saveToolbarToolText", addToolbarToolText: "addToolbarToolText", cancelToolbarToolText: "cancelToolbarToolText", removeToolbarToolText: "removeToolbarToolText", excelExportToolbarToolText: "excelExportToolbarToolText", pdfExportToolbarToolText: "pdfExportToolbarToolText", groupPanelLabel: "groupPanelLabel", dragRowHandleLabel: "dragRowHandleLabel", columnMenuFilterTabTitle: "columnMenuFilterTabTitle", columnMenuGeneralTabTitle: "columnMenuGeneralTabTitle", columnMenuColumnsTabTitle: "columnMenuColumnsTabTitle", groupChipMenuPrevious: "groupChipMenuPrevious", groupChipMenuNext: "groupChipMenuNext", groupToolbarToolText: "groupToolbarToolText", formValidationErrorText: "formValidationErrorText", removeConfirmationDialogTitle: "removeConfirmationDialogTitle", removeConfirmationDialogContent: "removeConfirmationDialogContent", removeConfirmationDialogConfirmText: "removeConfirmationDialogConfirmText", removeConfirmationDialogRejectText: "removeConfirmationDialogRejectText", externalEditingTitle: "externalEditingTitle", externalEditingAddTitle: "externalEditingAddTitle", externalEditingSaveText: "externalEditingSaveText", externalEditingCancelText: "externalEditingCancelText", multiCheckboxFilterSearchPlaceholder: "multiCheckboxFilterSearchPlaceholder", multiCheckboxFilterSelectAllLabel: "multiCheckboxFilterSelectAllLabel", multiCheckboxFilterSelectedItemsCount: "multiCheckboxFilterSelectedItemsCount" }, usesInheritance: true, ngImport: i0 });
|
|
26566
26963
|
}
|
|
26567
26964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
|
|
26568
26965
|
type: Directive,
|
|
@@ -26820,6 +27217,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26820
27217
|
type: Input
|
|
26821
27218
|
}], externalEditingCancelText: [{
|
|
26822
27219
|
type: Input
|
|
27220
|
+
}], multiCheckboxFilterSearchPlaceholder: [{
|
|
27221
|
+
type: Input
|
|
27222
|
+
}], multiCheckboxFilterSelectAllLabel: [{
|
|
27223
|
+
type: Input
|
|
27224
|
+
}], multiCheckboxFilterSelectedItemsCount: [{
|
|
27225
|
+
type: Input
|
|
26823
27226
|
}] } });
|
|
26824
27227
|
|
|
26825
27228
|
/**
|
|
@@ -26925,7 +27328,7 @@ class FilterToolbarToolComponent {
|
|
|
26925
27328
|
}
|
|
26926
27329
|
ngAfterViewInit() {
|
|
26927
27330
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
26928
|
-
this.filterItems?.get(0)?.nativeElement.focus();
|
|
27331
|
+
this.filterItems?.get(0)?.nativeElement.focus({ preventScroll: true });
|
|
26929
27332
|
});
|
|
26930
27333
|
}
|
|
26931
27334
|
ngOnDestroy() {
|
|
@@ -27111,7 +27514,7 @@ class SortToolbarToolComponent {
|
|
|
27111
27514
|
}
|
|
27112
27515
|
ngAfterViewInit() {
|
|
27113
27516
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
27114
|
-
this.sortItems?.get(0)?.nativeElement.focus();
|
|
27517
|
+
this.sortItems?.get(0)?.nativeElement.focus({ preventScroll: true });
|
|
27115
27518
|
});
|
|
27116
27519
|
}
|
|
27117
27520
|
ngOnDestroy() {
|
|
@@ -27673,12 +28076,12 @@ class GroupToolbarToolComponent {
|
|
|
27673
28076
|
if (items?.first && (!isPresent$1(this.currentFocusedItemIndex) || this.currentFocusedItemIndex >= items.length || this.currentFocusedItemIndex < 0)) {
|
|
27674
28077
|
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
27675
28078
|
this.currentFocusedItemIndex = 0;
|
|
27676
|
-
this.groupItems.first.nativeElement.focus();
|
|
28079
|
+
this.groupItems.first.nativeElement.focus({ preventScroll: true });
|
|
27677
28080
|
});
|
|
27678
28081
|
return;
|
|
27679
28082
|
}
|
|
27680
28083
|
if (items?.first) {
|
|
27681
|
-
items.get(this.currentFocusedItemIndex).nativeElement.focus();
|
|
28084
|
+
items.get(this.currentFocusedItemIndex).nativeElement.focus({ preventScroll: true });
|
|
27682
28085
|
}
|
|
27683
28086
|
}
|
|
27684
28087
|
get groupItems() {
|
|
@@ -30058,7 +30461,7 @@ class GridComponent {
|
|
|
30058
30461
|
*/
|
|
30059
30462
|
selectable = false;
|
|
30060
30463
|
/**
|
|
30061
|
-
* Sets the descriptors for sorting the data ([see example](
|
|
30464
|
+
* Sets the descriptors for sorting the data ([see example](slug:manual_sorting_grid)).
|
|
30062
30465
|
*/
|
|
30063
30466
|
set sort(value) {
|
|
30064
30467
|
if (isArray(value)) {
|
|
@@ -30091,11 +30494,11 @@ class GridComponent {
|
|
|
30091
30494
|
*/
|
|
30092
30495
|
trackBy = defaultTrackBy;
|
|
30093
30496
|
/**
|
|
30094
|
-
* Sets the filter descriptor for the data ([see examples](
|
|
30497
|
+
* Sets the filter descriptor for the data ([see examples](slug:manual_filtering_grid)).
|
|
30095
30498
|
*/
|
|
30096
30499
|
filter;
|
|
30097
30500
|
/**
|
|
30098
|
-
* Sets the descriptors for grouping the data ([see example](
|
|
30501
|
+
* Sets the descriptors for grouping the data ([see example](slug:manual_grouping_grid)).
|
|
30099
30502
|
*/
|
|
30100
30503
|
set group(value) {
|
|
30101
30504
|
if (isArray(value)) {
|
|
@@ -32616,6 +33019,15 @@ class GridComponent {
|
|
|
32616
33019
|
|
|
32617
33020
|
i18n-columnChooserSelectedColumnsCount="kendo.grid.columnChooserSelectedColumnsCount|The text displayed in the Column Chooser for the number of selected columns"
|
|
32618
33021
|
columnChooserSelectedColumnsCount="{{ '{selectedColumnsCount} Selected items' }}"
|
|
33022
|
+
|
|
33023
|
+
i18n-multiCheckboxFilterSearchPlaceholder="kendo.grid.multiCheckboxFilterSearchPlaceholder|The placeholder text for the multi-checkbox filter search input"
|
|
33024
|
+
multiCheckboxFilterSearchPlaceholder="Search..."
|
|
33025
|
+
|
|
33026
|
+
i18n-multiCheckboxFilterSelectAllLabel="kendo.grid.multiCheckboxFilterSelectAllLabel|The label for the multi-checkbox filter select all option"
|
|
33027
|
+
multiCheckboxFilterSelectAllLabel="Select all"
|
|
33028
|
+
|
|
33029
|
+
i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
|
|
33030
|
+
multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
|
|
32619
33031
|
>
|
|
32620
33032
|
</ng-container>
|
|
32621
33033
|
<kendo-grid-toolbar
|
|
@@ -33476,6 +33888,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33476
33888
|
|
|
33477
33889
|
i18n-columnChooserSelectedColumnsCount="kendo.grid.columnChooserSelectedColumnsCount|The text displayed in the Column Chooser for the number of selected columns"
|
|
33478
33890
|
columnChooserSelectedColumnsCount="{{ '{selectedColumnsCount} Selected items' }}"
|
|
33891
|
+
|
|
33892
|
+
i18n-multiCheckboxFilterSearchPlaceholder="kendo.grid.multiCheckboxFilterSearchPlaceholder|The placeholder text for the multi-checkbox filter search input"
|
|
33893
|
+
multiCheckboxFilterSearchPlaceholder="Search..."
|
|
33894
|
+
|
|
33895
|
+
i18n-multiCheckboxFilterSelectAllLabel="kendo.grid.multiCheckboxFilterSelectAllLabel|The label for the multi-checkbox filter select all option"
|
|
33896
|
+
multiCheckboxFilterSelectAllLabel="Select all"
|
|
33897
|
+
|
|
33898
|
+
i18n-multiCheckboxFilterSelectedItemsCount="kendo.grid.multiCheckboxFilterSelectedItemsCount|The text for the multi-checkbox filter selected items count"
|
|
33899
|
+
multiCheckboxFilterSelectedItemsCount="{{ '{selectedItemsCount} selected items' }}"
|
|
33479
33900
|
>
|
|
33480
33901
|
</ng-container>
|
|
33481
33902
|
<kendo-grid-toolbar
|
|
@@ -34706,7 +35127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34706
35127
|
}] });
|
|
34707
35128
|
|
|
34708
35129
|
/**
|
|
34709
|
-
* Represents the directive that manages editing operations in the Grid when using Template-Driven Angular Forms ([see example](
|
|
35130
|
+
* Represents the directive that manages editing operations in the Grid when using Template-Driven Angular Forms ([see example](slug:inline_editing_grid#using-template-driven-forms)).
|
|
34710
35131
|
*
|
|
34711
35132
|
* @example
|
|
34712
35133
|
* ```html
|
|
@@ -34783,7 +35204,7 @@ const markAllAsTouched = (control) => {
|
|
|
34783
35204
|
};
|
|
34784
35205
|
|
|
34785
35206
|
/**
|
|
34786
|
-
* Represents the directive that manages editing operations in the Grid when using Reactive Forms ([see example](slug:
|
|
35207
|
+
* Represents the directive that manages editing operations in the Grid when using Reactive Forms ([see example](slug:inline_editing_grid#using-reactive-forms)).
|
|
34787
35208
|
*
|
|
34788
35209
|
* @example
|
|
34789
35210
|
* ```html
|
|
@@ -34832,7 +35253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34832
35253
|
}] } });
|
|
34833
35254
|
|
|
34834
35255
|
/**
|
|
34835
|
-
* Represent the directive that manages in-cell editing operations in the Grid when using Reactive Forms ([see example](
|
|
35256
|
+
* Represent the directive that manages in-cell editing operations in the Grid when using Reactive Forms ([see example](slug:editing_incell_grid#quick-setup)).
|
|
34836
35257
|
*
|
|
34837
35258
|
* @example
|
|
34838
35259
|
* ```html
|
|
@@ -34918,7 +35339,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
34918
35339
|
|
|
34919
35340
|
/**
|
|
34920
35341
|
* Represents the Kendo UI Grid external editing directive. The directive manages editing operations in the Grid when using the
|
|
34921
|
-
* External Form ([see example](slug:
|
|
35342
|
+
* External Form ([see example](slug:external_editing_grid#quick-setup)).
|
|
34922
35343
|
*
|
|
34923
35344
|
* @example
|
|
34924
35345
|
* ```typescript
|
|
@@ -38082,5 +38503,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
38082
38503
|
* Generated bundle index. Do not edit.
|
|
38083
38504
|
*/
|
|
38084
38505
|
|
|
38085
|
-
export { AIAssistantToolbarDirective, AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CancelCommandToolbarDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_AI_REQUEST_OPTIONS, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditCommandToolbarDirective, EditService as EditServiceClass, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterCommandToolbarDirective, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarAIResponseErrorEvent, GridToolbarAIResponseSuccessEvent, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupCommandToolbarDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, HighlightDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RedoCommandToolbarDirective, RemoveCommandDirective, RemoveCommandToolbarDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, SaveCommandToolbarDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectAllToolbarToolComponent, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortCommandToolbarDirective, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, UndoCommandToolbarDirective, UndoRedoDirective, UndoRedoEvent, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable };
|
|
38506
|
+
export { AIAssistantToolbarDirective, AddCommandDirective, AddCommandToolbarDirective, AfterEqFilterOperatorComponent, AfterFilterOperatorComponent, AutoCompleteFilterCellComponent, BaseFilterCellComponent, BeforeEqFilterOperatorComponent, BeforeFilterOperatorComponent, BooleanFilterCellComponent, BooleanFilterComponent, BooleanFilterMenuComponent, BooleanFilterRadioButtonDirective, BrowserSupportService, CELL_CONTEXT, CancelCommandDirective, CancelCommandToolbarDirective, CellCloseEvent, CellComponent, CellLoadingTemplateDirective, CellSelectionAggregateService, CellSelectionService, CellTemplateDirective, ChangeNotificationService, CheckboxColumnComponent, ColGroupComponent, ColumnBase, ColumnChooserComponent, ColumnChooserToolbarDirective, ColumnComponent, ColumnGroupComponent, ColumnHandleDirective, ColumnInfoService, ColumnListComponent, ColumnLockedChangeEvent, ColumnMenuAutoSizeAllColumnsComponent, ColumnMenuAutoSizeColumnComponent, ColumnMenuChooserComponent, ColumnMenuComponent, ColumnMenuContainerComponent, ColumnMenuFilterComponent, ColumnMenuItemComponent, ColumnMenuItemContentTemplateDirective, ColumnMenuItemDirective, ColumnMenuLockComponent, ColumnMenuPositionComponent, ColumnMenuService, ColumnMenuSortComponent, ColumnMenuStickComponent, ColumnMenuTemplateDirective, ColumnReorderEvent, ColumnReorderService, ColumnResizingService, ColumnStickyChangeEvent, ColumnVisibilityChangeEvent, ColumnsContainer, CommandColumnComponent, ContainsFilterOperatorComponent, ContextService, CustomMessagesComponent, DEFAULT_AI_REQUEST_OPTIONS, DEFAULT_SCROLLER_FACTORY, DataBindingDirective, DateFilterCellComponent, DateFilterComponent, DateFilterMenuComponent, DateFilterMenuInputComponent, DetailCollapseEvent, DetailExpandEvent, DetailTemplateDirective, DetailsService, DoesNotContainFilterOperatorComponent, DomEventsService, DragAndDropService, DragHintService, DropCueService, EditCommandDirective, EditCommandToolbarDirective, EditService as EditServiceClass, EditTemplateDirective, EditingDirectiveBase, EndsWithFilterOperatorComponent, EqualFilterOperatorComponent, ExcelCommandDirective, ExcelCommandToolbarDirective, ExcelComponent, ExcelExportEvent, ExcelModule, ExcelService, ExpandDetailsDirective, ExpandGroupDirective, ExternalEditingDirective, FieldAccessorPipe, FilterCellComponent, FilterCellHostDirective, FilterCellOperatorsComponent, FilterCellTemplateDirective, FilterCellWrapperComponent, FilterCommandToolbarDirective, FilterInputDirective, FilterMenuComponent, FilterMenuContainerComponent, FilterMenuDropDownListDirective, FilterMenuHostDirective, FilterMenuInputWrapperComponent, FilterMenuTemplateDirective, FilterRowComponent, FilterService, FocusRoot, FocusableDirective, FooterComponent, FooterTemplateDirective, GreaterFilterOperatorComponent, GreaterOrEqualToFilterOperatorComponent, GridClipboardDirective, GridComponent, GridModule, GridSpacerComponent, GridTableDirective, GridToolbarAIResponseErrorEvent, GridToolbarAIResponseSuccessEvent, GridToolbarFocusableDirective, GridToolbarNavigationService, GroupCommandToolbarDirective, GroupFooterTemplateDirective, GroupHeaderColumnTemplateDirective, GroupHeaderComponent, GroupHeaderTemplateDirective, GroupInfoService, GroupPanelComponent, GroupsService, HeaderComponent, HeaderTemplateDirective, HighlightDirective, IdService, InCellEditingDirective, IsEmptyFilterOperatorComponent, IsNotEmptyFilterOperatorComponent, IsNotNullFilterOperatorComponent, IsNullFilterOperatorComponent, KENDO_GRID, KENDO_GRID_BODY_EXPORTS, KENDO_GRID_COLUMN_DRAGANDDROP, KENDO_GRID_COLUMN_MENU_DECLARATIONS, KENDO_GRID_COLUMN_MENU_EXPORTS, KENDO_GRID_DECLARATIONS, KENDO_GRID_EXCEL_EXPORT, KENDO_GRID_EXPORTS, KENDO_GRID_FILTER_MENU, KENDO_GRID_FILTER_MENU_EXPORTS, KENDO_GRID_FILTER_OPERATORS, KENDO_GRID_FILTER_ROW, KENDO_GRID_FILTER_ROW_EXPORTS, KENDO_GRID_FILTER_SHARED, KENDO_GRID_FOOTER_EXPORTS, KENDO_GRID_GROUP_EXPORTS, KENDO_GRID_HEADER_EXPORTS, KENDO_GRID_PDF_EXPORT, KENDO_GRID_SHARED, LessFilterOperatorComponent, LessOrEqualToFilterOperatorComponent, ListComponent, LoadingComponent, LoadingTemplateDirective, LocalDataChangesService, LogicalCellDirective, LogicalRowDirective, MenuTabbingService, MultiCheckboxFilterComponent, NavigationService, NoRecordsTemplateDirective, NotEqualFilterOperatorComponent, NumericFilterCellComponent, NumericFilterComponent, NumericFilterMenuComponent, NumericFilterMenuInputComponent, PDFCommandDirective, PDFCommandToolbarDirective, PDFComponent, PDFMarginComponent, PDFModule, PDFService, PDFTemplateDirective, PopupCloseEvent, ReactiveEditingDirective, RedoCommandToolbarDirective, RemoveCommandDirective, RemoveCommandToolbarDirective, ResizableContainerDirective, ResizeService, ResponsiveService, RowDragHandleTemplateDirective, RowDragHintTemplateDirective, RowEditingDirectiveBase, RowReorderColumnComponent, RowReorderService, SaveCommandDirective, SaveCommandToolbarDirective, ScrollRequestService, ScrollSyncService, SelectAllCheckboxDirective, SelectAllToolbarToolComponent, SelectionCheckboxDirective, SelectionDirective, SelectionService, SinglePopupService, SizingOptionsService, Skip, SortCommandToolbarDirective, SortService, SpanColumnComponent, StartsWithFilterOperatorComponent, StatusBarTemplateDirective, StringFilterCellComponent, StringFilterComponent, StringFilterMenuComponent, StringFilterMenuInputComponent, SuspendService, TableBodyComponent, TableDirective, TemplateEditingDirective, ToolbarComponent, ToolbarTemplateDirective, UndoCommandToolbarDirective, UndoRedoDirective, UndoRedoEvent, defaultTrackBy, hasFilterMenu, hasFilterRow, isFilterable };
|
|
38086
38507
|
|