@progress/kendo-angular-pager 19.0.0-develop.9 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/pager/navigation.service.mjs +1 -1
- package/esm2022/pager/pager-input.component.mjs +13 -6
- package/esm2022/pager/pager-numeric-buttons.component.mjs +3 -51
- package/esm2022/pager/pager-page-sizes.component.mjs +30 -5
- package/esm2022/pager/pager.component.mjs +410 -57
- package/esm2022/util.mjs +52 -0
- package/fesm2022/progress-kendo-angular-pager.mjs +505 -126
- package/index.d.ts +1 -0
- package/package.json +8 -8
- package/pager/pager-input.component.d.ts +6 -1
- package/pager/pager-page-sizes.component.d.ts +15 -1
- package/pager/pager.component.d.ts +74 -9
- package/schematics/ngAdd/index.js +6 -6
- package/util.d.ts +30 -0
- package/esm2022/pager/common/constants.mjs +0 -12
- package/pager/common/constants.d.ts +0 -12
|
@@ -8,12 +8,13 @@ import * as i1 from '@progress/kendo-angular-l10n';
|
|
|
8
8
|
import { ComponentMessages, LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
|
|
9
9
|
import { Subject, Subscription } from 'rxjs';
|
|
10
10
|
import { caretAltLeftIcon, caretAltToLeftIcon, caretAltRightIcon, caretAltToRightIcon } from '@progress/kendo-svg-icons';
|
|
11
|
-
import { isFocusable, Keys, EventsOutsideAngularDirective, anyChanged, ResizeSensorComponent, isPresent, ResizeBatchService } from '@progress/kendo-angular-common';
|
|
11
|
+
import { isDocumentAvailable, isFocusable, Keys, EventsOutsideAngularDirective, anyChanged, isChanged, ResizeSensorComponent, 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
|
-
import { NgIf, NgFor, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
14
|
+
import { NgIf, NgFor, NgClass, NgTemplateOutlet, NgStyle } from '@angular/common';
|
|
15
15
|
import { NumericTextBoxComponent } from '@progress/kendo-angular-inputs';
|
|
16
16
|
import { validatePackage } from '@progress/kendo-licensing';
|
|
17
|
+
import { take } from 'rxjs/operators';
|
|
17
18
|
import { IconsService } from '@progress/kendo-angular-icons';
|
|
18
19
|
import { PopupService } from '@progress/kendo-angular-popup';
|
|
19
20
|
|
|
@@ -425,12 +426,63 @@ const getStylingClasses = (componentType, stylingOption, previousValue, newValue
|
|
|
425
426
|
* @hidden
|
|
426
427
|
*/
|
|
427
428
|
const replaceMessagePlaceholder = (message, name, value) => message.replace(new RegExp(`\{\\s*${name}\\s*\}`, 'g'), value);
|
|
429
|
+
/**
|
|
430
|
+
* @hidden
|
|
431
|
+
*/
|
|
432
|
+
const calculatePadding = (element) => {
|
|
433
|
+
if (!element || !isDocumentAvailable()) {
|
|
434
|
+
return { padding: 0, gapNumbersSizes: 0, gapSizesInfo: 0 };
|
|
435
|
+
}
|
|
436
|
+
const computedStyle = window.getComputedStyle(element);
|
|
437
|
+
const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
|
|
438
|
+
const paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;
|
|
439
|
+
const padding = (paddingLeft + paddingRight) * 1.2; // account for rounding errors
|
|
440
|
+
const style = getComputedStyle(document.documentElement);
|
|
441
|
+
const gapNumbersSizes = 2 * (parseFloat(style.getPropertyValue('--kendo-spacing-3\\.5') || '0.875rem') * (parseFloat(getComputedStyle(document.documentElement).fontSize) || 16)); // convert rem to px
|
|
442
|
+
const gapSizesInfo = gapNumbersSizes;
|
|
443
|
+
return { padding, gapNumbersSizes, gapSizesInfo };
|
|
444
|
+
};
|
|
445
|
+
/**
|
|
446
|
+
* @hidden
|
|
447
|
+
*/
|
|
448
|
+
const createMeasurementSpan = (renderer, container, className) => {
|
|
449
|
+
const span = renderer.createElement('span');
|
|
450
|
+
renderer.appendChild(container, span);
|
|
451
|
+
renderer.addClass(span, className);
|
|
452
|
+
return span;
|
|
453
|
+
};
|
|
454
|
+
/**
|
|
455
|
+
* @hidden
|
|
456
|
+
*/
|
|
457
|
+
const copyComputedStyles = (renderer, source, destination) => {
|
|
458
|
+
const computedStyle = getComputedStyle(source);
|
|
459
|
+
const importantStyles = [
|
|
460
|
+
'font-family', 'font-size', 'font-weight', 'font-style',
|
|
461
|
+
'letter-spacing', 'text-transform', 'white-space', 'word-spacing',
|
|
462
|
+
'padding-left', 'padding-right', 'margin-left', 'margin-right',
|
|
463
|
+
'border-left-width', 'border-right-width', 'box-sizing'
|
|
464
|
+
];
|
|
465
|
+
importantStyles.forEach(style => {
|
|
466
|
+
renderer.setStyle(destination, style, computedStyle.getPropertyValue(style));
|
|
467
|
+
});
|
|
468
|
+
};
|
|
469
|
+
/**
|
|
470
|
+
*
|
|
471
|
+
* @hidden
|
|
472
|
+
*/
|
|
473
|
+
const positionOffScreen = (renderer, element) => {
|
|
474
|
+
renderer.setStyle(element, 'position', 'absolute');
|
|
475
|
+
renderer.setStyle(element, 'visibility', 'hidden');
|
|
476
|
+
renderer.setStyle(element, 'left', '-9999px');
|
|
477
|
+
renderer.setStyle(element, 'top', '-9999px');
|
|
478
|
+
renderer.setStyle(element, 'display', 'flex');
|
|
479
|
+
};
|
|
428
480
|
|
|
429
481
|
/**
|
|
430
482
|
* @hidden
|
|
431
483
|
*/
|
|
432
484
|
class PagerNavigationService {
|
|
433
|
-
isNavigable =
|
|
485
|
+
isNavigable = true;
|
|
434
486
|
innerNavigationChange = new Subject();
|
|
435
487
|
toggleInnerNavigation(value) {
|
|
436
488
|
this.innerNavigationChange.next(value);
|
|
@@ -639,6 +691,18 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
639
691
|
element;
|
|
640
692
|
ngZone;
|
|
641
693
|
dropDownList;
|
|
694
|
+
_showItemsText = true;
|
|
695
|
+
/**
|
|
696
|
+
* Controls the visibility of the page text label.
|
|
697
|
+
* @hidden
|
|
698
|
+
*/
|
|
699
|
+
get showItemsText() {
|
|
700
|
+
return this._showItemsText;
|
|
701
|
+
}
|
|
702
|
+
set showItemsText(value) {
|
|
703
|
+
this._showItemsText = value;
|
|
704
|
+
this.cd.markForCheck();
|
|
705
|
+
}
|
|
642
706
|
/**
|
|
643
707
|
* The page sizes collection. Can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.
|
|
644
708
|
*
|
|
@@ -790,6 +854,12 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
790
854
|
* * `none`
|
|
791
855
|
*/
|
|
792
856
|
size = DEFAULT_SIZE;
|
|
857
|
+
/**
|
|
858
|
+
* Toggles the adaptiveness of the internal DropDownList.
|
|
859
|
+
*
|
|
860
|
+
* @default 'auto'
|
|
861
|
+
*/
|
|
862
|
+
adaptiveMode = 'auto';
|
|
793
863
|
/**
|
|
794
864
|
* @hidden
|
|
795
865
|
*
|
|
@@ -836,7 +906,7 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
836
906
|
}
|
|
837
907
|
}
|
|
838
908
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
839
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerPageSizesComponent, isStandalone: true, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: { pageSizes: "pageSizes", size: "size" }, host: { properties: { "class.k-pager-sizes": "this.classes" } }, viewQueries: [{ propertyName: "dropDownList", first: true, predicate: ["dropdownlist"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
909
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerPageSizesComponent, isStandalone: true, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: { showItemsText: "showItemsText", pageSizes: "pageSizes", size: "size", adaptiveMode: "adaptiveMode" }, host: { properties: { "class.k-pager-sizes": "this.classes" } }, viewQueries: [{ propertyName: "dropDownList", first: true, predicate: ["dropdownlist"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
840
910
|
<kendo-dropdownlist kendoPagerFocusable
|
|
841
911
|
#dropdownlist
|
|
842
912
|
[size]="size"
|
|
@@ -846,9 +916,10 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
846
916
|
[valuePrimitive]="true"
|
|
847
917
|
[value]="pageSize"
|
|
848
918
|
(valueChange)="pageSizeChange($event, dropdownlist)"
|
|
919
|
+
[adaptiveMode]="adaptiveMode"
|
|
849
920
|
[attr.aria-label]="textFor('itemsPerPage')"></kendo-dropdownlist>
|
|
850
|
-
{{ textFor('itemsPerPage') }}
|
|
851
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
921
|
+
<ng-container *ngIf="showItemsText">{{ textFor('itemsPerPage') }}</ng-container>
|
|
922
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
852
923
|
}
|
|
853
924
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
854
925
|
type: Component,
|
|
@@ -865,19 +936,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
865
936
|
[valuePrimitive]="true"
|
|
866
937
|
[value]="pageSize"
|
|
867
938
|
(valueChange)="pageSizeChange($event, dropdownlist)"
|
|
939
|
+
[adaptiveMode]="adaptiveMode"
|
|
868
940
|
[attr.aria-label]="textFor('itemsPerPage')"></kendo-dropdownlist>
|
|
869
|
-
{{ textFor('itemsPerPage') }}
|
|
941
|
+
<ng-container *ngIf="showItemsText">{{ textFor('itemsPerPage') }}</ng-container>
|
|
870
942
|
`,
|
|
871
943
|
standalone: true,
|
|
872
|
-
imports: [DropDownListComponent, PagerFocusableDirective]
|
|
944
|
+
imports: [DropDownListComponent, PagerFocusableDirective, NgIf]
|
|
873
945
|
}]
|
|
874
946
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { dropDownList: [{
|
|
875
947
|
type: ViewChild,
|
|
876
948
|
args: ['dropdownlist', { static: true }]
|
|
949
|
+
}], showItemsText: [{
|
|
950
|
+
type: Input
|
|
877
951
|
}], pageSizes: [{
|
|
878
952
|
type: Input
|
|
879
953
|
}], size: [{
|
|
880
954
|
type: Input
|
|
955
|
+
}], adaptiveMode: [{
|
|
956
|
+
type: Input
|
|
881
957
|
}], classes: [{
|
|
882
958
|
type: HostBinding,
|
|
883
959
|
args: ["class.k-pager-sizes"]
|
|
@@ -1068,30 +1144,6 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
1068
1144
|
}
|
|
1069
1145
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
1070
1146
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerNumericButtonsComponent, isStandalone: true, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: { buttonCount: "buttonCount", size: "size" }, viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["select"], descendants: true, read: ElementRef }, { propertyName: "numbersElement", first: true, predicate: ["numbers"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
|
|
1071
|
-
<select kendoPagerFocusable #select
|
|
1072
|
-
class="k-hidden k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
1073
|
-
[attr.title]="pageChooserLabel"
|
|
1074
|
-
[attr.aria-label]="pageChooserLabel"
|
|
1075
|
-
(change)="onSelectChange($event)">
|
|
1076
|
-
<option *ngIf="start > 1"
|
|
1077
|
-
value="previousButtons"
|
|
1078
|
-
[selected]="false"
|
|
1079
|
-
[attr.aria-label]="pageLabel(start - 1)">...
|
|
1080
|
-
</option>
|
|
1081
|
-
<option *ngFor="let num of buttons"
|
|
1082
|
-
[value]="num.toString()"
|
|
1083
|
-
[selected]="num === currentPage"
|
|
1084
|
-
[attr.aria-label]="pageLabel(num)"
|
|
1085
|
-
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
1086
|
-
[ngClass]="{'k-selected':currentPage === num}">
|
|
1087
|
-
{{num}}
|
|
1088
|
-
</option>
|
|
1089
|
-
<option *ngIf="end < totalPages"
|
|
1090
|
-
value="nextButtons"
|
|
1091
|
-
[selected]="false"
|
|
1092
|
-
[attr.aria-label]="pageLabel(end + 1)">...
|
|
1093
|
-
</option>
|
|
1094
|
-
</select>
|
|
1095
1147
|
<div class="k-pager-numbers" #numbers>
|
|
1096
1148
|
<button *ngIf="start > 1"
|
|
1097
1149
|
type="button"
|
|
@@ -1131,7 +1183,7 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
1131
1183
|
[attr.title]="pageLabel(end + 1)"
|
|
1132
1184
|
(click)="changePage(end)">...</button>
|
|
1133
1185
|
</div>
|
|
1134
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "
|
|
1186
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1135
1187
|
}
|
|
1136
1188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNumericButtonsComponent, decorators: [{
|
|
1137
1189
|
type: Component,
|
|
@@ -1139,30 +1191,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1139
1191
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1140
1192
|
selector: 'kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons',
|
|
1141
1193
|
template: `
|
|
1142
|
-
<select kendoPagerFocusable #select
|
|
1143
|
-
class="k-hidden k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
1144
|
-
[attr.title]="pageChooserLabel"
|
|
1145
|
-
[attr.aria-label]="pageChooserLabel"
|
|
1146
|
-
(change)="onSelectChange($event)">
|
|
1147
|
-
<option *ngIf="start > 1"
|
|
1148
|
-
value="previousButtons"
|
|
1149
|
-
[selected]="false"
|
|
1150
|
-
[attr.aria-label]="pageLabel(start - 1)">...
|
|
1151
|
-
</option>
|
|
1152
|
-
<option *ngFor="let num of buttons"
|
|
1153
|
-
[value]="num.toString()"
|
|
1154
|
-
[selected]="num === currentPage"
|
|
1155
|
-
[attr.aria-label]="pageLabel(num)"
|
|
1156
|
-
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
1157
|
-
[ngClass]="{'k-selected':currentPage === num}">
|
|
1158
|
-
{{num}}
|
|
1159
|
-
</option>
|
|
1160
|
-
<option *ngIf="end < totalPages"
|
|
1161
|
-
value="nextButtons"
|
|
1162
|
-
[selected]="false"
|
|
1163
|
-
[attr.aria-label]="pageLabel(end + 1)">...
|
|
1164
|
-
</option>
|
|
1165
|
-
</select>
|
|
1166
1194
|
<div class="k-pager-numbers" #numbers>
|
|
1167
1195
|
<button *ngIf="start > 1"
|
|
1168
1196
|
type="button"
|
|
@@ -1204,7 +1232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1204
1232
|
</div>
|
|
1205
1233
|
`,
|
|
1206
1234
|
standalone: true,
|
|
1207
|
-
imports: [PagerFocusableDirective, NgIf, NgFor,
|
|
1235
|
+
imports: [PagerFocusableDirective, NgIf, NgFor, ButtonComponent]
|
|
1208
1236
|
}]
|
|
1209
1237
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: i0.Renderer2 }]; }, propDecorators: { selectElement: [{
|
|
1210
1238
|
type: ViewChild,
|
|
@@ -1344,6 +1372,11 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1344
1372
|
zone;
|
|
1345
1373
|
renderer;
|
|
1346
1374
|
numericInput;
|
|
1375
|
+
/**
|
|
1376
|
+
* Controls the visibility of the page text label.
|
|
1377
|
+
* @hidden
|
|
1378
|
+
*/
|
|
1379
|
+
showPageText = true;
|
|
1347
1380
|
/**
|
|
1348
1381
|
* Specifies the padding of the internal numeric input element.
|
|
1349
1382
|
*
|
|
@@ -1417,9 +1450,9 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1417
1450
|
return this.totalPages !== 0;
|
|
1418
1451
|
}
|
|
1419
1452
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInputComponent, deps: [{ token: i1.LocalizationService }, { token: PagerContextService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
1420
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerInputComponent, isStandalone: true, selector: "kendo-datapager-input, kendo-pager-input", inputs: { size: "size" }, viewQueries: [{ propertyName: "numericInput", first: true, predicate: NumericTextBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
|
|
1453
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", 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: `
|
|
1421
1454
|
<span class="k-pager-input">
|
|
1422
|
-
{{textFor('page')}}
|
|
1455
|
+
<ng-container *ngIf="showPageText">{{textFor('page')}}</ng-container>
|
|
1423
1456
|
<kendo-numerictextbox kendoPagerFocusable
|
|
1424
1457
|
[spinners]="false"
|
|
1425
1458
|
[decimals]="0"
|
|
@@ -1441,7 +1474,7 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1441
1474
|
</kendo-numerictextbox>
|
|
1442
1475
|
{{textFor('of')}} {{totalPages}}
|
|
1443
1476
|
</span>
|
|
1444
|
-
`, 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"] }] });
|
|
1477
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }] });
|
|
1445
1478
|
}
|
|
1446
1479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInputComponent, decorators: [{
|
|
1447
1480
|
type: Component,
|
|
@@ -1449,7 +1482,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1449
1482
|
selector: 'kendo-datapager-input, kendo-pager-input',
|
|
1450
1483
|
template: `
|
|
1451
1484
|
<span class="k-pager-input">
|
|
1452
|
-
{{textFor('page')}}
|
|
1485
|
+
<ng-container *ngIf="showPageText">{{textFor('page')}}</ng-container>
|
|
1453
1486
|
<kendo-numerictextbox kendoPagerFocusable
|
|
1454
1487
|
[spinners]="false"
|
|
1455
1488
|
[decimals]="0"
|
|
@@ -1473,11 +1506,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1473
1506
|
</span>
|
|
1474
1507
|
`,
|
|
1475
1508
|
standalone: true,
|
|
1476
|
-
imports: [NgClass, NumericTextBoxComponent, PagerFocusableDirective, EventsOutsideAngularDirective]
|
|
1509
|
+
imports: [NgClass, NgIf, NumericTextBoxComponent, PagerFocusableDirective, EventsOutsideAngularDirective]
|
|
1477
1510
|
}]
|
|
1478
1511
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: PagerContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { numericInput: [{
|
|
1479
1512
|
type: ViewChild,
|
|
1480
1513
|
args: [NumericTextBoxComponent, { static: true }]
|
|
1514
|
+
}], showPageText: [{
|
|
1515
|
+
type: Input
|
|
1481
1516
|
}], size: [{
|
|
1482
1517
|
type: Input
|
|
1483
1518
|
}] } });
|
|
@@ -1550,28 +1585,40 @@ const packageMetadata = {
|
|
|
1550
1585
|
productName: 'Kendo UI for Angular',
|
|
1551
1586
|
productCode: 'KENDOUIANGULAR',
|
|
1552
1587
|
productCodes: ['KENDOUIANGULAR'],
|
|
1553
|
-
publishDate:
|
|
1554
|
-
version: '19.0.0
|
|
1588
|
+
publishDate: 1748362420,
|
|
1589
|
+
version: '19.0.0',
|
|
1555
1590
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
1556
1591
|
};
|
|
1557
1592
|
|
|
1558
|
-
/**
|
|
1559
|
-
* @hidden
|
|
1560
|
-
*/
|
|
1561
|
-
const RESPONSIVE_BREAKPOINT_MEDIUM = 600;
|
|
1562
|
-
/**
|
|
1563
|
-
* @hidden
|
|
1564
|
-
*/
|
|
1565
|
-
const RESPONSIVE_BREAKPOINT_LARGE = 768;
|
|
1566
|
-
|
|
1567
1593
|
class PagerComponent {
|
|
1568
1594
|
pagerContext;
|
|
1569
1595
|
element;
|
|
1570
1596
|
localization;
|
|
1571
1597
|
renderer;
|
|
1572
1598
|
ngZone;
|
|
1599
|
+
cdr;
|
|
1573
1600
|
navigationService;
|
|
1574
1601
|
template;
|
|
1602
|
+
set numericButtons(buttons) {
|
|
1603
|
+
const newWidth = buttons ? buttons.nativeElement?.offsetWidth : 0;
|
|
1604
|
+
if (buttons && newWidth !== this.pagerDimensions.numericButtonsWidth) {
|
|
1605
|
+
this.pagerDimensions.numericButtonsWidth = newWidth;
|
|
1606
|
+
}
|
|
1607
|
+
}
|
|
1608
|
+
set pagerInput(input) {
|
|
1609
|
+
const newWidth = input ? input.nativeElement?.offsetWidth : 0;
|
|
1610
|
+
if (input && newWidth !== this.pagerDimensions.inputWidth) {
|
|
1611
|
+
this.pagerDimensions.inputWidth = newWidth;
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
pagerInputComponent;
|
|
1615
|
+
set pageSizes(sizes) {
|
|
1616
|
+
const newWidth = sizes ? sizes.nativeElement?.offsetWidth : 0;
|
|
1617
|
+
if (sizes && newWidth !== this.pagerDimensions.pageSizesWidth) {
|
|
1618
|
+
this.pagerDimensions.pageSizesWidth = newWidth;
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
pageSizesComponent;
|
|
1575
1622
|
/**
|
|
1576
1623
|
* @hidden
|
|
1577
1624
|
*/
|
|
@@ -1624,6 +1671,9 @@ class PagerComponent {
|
|
|
1624
1671
|
this._pageSizeValues = value;
|
|
1625
1672
|
}
|
|
1626
1673
|
}
|
|
1674
|
+
get pageSizeValues() {
|
|
1675
|
+
return this._pageSizeValues;
|
|
1676
|
+
}
|
|
1627
1677
|
/**
|
|
1628
1678
|
* Toggles the **Previous** and **Next** buttons.
|
|
1629
1679
|
*
|
|
@@ -1632,8 +1682,8 @@ class PagerComponent {
|
|
|
1632
1682
|
previousNext = true;
|
|
1633
1683
|
/**
|
|
1634
1684
|
* If set to `true`, the user can use dedicated shortcuts to interact with the Pager ([see example]({% slug keyboard_navigation_pager %})).
|
|
1635
|
-
* By default, navigation is
|
|
1636
|
-
* @default
|
|
1685
|
+
* By default, navigation is enabled. To disable it and make the Pager content accessible in the normal tab sequence, set the property to `false`.
|
|
1686
|
+
* @default true
|
|
1637
1687
|
*/
|
|
1638
1688
|
set navigable(value) {
|
|
1639
1689
|
this._navigable = value;
|
|
@@ -1660,12 +1710,17 @@ class PagerComponent {
|
|
|
1660
1710
|
return this._size;
|
|
1661
1711
|
}
|
|
1662
1712
|
/**
|
|
1663
|
-
*
|
|
1664
|
-
* Toggles the Pager responsive functionality.
|
|
1713
|
+
* Toggles the Pager responsive functionality ([see example](slug:responsive_pager)).
|
|
1665
1714
|
*
|
|
1666
1715
|
* @default true
|
|
1667
1716
|
*/
|
|
1668
1717
|
responsive = true;
|
|
1718
|
+
/**
|
|
1719
|
+
* Toggles the Pager adaptiveness functionality ([see example](slug:adaptive_mode_pager)).
|
|
1720
|
+
*
|
|
1721
|
+
* @default 'auto'
|
|
1722
|
+
*/
|
|
1723
|
+
adaptiveMode = 'auto';
|
|
1669
1724
|
/**
|
|
1670
1725
|
* Fires when the current page of the Pager is changed ([see example](slug:overview_pager)).
|
|
1671
1726
|
* You have to handle the event yourself and page the data.
|
|
@@ -1677,7 +1732,22 @@ class PagerComponent {
|
|
|
1677
1732
|
* If the event is prevented, the page size will remain unchanged ([see example]({% slug pager_events %})).
|
|
1678
1733
|
*/
|
|
1679
1734
|
pageSizeChange = new EventEmitter();
|
|
1735
|
+
/**
|
|
1736
|
+
* @hidden
|
|
1737
|
+
*/
|
|
1738
|
+
pagerInputVisibilityChange = new EventEmitter();
|
|
1739
|
+
/**
|
|
1740
|
+
* @hidden
|
|
1741
|
+
*/
|
|
1742
|
+
pageTextVisibilityChange = new EventEmitter();
|
|
1743
|
+
/**
|
|
1744
|
+
* @hidden
|
|
1745
|
+
*/
|
|
1746
|
+
itemsTextVisibilityChange = new EventEmitter();
|
|
1680
1747
|
pagerClass = true;
|
|
1748
|
+
get responsiveClass() {
|
|
1749
|
+
return this.responsive;
|
|
1750
|
+
}
|
|
1681
1751
|
widgetRole = 'application';
|
|
1682
1752
|
roleDescription = 'pager';
|
|
1683
1753
|
keyShortcuts = 'Enter ArrowRight ArrowLeft';
|
|
@@ -1709,19 +1779,76 @@ class PagerComponent {
|
|
|
1709
1779
|
context.currentPage = this.currentPage;
|
|
1710
1780
|
return context;
|
|
1711
1781
|
}
|
|
1782
|
+
/**
|
|
1783
|
+
* @hidden
|
|
1784
|
+
*/
|
|
1785
|
+
get showPageText() {
|
|
1786
|
+
return this._showPageText;
|
|
1787
|
+
}
|
|
1788
|
+
set showPageText(value) {
|
|
1789
|
+
this._showPageText = value;
|
|
1790
|
+
this.pagerInputComponent && (this.pagerInputComponent.showPageText = value);
|
|
1791
|
+
this.pageTextVisibilityChange.emit(value);
|
|
1792
|
+
}
|
|
1793
|
+
/**
|
|
1794
|
+
* @hidden
|
|
1795
|
+
*/
|
|
1796
|
+
get showItemsText() {
|
|
1797
|
+
return this._showItemsText;
|
|
1798
|
+
}
|
|
1799
|
+
set showItemsText(value) {
|
|
1800
|
+
this._showItemsText = value;
|
|
1801
|
+
this.pageSizesComponent && (this.pageSizesComponent.showItemsText = value);
|
|
1802
|
+
this.itemsTextVisibilityChange.emit(value);
|
|
1803
|
+
}
|
|
1804
|
+
/**
|
|
1805
|
+
* @hidden
|
|
1806
|
+
*/
|
|
1807
|
+
get showInput() {
|
|
1808
|
+
return this._showInput;
|
|
1809
|
+
}
|
|
1810
|
+
set showInput(value) {
|
|
1811
|
+
this._showInput = value;
|
|
1812
|
+
this.pagerInputVisibilityChange.emit(value);
|
|
1813
|
+
}
|
|
1814
|
+
/**
|
|
1815
|
+
* @hidden
|
|
1816
|
+
*/
|
|
1817
|
+
initialized = false;
|
|
1712
1818
|
subscriptions = new Subscription();
|
|
1713
1819
|
_templateContext = {};
|
|
1714
1820
|
_pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;
|
|
1715
1821
|
direction;
|
|
1716
1822
|
isInnerNavigationEnabled = false;
|
|
1717
|
-
_navigable =
|
|
1823
|
+
_navigable = true;
|
|
1718
1824
|
_size = DEFAULT_SIZE;
|
|
1719
|
-
|
|
1825
|
+
_showInput = true;
|
|
1826
|
+
_showPageText = true;
|
|
1827
|
+
_showItemsText = true;
|
|
1828
|
+
/**
|
|
1829
|
+
* Stores the measurements of various Pager elements.
|
|
1830
|
+
* These dimensions are used for responsive layout calculations.
|
|
1831
|
+
* @hidden
|
|
1832
|
+
*/
|
|
1833
|
+
pagerDimensions = {
|
|
1834
|
+
padding: 0,
|
|
1835
|
+
numericButtonsWidth: 0,
|
|
1836
|
+
inputWidth: 0,
|
|
1837
|
+
pageSizesWidth: 0,
|
|
1838
|
+
sizesTextWidth: 0,
|
|
1839
|
+
pageTextWidth: 0,
|
|
1840
|
+
infoTextWidth: 0,
|
|
1841
|
+
gapNumbersSizes: 0,
|
|
1842
|
+
gapSizesInfo: 0,
|
|
1843
|
+
width: 0
|
|
1844
|
+
};
|
|
1845
|
+
constructor(pagerContext, element, localization, renderer, ngZone, cdr, navigationService) {
|
|
1720
1846
|
this.pagerContext = pagerContext;
|
|
1721
1847
|
this.element = element;
|
|
1722
1848
|
this.localization = localization;
|
|
1723
1849
|
this.renderer = renderer;
|
|
1724
1850
|
this.ngZone = ngZone;
|
|
1851
|
+
this.cdr = cdr;
|
|
1725
1852
|
this.navigationService = navigationService;
|
|
1726
1853
|
validatePackage(packageMetadata);
|
|
1727
1854
|
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
@@ -1738,6 +1865,8 @@ class PagerComponent {
|
|
|
1738
1865
|
this.subscriptions.add(this.pagerContext.pageSizeChange.subscribe(this.changePageSize.bind(this)));
|
|
1739
1866
|
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
1740
1867
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
1868
|
+
this.measureAllTextWidths();
|
|
1869
|
+
this.responsive && this.resizeHandler();
|
|
1741
1870
|
}));
|
|
1742
1871
|
this.subscriptions.add(this.navigationService.innerNavigationChange.subscribe(this.innerNavigationChange.bind(this)));
|
|
1743
1872
|
if (this.navigable) {
|
|
@@ -1747,25 +1876,67 @@ class PagerComponent {
|
|
|
1747
1876
|
});
|
|
1748
1877
|
}
|
|
1749
1878
|
}
|
|
1879
|
+
get maxItems() {
|
|
1880
|
+
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
1881
|
+
}
|
|
1750
1882
|
ngAfterViewInit() {
|
|
1751
|
-
this.responsive && this.resizeHandler();
|
|
1752
1883
|
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
1753
1884
|
this.subscriptions.add(this.template.changes.subscribe(() => {
|
|
1754
|
-
this.
|
|
1885
|
+
this.measureAllTextWidths();
|
|
1886
|
+
this.responsive && this.resizeHandler(false);
|
|
1755
1887
|
}));
|
|
1756
1888
|
this.handleClasses(this.size, 'size');
|
|
1889
|
+
this.measureAllTextWidths();
|
|
1890
|
+
!this.numericButtons && (this.pagerDimensions.numericButtonsWidth = this.element.nativeElement.querySelector('.k-pager-numbers')?.offsetWidth ?? 0);
|
|
1891
|
+
!this.pagerInput && (this.pagerDimensions.inputWidth = this.element.nativeElement.querySelector('.k-pager-input')?.offsetWidth ?? 0);
|
|
1892
|
+
!this.pageSizes && (this.pagerDimensions.pageSizesWidth = this.element.nativeElement.querySelector('.k-pager-sizes')?.offsetWidth ?? 0);
|
|
1893
|
+
const padding = calculatePadding(this.element.nativeElement);
|
|
1894
|
+
this.pagerDimensions.padding = padding.padding;
|
|
1895
|
+
this.pagerDimensions.gapNumbersSizes = padding.gapNumbersSizes;
|
|
1896
|
+
this.pagerDimensions.gapSizesInfo = padding.gapSizesInfo;
|
|
1897
|
+
this.ngZone.onStable.pipe(take(1)).subscribe(() => {
|
|
1898
|
+
if (this.type !== 'input') {
|
|
1899
|
+
this.showInput = false;
|
|
1900
|
+
}
|
|
1901
|
+
});
|
|
1902
|
+
if (!isDocumentAvailable()) {
|
|
1903
|
+
this.initialized = true;
|
|
1904
|
+
return;
|
|
1905
|
+
}
|
|
1906
|
+
this.responsive && this.resizeHandler();
|
|
1907
|
+
setTimeout(() => {
|
|
1908
|
+
this.initialized = true;
|
|
1909
|
+
this.cdr.markForCheck();
|
|
1910
|
+
}, 0);
|
|
1757
1911
|
}
|
|
1758
1912
|
ngOnChanges(changes) {
|
|
1759
1913
|
if (anyChanged(["pageSize", "skip", "total"], changes, false)) {
|
|
1914
|
+
const previousButtonCount = Math.min(this.buttonCount, (changes['total']?.previousValue || this.total) / (changes['pageSize']?.previousValue || this.pageSize));
|
|
1760
1915
|
this.pagerContext.notifyChanges({
|
|
1761
1916
|
pageSize: this.pageSize,
|
|
1762
1917
|
skip: this.skip,
|
|
1763
1918
|
total: this.total
|
|
1764
1919
|
});
|
|
1920
|
+
this.pagerDimensions.numericButtonsWidth = (this.pagerDimensions.numericButtonsWidth * Math.min(this.buttonCount, this.total / this.pageSize)) / previousButtonCount;
|
|
1765
1921
|
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
1922
|
+
this.responsive && this.resizeHandler(false);
|
|
1766
1923
|
}
|
|
1767
|
-
if (
|
|
1768
|
-
this.responsive && this.resizeHandler();
|
|
1924
|
+
if (anyChanged(["pageSizeValues", "previousNext", "buttonCount"], changes, true)) {
|
|
1925
|
+
this.responsive && this.resizeHandler(false);
|
|
1926
|
+
}
|
|
1927
|
+
if (isChanged('responsive', changes, true)) {
|
|
1928
|
+
if (changes['responsive'].currentValue && !changes['responsive'].previousValue) {
|
|
1929
|
+
this.measureAllTextWidths();
|
|
1930
|
+
this.resizeHandler(false);
|
|
1931
|
+
}
|
|
1932
|
+
if (!this.responsive) {
|
|
1933
|
+
this.showInput = this.type === 'input';
|
|
1934
|
+
this.showElementsInOrder(this.element.nativeElement.offsetWidth, this.pagerDimensions.width);
|
|
1935
|
+
}
|
|
1936
|
+
}
|
|
1937
|
+
if (isChanged('type', changes, true)) {
|
|
1938
|
+
this.showNumericButtonsResponsive();
|
|
1939
|
+
this.responsive && this.resizeHandler(false);
|
|
1769
1940
|
}
|
|
1770
1941
|
}
|
|
1771
1942
|
ngOnDestroy() {
|
|
@@ -1803,44 +1974,47 @@ class PagerComponent {
|
|
|
1803
1974
|
/**
|
|
1804
1975
|
* @hidden
|
|
1805
1976
|
*/
|
|
1806
|
-
resizeHandler = () => {
|
|
1977
|
+
resizeHandler = (compareWidth = true) => {
|
|
1807
1978
|
if (this.template?.first && !this.responsive) {
|
|
1808
1979
|
return;
|
|
1809
1980
|
}
|
|
1810
|
-
|
|
1981
|
+
if (!isDocumentAvailable() || !this.element?.nativeElement) {
|
|
1982
|
+
this.initialized = true;
|
|
1983
|
+
return;
|
|
1984
|
+
}
|
|
1985
|
+
let pagerWidth = this.element.nativeElement.offsetWidth;
|
|
1986
|
+
if (pagerWidth <= 0) {
|
|
1987
|
+
return;
|
|
1988
|
+
}
|
|
1989
|
+
if (compareWidth && pagerWidth === this.pagerDimensions.width) {
|
|
1990
|
+
return;
|
|
1991
|
+
}
|
|
1992
|
+
else {
|
|
1993
|
+
this.pagerDimensions.width = pagerWidth;
|
|
1994
|
+
}
|
|
1811
1995
|
this.ngZone.runOutsideAngular(() => {
|
|
1812
1996
|
setTimeout(() => {
|
|
1813
|
-
|
|
1997
|
+
if (this.template?.first && !this.responsive) {
|
|
1998
|
+
return;
|
|
1999
|
+
}
|
|
2000
|
+
const numericButtonsWrapperElement = this.element.nativeElement.querySelector('.k-pager-numbers-wrap');
|
|
1814
2001
|
const pagerInfoElement = this.element.nativeElement.querySelector('.k-pager-info');
|
|
1815
2002
|
const pagerPageSizes = this.element.nativeElement.querySelector('.k-pager-sizes');
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
|
|
1820
|
-
this.renderer.removeClass(selectElement, 'k-hidden');
|
|
1821
|
-
this.renderer.addClass(numbersElement, 'k-hidden');
|
|
1822
|
-
}
|
|
1823
|
-
else {
|
|
1824
|
-
this.renderer.addClass(selectElement, 'k-hidden');
|
|
1825
|
-
this.renderer.removeClass(numbersElement, 'k-hidden');
|
|
1826
|
-
}
|
|
2003
|
+
let elementsWidths = numericButtonsWrapperElement?.offsetWidth + (pagerPageSizes?.offsetWidth || 0) + (pagerInfoElement?.offsetWidth > 0 ? Math.min(this.pagerDimensions.infoTextWidth) : 0);
|
|
2004
|
+
if (this.isElementVisible(pagerInfoElement)) {
|
|
2005
|
+
elementsWidths += this.pagerDimensions.gapSizesInfo;
|
|
1827
2006
|
}
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
}
|
|
1832
|
-
else {
|
|
1833
|
-
this.renderer.removeClass(pagerInfoElement, 'k-hidden');
|
|
1834
|
-
}
|
|
2007
|
+
pagerWidth -= this.pagerDimensions.padding;
|
|
2008
|
+
if (this.isElementVisible(pagerPageSizes)) {
|
|
2009
|
+
pagerWidth -= this.pagerDimensions.gapNumbersSizes;
|
|
1835
2010
|
}
|
|
1836
|
-
if (
|
|
1837
|
-
|
|
1838
|
-
this.renderer.addClass(pagerPageSizes, 'k-hidden');
|
|
1839
|
-
}
|
|
1840
|
-
else {
|
|
1841
|
-
this.renderer.removeClass(pagerPageSizes, 'k-hidden');
|
|
1842
|
-
}
|
|
2011
|
+
if (Math.ceil(elementsWidths) <= pagerWidth) {
|
|
2012
|
+
this.showElementsInOrder(pagerWidth, elementsWidths);
|
|
1843
2013
|
}
|
|
2014
|
+
else {
|
|
2015
|
+
this.hideElementsInOrder(pagerWidth, elementsWidths);
|
|
2016
|
+
}
|
|
2017
|
+
!this.initialized && this.ngZone.onStable.pipe(take(1)).subscribe(() => this.initialized = true);
|
|
1844
2018
|
});
|
|
1845
2019
|
});
|
|
1846
2020
|
};
|
|
@@ -1918,8 +2092,183 @@ class PagerComponent {
|
|
|
1918
2092
|
this.renderer.addClass(elem, classes.toAdd);
|
|
1919
2093
|
}
|
|
1920
2094
|
}
|
|
1921
|
-
|
|
1922
|
-
|
|
2095
|
+
showElementsInOrder(availableWidth, currentWidth) {
|
|
2096
|
+
const el = this.element.nativeElement;
|
|
2097
|
+
const numericButtonsElement = el.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
2098
|
+
const pagerInfoElement = el.querySelector('.k-pager-info');
|
|
2099
|
+
const pagerPageSizes = el.querySelector('.k-pager-sizes');
|
|
2100
|
+
const pagerSizesDropDown = el.querySelector('.k-pager-sizes .k-dropdownlist');
|
|
2101
|
+
const checkOverflow = this.responsive;
|
|
2102
|
+
if (this.type === 'input' && this.isElementVisible(pagerInfoElement) || this.isElementVisible(numericButtonsElement)) {
|
|
2103
|
+
return;
|
|
2104
|
+
}
|
|
2105
|
+
if (this.showPageSizes && !this.isElementVisible(pagerPageSizes)) {
|
|
2106
|
+
const addDropDownWidth = currentWidth + this.pagerDimensions.pageSizesWidth + this.pagerDimensions.gapNumbersSizes - this.pagerDimensions.sizesTextWidth;
|
|
2107
|
+
if (checkOverflow && addDropDownWidth > availableWidth)
|
|
2108
|
+
return;
|
|
2109
|
+
this.ngZone.run(() => this.showItemsText = false);
|
|
2110
|
+
this.showElement(pagerPageSizes);
|
|
2111
|
+
currentWidth = addDropDownWidth;
|
|
2112
|
+
if (checkOverflow && currentWidth >= availableWidth)
|
|
2113
|
+
return;
|
|
2114
|
+
}
|
|
2115
|
+
if (this.showPageSizes && this.isElementVisible(pagerPageSizes) && !this.showItemsText) {
|
|
2116
|
+
const addPageSizesText = currentWidth - pagerSizesDropDown?.offsetWidth + this.pagerDimensions.pageSizesWidth;
|
|
2117
|
+
if (checkOverflow && addPageSizesText > availableWidth)
|
|
2118
|
+
return;
|
|
2119
|
+
this.ngZone.run(() => this.showItemsText = true);
|
|
2120
|
+
currentWidth = addPageSizesText;
|
|
2121
|
+
if (checkOverflow && currentWidth >= availableWidth)
|
|
2122
|
+
return;
|
|
2123
|
+
}
|
|
2124
|
+
if (!this.showPageText && (!this.showPageSizes || (this.isElementVisible(pagerPageSizes) && this.showItemsText))) {
|
|
2125
|
+
const addPageText = currentWidth + this.pagerDimensions.pageTextWidth;
|
|
2126
|
+
if (checkOverflow && addPageText > availableWidth)
|
|
2127
|
+
return;
|
|
2128
|
+
this.ngZone.run(() => this.showPageText = true);
|
|
2129
|
+
currentWidth = addPageText;
|
|
2130
|
+
if (checkOverflow && currentWidth >= availableWidth)
|
|
2131
|
+
return;
|
|
2132
|
+
}
|
|
2133
|
+
if (this.info && !this.isElementVisible(pagerInfoElement) && (!this.showPageSizes || (this.isElementVisible(pagerPageSizes) && this.showPageText))) {
|
|
2134
|
+
const addInfoText = currentWidth + this.pagerDimensions.infoTextWidth + this.pagerDimensions.gapSizesInfo;
|
|
2135
|
+
if (checkOverflow && addInfoText > availableWidth)
|
|
2136
|
+
return;
|
|
2137
|
+
this.ngZone.run(() => {
|
|
2138
|
+
this.showElement(pagerInfoElement);
|
|
2139
|
+
});
|
|
2140
|
+
currentWidth = addInfoText;
|
|
2141
|
+
}
|
|
2142
|
+
if (this.type === 'numeric' && (!this.info || this.isElementVisible(pagerInfoElement))) {
|
|
2143
|
+
const addNumericButtons = currentWidth - this.pagerDimensions.inputWidth + this.pagerDimensions.numericButtonsWidth;
|
|
2144
|
+
if (checkOverflow && addNumericButtons > availableWidth)
|
|
2145
|
+
return;
|
|
2146
|
+
this.showElement(numericButtonsElement);
|
|
2147
|
+
this.ngZone.run(() => {
|
|
2148
|
+
this.showInput = false;
|
|
2149
|
+
this.cdr.markForCheck();
|
|
2150
|
+
});
|
|
2151
|
+
}
|
|
2152
|
+
}
|
|
2153
|
+
hideElementsInOrder(availableWidth, currentWidth) {
|
|
2154
|
+
const el = this.element.nativeElement;
|
|
2155
|
+
const numericButtonsElement = el.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
2156
|
+
const pagerInfoElement = el.querySelector('.k-pager-info');
|
|
2157
|
+
const pagerPageSizes = el.querySelector('.k-pager-sizes');
|
|
2158
|
+
const pagerSizesDropDown = el.querySelector('.k-pager-sizes .k-dropdownlist');
|
|
2159
|
+
if (this.isElementVisible(numericButtonsElement)) {
|
|
2160
|
+
this.hideElement(numericButtonsElement);
|
|
2161
|
+
this.ngZone.run(() => this.showInput = true);
|
|
2162
|
+
currentWidth += this.pagerDimensions.inputWidth - this.pagerDimensions.numericButtonsWidth;
|
|
2163
|
+
if (currentWidth <= availableWidth)
|
|
2164
|
+
return;
|
|
2165
|
+
}
|
|
2166
|
+
if (this.isElementVisible(pagerInfoElement)) {
|
|
2167
|
+
this.hideElement(pagerInfoElement);
|
|
2168
|
+
currentWidth -= (this.pagerDimensions.infoTextWidth + this.pagerDimensions.gapSizesInfo);
|
|
2169
|
+
if (currentWidth <= availableWidth)
|
|
2170
|
+
return;
|
|
2171
|
+
}
|
|
2172
|
+
if (this.showPageText) {
|
|
2173
|
+
this.ngZone.run(() => this.showPageText = false);
|
|
2174
|
+
currentWidth = currentWidth - this.pagerDimensions.pageTextWidth;
|
|
2175
|
+
if (currentWidth <= availableWidth)
|
|
2176
|
+
return;
|
|
2177
|
+
}
|
|
2178
|
+
if (this.showPageSizes && this.isElementVisible(pagerPageSizes) && this.showItemsText) {
|
|
2179
|
+
this.ngZone.run(() => this.showItemsText = false);
|
|
2180
|
+
currentWidth = currentWidth - this.pagerDimensions.pageSizesWidth + pagerSizesDropDown?.offsetWidth;
|
|
2181
|
+
if (currentWidth <= availableWidth)
|
|
2182
|
+
return;
|
|
2183
|
+
}
|
|
2184
|
+
this.hideElement(pagerPageSizes);
|
|
2185
|
+
}
|
|
2186
|
+
isElementVisible(element) {
|
|
2187
|
+
return element && !element?.classList.contains('k-hidden');
|
|
2188
|
+
}
|
|
2189
|
+
hideElement(element) {
|
|
2190
|
+
if (element) {
|
|
2191
|
+
this.renderer.addClass(element, 'k-hidden');
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
showElement(element) {
|
|
2195
|
+
if (element) {
|
|
2196
|
+
this.renderer.removeClass(element, 'k-hidden');
|
|
2197
|
+
}
|
|
2198
|
+
}
|
|
2199
|
+
measureAllTextWidths() {
|
|
2200
|
+
if (!isDocumentAvailable()) {
|
|
2201
|
+
return;
|
|
2202
|
+
}
|
|
2203
|
+
const el = this.element.nativeElement;
|
|
2204
|
+
const existingInfo = el.querySelector('.k-pager-info');
|
|
2205
|
+
const existingInput = el.querySelector('.k-pager-input');
|
|
2206
|
+
const existingSizes = el.querySelector('.k-pager-sizes');
|
|
2207
|
+
// create a single measurement container
|
|
2208
|
+
const measureContainer = this.renderer.createElement('div');
|
|
2209
|
+
positionOffScreen(this.renderer, measureContainer);
|
|
2210
|
+
this.renderer.appendChild(this.element.nativeElement, measureContainer);
|
|
2211
|
+
const infoSpan = createMeasurementSpan(this.renderer, measureContainer, 'k-pager-info');
|
|
2212
|
+
const pageSpan = createMeasurementSpan(this.renderer, measureContainer, 'k-pager-input');
|
|
2213
|
+
const sizesSpan = createMeasurementSpan(this.renderer, measureContainer, 'k-pager-sizes');
|
|
2214
|
+
const infoText = `${this.currentPage} - ${this.maxItems} ${this.localization.get('of')} ${this.total} ${this.localization.get('items')}`;
|
|
2215
|
+
this.renderer.setProperty(infoSpan, 'textContent', infoText);
|
|
2216
|
+
this.renderer.setProperty(pageSpan, 'textContent', this.localization.get('page'));
|
|
2217
|
+
this.renderer.setProperty(sizesSpan, 'textContent', this.localization.get('itemsPerPage'));
|
|
2218
|
+
// copy computed styles if available
|
|
2219
|
+
if (existingInfo)
|
|
2220
|
+
copyComputedStyles(this.renderer, existingInfo, infoSpan);
|
|
2221
|
+
if (existingInput)
|
|
2222
|
+
copyComputedStyles(this.renderer, existingInput, pageSpan);
|
|
2223
|
+
if (existingSizes)
|
|
2224
|
+
copyComputedStyles(this.renderer, existingSizes, sizesSpan);
|
|
2225
|
+
// force a reflow to ensure measurements are accurate
|
|
2226
|
+
measureContainer.getBoundingClientRect();
|
|
2227
|
+
this.pagerDimensions.infoTextWidth = infoSpan?.offsetWidth;
|
|
2228
|
+
if (this.pagerDimensions.inputWidth && this.pagerDimensions.pageTextWidth) {
|
|
2229
|
+
this.pagerDimensions.inputWidth = this.pagerDimensions.inputWidth - this.pagerDimensions.pageTextWidth + pageSpan.offsetWidth;
|
|
2230
|
+
}
|
|
2231
|
+
this.pagerDimensions.pageTextWidth = pageSpan?.offsetWidth;
|
|
2232
|
+
if (this.pagerDimensions.pageSizesWidth && this.pagerDimensions.sizesTextWidth) {
|
|
2233
|
+
this.pagerDimensions.pageSizesWidth = this.pagerDimensions.pageSizesWidth - this.pagerDimensions.sizesTextWidth + sizesSpan.offsetWidth;
|
|
2234
|
+
}
|
|
2235
|
+
this.pagerDimensions.sizesTextWidth = sizesSpan?.offsetWidth;
|
|
2236
|
+
this.renderer.removeChild(this.element.nativeElement, measureContainer);
|
|
2237
|
+
}
|
|
2238
|
+
showNumericButtonsResponsive() {
|
|
2239
|
+
if (!isDocumentAvailable() || !this.element?.nativeElement) {
|
|
2240
|
+
return;
|
|
2241
|
+
}
|
|
2242
|
+
const numericButtonsElement = this.element.nativeElement.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
2243
|
+
const hasNumericButtons = this.numericButtons || numericButtonsElement;
|
|
2244
|
+
const hasInput = this.pagerInput || this.element.nativeElement.querySelector('.k-pager-input');
|
|
2245
|
+
if (!this.responsive || (!hasNumericButtons && !hasInput)) {
|
|
2246
|
+
this.showInput = this.type === 'input';
|
|
2247
|
+
return;
|
|
2248
|
+
}
|
|
2249
|
+
const pagerInfoElement = this.element.nativeElement.querySelector('.k-pager-info');
|
|
2250
|
+
if (this.type === 'input' || !this.isElementVisible(pagerInfoElement)) {
|
|
2251
|
+
this.showInput = true;
|
|
2252
|
+
return;
|
|
2253
|
+
}
|
|
2254
|
+
if (this.isElementVisible(numericButtonsElement)) {
|
|
2255
|
+
this.showInput = false;
|
|
2256
|
+
return;
|
|
2257
|
+
}
|
|
2258
|
+
const pagerWidth = this.element.nativeElement?.offsetWidth;
|
|
2259
|
+
const numericButtonsWrapperElement = this.element.nativeElement.querySelector('.k-pager-numbers-wrap');
|
|
2260
|
+
const elementsWidths = numericButtonsWrapperElement?.offsetWidth + this.pagerDimensions.pageSizesWidth + this.pagerDimensions.infoTextWidth + this.pagerDimensions.gapSizesInfo;
|
|
2261
|
+
const hasAvailableWidth = pagerWidth > elementsWidths - this.pagerDimensions.inputWidth + this.pagerDimensions.numericButtonsWidth;
|
|
2262
|
+
this.showInput = !hasAvailableWidth;
|
|
2263
|
+
}
|
|
2264
|
+
get showPageSizes() {
|
|
2265
|
+
if (typeof this.pageSizeValues === 'boolean') {
|
|
2266
|
+
return this.pageSizeValues;
|
|
2267
|
+
}
|
|
2268
|
+
return this.pageSizeValues?.length > 0;
|
|
2269
|
+
}
|
|
2270
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerComponent, deps: [{ token: PagerContextService, optional: true, skipSelf: true }, { token: i0.ElementRef }, { token: i1.LocalizationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: PagerNavigationService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
2271
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PagerComponent, isStandalone: true, selector: "kendo-datapager, kendo-pager", inputs: { externalTemplate: "externalTemplate", total: "total", skip: "skip", pageSize: "pageSize", buttonCount: "buttonCount", info: "info", type: "type", pageSizeValues: "pageSizeValues", previousNext: "previousNext", navigable: "navigable", size: "size", responsive: "responsive", 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: [
|
|
1923
2272
|
LocalizationService,
|
|
1924
2273
|
PagerContextService,
|
|
1925
2274
|
PagerNavigationService,
|
|
@@ -1927,7 +2276,7 @@ class PagerComponent {
|
|
|
1927
2276
|
provide: L10N_PREFIX,
|
|
1928
2277
|
useValue: 'kendo.pager'
|
|
1929
2278
|
}
|
|
1930
|
-
], queries: [{ propertyName: "template", predicate: PagerTemplateDirective }], exportAs: ["kendoDataPager", "kendoPager"], usesOnChanges: true, ngImport: i0, template: `
|
|
2279
|
+
], 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: `
|
|
1931
2280
|
<ng-container kendoPagerLocalizedMessages
|
|
1932
2281
|
i18n-ariaLabel="kendo.pager.ariaLabel|The value of the aria-label attribute of the Pager"
|
|
1933
2282
|
ariaLabel="{{ 'Page navigation, page {currentPage} of {totalPages}' }}"
|
|
@@ -1972,25 +2321,27 @@ class PagerComponent {
|
|
|
1972
2321
|
[ngTemplateOutletContext]="templateContext">
|
|
1973
2322
|
</ng-container>
|
|
1974
2323
|
<ng-template #default>
|
|
1975
|
-
<div class="k-pager-numbers-wrap">
|
|
2324
|
+
<div class="k-pager-numbers-wrap" [ngStyle]="{opacity: initialized ? null : '0'}">
|
|
1976
2325
|
<kendo-pager-prev-buttons [size]="size" *ngIf="previousNext"></kendo-pager-prev-buttons>
|
|
1977
2326
|
<kendo-pager-numeric-buttons
|
|
1978
2327
|
[size]="size"
|
|
1979
2328
|
*ngIf="type === 'numeric' && buttonCount > 0"
|
|
1980
2329
|
[buttonCount]="buttonCount">
|
|
1981
2330
|
</kendo-pager-numeric-buttons>
|
|
1982
|
-
<kendo-pager-input [size]="size" *ngIf="
|
|
2331
|
+
<kendo-pager-input [size]="size" *ngIf="showInput"></kendo-pager-input>
|
|
1983
2332
|
<kendo-pager-next-buttons [size]="size" *ngIf="previousNext"></kendo-pager-next-buttons>
|
|
1984
2333
|
</div>
|
|
1985
2334
|
<kendo-pager-page-sizes *ngIf="_pageSizeValues.length"
|
|
2335
|
+
[ngStyle]="{opacity: initialized ? null : '0'}"
|
|
1986
2336
|
[size]="size"
|
|
1987
|
-
[pageSizes]="_pageSizeValues"
|
|
2337
|
+
[pageSizes]="_pageSizeValues"
|
|
2338
|
+
[adaptiveMode]="adaptiveMode">
|
|
1988
2339
|
</kendo-pager-page-sizes>
|
|
1989
|
-
<kendo-pager-info *ngIf="info">
|
|
2340
|
+
<kendo-pager-info *ngIf="info" [ngStyle]="{opacity: initialized ? null : '0'}">
|
|
1990
2341
|
</kendo-pager-info>
|
|
1991
2342
|
</ng-template>
|
|
1992
2343
|
<kendo-resize-sensor *ngIf="responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
|
|
1993
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPagerLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "component", type: PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["size"] }, { kind: "component", type: PagerNextButtonsComponent, selector: "kendo-datapager-next-buttons, kendo-pager-next-buttons", inputs: ["size"] }, { kind: "component", type: PagerPageSizesComponent, selector: "kendo-datapager-page-sizes, kendo-pager-page-sizes", inputs: ["pageSizes", "size"] }, { kind: "component", type: PagerInfoComponent, selector: "kendo-datapager-info, kendo-pager-info" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
|
|
2344
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoPagerLocalizedMessages]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PagerPrevButtonsComponent, selector: "kendo-datapager-prev-buttons, kendo-pager-prev-buttons", inputs: ["size"] }, { kind: "component", type: PagerNumericButtonsComponent, selector: "kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons", inputs: ["buttonCount", "size"] }, { kind: "component", type: PagerInputComponent, selector: "kendo-datapager-input, kendo-pager-input", inputs: ["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"] }] });
|
|
1994
2345
|
}
|
|
1995
2346
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerComponent, decorators: [{
|
|
1996
2347
|
type: Component,
|
|
@@ -2051,39 +2402,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2051
2402
|
[ngTemplateOutletContext]="templateContext">
|
|
2052
2403
|
</ng-container>
|
|
2053
2404
|
<ng-template #default>
|
|
2054
|
-
<div class="k-pager-numbers-wrap">
|
|
2405
|
+
<div class="k-pager-numbers-wrap" [ngStyle]="{opacity: initialized ? null : '0'}">
|
|
2055
2406
|
<kendo-pager-prev-buttons [size]="size" *ngIf="previousNext"></kendo-pager-prev-buttons>
|
|
2056
2407
|
<kendo-pager-numeric-buttons
|
|
2057
2408
|
[size]="size"
|
|
2058
2409
|
*ngIf="type === 'numeric' && buttonCount > 0"
|
|
2059
2410
|
[buttonCount]="buttonCount">
|
|
2060
2411
|
</kendo-pager-numeric-buttons>
|
|
2061
|
-
<kendo-pager-input [size]="size" *ngIf="
|
|
2412
|
+
<kendo-pager-input [size]="size" *ngIf="showInput"></kendo-pager-input>
|
|
2062
2413
|
<kendo-pager-next-buttons [size]="size" *ngIf="previousNext"></kendo-pager-next-buttons>
|
|
2063
2414
|
</div>
|
|
2064
2415
|
<kendo-pager-page-sizes *ngIf="_pageSizeValues.length"
|
|
2416
|
+
[ngStyle]="{opacity: initialized ? null : '0'}"
|
|
2065
2417
|
[size]="size"
|
|
2066
|
-
[pageSizes]="_pageSizeValues"
|
|
2418
|
+
[pageSizes]="_pageSizeValues"
|
|
2419
|
+
[adaptiveMode]="adaptiveMode">
|
|
2067
2420
|
</kendo-pager-page-sizes>
|
|
2068
|
-
<kendo-pager-info *ngIf="info">
|
|
2421
|
+
<kendo-pager-info *ngIf="info" [ngStyle]="{opacity: initialized ? null : '0'}">
|
|
2069
2422
|
</kendo-pager-info>
|
|
2070
2423
|
</ng-template>
|
|
2071
2424
|
<kendo-resize-sensor *ngIf="responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
|
|
2072
2425
|
`,
|
|
2073
2426
|
standalone: true,
|
|
2074
|
-
imports: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent]
|
|
2427
|
+
imports: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent, NgStyle]
|
|
2075
2428
|
}]
|
|
2076
2429
|
}], ctorParameters: function () { return [{ type: PagerContextService, decorators: [{
|
|
2077
2430
|
type: Optional
|
|
2078
2431
|
}, {
|
|
2079
2432
|
type: SkipSelf
|
|
2080
|
-
}] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: PagerNavigationService, decorators: [{
|
|
2433
|
+
}] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: PagerNavigationService, decorators: [{
|
|
2081
2434
|
type: Optional
|
|
2082
2435
|
}, {
|
|
2083
2436
|
type: SkipSelf
|
|
2084
2437
|
}] }]; }, propDecorators: { template: [{
|
|
2085
2438
|
type: ContentChildren,
|
|
2086
2439
|
args: [PagerTemplateDirective]
|
|
2440
|
+
}], numericButtons: [{
|
|
2441
|
+
type: ViewChild,
|
|
2442
|
+
args: [PagerNumericButtonsComponent, { read: ElementRef }]
|
|
2443
|
+
}], pagerInput: [{
|
|
2444
|
+
type: ViewChild,
|
|
2445
|
+
args: [PagerInputComponent, { read: ElementRef }]
|
|
2446
|
+
}], pagerInputComponent: [{
|
|
2447
|
+
type: ViewChild,
|
|
2448
|
+
args: [PagerInputComponent]
|
|
2449
|
+
}], pageSizes: [{
|
|
2450
|
+
type: ViewChild,
|
|
2451
|
+
args: [PagerPageSizesComponent, { read: ElementRef }]
|
|
2452
|
+
}], pageSizesComponent: [{
|
|
2453
|
+
type: ViewChild,
|
|
2454
|
+
args: [PagerPageSizesComponent]
|
|
2087
2455
|
}], externalTemplate: [{
|
|
2088
2456
|
type: Input
|
|
2089
2457
|
}], total: [{
|
|
@@ -2108,13 +2476,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2108
2476
|
type: Input
|
|
2109
2477
|
}], responsive: [{
|
|
2110
2478
|
type: Input
|
|
2479
|
+
}], adaptiveMode: [{
|
|
2480
|
+
type: Input
|
|
2111
2481
|
}], pageChange: [{
|
|
2112
2482
|
type: Output
|
|
2113
2483
|
}], pageSizeChange: [{
|
|
2114
2484
|
type: Output
|
|
2485
|
+
}], pagerInputVisibilityChange: [{
|
|
2486
|
+
type: Output
|
|
2487
|
+
}], pageTextVisibilityChange: [{
|
|
2488
|
+
type: Output
|
|
2489
|
+
}], itemsTextVisibilityChange: [{
|
|
2490
|
+
type: Output
|
|
2115
2491
|
}], pagerClass: [{
|
|
2116
2492
|
type: HostBinding,
|
|
2117
2493
|
args: ['class.k-pager']
|
|
2494
|
+
}], responsiveClass: [{
|
|
2495
|
+
type: HostBinding,
|
|
2496
|
+
args: ['class.k-pager-responsive']
|
|
2118
2497
|
}], widgetRole: [{
|
|
2119
2498
|
type: HostBinding,
|
|
2120
2499
|
args: ['attr.role']
|