@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.
- package/fesm2022/progress-kendo-angular-pager.mjs +466 -253
- package/index.d.ts +118 -44
- package/package-metadata.mjs +2 -2
- package/package.json +8 -8
- package/schematics/ngAdd/index.js +6 -6
|
@@ -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,
|
|
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
|
-
|
|
285
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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 }
|
|
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 }
|
|
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:
|
|
1523
|
-
version: '25.1.0-develop.
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1807
|
+
this._pageSizeValues.set(value ? DEFAULT_PAGE_SIZE_VALUES : []);
|
|
1649
1808
|
}
|
|
1650
1809
|
else {
|
|
1651
|
-
this._pageSizeValues
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
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
|
|
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
|
|
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
|
|
1964
|
+
this._showInput.set(value);
|
|
1792
1965
|
this.pagerInputVisibilityChange.emit(value);
|
|
1793
1966
|
}
|
|
1794
1967
|
/**
|
|
1795
1968
|
* @hidden
|
|
1796
1969
|
*/
|
|
1797
|
-
initialized
|
|
1970
|
+
get initialized() {
|
|
1971
|
+
return this._initialized();
|
|
1972
|
+
}
|
|
1798
1973
|
subscriptions = new Subscription();
|
|
1799
|
-
|
|
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
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
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,
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
|
2175
|
+
this._isAllSelected.set(true);
|
|
1964
2176
|
this.pageChange.emit({ skip: 0, take: this.total });
|
|
1965
2177
|
}
|
|
1966
2178
|
else {
|
|
1967
|
-
this._isAllSelected
|
|
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.
|
|
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 +
|
|
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.
|
|
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 +
|
|
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 &&
|
|
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 =
|
|
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 =
|
|
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 +
|
|
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 &&
|
|
2326
|
-
|
|
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"],
|
|
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
|
-
|
|
2386
|
-
|
|
2387
|
-
[ngTemplateOutletContext]="templateContext">
|
|
2388
|
-
</ng-container>
|
|
2608
|
+
<ng-container [ngTemplateOutlet]="template.first?.templateRef" [ngTemplateOutletContext]="templateContext">
|
|
2609
|
+
</ng-container>
|
|
2389
2610
|
} @else {
|
|
2390
|
-
|
|
2611
|
+
<div class="k-pager-numbers-wrap" [ngStyle]="{ opacity: initialized ? null : '0' }">
|
|
2391
2612
|
@if (previousNext) {
|
|
2392
|
-
|
|
2393
|
-
}
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
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
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
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
|
-
|
|
2481
|
-
|
|
2482
|
-
[ngTemplateOutletContext]="templateContext">
|
|
2483
|
-
</ng-container>
|
|
2693
|
+
<ng-container [ngTemplateOutlet]="template.first?.templateRef" [ngTemplateOutletContext]="templateContext">
|
|
2694
|
+
</ng-container>
|
|
2484
2695
|
} @else {
|
|
2485
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2511
|
-
|
|
2512
|
-
|
|
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: [
|
|
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
|