@progress/kendo-angular-pager 25.1.0-develop.2 → 25.1.0-develop.21

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.
@@ -3,18 +3,17 @@
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 { Input, Directive, forwardRef, Component, ChangeDetectionStrategy, HostBinding, ViewChild, Optional, ElementRef, EventEmitter, inject, HostListener, Output, ContentChildren, SkipSelf, NgModule } from '@angular/core';
6
+ import { signal, Input, Directive, forwardRef, Component, ChangeDetectionStrategy, HostBinding, ViewChild, Optional, ElementRef, EventEmitter, effect, untracked, inject, afterNextRender, HostListener, Output, ContentChildren, SkipSelf, 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 { isVisible, isDocumentAvailable, isFocusable, Keys, EventsOutsideAngularDirective, anyChanged, isChanged, replaceMessagePlaceholder, normalizeKeys, ResizeSensorComponent, provideComponentName, isPresent, ResizeBatchService } from '@progress/kendo-angular-common';
11
+ import { isVisible, isDocumentAvailable, isFocusable, Keys, EventsOutsideAngularDirective, replaceMessagePlaceholder, normalizeKeys, ResizeSensorComponent, provideComponentName, isPresent, ResizeBatchService } from '@progress/kendo-angular-common';
12
12
  import { ButtonComponent } from '@progress/kendo-angular-buttons';
13
13
  import { DropDownListComponent } from '@progress/kendo-angular-dropdowns';
14
14
  import { NumericTextBoxComponent } from '@progress/kendo-angular-inputs';
15
15
  import { validatePackage } from '@progress/kendo-licensing';
16
16
  import { NgTemplateOutlet, NgStyle } from '@angular/common';
17
- import { take } from 'rxjs/operators';
18
17
  import { IconsService } from '@progress/kendo-angular-icons';
19
18
  import { PopupService } from '@progress/kendo-angular-popup';
20
19
 
@@ -74,51 +73,123 @@ class Messages extends ComponentMessages {
74
73
  * and total number of pages. The `{currentPage}` and `{totalPages}` placeholders will be replaced
75
74
  * internally with the respective actual values.
76
75
  */
77
- ariaLabel;
76
+ set ariaLabel(value) {
77
+ this._ariaLabel.set(value);
78
+ }
79
+ get ariaLabel() {
80
+ return this._ariaLabel();
81
+ }
78
82
  /**
79
83
  * The label for the **First page** button.
80
84
  */
81
- firstPage;
85
+ set firstPage(value) {
86
+ this._firstPage.set(value);
87
+ }
88
+ get firstPage() {
89
+ return this._firstPage();
90
+ }
82
91
  /**
83
92
  * The label for the **Last page** button.
84
93
  */
85
- lastPage;
94
+ set lastPage(value) {
95
+ this._lastPage.set(value);
96
+ }
97
+ get lastPage() {
98
+ return this._lastPage();
99
+ }
86
100
  /**
87
101
  * The label for the **Previous page** button.
88
102
  */
89
- previousPage;
103
+ set previousPage(value) {
104
+ this._previousPage.set(value);
105
+ }
106
+ get previousPage() {
107
+ return this._previousPage();
108
+ }
90
109
  /**
91
110
  * The label for the **Next page** button.
92
111
  */
93
- nextPage;
112
+ set nextPage(value) {
113
+ this._nextPage.set(value);
114
+ }
115
+ get nextPage() {
116
+ return this._nextPage();
117
+ }
94
118
  /**
95
119
  * The label displayed before the pager input.
96
120
  */
97
- page;
121
+ set page(value) {
122
+ this._page.set(value);
123
+ }
124
+ get page() {
125
+ return this._page();
126
+ }
98
127
  /**
99
128
  * The title attribute of the page number input element.
100
129
  */
101
- pageNumberInputTitle;
130
+ set pageNumberInputTitle(value) {
131
+ this._pageNumberInputTitle.set(value);
132
+ }
133
+ get pageNumberInputTitle() {
134
+ return this._pageNumberInputTitle();
135
+ }
102
136
  /**
103
137
  * The label displayed after the page-size selector.
104
138
  */
105
- itemsPerPage;
139
+ set itemsPerPage(value) {
140
+ this._itemsPerPage.set(value);
141
+ }
142
+ get itemsPerPage() {
143
+ return this._itemsPerPage();
144
+ }
106
145
  /**
107
146
  * The label before the total-page number.
108
147
  */
109
- of;
148
+ set of(value) {
149
+ this._of.set(value);
150
+ }
151
+ get of() {
152
+ return this._of();
153
+ }
110
154
  /**
111
155
  * The label after the total-page number.
112
156
  */
113
- items;
157
+ set items(value) {
158
+ this._items.set(value);
159
+ }
160
+ get items() {
161
+ return this._items();
162
+ }
114
163
  /**
115
164
  * The text of the title and aria-label attributes applied to the page chooser.
116
165
  */
117
- selectPage;
166
+ set selectPage(value) {
167
+ this._selectPage.set(value);
168
+ }
169
+ get selectPage() {
170
+ return this._selectPage();
171
+ }
118
172
  /**
119
173
  * The text of the aria-label attribute applied to the input element for entering the page number."
120
174
  */
121
- inputLabel;
175
+ set inputLabel(value) {
176
+ this._inputLabel.set(value);
177
+ }
178
+ get inputLabel() {
179
+ return this._inputLabel();
180
+ }
181
+ _ariaLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_ariaLabel" }] : []));
182
+ _firstPage = signal(undefined, ...(ngDevMode ? [{ debugName: "_firstPage" }] : []));
183
+ _lastPage = signal(undefined, ...(ngDevMode ? [{ debugName: "_lastPage" }] : []));
184
+ _previousPage = signal(undefined, ...(ngDevMode ? [{ debugName: "_previousPage" }] : []));
185
+ _nextPage = signal(undefined, ...(ngDevMode ? [{ debugName: "_nextPage" }] : []));
186
+ _page = signal(undefined, ...(ngDevMode ? [{ debugName: "_page" }] : []));
187
+ _pageNumberInputTitle = signal(undefined, ...(ngDevMode ? [{ debugName: "_pageNumberInputTitle" }] : []));
188
+ _itemsPerPage = signal(undefined, ...(ngDevMode ? [{ debugName: "_itemsPerPage" }] : []));
189
+ _of = signal(undefined, ...(ngDevMode ? [{ debugName: "_of" }] : []));
190
+ _items = signal(undefined, ...(ngDevMode ? [{ debugName: "_items" }] : []));
191
+ _selectPage = signal(undefined, ...(ngDevMode ? [{ debugName: "_selectPage" }] : []));
192
+ _inputLabel = signal(undefined, ...(ngDevMode ? [{ debugName: "_inputLabel" }] : []));
122
193
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: Messages, deps: null, target: i0.ɵɵFactoryTarget.Directive });
123
194
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.27", type: Messages, isStandalone: true, 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 });
124
195
  }
