@progress/kendo-angular-grid 20.1.0-develop.15 → 20.1.0-develop.17
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/columns/column.component.d.ts +8 -1
- package/esm2022/columns/column.component.mjs +9 -1
- package/esm2022/filtering/menu/filter-menu-container.component.mjs +120 -31
- package/esm2022/filtering/menu/filter-menu.component.mjs +4 -6
- 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/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/fesm2022/progress-kendo-angular-grid.mjs +479 -62
- 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/package.json +21 -21
- package/rendering/common/format.pipe.d.ts +17 -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';
|
|
@@ -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: [{
|
|
@@ -5485,7 +5493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
5485
5493
|
args: ['attr.aria-owns']
|
|
5486
5494
|
}] } });
|
|
5487
5495
|
|
|
5488
|
-
const FORMAT_REGEX = /\{\d+:?/;
|
|
5496
|
+
const FORMAT_REGEX$1 = /\{\d+:?/;
|
|
5489
5497
|
/**
|
|
5490
5498
|
* @hidden
|
|
5491
5499
|
*/
|
|
@@ -5506,7 +5514,7 @@ class FieldAccessorPipe {
|
|
|
5506
5514
|
}
|
|
5507
5515
|
formatValue(format, value) {
|
|
5508
5516
|
const intl = this.intlService;
|
|
5509
|
-
if (isString(format) &&
|
|
5517
|
+
if (isString(format) && FORMAT_REGEX$1.exec(format)) {
|
|
5510
5518
|
return intl.format(format, value);
|
|
5511
5519
|
}
|
|
5512
5520
|
return intl.toString(value, format);
|
|
@@ -10677,6 +10685,300 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10677
10685
|
type: Input
|
|
10678
10686
|
}] } });
|
|
10679
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
|
+
|
|
10680
10982
|
const isNoValueOperator = operator => (operator === "isnull"
|
|
10681
10983
|
|| operator === "isnotnull"
|
|
10682
10984
|
|| operator === "isempty"
|
|
@@ -10761,11 +11063,11 @@ class FilterMenuContainerComponent {
|
|
|
10761
11063
|
return this._childFilter;
|
|
10762
11064
|
}
|
|
10763
11065
|
resetButton;
|
|
10764
|
-
filterButton;
|
|
10765
11066
|
_childFilter;
|
|
10766
11067
|
subscription;
|
|
10767
11068
|
_templateContext = {};
|
|
10768
11069
|
_filter;
|
|
11070
|
+
checkboxFilter;
|
|
10769
11071
|
constructor(parentService, childService, ctx, cd, menuTabbingService, adaptiveGridService) {
|
|
10770
11072
|
this.parentService = parentService;
|
|
10771
11073
|
this.childService = childService;
|
|
@@ -10791,7 +11093,7 @@ class FilterMenuContainerComponent {
|
|
|
10791
11093
|
this.menuTabbingService.lastFocusable = undefined;
|
|
10792
11094
|
}
|
|
10793
11095
|
get disabled() {
|
|
10794
|
-
return !this.childFilter.filters.some(validFilters);
|
|
11096
|
+
return this.isMultiFilter ? this.areFiltersEqual : !this.childFilter.filters.some(validFilters);
|
|
10795
11097
|
}
|
|
10796
11098
|
get templateContext() {
|
|
10797
11099
|
this._templateContext.column = this.column;
|
|
@@ -10804,15 +11106,20 @@ class FilterMenuContainerComponent {
|
|
|
10804
11106
|
return isPresent(this.column) && isPresent(this.column.filterMenuTemplateRef);
|
|
10805
11107
|
}
|
|
10806
11108
|
submit() {
|
|
10807
|
-
|
|
10808
|
-
|
|
10809
|
-
|
|
10810
|
-
|
|
10811
|
-
|
|
10812
|
-
|
|
10813
|
-
|
|
10814
|
-
|
|
10815
|
-
|
|
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
|
+
}
|
|
10816
11123
|
}
|
|
10817
11124
|
this.close.emit();
|
|
10818
11125
|
return false;
|
|
@@ -10840,29 +11147,100 @@ class FilterMenuContainerComponent {
|
|
|
10840
11147
|
}
|
|
10841
11148
|
}
|
|
10842
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
|
+
}
|
|
10843
11169
|
get clearText() {
|
|
10844
11170
|
return this.ctx.localization.get("filterClearButton");
|
|
10845
11171
|
}
|
|
10846
11172
|
get filterText() {
|
|
10847
11173
|
return this.ctx.localization.get("filterFilterButton");
|
|
10848
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
|
+
}
|
|
10849
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 });
|
|
10850
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: [
|
|
10851
11225
|
FilterService,
|
|
10852
11226
|
MenuTabbingService
|
|
10853
|
-
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }
|
|
11227
|
+
], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }], ngImport: i0, template: `
|
|
10854
11228
|
<form (submit)="submit()" (reset)="reset()"
|
|
10855
|
-
class="k-filter-menu"
|
|
11229
|
+
class="k-filter-menu"
|
|
11230
|
+
[ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
|
|
10856
11231
|
<div class="k-filter-menu-container">
|
|
10857
11232
|
<ng-container [ngSwitch]="hasTemplate">
|
|
10858
11233
|
<ng-container *ngSwitchCase="false">
|
|
10859
|
-
<ng-container
|
|
11234
|
+
<ng-container *ngIf="!isMultiFilter; else multiFilter"
|
|
10860
11235
|
kendoFilterMenuHost
|
|
10861
11236
|
[filterService]="childService"
|
|
10862
11237
|
[column]="column"
|
|
10863
11238
|
[filter]="childFilter"
|
|
10864
11239
|
[menuTabbingService]="menuTabbingService">
|
|
10865
11240
|
</ng-container>
|
|
11241
|
+
<ng-template #multiFilter>
|
|
11242
|
+
<kendo-grid-multicheckbox-filter [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
|
|
11243
|
+
</ng-template>
|
|
10866
11244
|
</ng-container>
|
|
10867
11245
|
<ng-container *ngSwitchCase="true">
|
|
10868
11246
|
<ng-template
|
|
@@ -10874,20 +11252,24 @@ class FilterMenuContainerComponent {
|
|
|
10874
11252
|
</ng-container>
|
|
10875
11253
|
</ng-container>
|
|
10876
11254
|
<div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
|
|
10877
|
-
<button #filterButton
|
|
11255
|
+
<button #filterButton kendoButton
|
|
11256
|
+
themeColor="primary"
|
|
10878
11257
|
type="submit"
|
|
10879
|
-
|
|
11258
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
10880
11259
|
[disabled]="disabled"
|
|
11260
|
+
[icon]="getButtonIcon('filter', 'icon')"
|
|
11261
|
+
[svgIcon]="getButtonIcon('filter', 'svgIcon')"
|
|
10881
11262
|
(keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
|
|
10882
|
-
<button
|
|
10883
|
-
#resetButton
|
|
11263
|
+
<button #resetButton kendoButton
|
|
10884
11264
|
type="reset"
|
|
10885
|
-
|
|
11265
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
11266
|
+
[icon]="getButtonIcon('reset', 'icon')"
|
|
11267
|
+
[svgIcon]="getButtonIcon('reset', 'svgIcon')"
|
|
10886
11268
|
(keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
|
|
10887
11269
|
</div>
|
|
10888
11270
|
</div>
|
|
10889
11271
|
</form>
|
|
10890
|
-
`, 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"] }] });
|
|
10891
11273
|
}
|
|
10892
11274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterMenuContainerComponent, decorators: [{
|
|
10893
11275
|
type: Component,
|
|
@@ -10899,17 +11281,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10899
11281
|
selector: 'kendo-grid-filter-menu-container',
|
|
10900
11282
|
template: `
|
|
10901
11283
|
<form (submit)="submit()" (reset)="reset()"
|
|
10902
|
-
class="k-filter-menu"
|
|
11284
|
+
class="k-filter-menu"
|
|
11285
|
+
[ngClass]="{'k-popup k-group k-reset': isMultiFilter && !ctx.grid?.isActionSheetExpanded}">
|
|
10903
11286
|
<div class="k-filter-menu-container">
|
|
10904
11287
|
<ng-container [ngSwitch]="hasTemplate">
|
|
10905
11288
|
<ng-container *ngSwitchCase="false">
|
|
10906
|
-
<ng-container
|
|
11289
|
+
<ng-container *ngIf="!isMultiFilter; else multiFilter"
|
|
10907
11290
|
kendoFilterMenuHost
|
|
10908
11291
|
[filterService]="childService"
|
|
10909
11292
|
[column]="column"
|
|
10910
11293
|
[filter]="childFilter"
|
|
10911
11294
|
[menuTabbingService]="menuTabbingService">
|
|
10912
11295
|
</ng-container>
|
|
11296
|
+
<ng-template #multiFilter>
|
|
11297
|
+
<kendo-grid-multicheckbox-filter [column]="column" (filterChange)="onCheckboxFilterChange($event)"></kendo-grid-multicheckbox-filter>
|
|
11298
|
+
</ng-template>
|
|
10913
11299
|
</ng-container>
|
|
10914
11300
|
<ng-container *ngSwitchCase="true">
|
|
10915
11301
|
<ng-template
|
|
@@ -10921,22 +11307,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10921
11307
|
</ng-container>
|
|
10922
11308
|
</ng-container>
|
|
10923
11309
|
<div *ngIf="!ctx.grid?.isActionSheetExpanded" [ngClass]="actionsClass">
|
|
10924
|
-
<button #filterButton
|
|
11310
|
+
<button #filterButton kendoButton
|
|
11311
|
+
themeColor="primary"
|
|
10925
11312
|
type="submit"
|
|
10926
|
-
|
|
11313
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
10927
11314
|
[disabled]="disabled"
|
|
11315
|
+
[icon]="getButtonIcon('filter', 'icon')"
|
|
11316
|
+
[svgIcon]="getButtonIcon('filter', 'svgIcon')"
|
|
10928
11317
|
(keydown.tab)="onTab($event, 'filter')">{{filterText}}</button>
|
|
10929
|
-
<button
|
|
10930
|
-
#resetButton
|
|
11318
|
+
<button #resetButton kendoButton
|
|
10931
11319
|
type="reset"
|
|
10932
|
-
|
|
11320
|
+
[ngClass]="{'k-button-rectangle': !isMultiFilter}"
|
|
11321
|
+
[icon]="getButtonIcon('reset', 'icon')"
|
|
11322
|
+
[svgIcon]="getButtonIcon('reset', 'svgIcon')"
|
|
10933
11323
|
(keydown.tab)="onTab($event, 'reset')">{{clearText}}</button>
|
|
10934
11324
|
</div>
|
|
10935
11325
|
</div>
|
|
10936
11326
|
</form>
|
|
10937
11327
|
`,
|
|
10938
11328
|
standalone: true,
|
|
10939
|
-
imports: [FormsModule, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass]
|
|
11329
|
+
imports: [FormsModule, NgSwitch, NgSwitchCase, FilterMenuHostDirective, NgIf, NgTemplateOutlet, NgClass, MultiCheckboxFilterComponent, ButtonComponent]
|
|
10940
11330
|
}]
|
|
10941
11331
|
}], ctorParameters: function () { return [{ type: FilterService, decorators: [{
|
|
10942
11332
|
type: SkipSelf
|
|
@@ -10957,9 +11347,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
10957
11347
|
}], resetButton: [{
|
|
10958
11348
|
type: ViewChild,
|
|
10959
11349
|
args: ['resetButton', { static: false }]
|
|
10960
|
-
}], filterButton: [{
|
|
10961
|
-
type: ViewChild,
|
|
10962
|
-
args: ['filterButton', { static: false }]
|
|
10963
11350
|
}] } });
|
|
10964
11351
|
|
|
10965
11352
|
let id$1 = 0;
|
|
@@ -10975,7 +11362,6 @@ class FilterMenuComponent {
|
|
|
10975
11362
|
renderer;
|
|
10976
11363
|
cdr;
|
|
10977
11364
|
adaptiveGridService;
|
|
10978
|
-
zone;
|
|
10979
11365
|
idService;
|
|
10980
11366
|
filterIcon = filterIcon;
|
|
10981
11367
|
/**
|
|
@@ -10993,7 +11379,7 @@ class FilterMenuComponent {
|
|
|
10993
11379
|
tabIndex = '-1';
|
|
10994
11380
|
popupRef;
|
|
10995
11381
|
popupSubs;
|
|
10996
|
-
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, adaptiveGridService,
|
|
11382
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, adaptiveGridService, idService) {
|
|
10997
11383
|
this.filterService = filterService;
|
|
10998
11384
|
this.popupService = popupService;
|
|
10999
11385
|
this.ctx = ctx;
|
|
@@ -11001,7 +11387,6 @@ class FilterMenuComponent {
|
|
|
11001
11387
|
this.renderer = renderer;
|
|
11002
11388
|
this.cdr = cdr;
|
|
11003
11389
|
this.adaptiveGridService = adaptiveGridService;
|
|
11004
|
-
this.zone = zone;
|
|
11005
11390
|
this.idService = idService;
|
|
11006
11391
|
}
|
|
11007
11392
|
ngOnDestroy() {
|
|
@@ -11087,7 +11472,7 @@ class FilterMenuComponent {
|
|
|
11087
11472
|
this.anchor.nativeElement.focus({ preventScroll: true });
|
|
11088
11473
|
}
|
|
11089
11474
|
}
|
|
11090
|
-
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 });
|
|
11091
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: `
|
|
11092
11477
|
<a #anchor
|
|
11093
11478
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -11146,7 +11531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
11146
11531
|
standalone: true,
|
|
11147
11532
|
imports: [IconWrapperComponent, FilterMenuContainerComponent],
|
|
11148
11533
|
}]
|
|
11149
|
-
}], 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: [{
|
|
11150
11535
|
type: Optional
|
|
11151
11536
|
}] }]; }, propDecorators: { column: [{
|
|
11152
11537
|
type: Input
|
|
@@ -17249,19 +17634,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
17249
17634
|
args: ['dblclick']
|
|
17250
17635
|
}] } });
|
|
17251
17636
|
|
|
17252
|
-
/**
|
|
17253
|
-
* @hidden
|
|
17254
|
-
*/
|
|
17255
|
-
class LocalDataChangesService {
|
|
17256
|
-
changes = new EventEmitter();
|
|
17257
|
-
data;
|
|
17258
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
17259
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService });
|
|
17260
|
-
}
|
|
17261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalDataChangesService, decorators: [{
|
|
17262
|
-
type: Injectable
|
|
17263
|
-
}] });
|
|
17264
|
-
|
|
17265
17637
|
/**
|
|
17266
17638
|
* @hidden
|
|
17267
17639
|
*/
|
|
@@ -18482,7 +18854,7 @@ class HeaderComponent {
|
|
|
18482
18854
|
}
|
|
18483
18855
|
onHeaderKeydown(column, args) {
|
|
18484
18856
|
const code = normalizeNumpadKeys(args);
|
|
18485
|
-
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu) {
|
|
18857
|
+
if (code === Keys.ArrowDown && args.altKey && this.showFilterMenu && this.isFilterable(column)) {
|
|
18486
18858
|
args.preventDefault();
|
|
18487
18859
|
args.stopImmediatePropagation();
|
|
18488
18860
|
const filterMenu = this.filterMenus.find(fm => fm.column === column);
|
|
@@ -22418,8 +22790,8 @@ const packageMetadata = {
|
|
|
22418
22790
|
productName: 'Kendo UI for Angular',
|
|
22419
22791
|
productCode: 'KENDOUIANGULAR',
|
|
22420
22792
|
productCodes: ['KENDOUIANGULAR'],
|
|
22421
|
-
publishDate:
|
|
22422
|
-
version: '20.1.0-develop.
|
|
22793
|
+
publishDate: 1759933234,
|
|
22794
|
+
version: '20.1.0-develop.17',
|
|
22423
22795
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
22424
22796
|
};
|
|
22425
22797
|
|
|
@@ -26565,8 +26937,29 @@ class GridMessages extends ComponentMessages {
|
|
|
26565
26937
|
* Sets the text for the external editing Dialog <b>Cancel</b> button.
|
|
26566
26938
|
*/
|
|
26567
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;
|
|
26568
26961
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
26569
|
-
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 });
|
|
26570
26963
|
}
|
|
26571
26964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridMessages, decorators: [{
|
|
26572
26965
|
type: Directive,
|
|
@@ -26824,6 +27217,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
26824
27217
|
type: Input
|
|
26825
27218
|
}], externalEditingCancelText: [{
|
|
26826
27219
|
type: Input
|
|
27220
|
+
}], multiCheckboxFilterSearchPlaceholder: [{
|
|
27221
|
+
type: Input
|
|
27222
|
+
}], multiCheckboxFilterSelectAllLabel: [{
|
|
27223
|
+
type: Input
|
|
27224
|
+
}], multiCheckboxFilterSelectedItemsCount: [{
|
|
27225
|
+
type: Input
|
|
26827
27226
|
}] } });
|
|
26828
27227
|
|
|
26829
27228
|
/**
|
|
@@ -30062,7 +30461,7 @@ class GridComponent {
|
|
|
30062
30461
|
*/
|
|
30063
30462
|
selectable = false;
|
|
30064
30463
|
/**
|
|
30065
|
-
* Sets the descriptors for sorting the data ([see example](
|
|
30464
|
+
* Sets the descriptors for sorting the data ([see example](slug:manual_sorting_grid)).
|
|
30066
30465
|
*/
|
|
30067
30466
|
set sort(value) {
|
|
30068
30467
|
if (isArray(value)) {
|
|
@@ -30095,11 +30494,11 @@ class GridComponent {
|
|
|
30095
30494
|
*/
|
|
30096
30495
|
trackBy = defaultTrackBy;
|
|
30097
30496
|
/**
|
|
30098
|
-
* Sets the filter descriptor for the data ([see examples](
|
|
30497
|
+
* Sets the filter descriptor for the data ([see examples](slug:manual_filtering_grid)).
|
|
30099
30498
|
*/
|
|
30100
30499
|
filter;
|
|
30101
30500
|
/**
|
|
30102
|
-
* Sets the descriptors for grouping the data ([see example](
|
|
30501
|
+
* Sets the descriptors for grouping the data ([see example](slug:manual_grouping_grid)).
|
|
30103
30502
|
*/
|
|
30104
30503
|
set group(value) {
|
|
30105
30504
|
if (isArray(value)) {
|
|
@@ -32620,6 +33019,15 @@ class GridComponent {
|
|
|
32620
33019
|
|
|
32621
33020
|
i18n-columnChooserSelectedColumnsCount="kendo.grid.columnChooserSelectedColumnsCount|The text displayed in the Column Chooser for the number of selected columns"
|
|
32622
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' }}"
|
|
32623
33031
|
>
|
|
32624
33032
|
</ng-container>
|
|
32625
33033
|
<kendo-grid-toolbar
|
|
@@ -33480,6 +33888,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
33480
33888
|
|
|
33481
33889
|
i18n-columnChooserSelectedColumnsCount="kendo.grid.columnChooserSelectedColumnsCount|The text displayed in the Column Chooser for the number of selected columns"
|
|
33482
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' }}"
|
|
33483
33900
|
>
|
|
33484
33901
|
</ng-container>
|
|
33485
33902
|
<kendo-grid-toolbar
|
|
@@ -38086,5 +38503,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
38086
38503
|
* Generated bundle index. Do not edit.
|
|
38087
38504
|
*/
|
|
38088
38505
|
|
|
38089
|
-
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 };
|
|
38090
38507
|
|