@progress/kendo-angular-pager 21.4.1-develop.1 → 22.0.0-develop.1

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.
Files changed (35) hide show
  1. package/fesm2022/progress-kendo-angular-pager.mjs +49 -49
  2. package/package.json +12 -20
  3. package/pager/localization/messages.d.ts +1 -1
  4. package/pager/pager-element.component.d.ts +1 -1
  5. package/schematics/ngAdd/index.js +6 -6
  6. package/esm2022/directives.mjs +0 -45
  7. package/esm2022/index.mjs +0 -21
  8. package/esm2022/package-metadata.mjs +0 -16
  9. package/esm2022/pager/change-event-args.interface.mjs +0 -5
  10. package/esm2022/pager/common/pager-classes.mjs +0 -5
  11. package/esm2022/pager/common/pager-size.mjs +0 -5
  12. package/esm2022/pager/common/pager-type.mjs +0 -5
  13. package/esm2022/pager/common/responsive-element.mjs +0 -5
  14. package/esm2022/pager/focusable.directive.mjs +0 -68
  15. package/esm2022/pager/localization/custom-messages.component.mjs +0 -55
  16. package/esm2022/pager/localization/localized-messages.directive.mjs +0 -39
  17. package/esm2022/pager/localization/messages.mjs +0 -100
  18. package/esm2022/pager/navigation.service.mjs +0 -39
  19. package/esm2022/pager/pager-context.service.mjs +0 -46
  20. package/esm2022/pager/pager-element.component.mjs +0 -113
  21. package/esm2022/pager/pager-info.component.mjs +0 -79
  22. package/esm2022/pager/pager-input.component.mjs +0 -177
  23. package/esm2022/pager/pager-next-buttons.component.mjs +0 -136
  24. package/esm2022/pager/pager-numeric-buttons.component.mjs +0 -257
  25. package/esm2022/pager/pager-page-sizes.component.mjs +0 -197
  26. package/esm2022/pager/pager-prev-buttons.component.mjs +0 -140
  27. package/esm2022/pager/pager-template.directive.mjs +0 -45
  28. package/esm2022/pager/pager.component.mjs +0 -1104
  29. package/esm2022/pager/pager.module.mjs +0 -65
  30. package/esm2022/pager/pagesize-item.interface.mjs +0 -5
  31. package/esm2022/pager/pagesizechange-event.mjs +0 -24
  32. package/esm2022/pager/preventable-event.mjs +0 -25
  33. package/esm2022/pager/spacer.component.mjs +0 -70
  34. package/esm2022/progress-kendo-angular-pager.mjs +0 -8
  35. package/esm2022/util.mjs +0 -124