@@ -280,9 +351,24 @@ class PagerElementComponent {
280
351
  localization;
281
352
  pagerContext;
282
353
  cd;
283
- total;
284
- skip;
285
- pageSize;
354
+ set total(v) {
355
+ this._total.set(v);
356
+ }
357
+ get total() {
358
+ return this._total();
359
+ }
360
+ set skip(v) {
361
+ this._skip.set(v);
362
+ }
363
+ get skip() {
364
+ return this._skip();
365
+ }
366
+ set pageSize(v) {
367
+ this._pageSize.set(v);
368
+ }
369
+ get pageSize() {
370
+ return this._pageSize();
371
+ }
286
372
  caretAltLeftIcon = caretAltLeftIcon;
287
373
  caretAltToLeftIcon = caretAltToLeftIcon;
288
374
  caretAltRightIcon = caretAltRightIcon;
@@ -308,6 +394,9 @@ class PagerElementComponent {
308
394
  return Math.ceil((this.total || 0) / this.pageSize);
309
395
  }
310
396
  subscriptions;
397
+ _total = signal(undefined, ...(ngDevMode ? [{ debugName: "_total" }] : []));
398
+ _skip = signal(undefined, ...(ngDevMode ? [{ debugName: "_skip" }] : []));
399
+ _pageSize = signal(undefined, ...(ngDevMode ? [{ debugName: "_pageSize" }] : []));
311
400
  constructor(localization, pagerContext, cd) {
312
401
  this.localization = localization;
313
402
  this.pagerContext = pagerContext;
@@ -609,7 +698,13 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
609
698
  /**
610
699
  * Specifies the padding of the navigation buttons. The default value is set by the Kendo theme.
611
700
  */
612
- size;
701
+ set size(value) {
702
+ this._size.set(value);
703
+ }
704
+ get size() {
705
+ return this._size();
706
+ }
707
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
613
708
  /**
614
709
  * @hidden
615
710
  *
@@ -634,7 +729,6 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
634
729
  this.total = total;
635
730
  this.skip = skip;
636
731
  this.pageSize = pageSize;
637
- this.cd.markForCheck();
638
732
  }
639
733
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
640
734
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: PagerPrevButtonsComponent, isStandalone: true, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
@@ -727,17 +821,15 @@ class PagerPageSizesComponent extends PagerElementComponent {
727
821
  element;
728
822
  ngZone;
729
823
  dropDownList;
730
- _showItemsText = true;
731
824
  /**
732
825
  * Controls the visibility of the page text label.
733
826
  * @hidden
734
827
  */
735
828
  get showItemsText() {
736
- return this._showItemsText;
829
+ return this._showItemsText();
737
830
  }
738
831
  set showItemsText(value) {
739
- this._showItemsText = value;
740
- this.cd.markForCheck();
832
+ this._showItemsText.set(value);
741
833
  }
742
834
  /**
743
835
  * Specifies the page sizes collection. You can include numbers and [`PageSizeItem`](https://www.telerik.com/kendo-angular-ui/components/pager/api/pagesizeitem) objects.
@@ -777,13 +869,23 @@ class PagerPageSizesComponent extends PagerElementComponent {
777
869
  /**
778
870
  * Specifies the padding of the DropDownList component. The default value is set by the Kendo theme.
779
871
  */
780
- size;
872
+ set size(value) {
873
+ this._size.set(value);
874
+ }
875
+ get size() {
876
+ return this._size();
877
+ }
781
878
  /**
782
879
  * Specifies the adaptive mode of the internal `DropDownList` component.
783
880
  *
784
881
  * @default 'none'
785
882
  */
786
- adaptiveMode = 'none';
883
+ set adaptiveMode(value) {
884
+ this._adaptiveMode.set(value);
885
+ }
886
+ get adaptiveMode() {
887
+ return this._adaptiveMode();
888
+ }
787
889
  /**
788
890
  * @hidden
789
891
  *
@@ -793,6 +895,9 @@ class PagerPageSizesComponent extends PagerElementComponent {
793
895
  return true;
794
896
  }
795
897
  _pageSizes = [];
898
+ _showItemsText = signal(true, ...(ngDevMode ? [{ debugName: "_showItemsText" }] : []));
899
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
900
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
796
901
  constructor(localization, cd, pagerContext, element, ngZone) {
797
902
  super(localization, pagerContext, cd);
798
903
  this.pagerContext = pagerContext;
@@ -822,7 +927,6 @@ class PagerPageSizesComponent extends PagerElementComponent {
822
927
  this.skip = skip;
823
928
  const normalizedPageSize = typeof pageSize === 'number' ? pageSize : this.total;
824
929
  this.pageSize = isAllSelected ? 'all' : normalizedPageSize;
825
- this.cd.markForCheck();
826
930
  }
827
931
  keyDownHandler(ev) {
828
932
  if (ev.code === Keys.Escape && this.dropDownList.isOpen) {
@@ -953,16 +1057,21 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
953
1057
  * @type {number}
954
1058
  * @memberOf PagerNumericButtonsComponent
955
1059
  */
956
- buttonCount;
1060
+ set buttonCount(value) {
1061
+ this._buttonCount.set(value);
1062
+ }
1063
+ get buttonCount() {
1064
+ return this._buttonCount();
1065
+ }
957
1066
  /**
958
1067
  * Specifies the padding of the numeric buttons. The default value is set by the Kendo theme.
959
1068
  */
960
1069
  set size(size) {
961
1070
  this.handleClasses(size, 'size');
962
- this._size = size;
1071
+ this._size.set(size);
963
1072
  }
964
1073
  get size() {
965
- return this._size;
1074
+ return this._size();
966
1075
  }
967
1076
  /**
968
1077
  * @hidden
@@ -1001,7 +1110,8 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
1001
1110
  this.pagerContext = pagerContext;
1002
1111
  this.renderer = renderer;
1003
1112
  }
1004
- _size;
1113
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
1114
+ _buttonCount = signal(undefined, ...(ngDevMode ? [{ debugName: "_buttonCount" }] : []));
1005
1115
  ngAfterViewInit() {
1006
1116
  this.handleClasses(this.size, 'size');
1007
1117
  }
@@ -1037,7 +1147,6 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
1037
1147
  this.total = total;
1038
1148
  this.skip = skip;
1039
1149
  this.pageSize = pageSize;
1040
- this.cd.markForCheck();
1041
1150
  }
1042
1151
  get pageChooserLabel() {
1043
1152
  return this.textFor('selectPage');
@@ -1070,7 +1179,7 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
1070
1179
  [attr.title]="pageLabel(start - 1)"
1071
1180
  (click)="changePage(start - 2)">...</button>
1072
1181
  }
1073
- @for (num of buttons; track num) {
1182
+ @for (num of buttons; track $index) {
1074
1183
  <button
1075
1184
  type="button"
1076
1185
  kendoPagerFocusable
@@ -1120,7 +1229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
1120
1229
  [attr.title]="pageLabel(start - 1)"
1121
1230
  (click)="changePage(start - 2)">...</button>
1122
1231
  }
1123
- @for (num of buttons; track num) {
1232
+ @for (num of buttons; track $index) {
1124
1233
  <button
1125
1234
  type="button"
1126
1235
  kendoPagerFocusable
@@ -1192,7 +1301,13 @@ class PagerNextButtonsComponent extends PagerElementComponent {
1192
1301
  /**
1193
1302
  * Specifies the padding of the navigation buttons. The default value is set by the Kendo theme.
1194
1303
  */
1195
- size;
1304
+ set size(value) {
1305
+ this._size.set(value);
1306
+ }
1307
+ get size() {
1308
+ return this._size();
1309
+ }
1310
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
1196
1311
  constructor(localization, pagerContext, cd) {
1197
1312
  super(localization, pagerContext, cd);
1198
1313
  }
@@ -1210,7 +1325,6 @@ class PagerNextButtonsComponent extends PagerElementComponent {
1210
1325
  this.total = total;
1211
1326
  this.skip = skip;
1212
1327
  this.pageSize = pageSize;
1213
- this.cd.markForCheck();
1214
1328
  }
1215
1329
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerNextButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1216
1330
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", type: PagerNextButtonsComponent, isStandalone: true, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: { size: "size" }, usesInheritance: true, ngImport: i0, template: `
@@ -1297,28 +1411,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
1297
1411
  class PagerInputComponent extends PagerElementComponent {
1298
1412
  pagerContext;
1299
1413
  zone;
1300
- renderer;
1301
1414
  numericInput;
1302
1415
  /**
1303
1416
  * Controls the visibility of the page text label.
1304
1417
  * @hidden
1305
1418
  */
1306
- showPageText = true;
1419
+ set showPageText(value) {
1420
+ this._showPageText.set(value);
1421
+ }
1422
+ get showPageText() {
1423
+ return this._showPageText();
1424
+ }
1307
1425
  /**
1308
1426
  * Specifies the padding of the internal `NumericTextBox` component. The default value is set by the Kendo theme.
1309
1427
  */
1310
- size;
1311
- constructor(localization, pagerContext, zone, cd, renderer) {
1428
+ set size(value) {
1429
+ this._size.set(value);
1430
+ }
1431
+ get size() {
1432
+ return this._size();
1433
+ }
1434
+ _showPageText = signal(true, ...(ngDevMode ? [{ debugName: "_showPageText" }] : []));
1435
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
1436
+ constructor(localization, pagerContext, zone, cd) {
1312
1437
  super(localization, pagerContext, cd);
1313
1438
  this.pagerContext = pagerContext;
1314
1439
  this.zone = zone;
1315
- this.renderer = renderer;
1316
1440
  }
1317
1441
  onChanges({ total, skip, pageSize }) {
1318
1442
  this.total = total;
1319
1443
  this.skip = skip;
1320
1444
  this.pageSize = pageSize;
1321
- this.cd.markForCheck();
1322
1445
  }
1323
1446
  /**
1324
1447
  * @hidden
@@ -1370,7 +1493,7 @@ class PagerInputComponent extends PagerElementComponent {
1370
1493
  get hasPages() {
1371
1494
  return this.totalPages !== 0;
1372
1495
  }
1373
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerInputComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
1496
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerInputComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1374
1497
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", type: PagerInputComponent, isStandalone: true, selector: "kendo-datapager-input, kendo-pager-input", inputs: { showPageText: "showPageText", size: "size" }, viewQueries: [{ propertyName: "numericInput", first: true, predicate: NumericTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
1375
1498
  <span class="k-pager-input">
1376
1499
  @if (showPageText) {
@@ -1397,11 +1520,12 @@ class PagerInputComponent extends PagerElementComponent {
1397
1520
  </kendo-numerictextbox>
1398
1521
  {{textFor('of')}} {{totalPages}}
1399
1522
  </span>
1400
- `, 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"] }] });
1523
+ `, 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1401
1524
  }
1402
1525
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerInputComponent, decorators: [{
1403
1526
  type: Component,
1404
1527
  args: [{
1528
+ changeDetection: ChangeDetectionStrategy.OnPush,
1405
1529
  selector: 'kendo-datapager-input, kendo-pager-input',
1406
1530
  template: `
1407
1531
  <span class="k-pager-input">
@@ -1433,7 +1557,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
1433
1557
  standalone: true,
1434
1558
  imports: [NumericTextBoxComponent, PagerFocusableDirective, EventsOutsideAngularDirective]
1435
1559
  }]
1436
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: PagerContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }], propDecorators: { numericInput: [{
1560
+ }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: PagerContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { numericInput: [{
1437
1561
  type: ViewChild,
1438
1562
  args: [NumericTextBoxComponent, { static: true }]
1439
1563
  }], showPageText: [{
@@ -1493,7 +1617,6 @@ class PagerInfoComponent extends PagerElementComponent {
1493
1617
  this.total = total;
1494
1618
  this.skip = skip;
1495
1619
  this.pageSize = pageSize;
1496
- this.cd.markForCheck();
1497
1620
  }
1498
1621
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerInfoComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
1499
1622
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.27", 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 });
@@ -1519,8 +1642,8 @@ const packageMetadata = {
1519
1642
  productName: 'Kendo UI for Angular',
1520
1643
  productCode: 'KENDOUIANGULAR',
1521
1644
  productCodes: ['KENDOUIANGULAR'],
1522
- publishDate: 1786694207,
1523
- version: '25.1.0-develop.2',
1645
+ publishDate: 1788250744,
1646
+ version: '25.1.0-develop.21',
1524
1647
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1525
1648
  };
1526
1649
 
@@ -1569,7 +1692,8 @@ class PagerComponent {
1569
1692
  localization;
1570
1693
  renderer;
1571
1694
  ngZone;
1572
- cdr;
1695
+ injector;
1696
+ cd;
1573
1697
  navigationService;
1574
1698
  /**
1575
1699
  * Represents the collection of pager template directives.
@@ -1602,41 +1726,76 @@ class PagerComponent {
1602
1726
  /**
1603
1727
  * @hidden
1604
1728
  */
1605
- externalTemplate;
1729
+ set externalTemplate(value) {
1730
+ this._externalTemplate.set(value);
1731
+ }
1732
+ get externalTemplate() {
1733
+ return this._externalTemplate();
1734
+ }
1606
1735
  /**
1607
1736
  * Specifies the total number of data items in the collection.
1608
1737
  *
1609
1738
  * @default 0
1610
1739
  */
1611
- total = 0;
1740
+ set total(value) {
1741
+ this._total.set(value);
1742
+ }
1743
+ get total() {
1744
+ return this._total();
1745
+ }
1612
1746
  /**
1613
1747
  * Specifies the number of data items to skip.
1614
1748
  *
1615
1749
  * @default 0
1616
1750
  */
1617
- skip = 0;
1751
+ set skip(value) {
1752
+ this._skip.set(value);
1753
+ }
1754
+ get skip() {
1755
+ return this._skip();
1756
+ }
1618
1757
  /**
1619
1758
  * Specifies the number of data items per page.
1620
1759
  */
1621
- pageSize;
1760
+ set pageSize(value) {
1761
+ this._pageSize.set(value);
1762
+ }
1763
+ get pageSize() {
1764
+ return this._pageSize();
1765
+ }
1622
1766
  /**
1623
1767
  * Specifies the maximum number of numeric buttons before the buttons are collapsed.
1624
1768
  *
1625
1769
  * @default 10
1626
1770
  */
1627
- buttonCount = 10;
1771
+ set buttonCount(value) {
1772
+ this._buttonCount.set(value);
1773
+ }
1774
+ get buttonCount() {
1775
+ return this._buttonCount();
1776
+ }
1628
1777
  /**
1629
1778
  * Determines whether to display information about the current page and the total number of records.
1630
1779
  *
1631
1780
  * @default true
1632
1781
  */
1633
- info = true;
1782
+ set info(value) {
1783
+ this._info.set(value);
1784
+ }
1785
+ get info() {
1786
+ return this._info();
1787
+ }
1634
1788
  /**
1635
1789
  * Specifies the type of the Pager.
1636
1790
  *
1637
1791
  * @default 'numeric'
1638
1792
  */
1639
- type = 'numeric';
1793
+ set type(value) {
1794
+ this._type.set(value);
1795
+ }
1796
+ get type() {
1797
+ return this._type();
1798
+ }
1640
1799
  /**
1641
1800
  * Displays a dropdown for selecting the page size.
1642
1801
  * When set to `true`, the dropdown contains the default list of options - 5, 10, 20.
@@ -1645,21 +1804,26 @@ class PagerComponent {
1645
1804
  */
1646
1805
  set pageSizeValues(value) {
1647
1806
  if (typeof value === 'boolean') {
1648
- this._pageSizeValues = value ? DEFAULT_PAGE_SIZE_VALUES : [];
1807
+ this._pageSizeValues.set(value ? DEFAULT_PAGE_SIZE_VALUES : []);
1649
1808
  }
1650
1809
  else {
1651
- this._pageSizeValues = value;
1810
+ this._pageSizeValues.set(value);
1652
1811
  }
1653
1812
  }
1654
1813
  get pageSizeValues() {
1655
- return this._pageSizeValues;
1814
+ return this._pageSizeValues();
1656
1815
  }
1657
1816
  /**
1658
1817
  * Determines whether to display the **Previous** and **Next** buttons.
1659
1818
  *
1660
1819
  * @default true
1661
1820
  */
1662
- previousNext = true;
1821
+ set previousNext(value) {
1822
+ this._previousNext.set(value);
1823
+ }
1824
+ get previousNext() {
1825
+ return this._previousNext();
1826
+ }
1663
1827
  /**
1664
1828
  * Determines whether users can use dedicated shortcuts to interact with the Pager ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/keyboard-navigation)).
1665
1829
  * By default, navigation is enabled. To disable it and make the Pager content accessible in the normal tab sequence, set the property to `false`.
@@ -1669,34 +1833,43 @@ class PagerComponent {
1669
1833
  * This property is related to accessibility.
1670
1834
  */
1671
1835
  set navigable(value) {
1672
- this._navigable = value;
1836
+ this._navigable.set(value);
1673
1837
  this.navigationService.isNavigable = value;
1674
1838
  }
1675
1839
  get navigable() {
1676
- return this._navigable;
1840
+ return this._navigable();
1677
1841
  }
1678
1842
  /**
1679
1843
  * Specifies the padding of all Pager elements. The default value is set by the Kendo theme.
1680
1844
  */
1681
1845
  set size(size) {
1682
- this.handleClasses(size, 'size');
1683
- this._size = size;
1846
+ this._size.set(size);
1684
1847
  }
1685
1848
  get size() {
1686
- return this._size;
1849
+ return this._size();
1687
1850
  }
1688
1851
  /**
1689
1852
  * Determines whether the Pager responsive functionality is enabled ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/responsive-design)).
1690
1853
  *
1691
1854
  * @default true
1692
1855
  */
1693
- responsive = true;
1856
+ set responsive(value) {
1857
+ this._responsive.set(value);
1858
+ }
1859
+ get responsive() {
1860
+ return this._responsive();
1861
+ }
1694
1862
  /**
1695
1863
  * Determines whether the Pager adaptiveness functionality is enabled ([see example](https://www.telerik.com/kendo-angular-ui/components/pager/adaptiveness)).
1696
1864
  *
1697
1865
  * @default 'none'
1698
1866
  */
1699
- adaptiveMode = 'none';
1867
+ set adaptiveMode(value) {
1868
+ this._adaptiveMode.set(value);
1869
+ }
1870
+ get adaptiveMode() {
1871
+ return this._adaptiveMode();
1872
+ }
1700
1873
  /**
1701
1874
  * Fires when the current page of the Pager changes ([see example](https://www.telerik.com/kendo-angular-ui/components/pager)).
1702
1875
  * You have to handle the event and page the data.
@@ -1747,22 +1920,22 @@ class PagerComponent {
1747
1920
  return Math.floor((this.skip || 0) / this.pageSize) + 1;
1748
1921
  }
1749
1922
  get templateContext() {
1750
- const context = this._templateContext;
1751
- context.totalPages = this.totalPages;
1752
- context.total = this.total;
1753
- context.skip = this.skip;
1754
- context.pageSize = this.pageSize;
1755
- context.currentPage = this.currentPage;
1756
- return context;
1923
+ return {
1924
+ totalPages: this.totalPages,
1925
+ total: this.total,
1926
+ skip: this.skip,
1927
+ pageSize: this.pageSize,
1928
+ currentPage: this.currentPage,
1929
+ };
1757
1930
  }
1758
1931
  /**
1759
1932
  * @hidden
1760
1933
  */
1761
1934
  get showPageText() {
1762
- return this._showPageText;
1935
+ return this._showPageText();
1763
1936
  }
1764
1937
  set showPageText(value) {
1765
- this._showPageText = value;
1938
+ this._showPageText.set(value);
1766
1939
  if (this.pagerInputComponent) {
1767
1940
  this.pagerInputComponent.showPageText = value;
1768
1941
  }
@@ -1772,10 +1945,10 @@ class PagerComponent {
1772
1945
  * @hidden
1773
1946
  */
1774
1947
  get showItemsText() {
1775
- return this._showItemsText;
1948
+ return this._showItemsText();
1776
1949
  }
1777
1950
  set showItemsText(value) {
1778
- this._showItemsText = value;
1951
+ this._showItemsText.set(value);
1779
1952
  if (this.pageSizesComponent) {
1780
1953
  this.pageSizesComponent.showItemsText = value;
1781
1954
  }
@@ -1785,27 +1958,121 @@ class PagerComponent {
1785
1958
  * @hidden
1786
1959
  */
1787
1960
  get showInput() {
1788
- return this._showInput;
1961
+ return this._showInput();
1789
1962
  }
1790
1963
  set showInput(value) {
1791
- this._showInput = value;
1964
+ this._showInput.set(value);
1792
1965
  this.pagerInputVisibilityChange.emit(value);
1793
1966
  }
1794
1967
  /**
1795
1968
  * @hidden
1796
1969
  */
1797
- initialized = false;
1970
+ get initialized() {
1971
+ return this._initialized();
1972
+ }
1798
1973
  subscriptions = new Subscription();
1799
- _templateContext = {};
1800
- _pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;
1974
+ _pageSizeValues = signal(DEFAULT_PAGE_SIZE_VALUES, ...(ngDevMode ? [{ debugName: "_pageSizeValues" }] : []));
1801
1975
  direction;
1802
1976
  isInnerNavigationEnabled = false;
1803
- _navigable = true;
1804
- _size;
1805
- _showInput = true;
1806
- _showPageText = true;
1807
- _showItemsText = true;
1808
- _isAllSelected = false;
1977
+ _navigable = signal(true, ...(ngDevMode ? [{ debugName: "_navigable" }] : []));
1978
+ _size = signal(undefined, ...(ngDevMode ? [{ debugName: "_size" }] : []));
1979
+ _previousSize = undefined;
1980
+ _showInput = signal(true, ...(ngDevMode ? [{ debugName: "_showInput" }] : []));
1981
+ _showPageText = signal(true, ...(ngDevMode ? [{ debugName: "_showPageText" }] : []));
1982
+ _showItemsText = signal(true, ...(ngDevMode ? [{ debugName: "_showItemsText" }] : []));
1983
+ _isAllSelected = signal(false, ...(ngDevMode ? [{ debugName: "_isAllSelected" }] : []));
1984
+ _initialized = signal(false, ...(ngDevMode ? [{ debugName: "_initialized" }] : []));
1985
+ _externalTemplate = signal(undefined, ...(ngDevMode ? [{ debugName: "_externalTemplate" }] : []));
1986
+ _total = signal(0, ...(ngDevMode ? [{ debugName: "_total" }] : []));
1987
+ _skip = signal(0, ...(ngDevMode ? [{ debugName: "_skip" }] : []));
1988
+ _pageSize = signal(undefined, ...(ngDevMode ? [{ debugName: "_pageSize" }] : []));
1989
+ _buttonCount = signal(10, ...(ngDevMode ? [{ debugName: "_buttonCount" }] : []));
1990
+ _info = signal(true, ...(ngDevMode ? [{ debugName: "_info" }] : []));
1991
+ _type = signal('numeric', ...(ngDevMode ? [{ debugName: "_type" }] : []));
1992
+ _previousNext = signal(true, ...(ngDevMode ? [{ debugName: "_previousNext" }] : []));
1993
+ _responsive = signal(true, ...(ngDevMode ? [{ debugName: "_responsive" }] : []));
1994
+ _adaptiveMode = signal('none', ...(ngDevMode ? [{ debugName: "_adaptiveMode" }] : []));
1995
+ _previousTotal = undefined;
1996
+ _previousPageSize = undefined;
1997
+ _previousResponsive = undefined;
1998
+ _layoutEffectInitialized = false;
1999
+ _typeEffectInitialized = false;
2000
+ sizeClassEffect = effect(() => {
2001
+ const newSize = this._size();
2002
+ this.handleClasses(newSize, 'size', this._previousSize);
2003
+ this._previousSize = newSize;
2004
+ }, ...(ngDevMode ? [{ debugName: "sizeClassEffect" }] : []));
2005
+ pageStateEffect = effect(() => {
2006
+ const skip = this._skip();
2007
+ const pageSize = this._pageSize();
2008
+ const total = this._total();
2009
+ const buttonCount = untracked(() => this._buttonCount());
2010
+ const isAllSelected = untracked(() => this._isAllSelected());
2011
+ const responsive = untracked(() => this._responsive());
2012
+ const isTotalChanged = this._previousTotal !== undefined && total !== this._previousTotal && total > 0;
2013
+ if (isAllSelected && isTotalChanged) {
2014
+ this._pageSize.set(total);
2015
+ Promise.resolve().then(() => {
2016
+ this.pageChange.emit({ skip: untracked(() => this._skip()), take: total });
2017
+ });
2018
+ }
2019
+ const previousButtonCount = Math.min(buttonCount, (this._previousTotal ?? total) / (this._previousPageSize ?? pageSize));
2020
+ this.pagerContext.notifyChanges({
2021
+ pageSize: untracked(() => this._pageSize()),
2022
+ skip,
2023
+ total,
2024
+ isAllSelected,
2025
+ });
2026
+ this.pagerDimensions.numericButtonsWidth =
2027
+ (this.pagerDimensions.numericButtonsWidth * Math.min(buttonCount, total / untracked(() => this._pageSize()))) /
2028
+ previousButtonCount;
2029
+ this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
2030
+ if (responsive) {
2031
+ this.resizeHandler(false);
2032
+ }
2033
+ this._previousTotal = total;
2034
+ this._previousPageSize = pageSize;
2035
+ }, ...(ngDevMode ? [{ debugName: "pageStateEffect" }] : []));
2036
+ layoutParamsEffect = effect(() => {
2037
+ this._pageSizeValues();
2038
+ this._previousNext();
2039
+ this._buttonCount();
2040
+ if (!this._layoutEffectInitialized) {
2041
+ this._layoutEffectInitialized = true;
2042
+ return;
2043
+ }
2044
+ if (untracked(() => this._responsive())) {
2045
+ this.resizeHandler(false);
2046
+ }
2047
+ }, ...(ngDevMode ? [{ debugName: "layoutParamsEffect" }] : []));
2048
+ responsiveEffect = effect(() => {
2049
+ const responsive = this._responsive();
2050
+ if (this._previousResponsive === undefined) {
2051
+ this._previousResponsive = responsive;
2052
+ return;
2053
+ }
2054
+ if (responsive && !this._previousResponsive) {
2055
+ this.measureAllTextWidths();
2056
+ this.resizeHandler(false);
2057
+ }
2058
+ if (!responsive) {
2059
+ // Use untracked to avoid _type becoming a dependency of this effect
2060
+ this.showInput = untracked(() => this._type()) === 'input';
2061
+ this.showElements(this.element.nativeElement.offsetWidth, this.pagerDimensions.width);
2062
+ }
2063
+ this._previousResponsive = responsive;
2064
+ }, ...(ngDevMode ? [{ debugName: "responsiveEffect" }] : []));
2065
+ typeEffect = effect(() => {
2066
+ this._type();
2067
+ if (!this._typeEffectInitialized) {
2068
+ this._typeEffectInitialized = true;
2069
+ return;
2070
+ }
2071
+ this.showNumericButtonsResponsive();
2072
+ if (untracked(() => this._responsive())) {
2073
+ this.resizeHandler(false);
2074
+ }
2075
+ }, ...(ngDevMode ? [{ debugName: "typeEffect" }] : []));
1809
2076
  /**
1810
2077
  * Stores the measurements of various Pager elements.
1811
2078
  * These dimensions are used for responsive layout calculations.
@@ -1822,15 +2089,16 @@ class PagerComponent {
1822
2089
  gapNumbersSizes: 0,
1823
2090
  gapSizesInfo: 0,
1824
2091
  gapPageText: 0,
1825
- width: 0
2092
+ width: 0,
1826
2093
  };
1827
- constructor(pagerContext, element, localization, renderer, ngZone, cdr, navigationService) {
2094
+ constructor(pagerContext, element, localization, renderer, ngZone, injector, cd, navigationService) {
1828
2095
  this.pagerContext = pagerContext;
1829
2096
  this.element = element;
1830
2097
  this.localization = localization;
1831
2098
  this.renderer = renderer;
1832
2099
  this.ngZone = ngZone;
1833
- this.cdr = cdr;
2100
+ this.injector = injector;
2101
+ this.cd = cd;
1834
2102
  this.navigationService = navigationService;
1835
2103
  validatePackage(packageMetadata);
1836
2104
  this.direction = localization.rtl ? 'rtl' : 'ltr';
@@ -1869,80 +2137,24 @@ class PagerComponent {
1869
2137
  ngAfterViewInit() {
1870
2138
  this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
1871
2139
  this.subscriptions.add(this.template.changes.subscribe(() => {
2140
+ this.cd.markForCheck();
1872
2141
  this.measureAllTextWidths();
1873
2142
  if (this.responsive) {
1874
2143
  this.resizeHandler(false);
1875
2144
  }
1876
2145
  }));
1877
- this.handleClasses(this.size, 'size');
1878
2146
  this.setPagerDimensions();
1879
- this.ngZone.onStable.pipe(take(1)).subscribe(() => {
2147
+ afterNextRender(() => {
2148
+ this._initialized.set(true);
1880
2149
  if (this.type !== 'input') {
1881
2150
  this.showInput = false;
1882
2151
  }
1883
2152
  this.responsive && this.resizeHandler();
1884
- });
2153
+ }, { injector: this.injector });
1885
2154
  if (!isDocumentAvailable()) {
1886
- this.initialized = true;
2155
+ this._initialized.set(true);
1887
2156
  return;
1888
2157
  }
1889
- this.ngZone.runOutsideAngular(() => {
1890
- setTimeout(() => {
1891
- this.initialized = true;
1892
- this.cdr.markForCheck();
1893
- }, 0);
1894
- });
1895
- }
1896
- ngOnChanges(changes) {
1897
- if (anyChanged(["pageSize", "skip", "total"], changes, false)) {
1898
- const previousTotal = changes['total']?.previousValue;
1899
- const currentTotal = this.total;
1900
- let pageSizeAdjusted = false;
1901
- const isTotalChanged = changes['total'] && currentTotal !== previousTotal && currentTotal > 0;
1902
- if (this._isAllSelected && isTotalChanged) {
1903
- this.pageSize = currentTotal;
1904
- pageSizeAdjusted = true;
1905
- }
1906
- const previousButtonCount = Math.min(this.buttonCount, (changes['total']?.previousValue || this.total) / (changes['pageSize']?.previousValue || this.pageSize));
1907
- this.pagerContext.notifyChanges({
1908
- pageSize: this.pageSize,
1909
- skip: this.skip,
1910
- total: this.total,
1911
- isAllSelected: this._isAllSelected
1912
- });
1913
- this.pagerDimensions.numericButtonsWidth = (this.pagerDimensions.numericButtonsWidth * Math.min(this.buttonCount, this.total / this.pageSize)) / previousButtonCount;
1914
- this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
1915
- if (this.responsive) {
1916
- this.resizeHandler(false);
1917
- }
1918
- if (pageSizeAdjusted) {
1919
- Promise.resolve().then(() => {
1920
- this.pageChange.emit({ skip: this.skip, take: currentTotal });
1921
- this.cdr.detectChanges();
1922
- });
1923
- }
1924
- }
1925
- if (anyChanged(["pageSizeValues", "previousNext", "buttonCount"], changes, true)) {
1926
- if (this.responsive) {
1927
- this.resizeHandler(false);
1928
- }
1929
- }
1930
- if (isChanged('responsive', changes, true)) {
1931
- if (changes['responsive'].currentValue && !changes['responsive'].previousValue) {
1932
- this.measureAllTextWidths();
1933
- this.resizeHandler(false);
1934
- }
1935
- if (!this.responsive) {
1936
- this.showInput = this.type === 'input';
1937
- this.showElements(this.element.nativeElement.offsetWidth, this.pagerDimensions.width);
1938
- }
1939
- }
1940
- if (isChanged('type', changes, true)) {
1941
- this.showNumericButtonsResponsive();
1942
- if (this.responsive) {
1943
- this.resizeHandler(false);
1944
- }
1945
- }
1946
2158
  }
1947
2159
  ngOnDestroy() {
1948
2160
  this.subscriptions.unsubscribe();
@@ -1960,11 +2172,11 @@ class PagerComponent {
1960
2172
  this.pageSizeChange.emit(event);
1961
2173
  if (!event.isDefaultPrevented()) {
1962
2174
  if (event.newPageSize === 'all') {
1963
- this._isAllSelected = true;
2175
+ this._isAllSelected.set(true);
1964
2176
  this.pageChange.emit({ skip: 0, take: this.total });
1965
2177
  }
1966
2178
  else {
1967
- this._isAllSelected = false;
2179
+ this._isAllSelected.set(false);
1968
2180
  this.pageChange.emit({ skip: 0, take: event.newPageSize });
1969
2181
  }
1970
2182
  }
@@ -1986,7 +2198,7 @@ class PagerComponent {
1986
2198
  return;
1987
2199
  }
1988
2200
  if (!isDocumentAvailable() || !this.element?.nativeElement) {
1989
- this.initialized = true;
2201
+ this._initialized.set(true);
1990
2202
  return;
1991
2203
  }
1992
2204
  let pagerWidth = this.element.nativeElement.offsetWidth;
@@ -2007,7 +2219,9 @@ class PagerComponent {
2007
2219
  const numericButtonsWrapperElement = this.element.nativeElement.querySelector('.k-pager-numbers-wrap');
2008
2220
  const pagerInfoElement = this.pagerInfoElement();
2009
2221
  const pagerPageSizes = this.sizesDropDownElement();
2010
- let elementsWidths = numericButtonsWrapperElement?.offsetWidth + (pagerPageSizes?.offsetWidth || 0) + (pagerInfoElement?.offsetWidth > 0 ? Math.min(this.pagerDimensions.infoTextWidth) : 0);
2222
+ let elementsWidths = numericButtonsWrapperElement?.offsetWidth +
2223
+ (pagerPageSizes?.offsetWidth || 0) +
2224
+ (pagerInfoElement?.offsetWidth > 0 ? Math.min(this.pagerDimensions.infoTextWidth) : 0);
2011
2225
  if (this.isElementVisible(pagerInfoElement)) {
2012
2226
  elementsWidths += this.pagerDimensions.gapSizesInfo;
2013
2227
  }
@@ -2020,7 +2234,7 @@ class PagerComponent {
2020
2234
  }
2021
2235
  this.showElements(pagerWidth, elementsWidths);
2022
2236
  if (!this.initialized) {
2023
- this.ngZone.onStable.pipe(take(1)).subscribe(() => this.initialized = true);
2237
+ this._initialized.set(true);
2024
2238
  }
2025
2239
  });
2026
2240
  });
@@ -2034,30 +2248,32 @@ class PagerComponent {
2034
2248
  name: 'sizeDropDown',
2035
2249
  isEnabled: () => this.showPageSizes,
2036
2250
  isVisible: () => this.isElementVisible(this.sizesDropDownElement()),
2037
- width: () => this.pagerDimensions.pageSizesWidth + this.pagerDimensions.gapNumbersSizes - this.pagerDimensions.sizesTextWidth,
2251
+ width: () => this.pagerDimensions.pageSizesWidth +
2252
+ this.pagerDimensions.gapNumbersSizes -
2253
+ this.pagerDimensions.sizesTextWidth,
2038
2254
  show: () => {
2039
- this.ngZone.run(() => this.showItemsText = false);
2255
+ this.ngZone.run(() => (this.showItemsText = false));
2040
2256
  this.showElement(this.sizesDropDownElement());
2041
2257
  },
2042
2258
  hide: () => {
2043
2259
  this.hideElement(this.sizesDropDownElement());
2044
- }
2260
+ },
2045
2261
  };
2046
2262
  responsiveDropDownTextElement = {
2047
2263
  name: 'itemsDropDownText',
2048
2264
  isEnabled: () => this.showPageSizes,
2049
2265
  isVisible: () => this.isElementVisible(this.sizesDropDownElement()) && this.showItemsText,
2050
2266
  width: () => this.pagerDimensions.sizesTextWidth + this.pagerDimensions.gapPageText,
2051
- show: () => this.ngZone.run(() => this.showItemsText = true),
2052
- hide: () => this.ngZone.run(() => this.showItemsText = false)
2267
+ show: () => this.ngZone.run(() => (this.showItemsText = true)),
2268
+ hide: () => this.ngZone.run(() => (this.showItemsText = false)),
2053
2269
  };
2054
2270
  responsivePageTextElement = {
2055
2271
  name: 'pageText',
2056
2272
  isEnabled: () => this.isElementVisible(this.pagerInputElement()),
2057
2273
  isVisible: () => this.showPageText,
2058
2274
  width: () => this.pagerDimensions.pageTextWidth + this.pagerDimensions.gapPageText,
2059
- show: () => this.ngZone.run(() => this.showPageText = true),
2060
- hide: () => this.ngZone.run(() => this.showPageText = false)
2275
+ show: () => this.ngZone.run(() => (this.showPageText = true)),
2276
+ hide: () => this.ngZone.run(() => (this.showPageText = false)),
2061
2277
  };
2062
2278
  responsiveInfoTextElement = {
2063
2279
  name: 'infoText',
@@ -2073,7 +2289,7 @@ class PagerComponent {
2073
2289
  this.ngZone.run(() => {
2074
2290
  this.hideElement(this.pagerInfoElement());
2075
2291
  });
2076
- }
2292
+ },
2077
2293
  };
2078
2294
  responsiveNumericButtonsElement = {
2079
2295
  name: 'numericButtons',
@@ -2084,7 +2300,6 @@ class PagerComponent {
2084
2300
  this.showElement(this.numericButtonsElement());
2085
2301
  this.ngZone.run(() => {
2086
2302
  this.showInput = false;
2087
- this.cdr.markForCheck();
2088
2303
  });
2089
2304
  },
2090
2305
  hide: () => {
@@ -2092,9 +2307,8 @@ class PagerComponent {
2092
2307
  this.ngZone.run(() => {
2093
2308
  this.showInput = true;
2094
2309
  this.showPageText = true;
2095
- this.cdr.markForCheck();
2096
2310
  });
2097
- }
2311
+ },
2098
2312
  };
2099
2313
  /**
2100
2314
  * Contains all elements that are subject to responsive toggling.
@@ -2107,7 +2321,7 @@ class PagerComponent {
2107
2321
  this.responsiveDropDownTextElement,
2108
2322
  this.responsivePageTextElement,
2109
2323
  this.responsiveInfoTextElement,
2110
- this.responsiveNumericButtonsElement
2324
+ this.responsiveNumericButtonsElement,
2111
2325
  ];
2112
2326
  get ariaLabel() {
2113
2327
  const localizationMsg = this.localization.get('ariaLabel') || '';
@@ -2192,9 +2406,9 @@ class PagerComponent {
2192
2406
  innerNavigationChange(value) {
2193
2407
  this.isInnerNavigationEnabled = value;
2194
2408
  }
2195
- handleClasses(value, input) {
2409
+ handleClasses(value, input, oldValue) {
2196
2410
  const elem = this.element.nativeElement;
2197
- const classes = getStylingClasses('pager', input, this[input], value);
2411
+ const classes = getStylingClasses('pager', input, oldValue !== undefined ? oldValue : this[input], value);
2198
2412
  if (classes.toRemove) {
2199
2413
  this.renderer.removeClass(elem, classes.toRemove);
2200
2414
  }
@@ -2212,7 +2426,7 @@ class PagerComponent {
2212
2426
  }
2213
2427
  const elementWidth = element.width();
2214
2428
  // If not responsive, show all elements regardless of available width. If responsive, check if the current element fits
2215
- if (this.responsive && (currentWidth + elementWidth) > availableWidth) {
2429
+ if (this.responsive && currentWidth + elementWidth > availableWidth) {
2216
2430
  index++;
2217
2431
  break;
2218
2432
  }
@@ -2279,11 +2493,13 @@ class PagerComponent {
2279
2493
  measureContainer.getBoundingClientRect();
2280
2494
  this.pagerDimensions.infoTextWidth = infoSpan?.offsetWidth;
2281
2495
  if (this.pagerDimensions.inputWidth && this.pagerDimensions.pageTextWidth) {
2282
- this.pagerDimensions.inputWidth = this.pagerDimensions.inputWidth - this.pagerDimensions.pageTextWidth + pageSpan.offsetWidth;
2496
+ this.pagerDimensions.inputWidth =
2497
+ this.pagerDimensions.inputWidth - this.pagerDimensions.pageTextWidth + pageSpan.offsetWidth;
2283
2498
  }
2284
2499
  this.pagerDimensions.pageTextWidth = pageSpan?.offsetWidth;
2285
2500
  if (this.pagerDimensions.pageSizesWidth && this.pagerDimensions.sizesTextWidth) {
2286
- this.pagerDimensions.pageSizesWidth = this.pagerDimensions.pageSizesWidth - this.pagerDimensions.sizesTextWidth + sizesSpan.offsetWidth;
2501
+ this.pagerDimensions.pageSizesWidth =
2502
+ this.pagerDimensions.pageSizesWidth - this.pagerDimensions.sizesTextWidth + sizesSpan.offsetWidth;
2287
2503
  }
2288
2504
  this.pagerDimensions.sizesTextWidth = sizesSpan?.offsetWidth;
2289
2505
  this.renderer.removeChild(this.element.nativeElement, measureContainer);
@@ -2310,7 +2526,10 @@ class PagerComponent {
2310
2526
  }
2311
2527
  const pagerWidth = this.element.nativeElement?.offsetWidth;
2312
2528
  const numericButtonsWrapperElement = this.element.nativeElement.querySelector('.k-pager-numbers-wrap');
2313
- const elementsWidths = numericButtonsWrapperElement?.offsetWidth + this.pagerDimensions.pageSizesWidth + this.pagerDimensions.infoTextWidth + this.pagerDimensions.gapSizesInfo;
2529
+ const elementsWidths = numericButtonsWrapperElement?.offsetWidth +
2530
+ this.pagerDimensions.pageSizesWidth +
2531
+ this.pagerDimensions.infoTextWidth +
2532
+ this.pagerDimensions.gapSizesInfo;
2314
2533
  const hasAvailableWidth = pagerWidth > elementsWidths - this.pagerDimensions.inputWidth + this.pagerDimensions.numericButtonsWidth;
2315
2534
  this.showInput = !hasAvailableWidth;
2316
2535
  }
@@ -2322,8 +2541,12 @@ class PagerComponent {
2322
2541
  }
2323
2542
  setPagerDimensions() {
2324
2543
  this.measureAllTextWidths();
2325
- !this.numericButtons && (this.pagerDimensions.numericButtonsWidth = this.element.nativeElement.querySelector('.k-pager-numbers')?.offsetWidth ?? 0);
2326
- !this.pagerInput && (this.pagerDimensions.inputWidth = this.element.nativeElement.querySelector('kendo-pager-input')?.offsetWidth ?? 0);
2544
+ !this.numericButtons &&
2545
+ (this.pagerDimensions.numericButtonsWidth =
2546
+ this.element.nativeElement.querySelector('.k-pager-numbers')?.offsetWidth ?? 0);
2547
+ !this.pagerInput &&
2548
+ (this.pagerDimensions.inputWidth =
2549
+ this.element.nativeElement.querySelector('kendo-pager-input')?.offsetWidth ?? 0);
2327
2550
  !this.pageSizes && (this.pagerDimensions.pageSizesWidth = this.sizesDropDownElement()?.offsetWidth ?? 0);
2328
2551
  const padding = calculatePadding(this.element.nativeElement);
2329
2552
  this.pagerDimensions.padding = padding.padding;
@@ -2332,7 +2555,7 @@ class PagerComponent {
2332
2555
  const innerStyledElement = this.pagerInputElement();
2333
2556
  !this.pagerDimensions.gapPageText && (this.pagerDimensions.gapPageText = calculateGap(innerStyledElement));
2334
2557
  }
2335
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: PagerNavigationService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
2558
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: PagerNavigationService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
2336
2559
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.27", 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", adaptiveMode: "adaptiveMode" }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange", pagerInputVisibilityChange: "pagerInputVisibilityChange", pageTextVisibilityChange: "pageTextVisibilityChange", itemsTextVisibilityChange: "itemsTextVisibilityChange" }, host: { listeners: { "focusin": "focusHandler($event)" }, properties: { "class.k-pager": "this.pagerClass", "class.k-pager-responsive": "this.responsiveClass", "attr.role": "this.widgetRole", "attr.aria-roledescription": "this.roleDescription", "attr.aria-keyshortcuts": "this.keyShortcuts", "attr.tabindex": "this.hostTabindex", "attr.dir": "this.dir" } }, providers: [
2337
2560
  LocalizationService,
2338
2561
  PagerContextService,
@@ -2342,7 +2565,7 @@ class PagerComponent {
2342
2565
  useValue: 'kendo.pager'
2343
2566
  },
2344
2567
  provideComponentName('pager')
2345
- ], queries: [{ propertyName: "template", predicate: PagerTemplateDirective }], viewQueries: [{ propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true, read: ElementRef }, { propertyName: "pagerInput", first: true, predicate: PagerInputComponent, descendants: true, read: ElementRef }, { propertyName: "pagerInputComponent", first: true, predicate: PagerInputComponent, descendants: true }, { propertyName: "pageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "pageSizesComponent", first: true, predicate: PagerPageSizesComponent, descendants: true }], exportAs: ["kendoDataPager", "kendoPager"], usesOnChanges: true, ngImport: i0, template: `
2568
+ ], queries: [{ propertyName: "template", predicate: PagerTemplateDirective }], viewQueries: [{ propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true, read: ElementRef }, { propertyName: "pagerInput", first: true, predicate: PagerInputComponent, descendants: true, read: ElementRef }, { propertyName: "pagerInputComponent", first: true, predicate: PagerInputComponent, descendants: true }, { propertyName: "pageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "pageSizesComponent", first: true, predicate: PagerPageSizesComponent, descendants: true }], exportAs: ["kendoDataPager", "kendoPager"], ngImport: i0, template: `
2346
2569
  <ng-container kendoPagerLocalizedMessages
2347
2570
  i18n-ariaLabel="kendo.pager.ariaLabel|The value of the aria-label attribute of the Pager"
2348
2571
  ariaLabel="Page navigation, page [[currentPage]] of [[totalPages]]"
@@ -2382,51 +2605,41 @@ class PagerComponent {
2382
2605
  >
2383
2606
  </ng-container>
2384
2607
  @if (template.first?.templateRef) {
2385
- <ng-container
2386
- [ngTemplateOutlet]="template.first?.templateRef"
2387
- [ngTemplateOutletContext]="templateContext">
2388
- </ng-container>
2608
+ <ng-container [ngTemplateOutlet]="template.first?.templateRef" [ngTemplateOutletContext]="templateContext">
2609
+ </ng-container>
2389
2610
  } @else {
2390
- <div class="k-pager-numbers-wrap" [ngStyle]="{opacity: initialized ? null : '0'}">
2611
+ <div class="k-pager-numbers-wrap" [ngStyle]="{ opacity: initialized ? null : '0' }">
2391
2612
  @if (previousNext) {
2392
- <kendo-pager-prev-buttons [size]="size"></kendo-pager-prev-buttons>
2393
- }
2394
- @if (type === 'numeric' && buttonCount > 0) {
2395
- <kendo-pager-numeric-buttons
2396
- [size]="size"
2397
- [buttonCount]="buttonCount">
2398
- </kendo-pager-numeric-buttons>
2613
+ <kendo-pager-prev-buttons [size]="size"></kendo-pager-prev-buttons>
2614
+ } @if (type === 'numeric' && buttonCount > 0) {
2615
+ <kendo-pager-numeric-buttons [size]="size" [buttonCount]="buttonCount"> </kendo-pager-numeric-buttons>
2616
+ } @if (showInput) {
2617
+ <kendo-pager-input [size]="size"></kendo-pager-input>
2618
+ } @if (previousNext) {
2619
+ <kendo-pager-next-buttons [size]="size"></kendo-pager-next-buttons>
2399
2620
  }
2400
- @if (showInput) {
2401
- <kendo-pager-input [size]="size"></kendo-pager-input>
2402
- }
2403
- @if (previousNext) {
2404
- <kendo-pager-next-buttons [size]="size"></kendo-pager-next-buttons>
2405
- }
2406
- </div>
2407
- @if (_pageSizeValues.length) {
2408
- <kendo-pager-page-sizes
2409
- [ngStyle]="{opacity: initialized ? null : '0'}"
2410
- [size]="size"
2411
- [pageSizes]="_pageSizeValues"
2412
- [adaptiveMode]="adaptiveMode">
2413
- </kendo-pager-page-sizes>
2414
- }
2415
- @if (info) {
2416
- <kendo-pager-info [ngStyle]="{opacity: initialized ? null : '0'}">
2417
- </kendo-pager-info>
2418
- }
2419
- }
2420
- @if (responsive) {
2421
- <kendo-resize-sensor (resize)="resizeHandler()"></kendo-resize-sensor>
2422
- }
2423
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPagerLocalizedMessages]" }, { 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: ["showPageText", "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: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
2621
+ </div>
2622
+ @if (_pageSizeValues().length) {
2623
+ <kendo-pager-page-sizes
2624
+ [ngStyle]="{ opacity: initialized ? null : '0' }"
2625
+ [size]="size"
2626
+ [pageSizes]="_pageSizeValues()"
2627
+ [adaptiveMode]="adaptiveMode"
2628
+ >
2629
+ </kendo-pager-page-sizes>
2630
+ } @if (info) {
2631
+ <kendo-pager-info [ngStyle]="{ opacity: initialized ? null : '0' }"> </kendo-pager-info>
2632
+ } } @if (responsive) {
2633
+ <kendo-resize-sensor (resize)="resizeHandler()"></kendo-resize-sensor>
2634
+ }
2635
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPagerLocalizedMessages]" }, { 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: ["showPageText", "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: ["showItemsText", "pageSizes", "size", "adaptiveMode"] }, { kind: "component", type: PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2424
2636
  }
2425
2637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImport: i0, type: PagerComponent, decorators: [{
2426
2638
  type: Component,
2427
2639
  args: [{
2428
2640
  selector: 'kendo-datapager, kendo-pager',
2429
2641
  exportAs: 'kendoDataPager, kendoPager',
2642
+ changeDetection: ChangeDetectionStrategy.OnPush,
2430
2643
  providers: [
2431
2644
  LocalizationService,
2432
2645
  PagerContextService,
@@ -2477,53 +2690,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.27", ngImpo
2477
2690
  >
2478
2691
  </ng-container>
2479
2692
  @if (template.first?.templateRef) {
2480
- <ng-container
2481
- [ngTemplateOutlet]="template.first?.templateRef"
2482
- [ngTemplateOutletContext]="templateContext">
2483
- </ng-container>
2693
+ <ng-container [ngTemplateOutlet]="template.first?.templateRef" [ngTemplateOutletContext]="templateContext">
2694
+ </ng-container>
2484
2695
  } @else {
2485
- <div class="k-pager-numbers-wrap" [ngStyle]="{opacity: initialized ? null : '0'}">
2486
- @if (previousNext) {
2487
- <kendo-pager-prev-buttons [size]="size"></kendo-pager-prev-buttons>
2488
- }
2489
- @if (type === 'numeric' && buttonCount > 0) {
2490
- <kendo-pager-numeric-buttons
2491
- [size]="size"
2492
- [buttonCount]="buttonCount">
2493
- </kendo-pager-numeric-buttons>
2494
- }
2495
- @if (showInput) {
2496
- <kendo-pager-input [size]="size"></kendo-pager-input>
2497
- }
2696
+ <div class="k-pager-numbers-wrap" [ngStyle]="{ opacity: initialized ? null : '0' }">
2498
2697
  @if (previousNext) {
2499
- <kendo-pager-next-buttons [size]="size"></kendo-pager-next-buttons>
2698
+ <kendo-pager-prev-buttons [size]="size"></kendo-pager-prev-buttons>
2699
+ } @if (type === 'numeric' && buttonCount > 0) {
2700
+ <kendo-pager-numeric-buttons [size]="size" [buttonCount]="buttonCount"> </kendo-pager-numeric-buttons>
2701
+ } @if (showInput) {
2702
+ <kendo-pager-input [size]="size"></kendo-pager-input>
2703
+ } @if (previousNext) {
2704
+ <kendo-pager-next-buttons [size]="size"></kendo-pager-next-buttons>
2500
2705
  }
2501
- </div>
2502
- @if (_pageSizeValues.length) {
2503
- <kendo-pager-page-sizes
2504
- [ngStyle]="{opacity: initialized ? null : '0'}"
2505
- [size]="size"
2506
- [pageSizes]="_pageSizeValues"
2507
- [adaptiveMode]="adaptiveMode">
2508
- </kendo-pager-page-sizes>
2509
- }
2510
- @if (info) {
2511
- <kendo-pager-info [ngStyle]="{opacity: initialized ? null : '0'}">
2512
- </kendo-pager-info>
2513
- }
2514
- }
2515
- @if (responsive) {
2516
- <kendo-resize-sensor (resize)="resizeHandler()"></kendo-resize-sensor>
2706
+ </div>
2707
+ @if (_pageSizeValues().length) {
2708
+ <kendo-pager-page-sizes
2709
+ [ngStyle]="{ opacity: initialized ? null : '0' }"
2710
+ [size]="size"
2711
+ [pageSizes]="_pageSizeValues()"
2712
+ [adaptiveMode]="adaptiveMode"
2713
+ >
2714
+ </kendo-pager-page-sizes>
2715
+ } @if (info) {
2716
+ <kendo-pager-info [ngStyle]="{ opacity: initialized ? null : '0' }"> </kendo-pager-info>
2717
+ } } @if (responsive) {
2718
+ <kendo-resize-sensor (resize)="resizeHandler()"></kendo-resize-sensor>
2517
2719
  }
2518
- `,
2720
+ `,
2519
2721
  standalone: true,
2520
- imports: [LocalizedMessagesDirective, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent, NgStyle]
2722
+ imports: [
2723
+ LocalizedMessagesDirective,
2724
+ NgTemplateOutlet,
2725
+ PagerPrevButtonsComponent,
2726
+ PagerNumericButtonsComponent,
2727
+ PagerInputComponent,
2728
+ PagerNextButtonsComponent,
2729
+ PagerPageSizesComponent,
2730
+ PagerInfoComponent,
2731
+ ResizeSensorComponent,
2732
+ NgStyle,
2733
+ ],
2521
2734
  }]
2522
2735
  }], ctorParameters: () => [{ type: PagerContextService, decorators: [{
2523
2736
  type: Optional
2524
2737
  }, {
2525
2738
  type: SkipSelf
2526
- }] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: PagerNavigationService, decorators: [{
2739
+ }] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: PagerNavigationService, decorators: [{
2527
2740
  type: Optional
2528
2741
  }, {
2529
2742
  type: SkipSelf