@progress/kendo-angular-grid 13.4.0-develop.1 → 13.4.0-develop.11
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-chooser-item-checked.directive.d.ts +20 -0
- package/column-menu/column-chooser.component.d.ts +9 -1
- package/column-menu/column-list-kb-nav.service.d.ts +22 -0
- package/column-menu/column-list.component.d.ts +10 -2
- package/column-menu/column-menu-item.component.d.ts +2 -0
- package/column-menu/column-menu.component.d.ts +10 -4
- package/column-menu/column-menu.module.d.ts +22 -21
- package/common/error-messages.d.ts +1 -1
- package/esm2020/column-menu/column-chooser-item-checked.directive.mjs +36 -0
- package/esm2020/column-menu/column-chooser.component.mjs +63 -12
- package/esm2020/column-menu/column-list-kb-nav.service.mjs +38 -0
- package/esm2020/column-menu/column-list.component.mjs +137 -26
- package/esm2020/column-menu/column-menu-autosize-all.component.mjs +2 -2
- package/esm2020/column-menu/column-menu-autosize.component.mjs +2 -2
- package/esm2020/column-menu/column-menu-chooser.component.mjs +3 -1
- package/esm2020/column-menu/column-menu-item.component.mjs +10 -4
- package/esm2020/column-menu/column-menu.component.mjs +79 -37
- package/esm2020/column-menu/column-menu.module.mjs +6 -2
- package/esm2020/common/error-messages.mjs +1 -1
- package/esm2020/filtering/cell/autocomplete-filter-cell.component.mjs +1 -1
- package/esm2020/filtering/cell/boolean-filter-cell.component.mjs +1 -1
- package/esm2020/filtering/cell/filter-cell-operators.component.mjs +1 -1
- package/esm2020/filtering/menu/date-filter-menu.component.mjs +1 -1
- package/esm2020/filtering/menu/filter-menu-container.component.mjs +2 -2
- package/esm2020/filtering/menu/filter-menu-input-wrapper.component.mjs +1 -1
- package/esm2020/filtering/menu/filter-menu.component.mjs +52 -10
- package/esm2020/filtering/menu/numeric-filter-menu.component.mjs +1 -1
- package/esm2020/filtering/menu/string-filter-menu.component.mjs +1 -1
- package/esm2020/navigation/logical-cell.directive.mjs +1 -1
- package/esm2020/package-metadata.mjs +2 -2
- package/esm2020/pager/pager-numeric-buttons.component.mjs +14 -8
- package/esm2020/pager/pager-page-sizes.component.mjs +1 -1
- package/esm2020/pager/pager.component.mjs +76 -42
- package/esm2020/rendering/footer/footer.component.mjs +1 -1
- package/esm2020/rendering/groups-expand.directive.mjs +9 -1
- package/esm2020/rendering/header/header.component.mjs +31 -21
- package/fesm2015/progress-kendo-angular-grid.mjs +914 -547
- package/fesm2020/progress-kendo-angular-grid.mjs +915 -556
- package/filtering/menu/filter-menu.component.d.ts +13 -4
- package/package.json +16 -16
- package/pager/pager-numeric-buttons.component.d.ts +2 -1
- package/pager/pager.component.d.ts +5 -1
- package/rendering/header/header.component.d.ts +4 -1
- package/schematics/ngAdd/index.js +3 -3
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
|
|
6
|
+
import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ElementRef, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
|
|
7
7
|
import * as i1$1 from '@progress/kendo-angular-common';
|
|
8
8
|
import { isDocumentAvailable, Keys, isPresent as isPresent$1, closest as closest$1, isFocusable as isFocusable$1, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
|
|
9
9
|
import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip$1, BehaviorSubject, Observable } from 'rxjs';
|
|
@@ -24,17 +24,17 @@ import { IconsModule } from '@progress/kendo-angular-icons';
|
|
|
24
24
|
import { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterIcon, stickIcon, unstickIcon, setColumnPositionIcon, columnsIcon, maxWidthIcon, displayInlineFlexIcon, slidersIcon, moreVerticalIcon, filterClearIcon, reorderIcon, caretAltDownIcon, minusIcon } from '@progress/kendo-svg-icons';
|
|
25
25
|
import * as i41 from '@progress/kendo-angular-utils';
|
|
26
26
|
import { DragTargetContainerDirective, DropTargetContainerDirective, DragAndDropModule as DragAndDropModule$1 } from '@progress/kendo-angular-utils';
|
|
27
|
-
import * as i4$1 from '@progress/kendo-angular-buttons';
|
|
28
|
-
import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
|
|
29
|
-
import * as i3$1 from '@progress/kendo-angular-inputs';
|
|
30
|
-
import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
|
|
31
27
|
import * as i1$4 from '@progress/kendo-angular-dropdowns';
|
|
32
28
|
import { DropDownListComponent, DropDownListModule, AutoCompleteModule, DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
33
29
|
import * as i5 from '@progress/kendo-angular-label';
|
|
34
30
|
import { LabelModule } from '@progress/kendo-angular-label';
|
|
31
|
+
import * as i4$1 from '@progress/kendo-angular-buttons';
|
|
32
|
+
import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
|
|
33
|
+
import * as i3$1 from '@progress/kendo-angular-inputs';
|
|
34
|
+
import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
|
|
35
35
|
import * as i4$3 from '@progress/kendo-angular-dateinputs';
|
|
36
36
|
import { DatePickerModule } from '@progress/kendo-angular-dateinputs';
|
|
37
|
-
import * as
|
|
37
|
+
import * as i17 from '@progress/kendo-angular-layout';
|
|
38
38
|
import { TabStripComponent, TabStripModule } from '@progress/kendo-angular-layout';
|
|
39
39
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
40
40
|
import { getter } from '@progress/kendo-common';
|
|
@@ -4442,8 +4442,8 @@ const packageMetadata = {
|
|
|
4442
4442
|
name: '@progress/kendo-angular-grid',
|
|
4443
4443
|
productName: 'Kendo UI for Angular',
|
|
4444
4444
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4445
|
-
publishDate:
|
|
4446
|
-
version: '13.4.0-develop.
|
|
4445
|
+
publishDate: 1693036824,
|
|
4446
|
+
version: '13.4.0-develop.11',
|
|
4447
4447
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4448
4448
|
};
|
|
4449
4449
|
|
|
@@ -7059,23 +7059,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7059
7059
|
type: Input
|
|
7060
7060
|
}] } });
|
|
7061
7061
|
|
|
7062
|
+
// eslint-disable no-access-missing-member
|
|
7062
7063
|
/**
|
|
7063
|
-
* Displays
|
|
7064
|
+
* Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7064
7065
|
*/
|
|
7065
|
-
class
|
|
7066
|
-
constructor(ctx,
|
|
7066
|
+
class PagerInfoComponent extends PagerElementComponent {
|
|
7067
|
+
constructor(ctx, cd, pagerContext) {
|
|
7067
7068
|
super(ctx, pagerContext, cd);
|
|
7068
|
-
this.
|
|
7069
|
+
this.pagerContext = pagerContext;
|
|
7070
|
+
}
|
|
7071
|
+
/**
|
|
7072
|
+
* @hidden
|
|
7073
|
+
*
|
|
7074
|
+
* @readonly
|
|
7075
|
+
* @type {number}
|
|
7076
|
+
* @memberOf PagerInfoComponent
|
|
7077
|
+
*/
|
|
7078
|
+
get maxItems() {
|
|
7079
|
+
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
7080
|
+
}
|
|
7081
|
+
/**
|
|
7082
|
+
* @hidden
|
|
7083
|
+
*
|
|
7084
|
+
* @readonly
|
|
7085
|
+
* @type {number}
|
|
7086
|
+
* @memberOf PagerInfoComponent
|
|
7087
|
+
*/
|
|
7088
|
+
get currentPageText() {
|
|
7089
|
+
return this.total ?
|
|
7090
|
+
(this.currentPage - 1) * this.pageSize + 1 :
|
|
7091
|
+
0;
|
|
7069
7092
|
}
|
|
7070
7093
|
/**
|
|
7071
7094
|
* @hidden
|
|
7072
7095
|
*
|
|
7073
7096
|
* @readonly
|
|
7074
7097
|
* @type {boolean}
|
|
7075
|
-
* @memberOf
|
|
7098
|
+
* @memberOf PagerInfoComponent
|
|
7076
7099
|
*/
|
|
7077
|
-
get
|
|
7078
|
-
return
|
|
7100
|
+
get classes() {
|
|
7101
|
+
return true;
|
|
7079
7102
|
}
|
|
7080
7103
|
onChanges({ total, skip, pageSize }) {
|
|
7081
7104
|
this.total = total;
|
|
@@ -7084,168 +7107,266 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
7084
7107
|
this.cd.markForCheck();
|
|
7085
7108
|
}
|
|
7086
7109
|
}
|
|
7087
|
-
|
|
7088
|
-
|
|
7089
|
-
|
|
7090
|
-
[kendoGridFocusable]="!disabled"
|
|
7091
|
-
kendoButton
|
|
7092
|
-
type="button"
|
|
7093
|
-
[title]="textFor('pagerFirstPage')"
|
|
7094
|
-
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7095
|
-
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7096
|
-
role="button"
|
|
7097
|
-
[icon]="prevArrowIcons[0]"
|
|
7098
|
-
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7099
|
-
class="k-pager-nav k-pager-first"
|
|
7100
|
-
[disabled]="disabled"
|
|
7101
|
-
fillMode="flat"
|
|
7102
|
-
rounded="none"
|
|
7103
|
-
[size]="size">
|
|
7104
|
-
</button>
|
|
7105
|
-
<button
|
|
7106
|
-
kendoButton
|
|
7107
|
-
[kendoGridFocusable]="!disabled"
|
|
7108
|
-
type="button"
|
|
7109
|
-
class="k-pager-nav"
|
|
7110
|
-
[disabled]="disabled"
|
|
7111
|
-
[icon]="prevArrowIcons[1]"
|
|
7112
|
-
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7113
|
-
fillMode="flat"
|
|
7114
|
-
rounded="none"
|
|
7115
|
-
[size]="size"
|
|
7116
|
-
[title]="textFor('pagerPreviousPage')"
|
|
7117
|
-
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7118
|
-
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7119
|
-
</button>
|
|
7120
|
-
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7121
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
7110
|
+
PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7111
|
+
PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
7122
7113
|
type: Component,
|
|
7123
7114
|
args: [{
|
|
7124
7115
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7125
|
-
selector: 'kendo-pager-
|
|
7126
|
-
template: `
|
|
7127
|
-
<button
|
|
7128
|
-
[kendoGridFocusable]="!disabled"
|
|
7129
|
-
kendoButton
|
|
7130
|
-
type="button"
|
|
7131
|
-
[title]="textFor('pagerFirstPage')"
|
|
7132
|
-
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7133
|
-
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7134
|
-
role="button"
|
|
7135
|
-
[icon]="prevArrowIcons[0]"
|
|
7136
|
-
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7137
|
-
class="k-pager-nav k-pager-first"
|
|
7138
|
-
[disabled]="disabled"
|
|
7139
|
-
fillMode="flat"
|
|
7140
|
-
rounded="none"
|
|
7141
|
-
[size]="size">
|
|
7142
|
-
</button>
|
|
7143
|
-
<button
|
|
7144
|
-
kendoButton
|
|
7145
|
-
[kendoGridFocusable]="!disabled"
|
|
7146
|
-
type="button"
|
|
7147
|
-
class="k-pager-nav"
|
|
7148
|
-
[disabled]="disabled"
|
|
7149
|
-
[icon]="prevArrowIcons[1]"
|
|
7150
|
-
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7151
|
-
fillMode="flat"
|
|
7152
|
-
rounded="none"
|
|
7153
|
-
[size]="size"
|
|
7154
|
-
[title]="textFor('pagerPreviousPage')"
|
|
7155
|
-
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7156
|
-
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7157
|
-
</button>
|
|
7158
|
-
`
|
|
7116
|
+
selector: 'kendo-pager-info',
|
|
7117
|
+
template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
|
|
7159
7118
|
}]
|
|
7160
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type:
|
|
7119
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
|
|
7120
|
+
type: HostBinding,
|
|
7121
|
+
args: ["class.k-pager-info"]
|
|
7122
|
+
}, {
|
|
7123
|
+
type: HostBinding,
|
|
7124
|
+
args: ["class.k-label"]
|
|
7125
|
+
}] } });
|
|
7161
7126
|
|
|
7162
7127
|
/**
|
|
7163
|
-
*
|
|
7128
|
+
* @hidden
|
|
7164
7129
|
*/
|
|
7165
|
-
class
|
|
7166
|
-
constructor(
|
|
7130
|
+
class PagerDropDownListDirective {
|
|
7131
|
+
constructor(host) {
|
|
7132
|
+
this.host = host;
|
|
7133
|
+
this.keydownHandler = (e) => {
|
|
7134
|
+
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
7135
|
+
e.stopPropagation();
|
|
7136
|
+
this.host.toggle(false);
|
|
7137
|
+
}
|
|
7138
|
+
};
|
|
7139
|
+
}
|
|
7140
|
+
ngAfterViewInit() {
|
|
7141
|
+
const wrapperElement = this.host.wrapper.nativeElement;
|
|
7142
|
+
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
7143
|
+
}
|
|
7144
|
+
ngOnDestroy() {
|
|
7145
|
+
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
7146
|
+
}
|
|
7147
|
+
}
|
|
7148
|
+
PagerDropDownListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, deps: [{ token: i1$4.DropDownListComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7149
|
+
PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
|
|
7150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
|
|
7151
|
+
type: Directive,
|
|
7152
|
+
args: [{ selector: '[kendoGridPagerDropDown]' }]
|
|
7153
|
+
}], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
|
|
7154
|
+
|
|
7155
|
+
/**
|
|
7156
|
+
* Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7157
|
+
*/
|
|
7158
|
+
class PagerPageSizesComponent extends PagerElementComponent {
|
|
7159
|
+
constructor(ctx, cd, pagerContext, navigationService) {
|
|
7167
7160
|
super(ctx, pagerContext, cd);
|
|
7168
7161
|
this.pagerContext = pagerContext;
|
|
7169
|
-
this.
|
|
7162
|
+
this.navigationService = navigationService;
|
|
7163
|
+
this._pageSizes = [];
|
|
7170
7164
|
}
|
|
7171
7165
|
/**
|
|
7172
|
-
*
|
|
7173
|
-
*
|
|
7174
|
-
* @readonly
|
|
7175
|
-
* @type {number[]}
|
|
7176
|
-
* @memberOf PagerNumericButtonsComponent
|
|
7166
|
+
* The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
|
|
7167
|
+
* ([see example]({% slug paging_grid %}#toc-pager-templates))
|
|
7177
7168
|
*/
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7169
|
+
set pageSizes(pageSizes) {
|
|
7170
|
+
let normalizedItems = [];
|
|
7171
|
+
pageSizes.forEach(item => {
|
|
7172
|
+
if (typeof item === 'number') {
|
|
7173
|
+
normalizedItems.push({
|
|
7174
|
+
text: item.toString(),
|
|
7175
|
+
value: item
|
|
7176
|
+
});
|
|
7177
|
+
}
|
|
7178
|
+
else {
|
|
7179
|
+
normalizedItems.push(item);
|
|
7180
|
+
}
|
|
7181
|
+
});
|
|
7182
|
+
if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
|
|
7183
|
+
normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
|
|
7182
7184
|
}
|
|
7183
|
-
|
|
7185
|
+
this._pageSizes = normalizedItems;
|
|
7186
|
+
}
|
|
7187
|
+
get pageSizes() {
|
|
7188
|
+
return this._pageSizes;
|
|
7184
7189
|
}
|
|
7185
7190
|
/**
|
|
7186
7191
|
* @hidden
|
|
7192
|
+
*
|
|
7193
|
+
* @readonly
|
|
7187
7194
|
*/
|
|
7188
|
-
get
|
|
7189
|
-
return
|
|
7195
|
+
get classes() {
|
|
7196
|
+
return true;
|
|
7190
7197
|
}
|
|
7191
7198
|
/**
|
|
7192
7199
|
* @hidden
|
|
7200
|
+
*
|
|
7201
|
+
* @readonly
|
|
7193
7202
|
*/
|
|
7194
|
-
get
|
|
7195
|
-
|
|
7196
|
-
|
|
7197
|
-
|
|
7198
|
-
|
|
7199
|
-
|
|
7200
|
-
|
|
7201
|
-
|
|
7203
|
+
get showInitialPageSize() {
|
|
7204
|
+
return this.pageSizes
|
|
7205
|
+
.filter(item => {
|
|
7206
|
+
if (typeof item.value === 'number') {
|
|
7207
|
+
return item.value === Number(this.pageSize);
|
|
7208
|
+
}
|
|
7209
|
+
return this.total === Number(this.pageSize);
|
|
7210
|
+
})
|
|
7211
|
+
.length === 0;
|
|
7202
7212
|
}
|
|
7203
7213
|
/**
|
|
7204
7214
|
* @hidden
|
|
7205
7215
|
*/
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
return pageText + ' ' + num;
|
|
7210
|
-
}
|
|
7211
|
-
return num.toString();
|
|
7216
|
+
pageSizeChange(value) {
|
|
7217
|
+
this.pageSize = typeof value === 'number' ? value : this.total;
|
|
7218
|
+
this.pagerContext.changePageSize(this.pageSize);
|
|
7212
7219
|
}
|
|
7213
7220
|
/**
|
|
7214
7221
|
* @hidden
|
|
7215
7222
|
*/
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
const valueAsNumber = Number(target.value);
|
|
7219
|
-
if (!Number.isNaN(valueAsNumber)) {
|
|
7220
|
-
this.changePage(valueAsNumber - 1);
|
|
7221
|
-
}
|
|
7222
|
-
else {
|
|
7223
|
-
if (target.value === 'previousButtons') {
|
|
7224
|
-
this.changePage(this.start - 2);
|
|
7225
|
-
}
|
|
7226
|
-
else {
|
|
7227
|
-
this.changePage(this.end);
|
|
7228
|
-
}
|
|
7229
|
-
}
|
|
7223
|
+
getValue(page) {
|
|
7224
|
+
return typeof page.value === 'number' ? page.value : this.total;
|
|
7230
7225
|
}
|
|
7231
7226
|
onChanges({ total, skip, pageSize }) {
|
|
7232
7227
|
this.total = total;
|
|
7233
7228
|
this.skip = skip;
|
|
7234
|
-
this.pageSize = pageSize;
|
|
7229
|
+
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
7235
7230
|
this.cd.markForCheck();
|
|
7236
7231
|
}
|
|
7237
7232
|
}
|
|
7238
|
-
|
|
7239
|
-
|
|
7240
|
-
<
|
|
7241
|
-
class="k-dropdown
|
|
7242
|
-
|
|
7243
|
-
[
|
|
7244
|
-
|
|
7245
|
-
[
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7233
|
+
PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7234
|
+
PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
|
|
7235
|
+
<kendo-dropdownlist
|
|
7236
|
+
class="k-dropdown"
|
|
7237
|
+
#dropdownlist
|
|
7238
|
+
[size]="size"
|
|
7239
|
+
kendoGridPagerDropDown
|
|
7240
|
+
[tabindex]="0"
|
|
7241
|
+
kendoGridFocusable
|
|
7242
|
+
[data]="pageSizes"
|
|
7243
|
+
textField="text"
|
|
7244
|
+
valueField="value"
|
|
7245
|
+
[valuePrimitive]="true"
|
|
7246
|
+
[value]="pageSize"
|
|
7247
|
+
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
7248
|
+
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
7249
|
+
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
7251
|
+
type: Component,
|
|
7252
|
+
args: [{
|
|
7253
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7254
|
+
selector: 'kendo-pager-page-sizes',
|
|
7255
|
+
template: `
|
|
7256
|
+
<kendo-dropdownlist
|
|
7257
|
+
class="k-dropdown"
|
|
7258
|
+
#dropdownlist
|
|
7259
|
+
[size]="size"
|
|
7260
|
+
kendoGridPagerDropDown
|
|
7261
|
+
[tabindex]="0"
|
|
7262
|
+
kendoGridFocusable
|
|
7263
|
+
[data]="pageSizes"
|
|
7264
|
+
textField="text"
|
|
7265
|
+
valueField="value"
|
|
7266
|
+
[valuePrimitive]="true"
|
|
7267
|
+
[value]="pageSize"
|
|
7268
|
+
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
7269
|
+
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
7270
|
+
`
|
|
7271
|
+
}]
|
|
7272
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: NavigationService }]; }, propDecorators: { pageSizes: [{
|
|
7273
|
+
type: Input
|
|
7274
|
+
}], classes: [{
|
|
7275
|
+
type: HostBinding,
|
|
7276
|
+
args: ['class.k-pager-sizes']
|
|
7277
|
+
}, {
|
|
7278
|
+
type: HostBinding,
|
|
7279
|
+
args: ['class.k-label']
|
|
7280
|
+
}] } });
|
|
7281
|
+
|
|
7282
|
+
/**
|
|
7283
|
+
* Displays numeric buttons to enable navigation between the pages ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7284
|
+
*/
|
|
7285
|
+
class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
7286
|
+
constructor(ctx, cd, pagerContext) {
|
|
7287
|
+
super(ctx, pagerContext, cd);
|
|
7288
|
+
this.pagerContext = pagerContext;
|
|
7289
|
+
}
|
|
7290
|
+
/**
|
|
7291
|
+
* @hidden
|
|
7292
|
+
*
|
|
7293
|
+
* @readonly
|
|
7294
|
+
* @type {number[]}
|
|
7295
|
+
* @memberOf PagerNumericButtonsComponent
|
|
7296
|
+
*/
|
|
7297
|
+
get buttons() {
|
|
7298
|
+
const result = [];
|
|
7299
|
+
for (let idx = this.start; idx <= this.end; idx++) {
|
|
7300
|
+
result.push(idx);
|
|
7301
|
+
}
|
|
7302
|
+
return result;
|
|
7303
|
+
}
|
|
7304
|
+
/**
|
|
7305
|
+
* @hidden
|
|
7306
|
+
*/
|
|
7307
|
+
get end() {
|
|
7308
|
+
return Math.min((this.start + this.buttonCount) - 1, this.totalPages);
|
|
7309
|
+
}
|
|
7310
|
+
/**
|
|
7311
|
+
* @hidden
|
|
7312
|
+
*/
|
|
7313
|
+
get start() {
|
|
7314
|
+
const page = this.currentPage;
|
|
7315
|
+
const buttonCount = this.buttonCount;
|
|
7316
|
+
if (page > buttonCount) {
|
|
7317
|
+
const reminder = (page % buttonCount);
|
|
7318
|
+
return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;
|
|
7319
|
+
}
|
|
7320
|
+
return 1;
|
|
7321
|
+
}
|
|
7322
|
+
/**
|
|
7323
|
+
* @hidden
|
|
7324
|
+
*/
|
|
7325
|
+
pageLabel(num) {
|
|
7326
|
+
const pageText = this.textFor('pagerPage');
|
|
7327
|
+
if (pageText) {
|
|
7328
|
+
return pageText + ' ' + num;
|
|
7329
|
+
}
|
|
7330
|
+
return num.toString();
|
|
7331
|
+
}
|
|
7332
|
+
/**
|
|
7333
|
+
* @hidden
|
|
7334
|
+
*/
|
|
7335
|
+
onSelectChange(e) {
|
|
7336
|
+
const target = e.target;
|
|
7337
|
+
const valueAsNumber = Number(target.value);
|
|
7338
|
+
if (!Number.isNaN(valueAsNumber)) {
|
|
7339
|
+
this.changePage(valueAsNumber - 1);
|
|
7340
|
+
}
|
|
7341
|
+
else {
|
|
7342
|
+
if (target.value === 'previousButtons') {
|
|
7343
|
+
this.changePage(this.start - 2);
|
|
7344
|
+
}
|
|
7345
|
+
else {
|
|
7346
|
+
this.changePage(this.end);
|
|
7347
|
+
}
|
|
7348
|
+
}
|
|
7349
|
+
}
|
|
7350
|
+
onChanges({ total, skip, pageSize }) {
|
|
7351
|
+
this.total = total;
|
|
7352
|
+
this.skip = skip;
|
|
7353
|
+
this.pageSize = pageSize;
|
|
7354
|
+
this.cd.markForCheck();
|
|
7355
|
+
}
|
|
7356
|
+
}
|
|
7357
|
+
PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7358
|
+
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["select"], descendants: true, read: ElementRef }, { propertyName: "numbersElement", first: true, predicate: ["numbers"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
|
|
7359
|
+
<select
|
|
7360
|
+
#select
|
|
7361
|
+
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
7362
|
+
kendoGridFocusable
|
|
7363
|
+
[style.display]="'none'"
|
|
7364
|
+
[attr.title]="textFor('selectPage')"
|
|
7365
|
+
[attr.aria-label]="textFor('selectPage')"
|
|
7366
|
+
[ngClass]="{
|
|
7367
|
+
'k-picker-sm': size === 'small',
|
|
7368
|
+
'k-picker-md': size === 'medium' || !size
|
|
7369
|
+
}"
|
|
7249
7370
|
(change)="onSelectChange($event)">
|
|
7250
7371
|
<option *ngIf="start > 1"
|
|
7251
7372
|
value="previousButtons"
|
|
@@ -7266,7 +7387,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
7266
7387
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
7267
7388
|
</option>
|
|
7268
7389
|
</select>
|
|
7269
|
-
<div class="k-pager-numbers">
|
|
7390
|
+
<div class="k-pager-numbers" #numbers>
|
|
7270
7391
|
<button *ngIf="start > 1"
|
|
7271
7392
|
type="button"
|
|
7272
7393
|
kendoGridFocusable
|
|
@@ -7316,8 +7437,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7316
7437
|
selector: 'kendo-pager-numeric-buttons',
|
|
7317
7438
|
template: `
|
|
7318
7439
|
<select
|
|
7440
|
+
#select
|
|
7319
7441
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
7320
7442
|
kendoGridFocusable
|
|
7443
|
+
[style.display]="'none'"
|
|
7321
7444
|
[attr.title]="textFor('selectPage')"
|
|
7322
7445
|
[attr.aria-label]="textFor('selectPage')"
|
|
7323
7446
|
[ngClass]="{
|
|
@@ -7344,7 +7467,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7344
7467
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
7345
7468
|
</option>
|
|
7346
7469
|
</select>
|
|
7347
|
-
<div class="k-pager-numbers">
|
|
7470
|
+
<div class="k-pager-numbers" #numbers>
|
|
7348
7471
|
<button *ngIf="start > 1"
|
|
7349
7472
|
type="button"
|
|
7350
7473
|
kendoGridFocusable
|
|
@@ -7388,13 +7511,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7388
7511
|
</div>
|
|
7389
7512
|
`
|
|
7390
7513
|
}]
|
|
7391
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: {
|
|
7392
|
-
type:
|
|
7393
|
-
args: ['
|
|
7514
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { selectElement: [{
|
|
7515
|
+
type: ViewChild,
|
|
7516
|
+
args: ['select', { read: ElementRef }]
|
|
7517
|
+
}], numbersElement: [{
|
|
7518
|
+
type: ViewChild,
|
|
7519
|
+
args: ['numbers', { read: ElementRef }]
|
|
7394
7520
|
}], buttonCount: [{
|
|
7395
7521
|
type: Input
|
|
7396
7522
|
}] } });
|
|
7397
7523
|
|
|
7524
|
+
/**
|
|
7525
|
+
* Displays buttons for navigating to the first and to the previous page ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7526
|
+
*/
|
|
7527
|
+
class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
7528
|
+
constructor(ctx, pagerContext, cd, navigationService) {
|
|
7529
|
+
super(ctx, pagerContext, cd);
|
|
7530
|
+
this.navigationService = navigationService;
|
|
7531
|
+
}
|
|
7532
|
+
/**
|
|
7533
|
+
* @hidden
|
|
7534
|
+
*
|
|
7535
|
+
* @readonly
|
|
7536
|
+
* @type {boolean}
|
|
7537
|
+
* @memberOf PagerPrevButtonsComponent
|
|
7538
|
+
*/
|
|
7539
|
+
get disabled() {
|
|
7540
|
+
return this.currentPage === 1 || !this.total;
|
|
7541
|
+
}
|
|
7542
|
+
onChanges({ total, skip, pageSize }) {
|
|
7543
|
+
this.total = total;
|
|
7544
|
+
this.skip = skip;
|
|
7545
|
+
this.pageSize = pageSize;
|
|
7546
|
+
this.cd.markForCheck();
|
|
7547
|
+
}
|
|
7548
|
+
}
|
|
7549
|
+
PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: ContextService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7550
|
+
PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
|
|
7551
|
+
<button
|
|
7552
|
+
[kendoGridFocusable]="!disabled"
|
|
7553
|
+
kendoButton
|
|
7554
|
+
type="button"
|
|
7555
|
+
[title]="textFor('pagerFirstPage')"
|
|
7556
|
+
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7557
|
+
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7558
|
+
role="button"
|
|
7559
|
+
[icon]="prevArrowIcons[0]"
|
|
7560
|
+
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7561
|
+
class="k-pager-nav k-pager-first"
|
|
7562
|
+
[disabled]="disabled"
|
|
7563
|
+
fillMode="flat"
|
|
7564
|
+
rounded="none"
|
|
7565
|
+
[size]="size">
|
|
7566
|
+
</button>
|
|
7567
|
+
<button
|
|
7568
|
+
kendoButton
|
|
7569
|
+
[kendoGridFocusable]="!disabled"
|
|
7570
|
+
type="button"
|
|
7571
|
+
class="k-pager-nav"
|
|
7572
|
+
[disabled]="disabled"
|
|
7573
|
+
[icon]="prevArrowIcons[1]"
|
|
7574
|
+
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7575
|
+
fillMode="flat"
|
|
7576
|
+
rounded="none"
|
|
7577
|
+
[size]="size"
|
|
7578
|
+
[title]="textFor('pagerPreviousPage')"
|
|
7579
|
+
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7580
|
+
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7581
|
+
</button>
|
|
7582
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7583
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
7584
|
+
type: Component,
|
|
7585
|
+
args: [{
|
|
7586
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7587
|
+
selector: 'kendo-pager-prev-buttons',
|
|
7588
|
+
template: `
|
|
7589
|
+
<button
|
|
7590
|
+
[kendoGridFocusable]="!disabled"
|
|
7591
|
+
kendoButton
|
|
7592
|
+
type="button"
|
|
7593
|
+
[title]="textFor('pagerFirstPage')"
|
|
7594
|
+
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7595
|
+
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7596
|
+
role="button"
|
|
7597
|
+
[icon]="prevArrowIcons[0]"
|
|
7598
|
+
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7599
|
+
class="k-pager-nav k-pager-first"
|
|
7600
|
+
[disabled]="disabled"
|
|
7601
|
+
fillMode="flat"
|
|
7602
|
+
rounded="none"
|
|
7603
|
+
[size]="size">
|
|
7604
|
+
</button>
|
|
7605
|
+
<button
|
|
7606
|
+
kendoButton
|
|
7607
|
+
[kendoGridFocusable]="!disabled"
|
|
7608
|
+
type="button"
|
|
7609
|
+
class="k-pager-nav"
|
|
7610
|
+
[disabled]="disabled"
|
|
7611
|
+
[icon]="prevArrowIcons[1]"
|
|
7612
|
+
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7613
|
+
fillMode="flat"
|
|
7614
|
+
rounded="none"
|
|
7615
|
+
[size]="size"
|
|
7616
|
+
[title]="textFor('pagerPreviousPage')"
|
|
7617
|
+
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7618
|
+
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7619
|
+
</button>
|
|
7620
|
+
`
|
|
7621
|
+
}]
|
|
7622
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7623
|
+
|
|
7398
7624
|
/**
|
|
7399
7625
|
* @hidden
|
|
7400
7626
|
*/
|
|
@@ -7566,296 +7792,76 @@ class PagerNextButtonsComponent extends PagerElementComponent {
|
|
|
7566
7792
|
}
|
|
7567
7793
|
PagerNextButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, deps: [{ token: ContextService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7568
7794
|
PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNextButtonsComponent, selector: "kendo-pager-next-buttons", usesInheritance: true, ngImport: i0, template: `
|
|
7569
|
-
<button
|
|
7570
|
-
kendoButton
|
|
7571
|
-
[kendoGridFocusable]="!disabled"
|
|
7572
|
-
type="button"
|
|
7573
|
-
[size]="size"
|
|
7574
|
-
[icon]="nextArrowIcons[0]"
|
|
7575
|
-
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7576
|
-
fillMode="flat"
|
|
7577
|
-
rounded="none"
|
|
7578
|
-
class="k-pager-nav"
|
|
7579
|
-
[disabled]="disabled"
|
|
7580
|
-
[title]="textFor('pagerNextPage')"
|
|
7581
|
-
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7582
|
-
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7583
|
-
</button>
|
|
7584
|
-
<button
|
|
7585
|
-
kendoButton
|
|
7586
|
-
[kendoGridFocusable]="!disabled"
|
|
7587
|
-
type="button"
|
|
7588
|
-
[size]="size"
|
|
7589
|
-
[icon]="nextArrowIcons[1]"
|
|
7590
|
-
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7591
|
-
fillMode="flat"
|
|
7592
|
-
rounded="none"
|
|
7593
|
-
class="k-pager-nav k-pager-last"
|
|
7594
|
-
[disabled]="disabled"
|
|
7595
|
-
[title]="textFor('pagerLastPage')"
|
|
7596
|
-
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7597
|
-
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7598
|
-
</button>
|
|
7599
|
-
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7600
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
7601
|
-
type: Component,
|
|
7602
|
-
args: [{
|
|
7603
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7604
|
-
selector: 'kendo-pager-next-buttons',
|
|
7605
|
-
template: `
|
|
7606
|
-
<button
|
|
7607
|
-
kendoButton
|
|
7608
|
-
[kendoGridFocusable]="!disabled"
|
|
7609
|
-
type="button"
|
|
7610
|
-
[size]="size"
|
|
7611
|
-
[icon]="nextArrowIcons[0]"
|
|
7612
|
-
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7613
|
-
fillMode="flat"
|
|
7614
|
-
rounded="none"
|
|
7615
|
-
class="k-pager-nav"
|
|
7616
|
-
[disabled]="disabled"
|
|
7617
|
-
[title]="textFor('pagerNextPage')"
|
|
7618
|
-
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7619
|
-
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7620
|
-
</button>
|
|
7621
|
-
<button
|
|
7622
|
-
kendoButton
|
|
7623
|
-
[kendoGridFocusable]="!disabled"
|
|
7624
|
-
type="button"
|
|
7625
|
-
[size]="size"
|
|
7626
|
-
[icon]="nextArrowIcons[1]"
|
|
7627
|
-
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7628
|
-
fillMode="flat"
|
|
7629
|
-
rounded="none"
|
|
7630
|
-
class="k-pager-nav k-pager-last"
|
|
7631
|
-
[disabled]="disabled"
|
|
7632
|
-
[title]="textFor('pagerLastPage')"
|
|
7633
|
-
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7634
|
-
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7635
|
-
</button>
|
|
7636
|
-
`
|
|
7637
|
-
}]
|
|
7638
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7639
|
-
|
|
7640
|
-
// eslint-disable no-access-missing-member
|
|
7641
|
-
/**
|
|
7642
|
-
* Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7643
|
-
*/
|
|
7644
|
-
class PagerInfoComponent extends PagerElementComponent {
|
|
7645
|
-
constructor(ctx, cd, pagerContext) {
|
|
7646
|
-
super(ctx, pagerContext, cd);
|
|
7647
|
-
this.pagerContext = pagerContext;
|
|
7648
|
-
}
|
|
7649
|
-
/**
|
|
7650
|
-
* @hidden
|
|
7651
|
-
*
|
|
7652
|
-
* @readonly
|
|
7653
|
-
* @type {number}
|
|
7654
|
-
* @memberOf PagerInfoComponent
|
|
7655
|
-
*/
|
|
7656
|
-
get maxItems() {
|
|
7657
|
-
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
7658
|
-
}
|
|
7659
|
-
/**
|
|
7660
|
-
* @hidden
|
|
7661
|
-
*
|
|
7662
|
-
* @readonly
|
|
7663
|
-
* @type {number}
|
|
7664
|
-
* @memberOf PagerInfoComponent
|
|
7665
|
-
*/
|
|
7666
|
-
get currentPageText() {
|
|
7667
|
-
return this.total ?
|
|
7668
|
-
(this.currentPage - 1) * this.pageSize + 1 :
|
|
7669
|
-
0;
|
|
7670
|
-
}
|
|
7671
|
-
/**
|
|
7672
|
-
* @hidden
|
|
7673
|
-
*
|
|
7674
|
-
* @readonly
|
|
7675
|
-
* @type {boolean}
|
|
7676
|
-
* @memberOf PagerInfoComponent
|
|
7677
|
-
*/
|
|
7678
|
-
get classes() {
|
|
7679
|
-
return true;
|
|
7680
|
-
}
|
|
7681
|
-
onChanges({ total, skip, pageSize }) {
|
|
7682
|
-
this.total = total;
|
|
7683
|
-
this.skip = skip;
|
|
7684
|
-
this.pageSize = pageSize;
|
|
7685
|
-
this.cd.markForCheck();
|
|
7686
|
-
}
|
|
7687
|
-
}
|
|
7688
|
-
PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7689
|
-
PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7690
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
7691
|
-
type: Component,
|
|
7692
|
-
args: [{
|
|
7693
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7694
|
-
selector: 'kendo-pager-info',
|
|
7695
|
-
template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
|
|
7696
|
-
}]
|
|
7697
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
|
|
7698
|
-
type: HostBinding,
|
|
7699
|
-
args: ["class.k-pager-info"]
|
|
7700
|
-
}, {
|
|
7701
|
-
type: HostBinding,
|
|
7702
|
-
args: ["class.k-label"]
|
|
7703
|
-
}] } });
|
|
7704
|
-
|
|
7705
|
-
/**
|
|
7706
|
-
* @hidden
|
|
7707
|
-
*/
|
|
7708
|
-
class PagerDropDownListDirective {
|
|
7709
|
-
constructor(host) {
|
|
7710
|
-
this.host = host;
|
|
7711
|
-
this.keydownHandler = (e) => {
|
|
7712
|
-
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
7713
|
-
e.stopPropagation();
|
|
7714
|
-
this.host.toggle(false);
|
|
7715
|
-
}
|
|
7716
|
-
};
|
|
7717
|
-
}
|
|
7718
|
-
ngAfterViewInit() {
|
|
7719
|
-
const wrapperElement = this.host.wrapper.nativeElement;
|
|
7720
|
-
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
7721
|
-
}
|
|
7722
|
-
ngOnDestroy() {
|
|
7723
|
-
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
7724
|
-
}
|
|
7725
|
-
}
|
|
7726
|
-
PagerDropDownListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, deps: [{ token: i1$4.DropDownListComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7727
|
-
PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
|
|
7728
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
|
|
7729
|
-
type: Directive,
|
|
7730
|
-
args: [{ selector: '[kendoGridPagerDropDown]' }]
|
|
7731
|
-
}], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
|
|
7732
|
-
|
|
7733
|
-
/**
|
|
7734
|
-
* Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7735
|
-
*/
|
|
7736
|
-
class PagerPageSizesComponent extends PagerElementComponent {
|
|
7737
|
-
constructor(ctx, cd, pagerContext, navigationService) {
|
|
7738
|
-
super(ctx, pagerContext, cd);
|
|
7739
|
-
this.pagerContext = pagerContext;
|
|
7740
|
-
this.navigationService = navigationService;
|
|
7741
|
-
this._pageSizes = [];
|
|
7742
|
-
}
|
|
7743
|
-
/**
|
|
7744
|
-
* The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
|
|
7745
|
-
* ([see example]({% slug paging_grid %}#toc-pager-templates))
|
|
7746
|
-
*/
|
|
7747
|
-
set pageSizes(pageSizes) {
|
|
7748
|
-
let normalizedItems = [];
|
|
7749
|
-
pageSizes.forEach(item => {
|
|
7750
|
-
if (typeof item === 'number') {
|
|
7751
|
-
normalizedItems.push({
|
|
7752
|
-
text: item.toString(),
|
|
7753
|
-
value: item
|
|
7754
|
-
});
|
|
7755
|
-
}
|
|
7756
|
-
else {
|
|
7757
|
-
normalizedItems.push(item);
|
|
7758
|
-
}
|
|
7759
|
-
});
|
|
7760
|
-
if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
|
|
7761
|
-
normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
|
|
7762
|
-
}
|
|
7763
|
-
this._pageSizes = normalizedItems;
|
|
7764
|
-
}
|
|
7765
|
-
get pageSizes() {
|
|
7766
|
-
return this._pageSizes;
|
|
7767
|
-
}
|
|
7768
|
-
/**
|
|
7769
|
-
* @hidden
|
|
7770
|
-
*
|
|
7771
|
-
* @readonly
|
|
7772
|
-
*/
|
|
7773
|
-
get classes() {
|
|
7774
|
-
return true;
|
|
7775
|
-
}
|
|
7776
|
-
/**
|
|
7777
|
-
* @hidden
|
|
7778
|
-
*
|
|
7779
|
-
* @readonly
|
|
7780
|
-
*/
|
|
7781
|
-
get showInitialPageSize() {
|
|
7782
|
-
return this.pageSizes
|
|
7783
|
-
.filter(item => {
|
|
7784
|
-
if (typeof item.value === 'number') {
|
|
7785
|
-
return item.value === Number(this.pageSize);
|
|
7786
|
-
}
|
|
7787
|
-
return this.total === Number(this.pageSize);
|
|
7788
|
-
})
|
|
7789
|
-
.length === 0;
|
|
7790
|
-
}
|
|
7791
|
-
/**
|
|
7792
|
-
* @hidden
|
|
7793
|
-
*/
|
|
7794
|
-
pageSizeChange(value) {
|
|
7795
|
-
this.pageSize = typeof value === 'number' ? value : this.total;
|
|
7796
|
-
this.pagerContext.changePageSize(this.pageSize);
|
|
7797
|
-
}
|
|
7798
|
-
/**
|
|
7799
|
-
* @hidden
|
|
7800
|
-
*/
|
|
7801
|
-
getValue(page) {
|
|
7802
|
-
return typeof page.value === 'number' ? page.value : this.total;
|
|
7803
|
-
}
|
|
7804
|
-
onChanges({ total, skip, pageSize }) {
|
|
7805
|
-
this.total = total;
|
|
7806
|
-
this.skip = skip;
|
|
7807
|
-
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
7808
|
-
this.cd.markForCheck();
|
|
7809
|
-
}
|
|
7810
|
-
}
|
|
7811
|
-
PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7812
|
-
PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
|
|
7813
|
-
<kendo-dropdownlist
|
|
7814
|
-
class="k-dropdown"
|
|
7815
|
-
#dropdownlist
|
|
7795
|
+
<button
|
|
7796
|
+
kendoButton
|
|
7797
|
+
[kendoGridFocusable]="!disabled"
|
|
7798
|
+
type="button"
|
|
7816
7799
|
[size]="size"
|
|
7817
|
-
|
|
7818
|
-
[
|
|
7819
|
-
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
[
|
|
7824
|
-
[
|
|
7825
|
-
(
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
7800
|
+
[icon]="nextArrowIcons[0]"
|
|
7801
|
+
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7802
|
+
fillMode="flat"
|
|
7803
|
+
rounded="none"
|
|
7804
|
+
class="k-pager-nav"
|
|
7805
|
+
[disabled]="disabled"
|
|
7806
|
+
[title]="textFor('pagerNextPage')"
|
|
7807
|
+
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7808
|
+
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7809
|
+
</button>
|
|
7810
|
+
<button
|
|
7811
|
+
kendoButton
|
|
7812
|
+
[kendoGridFocusable]="!disabled"
|
|
7813
|
+
type="button"
|
|
7814
|
+
[size]="size"
|
|
7815
|
+
[icon]="nextArrowIcons[1]"
|
|
7816
|
+
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7817
|
+
fillMode="flat"
|
|
7818
|
+
rounded="none"
|
|
7819
|
+
class="k-pager-nav k-pager-last"
|
|
7820
|
+
[disabled]="disabled"
|
|
7821
|
+
[title]="textFor('pagerLastPage')"
|
|
7822
|
+
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7823
|
+
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7824
|
+
</button>
|
|
7825
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7826
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
7829
7827
|
type: Component,
|
|
7830
7828
|
args: [{
|
|
7831
7829
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7832
|
-
selector: 'kendo-pager-
|
|
7830
|
+
selector: 'kendo-pager-next-buttons',
|
|
7833
7831
|
template: `
|
|
7834
|
-
<
|
|
7835
|
-
|
|
7836
|
-
|
|
7832
|
+
<button
|
|
7833
|
+
kendoButton
|
|
7834
|
+
[kendoGridFocusable]="!disabled"
|
|
7835
|
+
type="button"
|
|
7837
7836
|
[size]="size"
|
|
7838
|
-
|
|
7839
|
-
[
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
|
|
7843
|
-
|
|
7844
|
-
[
|
|
7845
|
-
[
|
|
7846
|
-
(
|
|
7847
|
-
|
|
7837
|
+
[icon]="nextArrowIcons[0]"
|
|
7838
|
+
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7839
|
+
fillMode="flat"
|
|
7840
|
+
rounded="none"
|
|
7841
|
+
class="k-pager-nav"
|
|
7842
|
+
[disabled]="disabled"
|
|
7843
|
+
[title]="textFor('pagerNextPage')"
|
|
7844
|
+
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7845
|
+
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7846
|
+
</button>
|
|
7847
|
+
<button
|
|
7848
|
+
kendoButton
|
|
7849
|
+
[kendoGridFocusable]="!disabled"
|
|
7850
|
+
type="button"
|
|
7851
|
+
[size]="size"
|
|
7852
|
+
[icon]="nextArrowIcons[1]"
|
|
7853
|
+
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7854
|
+
fillMode="flat"
|
|
7855
|
+
rounded="none"
|
|
7856
|
+
class="k-pager-nav k-pager-last"
|
|
7857
|
+
[disabled]="disabled"
|
|
7858
|
+
[title]="textFor('pagerLastPage')"
|
|
7859
|
+
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7860
|
+
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7861
|
+
</button>
|
|
7848
7862
|
`
|
|
7849
7863
|
}]
|
|
7850
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type:
|
|
7851
|
-
type: Input
|
|
7852
|
-
}], classes: [{
|
|
7853
|
-
type: HostBinding,
|
|
7854
|
-
args: ['class.k-pager-sizes']
|
|
7855
|
-
}, {
|
|
7856
|
-
type: HostBinding,
|
|
7857
|
-
args: ['class.k-label']
|
|
7858
|
-
}] } });
|
|
7864
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7859
7865
|
|
|
7860
7866
|
/**
|
|
7861
7867
|
* @hidden
|
|
@@ -7886,18 +7892,33 @@ class PagerComponent {
|
|
|
7886
7892
|
if (this.template || !element) {
|
|
7887
7893
|
return;
|
|
7888
7894
|
}
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7895
|
+
this.zone.runOutsideAngular(() => {
|
|
7896
|
+
setTimeout(() => {
|
|
7897
|
+
const width = element.offsetWidth;
|
|
7898
|
+
if (this.numericButtons) {
|
|
7899
|
+
const selectElement = this.numericButtons.selectElement.nativeElement;
|
|
7900
|
+
const numbersElement = this.numericButtons.numbersElement.nativeElement;
|
|
7901
|
+
this.renderer.removeStyle(numbersElement, 'display');
|
|
7902
|
+
this.renderer.setStyle(selectElement, 'display', 'none');
|
|
7903
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
7904
|
+
this.renderer.removeStyle(selectElement, 'display');
|
|
7905
|
+
this.renderer.setStyle(numbersElement, 'display', 'none');
|
|
7906
|
+
}
|
|
7907
|
+
}
|
|
7908
|
+
if (this.pagerInfo) {
|
|
7909
|
+
this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
7910
|
+
if (width < RESPONSIVE_BREAKPOINT_LARGE) {
|
|
7911
|
+
this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
|
|
7912
|
+
}
|
|
7913
|
+
}
|
|
7914
|
+
if (this.pagerPageSizes) {
|
|
7915
|
+
this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
7916
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
7917
|
+
this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
|
|
7918
|
+
}
|
|
7919
|
+
}
|
|
7920
|
+
});
|
|
7921
|
+
});
|
|
7901
7922
|
};
|
|
7902
7923
|
}
|
|
7903
7924
|
set options(value) {
|
|
@@ -8016,12 +8037,10 @@ class PagerComponent {
|
|
|
8016
8037
|
}
|
|
8017
8038
|
const changesInTemplate = changes['template'];
|
|
8018
8039
|
if (changesInTemplate) {
|
|
8019
|
-
|
|
8020
|
-
changesInTemplate.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
|
|
8040
|
+
changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
|
|
8021
8041
|
}
|
|
8022
8042
|
if (changes['options']) {
|
|
8023
|
-
|
|
8024
|
-
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
|
|
8043
|
+
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
|
|
8025
8044
|
}
|
|
8026
8045
|
}
|
|
8027
8046
|
ngOnDestroy() {
|
|
@@ -8047,11 +8066,6 @@ class PagerComponent {
|
|
|
8047
8066
|
}
|
|
8048
8067
|
});
|
|
8049
8068
|
}
|
|
8050
|
-
clearResponsiveClasses() {
|
|
8051
|
-
const element = this.element.nativeElement;
|
|
8052
|
-
this.renderer.removeClass(element, 'k-pager-mobile-sm');
|
|
8053
|
-
this.renderer.removeClass(element, 'k-pager-mobile-md');
|
|
8054
|
-
}
|
|
8055
8069
|
shouldTriggerPageChange(target, condition) {
|
|
8056
8070
|
return this.navigationService.pagerEnabled &&
|
|
8057
8071
|
target === this.element.nativeElement &&
|
|
@@ -8074,6 +8088,18 @@ class PagerComponent {
|
|
|
8074
8088
|
this.cellContext.focusGroup = this.focusGroup;
|
|
8075
8089
|
}
|
|
8076
8090
|
}
|
|
8091
|
+
clearResponsiveStyling() {
|
|
8092
|
+
this.zone.runOutsideAngular(() => {
|
|
8093
|
+
setTimeout(() => {
|
|
8094
|
+
if (this.numericButtons) {
|
|
8095
|
+
this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
|
|
8096
|
+
this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
|
|
8097
|
+
}
|
|
8098
|
+
this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
8099
|
+
this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
8100
|
+
});
|
|
8101
|
+
});
|
|
8102
|
+
}
|
|
8077
8103
|
}
|
|
8078
8104
|
PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: ContextService }, { token: CELL_CONTEXT, optional: true }, { token: FocusRoot }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
|
|
8079
8105
|
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-pager-wrap": "this.pagerWrapClass", "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
|
|
@@ -8087,7 +8113,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
8087
8113
|
provide: FocusGroup,
|
|
8088
8114
|
deps: [FocusRoot],
|
|
8089
8115
|
useClass: FocusGroup
|
|
8090
|
-
}], usesOnChanges: true, ngImport: i0, template: `
|
|
8116
|
+
}], viewQueries: [{ propertyName: "pagerInfo", first: true, predicate: PagerInfoComponent, descendants: true, read: ElementRef }, { propertyName: "pagerPageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
8091
8117
|
<div
|
|
8092
8118
|
*ngIf="navigationService.pagerEnabled"
|
|
8093
8119
|
class="k-sr-only"
|
|
@@ -8101,20 +8127,21 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
8101
8127
|
[ngTemplateOutletContext]="templateContext">
|
|
8102
8128
|
</ng-container>
|
|
8103
8129
|
<ng-container *ngIf="!template?.templateRef">
|
|
8104
|
-
<
|
|
8105
|
-
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8130
|
+
<div class="k-pager-numbers-wrap">
|
|
8131
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
8132
|
+
<kendo-pager-numeric-buttons
|
|
8133
|
+
[size]="size"
|
|
8134
|
+
*ngIf="settings.type === 'numeric'"
|
|
8135
|
+
[buttonCount]="settings.buttonCount">
|
|
8136
|
+
</kendo-pager-numeric-buttons>
|
|
8137
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
8138
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
8139
|
+
</div>
|
|
8112
8140
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
8113
8141
|
<kendo-pager-page-sizes
|
|
8114
8142
|
[size]="size"
|
|
8115
8143
|
*ngIf="settings.pageSizes"
|
|
8116
8144
|
[pageSizes]="$any(settings.pageSizes)"
|
|
8117
|
-
#pageSizes
|
|
8118
8145
|
></kendo-pager-page-sizes>
|
|
8119
8146
|
</ng-container>
|
|
8120
8147
|
<div
|
|
@@ -8156,20 +8183,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8156
8183
|
[ngTemplateOutletContext]="templateContext">
|
|
8157
8184
|
</ng-container>
|
|
8158
8185
|
<ng-container *ngIf="!template?.templateRef">
|
|
8159
|
-
<
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
|
|
8186
|
+
<div class="k-pager-numbers-wrap">
|
|
8187
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
8188
|
+
<kendo-pager-numeric-buttons
|
|
8189
|
+
[size]="size"
|
|
8190
|
+
*ngIf="settings.type === 'numeric'"
|
|
8191
|
+
[buttonCount]="settings.buttonCount">
|
|
8192
|
+
</kendo-pager-numeric-buttons>
|
|
8193
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
8194
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
8195
|
+
</div>
|
|
8167
8196
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
8168
8197
|
<kendo-pager-page-sizes
|
|
8169
8198
|
[size]="size"
|
|
8170
8199
|
*ngIf="settings.pageSizes"
|
|
8171
8200
|
[pageSizes]="$any(settings.pageSizes)"
|
|
8172
|
-
#pageSizes
|
|
8173
8201
|
></kendo-pager-page-sizes>
|
|
8174
8202
|
</ng-container>
|
|
8175
8203
|
<div
|
|
@@ -8187,7 +8215,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8187
8215
|
}, {
|
|
8188
8216
|
type: Inject,
|
|
8189
8217
|
args: [CELL_CONTEXT]
|
|
8190
|
-
}] }, { type: FocusRoot }, { type: FocusGroup }]; }, propDecorators: {
|
|
8218
|
+
}] }, { type: FocusRoot }, { type: FocusGroup }]; }, propDecorators: { pagerInfo: [{
|
|
8219
|
+
type: ViewChild,
|
|
8220
|
+
args: [PagerInfoComponent, { read: ElementRef }]
|
|
8221
|
+
}], pagerPageSizes: [{
|
|
8222
|
+
type: ViewChild,
|
|
8223
|
+
args: [PagerPageSizesComponent, { read: ElementRef }]
|
|
8224
|
+
}], numericButtons: [{
|
|
8225
|
+
type: ViewChild,
|
|
8226
|
+
args: [PagerNumericButtonsComponent]
|
|
8227
|
+
}], total: [{
|
|
8191
8228
|
type: Input
|
|
8192
8229
|
}], skip: [{
|
|
8193
8230
|
type: Input
|
|
@@ -9528,7 +9565,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
9528
9565
|
(keydown.shift.tab)="onShiftTab($event)">
|
|
9529
9566
|
</kendo-dropdownlist>
|
|
9530
9567
|
<ng-content></ng-content>
|
|
9531
|
-
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9568
|
+
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9532
9569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
|
|
9533
9570
|
type: Component,
|
|
9534
9571
|
args: [{
|
|
@@ -9724,7 +9761,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
9724
9761
|
[filter]="filter"
|
|
9725
9762
|
[menuTabbingService]="menuTabbingService">
|
|
9726
9763
|
</kendo-grid-string-filter-menu-input>
|
|
9727
|
-
`, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9764
|
+
`, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9728
9765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
|
|
9729
9766
|
type: Component,
|
|
9730
9767
|
args: [{
|
|
@@ -10130,7 +10167,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
10130
10167
|
[menuTabbingService]="menuTabbingService"
|
|
10131
10168
|
>
|
|
10132
10169
|
</kendo-grid-numeric-filter-menu-input>
|
|
10133
|
-
`, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10170
|
+
`, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10134
10171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
|
|
10135
10172
|
type: Component,
|
|
10136
10173
|
args: [{
|
|
@@ -10585,7 +10622,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
10585
10622
|
[menuTabbingService]="menuTabbingService"
|
|
10586
10623
|
>
|
|
10587
10624
|
</kendo-grid-date-filter-menu-input>
|
|
10588
|
-
`, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10625
|
+
`, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10589
10626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
|
|
10590
10627
|
type: Component,
|
|
10591
10628
|
args: [{
|
|
@@ -11060,10 +11097,10 @@ class FilterMenuContainerComponent {
|
|
|
11060
11097
|
e.preventDefault();
|
|
11061
11098
|
if (buttonType === 'reset') {
|
|
11062
11099
|
// eslint-disable-next-line no-unused-expressions
|
|
11063
|
-
this.
|
|
11100
|
+
this.menuTabbingService.firstFocusable.focus();
|
|
11064
11101
|
}
|
|
11065
11102
|
else {
|
|
11066
|
-
this.menuTabbingService.firstFocusable.focus();
|
|
11103
|
+
this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.resetButton.nativeElement.focus();
|
|
11067
11104
|
}
|
|
11068
11105
|
}
|
|
11069
11106
|
}
|
|
@@ -11187,15 +11224,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11187
11224
|
args: ['filterButton', { static: false }]
|
|
11188
11225
|
}] } });
|
|
11189
11226
|
|
|
11227
|
+
let id$3 = 0;
|
|
11228
|
+
const getId$1 = (gridId) => `${gridId}-filter-menu-${id$3++}`;
|
|
11190
11229
|
/**
|
|
11191
11230
|
* @hidden
|
|
11192
11231
|
*/
|
|
11193
11232
|
class FilterMenuComponent {
|
|
11194
|
-
constructor(filterService, popupService, ctx, navigationService) {
|
|
11233
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, idService) {
|
|
11195
11234
|
this.filterService = filterService;
|
|
11196
11235
|
this.popupService = popupService;
|
|
11197
11236
|
this.ctx = ctx;
|
|
11198
11237
|
this.navigationService = navigationService;
|
|
11238
|
+
this.renderer = renderer;
|
|
11239
|
+
this.cdr = cdr;
|
|
11240
|
+
this.idService = idService;
|
|
11199
11241
|
this.filterIcon = filterIcon;
|
|
11200
11242
|
this.tabIndex = '-1';
|
|
11201
11243
|
}
|
|
@@ -11210,9 +11252,35 @@ class FilterMenuComponent {
|
|
|
11210
11252
|
const columnName = this.column.title || this.column.field;
|
|
11211
11253
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
|
11212
11254
|
}
|
|
11255
|
+
/**
|
|
11256
|
+
* @hidden
|
|
11257
|
+
*/
|
|
11258
|
+
get isNavigable() {
|
|
11259
|
+
return this.navigationService.tableEnabled;
|
|
11260
|
+
}
|
|
11213
11261
|
toggle(anchor, template) {
|
|
11214
11262
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef);
|
|
11215
|
-
|
|
11263
|
+
// Needed as changes to 'popupRef' are not reflected
|
|
11264
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
11265
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11266
|
+
if (this.popupRef) {
|
|
11267
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
11268
|
+
this.popupRef = null;
|
|
11269
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11270
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
11271
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
11272
|
+
});
|
|
11273
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
|
|
11274
|
+
if (popupAriaElement) {
|
|
11275
|
+
const popupId = getId$1(this.idService?.gridId());
|
|
11276
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
11277
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
11278
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.filterLabel);
|
|
11279
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
11280
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
11281
|
+
}
|
|
11282
|
+
}
|
|
11283
|
+
else {
|
|
11216
11284
|
if (this.navigationService.tableEnabled) {
|
|
11217
11285
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11218
11286
|
}
|
|
@@ -11224,6 +11292,8 @@ class FilterMenuComponent {
|
|
|
11224
11292
|
}
|
|
11225
11293
|
close() {
|
|
11226
11294
|
this.popupService.destroy();
|
|
11295
|
+
this.popupRef = null;
|
|
11296
|
+
this.cdr.markForCheck();
|
|
11227
11297
|
if (this.navigationService.tableEnabled) {
|
|
11228
11298
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11229
11299
|
}
|
|
@@ -11232,7 +11302,7 @@ class FilterMenuComponent {
|
|
|
11232
11302
|
}
|
|
11233
11303
|
}
|
|
11234
11304
|
}
|
|
11235
|
-
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11305
|
+
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11236
11306
|
FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterMenuComponent, 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: `
|
|
11237
11307
|
<a #anchor
|
|
11238
11308
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -11241,7 +11311,9 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
11241
11311
|
(click)="toggle(anchor, template)"
|
|
11242
11312
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11243
11313
|
href="#"
|
|
11244
|
-
[attr.title]="filterLabel"
|
|
11314
|
+
[attr.title]="filterLabel"
|
|
11315
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11316
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11245
11317
|
<kendo-icon-wrapper
|
|
11246
11318
|
name="filter"
|
|
11247
11319
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11269,7 +11341,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11269
11341
|
(click)="toggle(anchor, template)"
|
|
11270
11342
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11271
11343
|
href="#"
|
|
11272
|
-
[attr.title]="filterLabel"
|
|
11344
|
+
[attr.title]="filterLabel"
|
|
11345
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11346
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11273
11347
|
<kendo-icon-wrapper
|
|
11274
11348
|
name="filter"
|
|
11275
11349
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11286,7 +11360,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11286
11360
|
</ng-template>
|
|
11287
11361
|
`
|
|
11288
11362
|
}]
|
|
11289
|
-
}], ctorParameters: function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }
|
|
11363
|
+
}], ctorParameters: function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: IdService, decorators: [{
|
|
11364
|
+
type: Optional
|
|
11365
|
+
}] }]; }, propDecorators: { column: [{
|
|
11290
11366
|
type: Input
|
|
11291
11367
|
}], filter: [{
|
|
11292
11368
|
type: Input
|
|
@@ -11344,7 +11420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11344
11420
|
/**
|
|
11345
11421
|
* @hidden
|
|
11346
11422
|
*/
|
|
11347
|
-
const
|
|
11423
|
+
const ColumnMenuErrorMessages = {
|
|
11348
11424
|
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11349
11425
|
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11350
11426
|
};
|
|
@@ -11450,6 +11526,9 @@ class ColumnMenuItemComponent {
|
|
|
11450
11526
|
this.collapse = new EventEmitter();
|
|
11451
11527
|
this.contentState = 'collapsed';
|
|
11452
11528
|
}
|
|
11529
|
+
ngAfterViewInit() {
|
|
11530
|
+
this.contentTemplate && (this.contentId = `k-${guid()}`);
|
|
11531
|
+
}
|
|
11453
11532
|
ngOnChanges(changes) {
|
|
11454
11533
|
if (changes.expanded) {
|
|
11455
11534
|
this.updateContentState();
|
|
@@ -11484,13 +11563,14 @@ ColumnMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
11484
11563
|
[class.k-selected]="selected"
|
|
11485
11564
|
[class.k-disabled]="disabled"
|
|
11486
11565
|
role="button"
|
|
11487
|
-
[attr.aria-expanded]="expanded"
|
|
11566
|
+
[attr.aria-expanded]="expanded"
|
|
11567
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11488
11568
|
<kendo-icon-wrapper
|
|
11489
11569
|
[name]="icon"
|
|
11490
11570
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11491
11571
|
{{ text }}
|
|
11492
11572
|
</div>
|
|
11493
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11573
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11494
11574
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11495
11575
|
</ng-container>
|
|
11496
11576
|
<div>
|
|
@@ -11552,13 +11632,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11552
11632
|
[class.k-selected]="selected"
|
|
11553
11633
|
[class.k-disabled]="disabled"
|
|
11554
11634
|
role="button"
|
|
11555
|
-
[attr.aria-expanded]="expanded"
|
|
11635
|
+
[attr.aria-expanded]="expanded"
|
|
11636
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11556
11637
|
<kendo-icon-wrapper
|
|
11557
11638
|
[name]="icon"
|
|
11558
11639
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11559
11640
|
{{ text }}
|
|
11560
11641
|
</div>
|
|
11561
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11642
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11562
11643
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11563
11644
|
</ng-container>
|
|
11564
11645
|
<div>
|
|
@@ -11934,14 +12015,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11934
12015
|
type: Input
|
|
11935
12016
|
}] } });
|
|
11936
12017
|
|
|
12018
|
+
/**
|
|
12019
|
+
* @hidden
|
|
12020
|
+
*/
|
|
12021
|
+
class ColumnListKeyboardNavigation {
|
|
12022
|
+
constructor(renderer) {
|
|
12023
|
+
this.renderer = renderer;
|
|
12024
|
+
this.activeIndex = 0;
|
|
12025
|
+
}
|
|
12026
|
+
next() {
|
|
12027
|
+
this.toggle(this.activeIndex, false);
|
|
12028
|
+
this.activeIndex = Math.min(this.activeIndex + 1, this.items.length - 1);
|
|
12029
|
+
this.toggle(this.activeIndex, true);
|
|
12030
|
+
}
|
|
12031
|
+
prev() {
|
|
12032
|
+
this.toggle(this.activeIndex, false);
|
|
12033
|
+
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
12034
|
+
this.toggle(this.activeIndex, true);
|
|
12035
|
+
}
|
|
12036
|
+
toggle(index, active) {
|
|
12037
|
+
const element = this.items[index]?.host.nativeElement;
|
|
12038
|
+
element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
|
|
12039
|
+
active && element && element.focus();
|
|
12040
|
+
}
|
|
12041
|
+
toggleCheckedState() {
|
|
12042
|
+
this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
|
|
12043
|
+
}
|
|
12044
|
+
}
|
|
12045
|
+
ColumnListKeyboardNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12046
|
+
ColumnListKeyboardNavigation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation });
|
|
12047
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, decorators: [{
|
|
12048
|
+
type: Injectable
|
|
12049
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
12050
|
+
|
|
12051
|
+
/**
|
|
12052
|
+
* @hidden
|
|
12053
|
+
*/
|
|
12054
|
+
class ColumnMenuChooserItemCheckedDirective {
|
|
12055
|
+
constructor(host, renderer) {
|
|
12056
|
+
this.host = host;
|
|
12057
|
+
this.renderer = renderer;
|
|
12058
|
+
this.checkedChangeSub = new Subscription();
|
|
12059
|
+
}
|
|
12060
|
+
ngAfterViewInit() {
|
|
12061
|
+
this.checkedChangeSub.add(this.renderer.listen(this.host.nativeElement.firstElementChild, 'change', (e) => {
|
|
12062
|
+
this.kendoColumnMenuChooserItemChecked = e.target.checked;
|
|
12063
|
+
}));
|
|
12064
|
+
}
|
|
12065
|
+
ngOnDestroy() {
|
|
12066
|
+
this.checkedChangeSub.unsubscribe();
|
|
12067
|
+
}
|
|
12068
|
+
}
|
|
12069
|
+
ColumnMenuChooserItemCheckedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
12070
|
+
ColumnMenuChooserItemCheckedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: { kendoColumnMenuChooserItemChecked: "kendoColumnMenuChooserItemChecked" }, host: { properties: { "attr.aria-checked": "this.kendoColumnMenuChooserItemChecked" } }, ngImport: i0 });
|
|
12071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, decorators: [{
|
|
12072
|
+
type: Directive,
|
|
12073
|
+
args: [{ selector: '[kendoColumnMenuChooserItemChecked]' }]
|
|
12074
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { kendoColumnMenuChooserItemChecked: [{
|
|
12075
|
+
type: HostBinding,
|
|
12076
|
+
args: ['attr.aria-checked']
|
|
12077
|
+
}, {
|
|
12078
|
+
type: Input
|
|
12079
|
+
}] } });
|
|
12080
|
+
|
|
11937
12081
|
/**
|
|
11938
12082
|
* @hidden
|
|
11939
12083
|
*/
|
|
11940
12084
|
class ColumnListComponent {
|
|
11941
|
-
constructor(element, ngZone, renderer) {
|
|
12085
|
+
constructor(element, ngZone, renderer, listNavigationService) {
|
|
11942
12086
|
this.element = element;
|
|
11943
12087
|
this.ngZone = ngZone;
|
|
11944
12088
|
this.renderer = renderer;
|
|
12089
|
+
this.listNavigationService = listNavigationService;
|
|
11945
12090
|
this.reset = new EventEmitter();
|
|
11946
12091
|
this.apply = new EventEmitter();
|
|
11947
12092
|
this.columnChange = new EventEmitter();
|
|
@@ -11949,10 +12094,28 @@ class ColumnListComponent {
|
|
|
11949
12094
|
this.allowHideAll = false;
|
|
11950
12095
|
this.actionsClass = 'k-actions k-actions-stretched k-actions-horizontal';
|
|
11951
12096
|
this.unlockedCount = 0;
|
|
12097
|
+
this.domSubscriptions = new Subscription();
|
|
12098
|
+
this.onKeydown = (e) => {
|
|
12099
|
+
if (e.keyCode !== Keys.Tab) {
|
|
12100
|
+
e.preventDefault();
|
|
12101
|
+
}
|
|
12102
|
+
if (e.keyCode === Keys.ArrowDown) {
|
|
12103
|
+
this.listNavigationService.next();
|
|
12104
|
+
}
|
|
12105
|
+
else if (e.keyCode === Keys.ArrowUp) {
|
|
12106
|
+
this.listNavigationService.prev();
|
|
12107
|
+
}
|
|
12108
|
+
else if (e.keyCode === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
|
12109
|
+
this.listNavigationService.toggleCheckedState();
|
|
12110
|
+
}
|
|
12111
|
+
};
|
|
11952
12112
|
}
|
|
11953
12113
|
get className() {
|
|
11954
12114
|
return true;
|
|
11955
12115
|
}
|
|
12116
|
+
isChecked(checkbox) {
|
|
12117
|
+
return checkbox.checked;
|
|
12118
|
+
}
|
|
11956
12119
|
set columns(value) {
|
|
11957
12120
|
this._columns = value.filter(column => column.includeInChooser !== false);
|
|
11958
12121
|
this.allColumns = value;
|
|
@@ -11970,12 +12133,21 @@ class ColumnListComponent {
|
|
|
11970
12133
|
return;
|
|
11971
12134
|
}
|
|
11972
12135
|
this.ngZone.runOutsideAngular(() => {
|
|
11973
|
-
this.domSubscriptions
|
|
11974
|
-
|
|
12136
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
|
|
12137
|
+
const closestItem = e.target.closest('.k-column-list-item');
|
|
12138
|
+
if (closestItem) {
|
|
12139
|
+
const checkbox = closestItem.querySelector('.k-checkbox');
|
|
12140
|
+
const index = parseInt(checkbox.getAttribute('data-index'), 10);
|
|
12141
|
+
if (e.target === checkbox) {
|
|
12142
|
+
closestItem.focus();
|
|
12143
|
+
}
|
|
12144
|
+
else {
|
|
12145
|
+
e.preventDefault();
|
|
12146
|
+
checkbox.checked = !checkbox.checked;
|
|
12147
|
+
}
|
|
11975
12148
|
if (this.autoSync) {
|
|
11976
|
-
const index = parseInt(e.target.getAttribute('data-index'), 10);
|
|
11977
12149
|
const column = this.columns[index];
|
|
11978
|
-
const hidden = !
|
|
12150
|
+
const hidden = !checkbox.checked;
|
|
11979
12151
|
if (Boolean(column.hidden) !== hidden) {
|
|
11980
12152
|
this.ngZone.run(() => {
|
|
11981
12153
|
column.hidden = hidden;
|
|
@@ -11986,10 +12158,20 @@ class ColumnListComponent {
|
|
|
11986
12158
|
else {
|
|
11987
12159
|
this.updateDisabled();
|
|
11988
12160
|
}
|
|
12161
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
12162
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
12163
|
+
this.listNavigationService.activeIndex = index;
|
|
12164
|
+
this.listNavigationService.toggle(index, true);
|
|
12165
|
+
}
|
|
11989
12166
|
}
|
|
11990
|
-
});
|
|
12167
|
+
}));
|
|
12168
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'keydown', this.onKeydown));
|
|
11991
12169
|
});
|
|
11992
12170
|
}
|
|
12171
|
+
ngAfterViewInit() {
|
|
12172
|
+
this.listNavigationService.items = this.options.toArray();
|
|
12173
|
+
this.listNavigationService.toggle(0, true);
|
|
12174
|
+
}
|
|
11993
12175
|
ngOnChanges(changes) {
|
|
11994
12176
|
if (!this.service) {
|
|
11995
12177
|
return;
|
|
@@ -12002,9 +12184,7 @@ class ColumnListComponent {
|
|
|
12002
12184
|
}
|
|
12003
12185
|
}
|
|
12004
12186
|
ngOnDestroy() {
|
|
12005
|
-
|
|
12006
|
-
this.domSubscriptions();
|
|
12007
|
-
}
|
|
12187
|
+
this.domSubscriptions.unsubscribe();
|
|
12008
12188
|
}
|
|
12009
12189
|
cancelChanges() {
|
|
12010
12190
|
this.forEachCheckBox((element, index) => {
|
|
@@ -12032,6 +12212,9 @@ class ColumnListComponent {
|
|
|
12032
12212
|
if (this.service) {
|
|
12033
12213
|
this.service.menuTabbingService.firstFocusable.focus();
|
|
12034
12214
|
}
|
|
12215
|
+
else {
|
|
12216
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, true);
|
|
12217
|
+
}
|
|
12035
12218
|
}
|
|
12036
12219
|
}
|
|
12037
12220
|
forEachCheckBox(callback) {
|
|
@@ -12078,35 +12261,94 @@ class ColumnListComponent {
|
|
|
12078
12261
|
}
|
|
12079
12262
|
}
|
|
12080
12263
|
}
|
|
12081
|
-
ColumnListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
12082
|
-
ColumnListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: { columns: "columns", autoSync: "autoSync", allowHideAll: "allowHideAll", applyText: "applyText", resetText: "resetText", actionsClass: "actionsClass", isLast: "isLast", isExpanded: "isExpanded", service: "service" }, outputs: { reset: "reset", apply: "apply", columnChange: "columnChange" }, host: { properties: { "class.k-column-list-wrapper": "this.className" } }, viewQueries: [{ propertyName: "applyButton", first: true, predicate: ["applyButton"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
12083
|
-
<div
|
|
12084
|
-
|
|
12085
|
-
|
|
12264
|
+
ColumnListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: ColumnListKeyboardNavigation }], target: i0.ɵɵFactoryTarget.Component });
|
|
12265
|
+
ColumnListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: { columns: "columns", autoSync: "autoSync", ariaLabel: "ariaLabel", allowHideAll: "allowHideAll", applyText: "applyText", resetText: "resetText", actionsClass: "actionsClass", isLast: "isLast", isExpanded: "isExpanded", service: "service" }, outputs: { reset: "reset", apply: "apply", columnChange: "columnChange" }, host: { properties: { "class.k-column-list-wrapper": "this.className" } }, providers: [ColumnListKeyboardNavigation], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "applyButton", first: true, predicate: ["applyButton"], descendants: true }, { propertyName: "options", predicate: ColumnMenuChooserItemCheckedDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
12266
|
+
<div
|
|
12267
|
+
class="k-column-list"
|
|
12268
|
+
role="listbox"
|
|
12269
|
+
aria-multiselectable="true"
|
|
12270
|
+
[attr.aria-label]="ariaLabel">
|
|
12271
|
+
<label
|
|
12272
|
+
*ngFor="let column of columns; let index = index;"
|
|
12273
|
+
class='k-column-list-item'
|
|
12274
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12275
|
+
role="option">
|
|
12276
|
+
<input
|
|
12277
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12278
|
+
type="checkbox"
|
|
12279
|
+
[attr.data-index]="index"
|
|
12280
|
+
[checked]="!column.hidden"
|
|
12281
|
+
tabindex="-1"
|
|
12282
|
+
[attr.aria-hidden]="true"
|
|
12283
|
+
[disabled]="isDisabled(column)" />
|
|
12284
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12086
12285
|
</label>
|
|
12087
12286
|
</div>
|
|
12088
12287
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12089
|
-
<button
|
|
12090
|
-
|
|
12288
|
+
<button
|
|
12289
|
+
#applyButton
|
|
12290
|
+
type="button"
|
|
12291
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12292
|
+
(click)="applyChanges()"
|
|
12293
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12294
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12295
|
+
<button
|
|
12296
|
+
#resetButton
|
|
12297
|
+
type="button"
|
|
12298
|
+
(keydown.tab)="onTab($event)"
|
|
12299
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12300
|
+
(click)="cancelChanges()"
|
|
12301
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12302
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12091
12303
|
</div>
|
|
12092
|
-
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
12304
|
+
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: ["kendoColumnMenuChooserItemChecked"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
12093
12305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
12094
12306
|
type: Component,
|
|
12095
12307
|
args: [{
|
|
12096
12308
|
selector: 'kendo-grid-columnlist',
|
|
12309
|
+
providers: [ColumnListKeyboardNavigation],
|
|
12097
12310
|
template: `
|
|
12098
|
-
<div
|
|
12099
|
-
|
|
12100
|
-
|
|
12311
|
+
<div
|
|
12312
|
+
class="k-column-list"
|
|
12313
|
+
role="listbox"
|
|
12314
|
+
aria-multiselectable="true"
|
|
12315
|
+
[attr.aria-label]="ariaLabel">
|
|
12316
|
+
<label
|
|
12317
|
+
*ngFor="let column of columns; let index = index;"
|
|
12318
|
+
class='k-column-list-item'
|
|
12319
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12320
|
+
role="option">
|
|
12321
|
+
<input
|
|
12322
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12323
|
+
type="checkbox"
|
|
12324
|
+
[attr.data-index]="index"
|
|
12325
|
+
[checked]="!column.hidden"
|
|
12326
|
+
tabindex="-1"
|
|
12327
|
+
[attr.aria-hidden]="true"
|
|
12328
|
+
[disabled]="isDisabled(column)" />
|
|
12329
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12101
12330
|
</label>
|
|
12102
12331
|
</div>
|
|
12103
12332
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12104
|
-
<button
|
|
12105
|
-
|
|
12333
|
+
<button
|
|
12334
|
+
#applyButton
|
|
12335
|
+
type="button"
|
|
12336
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12337
|
+
(click)="applyChanges()"
|
|
12338
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12339
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12340
|
+
<button
|
|
12341
|
+
#resetButton
|
|
12342
|
+
type="button"
|
|
12343
|
+
(keydown.tab)="onTab($event)"
|
|
12344
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12345
|
+
(click)="cancelChanges()"
|
|
12346
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12347
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12106
12348
|
</div>
|
|
12107
12349
|
`
|
|
12108
12350
|
}]
|
|
12109
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { className: [{
|
|
12351
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ColumnListKeyboardNavigation }]; }, propDecorators: { className: [{
|
|
12110
12352
|
type: HostBinding,
|
|
12111
12353
|
args: ["class.k-column-list-wrapper"]
|
|
12112
12354
|
}], reset: [{
|
|
@@ -12119,6 +12361,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12119
12361
|
type: Input
|
|
12120
12362
|
}], autoSync: [{
|
|
12121
12363
|
type: Input
|
|
12364
|
+
}], ariaLabel: [{
|
|
12365
|
+
type: Input
|
|
12122
12366
|
}], allowHideAll: [{
|
|
12123
12367
|
type: Input
|
|
12124
12368
|
}], applyText: [{
|
|
@@ -12133,9 +12377,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12133
12377
|
type: Input
|
|
12134
12378
|
}], service: [{
|
|
12135
12379
|
type: Input
|
|
12380
|
+
}], resetButton: [{
|
|
12381
|
+
type: ViewChild,
|
|
12382
|
+
args: ['resetButton', { static: false }]
|
|
12136
12383
|
}], applyButton: [{
|
|
12137
12384
|
type: ViewChild,
|
|
12138
12385
|
args: ['applyButton', { static: false }]
|
|
12386
|
+
}], options: [{
|
|
12387
|
+
type: ViewChildren,
|
|
12388
|
+
args: [ColumnMenuChooserItemCheckedDirective]
|
|
12139
12389
|
}] } });
|
|
12140
12390
|
|
|
12141
12391
|
/**
|
|
@@ -12228,6 +12478,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12228
12478
|
<kendo-grid-columnlist
|
|
12229
12479
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12230
12480
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12481
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12231
12482
|
[columns]="columns"
|
|
12232
12483
|
[autoSync]="false"
|
|
12233
12484
|
[allowHideAll]="false"
|
|
@@ -12239,7 +12490,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12239
12490
|
</kendo-grid-columnlist>
|
|
12240
12491
|
</ng-template>
|
|
12241
12492
|
</kendo-grid-columnmenu-item>
|
|
12242
|
-
`, isInline: true, components: [{ type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
12493
|
+
`, isInline: true, components: [{ type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
12243
12494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
|
|
12244
12495
|
type: Component,
|
|
12245
12496
|
args: [{
|
|
@@ -12256,6 +12507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12256
12507
|
<kendo-grid-columnlist
|
|
12257
12508
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12258
12509
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12510
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12259
12511
|
[columns]="columns"
|
|
12260
12512
|
[autoSync]="false"
|
|
12261
12513
|
[allowHideAll]="false"
|
|
@@ -12659,7 +12911,7 @@ class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
|
|
|
12659
12911
|
ngOnInit() {
|
|
12660
12912
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12661
12913
|
if (isVirtualColumns && isDevMode()) {
|
|
12662
|
-
console.warn(
|
|
12914
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12663
12915
|
}
|
|
12664
12916
|
}
|
|
12665
12917
|
/**
|
|
@@ -12726,7 +12978,7 @@ class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
|
|
|
12726
12978
|
ngOnInit() {
|
|
12727
12979
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12728
12980
|
if (isVirtualColumns && isDevMode()) {
|
|
12729
|
-
console.warn(
|
|
12981
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12730
12982
|
}
|
|
12731
12983
|
}
|
|
12732
12984
|
/**
|
|
@@ -12763,6 +13015,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12763
13015
|
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
12764
13016
|
|
|
12765
13017
|
const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
13018
|
+
let id$2 = 0;
|
|
13019
|
+
const getId = (gridId) => `${gridId}-column-menu-${id$2++}`;
|
|
12766
13020
|
/**
|
|
12767
13021
|
* Represents the [column menu](slug:columnmenu_grid#toc-customizing-the-position) component.
|
|
12768
13022
|
*
|
|
@@ -12775,7 +13029,7 @@ const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
|
12775
13029
|
* </kendo-grid>
|
|
12776
13030
|
*/
|
|
12777
13031
|
class ColumnMenuComponent {
|
|
12778
|
-
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService) {
|
|
13032
|
+
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
|
|
12779
13033
|
this.navigationService = navigationService;
|
|
12780
13034
|
this.popupService = popupService;
|
|
12781
13035
|
this.service = service;
|
|
@@ -12783,6 +13037,7 @@ class ColumnMenuComponent {
|
|
|
12783
13037
|
this.renderer = renderer;
|
|
12784
13038
|
this.cdr = cdr;
|
|
12785
13039
|
this.columnInfoService = columnInfoService;
|
|
13040
|
+
this.idService = idService;
|
|
12786
13041
|
/**
|
|
12787
13042
|
* @hidden
|
|
12788
13043
|
*/
|
|
@@ -12828,7 +13083,7 @@ class ColumnMenuComponent {
|
|
|
12828
13083
|
*/
|
|
12829
13084
|
this.expandedPosition = false;
|
|
12830
13085
|
this.moreVerticalIcon = moreVerticalIcon;
|
|
12831
|
-
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
|
13086
|
+
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
|
|
12832
13087
|
}
|
|
12833
13088
|
/**
|
|
12834
13089
|
* @hidden
|
|
@@ -12854,6 +13109,12 @@ class ColumnMenuComponent {
|
|
|
12854
13109
|
get hasFilter() {
|
|
12855
13110
|
return hasFilter(this.settings, this.column);
|
|
12856
13111
|
}
|
|
13112
|
+
/**
|
|
13113
|
+
* @hidden
|
|
13114
|
+
*/
|
|
13115
|
+
get isNavigable() {
|
|
13116
|
+
return this.navigationService.tableEnabled;
|
|
13117
|
+
}
|
|
12857
13118
|
/**
|
|
12858
13119
|
* @hidden
|
|
12859
13120
|
*/
|
|
@@ -12870,7 +13131,7 @@ class ColumnMenuComponent {
|
|
|
12870
13131
|
* @hidden
|
|
12871
13132
|
*/
|
|
12872
13133
|
onApply(changed) {
|
|
12873
|
-
this.close();
|
|
13134
|
+
this.close(true);
|
|
12874
13135
|
if (changed.length) {
|
|
12875
13136
|
this.cdr.markForCheck();
|
|
12876
13137
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -12916,11 +13177,11 @@ class ColumnMenuComponent {
|
|
|
12916
13177
|
if (this.ctx.grid.virtualColumns && isDevMode()) {
|
|
12917
13178
|
if (this.settings.autoSizeAllColumns) {
|
|
12918
13179
|
this.settings.autoSizeAllColumns = false;
|
|
12919
|
-
console.warn(
|
|
13180
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12920
13181
|
}
|
|
12921
13182
|
if (this.settings.autoSizeColumn) {
|
|
12922
13183
|
this.settings.autoSizeColumn = false;
|
|
12923
|
-
console.warn(
|
|
13184
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12924
13185
|
}
|
|
12925
13186
|
}
|
|
12926
13187
|
this.service.menuTabbingService.isTabbedInterface = this.settings.view === 'tabbed' ? true : false;
|
|
@@ -12947,12 +13208,32 @@ class ColumnMenuComponent {
|
|
|
12947
13208
|
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
12948
13209
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
12949
13210
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
12950
|
-
|
|
12951
|
-
|
|
12952
|
-
|
|
12953
|
-
|
|
13211
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
13212
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
13213
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13214
|
+
if (this.popupRef) {
|
|
13215
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
13216
|
+
this.popupRef = null;
|
|
13217
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13218
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
13219
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
13220
|
+
});
|
|
13221
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
13222
|
+
if (popupAriaElement) {
|
|
13223
|
+
const popupId = getId(this.idService?.gridId());
|
|
13224
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
13225
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
13226
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
13227
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
13228
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
13229
|
+
}
|
|
13230
|
+
if (this.settings.view === 'tabbed') {
|
|
13231
|
+
this.renderer.addClass(this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup'), 'k-column-menu-tabbed');
|
|
13232
|
+
this.cdr.detectChanges();
|
|
13233
|
+
this.tabStrip?.selectTab(0);
|
|
13234
|
+
}
|
|
12954
13235
|
}
|
|
12955
|
-
|
|
13236
|
+
else {
|
|
12956
13237
|
if (this.navigationService.tableEnabled) {
|
|
12957
13238
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
12958
13239
|
}
|
|
@@ -12964,9 +13245,13 @@ class ColumnMenuComponent {
|
|
|
12964
13245
|
/**
|
|
12965
13246
|
* @hidden
|
|
12966
13247
|
*/
|
|
12967
|
-
close() {
|
|
13248
|
+
close(triggerFocus = false) {
|
|
12968
13249
|
this.popupService.destroy();
|
|
12969
13250
|
this.popupRef = null;
|
|
13251
|
+
this.cdr.markForCheck();
|
|
13252
|
+
if (!triggerFocus) {
|
|
13253
|
+
return;
|
|
13254
|
+
}
|
|
12970
13255
|
if (this.navigationService.tableEnabled) {
|
|
12971
13256
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
12972
13257
|
}
|
|
@@ -12986,7 +13271,7 @@ class ColumnMenuComponent {
|
|
|
12986
13271
|
return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
|
|
12987
13272
|
}
|
|
12988
13273
|
}
|
|
12989
|
-
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13274
|
+
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.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 }], target: i0.ɵɵFactoryTarget.Component });
|
|
12990
13275
|
ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuComponent, 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: [
|
|
12991
13276
|
ColumnMenuService,
|
|
12992
13277
|
MenuTabbingService
|
|
@@ -12998,7 +13283,9 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
12998
13283
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
12999
13284
|
href="#"
|
|
13000
13285
|
[tabindex]="tabIndex"
|
|
13001
|
-
[attr.title]="columnMenuTitle"
|
|
13286
|
+
[attr.title]="columnMenuTitle"
|
|
13287
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13288
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13002
13289
|
<kendo-icon-wrapper
|
|
13003
13290
|
name="more-vertical"
|
|
13004
13291
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13011,7 +13298,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13011
13298
|
</ng-template>
|
|
13012
13299
|
<ng-template #defaultTemplate>
|
|
13013
13300
|
<kendo-grid-columnmenu-container
|
|
13014
|
-
(keydown.escape)="close()"
|
|
13301
|
+
(keydown.escape)="close(true)"
|
|
13015
13302
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13016
13303
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13017
13304
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13063,7 +13350,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13063
13350
|
</kendo-grid-columnmenu-container>
|
|
13064
13351
|
</ng-template>
|
|
13065
13352
|
<ng-template #tabbedInterfaceTemplate>
|
|
13066
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13353
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13067
13354
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13068
13355
|
<ng-template kendoTabTitle>
|
|
13069
13356
|
<kendo-icon-wrapper
|
|
@@ -13150,7 +13437,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13150
13437
|
</kendo-tabstrip-tab>
|
|
13151
13438
|
</kendo-tabstrip>
|
|
13152
13439
|
</ng-template>
|
|
13153
|
-
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type:
|
|
13440
|
+
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: i17.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i17.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { type: i17.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i17.TabContentDirective, selector: "[kendoTabContent]" }] });
|
|
13154
13441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
13155
13442
|
type: Component,
|
|
13156
13443
|
args: [{
|
|
@@ -13167,7 +13454,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13167
13454
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
13168
13455
|
href="#"
|
|
13169
13456
|
[tabindex]="tabIndex"
|
|
13170
|
-
[attr.title]="columnMenuTitle"
|
|
13457
|
+
[attr.title]="columnMenuTitle"
|
|
13458
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13459
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13171
13460
|
<kendo-icon-wrapper
|
|
13172
13461
|
name="more-vertical"
|
|
13173
13462
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13180,7 +13469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13180
13469
|
</ng-template>
|
|
13181
13470
|
<ng-template #defaultTemplate>
|
|
13182
13471
|
<kendo-grid-columnmenu-container
|
|
13183
|
-
(keydown.escape)="close()"
|
|
13472
|
+
(keydown.escape)="close(true)"
|
|
13184
13473
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13185
13474
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13186
13475
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13232,7 +13521,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13232
13521
|
</kendo-grid-columnmenu-container>
|
|
13233
13522
|
</ng-template>
|
|
13234
13523
|
<ng-template #tabbedInterfaceTemplate>
|
|
13235
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13524
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13236
13525
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13237
13526
|
<ng-template kendoTabTitle>
|
|
13238
13527
|
<kendo-icon-wrapper
|
|
@@ -13321,7 +13610,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13321
13610
|
</ng-template>
|
|
13322
13611
|
`
|
|
13323
13612
|
}]
|
|
13324
|
-
}], ctorParameters: function () { return [{ type: NavigationService }, { type: SinglePopupService }, { type: ColumnMenuService }, { type: ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService }
|
|
13613
|
+
}], ctorParameters: function () { return [{ type: NavigationService }, { type: SinglePopupService }, { type: ColumnMenuService }, { type: ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService }, { type: IdService, decorators: [{
|
|
13614
|
+
type: Optional
|
|
13615
|
+
}] }]; }, propDecorators: { standalone: [{
|
|
13325
13616
|
type: HostBinding,
|
|
13326
13617
|
args: ['class.k-grid-column-menu-standalone']
|
|
13327
13618
|
}, {
|
|
@@ -13491,7 +13782,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
13491
13782
|
[size]="size"
|
|
13492
13783
|
(click)="clearClick()"
|
|
13493
13784
|
(keydown)="clearKeydown($event)"></button>
|
|
13494
|
-
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
13785
|
+
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
13495
13786
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
|
|
13496
13787
|
type: Component,
|
|
13497
13788
|
args: [{
|
|
@@ -13896,7 +14187,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
13896
14187
|
[value]="currentFilter?.value">
|
|
13897
14188
|
</kendo-dropdownlist>
|
|
13898
14189
|
</kendo-grid-filter-wrapper-cell>
|
|
13899
|
-
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
14190
|
+
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
13900
14191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
|
|
13901
14192
|
type: Component,
|
|
13902
14193
|
args: [{
|
|
@@ -14264,7 +14555,7 @@ class LogicalCellDirective {
|
|
|
14264
14555
|
this.renderer.addClass(el, 'k-focus');
|
|
14265
14556
|
}
|
|
14266
14557
|
if (this.headerLabelText) {
|
|
14267
|
-
el.
|
|
14558
|
+
el.removeAttribute('aria-label');
|
|
14268
14559
|
}
|
|
14269
14560
|
}
|
|
14270
14561
|
else {
|
|
@@ -14956,7 +15247,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
|
|
|
14956
15247
|
* @hidden
|
|
14957
15248
|
*/
|
|
14958
15249
|
class HeaderComponent {
|
|
14959
|
-
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService) {
|
|
15250
|
+
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService, navigationService) {
|
|
14960
15251
|
this.popupService = popupService;
|
|
14961
15252
|
this.hint = hint;
|
|
14962
15253
|
this.cue = cue;
|
|
@@ -14966,6 +15257,7 @@ class HeaderComponent {
|
|
|
14966
15257
|
this.columnInfoService = columnInfoService;
|
|
14967
15258
|
this.cd = cd;
|
|
14968
15259
|
this.contextService = contextService;
|
|
15260
|
+
this.navigationService = navigationService;
|
|
14969
15261
|
this.columns = [];
|
|
14970
15262
|
this.groups = [];
|
|
14971
15263
|
this.sort = new Array();
|
|
@@ -15100,6 +15392,9 @@ class HeaderComponent {
|
|
|
15100
15392
|
return 'descending';
|
|
15101
15393
|
}
|
|
15102
15394
|
}
|
|
15395
|
+
get isNavigable() {
|
|
15396
|
+
return this.navigationService.tableEnabled;
|
|
15397
|
+
}
|
|
15103
15398
|
/**
|
|
15104
15399
|
*
|
|
15105
15400
|
* @param column
|
|
@@ -15210,7 +15505,7 @@ class HeaderComponent {
|
|
|
15210
15505
|
}
|
|
15211
15506
|
addStickyStyles(column) {
|
|
15212
15507
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
15213
|
-
return { ...column.
|
|
15508
|
+
return { ...column.headerStyle, ...stickyStyles };
|
|
15214
15509
|
}
|
|
15215
15510
|
toggleDirection(field, allowUnsort, initialDirection) {
|
|
15216
15511
|
const descriptor = this.sortDescriptor(field);
|
|
@@ -15327,7 +15622,7 @@ class HeaderComponent {
|
|
|
15327
15622
|
});
|
|
15328
15623
|
}
|
|
15329
15624
|
}
|
|
15330
|
-
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15625
|
+
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15331
15626
|
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: { totalColumnLevels: "totalColumnLevels", columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", filterable: "filterable", sort: "sort", filter: "filter", sortable: "sortable", groupable: "groupable", lockedColumnsCount: "lockedColumnsCount", resizable: "resizable", reorderable: "reorderable", columnMenu: "columnMenu", columnMenuTemplate: "columnMenuTemplate", totalColumnsCount: "totalColumnsCount", totalColumns: "totalColumns", tabIndex: "tabIndex", size: "size" }, host: { properties: { "class.k-grid-header": "this.headerClass", "class.k-table-thead": "this.hostClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }, { propertyName: "filterMenus", predicate: FilterMenuComponent, descendants: true }, { propertyName: "columnMenus", predicate: ColumnMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
15332
15627
|
<ng-container>
|
|
15333
15628
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -15379,7 +15674,9 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
15379
15674
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15380
15675
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15381
15676
|
[attr.colspan]="column.colspan"
|
|
15382
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15677
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15678
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15679
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15383
15680
|
|
|
15384
15681
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15385
15682
|
<span class="k-cell-inner">
|
|
@@ -15601,7 +15898,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15601
15898
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15602
15899
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15603
15900
|
[attr.colspan]="column.colspan"
|
|
15604
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15901
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15902
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15903
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15605
15904
|
|
|
15606
15905
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15607
15906
|
<span class="k-cell-inner">
|
|
@@ -15769,7 +16068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15769
16068
|
</ng-container>
|
|
15770
16069
|
`
|
|
15771
16070
|
}]
|
|
15772
|
-
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }]; }, propDecorators: { totalColumnLevels: [{
|
|
16071
|
+
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: NavigationService }]; }, propDecorators: { totalColumnLevels: [{
|
|
15773
16072
|
type: Input
|
|
15774
16073
|
}], columns: [{
|
|
15775
16074
|
type: Input
|
|
@@ -18735,7 +19034,7 @@ class FooterComponent {
|
|
|
18735
19034
|
}
|
|
18736
19035
|
addStickyStyles(column) {
|
|
18737
19036
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
18738
|
-
return { ...column.
|
|
19037
|
+
return { ...column.footerStyle, ...stickyStyles };
|
|
18739
19038
|
}
|
|
18740
19039
|
}
|
|
18741
19040
|
FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterComponent, deps: [{ token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -22850,7 +23149,15 @@ class ExpandGroupDirective {
|
|
|
22850
23149
|
this.expandedGroupKeys.push(key);
|
|
22851
23150
|
}
|
|
22852
23151
|
else {
|
|
22853
|
-
const index = this.expandedGroupKeys.
|
|
23152
|
+
const index = this.expandedGroupKeys.findIndex(group => {
|
|
23153
|
+
if (this.expandGroupBy) {
|
|
23154
|
+
return group === key;
|
|
23155
|
+
}
|
|
23156
|
+
else if (key.parentGroupKeys?.length === 0) {
|
|
23157
|
+
return group.value === key.value;
|
|
23158
|
+
}
|
|
23159
|
+
return JSON.stringify(group) === JSON.stringify(key);
|
|
23160
|
+
});
|
|
22854
23161
|
this.expandedGroupKeys.splice(index, 1);
|
|
22855
23162
|
}
|
|
22856
23163
|
this.expandedGroupKeysChange.emit(this.expandedGroupKeys.slice());
|
|
@@ -22968,7 +23275,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
22968
23275
|
[value]="currentFilter?.value">
|
|
22969
23276
|
</kendo-autocomplete>
|
|
22970
23277
|
</kendo-grid-filter-wrapper-cell>
|
|
22971
|
-
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
23278
|
+
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
22972
23279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
|
|
22973
23280
|
type: Component,
|
|
22974
23281
|
args: [{
|
|
@@ -24088,13 +24395,30 @@ class ColumnChooserComponent {
|
|
|
24088
24395
|
anchorAlign: { vertical: 'bottom', horizontal: direction },
|
|
24089
24396
|
popupAlign: { vertical: 'top', horizontal: direction }
|
|
24090
24397
|
});
|
|
24091
|
-
|
|
24398
|
+
const popupElement = this.popupRef?.popupElement;
|
|
24399
|
+
if (popupElement) {
|
|
24400
|
+
const popupId = `k-${guid()}`;
|
|
24401
|
+
const popupAriaElement = popupElement.querySelector('.k-popup');
|
|
24402
|
+
this.ngZone.runOutsideAngular(() => {
|
|
24403
|
+
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
|
24404
|
+
if (e.keyCode === Keys.Escape) {
|
|
24405
|
+
this.close(true);
|
|
24406
|
+
}
|
|
24407
|
+
});
|
|
24408
|
+
});
|
|
24409
|
+
this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
|
|
24410
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
24411
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
24412
|
+
this.popupId = popupId;
|
|
24413
|
+
}
|
|
24092
24414
|
if (!isDocumentAvailable()) {
|
|
24093
24415
|
return;
|
|
24094
24416
|
}
|
|
24095
24417
|
this.ngZone.runOutsideAngular(() => this.closeClick = this.renderer.listen('document', 'click', ({ target }) => {
|
|
24096
24418
|
if (!closest(target, node => node === this.popupRef.popupElement || node === anchor.element)) {
|
|
24097
|
-
this.
|
|
24419
|
+
this.ngZone.run(() => {
|
|
24420
|
+
this.close();
|
|
24421
|
+
});
|
|
24098
24422
|
}
|
|
24099
24423
|
}));
|
|
24100
24424
|
}
|
|
@@ -24106,7 +24430,7 @@ class ColumnChooserComponent {
|
|
|
24106
24430
|
* @hidden
|
|
24107
24431
|
*/
|
|
24108
24432
|
onApply(changed) {
|
|
24109
|
-
this.close();
|
|
24433
|
+
this.close(true);
|
|
24110
24434
|
if (changed.length) {
|
|
24111
24435
|
this.changeDetector.markForCheck();
|
|
24112
24436
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -24119,12 +24443,24 @@ class ColumnChooserComponent {
|
|
|
24119
24443
|
this.changeDetector.markForCheck();
|
|
24120
24444
|
this.columnInfoService.changeVisibility(changed);
|
|
24121
24445
|
}
|
|
24122
|
-
|
|
24446
|
+
/**
|
|
24447
|
+
* @hidden
|
|
24448
|
+
*/
|
|
24449
|
+
onShiftTab(e) {
|
|
24450
|
+
if (e.target.matches('.k-column-list-item')) {
|
|
24451
|
+
e.preventDefault();
|
|
24452
|
+
this.columnList.resetButton.nativeElement.focus();
|
|
24453
|
+
}
|
|
24454
|
+
}
|
|
24455
|
+
close(focusAnchor = false) {
|
|
24123
24456
|
if (this.popupRef) {
|
|
24124
24457
|
this.popupRef.close();
|
|
24125
24458
|
this.popupRef = null;
|
|
24459
|
+
this.changeDetector.markForCheck();
|
|
24460
|
+
this.escapeListener && this.escapeListener();
|
|
24126
24461
|
}
|
|
24127
24462
|
this.detachClose();
|
|
24463
|
+
focusAnchor && this.anchor.element.focus();
|
|
24128
24464
|
}
|
|
24129
24465
|
detachClose() {
|
|
24130
24466
|
if (this.closeClick) {
|
|
@@ -24134,7 +24470,7 @@ class ColumnChooserComponent {
|
|
|
24134
24470
|
}
|
|
24135
24471
|
}
|
|
24136
24472
|
ColumnChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, deps: [{ token: ContextService }, { token: ColumnInfoService }, { token: i1$2.PopupService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
24137
|
-
ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, ngImport: i0, template: `
|
|
24473
|
+
ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }, { propertyName: "columnList", first: true, predicate: ["columnList"], descendants: true }], ngImport: i0, template: `
|
|
24138
24474
|
<button #anchor
|
|
24139
24475
|
kendoButton
|
|
24140
24476
|
type="button"
|
|
@@ -24142,20 +24478,27 @@ ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
24142
24478
|
fillMode="flat"
|
|
24143
24479
|
[attr.title]="ctx.localization.get('columns')"
|
|
24144
24480
|
icon="columns"
|
|
24145
|
-
[svgIcon]="columnsIcon"
|
|
24481
|
+
[svgIcon]="columnsIcon"
|
|
24482
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24483
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24484
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24146
24485
|
<ng-template #template>
|
|
24147
24486
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24148
24487
|
<kendo-grid-columnlist
|
|
24488
|
+
#columnList
|
|
24149
24489
|
[columns]="columns"
|
|
24490
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24491
|
+
[isLast]="true"
|
|
24150
24492
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24151
24493
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24152
24494
|
[autoSync]="autoSync"
|
|
24153
24495
|
[allowHideAll]="allowHideAll"
|
|
24154
24496
|
(apply)="onApply($event)"
|
|
24155
|
-
(columnChange)="onChange($event)"
|
|
24497
|
+
(columnChange)="onChange($event)"
|
|
24498
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24156
24499
|
</kendo-grid-columnlist>
|
|
24157
24500
|
</ng-template>
|
|
24158
|
-
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
24501
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
24159
24502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
|
|
24160
24503
|
type: Component,
|
|
24161
24504
|
args: [{
|
|
@@ -24168,17 +24511,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24168
24511
|
fillMode="flat"
|
|
24169
24512
|
[attr.title]="ctx.localization.get('columns')"
|
|
24170
24513
|
icon="columns"
|
|
24171
|
-
[svgIcon]="columnsIcon"
|
|
24514
|
+
[svgIcon]="columnsIcon"
|
|
24515
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24516
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24517
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24172
24518
|
<ng-template #template>
|
|
24173
24519
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24174
24520
|
<kendo-grid-columnlist
|
|
24521
|
+
#columnList
|
|
24175
24522
|
[columns]="columns"
|
|
24523
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24524
|
+
[isLast]="true"
|
|
24176
24525
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24177
24526
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24178
24527
|
[autoSync]="autoSync"
|
|
24179
24528
|
[allowHideAll]="allowHideAll"
|
|
24180
24529
|
(apply)="onApply($event)"
|
|
24181
|
-
(columnChange)="onChange($event)"
|
|
24530
|
+
(columnChange)="onChange($event)"
|
|
24531
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24182
24532
|
</kendo-grid-columnlist>
|
|
24183
24533
|
</ng-template>
|
|
24184
24534
|
`
|
|
@@ -24187,9 +24537,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24187
24537
|
type: Input
|
|
24188
24538
|
}], allowHideAll: [{
|
|
24189
24539
|
type: Input
|
|
24540
|
+
}], anchor: [{
|
|
24541
|
+
type: ViewChild,
|
|
24542
|
+
args: ['anchor']
|
|
24543
|
+
}], columnList: [{
|
|
24544
|
+
type: ViewChild,
|
|
24545
|
+
args: ['columnList']
|
|
24190
24546
|
}] } });
|
|
24191
24547
|
|
|
24192
24548
|
const COMPONENTS = [
|
|
24549
|
+
ColumnMenuChooserItemCheckedDirective,
|
|
24193
24550
|
ColumnListComponent,
|
|
24194
24551
|
ColumnChooserComponent,
|
|
24195
24552
|
ColumnMenuChooserComponent,
|
|
@@ -24232,7 +24589,8 @@ class ColumnMenuModule {
|
|
|
24232
24589
|
}
|
|
24233
24590
|
}
|
|
24234
24591
|
ColumnMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24235
|
-
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [
|
|
24592
|
+
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [ColumnMenuChooserItemCheckedDirective,
|
|
24593
|
+
ColumnListComponent,
|
|
24236
24594
|
ColumnChooserComponent,
|
|
24237
24595
|
ColumnMenuChooserComponent,
|
|
24238
24596
|
ColumnMenuFilterComponent,
|
|
@@ -24247,7 +24605,8 @@ ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
24247
24605
|
ColumnMenuStickComponent,
|
|
24248
24606
|
ColumnMenuPositionComponent,
|
|
24249
24607
|
ColumnMenuAutoSizeColumnComponent,
|
|
24250
|
-
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [
|
|
24608
|
+
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [ColumnMenuChooserItemCheckedDirective,
|
|
24609
|
+
ColumnListComponent,
|
|
24251
24610
|
ColumnChooserComponent,
|
|
24252
24611
|
ColumnMenuChooserComponent,
|
|
24253
24612
|
ColumnMenuFilterComponent,
|