@@ -1,136 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- // eslint-disable no-access-missing-member
6
- import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input } from '@angular/core';
7
- import { PagerContextService } from "./pager-context.service";
8
- import { PagerElementComponent } from './pager-element.component';
9
- import { LocalizationService } from '@progress/kendo-angular-l10n';
10
- import { DEFAULT_SIZE } from '../util';
11
- import { PagerFocusableDirective } from './focusable.directive';
12
- import { ButtonComponent } from '@progress/kendo-angular-buttons';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@progress/kendo-angular-l10n";
15
- import * as i2 from "./pager-context.service";
16
- /**
17
- * Represents the Kendo UI Pager Next Buttons component for Angular. Displays buttons for navigating to the next and to the last page ([see example]({% slug pager_settings %})).
18
- *
19
- * @example
20
- * ```html
21
- * <kendo-pager [skip]="skip" [pageSize]="pageSize" [total]="total">
22
- * <ng-template kendoPagerTemplate>
23
- * <kendo-pager-next-buttons></kendo-pager-next-buttons>
24
- * </ng-template>
25
- * </kendo-pager>
26
- * ```
27
- */
28
- export class PagerNextButtonsComponent extends PagerElementComponent {
29
- /**
30
- * @hidden
31
- *
32
- * @readonly
33
- * @type {boolean}
34
- * @memberOf PagerNextButtonsComponent
35
- */
36
- get disabled() {
37
- return this.currentPage === this.totalPages || !this.total;
38
- }
39
- /**
40
- * Specifies the padding of the navigation buttons.
41
- *
42
- * @default 'medium'
43
- */
44
- size = DEFAULT_SIZE;
45
- constructor(localization, pagerContext, cd) {
46
- super(localization, pagerContext, cd);
47
- }
48
- /**
49
- * @hidden
50
- */
51
- onClick(isLast = false) {
52
- if (this.disabled) {
53
- return false;
54
- }
55
- const targetPage = isLast ? this.totalPages - 1 : this.currentPage;
56
- return this.currentPage !== this.totalPages ? this.changePage(targetPage) : false;
57
- }
58
- onChanges({ total, skip, pageSize }) {
59
- this.total = total;
60
- this.skip = skip;
61
- this.pageSize = pageSize;
62
- this.cd.markForCheck();
63
- }
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PagerNextButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: i2.PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
65
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: PagerNextButtonsComponent, isStandalone: true, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
66
- <button kendoButton kendoPagerFocusable
67
- type="button"
68
- [size]="size"
69
- [icon]="nextArrowIcons[0]"
70
- [svgIcon]="nextArrowSVGIcons[0]"
71
- fillMode="flat"
72
- rounded="none"
73
- class="k-pager-nav"
74
- [attr.aria-disabled]="disabled"
75
- [class.k-disabled]="disabled"
76
- [title]="textFor('nextPage')"
77
- [attr.aria-label]="textFor('nextPage')"
78
- (click)="onClick()">
79
- </button>
80
- <button kendoButton kendoPagerFocusable
81
- type="button"
82
- [size]="size"
83
- [icon]="nextArrowIcons[1]"
84
- [svgIcon]="nextArrowSVGIcons[1]"
85
- fillMode="flat"
86
- rounded="none"
87
- class="k-pager-nav k-pager-last"
88
- [attr.aria-disabled]="disabled"
89
- [class.k-disabled]="disabled"
90
- [title]="textFor('lastPage')"
91
- [attr.aria-label]="textFor('lastPage')"
92
- (click)="onClick(true)">
93
- </button>
94
- `, 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 });
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PagerNextButtonsComponent, decorators: [{
97
- type: Component,
98
- args: [{
99
- changeDetection: ChangeDetectionStrategy.OnPush,
100
- selector: 'kendo-datapager-next-buttons, kendo-pager-next-buttons',
101
- template: `
102
- <button kendoButton kendoPagerFocusable
103
- type="button"
104
- [size]="size"
105
- [icon]="nextArrowIcons[0]"
106
- [svgIcon]="nextArrowSVGIcons[0]"
107
- fillMode="flat"
108
- rounded="none"
109
- class="k-pager-nav"
110
- [attr.aria-disabled]="disabled"
111
- [class.k-disabled]="disabled"
112
- [title]="textFor('nextPage')"
113
- [attr.aria-label]="textFor('nextPage')"
114
- (click)="onClick()">
115
- </button>
116
- <button kendoButton kendoPagerFocusable
117
- type="button"
118
- [size]="size"
119
- [icon]="nextArrowIcons[1]"
120
- [svgIcon]="nextArrowSVGIcons[1]"
121
- fillMode="flat"
122
- rounded="none"
123
- class="k-pager-nav k-pager-last"
124
- [attr.aria-disabled]="disabled"
125
- [class.k-disabled]="disabled"
126
- [title]="textFor('lastPage')"
127
- [attr.aria-label]="textFor('lastPage')"
128
- (click)="onClick(true)">
129
- </button>
130
- `,
131
- standalone: true,
132
- imports: [ButtonComponent, PagerFocusableDirective]
133
- }]
134
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.PagerContextService }, { type: i0.ChangeDetectorRef }], propDecorators: { size: [{
135
- type: Input
136
- }] } });
@@ -1,257 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, Renderer2, ElementRef } from '@angular/core';
6
- import { LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { PagerContextService } from './pager-context.service';
8
- import { PagerElementComponent } from './pager-element.component';
9
- import { DEFAULT_SIZE, getStylingClasses } from '../util';
10
- import { ButtonComponent } from '@progress/kendo-angular-buttons';
11
- import { PagerFocusableDirective } from './focusable.directive';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@progress/kendo-angular-l10n";
14
- import * as i2 from "./pager-context.service";
15
- /**
16
- * Represents the Kendo UI Pager Numeric Buttons component for Angular. Displays numeric buttons to enable navigation between the pages.
17
- *
18
- * @example
19
- * ```html
20
- * <kendo-pager [skip]="skip" [pageSize]="pageSize" [total]="total">
21
- * <ng-template kendoPagerTemplate>
22
- * <kendo-pager-numeric-buttons [buttonCount]="5"></kendo-pager-numeric-buttons>
23
- * </ng-template>
24
- * </kendo-pager>
25
- * ```
26
- */
27
- export class PagerNumericButtonsComponent extends PagerElementComponent {
28
- pagerContext;
29
- renderer;
30
- selectElement;
31
- numbersElement;
32
- /**
33
- * Specifies the count of the displayed buttons.
34
- *
35
- * @type {number}
36
- * @memberOf PagerNumericButtonsComponent
37
- */
38
- buttonCount;
39
- /**
40
- * Specifies the padding of the numeric buttons.
41
- *
42
- * @default 'medium'
43
- */
44
- set size(size) {
45
- const newSize = size ? size : DEFAULT_SIZE;
46
- this.handleClasses(newSize, 'size');
47
- this._size = newSize;
48
- }
49
- get size() {
50
- return this._size;
51
- }
52
- /**
53
- * @hidden
54
- *
55
- * @readonly
56
- * @type {number[]}
57
- * @memberOf PagerNumericButtonsComponent
58
- */
59
- get buttons() {
60
- const result = [];
61
- for (let idx = this.start; idx <= this.end; idx++) {
62
- result.push(idx);
63
- }
64
- return result;
65
- }
66
- /**
67
- * @hidden
68
- */
69
- get end() {
70
- return Math.min((this.start + this.buttonCount) - 1, this.totalPages);
71
- }
72
- /**
73
- * @hidden
74
- */
75
- get start() {
76
- const page = this.currentPage;
77
- const buttonCount = this.buttonCount;
78
- if (page > buttonCount) {
79
- const reminder = (page % buttonCount);
80
- return (reminder === 0) ? (page - buttonCount) + 1 : (page - reminder) + 1;
81
- }
82
- return 1;
83
- }
84
- constructor(localization, cd, pagerContext, renderer) {
85
- super(localization, pagerContext, cd);
86
- this.pagerContext = pagerContext;
87
- this.renderer = renderer;
88
- }
89
- _size = DEFAULT_SIZE;
90
- ngAfterViewInit() {
91
- this.handleClasses(this.size, 'size');
92
- }
93
- /**
94
- * @hidden
95
- */
96
- pageLabel(num) {
97
- const pageText = this.textFor('page');
98
- if (pageText) {
99
- return pageText + ' ' + num;
100
- }
101
- return num.toString();
102
- }
103
- /**
104
- * @hidden
105
- */
106
- onSelectChange(e) {
107
- const target = e.target;
108
- const valueAsNumber = Number(target.value);
109
- if (!Number.isNaN(valueAsNumber)) {
110
- this.changePage(valueAsNumber - 1);
111
- }
112
- else {
113
- if (target.value === 'previousButtons') {
114
- this.changePage(this.start - 2);
115
- }
116
- else {
117
- this.changePage(this.end);
118
- }
119
- }
120
- }
121
- onChanges({ total, skip, pageSize }) {
122
- this.total = total;
123
- this.skip = skip;
124
- this.pageSize = pageSize;
125
- this.cd.markForCheck();
126
- }
127
- get pageChooserLabel() {
128
- return this.textFor('selectPage');
129
- }
130
- handleClasses(value, input) {
131
- const elem = this.selectElement?.nativeElement;
132
- const classes = getStylingClasses('picker', input, this[input], value);
133
- if (!elem) {
134
- return;
135
- }
136
- if (classes.toRemove) {
137
- this.renderer.removeClass(elem, classes.toRemove);
138
- }
139
- if (classes.toAdd) {
140
- this.renderer.addClass(elem, classes.toAdd);
141
- }
142
- }
143
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.PagerContextService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
144
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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: `
145
- <div class="k-pager-numbers" #numbers>
146
- @if (start > 1) {
147
- <button
148
- type="button"
149
- kendoPagerFocusable
150
- kendoButton
151
- [size]="size"
152
- fillMode="flat"
153
- themeColor="primary"
154
- rounded="none"
155
- [attr.aria-label]="pageLabel(start - 1)"
156
- [attr.title]="pageLabel(start - 1)"
157
- (click)="changePage(start - 2)">...</button>
158
- }
159
- @for (num of buttons; track num) {
160
- <button
161
- type="button"
162
- kendoPagerFocusable
163
- kendoButton
164
- [size]="size"
165
- fillMode="flat"
166
- themeColor="primary"
167
- rounded="none"
168
- [attr.aria-label]="pageLabel(num)"
169
- [attr.title]="pageLabel(num)"
170
- [attr.aria-current]="currentPage === num ? 'page' : undefined"
171
- [selected]="currentPage === num"
172
- (click)="currentPage === num ? false : changePage(num - 1)">
173
- {{num}}
174
- </button>
175
- }
176
- @if (end < totalPages) {
177
- <button
178
- type="button"
179
- kendoPagerFocusable
180
- kendoButton
181
- [size]="size"
182
- fillMode="flat"
183
- themeColor="primary"
184
- rounded="none"
185
- [attr.aria-label]="pageLabel(end + 1)"
186
- [attr.title]="pageLabel(end + 1)"
187
- (click)="changePage(end)">...</button>
188
- }
189
- </div>
190
- `, isInline: true, dependencies: [{ kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { 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 });
191
- }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PagerNumericButtonsComponent, decorators: [{
193
- type: Component,
194
- args: [{
195
- changeDetection: ChangeDetectionStrategy.OnPush,
196
- selector: 'kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons',
197
- template: `
198
- <div class="k-pager-numbers" #numbers>
199
- @if (start > 1) {
200
- <button
201
- type="button"
202
- kendoPagerFocusable
203
- kendoButton
204
- [size]="size"
205
- fillMode="flat"
206
- themeColor="primary"
207
- rounded="none"
208
- [attr.aria-label]="pageLabel(start - 1)"
209
- [attr.title]="pageLabel(start - 1)"
210
- (click)="changePage(start - 2)">...</button>
211
- }
212
- @for (num of buttons; track num) {
213
- <button
214
- type="button"
215
- kendoPagerFocusable
216
- kendoButton
217
- [size]="size"
218
- fillMode="flat"
219
- themeColor="primary"
220
- rounded="none"
221
- [attr.aria-label]="pageLabel(num)"
222
- [attr.title]="pageLabel(num)"
223
- [attr.aria-current]="currentPage === num ? 'page' : undefined"
224
- [selected]="currentPage === num"
225
- (click)="currentPage === num ? false : changePage(num - 1)">
226
- {{num}}
227
- </button>
228
- }
229
- @if (end < totalPages) {
230
- <button
231
- type="button"
232
- kendoPagerFocusable
233
- kendoButton
234
- [size]="size"
235
- fillMode="flat"
236
- themeColor="primary"
237
- rounded="none"
238
- [attr.aria-label]="pageLabel(end + 1)"
239
- [attr.title]="pageLabel(end + 1)"
240
- (click)="changePage(end)">...</button>
241
- }
242
- </div>
243
- `,
244
- standalone: true,
245
- imports: [PagerFocusableDirective, ButtonComponent]
246
- }]
247
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }, { type: i0.Renderer2 }], propDecorators: { selectElement: [{
248
- type: ViewChild,
249
- args: ['select', { read: ElementRef }]
250
- }], numbersElement: [{
251
- type: ViewChild,
252
- args: ['numbers', { read: ElementRef }]
253
- }], buttonCount: [{
254
- type: Input
255
- }], size: [{
256
- type: Input
257
- }] } });
@@ -1,197 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, ChangeDetectorRef, ChangeDetectionStrategy, HostBinding, Input, ViewChild, ElementRef, NgZone } from '@angular/core';
6
- import { PagerElementComponent } from './pager-element.component';
7
- import { LocalizationService } from '@progress/kendo-angular-l10n';
8
- import { PagerContextService } from "./pager-context.service";
9
- import { PageSizeChangeEvent } from './pagesizechange-event';
10
- import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
11
- import { Keys } from '@progress/kendo-angular-common';
12
- import { DEFAULT_PAGE_SIZE_VALUES, DEFAULT_SIZE } from '../util';
13
- import { PagerFocusableDirective } from './focusable.directive';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@progress/kendo-angular-l10n";
16
- import * as i2 from "./pager-context.service";
17
- /**
18
- * Represents the Kendo UI Pager Page Sizes component for Angular. Displays a drop-down list for the page size selection ([see example]({% slug pager_settings %})).
19
- *
20
- * @example
21
- * ```html
22
- * <kendo-pager [skip]="skip" [pageSize]="pageSize" [total]="total">
23
- * <ng-template kendoPagerTemplate>
24
- * <kendo-pager-page-sizes [pageSizes]="[10, 20, 50]"></kendo-pager-page-sizes>
25
- * </ng-template>
26
- * </kendo-pager>
27
- * ```
28
- */
29
- export class PagerPageSizesComponent extends PagerElementComponent {
30
- pagerContext;
31
- element;
32
- ngZone;
33
- dropDownList;
34
- _showItemsText = true;
35
- /**
36
- * Controls the visibility of the page text label.
37
- * @hidden
38
- */
39
- get showItemsText() {
40
- return this._showItemsText;
41
- }
42
- set showItemsText(value) {
43
- this._showItemsText = value;
44
- this.cd.markForCheck();
45
- }
46
- /**
47
- * Specifies the page sizes collection. You can include numbers and [`PageSizeItem`]({% slug api_pager_pagesizeitem %}) objects.
48
- *
49
- * @example
50
- * ```html
51
- * <kendo-pager [skip]="0" [pageSize]="10" [total]="100">
52
- * <ng-template kendoPagerTemplate>
53
- * <kendo-pager-page-sizes [pageSizes]="[5, 10, 20, { text: 'All', value: 'all' }]"></kendo-pager-page-sizes>
54
- * </ng-template>
55
- * </kendo-pager>
56
- * ```
57
- */
58
- set pageSizes(pageSizes) {
59
- let normalizedItems = [];
60
- if (Array.isArray(pageSizes)) {
61
- pageSizes.forEach(item => {
62
- if (typeof item === 'number') {
63
- normalizedItems.push({
64
- text: item.toString(),
65
- value: item
66
- });
67
- }
68
- else {
69
- normalizedItems.push(item);
70
- }
71
- });
72
- }
73
- else {
74
- normalizedItems = DEFAULT_PAGE_SIZE_VALUES;
75
- }
76
- if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
77
- normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
78
- }
79
- this._pageSizes = normalizedItems;
80
- }
81
- /**
82
- * Specifies the padding of the DropDownList component.
83
- *
84
- * @default 'medium'
85
- */
86
- size = DEFAULT_SIZE;
87
- /**
88
- * Specifies the adaptive mode of the internal `DropDownList` component.
89
- *
90
- * @default 'auto'
91
- */
92
- adaptiveMode = 'auto';
93
- /**
94
- * @hidden
95
- *
96
- * @readonly
97
- */
98
- get classes() {
99
- return true;
100
- }
101
- _pageSizes = [];
102
- constructor(localization, cd, pagerContext, element, ngZone) {
103
- super(localization, pagerContext, cd);
104
- this.pagerContext = pagerContext;
105
- this.element = element;
106
- this.ngZone = ngZone;
107
- }
108
- ngAfterViewInit() {
109
- this.ngZone.runOutsideAngular(() => {
110
- this.element.nativeElement.addEventListener('keydown', this.keyDownHandler.bind(this), true);
111
- });
112
- }
113
- ngOnDestroy() {
114
- this.element.nativeElement.removeEventListener('keydown', this.keyDownHandler);
115
- }
116
- /**
117
- * @hidden
118
- */
119
- pageSizeChange(value, dropdownlist) {
120
- const event = new PageSizeChangeEvent(value);
121
- this.pagerContext.changePageSize(event);
122
- if (event.isDefaultPrevented()) {
123
- dropdownlist.writeValue(this.pageSize);
124
- }
125
- }
126
- onChanges({ total, skip, pageSize, isAllSelected }) {
127
- this.total = total;
128
- this.skip = skip;
129
- const normalizedPageSize = typeof pageSize === 'number' ? pageSize : this.total;
130
- this.pageSize = isAllSelected ? 'all' : normalizedPageSize;
131
- this.cd.markForCheck();
132
- }
133
- keyDownHandler(ev) {
134
- if (ev.code === Keys.Escape && this.dropDownList.isOpen) {
135
- ev.stopPropagation();
136
- this.dropDownList.toggle(false);
137
- }
138
- }
139
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.PagerContextService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
140
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PagerPageSizesComponent, isStandalone: true, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: { showItemsText: "showItemsText", pageSizes: "pageSizes", size: "size", adaptiveMode: "adaptiveMode" }, host: { properties: { "class.k-pager-sizes": "this.classes" } }, viewQueries: [{ propertyName: "dropDownList", first: true, predicate: ["dropdownlist"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
141
- <kendo-dropdownlist kendoPagerFocusable
142
- #dropdownlist
143
- [size]="size"
144
- [data]="_pageSizes"
145
- textField="text"
146
- valueField="value"
147
- [valuePrimitive]="true"
148
- [value]="pageSize"
149
- (valueChange)="pageSizeChange($event, dropdownlist)"
150
- [adaptiveMode]="adaptiveMode"
151
- [attr.aria-label]="textFor('itemsPerPage')">
152
- </kendo-dropdownlist>
153
- @if (showItemsText) {
154
- {{ textFor('itemsPerPage') }}
155
- }
156
- `, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "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 });
157
- }
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
159
- type: Component,
160
- args: [{
161
- changeDetection: ChangeDetectionStrategy.OnPush,
162
- selector: 'kendo-datapager-page-sizes, kendo-pager-page-sizes',
163
- template: `
164
- <kendo-dropdownlist kendoPagerFocusable
165
- #dropdownlist
166
- [size]="size"
167
- [data]="_pageSizes"
168
- textField="text"
169
- valueField="value"
170
- [valuePrimitive]="true"
171
- [value]="pageSize"
172
- (valueChange)="pageSizeChange($event, dropdownlist)"
173
- [adaptiveMode]="adaptiveMode"
174
- [attr.aria-label]="textFor('itemsPerPage')">
175
- </kendo-dropdownlist>
176
- @if (showItemsText) {
177
- {{ textFor('itemsPerPage') }}
178
- }
179
- `,
180
- standalone: true,
181
- imports: [DropDownListComponent, PagerFocusableDirective]
182
- }]
183
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.PagerContextService }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { dropDownList: [{
184
- type: ViewChild,
185
- args: ['dropdownlist', { static: true }]
186
- }], showItemsText: [{
187
- type: Input
188
- }], pageSizes: [{
189
- type: Input
190
- }], size: [{
191
- type: Input
192
- }], adaptiveMode: [{
193
- type: Input
194
- }], classes: [{
195
- type: HostBinding,
196
- args: ["class.k-pager-sizes"]
197
- }] } });