@progress/kendo-angular-pager 4.0.6 → 4.1.0-dev.202211250852
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/bundles/kendo-angular-pager.umd.js +1 -1
- package/esm2015/main.js +1 -0
- package/esm2015/package-metadata.js +1 -1
- package/esm2015/pager/focusable.directive.js +51 -0
- package/esm2015/pager/localization/custom-messages.component.js +3 -3
- package/esm2015/pager/localization/localized-messages.directive.js +3 -3
- package/esm2015/pager/localization/messages.js +5 -3
- package/esm2015/pager/navigation.service.js +37 -0
- package/esm2015/pager/pager-element.component.js +3 -3
- package/esm2015/pager/pager-info.component.js +3 -3
- package/esm2015/pager/pager-input.component.js +15 -9
- package/esm2015/pager/pager-next-buttons.component.js +9 -8
- package/esm2015/pager/pager-numeric-buttons.component.js +20 -13
- package/esm2015/pager/pager-page-sizes.component.js +24 -8
- package/esm2015/pager/pager-prev-buttons.component.js +9 -8
- package/esm2015/pager/pager-template.directive.js +3 -3
- package/esm2015/pager/pager.component.js +142 -20
- package/esm2015/pager/pager.module.js +11 -7
- package/esm2015/util.js +26 -0
- package/fesm2015/kendo-angular-pager.js +341 -90
- package/main.d.ts +1 -0
- package/package.json +1 -1
- package/pager/focusable.directive.d.ts +23 -0
- package/pager/localization/messages.d.ts +5 -1
- package/pager/navigation.service.d.ts +15 -0
- package/pager/pager-input.component.d.ts +4 -2
- package/pager/pager-page-sizes.component.d.ts +7 -3
- package/pager/pager.component.d.ts +27 -3
- package/pager/pager.module.d.ts +6 -5
- package/util.d.ts +8 -0
|
@@ -7,7 +7,8 @@ import { PagerElementComponent } from './pager-element.component';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
9
9
|
import * as i2 from "./pager-context.service";
|
|
10
|
-
import * as i3 from "
|
|
10
|
+
import * as i3 from "./focusable.directive";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
11
12
|
/**
|
|
12
13
|
* Displays numeric buttons to enable navigation between the pages.
|
|
13
14
|
*/
|
|
@@ -87,9 +88,9 @@ export class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
87
88
|
return this.textFor('selectPage');
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
|
-
PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
91
|
-
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
92
|
-
<select
|
|
91
|
+
PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
92
|
+
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, host: { properties: { "class.k-pager-numbers-wrap": "this.numbersWrapClass" } }, usesInheritance: true, ngImport: i0, template: `
|
|
93
|
+
<select kendoPagerFocusable
|
|
93
94
|
class="k-dropdown-list k-picker k-picker-md k-rounded-md k-picker-solid"
|
|
94
95
|
[attr.title]="pageChooserLabel"
|
|
95
96
|
[attr.aria-label]="pageChooserLabel"
|
|
@@ -118,15 +119,17 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
118
119
|
<ul [ngClass]="{'k-pager-numbers': true}">
|
|
119
120
|
<li *ngIf="start > 1">
|
|
120
121
|
<button
|
|
121
|
-
type="button"
|
|
122
|
+
type="button" kendoPagerFocusable
|
|
122
123
|
class="k-link"
|
|
123
124
|
[attr.aria-label]="pageLabel(start - 1)"
|
|
125
|
+
[attr.title]="pageLabel(start - 1)"
|
|
124
126
|
(click)="changePage(start - 2)">...</button>
|
|
125
127
|
</li>
|
|
126
128
|
<li *ngFor="let num of buttons">
|
|
127
129
|
<button
|
|
128
|
-
type="button"
|
|
130
|
+
type="button" kendoPagerFocusable
|
|
129
131
|
[attr.aria-label]="pageLabel(num)"
|
|
132
|
+
[attr.title]="pageLabel(num)"
|
|
130
133
|
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
131
134
|
[ngClass]="{'k-link': true, 'k-selected':currentPage === num}"
|
|
132
135
|
(click)="changePage(num - 1)">
|
|
@@ -135,20 +138,21 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
|
|
|
135
138
|
</li>
|
|
136
139
|
<li *ngIf="end < totalPages">
|
|
137
140
|
<button
|
|
138
|
-
type="button"
|
|
141
|
+
type="button" kendoPagerFocusable
|
|
139
142
|
class="k-link"
|
|
140
143
|
[attr.aria-label]="pageLabel(end + 1)"
|
|
144
|
+
[attr.title]="pageLabel(end + 1)"
|
|
141
145
|
(click)="changePage(end)">...</button>
|
|
142
146
|
</li>
|
|
143
147
|
</ul>
|
|
144
|
-
`, isInline: true, directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type:
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
148
|
+
`, isInline: true, directives: [{ type: i3.PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerNumericButtonsComponent, decorators: [{
|
|
146
150
|
type: Component,
|
|
147
151
|
args: [{
|
|
148
152
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
153
|
selector: 'kendo-datapager-numeric-buttons',
|
|
150
154
|
template: `
|
|
151
|
-
<select
|
|
155
|
+
<select kendoPagerFocusable
|
|
152
156
|
class="k-dropdown-list k-picker k-picker-md k-rounded-md k-picker-solid"
|
|
153
157
|
[attr.title]="pageChooserLabel"
|
|
154
158
|
[attr.aria-label]="pageChooserLabel"
|
|
@@ -177,15 +181,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
177
181
|
<ul [ngClass]="{'k-pager-numbers': true}">
|
|
178
182
|
<li *ngIf="start > 1">
|
|
179
183
|
<button
|
|
180
|
-
type="button"
|
|
184
|
+
type="button" kendoPagerFocusable
|
|
181
185
|
class="k-link"
|
|
182
186
|
[attr.aria-label]="pageLabel(start - 1)"
|
|
187
|
+
[attr.title]="pageLabel(start - 1)"
|
|
183
188
|
(click)="changePage(start - 2)">...</button>
|
|
184
189
|
</li>
|
|
185
190
|
<li *ngFor="let num of buttons">
|
|
186
191
|
<button
|
|
187
|
-
type="button"
|
|
192
|
+
type="button" kendoPagerFocusable
|
|
188
193
|
[attr.aria-label]="pageLabel(num)"
|
|
194
|
+
[attr.title]="pageLabel(num)"
|
|
189
195
|
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
190
196
|
[ngClass]="{'k-link': true, 'k-selected':currentPage === num}"
|
|
191
197
|
(click)="changePage(num - 1)">
|
|
@@ -194,9 +200,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
194
200
|
</li>
|
|
195
201
|
<li *ngIf="end < totalPages">
|
|
196
202
|
<button
|
|
197
|
-
type="button"
|
|
203
|
+
type="button" kendoPagerFocusable
|
|
198
204
|
class="k-link"
|
|
199
205
|
[attr.aria-label]="pageLabel(end + 1)"
|
|
206
|
+
[attr.title]="pageLabel(end + 1)"
|
|
200
207
|
(click)="changePage(end)">...</button>
|
|
201
208
|
</li>
|
|
202
209
|
</ul>
|
|
@@ -5,17 +5,21 @@
|
|
|
5
5
|
import { Component, ChangeDetectionStrategy, HostBinding, Input, ViewChild } from '@angular/core';
|
|
6
6
|
import { PagerElementComponent } from './pager-element.component';
|
|
7
7
|
import { PageSizeChangeEvent } from './pagesizechange-event';
|
|
8
|
+
import { Keys } from '@progress/kendo-angular-common';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
10
11
|
import * as i2 from "./pager-context.service";
|
|
11
12
|
import * as i3 from "@progress/kendo-angular-dropdowns";
|
|
13
|
+
import * as i4 from "./focusable.directive";
|
|
12
14
|
/**
|
|
13
15
|
* Displays a drop-down list for the page size selection ([see example]({% slug pager_settings %})).
|
|
14
16
|
*/
|
|
15
17
|
export class PagerPageSizesComponent extends PagerElementComponent {
|
|
16
|
-
constructor(localization, cd, pagerContext) {
|
|
18
|
+
constructor(localization, cd, pagerContext, element, ngZone) {
|
|
17
19
|
super(localization, pagerContext, cd);
|
|
18
20
|
this.pagerContext = pagerContext;
|
|
21
|
+
this.element = element;
|
|
22
|
+
this.ngZone = ngZone;
|
|
19
23
|
this._pageSizes = [];
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
@@ -169,6 +173,12 @@ export class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
169
173
|
}
|
|
170
174
|
ngAfterViewInit() {
|
|
171
175
|
this.dropDownList.wrapper.nativeElement.setAttribute('aria-label', this.textFor('itemsPerPage'));
|
|
176
|
+
this.ngZone.runOutsideAngular(() => {
|
|
177
|
+
this.element.nativeElement.addEventListener('keydown', this.keyDownHandler.bind(this), true);
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
ngOnDestroy() {
|
|
181
|
+
this.element.nativeElement.removeEventListener('keydown', this.keyDownHandler);
|
|
172
182
|
}
|
|
173
183
|
/**
|
|
174
184
|
* @hidden
|
|
@@ -186,10 +196,16 @@ export class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
186
196
|
this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
|
|
187
197
|
this.cd.markForCheck();
|
|
188
198
|
}
|
|
199
|
+
keyDownHandler(ev) {
|
|
200
|
+
if (ev.keyCode === Keys.Escape && this.dropDownList.isOpen) {
|
|
201
|
+
ev.stopPropagation();
|
|
202
|
+
this.dropDownList.toggle(false);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
189
205
|
}
|
|
190
|
-
PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
191
|
-
PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
192
|
-
<kendo-dropdownlist
|
|
206
|
+
PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.PagerContextService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
207
|
+
PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PagerPageSizesComponent, selector: "kendo-datapager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, viewQueries: [{ propertyName: "dropDownList", first: true, predicate: ["dropdownlist"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
208
|
+
<kendo-dropdownlist kendoPagerFocusable
|
|
193
209
|
#dropdownlist
|
|
194
210
|
[data]="pageSizes"
|
|
195
211
|
textField="text"
|
|
@@ -198,14 +214,14 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
198
214
|
[value]="pageSize"
|
|
199
215
|
(valueChange)="pageSizeChange($event, dropdownlist)"></kendo-dropdownlist>
|
|
200
216
|
{{ textFor('itemsPerPage') }}
|
|
201
|
-
`, isInline: true, components: [{ type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
217
|
+
`, isInline: true, components: [{ type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "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.PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
218
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
203
219
|
type: Component,
|
|
204
220
|
args: [{
|
|
205
221
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
206
222
|
selector: 'kendo-datapager-page-sizes',
|
|
207
223
|
template: `
|
|
208
|
-
<kendo-dropdownlist
|
|
224
|
+
<kendo-dropdownlist kendoPagerFocusable
|
|
209
225
|
#dropdownlist
|
|
210
226
|
[data]="pageSizes"
|
|
211
227
|
textField="text"
|
|
@@ -216,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
216
232
|
{{ textFor('itemsPerPage') }}
|
|
217
233
|
`
|
|
218
234
|
}]
|
|
219
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }]; }, propDecorators: { dropDownList: [{
|
|
235
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { dropDownList: [{
|
|
220
236
|
type: ViewChild,
|
|
221
237
|
args: ['dropdownlist', { static: true }]
|
|
222
238
|
}], pageSizes: [{
|
|
@@ -8,6 +8,7 @@ import { PagerElementComponent } from './pager-element.component';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@progress/kendo-angular-l10n";
|
|
10
10
|
import * as i2 from "./pager-context.service";
|
|
11
|
+
import * as i3 from "./focusable.directive";
|
|
11
12
|
/**
|
|
12
13
|
* Displays buttons for navigating to the first and to the previous page ([see example]({% slug pager_settings %})).
|
|
13
14
|
*/
|
|
@@ -32,10 +33,10 @@ export class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
32
33
|
this.cd.markForCheck();
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
36
|
-
PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
36
|
+
PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
+
PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
|
|
37
38
|
<button
|
|
38
|
-
type="button"
|
|
39
|
+
type="button" kendoPagerFocusable
|
|
39
40
|
class="k-link k-pager-nav k-pager-first"
|
|
40
41
|
[class.k-disabled]="disabled"
|
|
41
42
|
[title]="textFor('firstPage')"
|
|
@@ -45,7 +46,7 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
45
46
|
<span class="k-icon k-i-seek-w" role="note" [attr.aria-label]="textFor('firstPage')"></span>
|
|
46
47
|
</button>
|
|
47
48
|
<button
|
|
48
|
-
type="button"
|
|
49
|
+
type="button" kendoPagerFocusable
|
|
49
50
|
class="k-link k-pager-nav"
|
|
50
51
|
[class.k-disabled]="disabled"
|
|
51
52
|
[title]="textFor('previousPage')"
|
|
@@ -54,15 +55,15 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
|
|
|
54
55
|
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
55
56
|
<span class="k-icon k-i-arrow-w" role="note" [attr.aria-label]="textFor('previousPage')"></span>
|
|
56
57
|
</button>
|
|
57
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
58
|
+
`, isInline: true, directives: [{ type: i3.PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
59
60
|
type: Component,
|
|
60
61
|
args: [{
|
|
61
62
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
62
63
|
selector: 'kendo-datapager-prev-buttons',
|
|
63
64
|
template: `
|
|
64
65
|
<button
|
|
65
|
-
type="button"
|
|
66
|
+
type="button" kendoPagerFocusable
|
|
66
67
|
class="k-link k-pager-nav k-pager-first"
|
|
67
68
|
[class.k-disabled]="disabled"
|
|
68
69
|
[title]="textFor('firstPage')"
|
|
@@ -72,7 +73,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
72
73
|
<span class="k-icon k-i-seek-w" role="note" [attr.aria-label]="textFor('firstPage')"></span>
|
|
73
74
|
</button>
|
|
74
75
|
<button
|
|
75
|
-
type="button"
|
|
76
|
+
type="button" kendoPagerFocusable
|
|
76
77
|
class="k-link k-pager-nav"
|
|
77
78
|
[class.k-disabled]="disabled"
|
|
78
79
|
[title]="textFor('previousPage')"
|
|
@@ -51,9 +51,9 @@ export class PagerTemplateDirective {
|
|
|
51
51
|
this.templateRef = templateRef;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
PagerTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
55
|
-
PagerTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
54
|
+
PagerTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
55
|
+
PagerTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: PagerTemplateDirective, selector: "[kendoDataPagerTemplate]", ngImport: i0 });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerTemplateDirective, decorators: [{
|
|
57
57
|
type: Directive,
|
|
58
58
|
args: [{
|
|
59
59
|
selector: '[kendoDataPagerTemplate]'
|
|
@@ -3,32 +3,37 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { RESPONSIVE_BREAKPOINT_MEDIUM, RESPONSIVE_BREAKPOINT_LARGE } from './common/constants';
|
|
6
|
-
import { Component, Input, EventEmitter, Output, HostBinding, ViewChild, ContentChild } from '@angular/core';
|
|
6
|
+
import { Component, Input, EventEmitter, Output, HostBinding, ViewChild, ContentChild, HostListener } from '@angular/core';
|
|
7
7
|
import { PagerTemplateDirective } from "./pager-template.directive";
|
|
8
|
-
import { anyChanged, ResizeSensorComponent } from "@progress/kendo-angular-common";
|
|
8
|
+
import { anyChanged, Keys, ResizeSensorComponent } from "@progress/kendo-angular-common";
|
|
9
9
|
import { PagerContextService } from "./pager-context.service";
|
|
10
10
|
import { Subscription } from "rxjs";
|
|
11
11
|
import { DEFAULT_PAGE_SIZE_VALUES } from '../util';
|
|
12
12
|
import { LocalizationService } from '@progress/kendo-angular-l10n';
|
|
13
13
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
14
14
|
import { packageMetadata } from '../package-metadata';
|
|
15
|
+
import { PagerNavigationService } from './navigation.service';
|
|
15
16
|
import * as i0 from "@angular/core";
|
|
16
17
|
import * as i1 from "./pager-context.service";
|
|
17
18
|
import * as i2 from "@progress/kendo-angular-l10n";
|
|
18
|
-
import * as i3 from "./
|
|
19
|
-
import * as i4 from "./pager-
|
|
20
|
-
import * as i5 from "./pager-
|
|
21
|
-
import * as i6 from "./pager-
|
|
22
|
-
import * as i7 from "./pager-
|
|
23
|
-
import * as i8 from "./pager-
|
|
24
|
-
import * as i9 from "
|
|
25
|
-
import * as i10 from "
|
|
26
|
-
import * as i11 from "
|
|
19
|
+
import * as i3 from "./navigation.service";
|
|
20
|
+
import * as i4 from "./pager-prev-buttons.component";
|
|
21
|
+
import * as i5 from "./pager-numeric-buttons.component";
|
|
22
|
+
import * as i6 from "./pager-input.component";
|
|
23
|
+
import * as i7 from "./pager-next-buttons.component";
|
|
24
|
+
import * as i8 from "./pager-info.component";
|
|
25
|
+
import * as i9 from "./pager-page-sizes.component";
|
|
26
|
+
import * as i10 from "@progress/kendo-angular-common";
|
|
27
|
+
import * as i11 from "./localization/localized-messages.directive";
|
|
28
|
+
import * as i12 from "@angular/common";
|
|
27
29
|
export class PagerComponent {
|
|
28
|
-
constructor(pagerContext, element, localization) {
|
|
30
|
+
constructor(pagerContext, element, localization, renderer, ngZone, navigationService) {
|
|
29
31
|
this.pagerContext = pagerContext;
|
|
30
32
|
this.element = element;
|
|
31
33
|
this.localization = localization;
|
|
34
|
+
this.renderer = renderer;
|
|
35
|
+
this.ngZone = ngZone;
|
|
36
|
+
this.navigationService = navigationService;
|
|
32
37
|
/**
|
|
33
38
|
* Represents the total number of data items in the collection.
|
|
34
39
|
*/
|
|
@@ -65,10 +70,15 @@ export class PagerComponent {
|
|
|
65
70
|
*/
|
|
66
71
|
this.pageSizeChange = new EventEmitter();
|
|
67
72
|
this.pagerClass = true;
|
|
68
|
-
this.widgetRole = '
|
|
73
|
+
this.widgetRole = 'application';
|
|
74
|
+
this.roleDescription = 'pager';
|
|
75
|
+
this.keyShortcuts = 'Enter ArrowRight ArrowLeft';
|
|
76
|
+
this.hostTabindex = '0';
|
|
69
77
|
this.subscriptions = new Subscription();
|
|
70
78
|
this._templateContext = {};
|
|
71
79
|
this._pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;
|
|
80
|
+
this.isInnerNavigationEnabled = false;
|
|
81
|
+
this._navigable = false;
|
|
72
82
|
this.resizeHandler = () => {
|
|
73
83
|
if (this.template) {
|
|
74
84
|
return;
|
|
@@ -100,9 +110,30 @@ export class PagerComponent {
|
|
|
100
110
|
set pageSizeValues(pageSizeValues) {
|
|
101
111
|
this._pageSizeValues = Array.isArray(pageSizeValues) ? pageSizeValues : pageSizeValues ? DEFAULT_PAGE_SIZE_VALUES : false;
|
|
102
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* If set to `true`, the user can use dedicated shortcuts to interact with the Pager ([see example]({% slug keyboard_navigation_pager %})).
|
|
115
|
+
* By default, navigation is disabled and the Pager content is accessible in the normal tab sequence.
|
|
116
|
+
* @default false
|
|
117
|
+
*/
|
|
118
|
+
set navigable(value) {
|
|
119
|
+
this._navigable = value;
|
|
120
|
+
this.navigationService.isNavigable = value;
|
|
121
|
+
}
|
|
122
|
+
;
|
|
123
|
+
get navigable() {
|
|
124
|
+
return this._navigable;
|
|
125
|
+
}
|
|
126
|
+
;
|
|
103
127
|
get dir() {
|
|
104
128
|
return this.direction;
|
|
105
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* @hidden
|
|
132
|
+
*/
|
|
133
|
+
focusHandler(ev) {
|
|
134
|
+
const isInnerNavigationEnabled = ev.target !== this.element.nativeElement;
|
|
135
|
+
this.navigationService.toggleInnerNavigation(isInnerNavigationEnabled);
|
|
136
|
+
}
|
|
106
137
|
get totalPages() {
|
|
107
138
|
return Math.ceil((this.total || 0) / this.pageSize);
|
|
108
139
|
}
|
|
@@ -128,9 +159,17 @@ export class PagerComponent {
|
|
|
128
159
|
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
129
160
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
130
161
|
}));
|
|
162
|
+
this.subscriptions.add(this.navigationService.innerNavigationChange.subscribe(this.innerNavigationChange.bind(this)));
|
|
163
|
+
if (this.navigable) {
|
|
164
|
+
const wrapper = this.element.nativeElement;
|
|
165
|
+
this.ngZone.runOutsideAngular(() => {
|
|
166
|
+
this.subscriptions.add(this.renderer.listen(wrapper, 'keydown', this.keyDownHandler.bind(this)));
|
|
167
|
+
});
|
|
168
|
+
}
|
|
131
169
|
}
|
|
132
170
|
ngAfterViewInit() {
|
|
133
171
|
this.resizeHandler();
|
|
172
|
+
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
134
173
|
}
|
|
135
174
|
ngOnChanges(changes) {
|
|
136
175
|
if (anyChanged(["pageSize", "skip", "total"], changes, false)) {
|
|
@@ -139,6 +178,7 @@ export class PagerComponent {
|
|
|
139
178
|
skip: this.skip,
|
|
140
179
|
total: this.total
|
|
141
180
|
});
|
|
181
|
+
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
142
182
|
}
|
|
143
183
|
}
|
|
144
184
|
ngOnDestroy() {
|
|
@@ -173,11 +213,72 @@ export class PagerComponent {
|
|
|
173
213
|
this.pageChange.emit({ skip: this.skip, take: event.newPageSize });
|
|
174
214
|
}
|
|
175
215
|
}
|
|
216
|
+
textFor(value) {
|
|
217
|
+
return this.localization.get(value);
|
|
218
|
+
}
|
|
219
|
+
get ariaLabel() {
|
|
220
|
+
return `${this.textFor('page')} ${this.currentPage} ${this.textFor('of')} ${this.totalPages}`;
|
|
221
|
+
}
|
|
222
|
+
keyDownHandler(e) {
|
|
223
|
+
const target = e.target;
|
|
224
|
+
const wrapper = this.element.nativeElement;
|
|
225
|
+
const isArrowLeftOrPageUp = e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.PageUp;
|
|
226
|
+
const isArrowRightOrPageDown = e.keyCode === Keys.ArrowRight || e.keyCode === Keys.PageDown;
|
|
227
|
+
const isEnter = e.keyCode === Keys.Enter;
|
|
228
|
+
const isHome = e.keyCode === Keys.Home;
|
|
229
|
+
const isEnd = e.keyCode === Keys.End;
|
|
230
|
+
const isEsc = e.keyCode === Keys.Escape;
|
|
231
|
+
const isTab = e.keyCode === Keys.Tab;
|
|
232
|
+
const isFirstPage = this.currentPage === 1;
|
|
233
|
+
const isLastPage = this.currentPage === this.totalPages;
|
|
234
|
+
this.ngZone.run(() => {
|
|
235
|
+
if (isHome) {
|
|
236
|
+
e.preventDefault();
|
|
237
|
+
!isFirstPage && this.pagerContext.changePage(0);
|
|
238
|
+
}
|
|
239
|
+
else if (isEnd) {
|
|
240
|
+
e.preventDefault();
|
|
241
|
+
!isLastPage && this.pagerContext.changePage(this.totalPages - 1);
|
|
242
|
+
}
|
|
243
|
+
else if (this.isInnerNavigationEnabled) {
|
|
244
|
+
if (isEsc) {
|
|
245
|
+
this.navigationService.toggleInnerNavigation(false);
|
|
246
|
+
wrapper.focus();
|
|
247
|
+
}
|
|
248
|
+
else if (isTab) {
|
|
249
|
+
this.navigationService.keepFocusWithinComponent(wrapper, target, e);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
if (isArrowLeftOrPageUp) {
|
|
254
|
+
e.preventDefault();
|
|
255
|
+
!isFirstPage && this.pagerContext.prevPage();
|
|
256
|
+
}
|
|
257
|
+
else if (isArrowRightOrPageDown) {
|
|
258
|
+
e.preventDefault();
|
|
259
|
+
!isLastPage && this.pagerContext.nextPage();
|
|
260
|
+
}
|
|
261
|
+
else if (isEnter) {
|
|
262
|
+
if (e.target !== wrapper) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
e.preventDefault();
|
|
266
|
+
const [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);
|
|
267
|
+
this.navigationService.toggleInnerNavigation(true);
|
|
268
|
+
firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
innerNavigationChange(value) {
|
|
274
|
+
this.isInnerNavigationEnabled = value;
|
|
275
|
+
}
|
|
176
276
|
}
|
|
177
|
-
PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
178
|
-
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.
|
|
277
|
+
PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerComponent, deps: [{ token: i1.PagerContextService }, { token: i0.ElementRef }, { token: i2.LocalizationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i3.PagerNavigationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
278
|
+
PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PagerComponent, selector: "kendo-datapager", inputs: { total: "total", skip: "skip", pageSize: "pageSize", buttonCount: "buttonCount", info: "info", type: "type", pageSizeValues: "pageSizeValues", previousNext: "previousNext", navigable: "navigable" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { listeners: { "focusin": "focusHandler($event)" }, properties: { "class.k-pager": "this.pagerClass", "attr.role": "this.widgetRole", "attr.aria-roledescription": "this.roleDescription", "attr.aria-keyshortcuts": "this.keyShortcuts", "attr.tabindex": "this.hostTabindex", "attr.dir": "this.dir" } }, providers: [
|
|
179
279
|
LocalizationService,
|
|
180
|
-
PagerContextService
|
|
280
|
+
PagerContextService,
|
|
281
|
+
PagerNavigationService
|
|
181
282
|
], queries: [{ propertyName: "template", first: true, predicate: PagerTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }], exportAs: ["kendoDataPager"], usesOnChanges: true, ngImport: i0, template: `
|
|
182
283
|
<ng-container kendoDataPagerLocalizedMessages
|
|
183
284
|
i18n-firstPage="kendo.pager.firstPage|The label for the first page button in the Pager"
|
|
@@ -209,6 +310,9 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
209
310
|
|
|
210
311
|
i18n-selectPage="kendo.pager.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Pager"
|
|
211
312
|
selectPage="Select page"
|
|
313
|
+
|
|
314
|
+
i18n-inputLabel="kendo.pager.inputLabel|The text of the aria-label attribute applied to the input element for entering the page number."
|
|
315
|
+
inputLabel="Type a page number"
|
|
212
316
|
>
|
|
213
317
|
</ng-container>
|
|
214
318
|
<ng-container
|
|
@@ -228,15 +332,16 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
228
332
|
<kendo-datapager-page-sizes *ngIf="pageSizeValues" [pageSizes]="pageSizeValues"></kendo-datapager-page-sizes>
|
|
229
333
|
</ng-container>
|
|
230
334
|
<kendo-resize-sensor></kendo-resize-sensor>
|
|
231
|
-
`, isInline: true, components: [{ type:
|
|
232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
|
335
|
+
`, isInline: true, components: [{ type: i4.PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons" }, { type: i5.PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons", inputs: ["buttonCount"] }, { type: i6.PagerInputComponent, selector: "kendo-datapager-input" }, { type: i7.PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons" }, { type: i8.PagerInfoComponent, selector: "kendo-datapager-info" }, { type: i9.PagerPageSizesComponent, selector: "kendo-datapager-page-sizes", inputs: ["pageSizes"] }, { type: i10.ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], directives: [{ type: i11.LocalizedMessagesDirective, selector: "[kendoDataPagerLocalizedMessages]" }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerComponent, decorators: [{
|
|
233
337
|
type: Component,
|
|
234
338
|
args: [{
|
|
235
339
|
selector: 'kendo-datapager',
|
|
236
340
|
exportAs: 'kendoDataPager',
|
|
237
341
|
providers: [
|
|
238
342
|
LocalizationService,
|
|
239
|
-
PagerContextService
|
|
343
|
+
PagerContextService,
|
|
344
|
+
PagerNavigationService
|
|
240
345
|
],
|
|
241
346
|
template: `
|
|
242
347
|
<ng-container kendoDataPagerLocalizedMessages
|
|
@@ -269,6 +374,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
269
374
|
|
|
270
375
|
i18n-selectPage="kendo.pager.selectPage|The text of the title and aria-label attributes applied to the page chooser in the Pager"
|
|
271
376
|
selectPage="Select page"
|
|
377
|
+
|
|
378
|
+
i18n-inputLabel="kendo.pager.inputLabel|The text of the aria-label attribute applied to the input element for entering the page number."
|
|
379
|
+
inputLabel="Type a page number"
|
|
272
380
|
>
|
|
273
381
|
</ng-container>
|
|
274
382
|
<ng-container
|
|
@@ -290,7 +398,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
290
398
|
<kendo-resize-sensor></kendo-resize-sensor>
|
|
291
399
|
`
|
|
292
400
|
}]
|
|
293
|
-
}], ctorParameters: function () { return [{ type: i1.PagerContextService }, { type: i0.ElementRef }, { type: i2.LocalizationService }]; }, propDecorators: { resizeSensor: [{
|
|
401
|
+
}], ctorParameters: function () { return [{ type: i1.PagerContextService }, { type: i0.ElementRef }, { type: i2.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i3.PagerNavigationService }]; }, propDecorators: { resizeSensor: [{
|
|
294
402
|
type: ViewChild,
|
|
295
403
|
args: [ResizeSensorComponent, { static: true }]
|
|
296
404
|
}], template: [{
|
|
@@ -312,6 +420,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
312
420
|
type: Input
|
|
313
421
|
}], previousNext: [{
|
|
314
422
|
type: Input
|
|
423
|
+
}], navigable: [{
|
|
424
|
+
type: Input
|
|
315
425
|
}], pageChange: [{
|
|
316
426
|
type: Output
|
|
317
427
|
}], pageSizeChange: [{
|
|
@@ -322,7 +432,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
322
432
|
}], widgetRole: [{
|
|
323
433
|
type: HostBinding,
|
|
324
434
|
args: ['attr.role']
|
|
435
|
+
}], roleDescription: [{
|
|
436
|
+
type: HostBinding,
|
|
437
|
+
args: ['attr.aria-roledescription']
|
|
438
|
+
}], keyShortcuts: [{
|
|
439
|
+
type: HostBinding,
|
|
440
|
+
args: ['attr.aria-keyshortcuts']
|
|
441
|
+
}], hostTabindex: [{
|
|
442
|
+
type: HostBinding,
|
|
443
|
+
args: ['attr.tabindex']
|
|
325
444
|
}], dir: [{
|
|
326
445
|
type: HostBinding,
|
|
327
446
|
args: ['attr.dir']
|
|
447
|
+
}], focusHandler: [{
|
|
448
|
+
type: HostListener,
|
|
449
|
+
args: ['focusin', ['$event']]
|
|
328
450
|
}] } });
|
|
@@ -19,6 +19,7 @@ import { EventsModule } from '@progress/kendo-angular-common';
|
|
|
19
19
|
import { LocalizedMessagesDirective } from './localization/localized-messages.directive';
|
|
20
20
|
import { CustomMessagesComponent } from './localization/custom-messages.component';
|
|
21
21
|
import { ResizeSensorModule } from '@progress/kendo-angular-common';
|
|
22
|
+
import { PagerFocusableDirective } from './focusable.directive';
|
|
22
23
|
import * as i0 from "@angular/core";
|
|
23
24
|
const importedModules = [
|
|
24
25
|
CommonModule,
|
|
@@ -37,7 +38,8 @@ const INTERNAL_COMPONENTS = [
|
|
|
37
38
|
PagerPageSizesComponent,
|
|
38
39
|
PagerTemplateDirective,
|
|
39
40
|
LocalizedMessagesDirective,
|
|
40
|
-
CustomMessagesComponent
|
|
41
|
+
CustomMessagesComponent,
|
|
42
|
+
PagerFocusableDirective
|
|
41
43
|
];
|
|
42
44
|
const providers = [
|
|
43
45
|
{
|
|
@@ -62,8 +64,8 @@ export class PagerModule {
|
|
|
62
64
|
];
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
|
-
PagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
|
66
|
-
PagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
|
67
|
+
PagerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
68
|
+
PagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerModule, declarations: [PagerComponent,
|
|
67
69
|
PagerPrevButtonsComponent,
|
|
68
70
|
PagerNextButtonsComponent,
|
|
69
71
|
PagerNumericButtonsComponent,
|
|
@@ -72,7 +74,8 @@ PagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
72
74
|
PagerPageSizesComponent,
|
|
73
75
|
PagerTemplateDirective,
|
|
74
76
|
LocalizedMessagesDirective,
|
|
75
|
-
CustomMessagesComponent
|
|
77
|
+
CustomMessagesComponent,
|
|
78
|
+
PagerFocusableDirective], imports: [CommonModule,
|
|
76
79
|
NumericTextBoxModule,
|
|
77
80
|
DropDownListModule,
|
|
78
81
|
EventsModule,
|
|
@@ -85,9 +88,10 @@ PagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "1
|
|
|
85
88
|
PagerPageSizesComponent,
|
|
86
89
|
PagerTemplateDirective,
|
|
87
90
|
LocalizedMessagesDirective,
|
|
88
|
-
CustomMessagesComponent
|
|
89
|
-
|
|
90
|
-
i0.ɵɵ
|
|
91
|
+
CustomMessagesComponent,
|
|
92
|
+
PagerFocusableDirective] });
|
|
93
|
+
PagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerModule, providers: [providers], imports: [[...importedModules]] });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PagerModule, decorators: [{
|
|
91
95
|
type: NgModule,
|
|
92
96
|
args: [{
|
|
93
97
|
declarations: [INTERNAL_COMPONENTS],
|
package/esm2015/util.js
CHANGED
|
@@ -6,3 +6,29 @@
|
|
|
6
6
|
* @hidden
|
|
7
7
|
*/
|
|
8
8
|
export const DEFAULT_PAGE_SIZE_VALUES = [5, 10, 20];
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
const focusableDirectiveSelector = '[kendoPagerFocusable]';
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
export const getAllFocusableChildren = (parent) => {
|
|
17
|
+
return parent.querySelectorAll(focusableDirectiveSelector);
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
export const focusableSelector = [
|
|
23
|
+
'a[href]:not([disabled])',
|
|
24
|
+
'area[href]:not([disabled])',
|
|
25
|
+
'input:not([disabled])',
|
|
26
|
+
'select:not([disabled])',
|
|
27
|
+
'textarea:not([disabled])',
|
|
28
|
+
'button',
|
|
29
|
+
'iframe:not([disabled])',
|
|
30
|
+
'object:not([disabled])',
|
|
31
|
+
'embed:not([disabled])',
|
|
32
|
+
'*[tabindex]:not([disabled])',
|
|
33
|
+
'*[contenteditable]:not([disabled]):not([contenteditable="false"])'
|
|
34
|
+
].join(',');
|