@progress/kendo-angular-grid 13.3.1-develop.1 → 13.4.0-develop.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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-template.directive.mjs +21 -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 +927 -540
- package/fesm2020/progress-kendo-angular-grid.mjs +928 -549
- package/filtering/menu/filter-menu-template.directive.d.ts +21 -1
- 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, Directive, Optional, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, SkipSelf, Host, Inject, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
|
|
6
|
+
import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Directive, Optional, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, SkipSelf, Host, Inject, 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 * as i3 from '@progress/kendo-angular-icons';
|
|
|
24
24
|
import { IconsModule } from '@progress/kendo-angular-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';
|
|
@@ -943,8 +943,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
943
943
|
} });
|
|
944
944
|
|
|
945
945
|
/**
|
|
946
|
-
* Represents the filter-menu template
|
|
946
|
+
* Represents the filter-menu template.
|
|
947
|
+
* Helps to customize the content of the filter menu. To define the filter menu template, nest an `<ng-template>` tag with the
|
|
948
|
+
* `kendoGridFilterMenuTemplate` directive inside a `<kendo-grid-column>` tag
|
|
947
949
|
* ([see example]({% slug filter_menu %}#toc-custom-filters)).
|
|
950
|
+
*
|
|
951
|
+
* The template context is set to the current data item and the following additional fields are passed:
|
|
952
|
+
* - `column`—Defines an instance of the [`ColumnComponent`]({% slug api_grid_columncomponent %}) option.. Use it as an alias for a template variable by utilizing the `let-column="column"` syntax.
|
|
953
|
+
* - `filter`—The provided filter descriptors. Use it as an alias for a template variable by utilizing the `let-filter="filter"` syntax.
|
|
954
|
+
* - `filterService`—Represents the [`FilterService`]({% slug api_grid_filterservice %}). Use it as an alias for a template variable by utilizing the `let-filterService="filterService"` syntax.
|
|
955
|
+
*
|
|
956
|
+
* ```html
|
|
957
|
+
* <kendo-grid-column field="CategoryID" title="Category">
|
|
958
|
+
* <ng-template kendoGridFilterMenuTemplate
|
|
959
|
+
* let-column="column"
|
|
960
|
+
* let-filter="filter"
|
|
961
|
+
* let-filterService="filterService"
|
|
962
|
+
* >
|
|
963
|
+
* ...
|
|
964
|
+
* </ng-template>
|
|
965
|
+
* ...
|
|
966
|
+
* </kendo-grid-column>
|
|
967
|
+
* ```
|
|
948
968
|
*/
|
|
949
969
|
class FilterMenuTemplateDirective {
|
|
950
970
|
constructor(templateRef) {
|
|
@@ -4454,8 +4474,8 @@ const packageMetadata = {
|
|
|
4454
4474
|
name: '@progress/kendo-angular-grid',
|
|
4455
4475
|
productName: 'Kendo UI for Angular',
|
|
4456
4476
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4457
|
-
publishDate:
|
|
4458
|
-
version: '13.
|
|
4477
|
+
publishDate: 1692972014,
|
|
4478
|
+
version: '13.4.0-develop.10',
|
|
4459
4479
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4460
4480
|
};
|
|
4461
4481
|
|
|
@@ -7085,23 +7105,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7085
7105
|
type: Input
|
|
7086
7106
|
}] } });
|
|
7087
7107
|
|
|
7108
|
+
// eslint-disable no-access-missing-member
|
|
7088
7109
|
/**
|
|
7089
|
-
* Displays
|
|
7110
|
+
* Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7090
7111
|
*/
|
|
7091
|
-
class
|
|
7092
|
-
constructor(ctx,
|
|
7112
|
+
class PagerInfoComponent extends PagerElementComponent {
|
|
7113
|
+
constructor(ctx, cd, pagerContext) {
|
|
7093
7114
|
super(ctx, pagerContext, cd);
|
|
7094
|
-
this.
|
|
7115
|
+
this.pagerContext = pagerContext;
|
|
7116
|
+
}
|
|
7117
|
+
/**
|
|
7118
|
+
* @hidden
|
|
7119
|
+
*
|
|
7120
|
+
* @readonly
|
|
7121
|
+
* @type {number}
|
|
7122
|
+
* @memberOf PagerInfoComponent
|
|
7123
|
+
*/
|
|
7124
|
+
get maxItems() {
|
|
7125
|
+
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
7126
|
+
}
|
|
7127
|
+
/**
|
|
7128
|
+
* @hidden
|
|
7129
|
+
*
|
|
7130
|
+
* @readonly
|
|
7131
|
+
* @type {number}
|
|
7132
|
+
* @memberOf PagerInfoComponent
|
|
7133
|
+
*/
|
|
7134
|
+
get currentPageText() {
|
|
7135
|
+
return this.total ?
|
|
7136
|
+
(this.currentPage - 1) * this.pageSize + 1 :
|
|
7137
|
+
0;
|
|
7095
7138
|
}
|
|
7096
7139
|
/**
|
|
7097
7140
|
* @hidden
|
|
7098
7141
|
*
|
|
7099
7142
|
* @readonly
|
|
7100
7143
|
* @type {boolean}
|
|
7101
|
-
* @memberOf
|
|
7144
|
+
* @memberOf PagerInfoComponent
|
|
7102
7145
|
*/
|
|
7103
|
-
get
|
|
7104
|
-
return
|
|
7146
|
+
get classes() {
|
|
7147
|
+
return true;
|
|
7105
7148
|
}
|
|
7106
7149
|
onChanges({ total, skip, pageSize }) {
|
|
7107
7150
|
this.total = total;
|
|
@@ -7110,162 +7153,260 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
7110
7153
|
this.cd.markForCheck();
|
|
7111
7154
|
}
|
|
7112
7155
|
}
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7116
|
-
[kendoGridFocusable]="!disabled"
|
|
7117
|
-
kendoButton
|
|
7118
|
-
type="button"
|
|
7119
|
-
[title]="textFor('pagerFirstPage')"
|
|
7120
|
-
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7121
|
-
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7122
|
-
role="button"
|
|
7123
|
-
[icon]="prevArrowIcons[0]"
|
|
7124
|
-
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7125
|
-
class="k-pager-nav k-pager-first"
|
|
7126
|
-
[disabled]="disabled"
|
|
7127
|
-
fillMode="flat"
|
|
7128
|
-
rounded="none"
|
|
7129
|
-
[size]="size">
|
|
7130
|
-
</button>
|
|
7131
|
-
<button
|
|
7132
|
-
kendoButton
|
|
7133
|
-
[kendoGridFocusable]="!disabled"
|
|
7134
|
-
type="button"
|
|
7135
|
-
class="k-pager-nav"
|
|
7136
|
-
[disabled]="disabled"
|
|
7137
|
-
[icon]="prevArrowIcons[1]"
|
|
7138
|
-
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7139
|
-
fillMode="flat"
|
|
7140
|
-
rounded="none"
|
|
7141
|
-
[size]="size"
|
|
7142
|
-
[title]="textFor('pagerPreviousPage')"
|
|
7143
|
-
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7144
|
-
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7145
|
-
</button>
|
|
7146
|
-
`, 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 });
|
|
7147
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
7156
|
+
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 });
|
|
7157
|
+
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 });
|
|
7158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
7148
7159
|
type: Component,
|
|
7149
7160
|
args: [{
|
|
7150
7161
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7151
|
-
selector: 'kendo-pager-
|
|
7152
|
-
template: `
|
|
7153
|
-
<button
|
|
7154
|
-
[kendoGridFocusable]="!disabled"
|
|
7155
|
-
kendoButton
|
|
7156
|
-
type="button"
|
|
7157
|
-
[title]="textFor('pagerFirstPage')"
|
|
7158
|
-
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7159
|
-
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7160
|
-
role="button"
|
|
7161
|
-
[icon]="prevArrowIcons[0]"
|
|
7162
|
-
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7163
|
-
class="k-pager-nav k-pager-first"
|
|
7164
|
-
[disabled]="disabled"
|
|
7165
|
-
fillMode="flat"
|
|
7166
|
-
rounded="none"
|
|
7167
|
-
[size]="size">
|
|
7168
|
-
</button>
|
|
7169
|
-
<button
|
|
7170
|
-
kendoButton
|
|
7171
|
-
[kendoGridFocusable]="!disabled"
|
|
7172
|
-
type="button"
|
|
7173
|
-
class="k-pager-nav"
|
|
7174
|
-
[disabled]="disabled"
|
|
7175
|
-
[icon]="prevArrowIcons[1]"
|
|
7176
|
-
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7177
|
-
fillMode="flat"
|
|
7178
|
-
rounded="none"
|
|
7179
|
-
[size]="size"
|
|
7180
|
-
[title]="textFor('pagerPreviousPage')"
|
|
7181
|
-
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7182
|
-
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7183
|
-
</button>
|
|
7184
|
-
`
|
|
7162
|
+
selector: 'kendo-pager-info',
|
|
7163
|
+
template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
|
|
7185
7164
|
}]
|
|
7186
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type:
|
|
7165
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
|
|
7166
|
+
type: HostBinding,
|
|
7167
|
+
args: ["class.k-pager-info"]
|
|
7168
|
+
}, {
|
|
7169
|
+
type: HostBinding,
|
|
7170
|
+
args: ["class.k-label"]
|
|
7171
|
+
}] } });
|
|
7187
7172
|
|
|
7188
7173
|
/**
|
|
7189
|
-
*
|
|
7174
|
+
* @hidden
|
|
7190
7175
|
*/
|
|
7191
|
-
class
|
|
7192
|
-
constructor(
|
|
7176
|
+
class PagerDropDownListDirective {
|
|
7177
|
+
constructor(host) {
|
|
7178
|
+
this.host = host;
|
|
7179
|
+
this.keydownHandler = (e) => {
|
|
7180
|
+
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
7181
|
+
e.stopPropagation();
|
|
7182
|
+
this.host.toggle(false);
|
|
7183
|
+
}
|
|
7184
|
+
};
|
|
7185
|
+
}
|
|
7186
|
+
ngAfterViewInit() {
|
|
7187
|
+
const wrapperElement = this.host.wrapper.nativeElement;
|
|
7188
|
+
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
7189
|
+
}
|
|
7190
|
+
ngOnDestroy() {
|
|
7191
|
+
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
7192
|
+
}
|
|
7193
|
+
}
|
|
7194
|
+
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 });
|
|
7195
|
+
PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
|
|
7196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
|
|
7197
|
+
type: Directive,
|
|
7198
|
+
args: [{ selector: '[kendoGridPagerDropDown]' }]
|
|
7199
|
+
}], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
|
|
7200
|
+
|
|
7201
|
+
/**
|
|
7202
|
+
* Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7203
|
+
*/
|
|
7204
|
+
class PagerPageSizesComponent extends PagerElementComponent {
|
|
7205
|
+
constructor(ctx, cd, pagerContext, navigationService) {
|
|
7193
7206
|
super(ctx, pagerContext, cd);
|
|
7194
7207
|
this.pagerContext = pagerContext;
|
|
7195
|
-
this.
|
|
7208
|
+
this.navigationService = navigationService;
|
|
7209
|
+
this._pageSizes = [];
|
|
7196
7210
|
}
|
|
7197
7211
|
/**
|
|
7198
|
-
*
|
|
7199
|
-
*
|
|
7200
|
-
* @readonly
|
|
7201
|
-
* @type {number[]}
|
|
7202
|
-
* @memberOf PagerNumericButtonsComponent
|
|
7212
|
+
* The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
|
|
7213
|
+
* ([see example]({% slug paging_grid %}#toc-pager-templates))
|
|
7203
7214
|
*/
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7215
|
+
set pageSizes(pageSizes) {
|
|
7216
|
+
let normalizedItems = [];
|
|
7217
|
+
pageSizes.forEach(item => {
|
|
7218
|
+
if (typeof item === 'number') {
|
|
7219
|
+
normalizedItems.push({
|
|
7220
|
+
text: item.toString(),
|
|
7221
|
+
value: item
|
|
7222
|
+
});
|
|
7223
|
+
}
|
|
7224
|
+
else {
|
|
7225
|
+
normalizedItems.push(item);
|
|
7226
|
+
}
|
|
7227
|
+
});
|
|
7228
|
+
if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
|
|
7229
|
+
normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
|
|
7208
7230
|
}
|
|
7209
|
-
|
|
7231
|
+
this._pageSizes = normalizedItems;
|
|
7232
|
+
}
|
|
7233
|
+
get pageSizes() {
|
|
7234
|
+
return this._pageSizes;
|
|
7210
7235
|
}
|
|
7211
7236
|
/**
|
|
7212
7237
|
* @hidden
|
|
7238
|
+
*
|
|
7239
|
+
* @readonly
|
|
7213
7240
|
*/
|
|
7214
|
-
get
|
|
7215
|
-
return
|
|
7241
|
+
get classes() {
|
|
7242
|
+
return true;
|
|
7216
7243
|
}
|
|
7217
7244
|
/**
|
|
7218
7245
|
* @hidden
|
|
7246
|
+
*
|
|
7247
|
+
* @readonly
|
|
7219
7248
|
*/
|
|
7220
|
-
get
|
|
7221
|
-
|
|
7222
|
-
|
|
7223
|
-
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7249
|
+
get showInitialPageSize() {
|
|
7250
|
+
return this.pageSizes
|
|
7251
|
+
.filter(item => {
|
|
7252
|
+
if (typeof item.value === 'number') {
|
|
7253
|
+
return item.value === Number(this.pageSize);
|
|
7254
|
+
}
|
|
7255
|
+
return this.total === Number(this.pageSize);
|
|
7256
|
+
})
|
|
7257
|
+
.length === 0;
|
|
7228
7258
|
}
|
|
7229
7259
|
/**
|
|
7230
7260
|
* @hidden
|
|
7231
7261
|
*/
|
|
7232
|
-
|
|
7233
|
-
|
|
7234
|
-
|
|
7235
|
-
return pageText + ' ' + num;
|
|
7236
|
-
}
|
|
7237
|
-
return num.toString();
|
|
7262
|
+
pageSizeChange(value) {
|
|
7263
|
+
this.pageSize = typeof value === 'number' ? value : this.total;
|
|
7264
|
+
this.pagerContext.changePageSize(this.pageSize);
|
|
7238
7265
|
}
|
|
7239
7266
|
/**
|
|
7240
7267
|
* @hidden
|
|
7241
7268
|
*/
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
const valueAsNumber = Number(target.value);
|
|
7245
|
-
if (!Number.isNaN(valueAsNumber)) {
|
|
7246
|
-
this.changePage(valueAsNumber - 1);
|
|
7247
|
-
}
|
|
7248
|
-
else {
|
|
7249
|
-
if (target.value === 'previousButtons') {
|
|
7250
|
-
this.changePage(this.start - 2);
|
|
7251
|
-
}
|
|
7252
|
-
else {
|
|
7253
|
-
this.changePage(this.end);
|
|
7254
|
-
}
|
|
7255
|
-
}
|
|
7269
|
+
getValue(page) {
|
|
7270
|
+
return typeof page.value === 'number' ? page.value : this.total;
|
|
7256
7271
|
}
|
|
7257
7272
|
onChanges({ total, skip, pageSize }) {
|
|
7258
7273
|
this.total = total;
|
|
7259
7274
|
this.skip = skip;
|
|
7260
|
-
this.pageSize = pageSize;
|
|
7275
|
+
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
7261
7276
|
this.cd.markForCheck();
|
|
7262
7277
|
}
|
|
7263
7278
|
}
|
|
7264
|
-
|
|
7265
|
-
|
|
7266
|
-
<
|
|
7279
|
+
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 });
|
|
7280
|
+
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: `
|
|
7281
|
+
<kendo-dropdownlist
|
|
7282
|
+
class="k-dropdown"
|
|
7283
|
+
#dropdownlist
|
|
7284
|
+
[size]="size"
|
|
7285
|
+
kendoGridPagerDropDown
|
|
7286
|
+
[tabindex]="0"
|
|
7287
|
+
kendoGridFocusable
|
|
7288
|
+
[data]="pageSizes"
|
|
7289
|
+
textField="text"
|
|
7290
|
+
valueField="value"
|
|
7291
|
+
[valuePrimitive]="true"
|
|
7292
|
+
[value]="pageSize"
|
|
7293
|
+
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
7294
|
+
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
7295
|
+
`, 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 });
|
|
7296
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
7297
|
+
type: Component,
|
|
7298
|
+
args: [{
|
|
7299
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7300
|
+
selector: 'kendo-pager-page-sizes',
|
|
7301
|
+
template: `
|
|
7302
|
+
<kendo-dropdownlist
|
|
7303
|
+
class="k-dropdown"
|
|
7304
|
+
#dropdownlist
|
|
7305
|
+
[size]="size"
|
|
7306
|
+
kendoGridPagerDropDown
|
|
7307
|
+
[tabindex]="0"
|
|
7308
|
+
kendoGridFocusable
|
|
7309
|
+
[data]="pageSizes"
|
|
7310
|
+
textField="text"
|
|
7311
|
+
valueField="value"
|
|
7312
|
+
[valuePrimitive]="true"
|
|
7313
|
+
[value]="pageSize"
|
|
7314
|
+
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
7315
|
+
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
7316
|
+
`
|
|
7317
|
+
}]
|
|
7318
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: NavigationService }]; }, propDecorators: { pageSizes: [{
|
|
7319
|
+
type: Input
|
|
7320
|
+
}], classes: [{
|
|
7321
|
+
type: HostBinding,
|
|
7322
|
+
args: ['class.k-pager-sizes']
|
|
7323
|
+
}, {
|
|
7324
|
+
type: HostBinding,
|
|
7325
|
+
args: ['class.k-label']
|
|
7326
|
+
}] } });
|
|
7327
|
+
|
|
7328
|
+
/**
|
|
7329
|
+
* Displays numeric buttons to enable navigation between the pages ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7330
|
+
*/
|
|
7331
|
+
class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
7332
|
+
constructor(ctx, cd, pagerContext) {
|
|
7333
|
+
super(ctx, pagerContext, cd);
|
|
7334
|
+
this.pagerContext = pagerContext;
|
|
7335
|
+
}
|
|
7336
|
+
/**
|
|
7337
|
+
* @hidden
|
|
7338
|
+
*
|
|
7339
|
+
* @readonly
|
|
7340
|
+
* @type {number[]}
|
|
7341
|
+
* @memberOf PagerNumericButtonsComponent
|
|
7342
|
+
*/
|
|
7343
|
+
get buttons() {
|
|
7344
|
+
const result = [];
|
|
7345
|
+
for (let idx = this.start; idx <= this.end; idx++) {
|
|
7346
|
+
result.push(idx);
|
|
7347
|
+
}
|
|
7348
|
+
return result;
|
|
7349
|
+
}
|
|
7350
|
+
/**
|
|
7351
|
+
* @hidden
|
|
7352
|
+
*/
|
|
7353
|
+
get end() {
|
|
7354
|
+
return Math.min((this.start + this.buttonCount) - 1, this.totalPages);
|
|
7355
|
+
}
|
|
7356
|
+
/**
|
|
7357
|
+
* @hidden
|
|
7358
|
+
*/
|
|
7359
|
+
get start() {
|
|
7360
|
+
const page = this.currentPage;
|
|
7361
|
+
const buttonCount = this.buttonCount;
|
|
7362
|
+
if (page > buttonCount) {
|
|
7363
|
+
const reminder = (page % buttonCount);
|
|
7364
|
+
return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;
|
|
7365
|
+
}
|
|
7366
|
+
return 1;
|
|
7367
|
+
}
|
|
7368
|
+
/**
|
|
7369
|
+
* @hidden
|
|
7370
|
+
*/
|
|
7371
|
+
pageLabel(num) {
|
|
7372
|
+
const pageText = this.textFor('pagerPage');
|
|
7373
|
+
if (pageText) {
|
|
7374
|
+
return pageText + ' ' + num;
|
|
7375
|
+
}
|
|
7376
|
+
return num.toString();
|
|
7377
|
+
}
|
|
7378
|
+
/**
|
|
7379
|
+
* @hidden
|
|
7380
|
+
*/
|
|
7381
|
+
onSelectChange(e) {
|
|
7382
|
+
const target = e.target;
|
|
7383
|
+
const valueAsNumber = Number(target.value);
|
|
7384
|
+
if (!Number.isNaN(valueAsNumber)) {
|
|
7385
|
+
this.changePage(valueAsNumber - 1);
|
|
7386
|
+
}
|
|
7387
|
+
else {
|
|
7388
|
+
if (target.value === 'previousButtons') {
|
|
7389
|
+
this.changePage(this.start - 2);
|
|
7390
|
+
}
|
|
7391
|
+
else {
|
|
7392
|
+
this.changePage(this.end);
|
|
7393
|
+
}
|
|
7394
|
+
}
|
|
7395
|
+
}
|
|
7396
|
+
onChanges({ total, skip, pageSize }) {
|
|
7397
|
+
this.total = total;
|
|
7398
|
+
this.skip = skip;
|
|
7399
|
+
this.pageSize = pageSize;
|
|
7400
|
+
this.cd.markForCheck();
|
|
7401
|
+
}
|
|
7402
|
+
}
|
|
7403
|
+
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 });
|
|
7404
|
+
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: `
|
|
7405
|
+
<select
|
|
7406
|
+
#select
|
|
7267
7407
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
7268
7408
|
kendoGridFocusable
|
|
7409
|
+
[style.display]="'none'"
|
|
7269
7410
|
[attr.title]="textFor('selectPage')"
|
|
7270
7411
|
[attr.aria-label]="textFor('selectPage')"
|
|
7271
7412
|
[ngClass]="{
|
|
@@ -7292,7 +7433,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
7292
7433
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
7293
7434
|
</option>
|
|
7294
7435
|
</select>
|
|
7295
|
-
<div class="k-pager-numbers">
|
|
7436
|
+
<div class="k-pager-numbers" #numbers>
|
|
7296
7437
|
<button *ngIf="start > 1"
|
|
7297
7438
|
type="button"
|
|
7298
7439
|
kendoGridFocusable
|
|
@@ -7342,8 +7483,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7342
7483
|
selector: 'kendo-pager-numeric-buttons',
|
|
7343
7484
|
template: `
|
|
7344
7485
|
<select
|
|
7486
|
+
#select
|
|
7345
7487
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
7346
7488
|
kendoGridFocusable
|
|
7489
|
+
[style.display]="'none'"
|
|
7347
7490
|
[attr.title]="textFor('selectPage')"
|
|
7348
7491
|
[attr.aria-label]="textFor('selectPage')"
|
|
7349
7492
|
[ngClass]="{
|
|
@@ -7370,7 +7513,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7370
7513
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
7371
7514
|
</option>
|
|
7372
7515
|
</select>
|
|
7373
|
-
<div class="k-pager-numbers">
|
|
7516
|
+
<div class="k-pager-numbers" #numbers>
|
|
7374
7517
|
<button *ngIf="start > 1"
|
|
7375
7518
|
type="button"
|
|
7376
7519
|
kendoGridFocusable
|
|
@@ -7414,13 +7557,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7414
7557
|
</div>
|
|
7415
7558
|
`
|
|
7416
7559
|
}]
|
|
7417
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: {
|
|
7418
|
-
type:
|
|
7419
|
-
args: ['
|
|
7560
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { selectElement: [{
|
|
7561
|
+
type: ViewChild,
|
|
7562
|
+
args: ['select', { read: ElementRef }]
|
|
7563
|
+
}], numbersElement: [{
|
|
7564
|
+
type: ViewChild,
|
|
7565
|
+
args: ['numbers', { read: ElementRef }]
|
|
7420
7566
|
}], buttonCount: [{
|
|
7421
7567
|
type: Input
|
|
7422
7568
|
}] } });
|
|
7423
7569
|
|
|
7570
|
+
/**
|
|
7571
|
+
* Displays buttons for navigating to the first and to the previous page ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7572
|
+
*/
|
|
7573
|
+
class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
7574
|
+
constructor(ctx, pagerContext, cd, navigationService) {
|
|
7575
|
+
super(ctx, pagerContext, cd);
|
|
7576
|
+
this.navigationService = navigationService;
|
|
7577
|
+
}
|
|
7578
|
+
/**
|
|
7579
|
+
* @hidden
|
|
7580
|
+
*
|
|
7581
|
+
* @readonly
|
|
7582
|
+
* @type {boolean}
|
|
7583
|
+
* @memberOf PagerPrevButtonsComponent
|
|
7584
|
+
*/
|
|
7585
|
+
get disabled() {
|
|
7586
|
+
return this.currentPage === 1 || !this.total;
|
|
7587
|
+
}
|
|
7588
|
+
onChanges({ total, skip, pageSize }) {
|
|
7589
|
+
this.total = total;
|
|
7590
|
+
this.skip = skip;
|
|
7591
|
+
this.pageSize = pageSize;
|
|
7592
|
+
this.cd.markForCheck();
|
|
7593
|
+
}
|
|
7594
|
+
}
|
|
7595
|
+
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 });
|
|
7596
|
+
PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
|
|
7597
|
+
<button
|
|
7598
|
+
[kendoGridFocusable]="!disabled"
|
|
7599
|
+
kendoButton
|
|
7600
|
+
type="button"
|
|
7601
|
+
[title]="textFor('pagerFirstPage')"
|
|
7602
|
+
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7603
|
+
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7604
|
+
role="button"
|
|
7605
|
+
[icon]="prevArrowIcons[0]"
|
|
7606
|
+
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7607
|
+
class="k-pager-nav k-pager-first"
|
|
7608
|
+
[disabled]="disabled"
|
|
7609
|
+
fillMode="flat"
|
|
7610
|
+
rounded="none"
|
|
7611
|
+
[size]="size">
|
|
7612
|
+
</button>
|
|
7613
|
+
<button
|
|
7614
|
+
kendoButton
|
|
7615
|
+
[kendoGridFocusable]="!disabled"
|
|
7616
|
+
type="button"
|
|
7617
|
+
class="k-pager-nav"
|
|
7618
|
+
[disabled]="disabled"
|
|
7619
|
+
[icon]="prevArrowIcons[1]"
|
|
7620
|
+
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7621
|
+
fillMode="flat"
|
|
7622
|
+
rounded="none"
|
|
7623
|
+
[size]="size"
|
|
7624
|
+
[title]="textFor('pagerPreviousPage')"
|
|
7625
|
+
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7626
|
+
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7627
|
+
</button>
|
|
7628
|
+
`, 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 });
|
|
7629
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
7630
|
+
type: Component,
|
|
7631
|
+
args: [{
|
|
7632
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7633
|
+
selector: 'kendo-pager-prev-buttons',
|
|
7634
|
+
template: `
|
|
7635
|
+
<button
|
|
7636
|
+
[kendoGridFocusable]="!disabled"
|
|
7637
|
+
kendoButton
|
|
7638
|
+
type="button"
|
|
7639
|
+
[title]="textFor('pagerFirstPage')"
|
|
7640
|
+
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7641
|
+
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7642
|
+
role="button"
|
|
7643
|
+
[icon]="prevArrowIcons[0]"
|
|
7644
|
+
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7645
|
+
class="k-pager-nav k-pager-first"
|
|
7646
|
+
[disabled]="disabled"
|
|
7647
|
+
fillMode="flat"
|
|
7648
|
+
rounded="none"
|
|
7649
|
+
[size]="size">
|
|
7650
|
+
</button>
|
|
7651
|
+
<button
|
|
7652
|
+
kendoButton
|
|
7653
|
+
[kendoGridFocusable]="!disabled"
|
|
7654
|
+
type="button"
|
|
7655
|
+
class="k-pager-nav"
|
|
7656
|
+
[disabled]="disabled"
|
|
7657
|
+
[icon]="prevArrowIcons[1]"
|
|
7658
|
+
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7659
|
+
fillMode="flat"
|
|
7660
|
+
rounded="none"
|
|
7661
|
+
[size]="size"
|
|
7662
|
+
[title]="textFor('pagerPreviousPage')"
|
|
7663
|
+
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7664
|
+
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7665
|
+
</button>
|
|
7666
|
+
`
|
|
7667
|
+
}]
|
|
7668
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7669
|
+
|
|
7424
7670
|
/**
|
|
7425
7671
|
* @hidden
|
|
7426
7672
|
*/
|
|
@@ -7602,286 +7848,66 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
7602
7848
|
fillMode="flat"
|
|
7603
7849
|
rounded="none"
|
|
7604
7850
|
class="k-pager-nav"
|
|
7605
|
-
[disabled]="disabled"
|
|
7606
|
-
[title]="textFor('pagerNextPage')"
|
|
7607
|
-
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7608
|
-
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7609
|
-
</button>
|
|
7610
|
-
<button
|
|
7611
|
-
kendoButton
|
|
7612
|
-
[kendoGridFocusable]="!disabled"
|
|
7613
|
-
type="button"
|
|
7614
|
-
[size]="size"
|
|
7615
|
-
[icon]="nextArrowIcons[1]"
|
|
7616
|
-
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7617
|
-
fillMode="flat"
|
|
7618
|
-
rounded="none"
|
|
7619
|
-
class="k-pager-nav k-pager-last"
|
|
7620
|
-
[disabled]="disabled"
|
|
7621
|
-
[title]="textFor('pagerLastPage')"
|
|
7622
|
-
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7623
|
-
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7624
|
-
</button>
|
|
7625
|
-
`, 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 });
|
|
7626
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
7627
|
-
type: Component,
|
|
7628
|
-
args: [{
|
|
7629
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7630
|
-
selector: 'kendo-pager-next-buttons',
|
|
7631
|
-
template: `
|
|
7632
|
-
<button
|
|
7633
|
-
kendoButton
|
|
7634
|
-
[kendoGridFocusable]="!disabled"
|
|
7635
|
-
type="button"
|
|
7636
|
-
[size]="size"
|
|
7637
|
-
[icon]="nextArrowIcons[0]"
|
|
7638
|
-
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7639
|
-
fillMode="flat"
|
|
7640
|
-
rounded="none"
|
|
7641
|
-
class="k-pager-nav"
|
|
7642
|
-
[disabled]="disabled"
|
|
7643
|
-
[title]="textFor('pagerNextPage')"
|
|
7644
|
-
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7645
|
-
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7646
|
-
</button>
|
|
7647
|
-
<button
|
|
7648
|
-
kendoButton
|
|
7649
|
-
[kendoGridFocusable]="!disabled"
|
|
7650
|
-
type="button"
|
|
7651
|
-
[size]="size"
|
|
7652
|
-
[icon]="nextArrowIcons[1]"
|
|
7653
|
-
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7654
|
-
fillMode="flat"
|
|
7655
|
-
rounded="none"
|
|
7656
|
-
class="k-pager-nav k-pager-last"
|
|
7657
|
-
[disabled]="disabled"
|
|
7658
|
-
[title]="textFor('pagerLastPage')"
|
|
7659
|
-
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7660
|
-
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7661
|
-
</button>
|
|
7662
|
-
`
|
|
7663
|
-
}]
|
|
7664
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7665
|
-
|
|
7666
|
-
// eslint-disable no-access-missing-member
|
|
7667
|
-
/**
|
|
7668
|
-
* Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7669
|
-
*/
|
|
7670
|
-
class PagerInfoComponent extends PagerElementComponent {
|
|
7671
|
-
constructor(ctx, cd, pagerContext) {
|
|
7672
|
-
super(ctx, pagerContext, cd);
|
|
7673
|
-
this.pagerContext = pagerContext;
|
|
7674
|
-
}
|
|
7675
|
-
/**
|
|
7676
|
-
* @hidden
|
|
7677
|
-
*
|
|
7678
|
-
* @readonly
|
|
7679
|
-
* @type {number}
|
|
7680
|
-
* @memberOf PagerInfoComponent
|
|
7681
|
-
*/
|
|
7682
|
-
get maxItems() {
|
|
7683
|
-
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
7684
|
-
}
|
|
7685
|
-
/**
|
|
7686
|
-
* @hidden
|
|
7687
|
-
*
|
|
7688
|
-
* @readonly
|
|
7689
|
-
* @type {number}
|
|
7690
|
-
* @memberOf PagerInfoComponent
|
|
7691
|
-
*/
|
|
7692
|
-
get currentPageText() {
|
|
7693
|
-
return this.total ?
|
|
7694
|
-
(this.currentPage - 1) * this.pageSize + 1 :
|
|
7695
|
-
0;
|
|
7696
|
-
}
|
|
7697
|
-
/**
|
|
7698
|
-
* @hidden
|
|
7699
|
-
*
|
|
7700
|
-
* @readonly
|
|
7701
|
-
* @type {boolean}
|
|
7702
|
-
* @memberOf PagerInfoComponent
|
|
7703
|
-
*/
|
|
7704
|
-
get classes() {
|
|
7705
|
-
return true;
|
|
7706
|
-
}
|
|
7707
|
-
onChanges({ total, skip, pageSize }) {
|
|
7708
|
-
this.total = total;
|
|
7709
|
-
this.skip = skip;
|
|
7710
|
-
this.pageSize = pageSize;
|
|
7711
|
-
this.cd.markForCheck();
|
|
7712
|
-
}
|
|
7713
|
-
}
|
|
7714
|
-
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 });
|
|
7715
|
-
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 });
|
|
7716
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
7717
|
-
type: Component,
|
|
7718
|
-
args: [{
|
|
7719
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7720
|
-
selector: 'kendo-pager-info',
|
|
7721
|
-
template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
|
|
7722
|
-
}]
|
|
7723
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
|
|
7724
|
-
type: HostBinding,
|
|
7725
|
-
args: ["class.k-pager-info"]
|
|
7726
|
-
}, {
|
|
7727
|
-
type: HostBinding,
|
|
7728
|
-
args: ["class.k-label"]
|
|
7729
|
-
}] } });
|
|
7730
|
-
|
|
7731
|
-
/**
|
|
7732
|
-
* @hidden
|
|
7733
|
-
*/
|
|
7734
|
-
class PagerDropDownListDirective {
|
|
7735
|
-
constructor(host) {
|
|
7736
|
-
this.host = host;
|
|
7737
|
-
this.keydownHandler = (e) => {
|
|
7738
|
-
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
7739
|
-
e.stopPropagation();
|
|
7740
|
-
this.host.toggle(false);
|
|
7741
|
-
}
|
|
7742
|
-
};
|
|
7743
|
-
}
|
|
7744
|
-
ngAfterViewInit() {
|
|
7745
|
-
const wrapperElement = this.host.wrapper.nativeElement;
|
|
7746
|
-
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
7747
|
-
}
|
|
7748
|
-
ngOnDestroy() {
|
|
7749
|
-
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
7750
|
-
}
|
|
7751
|
-
}
|
|
7752
|
-
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 });
|
|
7753
|
-
PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
|
|
7754
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
|
|
7755
|
-
type: Directive,
|
|
7756
|
-
args: [{ selector: '[kendoGridPagerDropDown]' }]
|
|
7757
|
-
}], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
|
|
7758
|
-
|
|
7759
|
-
/**
|
|
7760
|
-
* Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7761
|
-
*/
|
|
7762
|
-
class PagerPageSizesComponent extends PagerElementComponent {
|
|
7763
|
-
constructor(ctx, cd, pagerContext, navigationService) {
|
|
7764
|
-
super(ctx, pagerContext, cd);
|
|
7765
|
-
this.pagerContext = pagerContext;
|
|
7766
|
-
this.navigationService = navigationService;
|
|
7767
|
-
this._pageSizes = [];
|
|
7768
|
-
}
|
|
7769
|
-
/**
|
|
7770
|
-
* The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
|
|
7771
|
-
* ([see example]({% slug paging_grid %}#toc-pager-templates))
|
|
7772
|
-
*/
|
|
7773
|
-
set pageSizes(pageSizes) {
|
|
7774
|
-
let normalizedItems = [];
|
|
7775
|
-
pageSizes.forEach(item => {
|
|
7776
|
-
if (typeof item === 'number') {
|
|
7777
|
-
normalizedItems.push({
|
|
7778
|
-
text: item.toString(),
|
|
7779
|
-
value: item
|
|
7780
|
-
});
|
|
7781
|
-
}
|
|
7782
|
-
else {
|
|
7783
|
-
normalizedItems.push(item);
|
|
7784
|
-
}
|
|
7785
|
-
});
|
|
7786
|
-
if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
|
|
7787
|
-
normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
|
|
7788
|
-
}
|
|
7789
|
-
this._pageSizes = normalizedItems;
|
|
7790
|
-
}
|
|
7791
|
-
get pageSizes() {
|
|
7792
|
-
return this._pageSizes;
|
|
7793
|
-
}
|
|
7794
|
-
/**
|
|
7795
|
-
* @hidden
|
|
7796
|
-
*
|
|
7797
|
-
* @readonly
|
|
7798
|
-
*/
|
|
7799
|
-
get classes() {
|
|
7800
|
-
return true;
|
|
7801
|
-
}
|
|
7802
|
-
/**
|
|
7803
|
-
* @hidden
|
|
7804
|
-
*
|
|
7805
|
-
* @readonly
|
|
7806
|
-
*/
|
|
7807
|
-
get showInitialPageSize() {
|
|
7808
|
-
return this.pageSizes
|
|
7809
|
-
.filter(item => {
|
|
7810
|
-
if (typeof item.value === 'number') {
|
|
7811
|
-
return item.value === Number(this.pageSize);
|
|
7812
|
-
}
|
|
7813
|
-
return this.total === Number(this.pageSize);
|
|
7814
|
-
})
|
|
7815
|
-
.length === 0;
|
|
7816
|
-
}
|
|
7817
|
-
/**
|
|
7818
|
-
* @hidden
|
|
7819
|
-
*/
|
|
7820
|
-
pageSizeChange(value) {
|
|
7821
|
-
this.pageSize = typeof value === 'number' ? value : this.total;
|
|
7822
|
-
this.pagerContext.changePageSize(this.pageSize);
|
|
7823
|
-
}
|
|
7824
|
-
/**
|
|
7825
|
-
* @hidden
|
|
7826
|
-
*/
|
|
7827
|
-
getValue(page) {
|
|
7828
|
-
return typeof page.value === 'number' ? page.value : this.total;
|
|
7829
|
-
}
|
|
7830
|
-
onChanges({ total, skip, pageSize }) {
|
|
7831
|
-
this.total = total;
|
|
7832
|
-
this.skip = skip;
|
|
7833
|
-
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
7834
|
-
this.cd.markForCheck();
|
|
7835
|
-
}
|
|
7836
|
-
}
|
|
7837
|
-
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 });
|
|
7838
|
-
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: `
|
|
7839
|
-
<kendo-dropdownlist
|
|
7840
|
-
class="k-dropdown"
|
|
7841
|
-
#dropdownlist
|
|
7851
|
+
[disabled]="disabled"
|
|
7852
|
+
[title]="textFor('pagerNextPage')"
|
|
7853
|
+
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7854
|
+
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7855
|
+
</button>
|
|
7856
|
+
<button
|
|
7857
|
+
kendoButton
|
|
7858
|
+
[kendoGridFocusable]="!disabled"
|
|
7859
|
+
type="button"
|
|
7842
7860
|
[size]="size"
|
|
7843
|
-
|
|
7844
|
-
[
|
|
7845
|
-
|
|
7846
|
-
|
|
7847
|
-
|
|
7848
|
-
|
|
7849
|
-
[
|
|
7850
|
-
[
|
|
7851
|
-
(
|
|
7852
|
-
|
|
7853
|
-
`, isInline: true, components: [{ type:
|
|
7854
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type:
|
|
7861
|
+
[icon]="nextArrowIcons[1]"
|
|
7862
|
+
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7863
|
+
fillMode="flat"
|
|
7864
|
+
rounded="none"
|
|
7865
|
+
class="k-pager-nav k-pager-last"
|
|
7866
|
+
[disabled]="disabled"
|
|
7867
|
+
[title]="textFor('pagerLastPage')"
|
|
7868
|
+
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7869
|
+
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7870
|
+
</button>
|
|
7871
|
+
`, 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 });
|
|
7872
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
7855
7873
|
type: Component,
|
|
7856
7874
|
args: [{
|
|
7857
7875
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7858
|
-
selector: 'kendo-pager-
|
|
7876
|
+
selector: 'kendo-pager-next-buttons',
|
|
7859
7877
|
template: `
|
|
7860
|
-
<
|
|
7861
|
-
|
|
7862
|
-
|
|
7878
|
+
<button
|
|
7879
|
+
kendoButton
|
|
7880
|
+
[kendoGridFocusable]="!disabled"
|
|
7881
|
+
type="button"
|
|
7863
7882
|
[size]="size"
|
|
7864
|
-
|
|
7865
|
-
[
|
|
7866
|
-
|
|
7867
|
-
|
|
7868
|
-
|
|
7869
|
-
|
|
7870
|
-
[
|
|
7871
|
-
[
|
|
7872
|
-
(
|
|
7873
|
-
|
|
7883
|
+
[icon]="nextArrowIcons[0]"
|
|
7884
|
+
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7885
|
+
fillMode="flat"
|
|
7886
|
+
rounded="none"
|
|
7887
|
+
class="k-pager-nav"
|
|
7888
|
+
[disabled]="disabled"
|
|
7889
|
+
[title]="textFor('pagerNextPage')"
|
|
7890
|
+
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7891
|
+
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7892
|
+
</button>
|
|
7893
|
+
<button
|
|
7894
|
+
kendoButton
|
|
7895
|
+
[kendoGridFocusable]="!disabled"
|
|
7896
|
+
type="button"
|
|
7897
|
+
[size]="size"
|
|
7898
|
+
[icon]="nextArrowIcons[1]"
|
|
7899
|
+
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7900
|
+
fillMode="flat"
|
|
7901
|
+
rounded="none"
|
|
7902
|
+
class="k-pager-nav k-pager-last"
|
|
7903
|
+
[disabled]="disabled"
|
|
7904
|
+
[title]="textFor('pagerLastPage')"
|
|
7905
|
+
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7906
|
+
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7907
|
+
</button>
|
|
7874
7908
|
`
|
|
7875
7909
|
}]
|
|
7876
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type:
|
|
7877
|
-
type: Input
|
|
7878
|
-
}], classes: [{
|
|
7879
|
-
type: HostBinding,
|
|
7880
|
-
args: ['class.k-pager-sizes']
|
|
7881
|
-
}, {
|
|
7882
|
-
type: HostBinding,
|
|
7883
|
-
args: ['class.k-label']
|
|
7884
|
-
}] } });
|
|
7910
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7885
7911
|
|
|
7886
7912
|
/**
|
|
7887
7913
|
* @hidden
|
|
@@ -7912,18 +7938,33 @@ class PagerComponent {
|
|
|
7912
7938
|
if (this.template || !element) {
|
|
7913
7939
|
return;
|
|
7914
7940
|
}
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
|
|
7925
|
-
|
|
7926
|
-
|
|
7941
|
+
this.zone.runOutsideAngular(() => {
|
|
7942
|
+
setTimeout(() => {
|
|
7943
|
+
const width = element.offsetWidth;
|
|
7944
|
+
if (this.numericButtons) {
|
|
7945
|
+
const selectElement = this.numericButtons.selectElement.nativeElement;
|
|
7946
|
+
const numbersElement = this.numericButtons.numbersElement.nativeElement;
|
|
7947
|
+
this.renderer.removeStyle(numbersElement, 'display');
|
|
7948
|
+
this.renderer.setStyle(selectElement, 'display', 'none');
|
|
7949
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
7950
|
+
this.renderer.removeStyle(selectElement, 'display');
|
|
7951
|
+
this.renderer.setStyle(numbersElement, 'display', 'none');
|
|
7952
|
+
}
|
|
7953
|
+
}
|
|
7954
|
+
if (this.pagerInfo) {
|
|
7955
|
+
this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
7956
|
+
if (width < RESPONSIVE_BREAKPOINT_LARGE) {
|
|
7957
|
+
this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
|
|
7958
|
+
}
|
|
7959
|
+
}
|
|
7960
|
+
if (this.pagerPageSizes) {
|
|
7961
|
+
this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
7962
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
7963
|
+
this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
|
|
7964
|
+
}
|
|
7965
|
+
}
|
|
7966
|
+
});
|
|
7967
|
+
});
|
|
7927
7968
|
};
|
|
7928
7969
|
}
|
|
7929
7970
|
set options(value) {
|
|
@@ -8042,12 +8083,10 @@ class PagerComponent {
|
|
|
8042
8083
|
}
|
|
8043
8084
|
const changesInTemplate = changes['template'];
|
|
8044
8085
|
if (changesInTemplate) {
|
|
8045
|
-
|
|
8046
|
-
changesInTemplate.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
|
|
8086
|
+
changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
|
|
8047
8087
|
}
|
|
8048
8088
|
if (changes['options']) {
|
|
8049
|
-
|
|
8050
|
-
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
|
|
8089
|
+
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
|
|
8051
8090
|
}
|
|
8052
8091
|
}
|
|
8053
8092
|
ngOnDestroy() {
|
|
@@ -8073,11 +8112,6 @@ class PagerComponent {
|
|
|
8073
8112
|
}
|
|
8074
8113
|
});
|
|
8075
8114
|
}
|
|
8076
|
-
clearResponsiveClasses() {
|
|
8077
|
-
const element = this.element.nativeElement;
|
|
8078
|
-
this.renderer.removeClass(element, 'k-pager-mobile-sm');
|
|
8079
|
-
this.renderer.removeClass(element, 'k-pager-mobile-md');
|
|
8080
|
-
}
|
|
8081
8115
|
shouldTriggerPageChange(target, condition) {
|
|
8082
8116
|
return this.navigationService.pagerEnabled &&
|
|
8083
8117
|
target === this.element.nativeElement &&
|
|
@@ -8100,6 +8134,18 @@ class PagerComponent {
|
|
|
8100
8134
|
this.cellContext.focusGroup = this.focusGroup;
|
|
8101
8135
|
}
|
|
8102
8136
|
}
|
|
8137
|
+
clearResponsiveStyling() {
|
|
8138
|
+
this.zone.runOutsideAngular(() => {
|
|
8139
|
+
setTimeout(() => {
|
|
8140
|
+
if (this.numericButtons) {
|
|
8141
|
+
this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
|
|
8142
|
+
this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
|
|
8143
|
+
}
|
|
8144
|
+
this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
8145
|
+
this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
8146
|
+
});
|
|
8147
|
+
});
|
|
8148
|
+
}
|
|
8103
8149
|
}
|
|
8104
8150
|
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 });
|
|
8105
8151
|
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: [{
|
|
@@ -8113,7 +8159,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
8113
8159
|
provide: FocusGroup,
|
|
8114
8160
|
deps: [FocusRoot],
|
|
8115
8161
|
useClass: FocusGroup
|
|
8116
|
-
}], usesOnChanges: true, ngImport: i0, template: `
|
|
8162
|
+
}], 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: `
|
|
8117
8163
|
<div
|
|
8118
8164
|
*ngIf="navigationService.pagerEnabled"
|
|
8119
8165
|
class="k-sr-only"
|
|
@@ -8127,20 +8173,21 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
8127
8173
|
[ngTemplateOutletContext]="templateContext">
|
|
8128
8174
|
</ng-container>
|
|
8129
8175
|
<ng-container *ngIf="!template?.templateRef">
|
|
8130
|
-
<
|
|
8131
|
-
|
|
8132
|
-
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
|
|
8176
|
+
<div class="k-pager-numbers-wrap">
|
|
8177
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
8178
|
+
<kendo-pager-numeric-buttons
|
|
8179
|
+
[size]="size"
|
|
8180
|
+
*ngIf="settings.type === 'numeric'"
|
|
8181
|
+
[buttonCount]="settings.buttonCount">
|
|
8182
|
+
</kendo-pager-numeric-buttons>
|
|
8183
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
8184
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
8185
|
+
</div>
|
|
8138
8186
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
8139
8187
|
<kendo-pager-page-sizes
|
|
8140
8188
|
[size]="size"
|
|
8141
8189
|
*ngIf="settings.pageSizes"
|
|
8142
8190
|
[pageSizes]="$any(settings.pageSizes)"
|
|
8143
|
-
#pageSizes
|
|
8144
8191
|
></kendo-pager-page-sizes>
|
|
8145
8192
|
</ng-container>
|
|
8146
8193
|
<div
|
|
@@ -8182,20 +8229,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8182
8229
|
[ngTemplateOutletContext]="templateContext">
|
|
8183
8230
|
</ng-container>
|
|
8184
8231
|
<ng-container *ngIf="!template?.templateRef">
|
|
8185
|
-
<
|
|
8186
|
-
|
|
8187
|
-
|
|
8188
|
-
|
|
8189
|
-
|
|
8190
|
-
|
|
8191
|
-
|
|
8192
|
-
|
|
8232
|
+
<div class="k-pager-numbers-wrap">
|
|
8233
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
8234
|
+
<kendo-pager-numeric-buttons
|
|
8235
|
+
[size]="size"
|
|
8236
|
+
*ngIf="settings.type === 'numeric'"
|
|
8237
|
+
[buttonCount]="settings.buttonCount">
|
|
8238
|
+
</kendo-pager-numeric-buttons>
|
|
8239
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
8240
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
8241
|
+
</div>
|
|
8193
8242
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
8194
8243
|
<kendo-pager-page-sizes
|
|
8195
8244
|
[size]="size"
|
|
8196
8245
|
*ngIf="settings.pageSizes"
|
|
8197
8246
|
[pageSizes]="$any(settings.pageSizes)"
|
|
8198
|
-
#pageSizes
|
|
8199
8247
|
></kendo-pager-page-sizes>
|
|
8200
8248
|
</ng-container>
|
|
8201
8249
|
<div
|
|
@@ -8215,7 +8263,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8215
8263
|
type: Inject,
|
|
8216
8264
|
args: [CELL_CONTEXT]
|
|
8217
8265
|
}] }, { type: FocusRoot }, { type: FocusGroup }];
|
|
8218
|
-
}, propDecorators: {
|
|
8266
|
+
}, propDecorators: { pagerInfo: [{
|
|
8267
|
+
type: ViewChild,
|
|
8268
|
+
args: [PagerInfoComponent, { read: ElementRef }]
|
|
8269
|
+
}], pagerPageSizes: [{
|
|
8270
|
+
type: ViewChild,
|
|
8271
|
+
args: [PagerPageSizesComponent, { read: ElementRef }]
|
|
8272
|
+
}], numericButtons: [{
|
|
8273
|
+
type: ViewChild,
|
|
8274
|
+
args: [PagerNumericButtonsComponent]
|
|
8275
|
+
}], total: [{
|
|
8219
8276
|
type: Input
|
|
8220
8277
|
}], skip: [{
|
|
8221
8278
|
type: Input
|
|
@@ -9564,7 +9621,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
9564
9621
|
(keydown.shift.tab)="onShiftTab($event)">
|
|
9565
9622
|
</kendo-dropdownlist>
|
|
9566
9623
|
<ng-content></ng-content>
|
|
9567
|
-
`, 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"] }] });
|
|
9624
|
+
`, 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"] }] });
|
|
9568
9625
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
|
|
9569
9626
|
type: Component,
|
|
9570
9627
|
args: [{
|
|
@@ -9760,7 +9817,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
9760
9817
|
[filter]="filter"
|
|
9761
9818
|
[menuTabbingService]="menuTabbingService">
|
|
9762
9819
|
</kendo-grid-string-filter-menu-input>
|
|
9763
|
-
`, 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"] }] });
|
|
9820
|
+
`, 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"] }] });
|
|
9764
9821
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
|
|
9765
9822
|
type: Component,
|
|
9766
9823
|
args: [{
|
|
@@ -10166,7 +10223,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
10166
10223
|
[menuTabbingService]="menuTabbingService"
|
|
10167
10224
|
>
|
|
10168
10225
|
</kendo-grid-numeric-filter-menu-input>
|
|
10169
|
-
`, 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"] }] });
|
|
10226
|
+
`, 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"] }] });
|
|
10170
10227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
|
|
10171
10228
|
type: Component,
|
|
10172
10229
|
args: [{
|
|
@@ -10621,7 +10678,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
10621
10678
|
[menuTabbingService]="menuTabbingService"
|
|
10622
10679
|
>
|
|
10623
10680
|
</kendo-grid-date-filter-menu-input>
|
|
10624
|
-
`, 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"] }] });
|
|
10681
|
+
`, 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"] }] });
|
|
10625
10682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
|
|
10626
10683
|
type: Component,
|
|
10627
10684
|
args: [{
|
|
@@ -11097,10 +11154,10 @@ class FilterMenuContainerComponent {
|
|
|
11097
11154
|
e.preventDefault();
|
|
11098
11155
|
if (buttonType === 'reset') {
|
|
11099
11156
|
// eslint-disable-next-line no-unused-expressions
|
|
11100
|
-
this.
|
|
11157
|
+
this.menuTabbingService.firstFocusable.focus();
|
|
11101
11158
|
}
|
|
11102
11159
|
else {
|
|
11103
|
-
this.menuTabbingService.firstFocusable.focus();
|
|
11160
|
+
this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.resetButton.nativeElement.focus();
|
|
11104
11161
|
}
|
|
11105
11162
|
}
|
|
11106
11163
|
}
|
|
@@ -11226,15 +11283,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11226
11283
|
args: ['filterButton', { static: false }]
|
|
11227
11284
|
}] } });
|
|
11228
11285
|
|
|
11286
|
+
let id$3 = 0;
|
|
11287
|
+
const getId$1 = (gridId) => `${gridId}-filter-menu-${id$3++}`;
|
|
11229
11288
|
/**
|
|
11230
11289
|
* @hidden
|
|
11231
11290
|
*/
|
|
11232
11291
|
class FilterMenuComponent {
|
|
11233
|
-
constructor(filterService, popupService, ctx, navigationService) {
|
|
11292
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, idService) {
|
|
11234
11293
|
this.filterService = filterService;
|
|
11235
11294
|
this.popupService = popupService;
|
|
11236
11295
|
this.ctx = ctx;
|
|
11237
11296
|
this.navigationService = navigationService;
|
|
11297
|
+
this.renderer = renderer;
|
|
11298
|
+
this.cdr = cdr;
|
|
11299
|
+
this.idService = idService;
|
|
11238
11300
|
this.filterIcon = filterIcon;
|
|
11239
11301
|
this.tabIndex = '-1';
|
|
11240
11302
|
}
|
|
@@ -11249,9 +11311,36 @@ class FilterMenuComponent {
|
|
|
11249
11311
|
const columnName = this.column.title || this.column.field;
|
|
11250
11312
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
|
11251
11313
|
}
|
|
11314
|
+
/**
|
|
11315
|
+
* @hidden
|
|
11316
|
+
*/
|
|
11317
|
+
get isNavigable() {
|
|
11318
|
+
return this.navigationService.tableEnabled;
|
|
11319
|
+
}
|
|
11252
11320
|
toggle(anchor, template) {
|
|
11321
|
+
var _a;
|
|
11253
11322
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef);
|
|
11254
|
-
|
|
11323
|
+
// Needed as changes to 'popupRef' are not reflected
|
|
11324
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
11325
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11326
|
+
if (this.popupRef) {
|
|
11327
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
11328
|
+
this.popupRef = null;
|
|
11329
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11330
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
11331
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
11332
|
+
});
|
|
11333
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
|
|
11334
|
+
if (popupAriaElement) {
|
|
11335
|
+
const popupId = getId$1((_a = this.idService) === null || _a === void 0 ? void 0 : _a.gridId());
|
|
11336
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
11337
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
11338
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.filterLabel);
|
|
11339
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
11340
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
11341
|
+
}
|
|
11342
|
+
}
|
|
11343
|
+
else {
|
|
11255
11344
|
if (this.navigationService.tableEnabled) {
|
|
11256
11345
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11257
11346
|
}
|
|
@@ -11263,6 +11352,8 @@ class FilterMenuComponent {
|
|
|
11263
11352
|
}
|
|
11264
11353
|
close() {
|
|
11265
11354
|
this.popupService.destroy();
|
|
11355
|
+
this.popupRef = null;
|
|
11356
|
+
this.cdr.markForCheck();
|
|
11266
11357
|
if (this.navigationService.tableEnabled) {
|
|
11267
11358
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11268
11359
|
}
|
|
@@ -11271,7 +11362,7 @@ class FilterMenuComponent {
|
|
|
11271
11362
|
}
|
|
11272
11363
|
}
|
|
11273
11364
|
}
|
|
11274
|
-
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 });
|
|
11365
|
+
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 });
|
|
11275
11366
|
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: `
|
|
11276
11367
|
<a #anchor
|
|
11277
11368
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -11280,7 +11371,9 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
11280
11371
|
(click)="toggle(anchor, template)"
|
|
11281
11372
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11282
11373
|
href="#"
|
|
11283
|
-
[attr.title]="filterLabel"
|
|
11374
|
+
[attr.title]="filterLabel"
|
|
11375
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11376
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11284
11377
|
<kendo-icon-wrapper
|
|
11285
11378
|
name="filter"
|
|
11286
11379
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11308,7 +11401,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11308
11401
|
(click)="toggle(anchor, template)"
|
|
11309
11402
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11310
11403
|
href="#"
|
|
11311
|
-
[attr.title]="filterLabel"
|
|
11404
|
+
[attr.title]="filterLabel"
|
|
11405
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11406
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11312
11407
|
<kendo-icon-wrapper
|
|
11313
11408
|
name="filter"
|
|
11314
11409
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11325,7 +11420,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11325
11420
|
</ng-template>
|
|
11326
11421
|
`
|
|
11327
11422
|
}]
|
|
11328
|
-
}], ctorParameters: function () {
|
|
11423
|
+
}], ctorParameters: function () {
|
|
11424
|
+
return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: IdService, decorators: [{
|
|
11425
|
+
type: Optional
|
|
11426
|
+
}] }];
|
|
11427
|
+
}, propDecorators: { column: [{
|
|
11329
11428
|
type: Input
|
|
11330
11429
|
}], filter: [{
|
|
11331
11430
|
type: Input
|
|
@@ -11383,7 +11482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11383
11482
|
/**
|
|
11384
11483
|
* @hidden
|
|
11385
11484
|
*/
|
|
11386
|
-
const
|
|
11485
|
+
const ColumnMenuErrorMessages = {
|
|
11387
11486
|
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11388
11487
|
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11389
11488
|
};
|
|
@@ -11491,6 +11590,9 @@ class ColumnMenuItemComponent {
|
|
|
11491
11590
|
this.collapse = new EventEmitter();
|
|
11492
11591
|
this.contentState = 'collapsed';
|
|
11493
11592
|
}
|
|
11593
|
+
ngAfterViewInit() {
|
|
11594
|
+
this.contentTemplate && (this.contentId = `k-${guid()}`);
|
|
11595
|
+
}
|
|
11494
11596
|
ngOnChanges(changes) {
|
|
11495
11597
|
if (changes.expanded) {
|
|
11496
11598
|
this.updateContentState();
|
|
@@ -11525,13 +11627,14 @@ ColumnMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
11525
11627
|
[class.k-selected]="selected"
|
|
11526
11628
|
[class.k-disabled]="disabled"
|
|
11527
11629
|
role="button"
|
|
11528
|
-
[attr.aria-expanded]="expanded"
|
|
11630
|
+
[attr.aria-expanded]="expanded"
|
|
11631
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11529
11632
|
<kendo-icon-wrapper
|
|
11530
11633
|
[name]="icon"
|
|
11531
11634
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11532
11635
|
{{ text }}
|
|
11533
11636
|
</div>
|
|
11534
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11637
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11535
11638
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11536
11639
|
</ng-container>
|
|
11537
11640
|
<div>
|
|
@@ -11593,13 +11696,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11593
11696
|
[class.k-selected]="selected"
|
|
11594
11697
|
[class.k-disabled]="disabled"
|
|
11595
11698
|
role="button"
|
|
11596
|
-
[attr.aria-expanded]="expanded"
|
|
11699
|
+
[attr.aria-expanded]="expanded"
|
|
11700
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11597
11701
|
<kendo-icon-wrapper
|
|
11598
11702
|
[name]="icon"
|
|
11599
11703
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11600
11704
|
{{ text }}
|
|
11601
11705
|
</div>
|
|
11602
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11706
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11603
11707
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11604
11708
|
</ng-container>
|
|
11605
11709
|
<div>
|
|
@@ -11975,14 +12079,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11975
12079
|
type: Input
|
|
11976
12080
|
}] } });
|
|
11977
12081
|
|
|
12082
|
+
/**
|
|
12083
|
+
* @hidden
|
|
12084
|
+
*/
|
|
12085
|
+
class ColumnListKeyboardNavigation {
|
|
12086
|
+
constructor(renderer) {
|
|
12087
|
+
this.renderer = renderer;
|
|
12088
|
+
this.activeIndex = 0;
|
|
12089
|
+
}
|
|
12090
|
+
next() {
|
|
12091
|
+
this.toggle(this.activeIndex, false);
|
|
12092
|
+
this.activeIndex = Math.min(this.activeIndex + 1, this.items.length - 1);
|
|
12093
|
+
this.toggle(this.activeIndex, true);
|
|
12094
|
+
}
|
|
12095
|
+
prev() {
|
|
12096
|
+
this.toggle(this.activeIndex, false);
|
|
12097
|
+
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
12098
|
+
this.toggle(this.activeIndex, true);
|
|
12099
|
+
}
|
|
12100
|
+
toggle(index, active) {
|
|
12101
|
+
var _a;
|
|
12102
|
+
const element = (_a = this.items[index]) === null || _a === void 0 ? void 0 : _a.host.nativeElement;
|
|
12103
|
+
element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
|
|
12104
|
+
active && element && element.focus();
|
|
12105
|
+
}
|
|
12106
|
+
toggleCheckedState() {
|
|
12107
|
+
this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
|
|
12108
|
+
}
|
|
12109
|
+
}
|
|
12110
|
+
ColumnListKeyboardNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12111
|
+
ColumnListKeyboardNavigation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation });
|
|
12112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, decorators: [{
|
|
12113
|
+
type: Injectable
|
|
12114
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
12115
|
+
|
|
12116
|
+
/**
|
|
12117
|
+
* @hidden
|
|
12118
|
+
*/
|
|
12119
|
+
class ColumnMenuChooserItemCheckedDirective {
|
|
12120
|
+
constructor(host, renderer) {
|
|
12121
|
+
this.host = host;
|
|
12122
|
+
this.renderer = renderer;
|
|
12123
|
+
this.checkedChangeSub = new Subscription();
|
|
12124
|
+
}
|
|
12125
|
+
ngAfterViewInit() {
|
|
12126
|
+
this.checkedChangeSub.add(this.renderer.listen(this.host.nativeElement.firstElementChild, 'change', (e) => {
|
|
12127
|
+
this.kendoColumnMenuChooserItemChecked = e.target.checked;
|
|
12128
|
+
}));
|
|
12129
|
+
}
|
|
12130
|
+
ngOnDestroy() {
|
|
12131
|
+
this.checkedChangeSub.unsubscribe();
|
|
12132
|
+
}
|
|
12133
|
+
}
|
|
12134
|
+
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 });
|
|
12135
|
+
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 });
|
|
12136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, decorators: [{
|
|
12137
|
+
type: Directive,
|
|
12138
|
+
args: [{ selector: '[kendoColumnMenuChooserItemChecked]' }]
|
|
12139
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { kendoColumnMenuChooserItemChecked: [{
|
|
12140
|
+
type: HostBinding,
|
|
12141
|
+
args: ['attr.aria-checked']
|
|
12142
|
+
}, {
|
|
12143
|
+
type: Input
|
|
12144
|
+
}] } });
|
|
12145
|
+
|
|
11978
12146
|
/**
|
|
11979
12147
|
* @hidden
|
|
11980
12148
|
*/
|
|
11981
12149
|
class ColumnListComponent {
|
|
11982
|
-
constructor(element, ngZone, renderer) {
|
|
12150
|
+
constructor(element, ngZone, renderer, listNavigationService) {
|
|
11983
12151
|
this.element = element;
|
|
11984
12152
|
this.ngZone = ngZone;
|
|
11985
12153
|
this.renderer = renderer;
|
|
12154
|
+
this.listNavigationService = listNavigationService;
|
|
11986
12155
|
this.reset = new EventEmitter();
|
|
11987
12156
|
this.apply = new EventEmitter();
|
|
11988
12157
|
this.columnChange = new EventEmitter();
|
|
@@ -11990,10 +12159,28 @@ class ColumnListComponent {
|
|
|
11990
12159
|
this.allowHideAll = false;
|
|
11991
12160
|
this.actionsClass = 'k-actions k-actions-stretched k-actions-horizontal';
|
|
11992
12161
|
this.unlockedCount = 0;
|
|
12162
|
+
this.domSubscriptions = new Subscription();
|
|
12163
|
+
this.onKeydown = (e) => {
|
|
12164
|
+
if (e.keyCode !== Keys.Tab) {
|
|
12165
|
+
e.preventDefault();
|
|
12166
|
+
}
|
|
12167
|
+
if (e.keyCode === Keys.ArrowDown) {
|
|
12168
|
+
this.listNavigationService.next();
|
|
12169
|
+
}
|
|
12170
|
+
else if (e.keyCode === Keys.ArrowUp) {
|
|
12171
|
+
this.listNavigationService.prev();
|
|
12172
|
+
}
|
|
12173
|
+
else if (e.keyCode === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
|
12174
|
+
this.listNavigationService.toggleCheckedState();
|
|
12175
|
+
}
|
|
12176
|
+
};
|
|
11993
12177
|
}
|
|
11994
12178
|
get className() {
|
|
11995
12179
|
return true;
|
|
11996
12180
|
}
|
|
12181
|
+
isChecked(checkbox) {
|
|
12182
|
+
return checkbox.checked;
|
|
12183
|
+
}
|
|
11997
12184
|
set columns(value) {
|
|
11998
12185
|
this._columns = value.filter(column => column.includeInChooser !== false);
|
|
11999
12186
|
this.allColumns = value;
|
|
@@ -12011,12 +12198,21 @@ class ColumnListComponent {
|
|
|
12011
12198
|
return;
|
|
12012
12199
|
}
|
|
12013
12200
|
this.ngZone.runOutsideAngular(() => {
|
|
12014
|
-
this.domSubscriptions
|
|
12015
|
-
|
|
12201
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
|
|
12202
|
+
const closestItem = e.target.closest('.k-column-list-item');
|
|
12203
|
+
if (closestItem) {
|
|
12204
|
+
const checkbox = closestItem.querySelector('.k-checkbox');
|
|
12205
|
+
const index = parseInt(checkbox.getAttribute('data-index'), 10);
|
|
12206
|
+
if (e.target === checkbox) {
|
|
12207
|
+
closestItem.focus();
|
|
12208
|
+
}
|
|
12209
|
+
else {
|
|
12210
|
+
e.preventDefault();
|
|
12211
|
+
checkbox.checked = !checkbox.checked;
|
|
12212
|
+
}
|
|
12016
12213
|
if (this.autoSync) {
|
|
12017
|
-
const index = parseInt(e.target.getAttribute('data-index'), 10);
|
|
12018
12214
|
const column = this.columns[index];
|
|
12019
|
-
const hidden = !
|
|
12215
|
+
const hidden = !checkbox.checked;
|
|
12020
12216
|
if (Boolean(column.hidden) !== hidden) {
|
|
12021
12217
|
this.ngZone.run(() => {
|
|
12022
12218
|
column.hidden = hidden;
|
|
@@ -12027,10 +12223,20 @@ class ColumnListComponent {
|
|
|
12027
12223
|
else {
|
|
12028
12224
|
this.updateDisabled();
|
|
12029
12225
|
}
|
|
12226
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
12227
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
12228
|
+
this.listNavigationService.activeIndex = index;
|
|
12229
|
+
this.listNavigationService.toggle(index, true);
|
|
12230
|
+
}
|
|
12030
12231
|
}
|
|
12031
|
-
});
|
|
12232
|
+
}));
|
|
12233
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'keydown', this.onKeydown));
|
|
12032
12234
|
});
|
|
12033
12235
|
}
|
|
12236
|
+
ngAfterViewInit() {
|
|
12237
|
+
this.listNavigationService.items = this.options.toArray();
|
|
12238
|
+
this.listNavigationService.toggle(0, true);
|
|
12239
|
+
}
|
|
12034
12240
|
ngOnChanges(changes) {
|
|
12035
12241
|
if (!this.service) {
|
|
12036
12242
|
return;
|
|
@@ -12043,9 +12249,7 @@ class ColumnListComponent {
|
|
|
12043
12249
|
}
|
|
12044
12250
|
}
|
|
12045
12251
|
ngOnDestroy() {
|
|
12046
|
-
|
|
12047
|
-
this.domSubscriptions();
|
|
12048
|
-
}
|
|
12252
|
+
this.domSubscriptions.unsubscribe();
|
|
12049
12253
|
}
|
|
12050
12254
|
cancelChanges() {
|
|
12051
12255
|
this.forEachCheckBox((element, index) => {
|
|
@@ -12073,6 +12277,9 @@ class ColumnListComponent {
|
|
|
12073
12277
|
if (this.service) {
|
|
12074
12278
|
this.service.menuTabbingService.firstFocusable.focus();
|
|
12075
12279
|
}
|
|
12280
|
+
else {
|
|
12281
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, true);
|
|
12282
|
+
}
|
|
12076
12283
|
}
|
|
12077
12284
|
}
|
|
12078
12285
|
forEachCheckBox(callback) {
|
|
@@ -12119,35 +12326,94 @@ class ColumnListComponent {
|
|
|
12119
12326
|
}
|
|
12120
12327
|
}
|
|
12121
12328
|
}
|
|
12122
|
-
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 });
|
|
12123
|
-
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: `
|
|
12124
|
-
<div
|
|
12125
|
-
|
|
12126
|
-
|
|
12329
|
+
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 });
|
|
12330
|
+
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: `
|
|
12331
|
+
<div
|
|
12332
|
+
class="k-column-list"
|
|
12333
|
+
role="listbox"
|
|
12334
|
+
aria-multiselectable="true"
|
|
12335
|
+
[attr.aria-label]="ariaLabel">
|
|
12336
|
+
<label
|
|
12337
|
+
*ngFor="let column of columns; let index = index;"
|
|
12338
|
+
class='k-column-list-item'
|
|
12339
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12340
|
+
role="option">
|
|
12341
|
+
<input
|
|
12342
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12343
|
+
type="checkbox"
|
|
12344
|
+
[attr.data-index]="index"
|
|
12345
|
+
[checked]="!column.hidden"
|
|
12346
|
+
tabindex="-1"
|
|
12347
|
+
[attr.aria-hidden]="true"
|
|
12348
|
+
[disabled]="isDisabled(column)" />
|
|
12349
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12127
12350
|
</label>
|
|
12128
12351
|
</div>
|
|
12129
12352
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12130
|
-
<button
|
|
12131
|
-
|
|
12353
|
+
<button
|
|
12354
|
+
#applyButton
|
|
12355
|
+
type="button"
|
|
12356
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12357
|
+
(click)="applyChanges()"
|
|
12358
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12359
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12360
|
+
<button
|
|
12361
|
+
#resetButton
|
|
12362
|
+
type="button"
|
|
12363
|
+
(keydown.tab)="onTab($event)"
|
|
12364
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12365
|
+
(click)="cancelChanges()"
|
|
12366
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12367
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12132
12368
|
</div>
|
|
12133
|
-
`, 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"] }] });
|
|
12369
|
+
`, 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"] }] });
|
|
12134
12370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
12135
12371
|
type: Component,
|
|
12136
12372
|
args: [{
|
|
12137
12373
|
selector: 'kendo-grid-columnlist',
|
|
12374
|
+
providers: [ColumnListKeyboardNavigation],
|
|
12138
12375
|
template: `
|
|
12139
|
-
<div
|
|
12140
|
-
|
|
12141
|
-
|
|
12376
|
+
<div
|
|
12377
|
+
class="k-column-list"
|
|
12378
|
+
role="listbox"
|
|
12379
|
+
aria-multiselectable="true"
|
|
12380
|
+
[attr.aria-label]="ariaLabel">
|
|
12381
|
+
<label
|
|
12382
|
+
*ngFor="let column of columns; let index = index;"
|
|
12383
|
+
class='k-column-list-item'
|
|
12384
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12385
|
+
role="option">
|
|
12386
|
+
<input
|
|
12387
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12388
|
+
type="checkbox"
|
|
12389
|
+
[attr.data-index]="index"
|
|
12390
|
+
[checked]="!column.hidden"
|
|
12391
|
+
tabindex="-1"
|
|
12392
|
+
[attr.aria-hidden]="true"
|
|
12393
|
+
[disabled]="isDisabled(column)" />
|
|
12394
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12142
12395
|
</label>
|
|
12143
12396
|
</div>
|
|
12144
12397
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12145
|
-
<button
|
|
12146
|
-
|
|
12398
|
+
<button
|
|
12399
|
+
#applyButton
|
|
12400
|
+
type="button"
|
|
12401
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12402
|
+
(click)="applyChanges()"
|
|
12403
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12404
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12405
|
+
<button
|
|
12406
|
+
#resetButton
|
|
12407
|
+
type="button"
|
|
12408
|
+
(keydown.tab)="onTab($event)"
|
|
12409
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12410
|
+
(click)="cancelChanges()"
|
|
12411
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12412
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12147
12413
|
</div>
|
|
12148
12414
|
`
|
|
12149
12415
|
}]
|
|
12150
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { className: [{
|
|
12416
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ColumnListKeyboardNavigation }]; }, propDecorators: { className: [{
|
|
12151
12417
|
type: HostBinding,
|
|
12152
12418
|
args: ["class.k-column-list-wrapper"]
|
|
12153
12419
|
}], reset: [{
|
|
@@ -12160,6 +12426,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12160
12426
|
type: Input
|
|
12161
12427
|
}], autoSync: [{
|
|
12162
12428
|
type: Input
|
|
12429
|
+
}], ariaLabel: [{
|
|
12430
|
+
type: Input
|
|
12163
12431
|
}], allowHideAll: [{
|
|
12164
12432
|
type: Input
|
|
12165
12433
|
}], applyText: [{
|
|
@@ -12174,9 +12442,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12174
12442
|
type: Input
|
|
12175
12443
|
}], service: [{
|
|
12176
12444
|
type: Input
|
|
12445
|
+
}], resetButton: [{
|
|
12446
|
+
type: ViewChild,
|
|
12447
|
+
args: ['resetButton', { static: false }]
|
|
12177
12448
|
}], applyButton: [{
|
|
12178
12449
|
type: ViewChild,
|
|
12179
12450
|
args: ['applyButton', { static: false }]
|
|
12451
|
+
}], options: [{
|
|
12452
|
+
type: ViewChildren,
|
|
12453
|
+
args: [ColumnMenuChooserItemCheckedDirective]
|
|
12180
12454
|
}] } });
|
|
12181
12455
|
|
|
12182
12456
|
/**
|
|
@@ -12269,6 +12543,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12269
12543
|
<kendo-grid-columnlist
|
|
12270
12544
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12271
12545
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12546
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12272
12547
|
[columns]="columns"
|
|
12273
12548
|
[autoSync]="false"
|
|
12274
12549
|
[allowHideAll]="false"
|
|
@@ -12280,7 +12555,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12280
12555
|
</kendo-grid-columnlist>
|
|
12281
12556
|
</ng-template>
|
|
12282
12557
|
</kendo-grid-columnmenu-item>
|
|
12283
|
-
`, 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]" }] });
|
|
12558
|
+
`, 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]" }] });
|
|
12284
12559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
|
|
12285
12560
|
type: Component,
|
|
12286
12561
|
args: [{
|
|
@@ -12297,6 +12572,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12297
12572
|
<kendo-grid-columnlist
|
|
12298
12573
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12299
12574
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12575
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12300
12576
|
[columns]="columns"
|
|
12301
12577
|
[autoSync]="false"
|
|
12302
12578
|
[allowHideAll]="false"
|
|
@@ -12700,7 +12976,7 @@ class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
|
|
|
12700
12976
|
ngOnInit() {
|
|
12701
12977
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12702
12978
|
if (isVirtualColumns && isDevMode()) {
|
|
12703
|
-
console.warn(
|
|
12979
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12704
12980
|
}
|
|
12705
12981
|
}
|
|
12706
12982
|
/**
|
|
@@ -12767,7 +13043,7 @@ class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
|
|
|
12767
13043
|
ngOnInit() {
|
|
12768
13044
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12769
13045
|
if (isVirtualColumns && isDevMode()) {
|
|
12770
|
-
console.warn(
|
|
13046
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12771
13047
|
}
|
|
12772
13048
|
}
|
|
12773
13049
|
/**
|
|
@@ -12804,6 +13080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12804
13080
|
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
12805
13081
|
|
|
12806
13082
|
const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
13083
|
+
let id$2 = 0;
|
|
13084
|
+
const getId = (gridId) => `${gridId}-column-menu-${id$2++}`;
|
|
12807
13085
|
/**
|
|
12808
13086
|
* Represents the [column menu](slug:columnmenu_grid#toc-customizing-the-position) component.
|
|
12809
13087
|
*
|
|
@@ -12816,7 +13094,7 @@ const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
|
12816
13094
|
* </kendo-grid>
|
|
12817
13095
|
*/
|
|
12818
13096
|
class ColumnMenuComponent {
|
|
12819
|
-
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService) {
|
|
13097
|
+
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
|
|
12820
13098
|
this.navigationService = navigationService;
|
|
12821
13099
|
this.popupService = popupService;
|
|
12822
13100
|
this.service = service;
|
|
@@ -12824,6 +13102,7 @@ class ColumnMenuComponent {
|
|
|
12824
13102
|
this.renderer = renderer;
|
|
12825
13103
|
this.cdr = cdr;
|
|
12826
13104
|
this.columnInfoService = columnInfoService;
|
|
13105
|
+
this.idService = idService;
|
|
12827
13106
|
/**
|
|
12828
13107
|
* @hidden
|
|
12829
13108
|
*/
|
|
@@ -12869,7 +13148,7 @@ class ColumnMenuComponent {
|
|
|
12869
13148
|
*/
|
|
12870
13149
|
this.expandedPosition = false;
|
|
12871
13150
|
this.moreVerticalIcon = moreVerticalIcon;
|
|
12872
|
-
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
|
13151
|
+
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
|
|
12873
13152
|
}
|
|
12874
13153
|
/**
|
|
12875
13154
|
* @hidden
|
|
@@ -12895,6 +13174,12 @@ class ColumnMenuComponent {
|
|
|
12895
13174
|
get hasFilter() {
|
|
12896
13175
|
return hasFilter(this.settings, this.column);
|
|
12897
13176
|
}
|
|
13177
|
+
/**
|
|
13178
|
+
* @hidden
|
|
13179
|
+
*/
|
|
13180
|
+
get isNavigable() {
|
|
13181
|
+
return this.navigationService.tableEnabled;
|
|
13182
|
+
}
|
|
12898
13183
|
/**
|
|
12899
13184
|
* @hidden
|
|
12900
13185
|
*/
|
|
@@ -12911,7 +13196,7 @@ class ColumnMenuComponent {
|
|
|
12911
13196
|
* @hidden
|
|
12912
13197
|
*/
|
|
12913
13198
|
onApply(changed) {
|
|
12914
|
-
this.close();
|
|
13199
|
+
this.close(true);
|
|
12915
13200
|
if (changed.length) {
|
|
12916
13201
|
this.cdr.markForCheck();
|
|
12917
13202
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -12957,11 +13242,11 @@ class ColumnMenuComponent {
|
|
|
12957
13242
|
if (this.ctx.grid.virtualColumns && isDevMode()) {
|
|
12958
13243
|
if (this.settings.autoSizeAllColumns) {
|
|
12959
13244
|
this.settings.autoSizeAllColumns = false;
|
|
12960
|
-
console.warn(
|
|
13245
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12961
13246
|
}
|
|
12962
13247
|
if (this.settings.autoSizeColumn) {
|
|
12963
13248
|
this.settings.autoSizeColumn = false;
|
|
12964
|
-
console.warn(
|
|
13249
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12965
13250
|
}
|
|
12966
13251
|
}
|
|
12967
13252
|
this.service.menuTabbingService.isTabbedInterface = this.settings.view === 'tabbed' ? true : false;
|
|
@@ -12980,7 +13265,7 @@ class ColumnMenuComponent {
|
|
|
12980
13265
|
* @hidden
|
|
12981
13266
|
*/
|
|
12982
13267
|
toggle(e, anchor, template) {
|
|
12983
|
-
var _a;
|
|
13268
|
+
var _a, _b;
|
|
12984
13269
|
if (e) {
|
|
12985
13270
|
e.preventDefault();
|
|
12986
13271
|
e.stopImmediatePropagation();
|
|
@@ -12989,12 +13274,32 @@ class ColumnMenuComponent {
|
|
|
12989
13274
|
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
12990
13275
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
12991
13276
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
13277
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
13278
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
13279
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13280
|
+
if (this.popupRef) {
|
|
13281
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
13282
|
+
this.popupRef = null;
|
|
13283
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13284
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
13285
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
13286
|
+
});
|
|
13287
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
13288
|
+
if (popupAriaElement) {
|
|
13289
|
+
const popupId = getId((_a = this.idService) === null || _a === void 0 ? void 0 : _a.gridId());
|
|
13290
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
13291
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
13292
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
13293
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
13294
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
13295
|
+
}
|
|
13296
|
+
if (this.settings.view === 'tabbed') {
|
|
13297
|
+
this.renderer.addClass(this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup'), 'k-column-menu-tabbed');
|
|
13298
|
+
this.cdr.detectChanges();
|
|
13299
|
+
(_b = this.tabStrip) === null || _b === void 0 ? void 0 : _b.selectTab(0);
|
|
13300
|
+
}
|
|
12996
13301
|
}
|
|
12997
|
-
|
|
13302
|
+
else {
|
|
12998
13303
|
if (this.navigationService.tableEnabled) {
|
|
12999
13304
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
13000
13305
|
}
|
|
@@ -13006,9 +13311,13 @@ class ColumnMenuComponent {
|
|
|
13006
13311
|
/**
|
|
13007
13312
|
* @hidden
|
|
13008
13313
|
*/
|
|
13009
|
-
close() {
|
|
13314
|
+
close(triggerFocus = false) {
|
|
13010
13315
|
this.popupService.destroy();
|
|
13011
13316
|
this.popupRef = null;
|
|
13317
|
+
this.cdr.markForCheck();
|
|
13318
|
+
if (!triggerFocus) {
|
|
13319
|
+
return;
|
|
13320
|
+
}
|
|
13012
13321
|
if (this.navigationService.tableEnabled) {
|
|
13013
13322
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
13014
13323
|
}
|
|
@@ -13028,7 +13337,7 @@ class ColumnMenuComponent {
|
|
|
13028
13337
|
return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
|
|
13029
13338
|
}
|
|
13030
13339
|
}
|
|
13031
|
-
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 });
|
|
13340
|
+
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 });
|
|
13032
13341
|
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: [
|
|
13033
13342
|
ColumnMenuService,
|
|
13034
13343
|
MenuTabbingService
|
|
@@ -13040,7 +13349,9 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13040
13349
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
13041
13350
|
href="#"
|
|
13042
13351
|
[tabindex]="tabIndex"
|
|
13043
|
-
[attr.title]="columnMenuTitle"
|
|
13352
|
+
[attr.title]="columnMenuTitle"
|
|
13353
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13354
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13044
13355
|
<kendo-icon-wrapper
|
|
13045
13356
|
name="more-vertical"
|
|
13046
13357
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13053,7 +13364,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13053
13364
|
</ng-template>
|
|
13054
13365
|
<ng-template #defaultTemplate>
|
|
13055
13366
|
<kendo-grid-columnmenu-container
|
|
13056
|
-
(keydown.escape)="close()"
|
|
13367
|
+
(keydown.escape)="close(true)"
|
|
13057
13368
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13058
13369
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13059
13370
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13105,7 +13416,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13105
13416
|
</kendo-grid-columnmenu-container>
|
|
13106
13417
|
</ng-template>
|
|
13107
13418
|
<ng-template #tabbedInterfaceTemplate>
|
|
13108
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13419
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13109
13420
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13110
13421
|
<ng-template kendoTabTitle>
|
|
13111
13422
|
<kendo-icon-wrapper
|
|
@@ -13192,7 +13503,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13192
13503
|
</kendo-tabstrip-tab>
|
|
13193
13504
|
</kendo-tabstrip>
|
|
13194
13505
|
</ng-template>
|
|
13195
|
-
`, 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:
|
|
13506
|
+
`, 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]" }] });
|
|
13196
13507
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
13197
13508
|
type: Component,
|
|
13198
13509
|
args: [{
|
|
@@ -13209,7 +13520,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13209
13520
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
13210
13521
|
href="#"
|
|
13211
13522
|
[tabindex]="tabIndex"
|
|
13212
|
-
[attr.title]="columnMenuTitle"
|
|
13523
|
+
[attr.title]="columnMenuTitle"
|
|
13524
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13525
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13213
13526
|
<kendo-icon-wrapper
|
|
13214
13527
|
name="more-vertical"
|
|
13215
13528
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13222,7 +13535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13222
13535
|
</ng-template>
|
|
13223
13536
|
<ng-template #defaultTemplate>
|
|
13224
13537
|
<kendo-grid-columnmenu-container
|
|
13225
|
-
(keydown.escape)="close()"
|
|
13538
|
+
(keydown.escape)="close(true)"
|
|
13226
13539
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13227
13540
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13228
13541
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13274,7 +13587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13274
13587
|
</kendo-grid-columnmenu-container>
|
|
13275
13588
|
</ng-template>
|
|
13276
13589
|
<ng-template #tabbedInterfaceTemplate>
|
|
13277
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13590
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13278
13591
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13279
13592
|
<ng-template kendoTabTitle>
|
|
13280
13593
|
<kendo-icon-wrapper
|
|
@@ -13363,7 +13676,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13363
13676
|
</ng-template>
|
|
13364
13677
|
`
|
|
13365
13678
|
}]
|
|
13366
|
-
}], ctorParameters: function () {
|
|
13679
|
+
}], ctorParameters: function () {
|
|
13680
|
+
return [{ type: NavigationService }, { type: SinglePopupService }, { type: ColumnMenuService }, { type: ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService }, { type: IdService, decorators: [{
|
|
13681
|
+
type: Optional
|
|
13682
|
+
}] }];
|
|
13683
|
+
}, propDecorators: { standalone: [{
|
|
13367
13684
|
type: HostBinding,
|
|
13368
13685
|
args: ['class.k-grid-column-menu-standalone']
|
|
13369
13686
|
}, {
|
|
@@ -13533,7 +13850,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
13533
13850
|
[size]="size"
|
|
13534
13851
|
(click)="clearClick()"
|
|
13535
13852
|
(keydown)="clearKeydown($event)"></button>
|
|
13536
|
-
`, 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"] }] });
|
|
13853
|
+
`, 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"] }] });
|
|
13537
13854
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
|
|
13538
13855
|
type: Component,
|
|
13539
13856
|
args: [{
|
|
@@ -13938,7 +14255,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
13938
14255
|
[value]="currentFilter?.value">
|
|
13939
14256
|
</kendo-dropdownlist>
|
|
13940
14257
|
</kendo-grid-filter-wrapper-cell>
|
|
13941
|
-
`, 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"] }] });
|
|
14258
|
+
`, 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"] }] });
|
|
13942
14259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
|
|
13943
14260
|
type: Component,
|
|
13944
14261
|
args: [{
|
|
@@ -14306,7 +14623,7 @@ class LogicalCellDirective {
|
|
|
14306
14623
|
this.renderer.addClass(el, 'k-focus');
|
|
14307
14624
|
}
|
|
14308
14625
|
if (this.headerLabelText) {
|
|
14309
|
-
el.
|
|
14626
|
+
el.removeAttribute('aria-label');
|
|
14310
14627
|
}
|
|
14311
14628
|
}
|
|
14312
14629
|
else {
|
|
@@ -15004,7 +15321,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
|
|
|
15004
15321
|
* @hidden
|
|
15005
15322
|
*/
|
|
15006
15323
|
class HeaderComponent {
|
|
15007
|
-
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService) {
|
|
15324
|
+
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService, navigationService) {
|
|
15008
15325
|
this.popupService = popupService;
|
|
15009
15326
|
this.hint = hint;
|
|
15010
15327
|
this.cue = cue;
|
|
@@ -15014,6 +15331,7 @@ class HeaderComponent {
|
|
|
15014
15331
|
this.columnInfoService = columnInfoService;
|
|
15015
15332
|
this.cd = cd;
|
|
15016
15333
|
this.contextService = contextService;
|
|
15334
|
+
this.navigationService = navigationService;
|
|
15017
15335
|
this.columns = [];
|
|
15018
15336
|
this.groups = [];
|
|
15019
15337
|
this.sort = new Array();
|
|
@@ -15148,6 +15466,9 @@ class HeaderComponent {
|
|
|
15148
15466
|
return 'descending';
|
|
15149
15467
|
}
|
|
15150
15468
|
}
|
|
15469
|
+
get isNavigable() {
|
|
15470
|
+
return this.navigationService.tableEnabled;
|
|
15471
|
+
}
|
|
15151
15472
|
/**
|
|
15152
15473
|
*
|
|
15153
15474
|
* @param column
|
|
@@ -15258,7 +15579,7 @@ class HeaderComponent {
|
|
|
15258
15579
|
}
|
|
15259
15580
|
addStickyStyles(column) {
|
|
15260
15581
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
15261
|
-
return Object.assign(Object.assign({}, column.
|
|
15582
|
+
return Object.assign(Object.assign({}, column.headerStyle), stickyStyles);
|
|
15262
15583
|
}
|
|
15263
15584
|
toggleDirection(field, allowUnsort, initialDirection) {
|
|
15264
15585
|
const descriptor = this.sortDescriptor(field);
|
|
@@ -15375,7 +15696,7 @@ class HeaderComponent {
|
|
|
15375
15696
|
});
|
|
15376
15697
|
}
|
|
15377
15698
|
}
|
|
15378
|
-
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 });
|
|
15699
|
+
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 });
|
|
15379
15700
|
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: `
|
|
15380
15701
|
<ng-container>
|
|
15381
15702
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -15427,7 +15748,9 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
15427
15748
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15428
15749
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15429
15750
|
[attr.colspan]="column.colspan"
|
|
15430
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15751
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15752
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15753
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15431
15754
|
|
|
15432
15755
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15433
15756
|
<span class="k-cell-inner">
|
|
@@ -15649,7 +15972,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15649
15972
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15650
15973
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15651
15974
|
[attr.colspan]="column.colspan"
|
|
15652
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15975
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15976
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15977
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15653
15978
|
|
|
15654
15979
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15655
15980
|
<span class="k-cell-inner">
|
|
@@ -15817,7 +16142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15817
16142
|
</ng-container>
|
|
15818
16143
|
`
|
|
15819
16144
|
}]
|
|
15820
|
-
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }]; }, propDecorators: { totalColumnLevels: [{
|
|
16145
|
+
}], 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: [{
|
|
15821
16146
|
type: Input
|
|
15822
16147
|
}], columns: [{
|
|
15823
16148
|
type: Input
|
|
@@ -18789,7 +19114,7 @@ class FooterComponent {
|
|
|
18789
19114
|
}
|
|
18790
19115
|
addStickyStyles(column) {
|
|
18791
19116
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
18792
|
-
return Object.assign(Object.assign({}, column.
|
|
19117
|
+
return Object.assign(Object.assign({}, column.footerStyle), stickyStyles);
|
|
18793
19118
|
}
|
|
18794
19119
|
}
|
|
18795
19120
|
FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterComponent, deps: [{ token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -22907,7 +23232,16 @@ class ExpandGroupDirective {
|
|
|
22907
23232
|
this.expandedGroupKeys.push(key);
|
|
22908
23233
|
}
|
|
22909
23234
|
else {
|
|
22910
|
-
const index = this.expandedGroupKeys.
|
|
23235
|
+
const index = this.expandedGroupKeys.findIndex(group => {
|
|
23236
|
+
var _a;
|
|
23237
|
+
if (this.expandGroupBy) {
|
|
23238
|
+
return group === key;
|
|
23239
|
+
}
|
|
23240
|
+
else if (((_a = key.parentGroupKeys) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
23241
|
+
return group.value === key.value;
|
|
23242
|
+
}
|
|
23243
|
+
return JSON.stringify(group) === JSON.stringify(key);
|
|
23244
|
+
});
|
|
22911
23245
|
this.expandedGroupKeys.splice(index, 1);
|
|
22912
23246
|
}
|
|
22913
23247
|
this.expandedGroupKeysChange.emit(this.expandedGroupKeys.slice());
|
|
@@ -23025,7 +23359,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
23025
23359
|
[value]="currentFilter?.value">
|
|
23026
23360
|
</kendo-autocomplete>
|
|
23027
23361
|
</kendo-grid-filter-wrapper-cell>
|
|
23028
|
-
`, 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"] }] });
|
|
23362
|
+
`, 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"] }] });
|
|
23029
23363
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
|
|
23030
23364
|
type: Component,
|
|
23031
23365
|
args: [{
|
|
@@ -24136,6 +24470,7 @@ class ColumnChooserComponent {
|
|
|
24136
24470
|
* @hidden
|
|
24137
24471
|
*/
|
|
24138
24472
|
toggle(anchor, template) {
|
|
24473
|
+
var _a;
|
|
24139
24474
|
if (!this.popupRef) {
|
|
24140
24475
|
const direction = this.ctx.localization.rtl ? 'right' : 'left';
|
|
24141
24476
|
this.popupRef = this.popupService.open({
|
|
@@ -24145,13 +24480,30 @@ class ColumnChooserComponent {
|
|
|
24145
24480
|
anchorAlign: { vertical: 'bottom', horizontal: direction },
|
|
24146
24481
|
popupAlign: { vertical: 'top', horizontal: direction }
|
|
24147
24482
|
});
|
|
24148
|
-
|
|
24483
|
+
const popupElement = (_a = this.popupRef) === null || _a === void 0 ? void 0 : _a.popupElement;
|
|
24484
|
+
if (popupElement) {
|
|
24485
|
+
const popupId = `k-${guid()}`;
|
|
24486
|
+
const popupAriaElement = popupElement.querySelector('.k-popup');
|
|
24487
|
+
this.ngZone.runOutsideAngular(() => {
|
|
24488
|
+
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
|
24489
|
+
if (e.keyCode === Keys.Escape) {
|
|
24490
|
+
this.close(true);
|
|
24491
|
+
}
|
|
24492
|
+
});
|
|
24493
|
+
});
|
|
24494
|
+
this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
|
|
24495
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
24496
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
24497
|
+
this.popupId = popupId;
|
|
24498
|
+
}
|
|
24149
24499
|
if (!isDocumentAvailable()) {
|
|
24150
24500
|
return;
|
|
24151
24501
|
}
|
|
24152
24502
|
this.ngZone.runOutsideAngular(() => this.closeClick = this.renderer.listen('document', 'click', ({ target }) => {
|
|
24153
24503
|
if (!closest(target, node => node === this.popupRef.popupElement || node === anchor.element)) {
|
|
24154
|
-
this.
|
|
24504
|
+
this.ngZone.run(() => {
|
|
24505
|
+
this.close();
|
|
24506
|
+
});
|
|
24155
24507
|
}
|
|
24156
24508
|
}));
|
|
24157
24509
|
}
|
|
@@ -24163,7 +24515,7 @@ class ColumnChooserComponent {
|
|
|
24163
24515
|
* @hidden
|
|
24164
24516
|
*/
|
|
24165
24517
|
onApply(changed) {
|
|
24166
|
-
this.close();
|
|
24518
|
+
this.close(true);
|
|
24167
24519
|
if (changed.length) {
|
|
24168
24520
|
this.changeDetector.markForCheck();
|
|
24169
24521
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -24176,12 +24528,24 @@ class ColumnChooserComponent {
|
|
|
24176
24528
|
this.changeDetector.markForCheck();
|
|
24177
24529
|
this.columnInfoService.changeVisibility(changed);
|
|
24178
24530
|
}
|
|
24179
|
-
|
|
24531
|
+
/**
|
|
24532
|
+
* @hidden
|
|
24533
|
+
*/
|
|
24534
|
+
onShiftTab(e) {
|
|
24535
|
+
if (e.target.matches('.k-column-list-item')) {
|
|
24536
|
+
e.preventDefault();
|
|
24537
|
+
this.columnList.resetButton.nativeElement.focus();
|
|
24538
|
+
}
|
|
24539
|
+
}
|
|
24540
|
+
close(focusAnchor = false) {
|
|
24180
24541
|
if (this.popupRef) {
|
|
24181
24542
|
this.popupRef.close();
|
|
24182
24543
|
this.popupRef = null;
|
|
24544
|
+
this.changeDetector.markForCheck();
|
|
24545
|
+
this.escapeListener && this.escapeListener();
|
|
24183
24546
|
}
|
|
24184
24547
|
this.detachClose();
|
|
24548
|
+
focusAnchor && this.anchor.element.focus();
|
|
24185
24549
|
}
|
|
24186
24550
|
detachClose() {
|
|
24187
24551
|
if (this.closeClick) {
|
|
@@ -24191,7 +24555,7 @@ class ColumnChooserComponent {
|
|
|
24191
24555
|
}
|
|
24192
24556
|
}
|
|
24193
24557
|
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 });
|
|
24194
|
-
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: `
|
|
24558
|
+
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: `
|
|
24195
24559
|
<button #anchor
|
|
24196
24560
|
kendoButton
|
|
24197
24561
|
type="button"
|
|
@@ -24199,20 +24563,27 @@ ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
24199
24563
|
fillMode="flat"
|
|
24200
24564
|
[attr.title]="ctx.localization.get('columns')"
|
|
24201
24565
|
icon="columns"
|
|
24202
|
-
[svgIcon]="columnsIcon"
|
|
24566
|
+
[svgIcon]="columnsIcon"
|
|
24567
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24568
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24569
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24203
24570
|
<ng-template #template>
|
|
24204
24571
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24205
24572
|
<kendo-grid-columnlist
|
|
24573
|
+
#columnList
|
|
24206
24574
|
[columns]="columns"
|
|
24575
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24576
|
+
[isLast]="true"
|
|
24207
24577
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24208
24578
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24209
24579
|
[autoSync]="autoSync"
|
|
24210
24580
|
[allowHideAll]="allowHideAll"
|
|
24211
24581
|
(apply)="onApply($event)"
|
|
24212
|
-
(columnChange)="onChange($event)"
|
|
24582
|
+
(columnChange)="onChange($event)"
|
|
24583
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24213
24584
|
</kendo-grid-columnlist>
|
|
24214
24585
|
</ng-template>
|
|
24215
|
-
`, 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"] }] });
|
|
24586
|
+
`, 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"] }] });
|
|
24216
24587
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
|
|
24217
24588
|
type: Component,
|
|
24218
24589
|
args: [{
|
|
@@ -24225,17 +24596,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24225
24596
|
fillMode="flat"
|
|
24226
24597
|
[attr.title]="ctx.localization.get('columns')"
|
|
24227
24598
|
icon="columns"
|
|
24228
|
-
[svgIcon]="columnsIcon"
|
|
24599
|
+
[svgIcon]="columnsIcon"
|
|
24600
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24601
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24602
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24229
24603
|
<ng-template #template>
|
|
24230
24604
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24231
24605
|
<kendo-grid-columnlist
|
|
24606
|
+
#columnList
|
|
24232
24607
|
[columns]="columns"
|
|
24608
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24609
|
+
[isLast]="true"
|
|
24233
24610
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24234
24611
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24235
24612
|
[autoSync]="autoSync"
|
|
24236
24613
|
[allowHideAll]="allowHideAll"
|
|
24237
24614
|
(apply)="onApply($event)"
|
|
24238
|
-
(columnChange)="onChange($event)"
|
|
24615
|
+
(columnChange)="onChange($event)"
|
|
24616
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24239
24617
|
</kendo-grid-columnlist>
|
|
24240
24618
|
</ng-template>
|
|
24241
24619
|
`
|
|
@@ -24244,9 +24622,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24244
24622
|
type: Input
|
|
24245
24623
|
}], allowHideAll: [{
|
|
24246
24624
|
type: Input
|
|
24625
|
+
}], anchor: [{
|
|
24626
|
+
type: ViewChild,
|
|
24627
|
+
args: ['anchor']
|
|
24628
|
+
}], columnList: [{
|
|
24629
|
+
type: ViewChild,
|
|
24630
|
+
args: ['columnList']
|
|
24247
24631
|
}] } });
|
|
24248
24632
|
|
|
24249
24633
|
const COMPONENTS = [
|
|
24634
|
+
ColumnMenuChooserItemCheckedDirective,
|
|
24250
24635
|
ColumnListComponent,
|
|
24251
24636
|
ColumnChooserComponent,
|
|
24252
24637
|
ColumnMenuChooserComponent,
|
|
@@ -24289,7 +24674,8 @@ class ColumnMenuModule {
|
|
|
24289
24674
|
}
|
|
24290
24675
|
}
|
|
24291
24676
|
ColumnMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24292
|
-
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [
|
|
24677
|
+
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [ColumnMenuChooserItemCheckedDirective,
|
|
24678
|
+
ColumnListComponent,
|
|
24293
24679
|
ColumnChooserComponent,
|
|
24294
24680
|
ColumnMenuChooserComponent,
|
|
24295
24681
|
ColumnMenuFilterComponent,
|
|
@@ -24304,7 +24690,8 @@ ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
24304
24690
|
ColumnMenuStickComponent,
|
|
24305
24691
|
ColumnMenuPositionComponent,
|
|
24306
24692
|
ColumnMenuAutoSizeColumnComponent,
|
|
24307
|
-
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [
|
|
24693
|
+
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [ColumnMenuChooserItemCheckedDirective,
|
|
24694
|
+
ColumnListComponent,
|
|
24308
24695
|
ColumnChooserComponent,
|
|
24309
24696
|
ColumnMenuChooserComponent,
|
|
24310
24697
|
ColumnMenuFilterComponent,
|