@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, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
|
|
6
|
+
import { InjectionToken, Component, HostBinding, Input, EventEmitter, Injectable, Optional, Inject, Directive, SkipSelf, QueryList, isDevMode, ContentChildren, ContentChild, forwardRef, Host, Output, SecurityContext, HostListener, ChangeDetectionStrategy, ElementRef, ViewChild, ViewChildren, Self, TemplateRef, Pipe, ViewEncapsulation, NgModule } from '@angular/core';
|
|
7
7
|
import * as i1$1 from '@progress/kendo-angular-common';
|
|
8
8
|
import { isDocumentAvailable, Keys, isPresent as isPresent$1, closest as closest$1, isFocusable as isFocusable$1, anyChanged, isChanged as isChanged$1, KendoInput, guid, hasObservers, ResizeSensorComponent, DraggableModule, EventsModule, ResizeSensorModule } from '@progress/kendo-angular-common';
|
|
9
9
|
import { merge, of, Subject, from, Subscription, interval, fromEvent, zip as zip$1, BehaviorSubject, Observable } from 'rxjs';
|
|
@@ -24,17 +24,17 @@ import { IconsModule } from '@progress/kendo-angular-icons';
|
|
|
24
24
|
import { plusIcon, cancelIcon, lockIcon, unlockIcon, insertMiddleIcon, caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon, sortDescSmallIcon, sortAscSmallIcon, filterIcon, stickIcon, unstickIcon, setColumnPositionIcon, columnsIcon, maxWidthIcon, displayInlineFlexIcon, slidersIcon, moreVerticalIcon, filterClearIcon, reorderIcon, caretAltDownIcon, minusIcon } from '@progress/kendo-svg-icons';
|
|
25
25
|
import * as i41 from '@progress/kendo-angular-utils';
|
|
26
26
|
import { DragTargetContainerDirective, DropTargetContainerDirective, DragAndDropModule as DragAndDropModule$1 } from '@progress/kendo-angular-utils';
|
|
27
|
-
import * as i4$1 from '@progress/kendo-angular-buttons';
|
|
28
|
-
import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
|
|
29
|
-
import * as i3$1 from '@progress/kendo-angular-inputs';
|
|
30
|
-
import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
|
|
31
27
|
import * as i1$4 from '@progress/kendo-angular-dropdowns';
|
|
32
28
|
import { DropDownListComponent, DropDownListModule, AutoCompleteModule, DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
33
29
|
import * as i5 from '@progress/kendo-angular-label';
|
|
34
30
|
import { LabelModule } from '@progress/kendo-angular-label';
|
|
31
|
+
import * as i4$1 from '@progress/kendo-angular-buttons';
|
|
32
|
+
import { ButtonModule, ChipModule, Button } from '@progress/kendo-angular-buttons';
|
|
33
|
+
import * as i3$1 from '@progress/kendo-angular-inputs';
|
|
34
|
+
import { NumericTextBoxComponent, InputsModule, NumericTextBoxModule } from '@progress/kendo-angular-inputs';
|
|
35
35
|
import * as i4$3 from '@progress/kendo-angular-dateinputs';
|
|
36
36
|
import { DatePickerModule } from '@progress/kendo-angular-dateinputs';
|
|
37
|
-
import * as
|
|
37
|
+
import * as i17 from '@progress/kendo-angular-layout';
|
|
38
38
|
import { TabStripComponent, TabStripModule } from '@progress/kendo-angular-layout';
|
|
39
39
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
40
40
|
import { getter } from '@progress/kendo-common';
|
|
@@ -2702,8 +2702,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
2702
2702
|
}] }]; } });
|
|
2703
2703
|
|
|
2704
2704
|
/**
|
|
2705
|
-
* Represents the filter-menu template
|
|
2705
|
+
* Represents the filter-menu template.
|
|
2706
|
+
* Helps to customize the content of the filter menu. To define the filter menu template, nest an `<ng-template>` tag with the
|
|
2707
|
+
* `kendoGridFilterMenuTemplate` directive inside a `<kendo-grid-column>` tag
|
|
2706
2708
|
* ([see example]({% slug filter_menu %}#toc-custom-filters)).
|
|
2709
|
+
*
|
|
2710
|
+
* The template context is set to the current data item and the following additional fields are passed:
|
|
2711
|
+
* - `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.
|
|
2712
|
+
* - `filter`—The provided filter descriptors. Use it as an alias for a template variable by utilizing the `let-filter="filter"` syntax.
|
|
2713
|
+
* - `filterService`—Represents the [`FilterService`]({% slug api_grid_filterservice %}). Use it as an alias for a template variable by utilizing the `let-filterService="filterService"` syntax.
|
|
2714
|
+
*
|
|
2715
|
+
* ```html
|
|
2716
|
+
* <kendo-grid-column field="CategoryID" title="Category">
|
|
2717
|
+
* <ng-template kendoGridFilterMenuTemplate
|
|
2718
|
+
* let-column="column"
|
|
2719
|
+
* let-filter="filter"
|
|
2720
|
+
* let-filterService="filterService"
|
|
2721
|
+
* >
|
|
2722
|
+
* ...
|
|
2723
|
+
* </ng-template>
|
|
2724
|
+
* ...
|
|
2725
|
+
* </kendo-grid-column>
|
|
2726
|
+
* ```
|
|
2707
2727
|
*/
|
|
2708
2728
|
class FilterMenuTemplateDirective {
|
|
2709
2729
|
constructor(templateRef) {
|
|
@@ -4422,8 +4442,8 @@ const packageMetadata = {
|
|
|
4422
4442
|
name: '@progress/kendo-angular-grid',
|
|
4423
4443
|
productName: 'Kendo UI for Angular',
|
|
4424
4444
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
4425
|
-
publishDate:
|
|
4426
|
-
version: '13.
|
|
4445
|
+
publishDate: 1692972014,
|
|
4446
|
+
version: '13.4.0-develop.10',
|
|
4427
4447
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
4428
4448
|
};
|
|
4429
4449
|
|
|
@@ -7039,23 +7059,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7039
7059
|
type: Input
|
|
7040
7060
|
}] } });
|
|
7041
7061
|
|
|
7062
|
+
// eslint-disable no-access-missing-member
|
|
7042
7063
|
/**
|
|
7043
|
-
* Displays
|
|
7064
|
+
* Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7044
7065
|
*/
|
|
7045
|
-
class
|
|
7046
|
-
constructor(ctx,
|
|
7066
|
+
class PagerInfoComponent extends PagerElementComponent {
|
|
7067
|
+
constructor(ctx, cd, pagerContext) {
|
|
7047
7068
|
super(ctx, pagerContext, cd);
|
|
7048
|
-
this.
|
|
7069
|
+
this.pagerContext = pagerContext;
|
|
7070
|
+
}
|
|
7071
|
+
/**
|
|
7072
|
+
* @hidden
|
|
7073
|
+
*
|
|
7074
|
+
* @readonly
|
|
7075
|
+
* @type {number}
|
|
7076
|
+
* @memberOf PagerInfoComponent
|
|
7077
|
+
*/
|
|
7078
|
+
get maxItems() {
|
|
7079
|
+
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
7080
|
+
}
|
|
7081
|
+
/**
|
|
7082
|
+
* @hidden
|
|
7083
|
+
*
|
|
7084
|
+
* @readonly
|
|
7085
|
+
* @type {number}
|
|
7086
|
+
* @memberOf PagerInfoComponent
|
|
7087
|
+
*/
|
|
7088
|
+
get currentPageText() {
|
|
7089
|
+
return this.total ?
|
|
7090
|
+
(this.currentPage - 1) * this.pageSize + 1 :
|
|
7091
|
+
0;
|
|
7049
7092
|
}
|
|
7050
7093
|
/**
|
|
7051
7094
|
* @hidden
|
|
7052
7095
|
*
|
|
7053
7096
|
* @readonly
|
|
7054
7097
|
* @type {boolean}
|
|
7055
|
-
* @memberOf
|
|
7098
|
+
* @memberOf PagerInfoComponent
|
|
7056
7099
|
*/
|
|
7057
|
-
get
|
|
7058
|
-
return
|
|
7100
|
+
get classes() {
|
|
7101
|
+
return true;
|
|
7059
7102
|
}
|
|
7060
7103
|
onChanges({ total, skip, pageSize }) {
|
|
7061
7104
|
this.total = total;
|
|
@@ -7064,162 +7107,260 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
7064
7107
|
this.cd.markForCheck();
|
|
7065
7108
|
}
|
|
7066
7109
|
}
|
|
7067
|
-
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
[kendoGridFocusable]="!disabled"
|
|
7071
|
-
kendoButton
|
|
7072
|
-
type="button"
|
|
7073
|
-
[title]="textFor('pagerFirstPage')"
|
|
7074
|
-
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7075
|
-
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7076
|
-
role="button"
|
|
7077
|
-
[icon]="prevArrowIcons[0]"
|
|
7078
|
-
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7079
|
-
class="k-pager-nav k-pager-first"
|
|
7080
|
-
[disabled]="disabled"
|
|
7081
|
-
fillMode="flat"
|
|
7082
|
-
rounded="none"
|
|
7083
|
-
[size]="size">
|
|
7084
|
-
</button>
|
|
7085
|
-
<button
|
|
7086
|
-
kendoButton
|
|
7087
|
-
[kendoGridFocusable]="!disabled"
|
|
7088
|
-
type="button"
|
|
7089
|
-
class="k-pager-nav"
|
|
7090
|
-
[disabled]="disabled"
|
|
7091
|
-
[icon]="prevArrowIcons[1]"
|
|
7092
|
-
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7093
|
-
fillMode="flat"
|
|
7094
|
-
rounded="none"
|
|
7095
|
-
[size]="size"
|
|
7096
|
-
[title]="textFor('pagerPreviousPage')"
|
|
7097
|
-
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7098
|
-
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7099
|
-
</button>
|
|
7100
|
-
`, 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 });
|
|
7101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
7110
|
+
PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7111
|
+
PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
7102
7113
|
type: Component,
|
|
7103
7114
|
args: [{
|
|
7104
7115
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7105
|
-
selector: 'kendo-pager-
|
|
7106
|
-
template: `
|
|
7107
|
-
<button
|
|
7108
|
-
[kendoGridFocusable]="!disabled"
|
|
7109
|
-
kendoButton
|
|
7110
|
-
type="button"
|
|
7111
|
-
[title]="textFor('pagerFirstPage')"
|
|
7112
|
-
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7113
|
-
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7114
|
-
role="button"
|
|
7115
|
-
[icon]="prevArrowIcons[0]"
|
|
7116
|
-
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7117
|
-
class="k-pager-nav k-pager-first"
|
|
7118
|
-
[disabled]="disabled"
|
|
7119
|
-
fillMode="flat"
|
|
7120
|
-
rounded="none"
|
|
7121
|
-
[size]="size">
|
|
7122
|
-
</button>
|
|
7123
|
-
<button
|
|
7124
|
-
kendoButton
|
|
7125
|
-
[kendoGridFocusable]="!disabled"
|
|
7126
|
-
type="button"
|
|
7127
|
-
class="k-pager-nav"
|
|
7128
|
-
[disabled]="disabled"
|
|
7129
|
-
[icon]="prevArrowIcons[1]"
|
|
7130
|
-
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7131
|
-
fillMode="flat"
|
|
7132
|
-
rounded="none"
|
|
7133
|
-
[size]="size"
|
|
7134
|
-
[title]="textFor('pagerPreviousPage')"
|
|
7135
|
-
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7136
|
-
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7137
|
-
</button>
|
|
7138
|
-
`
|
|
7116
|
+
selector: 'kendo-pager-info',
|
|
7117
|
+
template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
|
|
7139
7118
|
}]
|
|
7140
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type:
|
|
7119
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
|
|
7120
|
+
type: HostBinding,
|
|
7121
|
+
args: ["class.k-pager-info"]
|
|
7122
|
+
}, {
|
|
7123
|
+
type: HostBinding,
|
|
7124
|
+
args: ["class.k-label"]
|
|
7125
|
+
}] } });
|
|
7141
7126
|
|
|
7142
7127
|
/**
|
|
7143
|
-
*
|
|
7128
|
+
* @hidden
|
|
7144
7129
|
*/
|
|
7145
|
-
class
|
|
7146
|
-
constructor(
|
|
7130
|
+
class PagerDropDownListDirective {
|
|
7131
|
+
constructor(host) {
|
|
7132
|
+
this.host = host;
|
|
7133
|
+
this.keydownHandler = (e) => {
|
|
7134
|
+
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
7135
|
+
e.stopPropagation();
|
|
7136
|
+
this.host.toggle(false);
|
|
7137
|
+
}
|
|
7138
|
+
};
|
|
7139
|
+
}
|
|
7140
|
+
ngAfterViewInit() {
|
|
7141
|
+
const wrapperElement = this.host.wrapper.nativeElement;
|
|
7142
|
+
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
7143
|
+
}
|
|
7144
|
+
ngOnDestroy() {
|
|
7145
|
+
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
7146
|
+
}
|
|
7147
|
+
}
|
|
7148
|
+
PagerDropDownListDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, deps: [{ token: i1$4.DropDownListComponent }], target: i0.ɵɵFactoryTarget.Directive });
|
|
7149
|
+
PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
|
|
7150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
|
|
7151
|
+
type: Directive,
|
|
7152
|
+
args: [{ selector: '[kendoGridPagerDropDown]' }]
|
|
7153
|
+
}], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
|
|
7154
|
+
|
|
7155
|
+
/**
|
|
7156
|
+
* Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7157
|
+
*/
|
|
7158
|
+
class PagerPageSizesComponent extends PagerElementComponent {
|
|
7159
|
+
constructor(ctx, cd, pagerContext, navigationService) {
|
|
7147
7160
|
super(ctx, pagerContext, cd);
|
|
7148
7161
|
this.pagerContext = pagerContext;
|
|
7149
|
-
this.
|
|
7162
|
+
this.navigationService = navigationService;
|
|
7163
|
+
this._pageSizes = [];
|
|
7150
7164
|
}
|
|
7151
7165
|
/**
|
|
7152
|
-
*
|
|
7153
|
-
*
|
|
7154
|
-
* @readonly
|
|
7155
|
-
* @type {number[]}
|
|
7156
|
-
* @memberOf PagerNumericButtonsComponent
|
|
7166
|
+
* The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
|
|
7167
|
+
* ([see example]({% slug paging_grid %}#toc-pager-templates))
|
|
7157
7168
|
*/
|
|
7158
|
-
|
|
7159
|
-
|
|
7160
|
-
|
|
7161
|
-
|
|
7169
|
+
set pageSizes(pageSizes) {
|
|
7170
|
+
let normalizedItems = [];
|
|
7171
|
+
pageSizes.forEach(item => {
|
|
7172
|
+
if (typeof item === 'number') {
|
|
7173
|
+
normalizedItems.push({
|
|
7174
|
+
text: item.toString(),
|
|
7175
|
+
value: item
|
|
7176
|
+
});
|
|
7177
|
+
}
|
|
7178
|
+
else {
|
|
7179
|
+
normalizedItems.push(item);
|
|
7180
|
+
}
|
|
7181
|
+
});
|
|
7182
|
+
if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
|
|
7183
|
+
normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
|
|
7162
7184
|
}
|
|
7163
|
-
|
|
7185
|
+
this._pageSizes = normalizedItems;
|
|
7186
|
+
}
|
|
7187
|
+
get pageSizes() {
|
|
7188
|
+
return this._pageSizes;
|
|
7164
7189
|
}
|
|
7165
7190
|
/**
|
|
7166
7191
|
* @hidden
|
|
7192
|
+
*
|
|
7193
|
+
* @readonly
|
|
7167
7194
|
*/
|
|
7168
|
-
get
|
|
7169
|
-
return
|
|
7195
|
+
get classes() {
|
|
7196
|
+
return true;
|
|
7170
7197
|
}
|
|
7171
7198
|
/**
|
|
7172
7199
|
* @hidden
|
|
7200
|
+
*
|
|
7201
|
+
* @readonly
|
|
7173
7202
|
*/
|
|
7174
|
-
get
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7203
|
+
get showInitialPageSize() {
|
|
7204
|
+
return this.pageSizes
|
|
7205
|
+
.filter(item => {
|
|
7206
|
+
if (typeof item.value === 'number') {
|
|
7207
|
+
return item.value === Number(this.pageSize);
|
|
7208
|
+
}
|
|
7209
|
+
return this.total === Number(this.pageSize);
|
|
7210
|
+
})
|
|
7211
|
+
.length === 0;
|
|
7182
7212
|
}
|
|
7183
7213
|
/**
|
|
7184
7214
|
* @hidden
|
|
7185
7215
|
*/
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
return pageText + ' ' + num;
|
|
7190
|
-
}
|
|
7191
|
-
return num.toString();
|
|
7216
|
+
pageSizeChange(value) {
|
|
7217
|
+
this.pageSize = typeof value === 'number' ? value : this.total;
|
|
7218
|
+
this.pagerContext.changePageSize(this.pageSize);
|
|
7192
7219
|
}
|
|
7193
7220
|
/**
|
|
7194
7221
|
* @hidden
|
|
7195
7222
|
*/
|
|
7196
|
-
|
|
7197
|
-
|
|
7198
|
-
const valueAsNumber = Number(target.value);
|
|
7199
|
-
if (!Number.isNaN(valueAsNumber)) {
|
|
7200
|
-
this.changePage(valueAsNumber - 1);
|
|
7201
|
-
}
|
|
7202
|
-
else {
|
|
7203
|
-
if (target.value === 'previousButtons') {
|
|
7204
|
-
this.changePage(this.start - 2);
|
|
7205
|
-
}
|
|
7206
|
-
else {
|
|
7207
|
-
this.changePage(this.end);
|
|
7208
|
-
}
|
|
7209
|
-
}
|
|
7223
|
+
getValue(page) {
|
|
7224
|
+
return typeof page.value === 'number' ? page.value : this.total;
|
|
7210
7225
|
}
|
|
7211
7226
|
onChanges({ total, skip, pageSize }) {
|
|
7212
7227
|
this.total = total;
|
|
7213
7228
|
this.skip = skip;
|
|
7214
|
-
this.pageSize = pageSize;
|
|
7229
|
+
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
7215
7230
|
this.cd.markForCheck();
|
|
7216
7231
|
}
|
|
7217
7232
|
}
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
<
|
|
7233
|
+
PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7234
|
+
PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
|
|
7235
|
+
<kendo-dropdownlist
|
|
7236
|
+
class="k-dropdown"
|
|
7237
|
+
#dropdownlist
|
|
7238
|
+
[size]="size"
|
|
7239
|
+
kendoGridPagerDropDown
|
|
7240
|
+
[tabindex]="0"
|
|
7241
|
+
kendoGridFocusable
|
|
7242
|
+
[data]="pageSizes"
|
|
7243
|
+
textField="text"
|
|
7244
|
+
valueField="value"
|
|
7245
|
+
[valuePrimitive]="true"
|
|
7246
|
+
[value]="pageSize"
|
|
7247
|
+
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
7248
|
+
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
7249
|
+
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i5.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]" }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
7251
|
+
type: Component,
|
|
7252
|
+
args: [{
|
|
7253
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7254
|
+
selector: 'kendo-pager-page-sizes',
|
|
7255
|
+
template: `
|
|
7256
|
+
<kendo-dropdownlist
|
|
7257
|
+
class="k-dropdown"
|
|
7258
|
+
#dropdownlist
|
|
7259
|
+
[size]="size"
|
|
7260
|
+
kendoGridPagerDropDown
|
|
7261
|
+
[tabindex]="0"
|
|
7262
|
+
kendoGridFocusable
|
|
7263
|
+
[data]="pageSizes"
|
|
7264
|
+
textField="text"
|
|
7265
|
+
valueField="value"
|
|
7266
|
+
[valuePrimitive]="true"
|
|
7267
|
+
[value]="pageSize"
|
|
7268
|
+
(valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
|
|
7269
|
+
<kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
|
|
7270
|
+
`
|
|
7271
|
+
}]
|
|
7272
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: NavigationService }]; }, propDecorators: { pageSizes: [{
|
|
7273
|
+
type: Input
|
|
7274
|
+
}], classes: [{
|
|
7275
|
+
type: HostBinding,
|
|
7276
|
+
args: ['class.k-pager-sizes']
|
|
7277
|
+
}, {
|
|
7278
|
+
type: HostBinding,
|
|
7279
|
+
args: ['class.k-label']
|
|
7280
|
+
}] } });
|
|
7281
|
+
|
|
7282
|
+
/**
|
|
7283
|
+
* Displays numeric buttons to enable navigation between the pages ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7284
|
+
*/
|
|
7285
|
+
class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
7286
|
+
constructor(ctx, cd, pagerContext) {
|
|
7287
|
+
super(ctx, pagerContext, cd);
|
|
7288
|
+
this.pagerContext = pagerContext;
|
|
7289
|
+
}
|
|
7290
|
+
/**
|
|
7291
|
+
* @hidden
|
|
7292
|
+
*
|
|
7293
|
+
* @readonly
|
|
7294
|
+
* @type {number[]}
|
|
7295
|
+
* @memberOf PagerNumericButtonsComponent
|
|
7296
|
+
*/
|
|
7297
|
+
get buttons() {
|
|
7298
|
+
const result = [];
|
|
7299
|
+
for (let idx = this.start; idx <= this.end; idx++) {
|
|
7300
|
+
result.push(idx);
|
|
7301
|
+
}
|
|
7302
|
+
return result;
|
|
7303
|
+
}
|
|
7304
|
+
/**
|
|
7305
|
+
* @hidden
|
|
7306
|
+
*/
|
|
7307
|
+
get end() {
|
|
7308
|
+
return Math.min((this.start + this.buttonCount) - 1, this.totalPages);
|
|
7309
|
+
}
|
|
7310
|
+
/**
|
|
7311
|
+
* @hidden
|
|
7312
|
+
*/
|
|
7313
|
+
get start() {
|
|
7314
|
+
const page = this.currentPage;
|
|
7315
|
+
const buttonCount = this.buttonCount;
|
|
7316
|
+
if (page > buttonCount) {
|
|
7317
|
+
const reminder = (page % buttonCount);
|
|
7318
|
+
return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;
|
|
7319
|
+
}
|
|
7320
|
+
return 1;
|
|
7321
|
+
}
|
|
7322
|
+
/**
|
|
7323
|
+
* @hidden
|
|
7324
|
+
*/
|
|
7325
|
+
pageLabel(num) {
|
|
7326
|
+
const pageText = this.textFor('pagerPage');
|
|
7327
|
+
if (pageText) {
|
|
7328
|
+
return pageText + ' ' + num;
|
|
7329
|
+
}
|
|
7330
|
+
return num.toString();
|
|
7331
|
+
}
|
|
7332
|
+
/**
|
|
7333
|
+
* @hidden
|
|
7334
|
+
*/
|
|
7335
|
+
onSelectChange(e) {
|
|
7336
|
+
const target = e.target;
|
|
7337
|
+
const valueAsNumber = Number(target.value);
|
|
7338
|
+
if (!Number.isNaN(valueAsNumber)) {
|
|
7339
|
+
this.changePage(valueAsNumber - 1);
|
|
7340
|
+
}
|
|
7341
|
+
else {
|
|
7342
|
+
if (target.value === 'previousButtons') {
|
|
7343
|
+
this.changePage(this.start - 2);
|
|
7344
|
+
}
|
|
7345
|
+
else {
|
|
7346
|
+
this.changePage(this.end);
|
|
7347
|
+
}
|
|
7348
|
+
}
|
|
7349
|
+
}
|
|
7350
|
+
onChanges({ total, skip, pageSize }) {
|
|
7351
|
+
this.total = total;
|
|
7352
|
+
this.skip = skip;
|
|
7353
|
+
this.pageSize = pageSize;
|
|
7354
|
+
this.cd.markForCheck();
|
|
7355
|
+
}
|
|
7356
|
+
}
|
|
7357
|
+
PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: ContextService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7358
|
+
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["select"], descendants: true, read: ElementRef }, { propertyName: "numbersElement", first: true, predicate: ["numbers"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
|
|
7359
|
+
<select
|
|
7360
|
+
#select
|
|
7221
7361
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
7222
7362
|
kendoGridFocusable
|
|
7363
|
+
[style.display]="'none'"
|
|
7223
7364
|
[attr.title]="textFor('selectPage')"
|
|
7224
7365
|
[attr.aria-label]="textFor('selectPage')"
|
|
7225
7366
|
[ngClass]="{
|
|
@@ -7246,7 +7387,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
7246
7387
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
7247
7388
|
</option>
|
|
7248
7389
|
</select>
|
|
7249
|
-
<div class="k-pager-numbers">
|
|
7390
|
+
<div class="k-pager-numbers" #numbers>
|
|
7250
7391
|
<button *ngIf="start > 1"
|
|
7251
7392
|
type="button"
|
|
7252
7393
|
kendoGridFocusable
|
|
@@ -7296,8 +7437,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7296
7437
|
selector: 'kendo-pager-numeric-buttons',
|
|
7297
7438
|
template: `
|
|
7298
7439
|
<select
|
|
7440
|
+
#select
|
|
7299
7441
|
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
7300
7442
|
kendoGridFocusable
|
|
7443
|
+
[style.display]="'none'"
|
|
7301
7444
|
[attr.title]="textFor('selectPage')"
|
|
7302
7445
|
[attr.aria-label]="textFor('selectPage')"
|
|
7303
7446
|
[ngClass]="{
|
|
@@ -7324,7 +7467,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7324
7467
|
[attr.aria-label]="pageLabel(end + 1)">...
|
|
7325
7468
|
</option>
|
|
7326
7469
|
</select>
|
|
7327
|
-
<div class="k-pager-numbers">
|
|
7470
|
+
<div class="k-pager-numbers" #numbers>
|
|
7328
7471
|
<button *ngIf="start > 1"
|
|
7329
7472
|
type="button"
|
|
7330
7473
|
kendoGridFocusable
|
|
@@ -7368,13 +7511,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
7368
7511
|
</div>
|
|
7369
7512
|
`
|
|
7370
7513
|
}]
|
|
7371
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: {
|
|
7372
|
-
type:
|
|
7373
|
-
args: ['
|
|
7514
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { selectElement: [{
|
|
7515
|
+
type: ViewChild,
|
|
7516
|
+
args: ['select', { read: ElementRef }]
|
|
7517
|
+
}], numbersElement: [{
|
|
7518
|
+
type: ViewChild,
|
|
7519
|
+
args: ['numbers', { read: ElementRef }]
|
|
7374
7520
|
}], buttonCount: [{
|
|
7375
7521
|
type: Input
|
|
7376
7522
|
}] } });
|
|
7377
7523
|
|
|
7524
|
+
/**
|
|
7525
|
+
* Displays buttons for navigating to the first and to the previous page ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7526
|
+
*/
|
|
7527
|
+
class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
7528
|
+
constructor(ctx, pagerContext, cd, navigationService) {
|
|
7529
|
+
super(ctx, pagerContext, cd);
|
|
7530
|
+
this.navigationService = navigationService;
|
|
7531
|
+
}
|
|
7532
|
+
/**
|
|
7533
|
+
* @hidden
|
|
7534
|
+
*
|
|
7535
|
+
* @readonly
|
|
7536
|
+
* @type {boolean}
|
|
7537
|
+
* @memberOf PagerPrevButtonsComponent
|
|
7538
|
+
*/
|
|
7539
|
+
get disabled() {
|
|
7540
|
+
return this.currentPage === 1 || !this.total;
|
|
7541
|
+
}
|
|
7542
|
+
onChanges({ total, skip, pageSize }) {
|
|
7543
|
+
this.total = total;
|
|
7544
|
+
this.skip = skip;
|
|
7545
|
+
this.pageSize = pageSize;
|
|
7546
|
+
this.cd.markForCheck();
|
|
7547
|
+
}
|
|
7548
|
+
}
|
|
7549
|
+
PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: ContextService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7550
|
+
PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
|
|
7551
|
+
<button
|
|
7552
|
+
[kendoGridFocusable]="!disabled"
|
|
7553
|
+
kendoButton
|
|
7554
|
+
type="button"
|
|
7555
|
+
[title]="textFor('pagerFirstPage')"
|
|
7556
|
+
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7557
|
+
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7558
|
+
role="button"
|
|
7559
|
+
[icon]="prevArrowIcons[0]"
|
|
7560
|
+
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7561
|
+
class="k-pager-nav k-pager-first"
|
|
7562
|
+
[disabled]="disabled"
|
|
7563
|
+
fillMode="flat"
|
|
7564
|
+
rounded="none"
|
|
7565
|
+
[size]="size">
|
|
7566
|
+
</button>
|
|
7567
|
+
<button
|
|
7568
|
+
kendoButton
|
|
7569
|
+
[kendoGridFocusable]="!disabled"
|
|
7570
|
+
type="button"
|
|
7571
|
+
class="k-pager-nav"
|
|
7572
|
+
[disabled]="disabled"
|
|
7573
|
+
[icon]="prevArrowIcons[1]"
|
|
7574
|
+
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7575
|
+
fillMode="flat"
|
|
7576
|
+
rounded="none"
|
|
7577
|
+
[size]="size"
|
|
7578
|
+
[title]="textFor('pagerPreviousPage')"
|
|
7579
|
+
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7580
|
+
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7581
|
+
</button>
|
|
7582
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7583
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
7584
|
+
type: Component,
|
|
7585
|
+
args: [{
|
|
7586
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7587
|
+
selector: 'kendo-pager-prev-buttons',
|
|
7588
|
+
template: `
|
|
7589
|
+
<button
|
|
7590
|
+
[kendoGridFocusable]="!disabled"
|
|
7591
|
+
kendoButton
|
|
7592
|
+
type="button"
|
|
7593
|
+
[title]="textFor('pagerFirstPage')"
|
|
7594
|
+
[attr.aria-label]="textFor('pagerFirstPage')"
|
|
7595
|
+
(click)="currentPage !== 1 ? changePage(0) : false"
|
|
7596
|
+
role="button"
|
|
7597
|
+
[icon]="prevArrowIcons[0]"
|
|
7598
|
+
[svgIcon]="prevArrowSVGIcons[0]"
|
|
7599
|
+
class="k-pager-nav k-pager-first"
|
|
7600
|
+
[disabled]="disabled"
|
|
7601
|
+
fillMode="flat"
|
|
7602
|
+
rounded="none"
|
|
7603
|
+
[size]="size">
|
|
7604
|
+
</button>
|
|
7605
|
+
<button
|
|
7606
|
+
kendoButton
|
|
7607
|
+
[kendoGridFocusable]="!disabled"
|
|
7608
|
+
type="button"
|
|
7609
|
+
class="k-pager-nav"
|
|
7610
|
+
[disabled]="disabled"
|
|
7611
|
+
[icon]="prevArrowIcons[1]"
|
|
7612
|
+
[svgIcon]="prevArrowSVGIcons[1]"
|
|
7613
|
+
fillMode="flat"
|
|
7614
|
+
rounded="none"
|
|
7615
|
+
[size]="size"
|
|
7616
|
+
[title]="textFor('pagerPreviousPage')"
|
|
7617
|
+
[attr.aria-label]="textFor('pagerPreviousPage')"
|
|
7618
|
+
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
7619
|
+
</button>
|
|
7620
|
+
`
|
|
7621
|
+
}]
|
|
7622
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7623
|
+
|
|
7378
7624
|
/**
|
|
7379
7625
|
* @hidden
|
|
7380
7626
|
*/
|
|
@@ -7546,296 +7792,76 @@ class PagerNextButtonsComponent extends PagerElementComponent {
|
|
|
7546
7792
|
}
|
|
7547
7793
|
PagerNextButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, deps: [{ token: ContextService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7548
7794
|
PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNextButtonsComponent, selector: "kendo-pager-next-buttons", usesInheritance: true, ngImport: i0, template: `
|
|
7549
|
-
<button
|
|
7550
|
-
kendoButton
|
|
7551
|
-
[kendoGridFocusable]="!disabled"
|
|
7552
|
-
type="button"
|
|
7553
|
-
[size]="size"
|
|
7554
|
-
[icon]="nextArrowIcons[0]"
|
|
7555
|
-
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7556
|
-
fillMode="flat"
|
|
7557
|
-
rounded="none"
|
|
7558
|
-
class="k-pager-nav"
|
|
7559
|
-
[disabled]="disabled"
|
|
7560
|
-
[title]="textFor('pagerNextPage')"
|
|
7561
|
-
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7562
|
-
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7563
|
-
</button>
|
|
7564
|
-
<button
|
|
7565
|
-
kendoButton
|
|
7566
|
-
[kendoGridFocusable]="!disabled"
|
|
7567
|
-
type="button"
|
|
7568
|
-
[size]="size"
|
|
7569
|
-
[icon]="nextArrowIcons[1]"
|
|
7570
|
-
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7571
|
-
fillMode="flat"
|
|
7572
|
-
rounded="none"
|
|
7573
|
-
class="k-pager-nav k-pager-last"
|
|
7574
|
-
[disabled]="disabled"
|
|
7575
|
-
[title]="textFor('pagerLastPage')"
|
|
7576
|
-
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7577
|
-
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7578
|
-
</button>
|
|
7579
|
-
`, 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 });
|
|
7580
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
7581
|
-
type: Component,
|
|
7582
|
-
args: [{
|
|
7583
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7584
|
-
selector: 'kendo-pager-next-buttons',
|
|
7585
|
-
template: `
|
|
7586
|
-
<button
|
|
7587
|
-
kendoButton
|
|
7588
|
-
[kendoGridFocusable]="!disabled"
|
|
7589
|
-
type="button"
|
|
7590
|
-
[size]="size"
|
|
7591
|
-
[icon]="nextArrowIcons[0]"
|
|
7592
|
-
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7593
|
-
fillMode="flat"
|
|
7594
|
-
rounded="none"
|
|
7595
|
-
class="k-pager-nav"
|
|
7596
|
-
[disabled]="disabled"
|
|
7597
|
-
[title]="textFor('pagerNextPage')"
|
|
7598
|
-
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7599
|
-
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7600
|
-
</button>
|
|
7601
|
-
<button
|
|
7602
|
-
kendoButton
|
|
7603
|
-
[kendoGridFocusable]="!disabled"
|
|
7604
|
-
type="button"
|
|
7605
|
-
[size]="size"
|
|
7606
|
-
[icon]="nextArrowIcons[1]"
|
|
7607
|
-
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7608
|
-
fillMode="flat"
|
|
7609
|
-
rounded="none"
|
|
7610
|
-
class="k-pager-nav k-pager-last"
|
|
7611
|
-
[disabled]="disabled"
|
|
7612
|
-
[title]="textFor('pagerLastPage')"
|
|
7613
|
-
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7614
|
-
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7615
|
-
</button>
|
|
7616
|
-
`
|
|
7617
|
-
}]
|
|
7618
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7619
|
-
|
|
7620
|
-
// eslint-disable no-access-missing-member
|
|
7621
|
-
/**
|
|
7622
|
-
* Displays information about the current page and the total number of records ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7623
|
-
*/
|
|
7624
|
-
class PagerInfoComponent extends PagerElementComponent {
|
|
7625
|
-
constructor(ctx, cd, pagerContext) {
|
|
7626
|
-
super(ctx, pagerContext, cd);
|
|
7627
|
-
this.pagerContext = pagerContext;
|
|
7628
|
-
}
|
|
7629
|
-
/**
|
|
7630
|
-
* @hidden
|
|
7631
|
-
*
|
|
7632
|
-
* @readonly
|
|
7633
|
-
* @type {number}
|
|
7634
|
-
* @memberOf PagerInfoComponent
|
|
7635
|
-
*/
|
|
7636
|
-
get maxItems() {
|
|
7637
|
-
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
7638
|
-
}
|
|
7639
|
-
/**
|
|
7640
|
-
* @hidden
|
|
7641
|
-
*
|
|
7642
|
-
* @readonly
|
|
7643
|
-
* @type {number}
|
|
7644
|
-
* @memberOf PagerInfoComponent
|
|
7645
|
-
*/
|
|
7646
|
-
get currentPageText() {
|
|
7647
|
-
return this.total ?
|
|
7648
|
-
(this.currentPage - 1) * this.pageSize + 1 :
|
|
7649
|
-
0;
|
|
7650
|
-
}
|
|
7651
|
-
/**
|
|
7652
|
-
* @hidden
|
|
7653
|
-
*
|
|
7654
|
-
* @readonly
|
|
7655
|
-
* @type {boolean}
|
|
7656
|
-
* @memberOf PagerInfoComponent
|
|
7657
|
-
*/
|
|
7658
|
-
get classes() {
|
|
7659
|
-
return true;
|
|
7660
|
-
}
|
|
7661
|
-
onChanges({ total, skip, pageSize }) {
|
|
7662
|
-
this.total = total;
|
|
7663
|
-
this.skip = skip;
|
|
7664
|
-
this.pageSize = pageSize;
|
|
7665
|
-
this.cd.markForCheck();
|
|
7666
|
-
}
|
|
7667
|
-
}
|
|
7668
|
-
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 });
|
|
7669
|
-
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 });
|
|
7670
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
7671
|
-
type: Component,
|
|
7672
|
-
args: [{
|
|
7673
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7674
|
-
selector: 'kendo-pager-info',
|
|
7675
|
-
template: `{{currentPageText}} - {{maxItems}} {{textFor('pagerOf')}} {{total}} {{textFor('pagerItems')}}`
|
|
7676
|
-
}]
|
|
7677
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
|
|
7678
|
-
type: HostBinding,
|
|
7679
|
-
args: ["class.k-pager-info"]
|
|
7680
|
-
}, {
|
|
7681
|
-
type: HostBinding,
|
|
7682
|
-
args: ["class.k-label"]
|
|
7683
|
-
}] } });
|
|
7684
|
-
|
|
7685
|
-
/**
|
|
7686
|
-
* @hidden
|
|
7687
|
-
*/
|
|
7688
|
-
class PagerDropDownListDirective {
|
|
7689
|
-
constructor(host) {
|
|
7690
|
-
this.host = host;
|
|
7691
|
-
this.keydownHandler = (e) => {
|
|
7692
|
-
if (e.keyCode === Keys.Escape && this.host.isOpen) {
|
|
7693
|
-
e.stopPropagation();
|
|
7694
|
-
this.host.toggle(false);
|
|
7695
|
-
}
|
|
7696
|
-
};
|
|
7697
|
-
}
|
|
7698
|
-
ngAfterViewInit() {
|
|
7699
|
-
const wrapperElement = this.host.wrapper.nativeElement;
|
|
7700
|
-
wrapperElement.addEventListener('keydown', this.keydownHandler, true);
|
|
7701
|
-
}
|
|
7702
|
-
ngOnDestroy() {
|
|
7703
|
-
this.host.wrapper.nativeElement.removeEventListener('keydown', this.keydownHandler);
|
|
7704
|
-
}
|
|
7705
|
-
}
|
|
7706
|
-
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 });
|
|
7707
|
-
PagerDropDownListDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: PagerDropDownListDirective, selector: "[kendoGridPagerDropDown]", ngImport: i0 });
|
|
7708
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerDropDownListDirective, decorators: [{
|
|
7709
|
-
type: Directive,
|
|
7710
|
-
args: [{ selector: '[kendoGridPagerDropDown]' }]
|
|
7711
|
-
}], ctorParameters: function () { return [{ type: i1$4.DropDownListComponent }]; } });
|
|
7712
|
-
|
|
7713
|
-
/**
|
|
7714
|
-
* Displays a drop-down list for the page size selection ([see example](slug:pager_template_grid#toc-using-built-in-pager-components)).
|
|
7715
|
-
*/
|
|
7716
|
-
class PagerPageSizesComponent extends PagerElementComponent {
|
|
7717
|
-
constructor(ctx, cd, pagerContext, navigationService) {
|
|
7718
|
-
super(ctx, pagerContext, cd);
|
|
7719
|
-
this.pagerContext = pagerContext;
|
|
7720
|
-
this.navigationService = navigationService;
|
|
7721
|
-
this._pageSizes = [];
|
|
7722
|
-
}
|
|
7723
|
-
/**
|
|
7724
|
-
* The page sizes collection. Can be an Array of numbers and/or [`PageSizeItem`](slug:api_grid_pagesizeitem) objects
|
|
7725
|
-
* ([see example]({% slug paging_grid %}#toc-pager-templates))
|
|
7726
|
-
*/
|
|
7727
|
-
set pageSizes(pageSizes) {
|
|
7728
|
-
let normalizedItems = [];
|
|
7729
|
-
pageSizes.forEach(item => {
|
|
7730
|
-
if (typeof item === 'number') {
|
|
7731
|
-
normalizedItems.push({
|
|
7732
|
-
text: item.toString(),
|
|
7733
|
-
value: item
|
|
7734
|
-
});
|
|
7735
|
-
}
|
|
7736
|
-
else {
|
|
7737
|
-
normalizedItems.push(item);
|
|
7738
|
-
}
|
|
7739
|
-
});
|
|
7740
|
-
if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
|
|
7741
|
-
normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
|
|
7742
|
-
}
|
|
7743
|
-
this._pageSizes = normalizedItems;
|
|
7744
|
-
}
|
|
7745
|
-
get pageSizes() {
|
|
7746
|
-
return this._pageSizes;
|
|
7747
|
-
}
|
|
7748
|
-
/**
|
|
7749
|
-
* @hidden
|
|
7750
|
-
*
|
|
7751
|
-
* @readonly
|
|
7752
|
-
*/
|
|
7753
|
-
get classes() {
|
|
7754
|
-
return true;
|
|
7755
|
-
}
|
|
7756
|
-
/**
|
|
7757
|
-
* @hidden
|
|
7758
|
-
*
|
|
7759
|
-
* @readonly
|
|
7760
|
-
*/
|
|
7761
|
-
get showInitialPageSize() {
|
|
7762
|
-
return this.pageSizes
|
|
7763
|
-
.filter(item => {
|
|
7764
|
-
if (typeof item.value === 'number') {
|
|
7765
|
-
return item.value === Number(this.pageSize);
|
|
7766
|
-
}
|
|
7767
|
-
return this.total === Number(this.pageSize);
|
|
7768
|
-
})
|
|
7769
|
-
.length === 0;
|
|
7770
|
-
}
|
|
7771
|
-
/**
|
|
7772
|
-
* @hidden
|
|
7773
|
-
*/
|
|
7774
|
-
pageSizeChange(value) {
|
|
7775
|
-
this.pageSize = typeof value === 'number' ? value : this.total;
|
|
7776
|
-
this.pagerContext.changePageSize(this.pageSize);
|
|
7777
|
-
}
|
|
7778
|
-
/**
|
|
7779
|
-
* @hidden
|
|
7780
|
-
*/
|
|
7781
|
-
getValue(page) {
|
|
7782
|
-
return typeof page.value === 'number' ? page.value : this.total;
|
|
7783
|
-
}
|
|
7784
|
-
onChanges({ total, skip, pageSize }) {
|
|
7785
|
-
this.total = total;
|
|
7786
|
-
this.skip = skip;
|
|
7787
|
-
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
7788
|
-
this.cd.markForCheck();
|
|
7789
|
-
}
|
|
7790
|
-
}
|
|
7791
|
-
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 });
|
|
7792
|
-
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: `
|
|
7793
|
-
<kendo-dropdownlist
|
|
7794
|
-
class="k-dropdown"
|
|
7795
|
-
#dropdownlist
|
|
7795
|
+
<button
|
|
7796
|
+
kendoButton
|
|
7797
|
+
[kendoGridFocusable]="!disabled"
|
|
7798
|
+
type="button"
|
|
7796
7799
|
[size]="size"
|
|
7797
|
-
|
|
7798
|
-
[
|
|
7799
|
-
|
|
7800
|
-
|
|
7801
|
-
|
|
7802
|
-
|
|
7803
|
-
[
|
|
7804
|
-
[
|
|
7805
|
-
(
|
|
7806
|
-
|
|
7807
|
-
|
|
7808
|
-
|
|
7800
|
+
[icon]="nextArrowIcons[0]"
|
|
7801
|
+
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7802
|
+
fillMode="flat"
|
|
7803
|
+
rounded="none"
|
|
7804
|
+
class="k-pager-nav"
|
|
7805
|
+
[disabled]="disabled"
|
|
7806
|
+
[title]="textFor('pagerNextPage')"
|
|
7807
|
+
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7808
|
+
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7809
|
+
</button>
|
|
7810
|
+
<button
|
|
7811
|
+
kendoButton
|
|
7812
|
+
[kendoGridFocusable]="!disabled"
|
|
7813
|
+
type="button"
|
|
7814
|
+
[size]="size"
|
|
7815
|
+
[icon]="nextArrowIcons[1]"
|
|
7816
|
+
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7817
|
+
fillMode="flat"
|
|
7818
|
+
rounded="none"
|
|
7819
|
+
class="k-pager-nav k-pager-last"
|
|
7820
|
+
[disabled]="disabled"
|
|
7821
|
+
[title]="textFor('pagerLastPage')"
|
|
7822
|
+
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7823
|
+
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7824
|
+
</button>
|
|
7825
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7826
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
7809
7827
|
type: Component,
|
|
7810
7828
|
args: [{
|
|
7811
7829
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7812
|
-
selector: 'kendo-pager-
|
|
7830
|
+
selector: 'kendo-pager-next-buttons',
|
|
7813
7831
|
template: `
|
|
7814
|
-
<
|
|
7815
|
-
|
|
7816
|
-
|
|
7832
|
+
<button
|
|
7833
|
+
kendoButton
|
|
7834
|
+
[kendoGridFocusable]="!disabled"
|
|
7835
|
+
type="button"
|
|
7817
7836
|
[size]="size"
|
|
7818
|
-
|
|
7819
|
-
[
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
|
|
7824
|
-
[
|
|
7825
|
-
[
|
|
7826
|
-
(
|
|
7827
|
-
|
|
7837
|
+
[icon]="nextArrowIcons[0]"
|
|
7838
|
+
[svgIcon]="nextArrowSVGIcons[0]"
|
|
7839
|
+
fillMode="flat"
|
|
7840
|
+
rounded="none"
|
|
7841
|
+
class="k-pager-nav"
|
|
7842
|
+
[disabled]="disabled"
|
|
7843
|
+
[title]="textFor('pagerNextPage')"
|
|
7844
|
+
[attr.aria-label]="textFor('pagerNextPage')"
|
|
7845
|
+
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
7846
|
+
</button>
|
|
7847
|
+
<button
|
|
7848
|
+
kendoButton
|
|
7849
|
+
[kendoGridFocusable]="!disabled"
|
|
7850
|
+
type="button"
|
|
7851
|
+
[size]="size"
|
|
7852
|
+
[icon]="nextArrowIcons[1]"
|
|
7853
|
+
[svgIcon]="nextArrowSVGIcons[1]"
|
|
7854
|
+
fillMode="flat"
|
|
7855
|
+
rounded="none"
|
|
7856
|
+
class="k-pager-nav k-pager-last"
|
|
7857
|
+
[disabled]="disabled"
|
|
7858
|
+
[title]="textFor('pagerLastPage')"
|
|
7859
|
+
[attr.aria-label]="textFor('pagerLastPage')"
|
|
7860
|
+
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
7861
|
+
</button>
|
|
7828
7862
|
`
|
|
7829
7863
|
}]
|
|
7830
|
-
}], ctorParameters: function () { return [{ type: ContextService }, { type:
|
|
7831
|
-
type: Input
|
|
7832
|
-
}], classes: [{
|
|
7833
|
-
type: HostBinding,
|
|
7834
|
-
args: ['class.k-pager-sizes']
|
|
7835
|
-
}, {
|
|
7836
|
-
type: HostBinding,
|
|
7837
|
-
args: ['class.k-label']
|
|
7838
|
-
}] } });
|
|
7864
|
+
}], ctorParameters: function () { return [{ type: ContextService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
|
|
7839
7865
|
|
|
7840
7866
|
/**
|
|
7841
7867
|
* @hidden
|
|
@@ -7866,18 +7892,33 @@ class PagerComponent {
|
|
|
7866
7892
|
if (this.template || !element) {
|
|
7867
7893
|
return;
|
|
7868
7894
|
}
|
|
7869
|
-
|
|
7870
|
-
|
|
7871
|
-
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
|
|
7876
|
-
|
|
7877
|
-
|
|
7878
|
-
|
|
7879
|
-
|
|
7880
|
-
|
|
7895
|
+
this.zone.runOutsideAngular(() => {
|
|
7896
|
+
setTimeout(() => {
|
|
7897
|
+
const width = element.offsetWidth;
|
|
7898
|
+
if (this.numericButtons) {
|
|
7899
|
+
const selectElement = this.numericButtons.selectElement.nativeElement;
|
|
7900
|
+
const numbersElement = this.numericButtons.numbersElement.nativeElement;
|
|
7901
|
+
this.renderer.removeStyle(numbersElement, 'display');
|
|
7902
|
+
this.renderer.setStyle(selectElement, 'display', 'none');
|
|
7903
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
7904
|
+
this.renderer.removeStyle(selectElement, 'display');
|
|
7905
|
+
this.renderer.setStyle(numbersElement, 'display', 'none');
|
|
7906
|
+
}
|
|
7907
|
+
}
|
|
7908
|
+
if (this.pagerInfo) {
|
|
7909
|
+
this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
7910
|
+
if (width < RESPONSIVE_BREAKPOINT_LARGE) {
|
|
7911
|
+
this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
|
|
7912
|
+
}
|
|
7913
|
+
}
|
|
7914
|
+
if (this.pagerPageSizes) {
|
|
7915
|
+
this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
7916
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
7917
|
+
this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
|
|
7918
|
+
}
|
|
7919
|
+
}
|
|
7920
|
+
});
|
|
7921
|
+
});
|
|
7881
7922
|
};
|
|
7882
7923
|
}
|
|
7883
7924
|
set options(value) {
|
|
@@ -7996,12 +8037,10 @@ class PagerComponent {
|
|
|
7996
8037
|
}
|
|
7997
8038
|
const changesInTemplate = changes['template'];
|
|
7998
8039
|
if (changesInTemplate) {
|
|
7999
|
-
|
|
8000
|
-
changesInTemplate.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
|
|
8040
|
+
changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
|
|
8001
8041
|
}
|
|
8002
8042
|
if (changes['options']) {
|
|
8003
|
-
|
|
8004
|
-
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
|
|
8043
|
+
this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
|
|
8005
8044
|
}
|
|
8006
8045
|
}
|
|
8007
8046
|
ngOnDestroy() {
|
|
@@ -8027,11 +8066,6 @@ class PagerComponent {
|
|
|
8027
8066
|
}
|
|
8028
8067
|
});
|
|
8029
8068
|
}
|
|
8030
|
-
clearResponsiveClasses() {
|
|
8031
|
-
const element = this.element.nativeElement;
|
|
8032
|
-
this.renderer.removeClass(element, 'k-pager-mobile-sm');
|
|
8033
|
-
this.renderer.removeClass(element, 'k-pager-mobile-md');
|
|
8034
|
-
}
|
|
8035
8069
|
shouldTriggerPageChange(target, condition) {
|
|
8036
8070
|
return this.navigationService.pagerEnabled &&
|
|
8037
8071
|
target === this.element.nativeElement &&
|
|
@@ -8054,6 +8088,18 @@ class PagerComponent {
|
|
|
8054
8088
|
this.cellContext.focusGroup = this.focusGroup;
|
|
8055
8089
|
}
|
|
8056
8090
|
}
|
|
8091
|
+
clearResponsiveStyling() {
|
|
8092
|
+
this.zone.runOutsideAngular(() => {
|
|
8093
|
+
setTimeout(() => {
|
|
8094
|
+
if (this.numericButtons) {
|
|
8095
|
+
this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
|
|
8096
|
+
this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
|
|
8097
|
+
}
|
|
8098
|
+
this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
8099
|
+
this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
8100
|
+
});
|
|
8101
|
+
});
|
|
8102
|
+
}
|
|
8057
8103
|
}
|
|
8058
8104
|
PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService }, { token: NavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: ContextService }, { token: CELL_CONTEXT, optional: true }, { token: FocusRoot }, { token: FocusGroup }], target: i0.ɵɵFactoryTarget.Component });
|
|
8059
8105
|
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerComponent, selector: "kendo-pager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", options: "options", size: "size", template: "template" }, outputs: { pageChange: "pageChange" }, host: { listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut()", "keydown.escape": "onEscape()", "keydown.enter": "onEnter($event)", "keydown.arrowleft": "navigateToPreviousPage($event)", "keydown.pageup": "navigateToPreviousPage($event)", "keydown.arrowright": "navigateToNextPage($event)", "keydown.pagedown": "navigateToNextPage($event)", "keydown.home": "navigateToFirstPage($event)", "keydown.end": "navigateToLastPage($event)" }, properties: { "class.k-pager-wrap": "this.pagerWrapClass", "class.k-grid-pager": "this.gridPagerClass", "class.k-pager-sm": "this.sizeSmallClass", "class.k-pager-md": "this.sizeMediumClass", "class.k-focus": "this.isFocused", "attr.aria-label": "this.pagerAriaLabel" } }, providers: [{
|
|
@@ -8067,7 +8113,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
8067
8113
|
provide: FocusGroup,
|
|
8068
8114
|
deps: [FocusRoot],
|
|
8069
8115
|
useClass: FocusGroup
|
|
8070
|
-
}], usesOnChanges: true, ngImport: i0, template: `
|
|
8116
|
+
}], viewQueries: [{ propertyName: "pagerInfo", first: true, predicate: PagerInfoComponent, descendants: true, read: ElementRef }, { propertyName: "pagerPageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
8071
8117
|
<div
|
|
8072
8118
|
*ngIf="navigationService.pagerEnabled"
|
|
8073
8119
|
class="k-sr-only"
|
|
@@ -8081,20 +8127,21 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
8081
8127
|
[ngTemplateOutletContext]="templateContext">
|
|
8082
8128
|
</ng-container>
|
|
8083
8129
|
<ng-container *ngIf="!template?.templateRef">
|
|
8084
|
-
<
|
|
8085
|
-
|
|
8086
|
-
|
|
8087
|
-
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8130
|
+
<div class="k-pager-numbers-wrap">
|
|
8131
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
8132
|
+
<kendo-pager-numeric-buttons
|
|
8133
|
+
[size]="size"
|
|
8134
|
+
*ngIf="settings.type === 'numeric'"
|
|
8135
|
+
[buttonCount]="settings.buttonCount">
|
|
8136
|
+
</kendo-pager-numeric-buttons>
|
|
8137
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
8138
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
8139
|
+
</div>
|
|
8092
8140
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
8093
8141
|
<kendo-pager-page-sizes
|
|
8094
8142
|
[size]="size"
|
|
8095
8143
|
*ngIf="settings.pageSizes"
|
|
8096
8144
|
[pageSizes]="$any(settings.pageSizes)"
|
|
8097
|
-
#pageSizes
|
|
8098
8145
|
></kendo-pager-page-sizes>
|
|
8099
8146
|
</ng-container>
|
|
8100
8147
|
<div
|
|
@@ -8136,20 +8183,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8136
8183
|
[ngTemplateOutletContext]="templateContext">
|
|
8137
8184
|
</ng-container>
|
|
8138
8185
|
<ng-container *ngIf="!template?.templateRef">
|
|
8139
|
-
<
|
|
8140
|
-
|
|
8141
|
-
|
|
8142
|
-
|
|
8143
|
-
|
|
8144
|
-
|
|
8145
|
-
|
|
8146
|
-
|
|
8186
|
+
<div class="k-pager-numbers-wrap">
|
|
8187
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-prev-buttons>
|
|
8188
|
+
<kendo-pager-numeric-buttons
|
|
8189
|
+
[size]="size"
|
|
8190
|
+
*ngIf="settings.type === 'numeric'"
|
|
8191
|
+
[buttonCount]="settings.buttonCount">
|
|
8192
|
+
</kendo-pager-numeric-buttons>
|
|
8193
|
+
<kendo-pager-input [size]="size" *ngIf="settings.type === 'input'"></kendo-pager-input>
|
|
8194
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="settings.previousNext"></kendo-pager-next-buttons>
|
|
8195
|
+
</div>
|
|
8147
8196
|
<kendo-pager-info *ngIf='settings.info'></kendo-pager-info>
|
|
8148
8197
|
<kendo-pager-page-sizes
|
|
8149
8198
|
[size]="size"
|
|
8150
8199
|
*ngIf="settings.pageSizes"
|
|
8151
8200
|
[pageSizes]="$any(settings.pageSizes)"
|
|
8152
|
-
#pageSizes
|
|
8153
8201
|
></kendo-pager-page-sizes>
|
|
8154
8202
|
</ng-container>
|
|
8155
8203
|
<div
|
|
@@ -8167,7 +8215,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
8167
8215
|
}, {
|
|
8168
8216
|
type: Inject,
|
|
8169
8217
|
args: [CELL_CONTEXT]
|
|
8170
|
-
}] }, { type: FocusRoot }, { type: FocusGroup }]; }, propDecorators: {
|
|
8218
|
+
}] }, { type: FocusRoot }, { type: FocusGroup }]; }, propDecorators: { pagerInfo: [{
|
|
8219
|
+
type: ViewChild,
|
|
8220
|
+
args: [PagerInfoComponent, { read: ElementRef }]
|
|
8221
|
+
}], pagerPageSizes: [{
|
|
8222
|
+
type: ViewChild,
|
|
8223
|
+
args: [PagerPageSizesComponent, { read: ElementRef }]
|
|
8224
|
+
}], numericButtons: [{
|
|
8225
|
+
type: ViewChild,
|
|
8226
|
+
args: [PagerNumericButtonsComponent]
|
|
8227
|
+
}], total: [{
|
|
8171
8228
|
type: Input
|
|
8172
8229
|
}], skip: [{
|
|
8173
8230
|
type: Input
|
|
@@ -9508,7 +9565,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
9508
9565
|
(keydown.shift.tab)="onShiftTab($event)">
|
|
9509
9566
|
</kendo-dropdownlist>
|
|
9510
9567
|
<ng-content></ng-content>
|
|
9511
|
-
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9568
|
+
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9512
9569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
|
|
9513
9570
|
type: Component,
|
|
9514
9571
|
args: [{
|
|
@@ -9704,7 +9761,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
9704
9761
|
[filter]="filter"
|
|
9705
9762
|
[menuTabbingService]="menuTabbingService">
|
|
9706
9763
|
</kendo-grid-string-filter-menu-input>
|
|
9707
|
-
`, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9764
|
+
`, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-grid-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "isFirstDropDown", "menuTabbingService"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
9708
9765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
|
|
9709
9766
|
type: Component,
|
|
9710
9767
|
args: [{
|
|
@@ -10110,7 +10167,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
10110
10167
|
[menuTabbingService]="menuTabbingService"
|
|
10111
10168
|
>
|
|
10112
10169
|
</kendo-grid-numeric-filter-menu-input>
|
|
10113
|
-
`, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10170
|
+
`, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-grid-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "filterDelay", "isFirstDropDown", "menuTabbingService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10114
10171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
|
|
10115
10172
|
type: Component,
|
|
10116
10173
|
args: [{
|
|
@@ -10565,7 +10622,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
10565
10622
|
[menuTabbingService]="menuTabbingService"
|
|
10566
10623
|
>
|
|
10567
10624
|
</kendo-grid-date-filter-menu-input>
|
|
10568
|
-
`, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10625
|
+
`, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-grid-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "menuTabbingService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber", "isFirstDropDown"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FilterMenuDropDownListDirective, selector: "[kendoFilterMenuDropDown]", inputs: ["filterMenuDropDownLabel"] }] });
|
|
10569
10626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
|
|
10570
10627
|
type: Component,
|
|
10571
10628
|
args: [{
|
|
@@ -11040,10 +11097,10 @@ class FilterMenuContainerComponent {
|
|
|
11040
11097
|
e.preventDefault();
|
|
11041
11098
|
if (buttonType === 'reset') {
|
|
11042
11099
|
// eslint-disable-next-line no-unused-expressions
|
|
11043
|
-
this.
|
|
11100
|
+
this.menuTabbingService.firstFocusable.focus();
|
|
11044
11101
|
}
|
|
11045
11102
|
else {
|
|
11046
|
-
this.menuTabbingService.firstFocusable.focus();
|
|
11103
|
+
this.disabled ? this.menuTabbingService.firstFocusable.focus() : this.resetButton.nativeElement.focus();
|
|
11047
11104
|
}
|
|
11048
11105
|
}
|
|
11049
11106
|
}
|
|
@@ -11167,15 +11224,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11167
11224
|
args: ['filterButton', { static: false }]
|
|
11168
11225
|
}] } });
|
|
11169
11226
|
|
|
11227
|
+
let id$3 = 0;
|
|
11228
|
+
const getId$1 = (gridId) => `${gridId}-filter-menu-${id$3++}`;
|
|
11170
11229
|
/**
|
|
11171
11230
|
* @hidden
|
|
11172
11231
|
*/
|
|
11173
11232
|
class FilterMenuComponent {
|
|
11174
|
-
constructor(filterService, popupService, ctx, navigationService) {
|
|
11233
|
+
constructor(filterService, popupService, ctx, navigationService, renderer, cdr, idService) {
|
|
11175
11234
|
this.filterService = filterService;
|
|
11176
11235
|
this.popupService = popupService;
|
|
11177
11236
|
this.ctx = ctx;
|
|
11178
11237
|
this.navigationService = navigationService;
|
|
11238
|
+
this.renderer = renderer;
|
|
11239
|
+
this.cdr = cdr;
|
|
11240
|
+
this.idService = idService;
|
|
11179
11241
|
this.filterIcon = filterIcon;
|
|
11180
11242
|
this.tabIndex = '-1';
|
|
11181
11243
|
}
|
|
@@ -11190,9 +11252,35 @@ class FilterMenuComponent {
|
|
|
11190
11252
|
const columnName = this.column.title || this.column.field;
|
|
11191
11253
|
return replaceMessagePlaceholder(localizationMsg, 'columnName', columnName);
|
|
11192
11254
|
}
|
|
11255
|
+
/**
|
|
11256
|
+
* @hidden
|
|
11257
|
+
*/
|
|
11258
|
+
get isNavigable() {
|
|
11259
|
+
return this.navigationService.tableEnabled;
|
|
11260
|
+
}
|
|
11193
11261
|
toggle(anchor, template) {
|
|
11194
11262
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef);
|
|
11195
|
-
|
|
11263
|
+
// Needed as changes to 'popupRef' are not reflected
|
|
11264
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
11265
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11266
|
+
if (this.popupRef) {
|
|
11267
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
11268
|
+
this.popupRef = null;
|
|
11269
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
11270
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
11271
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
11272
|
+
});
|
|
11273
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-filter-popup');
|
|
11274
|
+
if (popupAriaElement) {
|
|
11275
|
+
const popupId = getId$1(this.idService?.gridId());
|
|
11276
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
11277
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
11278
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.filterLabel);
|
|
11279
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
11280
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
11281
|
+
}
|
|
11282
|
+
}
|
|
11283
|
+
else {
|
|
11196
11284
|
if (this.navigationService.tableEnabled) {
|
|
11197
11285
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11198
11286
|
}
|
|
@@ -11204,6 +11292,8 @@ class FilterMenuComponent {
|
|
|
11204
11292
|
}
|
|
11205
11293
|
close() {
|
|
11206
11294
|
this.popupService.destroy();
|
|
11295
|
+
this.popupRef = null;
|
|
11296
|
+
this.cdr.markForCheck();
|
|
11207
11297
|
if (this.navigationService.tableEnabled) {
|
|
11208
11298
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
11209
11299
|
}
|
|
@@ -11212,7 +11302,7 @@ class FilterMenuComponent {
|
|
|
11212
11302
|
}
|
|
11213
11303
|
}
|
|
11214
11304
|
}
|
|
11215
|
-
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11305
|
+
FilterMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuComponent, deps: [{ token: FilterService }, { token: SinglePopupService }, { token: ContextService }, { token: NavigationService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11216
11306
|
FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FilterMenuComponent, selector: "kendo-grid-filter-menu", inputs: { column: "column", filter: "filter", tabIndex: "tabIndex" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true, static: true }, { propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `
|
|
11217
11307
|
<a #anchor
|
|
11218
11308
|
class="k-grid-filter-menu k-grid-header-menu"
|
|
@@ -11221,7 +11311,9 @@ FilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
11221
11311
|
(click)="toggle(anchor, template)"
|
|
11222
11312
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11223
11313
|
href="#"
|
|
11224
|
-
[attr.title]="filterLabel"
|
|
11314
|
+
[attr.title]="filterLabel"
|
|
11315
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11316
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11225
11317
|
<kendo-icon-wrapper
|
|
11226
11318
|
name="filter"
|
|
11227
11319
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11249,7 +11341,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11249
11341
|
(click)="toggle(anchor, template)"
|
|
11250
11342
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
11251
11343
|
href="#"
|
|
11252
|
-
[attr.title]="filterLabel"
|
|
11344
|
+
[attr.title]="filterLabel"
|
|
11345
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'"
|
|
11346
|
+
[attr.aria-expanded]="isNavigable ? undefined : false">
|
|
11253
11347
|
<kendo-icon-wrapper
|
|
11254
11348
|
name="filter"
|
|
11255
11349
|
[svgIcon]="filterIcon"></kendo-icon-wrapper>
|
|
@@ -11266,7 +11360,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11266
11360
|
</ng-template>
|
|
11267
11361
|
`
|
|
11268
11362
|
}]
|
|
11269
|
-
}], ctorParameters: function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }
|
|
11363
|
+
}], ctorParameters: function () { return [{ type: FilterService }, { type: SinglePopupService }, { type: ContextService }, { type: NavigationService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: IdService, decorators: [{
|
|
11364
|
+
type: Optional
|
|
11365
|
+
}] }]; }, propDecorators: { column: [{
|
|
11270
11366
|
type: Input
|
|
11271
11367
|
}], filter: [{
|
|
11272
11368
|
type: Input
|
|
@@ -11324,7 +11420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11324
11420
|
/**
|
|
11325
11421
|
* @hidden
|
|
11326
11422
|
*/
|
|
11327
|
-
const
|
|
11423
|
+
const ColumnMenuErrorMessages = {
|
|
11328
11424
|
autoSizeColumn: 'The auto size column does not work with enabled virtual columns',
|
|
11329
11425
|
autoSizeAllColumns: 'The auto size all columns does not work with enabled virtual columns'
|
|
11330
11426
|
};
|
|
@@ -11430,6 +11526,9 @@ class ColumnMenuItemComponent {
|
|
|
11430
11526
|
this.collapse = new EventEmitter();
|
|
11431
11527
|
this.contentState = 'collapsed';
|
|
11432
11528
|
}
|
|
11529
|
+
ngAfterViewInit() {
|
|
11530
|
+
this.contentTemplate && (this.contentId = `k-${guid()}`);
|
|
11531
|
+
}
|
|
11433
11532
|
ngOnChanges(changes) {
|
|
11434
11533
|
if (changes.expanded) {
|
|
11435
11534
|
this.updateContentState();
|
|
@@ -11464,13 +11563,14 @@ ColumnMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
11464
11563
|
[class.k-selected]="selected"
|
|
11465
11564
|
[class.k-disabled]="disabled"
|
|
11466
11565
|
role="button"
|
|
11467
|
-
[attr.aria-expanded]="expanded"
|
|
11566
|
+
[attr.aria-expanded]="expanded"
|
|
11567
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11468
11568
|
<kendo-icon-wrapper
|
|
11469
11569
|
[name]="icon"
|
|
11470
11570
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11471
11571
|
{{ text }}
|
|
11472
11572
|
</div>
|
|
11473
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11573
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11474
11574
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11475
11575
|
</ng-container>
|
|
11476
11576
|
<div>
|
|
@@ -11532,13 +11632,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11532
11632
|
[class.k-selected]="selected"
|
|
11533
11633
|
[class.k-disabled]="disabled"
|
|
11534
11634
|
role="button"
|
|
11535
|
-
[attr.aria-expanded]="expanded"
|
|
11635
|
+
[attr.aria-expanded]="expanded"
|
|
11636
|
+
[attr.aria-controls]="expanded ? contentId : undefined">
|
|
11536
11637
|
<kendo-icon-wrapper
|
|
11537
11638
|
[name]="icon"
|
|
11538
11639
|
[svgIcon]="svgIcon"></kendo-icon-wrapper>
|
|
11539
11640
|
{{ text }}
|
|
11540
11641
|
</div>
|
|
11541
|
-
<div *ngIf="contentTemplate" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11642
|
+
<div *ngIf="contentTemplate" [attr.id]="contentId" [@state]="contentState" [style.overflow]="'hidden'" class="k-columnmenu-item-content">
|
|
11542
11643
|
<ng-container [ngTemplateOutlet]="contentTemplate.templateRef">
|
|
11543
11644
|
</ng-container>
|
|
11544
11645
|
<div>
|
|
@@ -11914,14 +12015,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
11914
12015
|
type: Input
|
|
11915
12016
|
}] } });
|
|
11916
12017
|
|
|
12018
|
+
/**
|
|
12019
|
+
* @hidden
|
|
12020
|
+
*/
|
|
12021
|
+
class ColumnListKeyboardNavigation {
|
|
12022
|
+
constructor(renderer) {
|
|
12023
|
+
this.renderer = renderer;
|
|
12024
|
+
this.activeIndex = 0;
|
|
12025
|
+
}
|
|
12026
|
+
next() {
|
|
12027
|
+
this.toggle(this.activeIndex, false);
|
|
12028
|
+
this.activeIndex = Math.min(this.activeIndex + 1, this.items.length - 1);
|
|
12029
|
+
this.toggle(this.activeIndex, true);
|
|
12030
|
+
}
|
|
12031
|
+
prev() {
|
|
12032
|
+
this.toggle(this.activeIndex, false);
|
|
12033
|
+
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
12034
|
+
this.toggle(this.activeIndex, true);
|
|
12035
|
+
}
|
|
12036
|
+
toggle(index, active) {
|
|
12037
|
+
const element = this.items[index]?.host.nativeElement;
|
|
12038
|
+
element && this.renderer.setAttribute(this.items[index].host.nativeElement, 'tabindex', active ? '0' : '-1');
|
|
12039
|
+
active && element && element.focus();
|
|
12040
|
+
}
|
|
12041
|
+
toggleCheckedState() {
|
|
12042
|
+
this.items[this.activeIndex].host.nativeElement.firstElementChild.click();
|
|
12043
|
+
}
|
|
12044
|
+
}
|
|
12045
|
+
ColumnListKeyboardNavigation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12046
|
+
ColumnListKeyboardNavigation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation });
|
|
12047
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListKeyboardNavigation, decorators: [{
|
|
12048
|
+
type: Injectable
|
|
12049
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
12050
|
+
|
|
12051
|
+
/**
|
|
12052
|
+
* @hidden
|
|
12053
|
+
*/
|
|
12054
|
+
class ColumnMenuChooserItemCheckedDirective {
|
|
12055
|
+
constructor(host, renderer) {
|
|
12056
|
+
this.host = host;
|
|
12057
|
+
this.renderer = renderer;
|
|
12058
|
+
this.checkedChangeSub = new Subscription();
|
|
12059
|
+
}
|
|
12060
|
+
ngAfterViewInit() {
|
|
12061
|
+
this.checkedChangeSub.add(this.renderer.listen(this.host.nativeElement.firstElementChild, 'change', (e) => {
|
|
12062
|
+
this.kendoColumnMenuChooserItemChecked = e.target.checked;
|
|
12063
|
+
}));
|
|
12064
|
+
}
|
|
12065
|
+
ngOnDestroy() {
|
|
12066
|
+
this.checkedChangeSub.unsubscribe();
|
|
12067
|
+
}
|
|
12068
|
+
}
|
|
12069
|
+
ColumnMenuChooserItemCheckedDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
12070
|
+
ColumnMenuChooserItemCheckedDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: { kendoColumnMenuChooserItemChecked: "kendoColumnMenuChooserItemChecked" }, host: { properties: { "attr.aria-checked": "this.kendoColumnMenuChooserItemChecked" } }, ngImport: i0 });
|
|
12071
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserItemCheckedDirective, decorators: [{
|
|
12072
|
+
type: Directive,
|
|
12073
|
+
args: [{ selector: '[kendoColumnMenuChooserItemChecked]' }]
|
|
12074
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { kendoColumnMenuChooserItemChecked: [{
|
|
12075
|
+
type: HostBinding,
|
|
12076
|
+
args: ['attr.aria-checked']
|
|
12077
|
+
}, {
|
|
12078
|
+
type: Input
|
|
12079
|
+
}] } });
|
|
12080
|
+
|
|
11917
12081
|
/**
|
|
11918
12082
|
* @hidden
|
|
11919
12083
|
*/
|
|
11920
12084
|
class ColumnListComponent {
|
|
11921
|
-
constructor(element, ngZone, renderer) {
|
|
12085
|
+
constructor(element, ngZone, renderer, listNavigationService) {
|
|
11922
12086
|
this.element = element;
|
|
11923
12087
|
this.ngZone = ngZone;
|
|
11924
12088
|
this.renderer = renderer;
|
|
12089
|
+
this.listNavigationService = listNavigationService;
|
|
11925
12090
|
this.reset = new EventEmitter();
|
|
11926
12091
|
this.apply = new EventEmitter();
|
|
11927
12092
|
this.columnChange = new EventEmitter();
|
|
@@ -11929,10 +12094,28 @@ class ColumnListComponent {
|
|
|
11929
12094
|
this.allowHideAll = false;
|
|
11930
12095
|
this.actionsClass = 'k-actions k-actions-stretched k-actions-horizontal';
|
|
11931
12096
|
this.unlockedCount = 0;
|
|
12097
|
+
this.domSubscriptions = new Subscription();
|
|
12098
|
+
this.onKeydown = (e) => {
|
|
12099
|
+
if (e.keyCode !== Keys.Tab) {
|
|
12100
|
+
e.preventDefault();
|
|
12101
|
+
}
|
|
12102
|
+
if (e.keyCode === Keys.ArrowDown) {
|
|
12103
|
+
this.listNavigationService.next();
|
|
12104
|
+
}
|
|
12105
|
+
else if (e.keyCode === Keys.ArrowUp) {
|
|
12106
|
+
this.listNavigationService.prev();
|
|
12107
|
+
}
|
|
12108
|
+
else if (e.keyCode === Keys.Space && e.target.classList.contains('k-column-list-item')) {
|
|
12109
|
+
this.listNavigationService.toggleCheckedState();
|
|
12110
|
+
}
|
|
12111
|
+
};
|
|
11932
12112
|
}
|
|
11933
12113
|
get className() {
|
|
11934
12114
|
return true;
|
|
11935
12115
|
}
|
|
12116
|
+
isChecked(checkbox) {
|
|
12117
|
+
return checkbox.checked;
|
|
12118
|
+
}
|
|
11936
12119
|
set columns(value) {
|
|
11937
12120
|
this._columns = value.filter(column => column.includeInChooser !== false);
|
|
11938
12121
|
this.allColumns = value;
|
|
@@ -11950,12 +12133,21 @@ class ColumnListComponent {
|
|
|
11950
12133
|
return;
|
|
11951
12134
|
}
|
|
11952
12135
|
this.ngZone.runOutsideAngular(() => {
|
|
11953
|
-
this.domSubscriptions
|
|
11954
|
-
|
|
12136
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'click', (e) => {
|
|
12137
|
+
const closestItem = e.target.closest('.k-column-list-item');
|
|
12138
|
+
if (closestItem) {
|
|
12139
|
+
const checkbox = closestItem.querySelector('.k-checkbox');
|
|
12140
|
+
const index = parseInt(checkbox.getAttribute('data-index'), 10);
|
|
12141
|
+
if (e.target === checkbox) {
|
|
12142
|
+
closestItem.focus();
|
|
12143
|
+
}
|
|
12144
|
+
else {
|
|
12145
|
+
e.preventDefault();
|
|
12146
|
+
checkbox.checked = !checkbox.checked;
|
|
12147
|
+
}
|
|
11955
12148
|
if (this.autoSync) {
|
|
11956
|
-
const index = parseInt(e.target.getAttribute('data-index'), 10);
|
|
11957
12149
|
const column = this.columns[index];
|
|
11958
|
-
const hidden = !
|
|
12150
|
+
const hidden = !checkbox.checked;
|
|
11959
12151
|
if (Boolean(column.hidden) !== hidden) {
|
|
11960
12152
|
this.ngZone.run(() => {
|
|
11961
12153
|
column.hidden = hidden;
|
|
@@ -11966,10 +12158,20 @@ class ColumnListComponent {
|
|
|
11966
12158
|
else {
|
|
11967
12159
|
this.updateDisabled();
|
|
11968
12160
|
}
|
|
12161
|
+
if (index !== this.listNavigationService.activeIndex) {
|
|
12162
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, false);
|
|
12163
|
+
this.listNavigationService.activeIndex = index;
|
|
12164
|
+
this.listNavigationService.toggle(index, true);
|
|
12165
|
+
}
|
|
11969
12166
|
}
|
|
11970
|
-
});
|
|
12167
|
+
}));
|
|
12168
|
+
this.domSubscriptions.add(this.renderer.listen(this.element.nativeElement, 'keydown', this.onKeydown));
|
|
11971
12169
|
});
|
|
11972
12170
|
}
|
|
12171
|
+
ngAfterViewInit() {
|
|
12172
|
+
this.listNavigationService.items = this.options.toArray();
|
|
12173
|
+
this.listNavigationService.toggle(0, true);
|
|
12174
|
+
}
|
|
11973
12175
|
ngOnChanges(changes) {
|
|
11974
12176
|
if (!this.service) {
|
|
11975
12177
|
return;
|
|
@@ -11982,9 +12184,7 @@ class ColumnListComponent {
|
|
|
11982
12184
|
}
|
|
11983
12185
|
}
|
|
11984
12186
|
ngOnDestroy() {
|
|
11985
|
-
|
|
11986
|
-
this.domSubscriptions();
|
|
11987
|
-
}
|
|
12187
|
+
this.domSubscriptions.unsubscribe();
|
|
11988
12188
|
}
|
|
11989
12189
|
cancelChanges() {
|
|
11990
12190
|
this.forEachCheckBox((element, index) => {
|
|
@@ -12012,6 +12212,9 @@ class ColumnListComponent {
|
|
|
12012
12212
|
if (this.service) {
|
|
12013
12213
|
this.service.menuTabbingService.firstFocusable.focus();
|
|
12014
12214
|
}
|
|
12215
|
+
else {
|
|
12216
|
+
this.listNavigationService.toggle(this.listNavigationService.activeIndex, true);
|
|
12217
|
+
}
|
|
12015
12218
|
}
|
|
12016
12219
|
}
|
|
12017
12220
|
forEachCheckBox(callback) {
|
|
@@ -12058,35 +12261,94 @@ class ColumnListComponent {
|
|
|
12058
12261
|
}
|
|
12059
12262
|
}
|
|
12060
12263
|
}
|
|
12061
|
-
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 });
|
|
12062
|
-
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: `
|
|
12063
|
-
<div
|
|
12064
|
-
|
|
12065
|
-
|
|
12264
|
+
ColumnListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: ColumnListKeyboardNavigation }], target: i0.ɵɵFactoryTarget.Component });
|
|
12265
|
+
ColumnListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: { columns: "columns", autoSync: "autoSync", ariaLabel: "ariaLabel", allowHideAll: "allowHideAll", applyText: "applyText", resetText: "resetText", actionsClass: "actionsClass", isLast: "isLast", isExpanded: "isExpanded", service: "service" }, outputs: { reset: "reset", apply: "apply", columnChange: "columnChange" }, host: { properties: { "class.k-column-list-wrapper": "this.className" } }, providers: [ColumnListKeyboardNavigation], viewQueries: [{ propertyName: "resetButton", first: true, predicate: ["resetButton"], descendants: true }, { propertyName: "applyButton", first: true, predicate: ["applyButton"], descendants: true }, { propertyName: "options", predicate: ColumnMenuChooserItemCheckedDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
12266
|
+
<div
|
|
12267
|
+
class="k-column-list"
|
|
12268
|
+
role="listbox"
|
|
12269
|
+
aria-multiselectable="true"
|
|
12270
|
+
[attr.aria-label]="ariaLabel">
|
|
12271
|
+
<label
|
|
12272
|
+
*ngFor="let column of columns; let index = index;"
|
|
12273
|
+
class='k-column-list-item'
|
|
12274
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12275
|
+
role="option">
|
|
12276
|
+
<input
|
|
12277
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12278
|
+
type="checkbox"
|
|
12279
|
+
[attr.data-index]="index"
|
|
12280
|
+
[checked]="!column.hidden"
|
|
12281
|
+
tabindex="-1"
|
|
12282
|
+
[attr.aria-hidden]="true"
|
|
12283
|
+
[disabled]="isDisabled(column)" />
|
|
12284
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12066
12285
|
</label>
|
|
12067
12286
|
</div>
|
|
12068
12287
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12069
|
-
<button
|
|
12070
|
-
|
|
12288
|
+
<button
|
|
12289
|
+
#applyButton
|
|
12290
|
+
type="button"
|
|
12291
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12292
|
+
(click)="applyChanges()"
|
|
12293
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12294
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12295
|
+
<button
|
|
12296
|
+
#resetButton
|
|
12297
|
+
type="button"
|
|
12298
|
+
(keydown.tab)="onTab($event)"
|
|
12299
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12300
|
+
(click)="cancelChanges()"
|
|
12301
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12302
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12071
12303
|
</div>
|
|
12072
|
-
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
12304
|
+
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ColumnMenuChooserItemCheckedDirective, selector: "[kendoColumnMenuChooserItemChecked]", inputs: ["kendoColumnMenuChooserItemChecked"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
12073
12305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnListComponent, decorators: [{
|
|
12074
12306
|
type: Component,
|
|
12075
12307
|
args: [{
|
|
12076
12308
|
selector: 'kendo-grid-columnlist',
|
|
12309
|
+
providers: [ColumnListKeyboardNavigation],
|
|
12077
12310
|
template: `
|
|
12078
|
-
<div
|
|
12079
|
-
|
|
12080
|
-
|
|
12311
|
+
<div
|
|
12312
|
+
class="k-column-list"
|
|
12313
|
+
role="listbox"
|
|
12314
|
+
aria-multiselectable="true"
|
|
12315
|
+
[attr.aria-label]="ariaLabel">
|
|
12316
|
+
<label
|
|
12317
|
+
*ngFor="let column of columns; let index = index;"
|
|
12318
|
+
class='k-column-list-item'
|
|
12319
|
+
[kendoColumnMenuChooserItemChecked]="!column.hidden"
|
|
12320
|
+
role="option">
|
|
12321
|
+
<input
|
|
12322
|
+
class="k-checkbox k-checkbox-md k-rounded-md"
|
|
12323
|
+
type="checkbox"
|
|
12324
|
+
[attr.data-index]="index"
|
|
12325
|
+
[checked]="!column.hidden"
|
|
12326
|
+
tabindex="-1"
|
|
12327
|
+
[attr.aria-hidden]="true"
|
|
12328
|
+
[disabled]="isDisabled(column)" />
|
|
12329
|
+
<span class="k-checkbox-label">{{ column.displayTitle }}</span>
|
|
12081
12330
|
</label>
|
|
12082
12331
|
</div>
|
|
12083
12332
|
<div [ngClass]="actionsClass" *ngIf="!autoSync">
|
|
12084
|
-
<button
|
|
12085
|
-
|
|
12333
|
+
<button
|
|
12334
|
+
#applyButton
|
|
12335
|
+
type="button"
|
|
12336
|
+
class="k-button k-button-solid-primary k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12337
|
+
(click)="applyChanges()"
|
|
12338
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; applyChanges();"
|
|
12339
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; applyChanges();">{{ applyText }}</button>
|
|
12340
|
+
<button
|
|
12341
|
+
#resetButton
|
|
12342
|
+
type="button"
|
|
12343
|
+
(keydown.tab)="onTab($event)"
|
|
12344
|
+
class="k-button k-button-solid-base k-button-solid k-button-md k-rounded-md k-button-rectangle"
|
|
12345
|
+
(click)="cancelChanges()"
|
|
12346
|
+
(keydown.enter)="$event.preventDefault(); $event.stopPropagation; cancelChanges();"
|
|
12347
|
+
(keydown.space)="$event.preventDefault(); $event.stopPropagation; cancelChanges();">{{ resetText }}</button>
|
|
12086
12348
|
</div>
|
|
12087
12349
|
`
|
|
12088
12350
|
}]
|
|
12089
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { className: [{
|
|
12351
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: ColumnListKeyboardNavigation }]; }, propDecorators: { className: [{
|
|
12090
12352
|
type: HostBinding,
|
|
12091
12353
|
args: ["class.k-column-list-wrapper"]
|
|
12092
12354
|
}], reset: [{
|
|
@@ -12099,6 +12361,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12099
12361
|
type: Input
|
|
12100
12362
|
}], autoSync: [{
|
|
12101
12363
|
type: Input
|
|
12364
|
+
}], ariaLabel: [{
|
|
12365
|
+
type: Input
|
|
12102
12366
|
}], allowHideAll: [{
|
|
12103
12367
|
type: Input
|
|
12104
12368
|
}], applyText: [{
|
|
@@ -12113,9 +12377,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12113
12377
|
type: Input
|
|
12114
12378
|
}], service: [{
|
|
12115
12379
|
type: Input
|
|
12380
|
+
}], resetButton: [{
|
|
12381
|
+
type: ViewChild,
|
|
12382
|
+
args: ['resetButton', { static: false }]
|
|
12116
12383
|
}], applyButton: [{
|
|
12117
12384
|
type: ViewChild,
|
|
12118
12385
|
args: ['applyButton', { static: false }]
|
|
12386
|
+
}], options: [{
|
|
12387
|
+
type: ViewChildren,
|
|
12388
|
+
args: [ColumnMenuChooserItemCheckedDirective]
|
|
12119
12389
|
}] } });
|
|
12120
12390
|
|
|
12121
12391
|
/**
|
|
@@ -12208,6 +12478,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12208
12478
|
<kendo-grid-columnlist
|
|
12209
12479
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12210
12480
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12481
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12211
12482
|
[columns]="columns"
|
|
12212
12483
|
[autoSync]="false"
|
|
12213
12484
|
[allowHideAll]="false"
|
|
@@ -12219,7 +12490,7 @@ ColumnMenuChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
12219
12490
|
</kendo-grid-columnlist>
|
|
12220
12491
|
</ng-template>
|
|
12221
12492
|
</kendo-grid-columnmenu-item>
|
|
12222
|
-
`, isInline: true, components: [{ type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
12493
|
+
`, isInline: true, components: [{ type: ColumnMenuItemComponent, selector: "kendo-grid-columnmenu-item", inputs: ["icon", "svgIcon", "text", "selected", "disabled", "expanded"], outputs: ["itemClick", "expand", "collapse"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: ColumnMenuItemContentTemplateDirective, selector: "[kendoGridColumnMenuItemContentTemplate]" }] });
|
|
12223
12494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuChooserComponent, decorators: [{
|
|
12224
12495
|
type: Component,
|
|
12225
12496
|
args: [{
|
|
@@ -12236,6 +12507,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12236
12507
|
<kendo-grid-columnlist
|
|
12237
12508
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
12238
12509
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
12510
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
12239
12511
|
[columns]="columns"
|
|
12240
12512
|
[autoSync]="false"
|
|
12241
12513
|
[allowHideAll]="false"
|
|
@@ -12639,7 +12911,7 @@ class ColumnMenuAutoSizeColumnComponent extends ColumnMenuItemBase {
|
|
|
12639
12911
|
ngOnInit() {
|
|
12640
12912
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12641
12913
|
if (isVirtualColumns && isDevMode()) {
|
|
12642
|
-
console.warn(
|
|
12914
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12643
12915
|
}
|
|
12644
12916
|
}
|
|
12645
12917
|
/**
|
|
@@ -12706,7 +12978,7 @@ class ColumnMenuAutoSizeAllColumnsComponent extends ColumnMenuItemBase {
|
|
|
12706
12978
|
ngOnInit() {
|
|
12707
12979
|
const isVirtualColumns = this.ctx.grid.columnMenuTemplate && this.ctx.grid.virtualColumns;
|
|
12708
12980
|
if (isVirtualColumns && isDevMode()) {
|
|
12709
|
-
console.warn(
|
|
12981
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12710
12982
|
}
|
|
12711
12983
|
}
|
|
12712
12984
|
/**
|
|
@@ -12743,6 +13015,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
12743
13015
|
}], ctorParameters: function () { return [{ type: ContextService }]; } });
|
|
12744
13016
|
|
|
12745
13017
|
const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
13018
|
+
let id$2 = 0;
|
|
13019
|
+
const getId = (gridId) => `${gridId}-column-menu-${id$2++}`;
|
|
12746
13020
|
/**
|
|
12747
13021
|
* Represents the [column menu](slug:columnmenu_grid#toc-customizing-the-position) component.
|
|
12748
13022
|
*
|
|
@@ -12755,7 +13029,7 @@ const POPUP_CLASS = 'k-grid-columnmenu-popup';
|
|
|
12755
13029
|
* </kendo-grid>
|
|
12756
13030
|
*/
|
|
12757
13031
|
class ColumnMenuComponent {
|
|
12758
|
-
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService) {
|
|
13032
|
+
constructor(navigationService, popupService, service, ctx, renderer, cdr, columnInfoService, idService) {
|
|
12759
13033
|
this.navigationService = navigationService;
|
|
12760
13034
|
this.popupService = popupService;
|
|
12761
13035
|
this.service = service;
|
|
@@ -12763,6 +13037,7 @@ class ColumnMenuComponent {
|
|
|
12763
13037
|
this.renderer = renderer;
|
|
12764
13038
|
this.cdr = cdr;
|
|
12765
13039
|
this.columnInfoService = columnInfoService;
|
|
13040
|
+
this.idService = idService;
|
|
12766
13041
|
/**
|
|
12767
13042
|
* @hidden
|
|
12768
13043
|
*/
|
|
@@ -12808,7 +13083,7 @@ class ColumnMenuComponent {
|
|
|
12808
13083
|
*/
|
|
12809
13084
|
this.expandedPosition = false;
|
|
12810
13085
|
this.moreVerticalIcon = moreVerticalIcon;
|
|
12811
|
-
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this));
|
|
13086
|
+
this.closeSubscription = service.closeMenu.subscribe(this.close.bind(this, true));
|
|
12812
13087
|
}
|
|
12813
13088
|
/**
|
|
12814
13089
|
* @hidden
|
|
@@ -12834,6 +13109,12 @@ class ColumnMenuComponent {
|
|
|
12834
13109
|
get hasFilter() {
|
|
12835
13110
|
return hasFilter(this.settings, this.column);
|
|
12836
13111
|
}
|
|
13112
|
+
/**
|
|
13113
|
+
* @hidden
|
|
13114
|
+
*/
|
|
13115
|
+
get isNavigable() {
|
|
13116
|
+
return this.navigationService.tableEnabled;
|
|
13117
|
+
}
|
|
12837
13118
|
/**
|
|
12838
13119
|
* @hidden
|
|
12839
13120
|
*/
|
|
@@ -12850,7 +13131,7 @@ class ColumnMenuComponent {
|
|
|
12850
13131
|
* @hidden
|
|
12851
13132
|
*/
|
|
12852
13133
|
onApply(changed) {
|
|
12853
|
-
this.close();
|
|
13134
|
+
this.close(true);
|
|
12854
13135
|
if (changed.length) {
|
|
12855
13136
|
this.cdr.markForCheck();
|
|
12856
13137
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -12896,11 +13177,11 @@ class ColumnMenuComponent {
|
|
|
12896
13177
|
if (this.ctx.grid.virtualColumns && isDevMode()) {
|
|
12897
13178
|
if (this.settings.autoSizeAllColumns) {
|
|
12898
13179
|
this.settings.autoSizeAllColumns = false;
|
|
12899
|
-
console.warn(
|
|
13180
|
+
console.warn(ColumnMenuErrorMessages.autoSizeAllColumns);
|
|
12900
13181
|
}
|
|
12901
13182
|
if (this.settings.autoSizeColumn) {
|
|
12902
13183
|
this.settings.autoSizeColumn = false;
|
|
12903
|
-
console.warn(
|
|
13184
|
+
console.warn(ColumnMenuErrorMessages.autoSizeColumn);
|
|
12904
13185
|
}
|
|
12905
13186
|
}
|
|
12906
13187
|
this.service.menuTabbingService.isTabbedInterface = this.settings.view === 'tabbed' ? true : false;
|
|
@@ -12927,12 +13208,32 @@ class ColumnMenuComponent {
|
|
|
12927
13208
|
this.expandedColumns = this.getExpandedState(this.settings.columnChooser);
|
|
12928
13209
|
this.expandedPosition = this.getExpandedState(this.settings.setColumnPosition);
|
|
12929
13210
|
this.popupRef = this.popupService.open(anchor, template, this.popupRef, POPUP_CLASS);
|
|
12930
|
-
|
|
12931
|
-
|
|
12932
|
-
|
|
12933
|
-
|
|
13211
|
+
// Needed as changes to 'popupRef' and 'popupId' are not reflected
|
|
13212
|
+
// automatically when the Popup is closed by clicking outside the anchor
|
|
13213
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13214
|
+
if (this.popupRef) {
|
|
13215
|
+
this.popupRef.popup.instance.close.pipe(take(1)).subscribe(() => {
|
|
13216
|
+
this.popupRef = null;
|
|
13217
|
+
const ariaRoot = this.isNavigable ? anchor.closest('.k-table-th') : anchor;
|
|
13218
|
+
ariaRoot && this.renderer.removeAttribute(ariaRoot, 'aria-controls');
|
|
13219
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'false');
|
|
13220
|
+
});
|
|
13221
|
+
const popupAriaElement = this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup');
|
|
13222
|
+
if (popupAriaElement) {
|
|
13223
|
+
const popupId = getId(this.idService?.gridId());
|
|
13224
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
13225
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
13226
|
+
this.renderer.setAttribute(popupAriaElement, 'aria-label', this.columnMenuTitle);
|
|
13227
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-controls', popupId);
|
|
13228
|
+
ariaRoot && this.renderer.setAttribute(ariaRoot, 'aria-expanded', 'true');
|
|
13229
|
+
}
|
|
13230
|
+
if (this.settings.view === 'tabbed') {
|
|
13231
|
+
this.renderer.addClass(this.popupRef.popupElement.querySelector('.k-grid-columnmenu-popup'), 'k-column-menu-tabbed');
|
|
13232
|
+
this.cdr.detectChanges();
|
|
13233
|
+
this.tabStrip?.selectTab(0);
|
|
13234
|
+
}
|
|
12934
13235
|
}
|
|
12935
|
-
|
|
13236
|
+
else {
|
|
12936
13237
|
if (this.navigationService.tableEnabled) {
|
|
12937
13238
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
12938
13239
|
}
|
|
@@ -12944,9 +13245,13 @@ class ColumnMenuComponent {
|
|
|
12944
13245
|
/**
|
|
12945
13246
|
* @hidden
|
|
12946
13247
|
*/
|
|
12947
|
-
close() {
|
|
13248
|
+
close(triggerFocus = false) {
|
|
12948
13249
|
this.popupService.destroy();
|
|
12949
13250
|
this.popupRef = null;
|
|
13251
|
+
this.cdr.markForCheck();
|
|
13252
|
+
if (!triggerFocus) {
|
|
13253
|
+
return;
|
|
13254
|
+
}
|
|
12950
13255
|
if (this.navigationService.tableEnabled) {
|
|
12951
13256
|
this.navigationService.focusCell(0, this.column.leafIndex);
|
|
12952
13257
|
}
|
|
@@ -12966,7 +13271,7 @@ class ColumnMenuComponent {
|
|
|
12966
13271
|
return typeof (menuItemSettings) === 'object' ? menuItemSettings.expanded : false;
|
|
12967
13272
|
}
|
|
12968
13273
|
}
|
|
12969
|
-
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13274
|
+
ColumnMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, deps: [{ token: NavigationService }, { token: SinglePopupService }, { token: ColumnMenuService }, { token: ContextService }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: ColumnInfoService }, { token: IdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
12970
13275
|
ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnMenuComponent, selector: "kendo-grid-column-menu", inputs: { standalone: "standalone", column: "column", settings: "settings", sort: "sort", filter: "filter", sortable: "sortable", columnMenuTemplate: "columnMenuTemplate", tabIndex: "tabIndex" }, host: { properties: { "class.k-grid-column-menu-standalone": "this.standalone" } }, providers: [
|
|
12971
13276
|
ColumnMenuService,
|
|
12972
13277
|
MenuTabbingService
|
|
@@ -12978,7 +13283,9 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
12978
13283
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
12979
13284
|
href="#"
|
|
12980
13285
|
[tabindex]="tabIndex"
|
|
12981
|
-
[attr.title]="columnMenuTitle"
|
|
13286
|
+
[attr.title]="columnMenuTitle"
|
|
13287
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13288
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
12982
13289
|
<kendo-icon-wrapper
|
|
12983
13290
|
name="more-vertical"
|
|
12984
13291
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -12991,7 +13298,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
12991
13298
|
</ng-template>
|
|
12992
13299
|
<ng-template #defaultTemplate>
|
|
12993
13300
|
<kendo-grid-columnmenu-container
|
|
12994
|
-
(keydown.escape)="close()"
|
|
13301
|
+
(keydown.escape)="close(true)"
|
|
12995
13302
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
12996
13303
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
12997
13304
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13043,7 +13350,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13043
13350
|
</kendo-grid-columnmenu-container>
|
|
13044
13351
|
</ng-template>
|
|
13045
13352
|
<ng-template #tabbedInterfaceTemplate>
|
|
13046
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13353
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13047
13354
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13048
13355
|
<ng-template kendoTabTitle>
|
|
13049
13356
|
<kendo-icon-wrapper
|
|
@@ -13130,7 +13437,7 @@ ColumnMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
13130
13437
|
</kendo-tabstrip-tab>
|
|
13131
13438
|
</kendo-tabstrip>
|
|
13132
13439
|
</ng-template>
|
|
13133
|
-
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type:
|
|
13440
|
+
`, isInline: true, components: [{ type: i3.IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }, { type: ColumnMenuContainerComponent, selector: "kendo-grid-columnmenu-container" }, { type: ColumnMenuSortComponent, selector: "kendo-grid-columnmenu-sort" }, { type: ColumnMenuLockComponent, selector: "kendo-grid-columnmenu-lock" }, { type: ColumnMenuStickComponent, selector: "kendo-grid-columnmenu-stick" }, { type: ColumnMenuPositionComponent, selector: "kendo-grid-columnmenu-position", inputs: ["expanded", "showLock", "showStick", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuChooserComponent, selector: "kendo-grid-columnmenu-chooser", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: ColumnMenuAutoSizeColumnComponent, selector: "kendo-grid-columnmenu-autosize-column", inputs: ["column"] }, { type: ColumnMenuAutoSizeAllColumnsComponent, selector: "kendo-grid-columnmenu-autosize-all-columns" }, { type: ColumnMenuFilterComponent, selector: "kendo-grid-columnmenu-filter", inputs: ["expanded", "isLast"], outputs: ["expand", "collapse"] }, { type: i17.TabStripComponent, selector: "kendo-tabstrip", inputs: ["height", "animate", "tabAlignment", "tabPosition", "keepTabContent", "closable", "scrollable", "closeIcon", "closeIconClass", "closeSVGIcon"], outputs: ["tabSelect", "tabClose", "tabScroll"], exportAs: ["kendoTabStrip"] }, { type: i17.TabStripTabComponent, selector: "kendo-tabstrip-tab", inputs: ["title", "disabled", "cssClass", "cssStyle", "selected", "closable", "closeIcon", "closeIconClass", "closeSVGIcon"], exportAs: ["kendoTabStripTab"] }, { type: FilterMenuContainerComponent, selector: "kendo-grid-filter-menu-container", inputs: ["column", "isLast", "isExpanded", "menuTabbingService", "filter", "actionsClass"], outputs: ["close"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ColumnMenuItemDirective, selector: "[kendoGridColumnMenuItem]", inputs: ["kendoGridColumnMenuItem"] }, { type: i17.TabTitleDirective, selector: "[kendoTabTitle]" }, { type: i17.TabContentDirective, selector: "[kendoTabContent]" }] });
|
|
13134
13441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuComponent, decorators: [{
|
|
13135
13442
|
type: Component,
|
|
13136
13443
|
args: [{
|
|
@@ -13147,7 +13454,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13147
13454
|
(keydown.enter)="$event.stopImmediatePropagation()"
|
|
13148
13455
|
href="#"
|
|
13149
13456
|
[tabindex]="tabIndex"
|
|
13150
|
-
[attr.title]="columnMenuTitle"
|
|
13457
|
+
[attr.title]="columnMenuTitle"
|
|
13458
|
+
[attr.aria-expanded]="isNavigable ? undefined: false"
|
|
13459
|
+
[attr.aria-haspopup]="isNavigable ? undefined : 'dialog'">
|
|
13151
13460
|
<kendo-icon-wrapper
|
|
13152
13461
|
name="more-vertical"
|
|
13153
13462
|
[svgIcon]="moreVerticalIcon"></kendo-icon-wrapper>
|
|
@@ -13160,7 +13469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13160
13469
|
</ng-template>
|
|
13161
13470
|
<ng-template #defaultTemplate>
|
|
13162
13471
|
<kendo-grid-columnmenu-container
|
|
13163
|
-
(keydown.escape)="close()"
|
|
13472
|
+
(keydown.escape)="close(true)"
|
|
13164
13473
|
(keydown.enter)="$event.stopImmediatePropagation()">
|
|
13165
13474
|
<kendo-grid-columnmenu-sort #sortItem [kendoGridColumnMenuItem]="sortItem" *ngIf="hasSort" [service]="service">
|
|
13166
13475
|
</kendo-grid-columnmenu-sort>
|
|
@@ -13212,7 +13521,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13212
13521
|
</kendo-grid-columnmenu-container>
|
|
13213
13522
|
</ng-template>
|
|
13214
13523
|
<ng-template #tabbedInterfaceTemplate>
|
|
13215
|
-
<kendo-tabstrip #tabstrip (keydown.escape)="close()">
|
|
13524
|
+
<kendo-tabstrip #tabstrip (keydown.escape)="close(true)">
|
|
13216
13525
|
<kendo-tabstrip-tab *ngIf="hasFilter">
|
|
13217
13526
|
<ng-template kendoTabTitle>
|
|
13218
13527
|
<kendo-icon-wrapper
|
|
@@ -13301,7 +13610,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
13301
13610
|
</ng-template>
|
|
13302
13611
|
`
|
|
13303
13612
|
}]
|
|
13304
|
-
}], ctorParameters: function () { return [{ type: NavigationService }, { type: SinglePopupService }, { type: ColumnMenuService }, { type: ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService }
|
|
13613
|
+
}], ctorParameters: function () { return [{ type: NavigationService }, { type: SinglePopupService }, { type: ColumnMenuService }, { type: ContextService }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: ColumnInfoService }, { type: IdService, decorators: [{
|
|
13614
|
+
type: Optional
|
|
13615
|
+
}] }]; }, propDecorators: { standalone: [{
|
|
13305
13616
|
type: HostBinding,
|
|
13306
13617
|
args: ['class.k-grid-column-menu-standalone']
|
|
13307
13618
|
}, {
|
|
@@ -13471,7 +13782,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
13471
13782
|
[size]="size"
|
|
13472
13783
|
(click)="clearClick()"
|
|
13473
13784
|
(keydown)="clearKeydown($event)"></button>
|
|
13474
|
-
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
13785
|
+
`, isInline: true, components: [{ type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
13475
13786
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
|
|
13476
13787
|
type: Component,
|
|
13477
13788
|
args: [{
|
|
@@ -13876,7 +14187,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
13876
14187
|
[value]="currentFilter?.value">
|
|
13877
14188
|
</kendo-dropdownlist>
|
|
13878
14189
|
</kendo-grid-filter-wrapper-cell>
|
|
13879
|
-
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
14190
|
+
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }, { type: FocusableDirective, selector: "[kendoGridFocusable],\n [kendoGridEditCommand],\n [kendoGridRemoveCommand],\n [kendoGridSaveCommand],\n [kendoGridCancelCommand],\n [kendoGridSelectionCheckbox]\n ", inputs: ["kendoGridFocusable"] }] });
|
|
13880
14191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
|
|
13881
14192
|
type: Component,
|
|
13882
14193
|
args: [{
|
|
@@ -14244,7 +14555,7 @@ class LogicalCellDirective {
|
|
|
14244
14555
|
this.renderer.addClass(el, 'k-focus');
|
|
14245
14556
|
}
|
|
14246
14557
|
if (this.headerLabelText) {
|
|
14247
|
-
el.
|
|
14558
|
+
el.removeAttribute('aria-label');
|
|
14248
14559
|
}
|
|
14249
14560
|
}
|
|
14250
14561
|
else {
|
|
@@ -14936,7 +15247,7 @@ const modifierKeys = ['alt', 'ctrl', 'shift', 'meta'];
|
|
|
14936
15247
|
* @hidden
|
|
14937
15248
|
*/
|
|
14938
15249
|
class HeaderComponent {
|
|
14939
|
-
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService) {
|
|
15250
|
+
constructor(popupService, hint, cue, reorderService, idService, sortService, columnInfoService, cd, contextService, navigationService) {
|
|
14940
15251
|
this.popupService = popupService;
|
|
14941
15252
|
this.hint = hint;
|
|
14942
15253
|
this.cue = cue;
|
|
@@ -14946,6 +15257,7 @@ class HeaderComponent {
|
|
|
14946
15257
|
this.columnInfoService = columnInfoService;
|
|
14947
15258
|
this.cd = cd;
|
|
14948
15259
|
this.contextService = contextService;
|
|
15260
|
+
this.navigationService = navigationService;
|
|
14949
15261
|
this.columns = [];
|
|
14950
15262
|
this.groups = [];
|
|
14951
15263
|
this.sort = new Array();
|
|
@@ -15080,6 +15392,9 @@ class HeaderComponent {
|
|
|
15080
15392
|
return 'descending';
|
|
15081
15393
|
}
|
|
15082
15394
|
}
|
|
15395
|
+
get isNavigable() {
|
|
15396
|
+
return this.navigationService.tableEnabled;
|
|
15397
|
+
}
|
|
15083
15398
|
/**
|
|
15084
15399
|
*
|
|
15085
15400
|
* @param column
|
|
@@ -15190,7 +15505,7 @@ class HeaderComponent {
|
|
|
15190
15505
|
}
|
|
15191
15506
|
addStickyStyles(column) {
|
|
15192
15507
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
15193
|
-
return { ...column.
|
|
15508
|
+
return { ...column.headerStyle, ...stickyStyles };
|
|
15194
15509
|
}
|
|
15195
15510
|
toggleDirection(field, allowUnsort, initialDirection) {
|
|
15196
15511
|
const descriptor = this.sortDescriptor(field);
|
|
@@ -15307,7 +15622,7 @@ class HeaderComponent {
|
|
|
15307
15622
|
});
|
|
15308
15623
|
}
|
|
15309
15624
|
}
|
|
15310
|
-
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15625
|
+
HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: HeaderComponent, deps: [{ token: SinglePopupService }, { token: DragHintService }, { token: DropCueService }, { token: ColumnReorderService }, { token: IdService }, { token: SortService }, { token: ColumnInfoService }, { token: i0.ChangeDetectorRef }, { token: ContextService }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15311
15626
|
HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: HeaderComponent, selector: "[kendoGridHeader]", inputs: { totalColumnLevels: "totalColumnLevels", columns: "columns", groups: "groups", detailTemplate: "detailTemplate", scrollable: "scrollable", filterable: "filterable", sort: "sort", filter: "filter", sortable: "sortable", groupable: "groupable", lockedColumnsCount: "lockedColumnsCount", resizable: "resizable", reorderable: "reorderable", columnMenu: "columnMenu", columnMenuTemplate: "columnMenuTemplate", totalColumnsCount: "totalColumnsCount", totalColumns: "totalColumns", tabIndex: "tabIndex", size: "size" }, host: { properties: { "class.k-grid-header": "this.headerClass", "class.k-table-thead": "this.hostClass" } }, viewQueries: [{ propertyName: "dropTargets", predicate: DropTargetDirective, descendants: true }, { propertyName: "filterMenus", predicate: FilterMenuComponent, descendants: true }, { propertyName: "columnMenus", predicate: ColumnMenuComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
15312
15627
|
<ng-container>
|
|
15313
15628
|
<tr *ngFor="let i of columnLevels; let levelIndex = index"
|
|
@@ -15359,7 +15674,9 @@ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
15359
15674
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15360
15675
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15361
15676
|
[attr.colspan]="column.colspan"
|
|
15362
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15677
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15678
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15679
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15363
15680
|
|
|
15364
15681
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15365
15682
|
<span class="k-cell-inner">
|
|
@@ -15581,7 +15898,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15581
15898
|
[ngStyle]="column.sticky ? addStickyStyles(column) : column.headerStyle"
|
|
15582
15899
|
[attr.rowspan]="column.rowspan(totalColumnLevels)"
|
|
15583
15900
|
[attr.colspan]="column.colspan"
|
|
15584
|
-
[attr.aria-haspopup]="(showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15901
|
+
[attr.aria-haspopup]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? 'dialog' : undefined"
|
|
15902
|
+
[attr.aria-expanded]="isNavigable && (showFilterMenu || showColumnMenu(column)) ? false : undefined"
|
|
15903
|
+
[attr.aria-keyshortcuts]="isNavigable ? 'Alt + ArrowDown' : undefined">
|
|
15585
15904
|
|
|
15586
15905
|
<ng-container *ngIf="!isSortable(getColumnComponent(column))">
|
|
15587
15906
|
<span class="k-cell-inner">
|
|
@@ -15749,7 +16068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
15749
16068
|
</ng-container>
|
|
15750
16069
|
`
|
|
15751
16070
|
}]
|
|
15752
|
-
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }]; }, propDecorators: { totalColumnLevels: [{
|
|
16071
|
+
}], ctorParameters: function () { return [{ type: SinglePopupService }, { type: DragHintService }, { type: DropCueService }, { type: ColumnReorderService }, { type: IdService }, { type: SortService }, { type: ColumnInfoService }, { type: i0.ChangeDetectorRef }, { type: ContextService }, { type: NavigationService }]; }, propDecorators: { totalColumnLevels: [{
|
|
15753
16072
|
type: Input
|
|
15754
16073
|
}], columns: [{
|
|
15755
16074
|
type: Input
|
|
@@ -18715,7 +19034,7 @@ class FooterComponent {
|
|
|
18715
19034
|
}
|
|
18716
19035
|
addStickyStyles(column) {
|
|
18717
19036
|
const stickyStyles = this.columnInfoService.stickyColumnsStyles(column);
|
|
18718
|
-
return { ...column.
|
|
19037
|
+
return { ...column.footerStyle, ...stickyStyles };
|
|
18719
19038
|
}
|
|
18720
19039
|
}
|
|
18721
19040
|
FooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FooterComponent, deps: [{ token: ColumnInfoService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -22830,7 +23149,15 @@ class ExpandGroupDirective {
|
|
|
22830
23149
|
this.expandedGroupKeys.push(key);
|
|
22831
23150
|
}
|
|
22832
23151
|
else {
|
|
22833
|
-
const index = this.expandedGroupKeys.
|
|
23152
|
+
const index = this.expandedGroupKeys.findIndex(group => {
|
|
23153
|
+
if (this.expandGroupBy) {
|
|
23154
|
+
return group === key;
|
|
23155
|
+
}
|
|
23156
|
+
else if (key.parentGroupKeys?.length === 0) {
|
|
23157
|
+
return group.value === key.value;
|
|
23158
|
+
}
|
|
23159
|
+
return JSON.stringify(group) === JSON.stringify(key);
|
|
23160
|
+
});
|
|
22834
23161
|
this.expandedGroupKeys.splice(index, 1);
|
|
22835
23162
|
}
|
|
22836
23163
|
this.expandedGroupKeysChange.emit(this.expandedGroupKeys.slice());
|
|
@@ -22948,7 +23275,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
|
|
|
22948
23275
|
[value]="currentFilter?.value">
|
|
22949
23276
|
</kendo-autocomplete>
|
|
22950
23277
|
</kendo-grid-filter-wrapper-cell>
|
|
22951
|
-
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
23278
|
+
`, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-grid-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i1$4.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "value"] }] });
|
|
22952
23279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
|
|
22953
23280
|
type: Component,
|
|
22954
23281
|
args: [{
|
|
@@ -24068,13 +24395,30 @@ class ColumnChooserComponent {
|
|
|
24068
24395
|
anchorAlign: { vertical: 'bottom', horizontal: direction },
|
|
24069
24396
|
popupAlign: { vertical: 'top', horizontal: direction }
|
|
24070
24397
|
});
|
|
24071
|
-
|
|
24398
|
+
const popupElement = this.popupRef?.popupElement;
|
|
24399
|
+
if (popupElement) {
|
|
24400
|
+
const popupId = `k-${guid()}`;
|
|
24401
|
+
const popupAriaElement = popupElement.querySelector('.k-popup');
|
|
24402
|
+
this.ngZone.runOutsideAngular(() => {
|
|
24403
|
+
this.escapeListener = this.renderer.listen(popupAriaElement, 'keydown', (e) => {
|
|
24404
|
+
if (e.keyCode === Keys.Escape) {
|
|
24405
|
+
this.close(true);
|
|
24406
|
+
}
|
|
24407
|
+
});
|
|
24408
|
+
});
|
|
24409
|
+
this.renderer.setAttribute(popupElement, 'dir', this.ctx.localization.rtl ? 'rtl' : 'ltr');
|
|
24410
|
+
this.renderer.setAttribute(popupAriaElement, 'id', popupId);
|
|
24411
|
+
this.renderer.setAttribute(popupAriaElement, 'role', 'dialog');
|
|
24412
|
+
this.popupId = popupId;
|
|
24413
|
+
}
|
|
24072
24414
|
if (!isDocumentAvailable()) {
|
|
24073
24415
|
return;
|
|
24074
24416
|
}
|
|
24075
24417
|
this.ngZone.runOutsideAngular(() => this.closeClick = this.renderer.listen('document', 'click', ({ target }) => {
|
|
24076
24418
|
if (!closest(target, node => node === this.popupRef.popupElement || node === anchor.element)) {
|
|
24077
|
-
this.
|
|
24419
|
+
this.ngZone.run(() => {
|
|
24420
|
+
this.close();
|
|
24421
|
+
});
|
|
24078
24422
|
}
|
|
24079
24423
|
}));
|
|
24080
24424
|
}
|
|
@@ -24086,7 +24430,7 @@ class ColumnChooserComponent {
|
|
|
24086
24430
|
* @hidden
|
|
24087
24431
|
*/
|
|
24088
24432
|
onApply(changed) {
|
|
24089
|
-
this.close();
|
|
24433
|
+
this.close(true);
|
|
24090
24434
|
if (changed.length) {
|
|
24091
24435
|
this.changeDetector.markForCheck();
|
|
24092
24436
|
this.columnInfoService.changeVisibility(changed);
|
|
@@ -24099,12 +24443,24 @@ class ColumnChooserComponent {
|
|
|
24099
24443
|
this.changeDetector.markForCheck();
|
|
24100
24444
|
this.columnInfoService.changeVisibility(changed);
|
|
24101
24445
|
}
|
|
24102
|
-
|
|
24446
|
+
/**
|
|
24447
|
+
* @hidden
|
|
24448
|
+
*/
|
|
24449
|
+
onShiftTab(e) {
|
|
24450
|
+
if (e.target.matches('.k-column-list-item')) {
|
|
24451
|
+
e.preventDefault();
|
|
24452
|
+
this.columnList.resetButton.nativeElement.focus();
|
|
24453
|
+
}
|
|
24454
|
+
}
|
|
24455
|
+
close(focusAnchor = false) {
|
|
24103
24456
|
if (this.popupRef) {
|
|
24104
24457
|
this.popupRef.close();
|
|
24105
24458
|
this.popupRef = null;
|
|
24459
|
+
this.changeDetector.markForCheck();
|
|
24460
|
+
this.escapeListener && this.escapeListener();
|
|
24106
24461
|
}
|
|
24107
24462
|
this.detachClose();
|
|
24463
|
+
focusAnchor && this.anchor.element.focus();
|
|
24108
24464
|
}
|
|
24109
24465
|
detachClose() {
|
|
24110
24466
|
if (this.closeClick) {
|
|
@@ -24114,7 +24470,7 @@ class ColumnChooserComponent {
|
|
|
24114
24470
|
}
|
|
24115
24471
|
}
|
|
24116
24472
|
ColumnChooserComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, deps: [{ token: ContextService }, { token: ColumnInfoService }, { token: i1$2.PopupService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
24117
|
-
ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, ngImport: i0, template: `
|
|
24473
|
+
ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ColumnChooserComponent, selector: "kendo-grid-column-chooser", inputs: { autoSync: "autoSync", allowHideAll: "allowHideAll" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["anchor"], descendants: true }, { propertyName: "columnList", first: true, predicate: ["columnList"], descendants: true }], ngImport: i0, template: `
|
|
24118
24474
|
<button #anchor
|
|
24119
24475
|
kendoButton
|
|
24120
24476
|
type="button"
|
|
@@ -24122,20 +24478,27 @@ ColumnChooserComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
24122
24478
|
fillMode="flat"
|
|
24123
24479
|
[attr.title]="ctx.localization.get('columns')"
|
|
24124
24480
|
icon="columns"
|
|
24125
|
-
[svgIcon]="columnsIcon"
|
|
24481
|
+
[svgIcon]="columnsIcon"
|
|
24482
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24483
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24484
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24126
24485
|
<ng-template #template>
|
|
24127
24486
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24128
24487
|
<kendo-grid-columnlist
|
|
24488
|
+
#columnList
|
|
24129
24489
|
[columns]="columns"
|
|
24490
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24491
|
+
[isLast]="true"
|
|
24130
24492
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24131
24493
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24132
24494
|
[autoSync]="autoSync"
|
|
24133
24495
|
[allowHideAll]="allowHideAll"
|
|
24134
24496
|
(apply)="onApply($event)"
|
|
24135
|
-
(columnChange)="onChange($event)"
|
|
24497
|
+
(columnChange)="onChange($event)"
|
|
24498
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24136
24499
|
</kendo-grid-columnlist>
|
|
24137
24500
|
</ng-template>
|
|
24138
|
-
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
24501
|
+
`, isInline: true, components: [{ type: i4$1.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { type: ColumnListComponent, selector: "kendo-grid-columnlist", inputs: ["columns", "autoSync", "ariaLabel", "allowHideAll", "applyText", "resetText", "actionsClass", "isLast", "isExpanded", "service"], outputs: ["reset", "apply", "columnChange"] }] });
|
|
24139
24502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnChooserComponent, decorators: [{
|
|
24140
24503
|
type: Component,
|
|
24141
24504
|
args: [{
|
|
@@ -24148,17 +24511,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24148
24511
|
fillMode="flat"
|
|
24149
24512
|
[attr.title]="ctx.localization.get('columns')"
|
|
24150
24513
|
icon="columns"
|
|
24151
|
-
[svgIcon]="columnsIcon"
|
|
24514
|
+
[svgIcon]="columnsIcon"
|
|
24515
|
+
[attr.aria-haspopup]="'dialog'"
|
|
24516
|
+
[attr.aria-expanded]="!!(popupRef)"
|
|
24517
|
+
[attr.aria-controls]="!!(popupRef) ? popupId : undefined"></button>
|
|
24152
24518
|
<ng-template #template>
|
|
24153
24519
|
<span class='k-column-chooser-title'>{{ ctx.localization.get('columns') }}</span>
|
|
24154
24520
|
<kendo-grid-columnlist
|
|
24521
|
+
#columnList
|
|
24155
24522
|
[columns]="columns"
|
|
24523
|
+
[ariaLabel]="ctx.localization.get('columns')"
|
|
24524
|
+
[isLast]="true"
|
|
24156
24525
|
[applyText]="ctx.localization.get('columnsApply')"
|
|
24157
24526
|
[resetText]="ctx.localization.get('columnsReset')"
|
|
24158
24527
|
[autoSync]="autoSync"
|
|
24159
24528
|
[allowHideAll]="allowHideAll"
|
|
24160
24529
|
(apply)="onApply($event)"
|
|
24161
|
-
(columnChange)="onChange($event)"
|
|
24530
|
+
(columnChange)="onChange($event)"
|
|
24531
|
+
(keydown.shift.tab)="onShiftTab($event)">
|
|
24162
24532
|
</kendo-grid-columnlist>
|
|
24163
24533
|
</ng-template>
|
|
24164
24534
|
`
|
|
@@ -24167,9 +24537,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
24167
24537
|
type: Input
|
|
24168
24538
|
}], allowHideAll: [{
|
|
24169
24539
|
type: Input
|
|
24540
|
+
}], anchor: [{
|
|
24541
|
+
type: ViewChild,
|
|
24542
|
+
args: ['anchor']
|
|
24543
|
+
}], columnList: [{
|
|
24544
|
+
type: ViewChild,
|
|
24545
|
+
args: ['columnList']
|
|
24170
24546
|
}] } });
|
|
24171
24547
|
|
|
24172
24548
|
const COMPONENTS = [
|
|
24549
|
+
ColumnMenuChooserItemCheckedDirective,
|
|
24173
24550
|
ColumnListComponent,
|
|
24174
24551
|
ColumnChooserComponent,
|
|
24175
24552
|
ColumnMenuChooserComponent,
|
|
@@ -24212,7 +24589,8 @@ class ColumnMenuModule {
|
|
|
24212
24589
|
}
|
|
24213
24590
|
}
|
|
24214
24591
|
ColumnMenuModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24215
|
-
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [
|
|
24592
|
+
ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ColumnMenuModule, declarations: [ColumnMenuChooserItemCheckedDirective,
|
|
24593
|
+
ColumnListComponent,
|
|
24216
24594
|
ColumnChooserComponent,
|
|
24217
24595
|
ColumnMenuChooserComponent,
|
|
24218
24596
|
ColumnMenuFilterComponent,
|
|
@@ -24227,7 +24605,8 @@ ColumnMenuModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versio
|
|
|
24227
24605
|
ColumnMenuStickComponent,
|
|
24228
24606
|
ColumnMenuPositionComponent,
|
|
24229
24607
|
ColumnMenuAutoSizeColumnComponent,
|
|
24230
|
-
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [
|
|
24608
|
+
ColumnMenuAutoSizeAllColumnsComponent], imports: [CommonModule, FilterMenuModule, ButtonModule, TabStripModule], exports: [ColumnMenuChooserItemCheckedDirective,
|
|
24609
|
+
ColumnListComponent,
|
|
24231
24610
|
ColumnChooserComponent,
|
|
24232
24611
|
ColumnMenuChooserComponent,
|
|
24233
24612
|
ColumnMenuFilterComponent,
|