@progress/kendo-angular-pager 20.1.1 → 20.1.2-develop.2

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.
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1761290298,
14
- version: '20.1.1',
13
+ publishDate: 1761309920,
14
+ version: '20.1.2-develop.2',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -10,6 +10,7 @@ export class PagerContextService {
10
10
  total;
11
11
  skip;
12
12
  pageSize;
13
+ isAllSelected = false;
13
14
  localization;
14
15
  changes = new Subject();
15
16
  pageChange = new Subject();
@@ -19,8 +20,9 @@ export class PagerContextService {
19
20
  }
20
21
  notifyChanges(changes) {
21
22
  this.total = changes.total;
22
- this.pageSize = changes.pageSize;
23
23
  this.skip = changes.skip;
24
+ this.pageSize = changes.pageSize;
25
+ this.isAllSelected = changes.isAllSelected || false;
24
26
  this.changes.next(changes);
25
27
  }
26
28
  changePage(page) {
@@ -124,10 +124,11 @@ export class PagerPageSizesComponent extends PagerElementComponent {
124
124
  dropdownlist.writeValue(this.pageSize);
125
125
  }
126
126
  }
127
- onChanges({ total, skip, pageSize }) {
127
+ onChanges({ total, skip, pageSize, isAllSelected }) {
128
128
  this.total = total;
129
129
  this.skip = skip;
130
- this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
130
+ const normalizedPageSize = typeof pageSize === 'number' ? pageSize : this.total;
131
+ this.pageSize = isAllSelected ? 'all' : normalizedPageSize;
131
132
  this.cd.markForCheck();
132
133
  }
133
134
  keyDownHandler(ev) {
@@ -302,6 +302,7 @@ export class PagerComponent {
302
302
  _showInput = true;
303
303
  _showPageText = true;
304
304
  _showItemsText = true;
305
+ _isAllSelected = false;
305
306
  /**
306
307
  * Stores the measurements of various Pager elements.
307
308
  * These dimensions are used for responsive layout calculations.
@@ -392,15 +393,29 @@ export class PagerComponent {
392
393
  }
393
394
  ngOnChanges(changes) {
394
395
  if (anyChanged(["pageSize", "skip", "total"], changes, false)) {
396
+ const previousTotal = changes['total']?.previousValue;
397
+ const currentTotal = this.total;
398
+ let pageSizeAdjusted = false;
399
+ if (this._isAllSelected && previousTotal && currentTotal !== previousTotal && this.pageSize === previousTotal) {
400
+ this.pageSize = currentTotal;
401
+ pageSizeAdjusted = true;
402
+ }
395
403
  const previousButtonCount = Math.min(this.buttonCount, (changes['total']?.previousValue || this.total) / (changes['pageSize']?.previousValue || this.pageSize));
396
404
  this.pagerContext.notifyChanges({
397
405
  pageSize: this.pageSize,
398
406
  skip: this.skip,
399
- total: this.total
407
+ total: this.total,
408
+ isAllSelected: this._isAllSelected
400
409
  });
401
410
  this.pagerDimensions.numericButtonsWidth = (this.pagerDimensions.numericButtonsWidth * Math.min(this.buttonCount, this.total / this.pageSize)) / previousButtonCount;
402
411
  this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
403
412
  this.responsive && this.resizeHandler(false);
413
+ if (pageSizeAdjusted) {
414
+ Promise.resolve().then(() => {
415
+ this.pageChange.emit({ skip: this.skip, take: currentTotal });
416
+ this.cdr.detectChanges();
417
+ });
418
+ }
404
419
  }
405
420
  if (anyChanged(["pageSizeValues", "previousNext", "buttonCount"], changes, true)) {
406
421
  this.responsive && this.resizeHandler(false);
@@ -436,9 +451,11 @@ export class PagerComponent {
436
451
  this.pageSizeChange.emit(event);
437
452
  if (!event.isDefaultPrevented()) {
438
453
  if (event.newPageSize === 'all') {
454
+ this._isAllSelected = true;
439
455
  this.pageChange.emit({ skip: 0, take: this.total });
440
456
  }
441
457
  else {
458
+ this._isAllSelected = false;
442
459
  this.pageChange.emit({ skip: 0, take: event.newPageSize });
443
460
  }
444
461
  }
@@ -239,6 +239,7 @@ class PagerContextService {
239
239
  total;
240
240
  skip;
241
241
  pageSize;
242
+ isAllSelected = false;
242
243
  localization;
243
244
  changes = new Subject();
244
245
  pageChange = new Subject();
@@ -248,8 +249,9 @@ class PagerContextService {
248
249
  }
249
250
  notifyChanges(changes) {
250
251
  this.total = changes.total;
251
- this.pageSize = changes.pageSize;
252
252
  this.skip = changes.skip;
253
+ this.pageSize = changes.pageSize;
254
+ this.isAllSelected = changes.isAllSelected || false;
253
255
  this.changes.next(changes);
254
256
  }
255
257
  changePage(page) {
@@ -823,10 +825,11 @@ class PagerPageSizesComponent extends PagerElementComponent {
823
825
  dropdownlist.writeValue(this.pageSize);
824
826
  }
825
827
  }
826
- onChanges({ total, skip, pageSize }) {
828
+ onChanges({ total, skip, pageSize, isAllSelected }) {
827
829
  this.total = total;
828
830
  this.skip = skip;
829
- this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
831
+ const normalizedPageSize = typeof pageSize === 'number' ? pageSize : this.total;
832
+ this.pageSize = isAllSelected ? 'all' : normalizedPageSize;
830
833
  this.cd.markForCheck();
831
834
  }
832
835
  keyDownHandler(ev) {
@@ -1519,8 +1522,8 @@ const packageMetadata = {
1519
1522
  productName: 'Kendo UI for Angular',
1520
1523
  productCode: 'KENDOUIANGULAR',
1521
1524
  productCodes: ['KENDOUIANGULAR'],
1522
- publishDate: 1761290298,
1523
- version: '20.1.1',
1525
+ publishDate: 1761309920,
1526
+ version: '20.1.2-develop.2',
1524
1527
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
1525
1528
  };
1526
1529
 
@@ -1801,6 +1804,7 @@ class PagerComponent {
1801
1804
  _showInput = true;
1802
1805
  _showPageText = true;
1803
1806
  _showItemsText = true;
1807
+ _isAllSelected = false;
1804
1808
  /**
1805
1809
  * Stores the measurements of various Pager elements.
1806
1810
  * These dimensions are used for responsive layout calculations.
@@ -1891,15 +1895,29 @@ class PagerComponent {
1891
1895
  }
1892
1896
  ngOnChanges(changes) {
1893
1897
  if (anyChanged(["pageSize", "skip", "total"], changes, false)) {
1898
+ const previousTotal = changes['total']?.previousValue;
1899
+ const currentTotal = this.total;
1900
+ let pageSizeAdjusted = false;
1901
+ if (this._isAllSelected && previousTotal && currentTotal !== previousTotal && this.pageSize === previousTotal) {
1902
+ this.pageSize = currentTotal;
1903
+ pageSizeAdjusted = true;
1904
+ }
1894
1905
  const previousButtonCount = Math.min(this.buttonCount, (changes['total']?.previousValue || this.total) / (changes['pageSize']?.previousValue || this.pageSize));
1895
1906
  this.pagerContext.notifyChanges({
1896
1907
  pageSize: this.pageSize,
1897
1908
  skip: this.skip,
1898
- total: this.total
1909
+ total: this.total,
1910
+ isAllSelected: this._isAllSelected
1899
1911
  });
1900
1912
  this.pagerDimensions.numericButtonsWidth = (this.pagerDimensions.numericButtonsWidth * Math.min(this.buttonCount, this.total / this.pageSize)) / previousButtonCount;
1901
1913
  this.renderer.setAttribute(this.element.nativeElement, 'aria-label', this.ariaLabel);
1902
1914
  this.responsive && this.resizeHandler(false);
1915
+ if (pageSizeAdjusted) {
1916
+ Promise.resolve().then(() => {
1917
+ this.pageChange.emit({ skip: this.skip, take: currentTotal });
1918
+ this.cdr.detectChanges();
1919
+ });
1920
+ }
1903
1921
  }
1904
1922
  if (anyChanged(["pageSizeValues", "previousNext", "buttonCount"], changes, true)) {
1905
1923
  this.responsive && this.resizeHandler(false);
@@ -1935,9 +1953,11 @@ class PagerComponent {
1935
1953
  this.pageSizeChange.emit(event);
1936
1954
  if (!event.isDefaultPrevented()) {
1937
1955
  if (event.newPageSize === 'all') {
1956
+ this._isAllSelected = true;
1938
1957
  this.pageChange.emit({ skip: 0, take: this.total });
1939
1958
  }
1940
1959
  else {
1960
+ this._isAllSelected = false;
1941
1961
  this.pageChange.emit({ skip: 0, take: event.newPageSize });
1942
1962
  }
1943
1963
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-pager",
3
- "version": "20.1.1",
3
+ "version": "20.1.2-develop.2",
4
4
  "description": "Kendo UI Angular Pager",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -17,7 +17,7 @@
17
17
  "package": {
18
18
  "productName": "Kendo UI for Angular",
19
19
  "productCode": "KENDOUIANGULAR",
20
- "publishDate": 1761290298,
20
+ "publishDate": 1761309920,
21
21
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
22
22
  }
23
23
  },
@@ -27,16 +27,16 @@
27
27
  "@angular/core": "16 - 20",
28
28
  "@angular/platform-browser": "16 - 20",
29
29
  "@progress/kendo-licensing": "^1.7.0",
30
- "@progress/kendo-angular-common": "20.1.1",
31
- "@progress/kendo-angular-dropdowns": "20.1.1",
32
- "@progress/kendo-angular-inputs": "20.1.1",
33
- "@progress/kendo-angular-icons": "20.1.1",
34
- "@progress/kendo-angular-l10n": "20.1.1",
30
+ "@progress/kendo-angular-common": "20.1.2-develop.2",
31
+ "@progress/kendo-angular-dropdowns": "20.1.2-develop.2",
32
+ "@progress/kendo-angular-inputs": "20.1.2-develop.2",
33
+ "@progress/kendo-angular-icons": "20.1.2-develop.2",
34
+ "@progress/kendo-angular-l10n": "20.1.2-develop.2",
35
35
  "rxjs": "^6.5.3 || ^7.0.0"
36
36
  },
37
37
  "dependencies": {
38
38
  "tslib": "^2.3.1",
39
- "@progress/kendo-angular-schematics": "20.1.1"
39
+ "@progress/kendo-angular-schematics": "20.1.2-develop.2"
40
40
  },
41
41
  "schematics": "./schematics/collection.json",
42
42
  "module": "fesm2022/progress-kendo-angular-pager.mjs",
@@ -13,6 +13,7 @@ export type PagerContextChanges = {
13
13
  total: number;
14
14
  skip: number;
15
15
  pageSize: number;
16
+ isAllSelected?: boolean;
16
17
  };
17
18
  /**
18
19
  * @hidden
@@ -21,6 +22,7 @@ export declare class PagerContextService {
21
22
  total: number;
22
23
  skip: number;
23
24
  pageSize: number;
25
+ isAllSelected: boolean;
24
26
  localization: LocalizationService;
25
27
  changes: Subject<PagerContextChanges>;
26
28
  pageChange: Subject<PageChangeEvent>;
@@ -74,7 +74,7 @@ export declare class PagerPageSizesComponent extends PagerElementComponent imple
74
74
  * @hidden
75
75
  */
76
76
  pageSizeChange(value: any, dropdownlist: DropDownListComponent): void;
77
- protected onChanges({ total, skip, pageSize }: PagerContextChanges): void;
77
+ protected onChanges({ total, skip, pageSize, isAllSelected }: PagerContextChanges): void;
78
78
  private keyDownHandler;
79
79
  static ɵfac: i0.ɵɵFactoryDeclaration<PagerPageSizesComponent, never>;
80
80
  static ɵcmp: i0.ɵɵComponentDeclaration<PagerPageSizesComponent, "kendo-datapager-page-sizes, kendo-pager-page-sizes", never, { "showItemsText": { "alias": "showItemsText"; "required": false; }; "pageSizes": { "alias": "pageSizes"; "required": false; }; "size": { "alias": "size"; "required": false; }; "adaptiveMode": { "alias": "adaptiveMode"; "required": false; }; }, {}, never, never, true, never>;
@@ -216,6 +216,7 @@ export declare class PagerComponent implements OnChanges, AfterViewInit, OnInit,
216
216
  private _showInput;
217
217
  private _showPageText;
218
218
  private _showItemsText;
219
+ private _isAllSelected;
219
220
  /**
220
221
  * Stores the measurements of various Pager elements.
221
222
  * These dimensions are used for responsive layout calculations.
@@ -4,14 +4,14 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'PagerModule', package: 'pager', peerDependencies: {
6
6
  // Peers of inputs and dropdowns
7
- '@progress/kendo-angular-treeview': '20.1.1',
8
- '@progress/kendo-angular-intl': '20.1.1',
9
- '@progress/kendo-angular-navigation': '20.1.1',
10
- '@progress/kendo-angular-popup': '20.1.1',
7
+ '@progress/kendo-angular-treeview': '20.1.2-develop.2',
8
+ '@progress/kendo-angular-intl': '20.1.2-develop.2',
9
+ '@progress/kendo-angular-navigation': '20.1.2-develop.2',
10
+ '@progress/kendo-angular-popup': '20.1.2-develop.2',
11
11
  '@progress/kendo-drawing': '^1.5.12',
12
12
  // peer dependency of kendo-angular-inputs
13
- '@progress/kendo-angular-buttons': '20.1.1',
14
- '@progress/kendo-angular-dialog': '20.1.1',
13
+ '@progress/kendo-angular-buttons': '20.1.2-develop.2',
14
+ '@progress/kendo-angular-dialog': '20.1.2-develop.2',
15
15
  // Peer dependency of icons
16
16
  '@progress/kendo-svg-icons': '^4.0.0'
17
17
  } });