@progress/kendo-angular-pager 17.0.0-develop.8 → 17.0.0
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/README.md +26 -17
- package/directives.d.ts +2 -1
- package/{esm2020 → esm2022}/directives.mjs +3 -1
- package/{esm2020 → esm2022}/index.mjs +3 -0
- package/{esm2020 → esm2022}/package-metadata.mjs +2 -2
- package/{esm2020 → esm2022}/pager/focusable.directive.mjs +11 -5
- package/{esm2020 → esm2022}/pager/localization/custom-messages.component.mjs +10 -9
- package/{esm2020 → esm2022}/pager/localization/localized-messages.directive.mjs +10 -9
- package/esm2022/pager/localization/messages.mjs +100 -0
- package/{esm2020 → esm2022}/pager/navigation.service.mjs +10 -8
- package/{esm2020 → esm2022}/pager/pager-context.service.mjs +8 -6
- package/{esm2020 → esm2022}/pager/pager-element.component.mjs +24 -16
- package/{esm2020 → esm2022}/pager/pager-info.component.mjs +9 -12
- package/{esm2020 → esm2022}/pager/pager-input.component.mjs +57 -53
- package/{esm2020 → esm2022}/pager/pager-next-buttons.component.mjs +26 -22
- package/{esm2020 → esm2022}/pager/pager-numeric-buttons.component.mjs +24 -15
- package/{esm2020 → esm2022}/pager/pager-page-sizes.component.mjs +30 -26
- package/{esm2020 → esm2022}/pager/pager-prev-buttons.component.mjs +31 -23
- package/{esm2020 → esm2022}/pager/pager-template.directive.mjs +13 -12
- package/{esm2020 → esm2022}/pager/pager.component.mjs +224 -161
- package/esm2022/pager/pager.module.mjs +65 -0
- package/{esm2020 → esm2022}/pager/pagesizechange-event.mjs +4 -0
- package/{esm2020 → esm2022}/pager/preventable-event.mjs +1 -3
- package/esm2022/pager/spacer.component.mjs +49 -0
- package/{esm2020 → esm2022}/util.mjs +11 -7
- package/{fesm2020 → fesm2022}/progress-kendo-angular-pager.mjs +639 -404
- package/index.d.ts +3 -0
- package/package.json +15 -21
- package/pager/common/pager-size.d.ts +1 -1
- package/pager/common/pager-type.d.ts +3 -3
- package/pager/focusable.directive.d.ts +1 -1
- package/pager/localization/custom-messages.component.d.ts +1 -1
- package/pager/localization/localized-messages.directive.d.ts +1 -1
- package/pager/localization/messages.d.ts +12 -1
- package/pager/pager-context.service.d.ts +3 -1
- package/pager/pager-info.component.d.ts +2 -3
- package/pager/pager-input.component.d.ts +1 -1
- package/pager/pager-next-buttons.component.d.ts +1 -1
- package/pager/pager-numeric-buttons.component.d.ts +1 -1
- package/pager/pager-page-sizes.component.d.ts +5 -5
- package/pager/pager-prev-buttons.component.d.ts +1 -1
- package/pager/pager-template.directive.d.ts +9 -9
- package/pager/pager.component.d.ts +30 -11
- package/pager/pager.module.d.ts +22 -2
- package/pager/spacer.component.d.ts +24 -0
- package/schematics/ngAdd/index.js +7 -7
- package/util.d.ts +4 -0
- package/esm2020/pager/localization/messages.mjs +0 -43
- package/esm2020/pager/pager.module.mjs +0 -45
- package/fesm2015/progress-kendo-angular-pager.mjs +0 -1991
- /package/{esm2020 → esm2022}/pager/change-event-args.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/common/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/common/pager-classes.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/common/pager-size.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/common/pager-type.mjs +0 -0
- /package/{esm2020 → esm2022}/pager/pagesize-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/progress-kendo-angular-pager.mjs +0 -0
|
@@ -3,14 +3,14 @@
|
|
|
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 { Directive, Input, forwardRef, Component, ChangeDetectionStrategy, ViewChild, HostBinding, Optional, ElementRef, EventEmitter, ContentChildren, Output, HostListener, NgModule } from '@angular/core';
|
|
6
|
+
import { Directive, Input, forwardRef, Component, ChangeDetectionStrategy, ViewChild, HostBinding, Optional, ElementRef, EventEmitter, inject, SkipSelf, ContentChildren, Output, HostListener, NgModule } from '@angular/core';
|
|
7
7
|
import * as i1 from '@progress/kendo-angular-l10n';
|
|
8
8
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
9
9
|
import { Subject, Subscription } from 'rxjs';
|
|
10
10
|
import { caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
|
|
11
|
+
import { isFocusable, Keys, EventsOutsideAngularDirective, anyChanged, ResizeSensorComponent, isPresent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
11
12
|
import { ButtonComponent } from '@progress/kendo-angular-buttons';
|
|
12
13
|
import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
|
|
13
|
-
import { Keys, EventsOutsideAngularDirective, anyChanged, ResizeSensorComponent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
14
14
|
import { NgIf, NgFor, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
15
15
|
import { NumericTextBoxComponent } from '@progress/kendo-angular-inputs';
|
|
16
16
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
@@ -21,9 +21,7 @@ import { PopupService } from '@progress/kendo-angular-popup';
|
|
|
21
21
|
* @hidden
|
|
22
22
|
*/
|
|
23
23
|
class PreventableEvent {
|
|
24
|
-
|
|
25
|
-
this.prevented = false;
|
|
26
|
-
}
|
|
24
|
+
prevented = false;
|
|
27
25
|
/**
|
|
28
26
|
* Prevents the default action for a specified event.
|
|
29
27
|
* In this way, the source component suppresses the built-in behavior that follows the event.
|
|
@@ -46,6 +44,10 @@ class PreventableEvent {
|
|
|
46
44
|
* is changed from the UI. If you cancel the event, the change is prevented.
|
|
47
45
|
*/
|
|
48
46
|
class PageSizeChangeEvent extends PreventableEvent {
|
|
47
|
+
/**
|
|
48
|
+
* The newly selected page size.
|
|
49
|
+
*/
|
|
50
|
+
newPageSize;
|
|
49
51
|
/**
|
|
50
52
|
* Constructs the event arguments for the `pageSizeChange` event.
|
|
51
53
|
* @param newPageSize - The newly selected page size.
|
|
@@ -61,16 +63,73 @@ class PageSizeChangeEvent extends PreventableEvent {
|
|
|
61
63
|
* @hidden
|
|
62
64
|
*/
|
|
63
65
|
class Messages extends ComponentMessages {
|
|
66
|
+
/**
|
|
67
|
+
* The label of the pager. Follows the pattern **Page navigation, page {currentPage} of {totalPages}** by default.
|
|
68
|
+
* Тhe default label text when the current page is 1, and the total number of pages is 10 will be
|
|
69
|
+
* **Page navigation, page 1 of 10**.
|
|
70
|
+
*
|
|
71
|
+
* The message consists of several parts - the current page number, the total number of pages, and a localizable string.
|
|
72
|
+
* To allow for reordering its parts, the `ariaLabel` input accepts a string with placeholders for the current page
|
|
73
|
+
* and total number of pages. The `{currentPage}` and `{totalPages}` placeholders will be replaced
|
|
74
|
+
* internally with the respective actual values.
|
|
75
|
+
*/
|
|
76
|
+
ariaLabel;
|
|
77
|
+
/**
|
|
78
|
+
* The label for the **First page** button.
|
|
79
|
+
*/
|
|
80
|
+
firstPage;
|
|
81
|
+
/**
|
|
82
|
+
* The label for the **Last page** button.
|
|
83
|
+
*/
|
|
84
|
+
lastPage;
|
|
85
|
+
/**
|
|
86
|
+
* The label for the **Previous page** button.
|
|
87
|
+
*/
|
|
88
|
+
previousPage;
|
|
89
|
+
/**
|
|
90
|
+
* The label for the **Next page** button.
|
|
91
|
+
*/
|
|
92
|
+
nextPage;
|
|
93
|
+
/**
|
|
94
|
+
* The label displayed before the pager input.
|
|
95
|
+
*/
|
|
96
|
+
page;
|
|
97
|
+
/**
|
|
98
|
+
* The title attribute of the page number input element.
|
|
99
|
+
*/
|
|
100
|
+
pageNumberInputTitle;
|
|
101
|
+
/**
|
|
102
|
+
* The label displayed after the page-size selector.
|
|
103
|
+
*/
|
|
104
|
+
itemsPerPage;
|
|
105
|
+
/**
|
|
106
|
+
* The label before the total-page number.
|
|
107
|
+
*/
|
|
108
|
+
of;
|
|
109
|
+
/**
|
|
110
|
+
* The label after the total-page number.
|
|
111
|
+
*/
|
|
112
|
+
items;
|
|
113
|
+
/**
|
|
114
|
+
* The text of the title and aria-label attributes applied to the page chooser.
|
|
115
|
+
*/
|
|
116
|
+
selectPage;
|
|
117
|
+
/**
|
|
118
|
+
* The text of the aria-label attribute applied to the input element for entering the page number."
|
|
119
|
+
*/
|
|
120
|
+
inputLabel;
|
|
121
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
122
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: Messages, selector: "kendoPagerMessages", inputs: { ariaLabel: "ariaLabel", firstPage: "firstPage", lastPage: "lastPage", previousPage: "previousPage", nextPage: "nextPage", page: "page", pageNumberInputTitle: "pageNumberInputTitle", itemsPerPage: "itemsPerPage", of: "of", items: "items", selectPage: "selectPage", inputLabel: "inputLabel" }, usesInheritance: true, ngImport: i0 });
|
|
64
123
|
}
|
|
65
|
-
|
|
66
|
-
Messages.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: Messages, selector: "kendoPagerMessages", inputs: { firstPage: "firstPage", lastPage: "lastPage", previousPage: "previousPage", nextPage: "nextPage", page: "page", pageNumberInputTitle: "pageNumberInputTitle", itemsPerPage: "itemsPerPage", of: "of", items: "items", selectPage: "selectPage", inputLabel: "inputLabel" }, usesInheritance: true, ngImport: i0 });
|
|
67
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Messages, decorators: [{
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: Messages, decorators: [{
|
|
68
125
|
type: Directive,
|
|
69
126
|
args: [{
|
|
70
127
|
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
71
128
|
selector: 'kendoPagerMessages'
|
|
72
129
|
}]
|
|
73
|
-
}], propDecorators: {
|
|
130
|
+
}], propDecorators: { ariaLabel: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], firstPage: [{
|
|
74
133
|
type: Input
|
|
75
134
|
}], lastPage: [{
|
|
76
135
|
type: Input
|
|
@@ -99,6 +158,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
99
158
|
* ([see example]({% slug pager_globalization %}#toc-messages)).
|
|
100
159
|
*/
|
|
101
160
|
class CustomMessagesComponent extends Messages {
|
|
161
|
+
service;
|
|
102
162
|
constructor(service) {
|
|
103
163
|
super();
|
|
104
164
|
this.service = service;
|
|
@@ -106,15 +166,15 @@ class CustomMessagesComponent extends Messages {
|
|
|
106
166
|
get override() {
|
|
107
167
|
return true;
|
|
108
168
|
}
|
|
169
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
170
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-datapager-messages, kendo-pager-messages", providers: [
|
|
171
|
+
{
|
|
172
|
+
provide: Messages,
|
|
173
|
+
useExisting: forwardRef(() => CustomMessagesComponent)
|
|
174
|
+
}
|
|
175
|
+
], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
109
176
|
}
|
|
110
|
-
|
|
111
|
-
CustomMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: CustomMessagesComponent, isStandalone: true, selector: "kendo-datapager-messages", providers: [
|
|
112
|
-
{
|
|
113
|
-
provide: Messages,
|
|
114
|
-
useExisting: forwardRef(() => CustomMessagesComponent)
|
|
115
|
-
}
|
|
116
|
-
], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: CustomMessagesComponent, decorators: [{
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMessagesComponent, decorators: [{
|
|
118
178
|
type: Component,
|
|
119
179
|
args: [{
|
|
120
180
|
providers: [
|
|
@@ -123,7 +183,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
123
183
|
useExisting: forwardRef(() => CustomMessagesComponent)
|
|
124
184
|
}
|
|
125
185
|
],
|
|
126
|
-
selector: 'kendo-datapager-messages',
|
|
186
|
+
selector: 'kendo-datapager-messages, kendo-pager-messages',
|
|
127
187
|
template: ``,
|
|
128
188
|
standalone: true
|
|
129
189
|
}]
|
|
@@ -133,19 +193,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
133
193
|
* @hidden
|
|
134
194
|
*/
|
|
135
195
|
class LocalizedMessagesDirective extends Messages {
|
|
196
|
+
service;
|
|
136
197
|
constructor(service) {
|
|
137
198
|
super();
|
|
138
199
|
this.service = service;
|
|
139
200
|
}
|
|
201
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
202
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoPagerLocalizedMessages]", providers: [
|
|
203
|
+
{
|
|
204
|
+
provide: Messages,
|
|
205
|
+
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
206
|
+
}
|
|
207
|
+
], usesInheritance: true, ngImport: i0 });
|
|
140
208
|
}
|
|
141
|
-
|
|
142
|
-
LocalizedMessagesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: LocalizedMessagesDirective, isStandalone: true, selector: "[kendoDataPagerLocalizedMessages]", providers: [
|
|
143
|
-
{
|
|
144
|
-
provide: Messages,
|
|
145
|
-
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
146
|
-
}
|
|
147
|
-
], usesInheritance: true, ngImport: i0 });
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LocalizedMessagesDirective, decorators: [{
|
|
149
210
|
type: Directive,
|
|
150
211
|
args: [{
|
|
151
212
|
providers: [
|
|
@@ -154,7 +215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
154
215
|
useExisting: forwardRef(() => LocalizedMessagesDirective)
|
|
155
216
|
}
|
|
156
217
|
],
|
|
157
|
-
selector: '[
|
|
218
|
+
selector: '[kendoPagerLocalizedMessages]',
|
|
158
219
|
standalone: true
|
|
159
220
|
}]
|
|
160
221
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }]; } });
|
|
@@ -163,11 +224,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
163
224
|
* @hidden
|
|
164
225
|
*/
|
|
165
226
|
class PagerContextService {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
227
|
+
total;
|
|
228
|
+
skip;
|
|
229
|
+
pageSize;
|
|
230
|
+
localization;
|
|
231
|
+
changes = new Subject();
|
|
232
|
+
pageChange = new Subject();
|
|
233
|
+
pageSizeChange = new Subject();
|
|
171
234
|
get currentPage() {
|
|
172
235
|
return this.skip / this.pageSize;
|
|
173
236
|
}
|
|
@@ -185,7 +248,7 @@ class PagerContextService {
|
|
|
185
248
|
}
|
|
186
249
|
nextPage() {
|
|
187
250
|
const nextPage = this.currentPage + 1;
|
|
188
|
-
if (nextPage * this.pageSize
|
|
251
|
+
if (nextPage * this.pageSize < this.total) {
|
|
189
252
|
this.changePage(nextPage);
|
|
190
253
|
}
|
|
191
254
|
}
|
|
@@ -201,18 +264,16 @@ class PagerContextService {
|
|
|
201
264
|
* @hidden
|
|
202
265
|
*/
|
|
203
266
|
class PagerElementComponent {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
this.caretAltToRightIcon = caretAltToRightIcon;
|
|
215
|
-
}
|
|
267
|
+
localization;
|
|
268
|
+
pagerContext;
|
|
269
|
+
cd;
|
|
270
|
+
total;
|
|
271
|
+
skip;
|
|
272
|
+
pageSize;
|
|
273
|
+
caretAltLeftIcon = caretAltLeftIcon;
|
|
274
|
+
caretAltToLeftIcon = caretAltToLeftIcon;
|
|
275
|
+
caretAltRightIcon = caretAltRightIcon;
|
|
276
|
+
caretAltToRightIcon = caretAltToRightIcon;
|
|
216
277
|
/**
|
|
217
278
|
* @hidden
|
|
218
279
|
*
|
|
@@ -233,6 +294,15 @@ class PagerElementComponent {
|
|
|
233
294
|
get totalPages() {
|
|
234
295
|
return Math.ceil((this.total || 0) / this.pageSize);
|
|
235
296
|
}
|
|
297
|
+
subscriptions;
|
|
298
|
+
constructor(localization, pagerContext, cd) {
|
|
299
|
+
this.localization = localization;
|
|
300
|
+
this.pagerContext = pagerContext;
|
|
301
|
+
this.cd = cd;
|
|
302
|
+
this.total = pagerContext.total;
|
|
303
|
+
this.skip = pagerContext.skip;
|
|
304
|
+
this.pageSize = pagerContext.pageSize;
|
|
305
|
+
}
|
|
236
306
|
/**
|
|
237
307
|
* @hidden
|
|
238
308
|
*
|
|
@@ -242,7 +312,8 @@ class PagerElementComponent {
|
|
|
242
312
|
* @memberOf PagerElementComponent
|
|
243
313
|
*/
|
|
244
314
|
textFor(key) {
|
|
245
|
-
|
|
315
|
+
const isPagerLocalization = this.localization.prefix === 'kendo.pager';
|
|
316
|
+
return this.localization.get(isPagerLocalization ? key : `pager${key[0].toLocaleUpperCase()}${key.slice(1)}`);
|
|
246
317
|
}
|
|
247
318
|
/**
|
|
248
319
|
* @hidden
|
|
@@ -281,10 +352,10 @@ class PagerElementComponent {
|
|
|
281
352
|
get nextArrowSVGIcons() {
|
|
282
353
|
return !this.localization.rtl ? [this.caretAltRightIcon, this.caretAltToRightIcon] : [this.caretAltLeftIcon, this.caretAltToLeftIcon];
|
|
283
354
|
}
|
|
355
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerElementComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
356
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerElementComponent, selector: "kendo-pager-element", ngImport: i0, template: ``, isInline: true });
|
|
284
357
|
}
|
|
285
|
-
|
|
286
|
-
PagerElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerElementComponent, selector: "kendo-pager-element", ngImport: i0, template: ``, isInline: true });
|
|
287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagerElementComponent, decorators: [{
|
|
358
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerElementComponent, decorators: [{
|
|
288
359
|
type: Component,
|
|
289
360
|
args: [{
|
|
290
361
|
selector: 'kendo-pager-element',
|
|
@@ -310,16 +381,16 @@ const getAllFocusableChildren = (parent) => {
|
|
|
310
381
|
* @hidden
|
|
311
382
|
*/
|
|
312
383
|
const focusableSelector = [
|
|
313
|
-
'a[href]:not([disabled])',
|
|
314
|
-
'area[href]:not([disabled])',
|
|
315
|
-
'input:not([disabled])',
|
|
316
|
-
'select:not([disabled])',
|
|
317
|
-
'textarea:not([disabled])',
|
|
318
|
-
'button',
|
|
384
|
+
'a[href]:not([disabled]):not([aria-hidden="true"])',
|
|
385
|
+
'area[href]:not([disabled]):not([aria-hidden="true"])',
|
|
386
|
+
'input:not([disabled]):not([aria-hidden="true"])',
|
|
387
|
+
'select:not([disabled]):not([aria-hidden="true"])',
|
|
388
|
+
'textarea:not([disabled]):not([aria-hidden="true"])',
|
|
389
|
+
'button:not([aria-hidden="true"])',
|
|
319
390
|
'iframe:not([disabled])',
|
|
320
391
|
'object:not([disabled])',
|
|
321
392
|
'embed:not([disabled])',
|
|
322
|
-
'*[tabindex]:not([disabled])',
|
|
393
|
+
'*[tabindex]:not([disabled]):not([aria-hidden="true"])',
|
|
323
394
|
'*[contenteditable]:not([disabled]):not([contenteditable="false"])'
|
|
324
395
|
].join(',');
|
|
325
396
|
/**
|
|
@@ -347,15 +418,17 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
|
|
|
347
418
|
break;
|
|
348
419
|
}
|
|
349
420
|
};
|
|
421
|
+
/**
|
|
422
|
+
* @hidden
|
|
423
|
+
*/
|
|
424
|
+
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
350
425
|
|
|
351
426
|
/**
|
|
352
427
|
* @hidden
|
|
353
428
|
*/
|
|
354
429
|
class PagerNavigationService {
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
this.innerNavigationChange = new Subject();
|
|
358
|
-
}
|
|
430
|
+
isNavigable = false;
|
|
431
|
+
innerNavigationChange = new Subject();
|
|
359
432
|
toggleInnerNavigation(value) {
|
|
360
433
|
this.innerNavigationChange.next(value);
|
|
361
434
|
}
|
|
@@ -374,23 +447,32 @@ class PagerNavigationService {
|
|
|
374
447
|
}
|
|
375
448
|
getFirstAndLastFocusable(wrapper) {
|
|
376
449
|
const all = getAllFocusableChildren(wrapper);
|
|
377
|
-
const firstFocusable = all.length > 0 ? all[0] :
|
|
378
|
-
const lastFocusable = all.length > 0 ? all[all.length - 1] :
|
|
379
|
-
return [
|
|
450
|
+
const firstFocusable = all.length > 0 ? all[0] : wrapper;
|
|
451
|
+
const lastFocusable = all.length > 0 ? all[all.length - 1] : wrapper;
|
|
452
|
+
return [
|
|
453
|
+
isFocusable(firstFocusable) ? firstFocusable : firstFocusable.querySelector(focusableSelector),
|
|
454
|
+
isFocusable(lastFocusable) ? lastFocusable : lastFocusable.querySelector(focusableSelector)
|
|
455
|
+
];
|
|
380
456
|
}
|
|
381
457
|
}
|
|
382
458
|
|
|
383
459
|
/**
|
|
384
|
-
* Place the directive on custom focusable elements in the [`
|
|
460
|
+
* Place the directive on custom focusable elements in the [`kendoPagerTemplate`]({% slug api_pager_pagertemplatedirective %}) to include them in the built-in Pager keyboard navigation.
|
|
385
461
|
*/
|
|
386
462
|
class PagerFocusableDirective {
|
|
463
|
+
navigationService;
|
|
464
|
+
element;
|
|
465
|
+
renderer;
|
|
466
|
+
subscriptions = new Subscription();
|
|
387
467
|
constructor(navigationService, element, renderer) {
|
|
388
468
|
this.navigationService = navigationService;
|
|
389
469
|
this.element = element;
|
|
390
470
|
this.renderer = renderer;
|
|
391
|
-
this.subscriptions = new Subscription();
|
|
392
471
|
}
|
|
393
472
|
ngOnInit() {
|
|
473
|
+
if (!(this.nativeElement instanceof HTMLElement)) {
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
394
476
|
this.subscriptions.add(this.navigationService.innerNavigationChange.subscribe(this.innerNavigationChange.bind(this)));
|
|
395
477
|
}
|
|
396
478
|
ngOnDestroy() {
|
|
@@ -412,10 +494,10 @@ class PagerFocusableDirective {
|
|
|
412
494
|
this.renderer.setAttribute(el, 'tabindex', index);
|
|
413
495
|
});
|
|
414
496
|
}
|
|
497
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerFocusableDirective, deps: [{ token: PagerNavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
498
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PagerFocusableDirective, isStandalone: true, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"], ngImport: i0 });
|
|
415
499
|
}
|
|
416
|
-
|
|
417
|
-
PagerFocusableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PagerFocusableDirective, isStandalone: true, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"], ngImport: i0 });
|
|
418
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagerFocusableDirective, decorators: [{
|
|
500
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerFocusableDirective, decorators: [{
|
|
419
501
|
type: Directive,
|
|
420
502
|
args: [{
|
|
421
503
|
selector: '[kendoPagerFocusable]',
|
|
@@ -431,17 +513,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
431
513
|
class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
432
514
|
constructor(localization, pagerContext, cd) {
|
|
433
515
|
super(localization, pagerContext, cd);
|
|
434
|
-
/**
|
|
435
|
-
* Specifies the padding of the buttons.
|
|
436
|
-
*
|
|
437
|
-
* The possible values are:
|
|
438
|
-
* * `small`
|
|
439
|
-
* * `medium` (default)
|
|
440
|
-
* * `large`
|
|
441
|
-
* * `none`
|
|
442
|
-
*/
|
|
443
|
-
this.size = DEFAULT_SIZE;
|
|
444
516
|
}
|
|
517
|
+
/**
|
|
518
|
+
* Specifies the padding of the buttons.
|
|
519
|
+
*
|
|
520
|
+
* The possible values are:
|
|
521
|
+
* * `small`
|
|
522
|
+
* * `medium` (default)
|
|
523
|
+
* * `large`
|
|
524
|
+
* * `none`
|
|
525
|
+
*/
|
|
526
|
+
size = DEFAULT_SIZE;
|
|
445
527
|
/**
|
|
446
528
|
* @hidden
|
|
447
529
|
*
|
|
@@ -458,13 +540,14 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
458
540
|
this.pageSize = pageSize;
|
|
459
541
|
this.cd.markForCheck();
|
|
460
542
|
}
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerPrevButtonsComponent, isStandalone: true, selector: "kendo-datapager-prev-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
|
|
543
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
544
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerPrevButtonsComponent, isStandalone: true, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
|
|
464
545
|
<button
|
|
465
|
-
type="button" kendoButton
|
|
546
|
+
type="button" kendoButton
|
|
547
|
+
kendoPagerFocusable
|
|
466
548
|
class="k-pager-nav k-pager-first"
|
|
467
|
-
[disabled]="disabled"
|
|
549
|
+
[attr.aria-disabled]="disabled"
|
|
550
|
+
[class.k-disabled]="disabled"
|
|
468
551
|
[icon]="prevArrowIcons[0]"
|
|
469
552
|
[svgIcon]="prevArrowSVGIcons[0]"
|
|
470
553
|
fillMode="flat"
|
|
@@ -475,9 +558,11 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
475
558
|
(click)="currentPage !== 1 ? changePage(0) : false">
|
|
476
559
|
</button>
|
|
477
560
|
<button
|
|
478
|
-
type="button" kendoButton
|
|
561
|
+
type="button" kendoButton
|
|
562
|
+
kendoPagerFocusable
|
|
479
563
|
class="k-pager-nav"
|
|
480
|
-
[disabled]="disabled"
|
|
564
|
+
[attr.aria-disabled]="disabled"
|
|
565
|
+
[class.k-disabled]="disabled"
|
|
481
566
|
[icon]="prevArrowIcons[1]"
|
|
482
567
|
[svgIcon]="prevArrowSVGIcons[1]"
|
|
483
568
|
fillMode="flat"
|
|
@@ -488,16 +573,19 @@ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
488
573
|
(click)="currentPage !== 1 ? changePage(currentPage-2) : false">
|
|
489
574
|
</button>
|
|
490
575
|
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
491
|
-
|
|
576
|
+
}
|
|
577
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
|
|
492
578
|
type: Component,
|
|
493
579
|
args: [{
|
|
494
580
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
495
|
-
selector: 'kendo-datapager-prev-buttons',
|
|
581
|
+
selector: 'kendo-datapager-prev-buttons, kendo-pager-prev-buttons',
|
|
496
582
|
template: `
|
|
497
583
|
<button
|
|
498
|
-
type="button" kendoButton
|
|
584
|
+
type="button" kendoButton
|
|
585
|
+
kendoPagerFocusable
|
|
499
586
|
class="k-pager-nav k-pager-first"
|
|
500
|
-
[disabled]="disabled"
|
|
587
|
+
[attr.aria-disabled]="disabled"
|
|
588
|
+
[class.k-disabled]="disabled"
|
|
501
589
|
[icon]="prevArrowIcons[0]"
|
|
502
590
|
[svgIcon]="prevArrowSVGIcons[0]"
|
|
503
591
|
fillMode="flat"
|
|
@@ -508,9 +596,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
508
596
|
(click)="currentPage !== 1 ? changePage(0) : false">
|
|
509
597
|
</button>
|
|
510
598
|
<button
|
|
511
|
-
type="button" kendoButton
|
|
599
|
+
type="button" kendoButton
|
|
600
|
+
kendoPagerFocusable
|
|
512
601
|
class="k-pager-nav"
|
|
513
|
-
[disabled]="disabled"
|
|
602
|
+
[attr.aria-disabled]="disabled"
|
|
603
|
+
[class.k-disabled]="disabled"
|
|
514
604
|
[icon]="prevArrowIcons[1]"
|
|
515
605
|
[svgIcon]="prevArrowSVGIcons[1]"
|
|
516
606
|
fillMode="flat"
|
|
@@ -532,23 +622,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
532
622
|
* Displays a drop-down list for the page size selection ([see example]({% slug pager_settings %})).
|
|
533
623
|
*/
|
|
534
624
|
class PagerPageSizesComponent extends PagerElementComponent {
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
this.ngZone = ngZone;
|
|
540
|
-
/**
|
|
541
|
-
* Specifies the padding of the dropdown.
|
|
542
|
-
*
|
|
543
|
-
* The possible values are:
|
|
544
|
-
* * `small`
|
|
545
|
-
* * `medium` (default)
|
|
546
|
-
* * `large`
|
|
547
|
-
* * `none`
|
|
548
|
-
*/
|
|
549
|
-
this.size = DEFAULT_SIZE;
|
|
550
|
-
this._pageSizes = [];
|
|
551
|
-
}
|
|
625
|
+
pagerContext;
|
|
626
|
+
element;
|
|
627
|
+
ngZone;
|
|
628
|
+
dropDownList;
|
|
552
629
|
/**
|
|
553
630
|
* The page sizes collection. Can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.
|
|
554
631
|
*
|
|
@@ -562,15 +639,15 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
562
639
|
* <span>{{item.ProductID}}. </span>
|
|
563
640
|
* <span>{{item.ProductName}}</span>
|
|
564
641
|
* </div>
|
|
565
|
-
* <kendo-
|
|
642
|
+
* <kendo-pager
|
|
566
643
|
* [skip]="skip"
|
|
567
644
|
* [pageSize]="pageSize"
|
|
568
645
|
* [total]="total"
|
|
569
646
|
* (pageChange)="onPageChange($event)">
|
|
570
|
-
* <ng-template
|
|
571
|
-
* <kendo-
|
|
647
|
+
* <ng-template kendoPagerTemplate>
|
|
648
|
+
* <kendo-pager-page-sizes [pageSizes]="pagesizes"></kendo-pager-page-sizes>
|
|
572
649
|
* </ng-template>
|
|
573
|
-
* </kendo-
|
|
650
|
+
* </kendo-pager>
|
|
574
651
|
* `
|
|
575
652
|
* })
|
|
576
653
|
* class AppComponent {
|
|
@@ -690,6 +767,16 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
690
767
|
get pageSizes() {
|
|
691
768
|
return this._pageSizes;
|
|
692
769
|
}
|
|
770
|
+
/**
|
|
771
|
+
* Specifies the padding of the dropdown.
|
|
772
|
+
*
|
|
773
|
+
* The possible values are:
|
|
774
|
+
* * `small`
|
|
775
|
+
* * `medium` (default)
|
|
776
|
+
* * `large`
|
|
777
|
+
* * `none`
|
|
778
|
+
*/
|
|
779
|
+
size = DEFAULT_SIZE;
|
|
693
780
|
/**
|
|
694
781
|
* @hidden
|
|
695
782
|
*
|
|
@@ -698,6 +785,13 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
698
785
|
get classes() {
|
|
699
786
|
return true;
|
|
700
787
|
}
|
|
788
|
+
_pageSizes = [];
|
|
789
|
+
constructor(localization, cd, pagerContext, element, ngZone) {
|
|
790
|
+
super(localization, pagerContext, cd);
|
|
791
|
+
this.pagerContext = pagerContext;
|
|
792
|
+
this.element = element;
|
|
793
|
+
this.ngZone = ngZone;
|
|
794
|
+
}
|
|
701
795
|
ngAfterViewInit() {
|
|
702
796
|
this.ngZone.runOutsideAngular(() => {
|
|
703
797
|
this.element.nativeElement.addEventListener('keydown', this.keyDownHandler.bind(this), true);
|
|
@@ -728,9 +822,8 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
728
822
|
this.dropDownList.toggle(false);
|
|
729
823
|
}
|
|
730
824
|
}
|
|
731
|
-
}
|
|
732
|
-
|
|
733
|
-
PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerPageSizesComponent, isStandalone: true, selector: "kendo-datapager-page-sizes", inputs: { pageSizes: "pageSizes", size: "size" }, host: { properties: { "class.k-pager-sizes": "this.classes" } }, viewQueries: [{ propertyName: "dropDownList", first: true, predicate: ["dropdownlist"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
825
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
826
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerPageSizesComponent, isStandalone: true, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes", size: "size" }, host: { properties: { "class.k-pager-sizes": "this.classes" } }, viewQueries: [{ propertyName: "dropDownList", first: true, predicate: ["dropdownlist"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
734
827
|
<kendo-dropdownlist kendoPagerFocusable
|
|
735
828
|
#dropdownlist
|
|
736
829
|
[size]="size"
|
|
@@ -743,11 +836,12 @@ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
743
836
|
[attr.aria-label]="textFor('itemsPerPage')"></kendo-dropdownlist>
|
|
744
837
|
{{ textFor('itemsPerPage') }}
|
|
745
838
|
`, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
746
|
-
|
|
839
|
+
}
|
|
840
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
747
841
|
type: Component,
|
|
748
842
|
args: [{
|
|
749
843
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
750
|
-
selector: 'kendo-datapager-page-sizes',
|
|
844
|
+
selector: 'kendo-datapager-page-sizes, kendo-pager-page-sizes',
|
|
751
845
|
template: `
|
|
752
846
|
<kendo-dropdownlist kendoPagerFocusable
|
|
753
847
|
#dropdownlist
|
|
@@ -778,7 +872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
778
872
|
|
|
779
873
|
/**
|
|
780
874
|
* Represents the pager template which helps to customize the pager appearance. To define a pager
|
|
781
|
-
* template, nest an `<ng-template>` tag with the `
|
|
875
|
+
* template, nest an `<ng-template>` tag with the `kendoPagerTemplate` directive inside `<kendo-pager>`.
|
|
782
876
|
*
|
|
783
877
|
* The template context provides the following fields:
|
|
784
878
|
* * `currentPage`—The index of the displayed page.
|
|
@@ -793,15 +887,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
793
887
|
* _@Component({
|
|
794
888
|
* selector: 'my-app',
|
|
795
889
|
* template: `
|
|
796
|
-
* <kendo-
|
|
797
|
-
* <ng-template
|
|
798
|
-
* <kendo-
|
|
799
|
-
* <kendo-
|
|
800
|
-
* <kendo-
|
|
801
|
-
* <kendo-
|
|
890
|
+
* <kendo-pager [total]="total" [pageSize]="pageSize" [skip]="skip" (pageChange)="onPageChange($event)">
|
|
891
|
+
* <ng-template kendoPagerTemplate let-totalPages="totalPages" let-currentPage="currentPage">
|
|
892
|
+
* <kendo-pager-prev-buttons></kendo-pager-prev-buttons>
|
|
893
|
+
* <kendo-pager-numeric-buttons [buttonCount]="10"></kendo-pager-numeric-buttons>
|
|
894
|
+
* <kendo-pager-next-buttons></kendo-pager-next-buttons>
|
|
895
|
+
* <kendo-pager-info></kendo-pager-info>
|
|
802
896
|
* Current page: {{currentPage}}
|
|
803
897
|
* </ng-template>
|
|
804
|
-
* </kendo-
|
|
898
|
+
* </kendo-pager>
|
|
805
899
|
* `
|
|
806
900
|
* })
|
|
807
901
|
*
|
|
@@ -819,16 +913,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
819
913
|
* ```
|
|
820
914
|
*/
|
|
821
915
|
class PagerTemplateDirective {
|
|
916
|
+
templateRef;
|
|
822
917
|
constructor(templateRef) {
|
|
823
918
|
this.templateRef = templateRef;
|
|
824
919
|
}
|
|
920
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerTemplateDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
921
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PagerTemplateDirective, isStandalone: true, selector: "[kendoDataPagerTemplate], [kendoPagerTemplate]", ngImport: i0 });
|
|
825
922
|
}
|
|
826
|
-
|
|
827
|
-
PagerTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: PagerTemplateDirective, isStandalone: true, selector: "[kendoDataPagerTemplate]", ngImport: i0 });
|
|
828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagerTemplateDirective, decorators: [{
|
|
923
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerTemplateDirective, decorators: [{
|
|
829
924
|
type: Directive,
|
|
830
925
|
args: [{
|
|
831
|
-
selector: '[kendoDataPagerTemplate]',
|
|
926
|
+
selector: '[kendoDataPagerTemplate], [kendoPagerTemplate]',
|
|
832
927
|
standalone: true
|
|
833
928
|
}]
|
|
834
929
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
@@ -839,12 +934,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
839
934
|
* Displays numeric buttons to enable navigation between the pages.
|
|
840
935
|
*/
|
|
841
936
|
class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
937
|
+
pagerContext;
|
|
938
|
+
renderer;
|
|
939
|
+
selectElement;
|
|
940
|
+
numbersElement;
|
|
941
|
+
/**
|
|
942
|
+
* The count of the displayed buttons.
|
|
943
|
+
*
|
|
944
|
+
* @type {number}
|
|
945
|
+
* @memberOf PagerNumericButtonsComponent
|
|
946
|
+
*/
|
|
947
|
+
buttonCount;
|
|
848
948
|
/**
|
|
849
949
|
* Specifies the padding of the numeric buttons.
|
|
850
950
|
*
|
|
@@ -894,6 +994,12 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
894
994
|
}
|
|
895
995
|
return 1;
|
|
896
996
|
}
|
|
997
|
+
constructor(localization, cd, pagerContext, renderer) {
|
|
998
|
+
super(localization, pagerContext, cd);
|
|
999
|
+
this.pagerContext = pagerContext;
|
|
1000
|
+
this.renderer = renderer;
|
|
1001
|
+
}
|
|
1002
|
+
_size = DEFAULT_SIZE;
|
|
897
1003
|
ngAfterViewInit() {
|
|
898
1004
|
this.handleClasses(this.size, 'size');
|
|
899
1005
|
}
|
|
@@ -947,12 +1053,10 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
947
1053
|
this.renderer.addClass(elem, classes.toAdd);
|
|
948
1054
|
}
|
|
949
1055
|
}
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerNumericButtonsComponent, isStandalone: true, selector: "kendo-datapager-numeric-buttons", inputs: { buttonCount: "buttonCount", size: "size" }, 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: `
|
|
1056
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
1057
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerNumericButtonsComponent, isStandalone: true, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount", size: "size" }, 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: `
|
|
953
1058
|
<select kendoPagerFocusable #select
|
|
954
|
-
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
955
|
-
[style.display]="'none'"
|
|
1059
|
+
class="k-hidden k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
956
1060
|
[attr.title]="pageChooserLabel"
|
|
957
1061
|
[attr.aria-label]="pageChooserLabel"
|
|
958
1062
|
(change)="onSelectChange($event)">
|
|
@@ -1015,15 +1119,15 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
|
|
|
1015
1119
|
(click)="changePage(end)">...</button>
|
|
1016
1120
|
</div>
|
|
1017
1121
|
`, isInline: true, dependencies: [{ kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1018
|
-
|
|
1122
|
+
}
|
|
1123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNumericButtonsComponent, decorators: [{
|
|
1019
1124
|
type: Component,
|
|
1020
1125
|
args: [{
|
|
1021
1126
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1022
|
-
selector: 'kendo-datapager-numeric-buttons',
|
|
1127
|
+
selector: 'kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons',
|
|
1023
1128
|
template: `
|
|
1024
1129
|
<select kendoPagerFocusable #select
|
|
1025
|
-
class="k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
1026
|
-
[style.display]="'none'"
|
|
1130
|
+
class="k-hidden k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
1027
1131
|
[attr.title]="pageChooserLabel"
|
|
1028
1132
|
[attr.aria-label]="pageChooserLabel"
|
|
1029
1133
|
(change)="onSelectChange($event)">
|
|
@@ -1106,19 +1210,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1106
1210
|
* Displays buttons for navigating to the next and to the last page ([see example]({% slug pager_settings %})).
|
|
1107
1211
|
*/
|
|
1108
1212
|
class PagerNextButtonsComponent extends PagerElementComponent {
|
|
1109
|
-
constructor(localization, pagerContext, cd) {
|
|
1110
|
-
super(localization, pagerContext, cd);
|
|
1111
|
-
/**
|
|
1112
|
-
* Specifies the padding of the buttons.
|
|
1113
|
-
*
|
|
1114
|
-
* The possible values are:
|
|
1115
|
-
* * `small`
|
|
1116
|
-
* * `medium` (default)
|
|
1117
|
-
* * `large`
|
|
1118
|
-
* * `none`
|
|
1119
|
-
*/
|
|
1120
|
-
this.size = DEFAULT_SIZE;
|
|
1121
|
-
}
|
|
1122
1213
|
/**
|
|
1123
1214
|
* @hidden
|
|
1124
1215
|
*
|
|
@@ -1129,15 +1220,27 @@ class PagerNextButtonsComponent extends PagerElementComponent {
|
|
|
1129
1220
|
get disabled() {
|
|
1130
1221
|
return this.currentPage === this.totalPages || !this.total;
|
|
1131
1222
|
}
|
|
1223
|
+
/**
|
|
1224
|
+
* Specifies the padding of the buttons.
|
|
1225
|
+
*
|
|
1226
|
+
* The possible values are:
|
|
1227
|
+
* * `small`
|
|
1228
|
+
* * `medium` (default)
|
|
1229
|
+
* * `large`
|
|
1230
|
+
* * `none`
|
|
1231
|
+
*/
|
|
1232
|
+
size = DEFAULT_SIZE;
|
|
1233
|
+
constructor(localization, pagerContext, cd) {
|
|
1234
|
+
super(localization, pagerContext, cd);
|
|
1235
|
+
}
|
|
1132
1236
|
onChanges({ total, skip, pageSize }) {
|
|
1133
1237
|
this.total = total;
|
|
1134
1238
|
this.skip = skip;
|
|
1135
1239
|
this.pageSize = pageSize;
|
|
1136
1240
|
this.cd.markForCheck();
|
|
1137
1241
|
}
|
|
1138
|
-
}
|
|
1139
|
-
|
|
1140
|
-
PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerNextButtonsComponent, isStandalone: true, selector: "kendo-datapager-next-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
|
|
1242
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNextButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1243
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerNextButtonsComponent, isStandalone: true, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
|
|
1141
1244
|
<button kendoButton kendoPagerFocusable
|
|
1142
1245
|
type="button"
|
|
1143
1246
|
[size]="size"
|
|
@@ -1146,7 +1249,8 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
1146
1249
|
fillMode="flat"
|
|
1147
1250
|
rounded="none"
|
|
1148
1251
|
class="k-pager-nav"
|
|
1149
|
-
[disabled]="disabled"
|
|
1252
|
+
[attr.aria-disabled]="disabled"
|
|
1253
|
+
[class.k-disabled]="disabled"
|
|
1150
1254
|
[title]="textFor('nextPage')"
|
|
1151
1255
|
[attr.aria-label]="textFor('nextPage')"
|
|
1152
1256
|
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
@@ -1159,17 +1263,19 @@ PagerNextButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
1159
1263
|
fillMode="flat"
|
|
1160
1264
|
rounded="none"
|
|
1161
1265
|
class="k-pager-nav k-pager-last"
|
|
1162
|
-
[disabled]="disabled"
|
|
1266
|
+
[attr.aria-disabled]="disabled"
|
|
1267
|
+
[class.k-disabled]="disabled"
|
|
1163
1268
|
[title]="textFor('lastPage')"
|
|
1164
1269
|
[attr.aria-label]="textFor('lastPage')"
|
|
1165
1270
|
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
1166
1271
|
</button>
|
|
1167
1272
|
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1168
|
-
|
|
1273
|
+
}
|
|
1274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
|
|
1169
1275
|
type: Component,
|
|
1170
1276
|
args: [{
|
|
1171
1277
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1172
|
-
selector: 'kendo-datapager-next-buttons',
|
|
1278
|
+
selector: 'kendo-datapager-next-buttons, kendo-pager-next-buttons',
|
|
1173
1279
|
template: `
|
|
1174
1280
|
<button kendoButton kendoPagerFocusable
|
|
1175
1281
|
type="button"
|
|
@@ -1179,7 +1285,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1179
1285
|
fillMode="flat"
|
|
1180
1286
|
rounded="none"
|
|
1181
1287
|
class="k-pager-nav"
|
|
1182
|
-
[disabled]="disabled"
|
|
1288
|
+
[attr.aria-disabled]="disabled"
|
|
1289
|
+
[class.k-disabled]="disabled"
|
|
1183
1290
|
[title]="textFor('nextPage')"
|
|
1184
1291
|
[attr.aria-label]="textFor('nextPage')"
|
|
1185
1292
|
(click)="currentPage !== totalPages ? changePage(currentPage) : false">
|
|
@@ -1192,7 +1299,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1192
1299
|
fillMode="flat"
|
|
1193
1300
|
rounded="none"
|
|
1194
1301
|
class="k-pager-nav k-pager-last"
|
|
1195
|
-
[disabled]="disabled"
|
|
1302
|
+
[attr.aria-disabled]="disabled"
|
|
1303
|
+
[class.k-disabled]="disabled"
|
|
1196
1304
|
[title]="textFor('lastPage')"
|
|
1197
1305
|
[attr.aria-label]="textFor('lastPage')"
|
|
1198
1306
|
(click)="currentPage !== totalPages ? changePage(totalPages-1) : false">
|
|
@@ -1209,59 +1317,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1209
1317
|
* Displays an input element which allows the typing and rendering of page numbers.
|
|
1210
1318
|
*/
|
|
1211
1319
|
class PagerInputComponent extends PagerElementComponent {
|
|
1320
|
+
pagerContext;
|
|
1321
|
+
zone;
|
|
1322
|
+
renderer;
|
|
1323
|
+
numericInput;
|
|
1324
|
+
/**
|
|
1325
|
+
* Specifies the padding of the internal numeric input element.
|
|
1326
|
+
*
|
|
1327
|
+
* The possible values are:
|
|
1328
|
+
* * `small`
|
|
1329
|
+
* * `medium` (default)
|
|
1330
|
+
* * `large`
|
|
1331
|
+
* * `none`
|
|
1332
|
+
*/
|
|
1333
|
+
size = DEFAULT_SIZE;
|
|
1212
1334
|
constructor(localization, pagerContext, zone, cd, renderer) {
|
|
1213
1335
|
super(localization, pagerContext, cd);
|
|
1214
1336
|
this.pagerContext = pagerContext;
|
|
1215
1337
|
this.zone = zone;
|
|
1216
1338
|
this.renderer = renderer;
|
|
1217
|
-
/**
|
|
1218
|
-
* Specifies the padding of the internal numeric input element.
|
|
1219
|
-
*
|
|
1220
|
-
* The possible values are:
|
|
1221
|
-
* * `small`
|
|
1222
|
-
* * `medium` (default)
|
|
1223
|
-
* * `large`
|
|
1224
|
-
* * `none`
|
|
1225
|
-
*/
|
|
1226
|
-
this.size = DEFAULT_SIZE;
|
|
1227
|
-
/**
|
|
1228
|
-
* @hidden
|
|
1229
|
-
*
|
|
1230
|
-
* @param {string} value
|
|
1231
|
-
*
|
|
1232
|
-
* @memberOf PagerInputComponent
|
|
1233
|
-
*/
|
|
1234
|
-
this.handleKeyDown = (event) => {
|
|
1235
|
-
const incomingValue = this.numericInput.value || this.current;
|
|
1236
|
-
// eslint-disable import/no-deprecated
|
|
1237
|
-
if (event.keyCode === Keys.Enter) {
|
|
1238
|
-
event.preventDefault();
|
|
1239
|
-
if (incomingValue !== this.current) {
|
|
1240
|
-
this.zone.run(() => {
|
|
1241
|
-
this.changePage(incomingValue - 1);
|
|
1242
|
-
});
|
|
1243
|
-
}
|
|
1244
|
-
}
|
|
1245
|
-
};
|
|
1246
|
-
/**
|
|
1247
|
-
* @hidden
|
|
1248
|
-
*
|
|
1249
|
-
* @param {string} value
|
|
1250
|
-
*
|
|
1251
|
-
* @memberOf PagerInputComponent
|
|
1252
|
-
*/
|
|
1253
|
-
this.handleBlur = () => {
|
|
1254
|
-
const inputValue = this.numericInput.value;
|
|
1255
|
-
if (!inputValue) {
|
|
1256
|
-
this.numericInput.writeValue(this.current);
|
|
1257
|
-
return;
|
|
1258
|
-
}
|
|
1259
|
-
if (inputValue !== this.current) {
|
|
1260
|
-
this.zone.run(() => {
|
|
1261
|
-
this.changePage(inputValue - 1);
|
|
1262
|
-
});
|
|
1263
|
-
}
|
|
1264
|
-
};
|
|
1265
1339
|
}
|
|
1266
1340
|
onChanges({ total, skip, pageSize }) {
|
|
1267
1341
|
this.total = total;
|
|
@@ -1269,6 +1343,44 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1269
1343
|
this.pageSize = pageSize;
|
|
1270
1344
|
this.cd.markForCheck();
|
|
1271
1345
|
}
|
|
1346
|
+
/**
|
|
1347
|
+
* @hidden
|
|
1348
|
+
*
|
|
1349
|
+
* @param {string} value
|
|
1350
|
+
*
|
|
1351
|
+
* @memberOf PagerInputComponent
|
|
1352
|
+
*/
|
|
1353
|
+
handleKeyDown = (event) => {
|
|
1354
|
+
const incomingValue = this.numericInput.value || this.current;
|
|
1355
|
+
// eslint-disable import/no-deprecated
|
|
1356
|
+
if (event.keyCode === Keys.Enter) {
|
|
1357
|
+
event.preventDefault();
|
|
1358
|
+
if (incomingValue !== this.current) {
|
|
1359
|
+
this.zone.run(() => {
|
|
1360
|
+
this.changePage(incomingValue - 1);
|
|
1361
|
+
});
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1364
|
+
};
|
|
1365
|
+
/**
|
|
1366
|
+
* @hidden
|
|
1367
|
+
*
|
|
1368
|
+
* @param {string} value
|
|
1369
|
+
*
|
|
1370
|
+
* @memberOf PagerInputComponent
|
|
1371
|
+
*/
|
|
1372
|
+
handleBlur = () => {
|
|
1373
|
+
const inputValue = this.numericInput.value;
|
|
1374
|
+
if (!inputValue) {
|
|
1375
|
+
this.numericInput.writeValue(this.current);
|
|
1376
|
+
return;
|
|
1377
|
+
}
|
|
1378
|
+
if (inputValue !== this.current) {
|
|
1379
|
+
this.zone.run(() => {
|
|
1380
|
+
this.changePage(inputValue - 1);
|
|
1381
|
+
});
|
|
1382
|
+
}
|
|
1383
|
+
};
|
|
1272
1384
|
/**
|
|
1273
1385
|
* @hidden
|
|
1274
1386
|
*/
|
|
@@ -1281,9 +1393,8 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1281
1393
|
get hasPages() {
|
|
1282
1394
|
return this.totalPages !== 0;
|
|
1283
1395
|
}
|
|
1284
|
-
}
|
|
1285
|
-
|
|
1286
|
-
PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerInputComponent, isStandalone: true, selector: "kendo-datapager-input", inputs: { size: "size" }, viewQueries: [{ propertyName: "numericInput", first: true, predicate: NumericTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1396
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInputComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
1397
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerInputComponent, isStandalone: true, selector: "kendo-datapager-input, kendo-pager-input", inputs: { size: "size" }, viewQueries: [{ propertyName: "numericInput", first: true, predicate: NumericTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1287
1398
|
<span class="k-pager-input">
|
|
1288
1399
|
{{textFor('page')}}
|
|
1289
1400
|
<kendo-numerictextbox kendoPagerFocusable
|
|
@@ -1308,10 +1419,11 @@ PagerInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
1308
1419
|
{{textFor('of')}} {{totalPages}}
|
|
1309
1420
|
</span>
|
|
1310
1421
|
`, isInline: true, dependencies: [{ kind: "component", type: NumericTextBoxComponent, selector: "kendo-numerictextbox", inputs: ["focusableId", "disabled", "readonly", "title", "autoCorrect", "format", "max", "min", "decimals", "placeholder", "step", "spinners", "rangeValidation", "tabindex", "tabIndex", "changeValueOnScroll", "selectOnFocus", "value", "maxlength", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "inputFocus", "inputBlur"], exportAs: ["kendoNumericTextBox"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { kind: "directive", type: EventsOutsideAngularDirective, selector: "[kendoEventsOutsideAngular]", inputs: ["kendoEventsOutsideAngular", "scope"] }] });
|
|
1311
|
-
|
|
1422
|
+
}
|
|
1423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInputComponent, decorators: [{
|
|
1312
1424
|
type: Component,
|
|
1313
1425
|
args: [{
|
|
1314
|
-
selector: 'kendo-datapager-input',
|
|
1426
|
+
selector: 'kendo-datapager-input, kendo-pager-input',
|
|
1315
1427
|
template: `
|
|
1316
1428
|
<span class="k-pager-input">
|
|
1317
1429
|
{{textFor('page')}}
|
|
@@ -1352,10 +1464,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1352
1464
|
* Displays information about the current page and the total number of records ([see example]({% slug pager_settings %})).
|
|
1353
1465
|
*/
|
|
1354
1466
|
class PagerInfoComponent extends PagerElementComponent {
|
|
1355
|
-
constructor(localization, cd, pagerContext) {
|
|
1356
|
-
super(localization, pagerContext, cd);
|
|
1357
|
-
this.pagerContext = pagerContext;
|
|
1358
|
-
}
|
|
1359
1467
|
/**
|
|
1360
1468
|
* @hidden
|
|
1361
1469
|
*
|
|
@@ -1385,8 +1493,9 @@ class PagerInfoComponent extends PagerElementComponent {
|
|
|
1385
1493
|
* @type {boolean}
|
|
1386
1494
|
* @memberOf PagerInfoComponent
|
|
1387
1495
|
*/
|
|
1388
|
-
|
|
1389
|
-
|
|
1496
|
+
hostClass = true;
|
|
1497
|
+
constructor(localization, cd, pagerContext) {
|
|
1498
|
+
super(localization, pagerContext, cd);
|
|
1390
1499
|
}
|
|
1391
1500
|
onChanges({ total, skip, pageSize }) {
|
|
1392
1501
|
this.total = total;
|
|
@@ -1394,20 +1503,20 @@ class PagerInfoComponent extends PagerElementComponent {
|
|
|
1394
1503
|
this.pageSize = pageSize;
|
|
1395
1504
|
this.cd.markForCheck();
|
|
1396
1505
|
}
|
|
1506
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1507
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerInfoComponent, isStandalone: true, selector: "kendo-datapager-info, kendo-pager-info", host: { properties: { "class.k-pager-info": "this.hostClass" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('of')}} {{total}} {{textFor('items')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1397
1508
|
}
|
|
1398
|
-
|
|
1399
|
-
PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PagerInfoComponent, isStandalone: true, selector: "kendo-datapager-info", host: { properties: { "class.k-pager-info": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{currentPageText}} - {{maxItems}} {{textFor('of')}} {{total}} {{textFor('items')}}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1400
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
1509
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
|
|
1401
1510
|
type: Component,
|
|
1402
1511
|
args: [{
|
|
1403
1512
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1404
|
-
selector: 'kendo-datapager-info',
|
|
1513
|
+
selector: 'kendo-datapager-info, kendo-pager-info',
|
|
1405
1514
|
template: `{{currentPageText}} - {{maxItems}} {{textFor('of')}} {{total}} {{textFor('items')}}`,
|
|
1406
1515
|
standalone: true
|
|
1407
1516
|
}]
|
|
1408
|
-
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: {
|
|
1517
|
+
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { hostClass: [{
|
|
1409
1518
|
type: HostBinding,
|
|
1410
|
-
args: [
|
|
1519
|
+
args: ['class.k-pager-info']
|
|
1411
1520
|
}] } });
|
|
1412
1521
|
|
|
1413
1522
|
/**
|
|
@@ -1417,8 +1526,8 @@ const packageMetadata = {
|
|
|
1417
1526
|
name: '@progress/kendo-angular-pager',
|
|
1418
1527
|
productName: 'Kendo UI for Angular',
|
|
1419
1528
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
1420
|
-
publishDate:
|
|
1421
|
-
version: '17.0.0
|
|
1529
|
+
publishDate: 1731414064,
|
|
1530
|
+
version: '17.0.0',
|
|
1422
1531
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
1423
1532
|
};
|
|
1424
1533
|
|
|
@@ -1432,99 +1541,51 @@ const RESPONSIVE_BREAKPOINT_MEDIUM = 600;
|
|
|
1432
1541
|
const RESPONSIVE_BREAKPOINT_LARGE = 768;
|
|
1433
1542
|
|
|
1434
1543
|
class PagerComponent {
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
this.keyShortcuts = 'Enter ArrowRight ArrowLeft';
|
|
1481
|
-
this.hostTabindex = '0';
|
|
1482
|
-
this.subscriptions = new Subscription();
|
|
1483
|
-
this._templateContext = {};
|
|
1484
|
-
this._pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;
|
|
1485
|
-
this.isInnerNavigationEnabled = false;
|
|
1486
|
-
this._navigable = false;
|
|
1487
|
-
this._size = DEFAULT_SIZE;
|
|
1488
|
-
this.resizeHandler = () => {
|
|
1489
|
-
if (this.template?.first) {
|
|
1490
|
-
return;
|
|
1491
|
-
}
|
|
1492
|
-
const width = this.element.nativeElement.offsetWidth;
|
|
1493
|
-
this.ngZone.runOutsideAngular(() => {
|
|
1494
|
-
setTimeout(() => {
|
|
1495
|
-
if (this.numericButtons) {
|
|
1496
|
-
const selectElement = this.numericButtons.selectElement.nativeElement;
|
|
1497
|
-
const numbersElement = this.numericButtons.numbersElement.nativeElement;
|
|
1498
|
-
this.renderer.removeStyle(numbersElement, 'display');
|
|
1499
|
-
this.renderer.setStyle(selectElement, 'display', 'none');
|
|
1500
|
-
this.renderer.addClass(selectElement, 'k-hidden');
|
|
1501
|
-
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
1502
|
-
this.renderer.removeStyle(selectElement, 'display');
|
|
1503
|
-
this.renderer.removeClass(selectElement, 'k-hidden');
|
|
1504
|
-
this.renderer.setStyle(numbersElement, 'display', 'none');
|
|
1505
|
-
}
|
|
1506
|
-
else {
|
|
1507
|
-
this.renderer.addClass(selectElement, 'k-hidden');
|
|
1508
|
-
}
|
|
1509
|
-
}
|
|
1510
|
-
if (this.pagerInfo) {
|
|
1511
|
-
this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
|
|
1512
|
-
if (width < RESPONSIVE_BREAKPOINT_LARGE) {
|
|
1513
|
-
this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
|
|
1514
|
-
}
|
|
1515
|
-
}
|
|
1516
|
-
if (this.pagerPageSizes) {
|
|
1517
|
-
this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
|
|
1518
|
-
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
1519
|
-
this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
|
|
1520
|
-
}
|
|
1521
|
-
}
|
|
1522
|
-
});
|
|
1523
|
-
});
|
|
1524
|
-
};
|
|
1525
|
-
validatePackage(packageMetadata);
|
|
1526
|
-
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
1527
|
-
}
|
|
1544
|
+
pagerContext;
|
|
1545
|
+
element;
|
|
1546
|
+
localization;
|
|
1547
|
+
renderer;
|
|
1548
|
+
ngZone;
|
|
1549
|
+
navigationService;
|
|
1550
|
+
template;
|
|
1551
|
+
/**
|
|
1552
|
+
* @hidden
|
|
1553
|
+
*/
|
|
1554
|
+
externalTemplate;
|
|
1555
|
+
/**
|
|
1556
|
+
* Represents the total number of data items in the collection.
|
|
1557
|
+
*
|
|
1558
|
+
* @default 0
|
|
1559
|
+
*/
|
|
1560
|
+
total = 0;
|
|
1561
|
+
/**
|
|
1562
|
+
* Defines the number of data items to be skipped.
|
|
1563
|
+
*
|
|
1564
|
+
* @default 0
|
|
1565
|
+
*/
|
|
1566
|
+
skip = 0;
|
|
1567
|
+
/**
|
|
1568
|
+
* Defines the number of data items per page.
|
|
1569
|
+
*/
|
|
1570
|
+
pageSize;
|
|
1571
|
+
/**
|
|
1572
|
+
* Sets the maximum numeric buttons count before the buttons are collapsed.
|
|
1573
|
+
*
|
|
1574
|
+
* @default 10
|
|
1575
|
+
*/
|
|
1576
|
+
buttonCount = 10;
|
|
1577
|
+
/**
|
|
1578
|
+
* Toggles the information about the current page and the total number of records.
|
|
1579
|
+
*
|
|
1580
|
+
* @default true
|
|
1581
|
+
*/
|
|
1582
|
+
info = true;
|
|
1583
|
+
/**
|
|
1584
|
+
* Defines the type of the pager.
|
|
1585
|
+
*
|
|
1586
|
+
* @default 'numeric'
|
|
1587
|
+
*/
|
|
1588
|
+
type = 'numeric';
|
|
1528
1589
|
/**
|
|
1529
1590
|
* Shows a dropdown for selecting the page size.
|
|
1530
1591
|
* When set to `true`, the dropdown will contain the default list of options - 5, 10, 20.
|
|
@@ -1537,6 +1598,12 @@ class PagerComponent {
|
|
|
1537
1598
|
get pageSizeValues() {
|
|
1538
1599
|
return this._pageSizeValues;
|
|
1539
1600
|
}
|
|
1601
|
+
/**
|
|
1602
|
+
* Toggles the **Previous** and **Next** buttons.
|
|
1603
|
+
*
|
|
1604
|
+
* @default true
|
|
1605
|
+
*/
|
|
1606
|
+
previousNext = true;
|
|
1540
1607
|
/**
|
|
1541
1608
|
* If set to `true`, the user can use dedicated shortcuts to interact with the Pager ([see example]({% slug keyboard_navigation_pager %})).
|
|
1542
1609
|
* By default, navigation is disabled and the Pager content is accessible in the normal tab sequence.
|
|
@@ -1566,6 +1633,31 @@ class PagerComponent {
|
|
|
1566
1633
|
get size() {
|
|
1567
1634
|
return this._size;
|
|
1568
1635
|
}
|
|
1636
|
+
/**
|
|
1637
|
+
* @hidden
|
|
1638
|
+
* Toggles the Pager responsive functionality.
|
|
1639
|
+
*
|
|
1640
|
+
* @default true
|
|
1641
|
+
*/
|
|
1642
|
+
responsive = true;
|
|
1643
|
+
/**
|
|
1644
|
+
* Fires when the current page of the Pager is changed ([see example](slug:overview_pager)).
|
|
1645
|
+
* You have to handle the event yourself and page the data.
|
|
1646
|
+
*/
|
|
1647
|
+
pageChange = new EventEmitter();
|
|
1648
|
+
/**
|
|
1649
|
+
* Fires when the page size of the Pager is changed.
|
|
1650
|
+
* You have to handle the event yourself and page the data.
|
|
1651
|
+
* If the event is prevented, the page size will remain unchanged ([see example]({% slug pager_events %})).
|
|
1652
|
+
*/
|
|
1653
|
+
pageSizeChange = new EventEmitter();
|
|
1654
|
+
pagerClass = true;
|
|
1655
|
+
widgetRole = 'application';
|
|
1656
|
+
roleDescription = 'pager';
|
|
1657
|
+
keyShortcuts = 'Enter ArrowRight ArrowLeft';
|
|
1658
|
+
get hostTabindex() {
|
|
1659
|
+
return this.navigable ? '0' : '-1';
|
|
1660
|
+
}
|
|
1569
1661
|
get dir() {
|
|
1570
1662
|
return this.direction;
|
|
1571
1663
|
}
|
|
@@ -1591,10 +1683,33 @@ class PagerComponent {
|
|
|
1591
1683
|
context.currentPage = this.currentPage;
|
|
1592
1684
|
return context;
|
|
1593
1685
|
}
|
|
1686
|
+
subscriptions = new Subscription();
|
|
1687
|
+
_templateContext = {};
|
|
1688
|
+
_pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;
|
|
1689
|
+
direction;
|
|
1690
|
+
isInnerNavigationEnabled = false;
|
|
1691
|
+
_navigable = false;
|
|
1692
|
+
_size = DEFAULT_SIZE;
|
|
1693
|
+
constructor(pagerContext, element, localization, renderer, ngZone, navigationService) {
|
|
1694
|
+
this.pagerContext = pagerContext;
|
|
1695
|
+
this.element = element;
|
|
1696
|
+
this.localization = localization;
|
|
1697
|
+
this.renderer = renderer;
|
|
1698
|
+
this.ngZone = ngZone;
|
|
1699
|
+
this.navigationService = navigationService;
|
|
1700
|
+
validatePackage(packageMetadata);
|
|
1701
|
+
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
1702
|
+
if (!navigationService) {
|
|
1703
|
+
this.navigationService = inject(PagerNavigationService);
|
|
1704
|
+
}
|
|
1705
|
+
if (!pagerContext) {
|
|
1706
|
+
this.pagerContext = inject(PagerContextService);
|
|
1707
|
+
}
|
|
1708
|
+
this.pagerContext.localization = localization;
|
|
1709
|
+
}
|
|
1594
1710
|
ngOnInit() {
|
|
1595
1711
|
this.subscriptions.add(this.pagerContext.pageChange.subscribe(this.changePage.bind(this)));
|
|
1596
1712
|
this.subscriptions.add(this.pagerContext.pageSizeChange.subscribe(this.changePageSize.bind(this)));
|
|
1597
|
-
this.subscriptions.add(this.resizeSensor.resize.subscribe(() => this.resizeHandler()));
|
|
1598
1713
|
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
1599
1714
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
1600
1715
|
}));
|
|
@@ -1607,10 +1722,10 @@ class PagerComponent {
|
|
|
1607
1722
|
}
|
|
1608
1723
|
}
|
|
1609
1724
|
ngAfterViewInit() {
|
|
1610
|
-
this.resizeHandler();
|
|
1725
|
+
this.responsive && this.resizeHandler();
|
|
1611
1726
|
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
1612
1727
|
this.subscriptions.add(this.template.changes.subscribe(() => {
|
|
1613
|
-
this.resizeHandler();
|
|
1728
|
+
this.responsive && this.resizeHandler();
|
|
1614
1729
|
}));
|
|
1615
1730
|
this.handleClasses(this.size, 'size');
|
|
1616
1731
|
}
|
|
@@ -1623,6 +1738,9 @@ class PagerComponent {
|
|
|
1623
1738
|
});
|
|
1624
1739
|
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
1625
1740
|
}
|
|
1741
|
+
if (changes['responsive']) {
|
|
1742
|
+
this.responsive && this.resizeHandler();
|
|
1743
|
+
}
|
|
1626
1744
|
}
|
|
1627
1745
|
ngOnDestroy() {
|
|
1628
1746
|
this.subscriptions.unsubscribe();
|
|
@@ -1656,11 +1774,53 @@ class PagerComponent {
|
|
|
1656
1774
|
this.pageChange.emit({ skip: this.skip, take: event.newPageSize });
|
|
1657
1775
|
}
|
|
1658
1776
|
}
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1777
|
+
/**
|
|
1778
|
+
* @hidden
|
|
1779
|
+
*/
|
|
1780
|
+
resizeHandler = () => {
|
|
1781
|
+
if (this.template?.first && !this.responsive) {
|
|
1782
|
+
return;
|
|
1783
|
+
}
|
|
1784
|
+
const width = this.element.nativeElement.offsetWidth;
|
|
1785
|
+
this.ngZone.runOutsideAngular(() => {
|
|
1786
|
+
setTimeout(() => {
|
|
1787
|
+
const numericButtonsElement = this.element.nativeElement.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
1788
|
+
const pagerInfoElement = this.element.nativeElement.querySelector('.k-pager-info');
|
|
1789
|
+
const pagerPageSizes = this.element.nativeElement.querySelector('.k-pager-sizes');
|
|
1790
|
+
if (numericButtonsElement) {
|
|
1791
|
+
const selectElement = numericButtonsElement.querySelector('select');
|
|
1792
|
+
const numbersElement = numericButtonsElement.querySelector('.k-pager-numbers');
|
|
1793
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
1794
|
+
this.renderer.removeClass(selectElement, 'k-hidden');
|
|
1795
|
+
this.renderer.addClass(numbersElement, 'k-hidden');
|
|
1796
|
+
}
|
|
1797
|
+
else {
|
|
1798
|
+
this.renderer.addClass(selectElement, 'k-hidden');
|
|
1799
|
+
this.renderer.removeClass(numbersElement, 'k-hidden');
|
|
1800
|
+
}
|
|
1801
|
+
}
|
|
1802
|
+
if (pagerInfoElement) {
|
|
1803
|
+
if (width < RESPONSIVE_BREAKPOINT_LARGE) {
|
|
1804
|
+
this.renderer.addClass(pagerInfoElement, 'k-hidden');
|
|
1805
|
+
}
|
|
1806
|
+
else {
|
|
1807
|
+
this.renderer.removeClass(pagerInfoElement, 'k-hidden');
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
if (pagerPageSizes) {
|
|
1811
|
+
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
1812
|
+
this.renderer.addClass(pagerPageSizes, 'k-hidden');
|
|
1813
|
+
}
|
|
1814
|
+
else {
|
|
1815
|
+
this.renderer.removeClass(pagerPageSizes, 'k-hidden');
|
|
1816
|
+
}
|
|
1817
|
+
}
|
|
1818
|
+
});
|
|
1819
|
+
});
|
|
1820
|
+
};
|
|
1662
1821
|
get ariaLabel() {
|
|
1663
|
-
|
|
1822
|
+
const localizationMsg = this.localization.get('ariaLabel') || '';
|
|
1823
|
+
return replaceMessagePlaceholder(replaceMessagePlaceholder(localizationMsg, 'currentPage', this.currentPage.toString()), 'totalPages', this.totalPages.toString());
|
|
1664
1824
|
}
|
|
1665
1825
|
keyDownHandler(e) {
|
|
1666
1826
|
const target = e.target;
|
|
@@ -1676,11 +1836,17 @@ class PagerComponent {
|
|
|
1676
1836
|
const isLastPage = this.currentPage === this.totalPages;
|
|
1677
1837
|
this.ngZone.run(() => {
|
|
1678
1838
|
if (isHome) {
|
|
1839
|
+
if (e.target !== wrapper) {
|
|
1840
|
+
return;
|
|
1841
|
+
}
|
|
1679
1842
|
e.preventDefault();
|
|
1680
1843
|
!isFirstPage && this.pagerContext.changePage(0);
|
|
1681
1844
|
}
|
|
1682
1845
|
else if (isEnd) {
|
|
1683
1846
|
e.preventDefault();
|
|
1847
|
+
if (e.target !== wrapper) {
|
|
1848
|
+
return;
|
|
1849
|
+
}
|
|
1684
1850
|
!isLastPage && this.pagerContext.changePage(this.totalPages - 1);
|
|
1685
1851
|
}
|
|
1686
1852
|
else if (this.isInnerNavigationEnabled) {
|
|
@@ -1693,6 +1859,9 @@ class PagerComponent {
|
|
|
1693
1859
|
}
|
|
1694
1860
|
}
|
|
1695
1861
|
else {
|
|
1862
|
+
if (e.target !== wrapper) {
|
|
1863
|
+
return;
|
|
1864
|
+
}
|
|
1696
1865
|
if (isArrowLeftOrPageUp) {
|
|
1697
1866
|
e.preventDefault();
|
|
1698
1867
|
!isFirstPage && this.pagerContext.prevPage();
|
|
@@ -1702,9 +1871,6 @@ class PagerComponent {
|
|
|
1702
1871
|
!isLastPage && this.pagerContext.nextPage();
|
|
1703
1872
|
}
|
|
1704
1873
|
else if (isEnter) {
|
|
1705
|
-
if (e.target !== wrapper) {
|
|
1706
|
-
return;
|
|
1707
|
-
}
|
|
1708
1874
|
e.preventDefault();
|
|
1709
1875
|
const [firstFocusable] = this.navigationService.getFirstAndLastFocusable(wrapper);
|
|
1710
1876
|
this.navigationService.toggleInnerNavigation(true);
|
|
@@ -1726,18 +1892,20 @@ class PagerComponent {
|
|
|
1726
1892
|
this.renderer.addClass(elem, classes.toAdd);
|
|
1727
1893
|
}
|
|
1728
1894
|
}
|
|
1729
|
-
}
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
}
|
|
1739
|
-
|
|
1740
|
-
|
|
1895
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: PagerNavigationService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1896
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerComponent, isStandalone: true, selector: "kendo-datapager, kendo-pager", inputs: { externalTemplate: "externalTemplate", total: "total", skip: "skip", pageSize: "pageSize", buttonCount: "buttonCount", info: "info", type: "type", pageSizeValues: "pageSizeValues", previousNext: "previousNext", navigable: "navigable", size: "size", responsive: "responsive" }, 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: [
|
|
1897
|
+
LocalizationService,
|
|
1898
|
+
PagerContextService,
|
|
1899
|
+
PagerNavigationService,
|
|
1900
|
+
{
|
|
1901
|
+
provide: L10N_PREFIX,
|
|
1902
|
+
useValue: 'kendo.pager'
|
|
1903
|
+
}
|
|
1904
|
+
], queries: [{ propertyName: "template", predicate: PagerTemplateDirective }], exportAs: ["kendoDataPager", "kendoPager"], usesOnChanges: true, ngImport: i0, template: `
|
|
1905
|
+
<ng-container kendoPagerLocalizedMessages
|
|
1906
|
+
i18n-ariaLabel="kendo.pager.ariaLabel|The value of the aria-label attribute of the Pager"
|
|
1907
|
+
ariaLabel="{{ 'Page navigation, page {currentPage} of {totalPages}' }}"
|
|
1908
|
+
|
|
1741
1909
|
i18n-firstPage="kendo.pager.firstPage|The label for the first page button in the Pager"
|
|
1742
1910
|
firstPage="Go to the first page"
|
|
1743
1911
|
|
|
@@ -1773,35 +1941,36 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
1773
1941
|
>
|
|
1774
1942
|
</ng-container>
|
|
1775
1943
|
<ng-container
|
|
1776
|
-
*ngIf="template.first?.templateRef"
|
|
1944
|
+
*ngIf="template.first?.templateRef; else default"
|
|
1777
1945
|
[ngTemplateOutlet]="template.first?.templateRef"
|
|
1778
1946
|
[ngTemplateOutletContext]="templateContext">
|
|
1779
1947
|
</ng-container>
|
|
1780
|
-
<ng-
|
|
1948
|
+
<ng-template #default>
|
|
1781
1949
|
<div class="k-pager-numbers-wrap">
|
|
1782
|
-
<kendo-
|
|
1783
|
-
<kendo-
|
|
1950
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="previousNext"></kendo-pager-prev-buttons>
|
|
1951
|
+
<kendo-pager-numeric-buttons
|
|
1784
1952
|
[size]="size"
|
|
1785
1953
|
*ngIf="type === 'numeric' && buttonCount > 0"
|
|
1786
1954
|
[buttonCount]="buttonCount">
|
|
1787
|
-
</kendo-
|
|
1788
|
-
<kendo-
|
|
1789
|
-
<kendo-
|
|
1955
|
+
</kendo-pager-numeric-buttons>
|
|
1956
|
+
<kendo-pager-input [size]="size" *ngIf="type === 'input'"></kendo-pager-input>
|
|
1957
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="previousNext"></kendo-pager-next-buttons>
|
|
1790
1958
|
</div>
|
|
1791
|
-
<kendo-
|
|
1959
|
+
<kendo-pager-page-sizes *ngIf="pageSizeValues"
|
|
1792
1960
|
[size]="size"
|
|
1793
1961
|
[pageSizes]="pageSizeValues">
|
|
1794
|
-
</kendo-
|
|
1795
|
-
<kendo-
|
|
1796
|
-
</kendo-
|
|
1797
|
-
</ng-
|
|
1798
|
-
<kendo-resize-sensor></kendo-resize-sensor>
|
|
1799
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[
|
|
1800
|
-
|
|
1962
|
+
</kendo-pager-page-sizes>
|
|
1963
|
+
<kendo-pager-info *ngIf="info">
|
|
1964
|
+
</kendo-pager-info>
|
|
1965
|
+
</ng-template>
|
|
1966
|
+
<kendo-resize-sensor *ngIf="responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
|
|
1967
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPagerLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "component", type: PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
|
|
1968
|
+
}
|
|
1969
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerComponent, decorators: [{
|
|
1801
1970
|
type: Component,
|
|
1802
1971
|
args: [{
|
|
1803
|
-
selector: 'kendo-datapager',
|
|
1804
|
-
exportAs: 'kendoDataPager',
|
|
1972
|
+
selector: 'kendo-datapager, kendo-pager',
|
|
1973
|
+
exportAs: 'kendoDataPager, kendoPager',
|
|
1805
1974
|
providers: [
|
|
1806
1975
|
LocalizationService,
|
|
1807
1976
|
PagerContextService,
|
|
@@ -1812,7 +1981,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1812
1981
|
}
|
|
1813
1982
|
],
|
|
1814
1983
|
template: `
|
|
1815
|
-
<ng-container
|
|
1984
|
+
<ng-container kendoPagerLocalizedMessages
|
|
1985
|
+
i18n-ariaLabel="kendo.pager.ariaLabel|The value of the aria-label attribute of the Pager"
|
|
1986
|
+
ariaLabel="{{ 'Page navigation, page {currentPage} of {totalPages}' }}"
|
|
1987
|
+
|
|
1816
1988
|
i18n-firstPage="kendo.pager.firstPage|The label for the first page button in the Pager"
|
|
1817
1989
|
firstPage="Go to the first page"
|
|
1818
1990
|
|
|
@@ -1848,48 +2020,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1848
2020
|
>
|
|
1849
2021
|
</ng-container>
|
|
1850
2022
|
<ng-container
|
|
1851
|
-
*ngIf="template.first?.templateRef"
|
|
2023
|
+
*ngIf="template.first?.templateRef; else default"
|
|
1852
2024
|
[ngTemplateOutlet]="template.first?.templateRef"
|
|
1853
2025
|
[ngTemplateOutletContext]="templateContext">
|
|
1854
2026
|
</ng-container>
|
|
1855
|
-
<ng-
|
|
2027
|
+
<ng-template #default>
|
|
1856
2028
|
<div class="k-pager-numbers-wrap">
|
|
1857
|
-
<kendo-
|
|
1858
|
-
<kendo-
|
|
2029
|
+
<kendo-pager-prev-buttons [size]="size" *ngIf="previousNext"></kendo-pager-prev-buttons>
|
|
2030
|
+
<kendo-pager-numeric-buttons
|
|
1859
2031
|
[size]="size"
|
|
1860
2032
|
*ngIf="type === 'numeric' && buttonCount > 0"
|
|
1861
2033
|
[buttonCount]="buttonCount">
|
|
1862
|
-
</kendo-
|
|
1863
|
-
<kendo-
|
|
1864
|
-
<kendo-
|
|
2034
|
+
</kendo-pager-numeric-buttons>
|
|
2035
|
+
<kendo-pager-input [size]="size" *ngIf="type === 'input'"></kendo-pager-input>
|
|
2036
|
+
<kendo-pager-next-buttons [size]="size" *ngIf="previousNext"></kendo-pager-next-buttons>
|
|
1865
2037
|
</div>
|
|
1866
|
-
<kendo-
|
|
2038
|
+
<kendo-pager-page-sizes *ngIf="pageSizeValues"
|
|
1867
2039
|
[size]="size"
|
|
1868
2040
|
[pageSizes]="pageSizeValues">
|
|
1869
|
-
</kendo-
|
|
1870
|
-
<kendo-
|
|
1871
|
-
</kendo-
|
|
1872
|
-
</ng-
|
|
1873
|
-
<kendo-resize-sensor></kendo-resize-sensor>
|
|
2041
|
+
</kendo-pager-page-sizes>
|
|
2042
|
+
<kendo-pager-info *ngIf="info">
|
|
2043
|
+
</kendo-pager-info>
|
|
2044
|
+
</ng-template>
|
|
2045
|
+
<kendo-resize-sensor *ngIf="responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
|
|
1874
2046
|
`,
|
|
1875
2047
|
standalone: true,
|
|
1876
2048
|
imports: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent]
|
|
1877
2049
|
}]
|
|
1878
|
-
}], ctorParameters: function () { return [{ type: PagerContextService
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
type:
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
}], numericButtons: [{
|
|
1888
|
-
type: ViewChild,
|
|
1889
|
-
args: [PagerNumericButtonsComponent]
|
|
1890
|
-
}], template: [{
|
|
2050
|
+
}], ctorParameters: function () { return [{ type: PagerContextService, decorators: [{
|
|
2051
|
+
type: Optional
|
|
2052
|
+
}, {
|
|
2053
|
+
type: SkipSelf
|
|
2054
|
+
}] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: PagerNavigationService, decorators: [{
|
|
2055
|
+
type: Optional
|
|
2056
|
+
}, {
|
|
2057
|
+
type: SkipSelf
|
|
2058
|
+
}] }]; }, propDecorators: { template: [{
|
|
1891
2059
|
type: ContentChildren,
|
|
1892
2060
|
args: [PagerTemplateDirective]
|
|
2061
|
+
}], externalTemplate: [{
|
|
2062
|
+
type: Input
|
|
1893
2063
|
}], total: [{
|
|
1894
2064
|
type: Input
|
|
1895
2065
|
}], skip: [{
|
|
@@ -1910,6 +2080,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1910
2080
|
type: Input
|
|
1911
2081
|
}], size: [{
|
|
1912
2082
|
type: Input
|
|
2083
|
+
}], responsive: [{
|
|
2084
|
+
type: Input
|
|
1913
2085
|
}], pageChange: [{
|
|
1914
2086
|
type: Output
|
|
1915
2087
|
}], pageSizeChange: [{
|
|
@@ -1937,6 +2109,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1937
2109
|
args: ['focusin', ['$event']]
|
|
1938
2110
|
}] } });
|
|
1939
2111
|
|
|
2112
|
+
/**
|
|
2113
|
+
* Represents the Kendo UI PagerSpacer component for Angular.
|
|
2114
|
+
* Used to give additional white space between the Pager inner elements,
|
|
2115
|
+
* and provides a way for customizing the spacer width.
|
|
2116
|
+
*/
|
|
2117
|
+
class PagerSpacerComponent {
|
|
2118
|
+
hostClass = true;
|
|
2119
|
+
get sizedClass() {
|
|
2120
|
+
return isPresent(this.width);
|
|
2121
|
+
}
|
|
2122
|
+
get flexBasisStyle() {
|
|
2123
|
+
return this.width;
|
|
2124
|
+
}
|
|
2125
|
+
/**
|
|
2126
|
+
* Specifies the width of the PagerSpacer.
|
|
2127
|
+
* Accepts the [string values of the CSS `flex-basis` property](https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis).
|
|
2128
|
+
*
|
|
2129
|
+
* If not set, the PagerSpacer will take all the available space.
|
|
2130
|
+
*/
|
|
2131
|
+
width;
|
|
2132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2133
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerSpacerComponent, isStandalone: true, selector: "kendo-pager-spacer", inputs: { width: "width" }, host: { properties: { "class.k-spacer": "this.hostClass", "class.k-spacer-sized": "this.sizedClass", "style.flexBasis": "this.flexBasisStyle" } }, ngImport: i0, template: ``, isInline: true });
|
|
2134
|
+
}
|
|
2135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerSpacerComponent, decorators: [{
|
|
2136
|
+
type: Component,
|
|
2137
|
+
args: [{
|
|
2138
|
+
selector: 'kendo-pager-spacer',
|
|
2139
|
+
template: ``,
|
|
2140
|
+
standalone: true
|
|
2141
|
+
}]
|
|
2142
|
+
}], propDecorators: { hostClass: [{
|
|
2143
|
+
type: HostBinding,
|
|
2144
|
+
args: ['class.k-spacer']
|
|
2145
|
+
}], sizedClass: [{
|
|
2146
|
+
type: HostBinding,
|
|
2147
|
+
args: ['class.k-spacer-sized']
|
|
2148
|
+
}], flexBasisStyle: [{
|
|
2149
|
+
type: HostBinding,
|
|
2150
|
+
args: ['style.flexBasis']
|
|
2151
|
+
}], width: [{
|
|
2152
|
+
type: Input
|
|
2153
|
+
}] } });
|
|
2154
|
+
|
|
1940
2155
|
/**
|
|
1941
2156
|
* Utility array that contains all `@progress/kendo-angular-pager` related components and directives
|
|
1942
2157
|
*/
|
|
@@ -1950,23 +2165,43 @@ const KENDO_PAGER = [
|
|
|
1950
2165
|
PagerPageSizesComponent,
|
|
1951
2166
|
PagerPrevButtonsComponent,
|
|
1952
2167
|
PagerTemplateDirective,
|
|
1953
|
-
PagerComponent
|
|
2168
|
+
PagerComponent,
|
|
2169
|
+
PagerSpacerComponent
|
|
1954
2170
|
];
|
|
1955
2171
|
|
|
1956
|
-
//
|
|
2172
|
+
//IMPORTANT: NgModule export kept for backwards compatibility
|
|
1957
2173
|
/**
|
|
1958
|
-
*
|
|
2174
|
+
* Represents the [NgModule](link:site.data.urls.angular['ngmoduleapi'])
|
|
2175
|
+
* definition for the Pager component. Imports `PagerModule` into the
|
|
2176
|
+
* [root module](link:site.data.urls.angular['ngmodules']#angular-modularity)
|
|
2177
|
+
* of your application or into any other sub-module that will use the Pager component.
|
|
2178
|
+
*
|
|
2179
|
+
* @example
|
|
2180
|
+
* ```ts-no-run
|
|
2181
|
+
* import { NgModule } from '@angular/core';
|
|
2182
|
+
* import { BrowserModule } from '@angular/platform-browser';
|
|
2183
|
+
* import { PagerModule } from '@progress/kendo-angular-pager';
|
|
2184
|
+
* import { AppComponent } from './app.component';
|
|
2185
|
+
*
|
|
2186
|
+
* _@NgModule({
|
|
2187
|
+
* bootstrap: [AppComponent],
|
|
2188
|
+
* declarations: [AppComponent],
|
|
2189
|
+
* imports: [BrowserModule, PagerModule]
|
|
2190
|
+
* })
|
|
2191
|
+
* export class AppModule {
|
|
2192
|
+
* }
|
|
2193
|
+
* ```
|
|
1959
2194
|
*/
|
|
1960
2195
|
class PagerModule {
|
|
2196
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2197
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PagerModule, imports: [CustomMessagesComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PagerComponent, PagerSpacerComponent], exports: [CustomMessagesComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PagerComponent, PagerSpacerComponent] });
|
|
2198
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerModule, providers: [
|
|
2199
|
+
IconsService,
|
|
2200
|
+
PopupService,
|
|
2201
|
+
ResizeBatchService
|
|
2202
|
+
], imports: [PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerComponent] });
|
|
1961
2203
|
}
|
|
1962
|
-
|
|
1963
|
-
PagerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PagerModule, imports: [CustomMessagesComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PagerComponent], exports: [CustomMessagesComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective, PagerComponent] });
|
|
1964
|
-
PagerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagerModule, providers: [
|
|
1965
|
-
IconsService,
|
|
1966
|
-
PopupService,
|
|
1967
|
-
ResizeBatchService
|
|
1968
|
-
], imports: [CustomMessagesComponent, PagerInfoComponent, PagerInputComponent, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerComponent] });
|
|
1969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PagerModule, decorators: [{
|
|
2204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerModule, decorators: [{
|
|
1970
2205
|
type: NgModule,
|
|
1971
2206
|
args: [{
|
|
1972
2207
|
exports: [...KENDO_PAGER],
|
|
@@ -1983,5 +2218,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1983
2218
|
* Generated bundle index. Do not edit.
|
|
1984
2219
|
*/
|
|
1985
2220
|
|
|
1986
|
-
export { CustomMessagesComponent, KENDO_PAGER, LocalizedMessagesDirective, PageSizeChangeEvent, PagerComponent, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerModule, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerTemplateDirective };
|
|
2221
|
+
export { CustomMessagesComponent, KENDO_PAGER, LocalizedMessagesDirective, PageSizeChangeEvent, PagerComponent, PagerContextService, PagerFocusableDirective, PagerInfoComponent, PagerInputComponent, PagerModule, PagerNavigationService, PagerNextButtonsComponent, PagerNumericButtonsComponent, PagerPageSizesComponent, PagerPrevButtonsComponent, PagerSpacerComponent, PagerTemplateDirective };
|
|
1987
2222
|
|