@progress/kendo-angular-pager 19.0.0-develop.2 → 19.0.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/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-next-buttons.component.mjs +14 -4
- package/esm2022/pager/pager-numeric-buttons.component.mjs +5 -53
- package/esm2022/pager/pager-page-sizes.component.mjs +30 -5
- package/esm2022/pager/pager-prev-buttons.component.mjs +14 -4
- package/esm2022/pager/pager.component.mjs +315 -53
- package/esm2022/util.mjs +48 -0
- package/fesm2022/progress-kendo-angular-pager.mjs +437 -132
- package/index.d.ts +1 -0
- package/package.json +8 -8
- package/pager/pager-input.component.d.ts +6 -1
- package/pager/pager-next-buttons.component.d.ts +4 -0
- package/pager/pager-page-sizes.component.d.ts +15 -1
- package/pager/pager-prev-buttons.component.d.ts +4 -0
- package/pager/pager.component.d.ts +44 -8
- 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 { isFocusable, Keys, EventsOutsideAngularDirective, isDocumentAvailable, anyChanged, 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,60 @@ 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
|
+
const computedStyle = window.getComputedStyle(element);
|
|
434
|
+
const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
|
|
435
|
+
const paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;
|
|
436
|
+
const padding = (paddingLeft + paddingRight) * 1.2; // account for rounding errors
|
|
437
|
+
const style = getComputedStyle(document.documentElement);
|
|
438
|
+
const gapNumbersSizes = 2 * (parseFloat(style.getPropertyValue('--kendo-spacing-3\\.5') || '0.875rem') * (parseFloat(getComputedStyle(document.documentElement).fontSize) || 16)); // convert rem to px
|
|
439
|
+
const gapSizesInfo = gapNumbersSizes;
|
|
440
|
+
return { padding, gapNumbersSizes, gapSizesInfo };
|
|
441
|
+
};
|
|
442
|
+
/**
|
|
443
|
+
* @hidden
|
|
444
|
+
*/
|
|
445
|
+
const createMeasurementSpan = (renderer, container, className) => {
|
|
446
|
+
const span = renderer.createElement('span');
|
|
447
|
+
renderer.appendChild(container, span);
|
|
448
|
+
renderer.addClass(span, className);
|
|
449
|
+
return span;
|
|
450
|
+
};
|
|
451
|
+
/**
|
|
452
|
+
* @hidden
|
|
453
|
+
*/
|
|
454
|
+
const copyComputedStyles = (renderer, source, destination) => {
|
|
455
|
+
const computedStyle = getComputedStyle(source);
|
|
456
|
+
const importantStyles = [
|
|
457
|
+
'font-family', 'font-size', 'font-weight', 'font-style',
|
|
458
|
+
'letter-spacing', 'text-transform', 'white-space', 'word-spacing',
|
|
459
|
+
'padding-left', 'padding-right', 'margin-left', 'margin-right',
|
|
460
|
+
'border-left-width', 'border-right-width', 'box-sizing'
|
|
461
|
+
];
|
|
462
|
+
importantStyles.forEach(style => {
|
|
463
|
+
renderer.setStyle(destination, style, computedStyle.getPropertyValue(style));
|
|
464
|
+
});
|
|
465
|
+
};
|
|
466
|
+
/**
|
|
467
|
+
*
|
|
468
|
+
* @hidden
|
|
469
|
+
*/
|
|
470
|
+
const positionOffScreen = (renderer, element) => {
|
|
471
|
+
renderer.setStyle(element, 'position', 'absolute');
|
|
472
|
+
renderer.setStyle(element, 'visibility', 'hidden');
|
|
473
|
+
renderer.setStyle(element, 'left', '-9999px');
|
|
474
|
+
renderer.setStyle(element, 'top', '-9999px');
|
|
475
|
+
renderer.setStyle(element, 'display', 'flex');
|
|
476
|
+
};
|
|
428
477
|
|
|
429
478
|
/**
|
|
430
479
|
* @hidden
|
|
431
480
|
*/
|
|
432
481
|
class PagerNavigationService {
|
|
433
|
-
isNavigable =
|
|
482
|
+
isNavigable = true;
|
|
434
483
|
innerNavigationChange = new Subject();
|
|
435
484
|
toggleInnerNavigation(value) {
|
|
436
485
|
this.innerNavigationChange.next(value);
|
|
@@ -537,6 +586,16 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
537
586
|
get disabled() {
|
|
538
587
|
return this.currentPage === 1 || !this.total;
|
|
539
588
|
}
|
|
589
|
+
/**
|
|
590
|
+
* @hidden
|
|
591
|
+
*/
|
|
592
|
+
onClick(isFirst = false) {
|
|
593
|
+
if (this.disabled) {
|
|
594
|
+
return false;
|
|
595
|
+
}
|
|
596
|
+
const targetPage = isFirst ? 0 : this.currentPage - 2;
|
|
597
|
+
return this.currentPage !== 1 ? this.changePage(targetPage) : false;
|
|
598
|
+
}
|
|
540
599
|
onChanges({ total, skip, pageSize }) {
|
|
541
600
|
this.total = total;
|
|
542
601
|
this.skip = skip;
|
|
@@ -558,7 +617,7 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
558
617
|
[size]="size"
|
|
559
618
|
[title]="textFor('firstPage')"
|
|
560
619
|
[attr.aria-label]="textFor('firstPage')"
|
|
561
|
-
(click)="
|
|
620
|
+
(click)="onClick(true)">
|
|
562
621
|
</button>
|
|
563
622
|
<button
|
|
564
623
|
type="button" kendoButton
|
|
@@ -573,7 +632,7 @@ class PagerPrevButtonsComponent extends PagerElementComponent {
|
|
|
573
632
|
[size]="size"
|
|
574
633
|
[title]="textFor('previousPage')"
|
|
575
634
|
[attr.aria-label]="textFor('previousPage')"
|
|
576
|
-
(click)="
|
|
635
|
+
(click)="onClick()">
|
|
577
636
|
</button>
|
|
578
637
|
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
579
638
|
}
|
|
@@ -596,7 +655,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
596
655
|
[size]="size"
|
|
597
656
|
[title]="textFor('firstPage')"
|
|
598
657
|
[attr.aria-label]="textFor('firstPage')"
|
|
599
|
-
(click)="
|
|
658
|
+
(click)="onClick(true)">
|
|
600
659
|
</button>
|
|
601
660
|
<button
|
|
602
661
|
type="button" kendoButton
|
|
@@ -611,7 +670,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
611
670
|
[size]="size"
|
|
612
671
|
[title]="textFor('previousPage')"
|
|
613
672
|
[attr.aria-label]="textFor('previousPage')"
|
|
614
|
-
(click)="
|
|
673
|
+
(click)="onClick()">
|
|
615
674
|
</button>
|
|
616
675
|
`,
|
|
617
676
|
standalone: true,
|
|
@@ -629,6 +688,18 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
629
688
|
element;
|
|
630
689
|
ngZone;
|
|
631
690
|
dropDownList;
|
|
691
|
+
_showItemsText = true;
|
|
692
|
+
/**
|
|
693
|
+
* Controls the visibility of the page text label.
|
|
694
|
+
* @hidden
|
|
695
|
+
*/
|
|
696
|
+
get showItemsText() {
|
|
697
|
+
return this._showItemsText;
|
|
698
|
+
}
|
|
699
|
+
set showItemsText(value) {
|
|
700
|
+
this._showItemsText = value;
|
|
701
|
+
this.cd.markForCheck();
|
|
702
|
+
}
|
|
632
703
|
/**
|
|
633
704
|
* The page sizes collection. Can contain numbers and [PageSizeItem]({% slug api_pager_pagesizeitem %}) objects.
|
|
634
705
|
*
|
|
@@ -780,6 +851,12 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
780
851
|
* * `none`
|
|
781
852
|
*/
|
|
782
853
|
size = DEFAULT_SIZE;
|
|
854
|
+
/**
|
|
855
|
+
* Toggles the adaptiveness of the internal DropDownList.
|
|
856
|
+
*
|
|
857
|
+
* @default 'auto'
|
|
858
|
+
*/
|
|
859
|
+
adaptiveMode = 'auto';
|
|
783
860
|
/**
|
|
784
861
|
* @hidden
|
|
785
862
|
*
|
|
@@ -826,7 +903,7 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
826
903
|
}
|
|
827
904
|
}
|
|
828
905
|
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 });
|
|
829
|
-
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: `
|
|
906
|
+
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: `
|
|
830
907
|
<kendo-dropdownlist kendoPagerFocusable
|
|
831
908
|
#dropdownlist
|
|
832
909
|
[size]="size"
|
|
@@ -836,9 +913,10 @@ class PagerPageSizesComponent extends PagerElementComponent {
|
|
|
836
913
|
[valuePrimitive]="true"
|
|
837
914
|
[value]="pageSize"
|
|
838
915
|
(valueChange)="pageSizeChange($event, dropdownlist)"
|
|
916
|
+
[adaptiveMode]="adaptiveMode"
|
|
839
917
|
[attr.aria-label]="textFor('itemsPerPage')"></kendo-dropdownlist>
|
|
840
|
-
{{ textFor('itemsPerPage') }}
|
|
841
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "
|
|
918
|
+
<ng-container *ngIf="showItemsText">{{ textFor('itemsPerPage') }}</ng-container>
|
|
919
|
+
`, 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 });
|
|
842
920
|
}
|
|
843
921
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
|
|
844
922
|
type: Component,
|
|
@@ -855,19 +933,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
855
933
|
[valuePrimitive]="true"
|
|
856
934
|
[value]="pageSize"
|
|
857
935
|
(valueChange)="pageSizeChange($event, dropdownlist)"
|
|
936
|
+
[adaptiveMode]="adaptiveMode"
|
|
858
937
|
[attr.aria-label]="textFor('itemsPerPage')"></kendo-dropdownlist>
|
|
859
|
-
{{ textFor('itemsPerPage') }}
|
|
938
|
+
<ng-container *ngIf="showItemsText">{{ textFor('itemsPerPage') }}</ng-container>
|
|
860
939
|
`,
|
|
861
940
|
standalone: true,
|
|
862
|
-
imports: [DropDownListComponent, PagerFocusableDirective]
|
|
941
|
+
imports: [DropDownListComponent, PagerFocusableDirective, NgIf]
|
|
863
942
|
}]
|
|
864
943
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { dropDownList: [{
|
|
865
944
|
type: ViewChild,
|
|
866
945
|
args: ['dropdownlist', { static: true }]
|
|
946
|
+
}], showItemsText: [{
|
|
947
|
+
type: Input
|
|
867
948
|
}], pageSizes: [{
|
|
868
949
|
type: Input
|
|
869
950
|
}], size: [{
|
|
870
951
|
type: Input
|
|
952
|
+
}], adaptiveMode: [{
|
|
953
|
+
type: Input
|
|
871
954
|
}], classes: [{
|
|
872
955
|
type: HostBinding,
|
|
873
956
|
args: ["class.k-pager-sizes"]
|
|
@@ -1058,30 +1141,6 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
1058
1141
|
}
|
|
1059
1142
|
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 });
|
|
1060
1143
|
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: `
|
|
1061
|
-
<select kendoPagerFocusable #select
|
|
1062
|
-
class="k-hidden k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
1063
|
-
[attr.title]="pageChooserLabel"
|
|
1064
|
-
[attr.aria-label]="pageChooserLabel"
|
|
1065
|
-
(change)="onSelectChange($event)">
|
|
1066
|
-
<option *ngIf="start > 1"
|
|
1067
|
-
value="previousButtons"
|
|
1068
|
-
[selected]="false"
|
|
1069
|
-
[attr.aria-label]="pageLabel(start - 1)">...
|
|
1070
|
-
</option>
|
|
1071
|
-
<option *ngFor="let num of buttons"
|
|
1072
|
-
[value]="num.toString()"
|
|
1073
|
-
[selected]="num === currentPage"
|
|
1074
|
-
[attr.aria-label]="pageLabel(num)"
|
|
1075
|
-
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
1076
|
-
[ngClass]="{'k-selected':currentPage === num}">
|
|
1077
|
-
{{num}}
|
|
1078
|
-
</option>
|
|
1079
|
-
<option *ngIf="end < totalPages"
|
|
1080
|
-
value="nextButtons"
|
|
1081
|
-
[selected]="false"
|
|
1082
|
-
[attr.aria-label]="pageLabel(end + 1)">...
|
|
1083
|
-
</option>
|
|
1084
|
-
</select>
|
|
1085
1144
|
<div class="k-pager-numbers" #numbers>
|
|
1086
1145
|
<button *ngIf="start > 1"
|
|
1087
1146
|
type="button"
|
|
@@ -1106,7 +1165,7 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
1106
1165
|
[attr.title]="pageLabel(num)"
|
|
1107
1166
|
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
1108
1167
|
[selected]="currentPage === num"
|
|
1109
|
-
(click)="changePage(num - 1)">
|
|
1168
|
+
(click)="currentPage === num ? false : changePage(num - 1)">
|
|
1110
1169
|
{{num}}
|
|
1111
1170
|
</button>
|
|
1112
1171
|
<button *ngIf="end < totalPages"
|
|
@@ -1121,7 +1180,7 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
|
|
|
1121
1180
|
[attr.title]="pageLabel(end + 1)"
|
|
1122
1181
|
(click)="changePage(end)">...</button>
|
|
1123
1182
|
</div>
|
|
1124
|
-
`, 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: "
|
|
1183
|
+
`, 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 });
|
|
1125
1184
|
}
|
|
1126
1185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerNumericButtonsComponent, decorators: [{
|
|
1127
1186
|
type: Component,
|
|
@@ -1129,30 +1188,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1129
1188
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1130
1189
|
selector: 'kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons',
|
|
1131
1190
|
template: `
|
|
1132
|
-
<select kendoPagerFocusable #select
|
|
1133
|
-
class="k-hidden k-dropdown-list k-dropdown k-picker k-picker-solid k-rounded-md"
|
|
1134
|
-
[attr.title]="pageChooserLabel"
|
|
1135
|
-
[attr.aria-label]="pageChooserLabel"
|
|
1136
|
-
(change)="onSelectChange($event)">
|
|
1137
|
-
<option *ngIf="start > 1"
|
|
1138
|
-
value="previousButtons"
|
|
1139
|
-
[selected]="false"
|
|
1140
|
-
[attr.aria-label]="pageLabel(start - 1)">...
|
|
1141
|
-
</option>
|
|
1142
|
-
<option *ngFor="let num of buttons"
|
|
1143
|
-
[value]="num.toString()"
|
|
1144
|
-
[selected]="num === currentPage"
|
|
1145
|
-
[attr.aria-label]="pageLabel(num)"
|
|
1146
|
-
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
1147
|
-
[ngClass]="{'k-selected':currentPage === num}">
|
|
1148
|
-
{{num}}
|
|
1149
|
-
</option>
|
|
1150
|
-
<option *ngIf="end < totalPages"
|
|
1151
|
-
value="nextButtons"
|
|
1152
|
-
[selected]="false"
|
|
1153
|
-
[attr.aria-label]="pageLabel(end + 1)">...
|
|
1154
|
-
</option>
|
|
1155
|
-
</select>
|
|
1156
1191
|
<div class="k-pager-numbers" #numbers>
|
|
1157
1192
|
<button *ngIf="start > 1"
|
|
1158
1193
|
type="button"
|
|
@@ -1177,7 +1212,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1177
1212
|
[attr.title]="pageLabel(num)"
|
|
1178
1213
|
[attr.aria-current]="currentPage === num ? 'page' : undefined"
|
|
1179
1214
|
[selected]="currentPage === num"
|
|
1180
|
-
(click)="changePage(num - 1)">
|
|
1215
|
+
(click)="currentPage === num ? false : changePage(num - 1)">
|
|
1181
1216
|
{{num}}
|
|
1182
1217
|
</button>
|
|
1183
1218
|
<button *ngIf="end < totalPages"
|
|
@@ -1194,7 +1229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1194
1229
|
</div>
|
|
1195
1230
|
`,
|
|
1196
1231
|
standalone: true,
|
|
1197
|
-
imports: [PagerFocusableDirective, NgIf, NgFor,
|
|
1232
|
+
imports: [PagerFocusableDirective, NgIf, NgFor, ButtonComponent]
|
|
1198
1233
|
}]
|
|
1199
1234
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }, { type: i0.Renderer2 }]; }, propDecorators: { selectElement: [{
|
|
1200
1235
|
type: ViewChild,
|
|
@@ -1236,6 +1271,16 @@ class PagerNextButtonsComponent extends PagerElementComponent {
|
|
|
1236
1271
|
constructor(localization, pagerContext, cd) {
|
|
1237
1272
|
super(localization, pagerContext, cd);
|
|
1238
1273
|
}
|
|
1274
|
+
/**
|
|
1275
|
+
* @hidden
|
|
1276
|
+
*/
|
|
1277
|
+
onClick(isLast = false) {
|
|
1278
|
+
if (this.disabled) {
|
|
1279
|
+
return false;
|
|
1280
|
+
}
|
|
1281
|
+
const targetPage = isLast ? this.totalPages - 1 : this.currentPage;
|
|
1282
|
+
return this.currentPage !== this.totalPages ? this.changePage(targetPage) : false;
|
|
1283
|
+
}
|
|
1239
1284
|
onChanges({ total, skip, pageSize }) {
|
|
1240
1285
|
this.total = total;
|
|
1241
1286
|
this.skip = skip;
|
|
@@ -1256,7 +1301,7 @@ class PagerNextButtonsComponent extends PagerElementComponent {
|
|
|
1256
1301
|
[class.k-disabled]="disabled"
|
|
1257
1302
|
[title]="textFor('nextPage')"
|
|
1258
1303
|
[attr.aria-label]="textFor('nextPage')"
|
|
1259
|
-
(click)="
|
|
1304
|
+
(click)="onClick()">
|
|
1260
1305
|
</button>
|
|
1261
1306
|
<button kendoButton kendoPagerFocusable
|
|
1262
1307
|
type="button"
|
|
@@ -1270,7 +1315,7 @@ class PagerNextButtonsComponent extends PagerElementComponent {
|
|
|
1270
1315
|
[class.k-disabled]="disabled"
|
|
1271
1316
|
[title]="textFor('lastPage')"
|
|
1272
1317
|
[attr.aria-label]="textFor('lastPage')"
|
|
1273
|
-
(click)="
|
|
1318
|
+
(click)="onClick(true)">
|
|
1274
1319
|
</button>
|
|
1275
1320
|
`, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: PagerFocusableDirective, selector: "[kendoPagerFocusable]", exportAs: ["kendoPagerFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1276
1321
|
}
|
|
@@ -1292,7 +1337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1292
1337
|
[class.k-disabled]="disabled"
|
|
1293
1338
|
[title]="textFor('nextPage')"
|
|
1294
1339
|
[attr.aria-label]="textFor('nextPage')"
|
|
1295
|
-
(click)="
|
|
1340
|
+
(click)="onClick()">
|
|
1296
1341
|
</button>
|
|
1297
1342
|
<button kendoButton kendoPagerFocusable
|
|
1298
1343
|
type="button"
|
|
@@ -1306,7 +1351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1306
1351
|
[class.k-disabled]="disabled"
|
|
1307
1352
|
[title]="textFor('lastPage')"
|
|
1308
1353
|
[attr.aria-label]="textFor('lastPage')"
|
|
1309
|
-
(click)="
|
|
1354
|
+
(click)="onClick(true)">
|
|
1310
1355
|
</button>
|
|
1311
1356
|
`,
|
|
1312
1357
|
standalone: true,
|
|
@@ -1324,6 +1369,11 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1324
1369
|
zone;
|
|
1325
1370
|
renderer;
|
|
1326
1371
|
numericInput;
|
|
1372
|
+
/**
|
|
1373
|
+
* Controls the visibility of the page text label.
|
|
1374
|
+
* @hidden
|
|
1375
|
+
*/
|
|
1376
|
+
showPageText = true;
|
|
1327
1377
|
/**
|
|
1328
1378
|
* Specifies the padding of the internal numeric input element.
|
|
1329
1379
|
*
|
|
@@ -1397,9 +1447,9 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1397
1447
|
return this.totalPages !== 0;
|
|
1398
1448
|
}
|
|
1399
1449
|
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 });
|
|
1400
|
-
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: `
|
|
1450
|
+
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: `
|
|
1401
1451
|
<span class="k-pager-input">
|
|
1402
|
-
{{textFor('page')}}
|
|
1452
|
+
<ng-container *ngIf="showPageText">{{textFor('page')}}</ng-container>
|
|
1403
1453
|
<kendo-numerictextbox kendoPagerFocusable
|
|
1404
1454
|
[spinners]="false"
|
|
1405
1455
|
[decimals]="0"
|
|
@@ -1421,7 +1471,7 @@ class PagerInputComponent extends PagerElementComponent {
|
|
|
1421
1471
|
</kendo-numerictextbox>
|
|
1422
1472
|
{{textFor('of')}} {{totalPages}}
|
|
1423
1473
|
</span>
|
|
1424
|
-
`, 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"] }] });
|
|
1474
|
+
`, 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"] }] });
|
|
1425
1475
|
}
|
|
1426
1476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerInputComponent, decorators: [{
|
|
1427
1477
|
type: Component,
|
|
@@ -1429,7 +1479,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1429
1479
|
selector: 'kendo-datapager-input, kendo-pager-input',
|
|
1430
1480
|
template: `
|
|
1431
1481
|
<span class="k-pager-input">
|
|
1432
|
-
{{textFor('page')}}
|
|
1482
|
+
<ng-container *ngIf="showPageText">{{textFor('page')}}</ng-container>
|
|
1433
1483
|
<kendo-numerictextbox kendoPagerFocusable
|
|
1434
1484
|
[spinners]="false"
|
|
1435
1485
|
[decimals]="0"
|
|
@@ -1453,11 +1503,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1453
1503
|
</span>
|
|
1454
1504
|
`,
|
|
1455
1505
|
standalone: true,
|
|
1456
|
-
imports: [NgClass, NumericTextBoxComponent, PagerFocusableDirective, EventsOutsideAngularDirective]
|
|
1506
|
+
imports: [NgClass, NgIf, NumericTextBoxComponent, PagerFocusableDirective, EventsOutsideAngularDirective]
|
|
1457
1507
|
}]
|
|
1458
1508
|
}], ctorParameters: function () { return [{ type: i1.LocalizationService }, { type: PagerContextService }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { numericInput: [{
|
|
1459
1509
|
type: ViewChild,
|
|
1460
1510
|
args: [NumericTextBoxComponent, { static: true }]
|
|
1511
|
+
}], showPageText: [{
|
|
1512
|
+
type: Input
|
|
1461
1513
|
}], size: [{
|
|
1462
1514
|
type: Input
|
|
1463
1515
|
}] } });
|
|
@@ -1530,28 +1582,40 @@ const packageMetadata = {
|
|
|
1530
1582
|
productName: 'Kendo UI for Angular',
|
|
1531
1583
|
productCode: 'KENDOUIANGULAR',
|
|
1532
1584
|
productCodes: ['KENDOUIANGULAR'],
|
|
1533
|
-
publishDate:
|
|
1534
|
-
version: '19.0.0-develop.
|
|
1585
|
+
publishDate: 1747411817,
|
|
1586
|
+
version: '19.0.0-develop.21',
|
|
1535
1587
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
|
|
1536
1588
|
};
|
|
1537
1589
|
|
|
1538
|
-
/**
|
|
1539
|
-
* @hidden
|
|
1540
|
-
*/
|
|
1541
|
-
const RESPONSIVE_BREAKPOINT_MEDIUM = 600;
|
|
1542
|
-
/**
|
|
1543
|
-
* @hidden
|
|
1544
|
-
*/
|
|
1545
|
-
const RESPONSIVE_BREAKPOINT_LARGE = 768;
|
|
1546
|
-
|
|
1547
1590
|
class PagerComponent {
|
|
1548
1591
|
pagerContext;
|
|
1549
1592
|
element;
|
|
1550
1593
|
localization;
|
|
1551
1594
|
renderer;
|
|
1552
1595
|
ngZone;
|
|
1596
|
+
cdr;
|
|
1553
1597
|
navigationService;
|
|
1554
1598
|
template;
|
|
1599
|
+
set numericButtons(buttons) {
|
|
1600
|
+
const newWidth = buttons ? buttons.nativeElement?.offsetWidth : 0;
|
|
1601
|
+
if (buttons && newWidth !== this.pagerDimensions.numericButtonsWidth) {
|
|
1602
|
+
this.pagerDimensions.numericButtonsWidth = newWidth;
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
set pagerInput(input) {
|
|
1606
|
+
const newWidth = input ? input.nativeElement?.offsetWidth : 0;
|
|
1607
|
+
if (input && newWidth !== this.pagerDimensions.inputWidth) {
|
|
1608
|
+
this.pagerDimensions.inputWidth = newWidth;
|
|
1609
|
+
}
|
|
1610
|
+
}
|
|
1611
|
+
pagerInputComponent;
|
|
1612
|
+
set pageSizes(sizes) {
|
|
1613
|
+
const newWidth = sizes ? sizes.nativeElement?.offsetWidth : 0;
|
|
1614
|
+
if (sizes && newWidth !== this.pagerDimensions.pageSizesWidth) {
|
|
1615
|
+
this.pagerDimensions.pageSizesWidth = newWidth;
|
|
1616
|
+
}
|
|
1617
|
+
}
|
|
1618
|
+
pageSizesComponent;
|
|
1555
1619
|
/**
|
|
1556
1620
|
* @hidden
|
|
1557
1621
|
*/
|
|
@@ -1612,8 +1676,8 @@ class PagerComponent {
|
|
|
1612
1676
|
previousNext = true;
|
|
1613
1677
|
/**
|
|
1614
1678
|
* If set to `true`, the user can use dedicated shortcuts to interact with the Pager ([see example]({% slug keyboard_navigation_pager %})).
|
|
1615
|
-
* By default, navigation is
|
|
1616
|
-
* @default
|
|
1679
|
+
* By default, navigation is enabled. To disable it and make the Pager content accessible in the normal tab sequence, set the property to `false`.
|
|
1680
|
+
* @default true
|
|
1617
1681
|
*/
|
|
1618
1682
|
set navigable(value) {
|
|
1619
1683
|
this._navigable = value;
|
|
@@ -1640,12 +1704,17 @@ class PagerComponent {
|
|
|
1640
1704
|
return this._size;
|
|
1641
1705
|
}
|
|
1642
1706
|
/**
|
|
1643
|
-
*
|
|
1644
|
-
* Toggles the Pager responsive functionality.
|
|
1707
|
+
* Toggles the Pager responsive functionality ([see example](slug:responsive_pager)).
|
|
1645
1708
|
*
|
|
1646
1709
|
* @default true
|
|
1647
1710
|
*/
|
|
1648
1711
|
responsive = true;
|
|
1712
|
+
/**
|
|
1713
|
+
* Toggles the Pager adaptiveness functionality ([see example](slug:adaptive_mode_pager)).
|
|
1714
|
+
*
|
|
1715
|
+
* @default 'auto'
|
|
1716
|
+
*/
|
|
1717
|
+
adaptiveMode = 'auto';
|
|
1649
1718
|
/**
|
|
1650
1719
|
* Fires when the current page of the Pager is changed ([see example](slug:overview_pager)).
|
|
1651
1720
|
* You have to handle the event yourself and page the data.
|
|
@@ -1689,19 +1758,44 @@ class PagerComponent {
|
|
|
1689
1758
|
context.currentPage = this.currentPage;
|
|
1690
1759
|
return context;
|
|
1691
1760
|
}
|
|
1761
|
+
/**
|
|
1762
|
+
* @hidden
|
|
1763
|
+
*/
|
|
1764
|
+
showInput = false;
|
|
1765
|
+
/**
|
|
1766
|
+
* @hidden
|
|
1767
|
+
*/
|
|
1768
|
+
initialized = false;
|
|
1692
1769
|
subscriptions = new Subscription();
|
|
1693
1770
|
_templateContext = {};
|
|
1694
1771
|
_pageSizeValues = DEFAULT_PAGE_SIZE_VALUES;
|
|
1695
1772
|
direction;
|
|
1696
1773
|
isInnerNavigationEnabled = false;
|
|
1697
|
-
_navigable =
|
|
1774
|
+
_navigable = true;
|
|
1698
1775
|
_size = DEFAULT_SIZE;
|
|
1699
|
-
|
|
1776
|
+
/**
|
|
1777
|
+
* Stores the measurements of various Pager elements.
|
|
1778
|
+
* These dimensions are used for responsive layout calculations.
|
|
1779
|
+
* @hidden
|
|
1780
|
+
*/
|
|
1781
|
+
pagerDimensions = {
|
|
1782
|
+
padding: 0,
|
|
1783
|
+
numericButtonsWidth: 0,
|
|
1784
|
+
inputWidth: 0,
|
|
1785
|
+
pageSizesWidth: 0,
|
|
1786
|
+
sizesTextWidth: 0,
|
|
1787
|
+
pageTextWidth: 0,
|
|
1788
|
+
infoTextWidth: 0,
|
|
1789
|
+
gapNumbersSizes: 0,
|
|
1790
|
+
gapSizesInfo: 0
|
|
1791
|
+
};
|
|
1792
|
+
constructor(pagerContext, element, localization, renderer, ngZone, cdr, navigationService) {
|
|
1700
1793
|
this.pagerContext = pagerContext;
|
|
1701
1794
|
this.element = element;
|
|
1702
1795
|
this.localization = localization;
|
|
1703
1796
|
this.renderer = renderer;
|
|
1704
1797
|
this.ngZone = ngZone;
|
|
1798
|
+
this.cdr = cdr;
|
|
1705
1799
|
this.navigationService = navigationService;
|
|
1706
1800
|
validatePackage(packageMetadata);
|
|
1707
1801
|
this.direction = localization.rtl ? 'rtl' : 'ltr';
|
|
@@ -1718,6 +1812,8 @@ class PagerComponent {
|
|
|
1718
1812
|
this.subscriptions.add(this.pagerContext.pageSizeChange.subscribe(this.changePageSize.bind(this)));
|
|
1719
1813
|
this.subscriptions.add(this.localization.changes.subscribe(({ rtl }) => {
|
|
1720
1814
|
this.direction = rtl ? 'rtl' : 'ltr';
|
|
1815
|
+
this.measureAllTextWidths();
|
|
1816
|
+
this.responsive && this.resizeHandler();
|
|
1721
1817
|
}));
|
|
1722
1818
|
this.subscriptions.add(this.navigationService.innerNavigationChange.subscribe(this.innerNavigationChange.bind(this)));
|
|
1723
1819
|
if (this.navigable) {
|
|
@@ -1726,14 +1822,34 @@ class PagerComponent {
|
|
|
1726
1822
|
this.subscriptions.add(this.renderer.listen(wrapper, 'keydown', this.keyDownHandler.bind(this)));
|
|
1727
1823
|
});
|
|
1728
1824
|
}
|
|
1825
|
+
if (this.type === 'input') {
|
|
1826
|
+
this.showInput = true;
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
get maxItems() {
|
|
1830
|
+
return Math.min(this.currentPage * this.pageSize, this.total);
|
|
1729
1831
|
}
|
|
1730
1832
|
ngAfterViewInit() {
|
|
1731
|
-
this.responsive && this.resizeHandler();
|
|
1732
1833
|
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
1733
1834
|
this.subscriptions.add(this.template.changes.subscribe(() => {
|
|
1835
|
+
this.measureAllTextWidths();
|
|
1734
1836
|
this.responsive && this.resizeHandler();
|
|
1735
1837
|
}));
|
|
1736
1838
|
this.handleClasses(this.size, 'size');
|
|
1839
|
+
this.measureAllTextWidths();
|
|
1840
|
+
const padding = calculatePadding(this.element.nativeElement);
|
|
1841
|
+
this.pagerDimensions.padding = padding.padding;
|
|
1842
|
+
this.pagerDimensions.gapNumbersSizes = padding.gapNumbersSizes;
|
|
1843
|
+
this.pagerDimensions.gapSizesInfo = padding.gapSizesInfo;
|
|
1844
|
+
if (!isDocumentAvailable()) {
|
|
1845
|
+
this.initialized = true;
|
|
1846
|
+
return;
|
|
1847
|
+
}
|
|
1848
|
+
this.responsive && this.resizeHandler();
|
|
1849
|
+
setTimeout(() => {
|
|
1850
|
+
this.initialized = true;
|
|
1851
|
+
this.cdr.markForCheck();
|
|
1852
|
+
}, 0);
|
|
1737
1853
|
}
|
|
1738
1854
|
ngOnChanges(changes) {
|
|
1739
1855
|
if (anyChanged(["pageSize", "skip", "total"], changes, false)) {
|
|
@@ -1745,7 +1861,14 @@ class PagerComponent {
|
|
|
1745
1861
|
this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
|
|
1746
1862
|
}
|
|
1747
1863
|
if (changes['responsive']) {
|
|
1864
|
+
this.measureAllTextWidths();
|
|
1748
1865
|
this.responsive && this.resizeHandler();
|
|
1866
|
+
if (!this.responsive) {
|
|
1867
|
+
this.showInput = this.type === 'input';
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
if (changes['type']) {
|
|
1871
|
+
this.showNumericButtonsResponsive();
|
|
1749
1872
|
}
|
|
1750
1873
|
}
|
|
1751
1874
|
ngOnDestroy() {
|
|
@@ -1787,40 +1910,37 @@ class PagerComponent {
|
|
|
1787
1910
|
if (this.template?.first && !this.responsive) {
|
|
1788
1911
|
return;
|
|
1789
1912
|
}
|
|
1790
|
-
|
|
1913
|
+
if (!isDocumentAvailable() || !this.element?.nativeElement) {
|
|
1914
|
+
this.initialized = true;
|
|
1915
|
+
return;
|
|
1916
|
+
}
|
|
1917
|
+
let pagerWidth = this.element.nativeElement.offsetWidth;
|
|
1918
|
+
if (pagerWidth <= 0) {
|
|
1919
|
+
return;
|
|
1920
|
+
}
|
|
1791
1921
|
this.ngZone.runOutsideAngular(() => {
|
|
1792
1922
|
setTimeout(() => {
|
|
1793
|
-
|
|
1923
|
+
if (this.template?.first || !this.responsive) {
|
|
1924
|
+
return;
|
|
1925
|
+
}
|
|
1926
|
+
const numericButtonsWrapperElement = this.element.nativeElement.querySelector('.k-pager-numbers-wrap');
|
|
1794
1927
|
const pagerInfoElement = this.element.nativeElement.querySelector('.k-pager-info');
|
|
1795
1928
|
const pagerPageSizes = this.element.nativeElement.querySelector('.k-pager-sizes');
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
else {
|
|
1804
|
-
this.renderer.addClass(selectElement, 'k-hidden');
|
|
1805
|
-
this.renderer.removeClass(numbersElement, 'k-hidden');
|
|
1806
|
-
}
|
|
1929
|
+
let elementsWidths = numericButtonsWrapperElement?.offsetWidth + (pagerPageSizes?.offsetWidth || 0) + (pagerInfoElement?.offsetWidth > 0 ? Math.min(this.pagerDimensions.infoTextWidth) : 0);
|
|
1930
|
+
if (this.isElementVisible(pagerInfoElement)) {
|
|
1931
|
+
elementsWidths += this.pagerDimensions.gapSizesInfo;
|
|
1932
|
+
}
|
|
1933
|
+
pagerWidth -= this.pagerDimensions.padding;
|
|
1934
|
+
if (this.isElementVisible(pagerPageSizes)) {
|
|
1935
|
+
pagerWidth -= this.pagerDimensions.gapNumbersSizes;
|
|
1807
1936
|
}
|
|
1808
|
-
if (
|
|
1809
|
-
|
|
1810
|
-
this.renderer.addClass(pagerInfoElement, 'k-hidden');
|
|
1811
|
-
}
|
|
1812
|
-
else {
|
|
1813
|
-
this.renderer.removeClass(pagerInfoElement, 'k-hidden');
|
|
1814
|
-
}
|
|
1937
|
+
if (Math.ceil(elementsWidths) <= pagerWidth) {
|
|
1938
|
+
this.showElementsInOrder(pagerWidth, elementsWidths);
|
|
1815
1939
|
}
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
this.renderer.addClass(pagerPageSizes, 'k-hidden');
|
|
1819
|
-
}
|
|
1820
|
-
else {
|
|
1821
|
-
this.renderer.removeClass(pagerPageSizes, 'k-hidden');
|
|
1822
|
-
}
|
|
1940
|
+
else {
|
|
1941
|
+
this.hideElementsInOrder(pagerWidth, elementsWidths);
|
|
1823
1942
|
}
|
|
1943
|
+
!this.initialized && this.ngZone.onStable.pipe(take(1)).subscribe(() => this.initialized = true);
|
|
1824
1944
|
});
|
|
1825
1945
|
});
|
|
1826
1946
|
};
|
|
@@ -1898,8 +2018,172 @@ class PagerComponent {
|
|
|
1898
2018
|
this.renderer.addClass(elem, classes.toAdd);
|
|
1899
2019
|
}
|
|
1900
2020
|
}
|
|
1901
|
-
|
|
1902
|
-
|
|
2021
|
+
showElementsInOrder(availableWidth, currentWidth) {
|
|
2022
|
+
const el = this.element.nativeElement;
|
|
2023
|
+
const numericButtonsElement = el.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
2024
|
+
const pagerInfoElement = el.querySelector('.k-pager-info');
|
|
2025
|
+
const pagerPageSizes = el.querySelector('.k-pager-sizes');
|
|
2026
|
+
const pagerInput = el.querySelector('kendo-pager-input');
|
|
2027
|
+
const pagerSizesDropDown = el.querySelector('.k-pager-sizes .k-dropdownlist');
|
|
2028
|
+
if (this.type === 'input' && this.isElementVisible(pagerInfoElement) || this.isElementVisible(numericButtonsElement)) {
|
|
2029
|
+
return;
|
|
2030
|
+
}
|
|
2031
|
+
if (!this.isElementVisible(pagerPageSizes)) {
|
|
2032
|
+
const addDropDownWidth = currentWidth + this.pagerDimensions.pageSizesWidth + this.pagerDimensions.gapNumbersSizes - this.pagerDimensions.sizesTextWidth;
|
|
2033
|
+
if (addDropDownWidth > availableWidth)
|
|
2034
|
+
return;
|
|
2035
|
+
this.ngZone.run(() => this.pageSizesComponent && (this.pageSizesComponent.showItemsText = false));
|
|
2036
|
+
this.showElement(pagerPageSizes);
|
|
2037
|
+
currentWidth = addDropDownWidth;
|
|
2038
|
+
if (currentWidth >= availableWidth)
|
|
2039
|
+
return;
|
|
2040
|
+
}
|
|
2041
|
+
if (this.isElementVisible(pagerPageSizes) && this.pageSizesComponent && !this.pageSizesComponent.showItemsText) {
|
|
2042
|
+
const addPageSizesText = currentWidth - pagerSizesDropDown?.offsetWidth + this.pagerDimensions.pageSizesWidth;
|
|
2043
|
+
if (addPageSizesText > availableWidth)
|
|
2044
|
+
return;
|
|
2045
|
+
this.ngZone.run(() => this.pageSizesComponent.showItemsText = true);
|
|
2046
|
+
currentWidth = addPageSizesText;
|
|
2047
|
+
if (currentWidth >= availableWidth)
|
|
2048
|
+
return;
|
|
2049
|
+
}
|
|
2050
|
+
if (this.isElementVisible(pagerPageSizes) && this.pageSizesComponent?.showItemsText && this.pagerInputComponent && !this.pagerInputComponent.showPageText) {
|
|
2051
|
+
const addPageText = currentWidth - pagerInput?.offsetWidth + this.pagerDimensions.inputWidth;
|
|
2052
|
+
if (addPageText > availableWidth)
|
|
2053
|
+
return;
|
|
2054
|
+
this.ngZone.run(() => this.pagerInputComponent.showPageText = true);
|
|
2055
|
+
currentWidth = addPageText;
|
|
2056
|
+
if (currentWidth >= availableWidth)
|
|
2057
|
+
return;
|
|
2058
|
+
}
|
|
2059
|
+
if (this.isElementVisible(pagerPageSizes) && this.pagerInputComponent?.showPageText) {
|
|
2060
|
+
const addInfoText = currentWidth + this.pagerDimensions.infoTextWidth + this.pagerDimensions.gapSizesInfo;
|
|
2061
|
+
if (addInfoText > availableWidth)
|
|
2062
|
+
return;
|
|
2063
|
+
this.ngZone.run(() => {
|
|
2064
|
+
this.showElement(pagerInfoElement);
|
|
2065
|
+
});
|
|
2066
|
+
currentWidth = addInfoText;
|
|
2067
|
+
}
|
|
2068
|
+
if (this.isElementVisible(pagerInfoElement) && this.type === 'numeric') {
|
|
2069
|
+
const addNumericButtons = currentWidth - this.pagerDimensions.inputWidth + this.pagerDimensions.numericButtonsWidth;
|
|
2070
|
+
if (addNumericButtons > availableWidth)
|
|
2071
|
+
return;
|
|
2072
|
+
this.showElement(numericButtonsElement);
|
|
2073
|
+
this.ngZone.run(() => {
|
|
2074
|
+
this.showInput = false;
|
|
2075
|
+
this.cdr.markForCheck();
|
|
2076
|
+
});
|
|
2077
|
+
}
|
|
2078
|
+
}
|
|
2079
|
+
hideElementsInOrder(availableWidth, currentWidth) {
|
|
2080
|
+
const el = this.element.nativeElement;
|
|
2081
|
+
const numericButtonsElement = el.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
2082
|
+
const pagerInfoElement = el.querySelector('.k-pager-info');
|
|
2083
|
+
const pagerPageSizes = el.querySelector('.k-pager-sizes');
|
|
2084
|
+
const pagerSizesDropDown = el.querySelector('.k-pager-sizes .k-dropdownlist');
|
|
2085
|
+
if (this.isElementVisible(numericButtonsElement)) {
|
|
2086
|
+
this.hideElement(numericButtonsElement);
|
|
2087
|
+
this.ngZone.run(() => this.showInput = true);
|
|
2088
|
+
currentWidth += this.pagerDimensions.inputWidth - this.pagerDimensions.numericButtonsWidth;
|
|
2089
|
+
if (currentWidth <= availableWidth)
|
|
2090
|
+
return;
|
|
2091
|
+
}
|
|
2092
|
+
if (this.isElementVisible(pagerInfoElement)) {
|
|
2093
|
+
this.hideElement(pagerInfoElement);
|
|
2094
|
+
currentWidth -= this.pagerDimensions.infoTextWidth;
|
|
2095
|
+
if (currentWidth <= availableWidth)
|
|
2096
|
+
return;
|
|
2097
|
+
}
|
|
2098
|
+
if (this.pagerInputComponent?.showPageText) {
|
|
2099
|
+
this.ngZone.run(() => this.pagerInputComponent.showPageText = false);
|
|
2100
|
+
currentWidth = currentWidth - this.pagerDimensions.pageTextWidth;
|
|
2101
|
+
if (currentWidth <= availableWidth)
|
|
2102
|
+
return;
|
|
2103
|
+
}
|
|
2104
|
+
if (this.isElementVisible(pagerPageSizes) && this.pageSizesComponent?.showItemsText) {
|
|
2105
|
+
this.ngZone.run(() => this.pageSizesComponent.showItemsText = false);
|
|
2106
|
+
currentWidth = currentWidth - this.pagerDimensions.pageSizesWidth + pagerSizesDropDown?.offsetWidth;
|
|
2107
|
+
if (currentWidth <= availableWidth)
|
|
2108
|
+
return;
|
|
2109
|
+
}
|
|
2110
|
+
this.hideElement(pagerPageSizes);
|
|
2111
|
+
}
|
|
2112
|
+
isElementVisible(element) {
|
|
2113
|
+
return element && !element?.classList.contains('k-hidden');
|
|
2114
|
+
}
|
|
2115
|
+
hideElement(element) {
|
|
2116
|
+
if (element) {
|
|
2117
|
+
this.renderer.addClass(element, 'k-hidden');
|
|
2118
|
+
}
|
|
2119
|
+
}
|
|
2120
|
+
showElement(element) {
|
|
2121
|
+
if (element) {
|
|
2122
|
+
this.renderer.removeClass(element, 'k-hidden');
|
|
2123
|
+
}
|
|
2124
|
+
}
|
|
2125
|
+
measureAllTextWidths() {
|
|
2126
|
+
if (!isDocumentAvailable()) {
|
|
2127
|
+
return;
|
|
2128
|
+
}
|
|
2129
|
+
const el = this.element.nativeElement;
|
|
2130
|
+
const existingInfo = el.querySelector('.k-pager-info');
|
|
2131
|
+
const existingInput = el.querySelector('.k-pager-input');
|
|
2132
|
+
const existingSizes = el.querySelector('.k-pager-sizes');
|
|
2133
|
+
// create a single measurement container
|
|
2134
|
+
const measureContainer = this.renderer.createElement('div');
|
|
2135
|
+
positionOffScreen(this.renderer, measureContainer);
|
|
2136
|
+
this.renderer.appendChild(this.element.nativeElement, measureContainer);
|
|
2137
|
+
const infoSpan = createMeasurementSpan(this.renderer, measureContainer, 'k-pager-info');
|
|
2138
|
+
const pageSpan = createMeasurementSpan(this.renderer, measureContainer, 'k-pager-input');
|
|
2139
|
+
const sizesSpan = createMeasurementSpan(this.renderer, measureContainer, 'k-pager-sizes');
|
|
2140
|
+
const infoText = `${this.currentPage} - ${this.maxItems} ${this.localization.get('of')} ${this.total} ${this.localization.get('items')}`;
|
|
2141
|
+
this.renderer.setProperty(infoSpan, 'textContent', infoText);
|
|
2142
|
+
this.renderer.setProperty(pageSpan, 'textContent', this.localization.get('page'));
|
|
2143
|
+
this.renderer.setProperty(sizesSpan, 'textContent', this.localization.get('itemsPerPage'));
|
|
2144
|
+
// copy computed styles if available
|
|
2145
|
+
if (existingInfo)
|
|
2146
|
+
copyComputedStyles(this.renderer, existingInfo, infoSpan);
|
|
2147
|
+
if (existingInput)
|
|
2148
|
+
copyComputedStyles(this.renderer, existingInput, pageSpan);
|
|
2149
|
+
if (existingSizes)
|
|
2150
|
+
copyComputedStyles(this.renderer, existingSizes, sizesSpan);
|
|
2151
|
+
// force a reflow to ensure measurements are accurate
|
|
2152
|
+
measureContainer.getBoundingClientRect();
|
|
2153
|
+
this.pagerDimensions.infoTextWidth = infoSpan?.offsetWidth;
|
|
2154
|
+
if (this.pagerDimensions.inputWidth && this.pagerDimensions.pageTextWidth) {
|
|
2155
|
+
this.pagerDimensions.inputWidth = this.pagerDimensions.inputWidth - this.pagerDimensions.pageTextWidth + pageSpan.offsetWidth;
|
|
2156
|
+
}
|
|
2157
|
+
this.pagerDimensions.pageTextWidth = pageSpan?.offsetWidth;
|
|
2158
|
+
if (this.pagerDimensions.pageSizesWidth && this.pagerDimensions.sizesTextWidth) {
|
|
2159
|
+
this.pagerDimensions.pageSizesWidth = this.pagerDimensions.pageSizesWidth - this.pagerDimensions.sizesTextWidth + sizesSpan.offsetWidth;
|
|
2160
|
+
}
|
|
2161
|
+
this.pagerDimensions.sizesTextWidth = sizesSpan?.offsetWidth;
|
|
2162
|
+
this.renderer.removeChild(this.element.nativeElement, measureContainer);
|
|
2163
|
+
}
|
|
2164
|
+
showNumericButtonsResponsive() {
|
|
2165
|
+
if (!this.responsive || (!this.numericButtons && !this.pagerInput) || !isDocumentAvailable()) {
|
|
2166
|
+
this.showInput = this.type === 'input';
|
|
2167
|
+
return;
|
|
2168
|
+
}
|
|
2169
|
+
const pagerInfoElement = this.element.nativeElement.querySelector('.k-pager-info');
|
|
2170
|
+
if (this.type === 'input' || !this.isElementVisible(pagerInfoElement)) {
|
|
2171
|
+
this.showInput = true;
|
|
2172
|
+
return;
|
|
2173
|
+
}
|
|
2174
|
+
const numericButtonsElement = this.element.nativeElement.querySelector('kendo-datapager-numeric-buttons, kendo-pager-numeric-buttons');
|
|
2175
|
+
if (this.isElementVisible(numericButtonsElement)) {
|
|
2176
|
+
this.showInput = false;
|
|
2177
|
+
return;
|
|
2178
|
+
}
|
|
2179
|
+
const pagerWidth = this.element.nativeElement?.offsetWidth;
|
|
2180
|
+
const numericButtonsWrapperElement = this.element.nativeElement.querySelector('.k-pager-numbers-wrap');
|
|
2181
|
+
const elementsWidths = numericButtonsWrapperElement?.offsetWidth + this.pagerDimensions.pageSizesWidth + this.pagerDimensions.infoTextWidth + this.pagerDimensions.gapSizesInfo;
|
|
2182
|
+
const hasAvailableWidth = pagerWidth > elementsWidths - this.pagerDimensions.inputWidth + this.pagerDimensions.numericButtonsWidth;
|
|
2183
|
+
this.showInput = !hasAvailableWidth;
|
|
2184
|
+
}
|
|
2185
|
+
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 });
|
|
2186
|
+
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" }, host: { listeners: { "focusin": "focusHandler($event)" }, properties: { "class.k-pager": "this.pagerClass", "attr.role": "this.widgetRole", "attr.aria-roledescription": "this.roleDescription", "attr.aria-keyshortcuts": "this.keyShortcuts", "attr.tabindex": "this.hostTabindex", "attr.dir": "this.dir" } }, providers: [
|
|
1903
2187
|
LocalizationService,
|
|
1904
2188
|
PagerContextService,
|
|
1905
2189
|
PagerNavigationService,
|
|
@@ -1907,7 +2191,7 @@ class PagerComponent {
|
|
|
1907
2191
|
provide: L10N_PREFIX,
|
|
1908
2192
|
useValue: 'kendo.pager'
|
|
1909
2193
|
}
|
|
1910
|
-
], queries: [{ propertyName: "template", predicate: PagerTemplateDirective }], exportAs: ["kendoDataPager", "kendoPager"], usesOnChanges: true, ngImport: i0, template: `
|
|
2194
|
+
], 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: `
|
|
1911
2195
|
<ng-container kendoPagerLocalizedMessages
|
|
1912
2196
|
i18n-ariaLabel="kendo.pager.ariaLabel|The value of the aria-label attribute of the Pager"
|
|
1913
2197
|
ariaLabel="{{ 'Page navigation, page {currentPage} of {totalPages}' }}"
|
|
@@ -1952,25 +2236,27 @@ class PagerComponent {
|
|
|
1952
2236
|
[ngTemplateOutletContext]="templateContext">
|
|
1953
2237
|
</ng-container>
|
|
1954
2238
|
<ng-template #default>
|
|
1955
|
-
<div class="k-pager-numbers-wrap">
|
|
2239
|
+
<div class="k-pager-numbers-wrap" [ngStyle]="{opacity: initialized ? '1' : '0'}">
|
|
1956
2240
|
<kendo-pager-prev-buttons [size]="size" *ngIf="previousNext"></kendo-pager-prev-buttons>
|
|
1957
2241
|
<kendo-pager-numeric-buttons
|
|
1958
2242
|
[size]="size"
|
|
1959
2243
|
*ngIf="type === 'numeric' && buttonCount > 0"
|
|
1960
2244
|
[buttonCount]="buttonCount">
|
|
1961
2245
|
</kendo-pager-numeric-buttons>
|
|
1962
|
-
<kendo-pager-input [size]="size" *ngIf="
|
|
2246
|
+
<kendo-pager-input [size]="size" *ngIf="showInput"></kendo-pager-input>
|
|
1963
2247
|
<kendo-pager-next-buttons [size]="size" *ngIf="previousNext"></kendo-pager-next-buttons>
|
|
1964
2248
|
</div>
|
|
1965
2249
|
<kendo-pager-page-sizes *ngIf="_pageSizeValues.length"
|
|
2250
|
+
[ngStyle]="{opacity: initialized ? '1' : '0'}"
|
|
1966
2251
|
[size]="size"
|
|
1967
|
-
[pageSizes]="_pageSizeValues"
|
|
2252
|
+
[pageSizes]="_pageSizeValues"
|
|
2253
|
+
[adaptiveMode]="adaptiveMode">
|
|
1968
2254
|
</kendo-pager-page-sizes>
|
|
1969
|
-
<kendo-pager-info *ngIf="info">
|
|
2255
|
+
<kendo-pager-info *ngIf="info" [ngStyle]="{opacity: initialized ? '1' : '0'}">
|
|
1970
2256
|
</kendo-pager-info>
|
|
1971
2257
|
</ng-template>
|
|
1972
2258
|
<kendo-resize-sensor *ngIf="responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
|
|
1973
|
-
`, 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"] }] });
|
|
2259
|
+
`, 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"] }] });
|
|
1974
2260
|
}
|
|
1975
2261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PagerComponent, decorators: [{
|
|
1976
2262
|
type: Component,
|
|
@@ -2031,39 +2317,56 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2031
2317
|
[ngTemplateOutletContext]="templateContext">
|
|
2032
2318
|
</ng-container>
|
|
2033
2319
|
<ng-template #default>
|
|
2034
|
-
<div class="k-pager-numbers-wrap">
|
|
2320
|
+
<div class="k-pager-numbers-wrap" [ngStyle]="{opacity: initialized ? '1' : '0'}">
|
|
2035
2321
|
<kendo-pager-prev-buttons [size]="size" *ngIf="previousNext"></kendo-pager-prev-buttons>
|
|
2036
2322
|
<kendo-pager-numeric-buttons
|
|
2037
2323
|
[size]="size"
|
|
2038
2324
|
*ngIf="type === 'numeric' && buttonCount > 0"
|
|
2039
2325
|
[buttonCount]="buttonCount">
|
|
2040
2326
|
</kendo-pager-numeric-buttons>
|
|
2041
|
-
<kendo-pager-input [size]="size" *ngIf="
|
|
2327
|
+
<kendo-pager-input [size]="size" *ngIf="showInput"></kendo-pager-input>
|
|
2042
2328
|
<kendo-pager-next-buttons [size]="size" *ngIf="previousNext"></kendo-pager-next-buttons>
|
|
2043
2329
|
</div>
|
|
2044
2330
|
<kendo-pager-page-sizes *ngIf="_pageSizeValues.length"
|
|
2331
|
+
[ngStyle]="{opacity: initialized ? '1' : '0'}"
|
|
2045
2332
|
[size]="size"
|
|
2046
|
-
[pageSizes]="_pageSizeValues"
|
|
2333
|
+
[pageSizes]="_pageSizeValues"
|
|
2334
|
+
[adaptiveMode]="adaptiveMode">
|
|
2047
2335
|
</kendo-pager-page-sizes>
|
|
2048
|
-
<kendo-pager-info *ngIf="info">
|
|
2336
|
+
<kendo-pager-info *ngIf="info" [ngStyle]="{opacity: initialized ? '1' : '0'}">
|
|
2049
2337
|
</kendo-pager-info>
|
|
2050
2338
|
</ng-template>
|
|
2051
2339
|
<kendo-resize-sensor *ngIf="responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
|
|
2052
2340
|
`,
|
|
2053
2341
|
standalone: true,
|
|
2054
|
-
imports: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent]
|
|
2342
|
+
imports: [LocalizedMessagesDirective, NgIf, NgTemplateOutlet, PagerPrevButtonsComponent, PagerNumericButtonsComponent, PagerInputComponent, PagerNextButtonsComponent, PagerPageSizesComponent, PagerInfoComponent, ResizeSensorComponent, NgStyle]
|
|
2055
2343
|
}]
|
|
2056
2344
|
}], ctorParameters: function () { return [{ type: PagerContextService, decorators: [{
|
|
2057
2345
|
type: Optional
|
|
2058
2346
|
}, {
|
|
2059
2347
|
type: SkipSelf
|
|
2060
|
-
}] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: PagerNavigationService, decorators: [{
|
|
2348
|
+
}] }, { type: i0.ElementRef }, { type: i1.LocalizationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: PagerNavigationService, decorators: [{
|
|
2061
2349
|
type: Optional
|
|
2062
2350
|
}, {
|
|
2063
2351
|
type: SkipSelf
|
|
2064
2352
|
}] }]; }, propDecorators: { template: [{
|
|
2065
2353
|
type: ContentChildren,
|
|
2066
2354
|
args: [PagerTemplateDirective]
|
|
2355
|
+
}], numericButtons: [{
|
|
2356
|
+
type: ViewChild,
|
|
2357
|
+
args: [PagerNumericButtonsComponent, { read: ElementRef }]
|
|
2358
|
+
}], pagerInput: [{
|
|
2359
|
+
type: ViewChild,
|
|
2360
|
+
args: [PagerInputComponent, { read: ElementRef }]
|
|
2361
|
+
}], pagerInputComponent: [{
|
|
2362
|
+
type: ViewChild,
|
|
2363
|
+
args: [PagerInputComponent]
|
|
2364
|
+
}], pageSizes: [{
|
|
2365
|
+
type: ViewChild,
|
|
2366
|
+
args: [PagerPageSizesComponent, { read: ElementRef }]
|
|
2367
|
+
}], pageSizesComponent: [{
|
|
2368
|
+
type: ViewChild,
|
|
2369
|
+
args: [PagerPageSizesComponent]
|
|
2067
2370
|
}], externalTemplate: [{
|
|
2068
2371
|
type: Input
|
|
2069
2372
|
}], total: [{
|
|
@@ -2088,6 +2391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2088
2391
|
type: Input
|
|
2089
2392
|
}], responsive: [{
|
|
2090
2393
|
type: Input
|
|
2394
|
+
}], adaptiveMode: [{
|
|
2395
|
+
type: Input
|
|
2091
2396
|
}], pageChange: [{
|
|
2092
2397
|
type: Output
|
|
2093
2398
|
}], pageSizeChange: [{
|