@polygrid/core 1.0.519 → 1.0.521

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.
Files changed (124) hide show
  1. package/dist/api/index.d.ts +2 -2
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +0 -2
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/set-data.d.ts.map +1 -1
  6. package/dist/api/set-data.js +4 -1
  7. package/dist/api/set-data.js.map +1 -1
  8. package/dist/api/set-pageable.d.ts +2 -1
  9. package/dist/api/set-pageable.d.ts.map +1 -1
  10. package/dist/api/set-pageable.js +7 -0
  11. package/dist/api/set-pageable.js.map +1 -1
  12. package/dist/engine/core/interfaces/grid-options.d.ts +2 -2
  13. package/dist/engine/core/interfaces/grid-options.d.ts.map +1 -1
  14. package/dist/engine/core/methods/consume-options.d.ts.map +1 -1
  15. package/dist/engine/core/methods/consume-options.js +7 -7
  16. package/dist/engine/core/methods/consume-options.js.map +1 -1
  17. package/dist/engine/services/animation/interfaces/animation-options.d.ts +1 -0
  18. package/dist/engine/services/animation/interfaces/animation-options.d.ts.map +1 -1
  19. package/dist/engine/services/data/methods/set-rows.d.ts.map +1 -1
  20. package/dist/engine/services/data/methods/set-rows.js +17 -0
  21. package/dist/engine/services/data/methods/set-rows.js.map +1 -1
  22. package/dist/engine/services/data/methods/set-view-rows.d.ts.map +1 -1
  23. package/dist/engine/services/data/methods/set-view-rows.js +5 -0
  24. package/dist/engine/services/data/methods/set-view-rows.js.map +1 -1
  25. package/dist/engine/services/layout/index.d.ts +4 -0
  26. package/dist/engine/services/layout/index.d.ts.map +1 -1
  27. package/dist/engine/services/layout/index.js +4 -0
  28. package/dist/engine/services/layout/index.js.map +1 -1
  29. package/dist/engine/services/layout/layout.d.ts +1 -0
  30. package/dist/engine/services/layout/layout.d.ts.map +1 -1
  31. package/dist/engine/services/layout/layout.js +3 -0
  32. package/dist/engine/services/layout/layout.js.map +1 -1
  33. package/dist/engine/services/layout/methods/initialize-layout-pipeline.d.ts.map +1 -1
  34. package/dist/engine/services/layout/methods/initialize-layout-pipeline.js +2 -0
  35. package/dist/engine/services/layout/methods/initialize-layout-pipeline.js.map +1 -1
  36. package/dist/engine/services/layout/methods/resize-page-height.d.ts +4 -0
  37. package/dist/engine/services/layout/methods/resize-page-height.d.ts.map +1 -0
  38. package/dist/engine/services/layout/methods/resize-page-height.js +12 -0
  39. package/dist/engine/services/layout/methods/resize-page-height.js.map +1 -0
  40. package/dist/engine/services/layout/methods/resize-view-height.d.ts.map +1 -1
  41. package/dist/engine/services/layout/methods/resize-view-height.js +2 -8
  42. package/dist/engine/services/layout/methods/resize-view-height.js.map +1 -1
  43. package/dist/engine/services/layout/methods/set-view-height.d.ts +3 -0
  44. package/dist/engine/services/layout/methods/set-view-height.d.ts.map +1 -0
  45. package/dist/engine/services/layout/methods/set-view-height.js +10 -0
  46. package/dist/engine/services/layout/methods/set-view-height.js.map +1 -0
  47. package/dist/engine/services/paging/index.d.ts +18 -0
  48. package/dist/engine/services/paging/index.d.ts.map +1 -1
  49. package/dist/engine/services/paging/index.js +21 -1
  50. package/dist/engine/services/paging/index.js.map +1 -1
  51. package/dist/engine/services/paging/interfaces/button-state.d.ts +7 -0
  52. package/dist/engine/services/paging/interfaces/button-state.d.ts.map +1 -0
  53. package/dist/engine/services/paging/interfaces/button-state.js +2 -0
  54. package/dist/engine/services/paging/interfaces/button-state.js.map +1 -0
  55. package/dist/engine/services/paging/interfaces/paging-settings.d.ts +6 -0
  56. package/dist/engine/services/paging/interfaces/paging-settings.d.ts.map +1 -0
  57. package/dist/engine/services/paging/interfaces/paging-settings.js +2 -0
  58. package/dist/engine/services/paging/interfaces/paging-settings.js.map +1 -0
  59. package/dist/engine/services/paging/methods/jump-back.d.ts +3 -0
  60. package/dist/engine/services/paging/methods/jump-back.d.ts.map +1 -0
  61. package/dist/engine/services/paging/methods/jump-back.js +11 -0
  62. package/dist/engine/services/paging/methods/jump-back.js.map +1 -0
  63. package/dist/engine/services/paging/methods/jump-forward.d.ts +3 -0
  64. package/dist/engine/services/paging/methods/jump-forward.d.ts.map +1 -0
  65. package/dist/engine/services/paging/methods/jump-forward.js +12 -0
  66. package/dist/engine/services/paging/methods/jump-forward.js.map +1 -0
  67. package/dist/engine/services/paging/methods/jump-to-end.d.ts +3 -0
  68. package/dist/engine/services/paging/methods/jump-to-end.d.ts.map +1 -0
  69. package/dist/engine/services/paging/methods/jump-to-end.js +10 -0
  70. package/dist/engine/services/paging/methods/jump-to-end.js.map +1 -0
  71. package/dist/engine/services/paging/methods/jump-to-start.d.ts +3 -0
  72. package/dist/engine/services/paging/methods/jump-to-start.d.ts.map +1 -0
  73. package/dist/engine/services/paging/methods/jump-to-start.js +7 -0
  74. package/dist/engine/services/paging/methods/jump-to-start.js.map +1 -0
  75. package/dist/engine/services/paging/methods/load-next-pages.d.ts +3 -0
  76. package/dist/engine/services/paging/methods/load-next-pages.d.ts.map +1 -0
  77. package/dist/engine/services/paging/methods/load-next-pages.js +9 -0
  78. package/dist/engine/services/paging/methods/load-next-pages.js.map +1 -0
  79. package/dist/engine/services/paging/methods/load-prev-pages.d.ts +3 -0
  80. package/dist/engine/services/paging/methods/load-prev-pages.d.ts.map +1 -0
  81. package/dist/engine/services/paging/methods/load-prev-pages.js +10 -0
  82. package/dist/engine/services/paging/methods/load-prev-pages.js.map +1 -0
  83. package/dist/engine/services/paging/methods/page-size-change.d.ts +3 -0
  84. package/dist/engine/services/paging/methods/page-size-change.d.ts.map +1 -0
  85. package/dist/engine/services/paging/methods/page-size-change.js +9 -0
  86. package/dist/engine/services/paging/methods/page-size-change.js.map +1 -0
  87. package/dist/engine/services/paging/methods/pager-click.d.ts +3 -0
  88. package/dist/engine/services/paging/methods/pager-click.d.ts.map +1 -0
  89. package/dist/engine/services/paging/methods/pager-click.js +22 -0
  90. package/dist/engine/services/paging/methods/pager-click.js.map +1 -0
  91. package/dist/engine/services/paging/methods/set-page-rows.d.ts +3 -0
  92. package/dist/engine/services/paging/methods/set-page-rows.d.ts.map +1 -0
  93. package/dist/engine/services/paging/methods/set-page-rows.js +26 -0
  94. package/dist/engine/services/paging/methods/set-page-rows.js.map +1 -0
  95. package/dist/engine/services/paging/paging.d.ts +11 -1
  96. package/dist/engine/services/paging/paging.d.ts.map +1 -1
  97. package/dist/engine/services/paging/paging.js +37 -0
  98. package/dist/engine/services/paging/paging.js.map +1 -1
  99. package/dist/engine/services/renderer/parts/pager/pager.d.ts.map +1 -1
  100. package/dist/engine/services/renderer/parts/pager/pager.js +59 -1
  101. package/dist/engine/services/renderer/parts/pager/pager.js.map +1 -1
  102. package/dist/engine/services/row/classes/row-pool.d.ts.map +1 -1
  103. package/dist/engine/services/row/classes/row-pool.js +46 -2
  104. package/dist/engine/services/row/classes/row-pool.js.map +1 -1
  105. package/dist/engine/services/row/methods/update-virtual-rows.d.ts.map +1 -1
  106. package/dist/engine/services/row/methods/update-virtual-rows.js +3 -1
  107. package/dist/engine/services/row/methods/update-virtual-rows.js.map +1 -1
  108. package/dist/engine/store/interfaces/paging-state.d.ts +8 -0
  109. package/dist/engine/store/interfaces/paging-state.d.ts.map +1 -0
  110. package/dist/engine/store/interfaces/paging-state.js +2 -0
  111. package/dist/engine/store/interfaces/paging-state.js.map +1 -0
  112. package/dist/engine/store/interfaces/view-state.d.ts +6 -2
  113. package/dist/engine/store/interfaces/view-state.d.ts.map +1 -1
  114. package/dist/engine/store/methods/create-initial-state.d.ts.map +1 -1
  115. package/dist/engine/store/methods/create-initial-state.js +15 -2
  116. package/dist/engine/store/methods/create-initial-state.js.map +1 -1
  117. package/dist/index.d.ts +1 -0
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/polygrid.css +16 -2
  120. package/package.json +1 -1
  121. package/dist/api/set-pagesize.d.ts +0 -3
  122. package/dist/api/set-pagesize.d.ts.map +0 -1
  123. package/dist/api/set-pagesize.js +0 -6
  124. package/dist/api/set-pagesize.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ export interface PagingButtonState {
2
+ isLeftEndDisabled: boolean;
3
+ isLeftDisabled: boolean;
4
+ isRightEndDisabled: boolean;
5
+ isRightDisabled: boolean;
6
+ }
7
+ //# sourceMappingURL=button-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-state.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/interfaces/button-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=button-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-state.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/interfaces/button-state.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export interface PolyGridPagingSettings {
2
+ pageSize?: number;
3
+ pageSizes?: number[];
4
+ pageCount?: number;
5
+ }
6
+ //# sourceMappingURL=paging-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paging-settings.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/interfaces/paging-settings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=paging-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paging-settings.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/interfaces/paging-settings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function jumpBack(grid: PolyGrid): void;
3
+ //# sourceMappingURL=jump-back.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-back.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-back.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,QAWtC"}
@@ -0,0 +1,11 @@
1
+ export function jumpBack(grid) {
2
+ const newActivePage = grid._store.getState().view.pagingState.currentPage - 1;
3
+ grid._store.update((draft) => {
4
+ draft.view.pagingState.currentPage = newActivePage;
5
+ if (newActivePage ===
6
+ (draft.view.pagingState.currentPageSection - 1) *
7
+ draft.view.pagingState.pageCount)
8
+ draft.view.pagingState.currentPageSection -= 1;
9
+ });
10
+ }
11
+ //# sourceMappingURL=jump-back.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-back.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-back.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,IAAc;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;QACnD,IACE,aAAa;YACb,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS;YAElC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function jumpForward(grid: PolyGrid): void;
3
+ //# sourceMappingURL=jump-forward.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-forward.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-forward.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,QAYzC"}
@@ -0,0 +1,12 @@
1
+ export function jumpForward(grid) {
2
+ const newActivePage = grid._store.getState().view.pagingState.currentPage + 1;
3
+ grid._store.update((draft) => {
4
+ draft.view.pagingState.currentPage = newActivePage;
5
+ if (newActivePage ===
6
+ draft.view.pagingState.currentPageSection *
7
+ draft.view.pagingState.pageCount +
8
+ 1)
9
+ draft.view.pagingState.currentPageSection += 1;
10
+ });
11
+ }
12
+ //# sourceMappingURL=jump-forward.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-forward.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-forward.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,aAAa,CAAC;QACnD,IACE,aAAa;YACb,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB;gBACvC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS;gBAChC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function jumpToEnd(grid: PolyGrid): void;
3
+ //# sourceMappingURL=jump-to-end.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-to-end.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-to-end.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,QAUvC"}
@@ -0,0 +1,10 @@
1
+ export function jumpToEnd(grid) {
2
+ const pagingState = grid._store.getState().view.pagingState;
3
+ const totalPages = Math.ceil(grid._store.getState().view.viewRows.length / pagingState.pageSize);
4
+ const lastPageSection = Math.ceil(totalPages / pagingState.pageCount);
5
+ grid._store.update((draft) => {
6
+ draft.view.pagingState.currentPageSection = lastPageSection;
7
+ draft.view.pagingState.currentPage = totalPages;
8
+ });
9
+ }
10
+ //# sourceMappingURL=jump-to-end.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-to-end.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-to-end.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC,MAAM,GAAG,WAAW,CAAC,QAAQ,CACpE,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,eAAe,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function jumpToStart(grid: PolyGrid): void;
3
+ //# sourceMappingURL=jump-to-start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-to-start.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-to-start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,QAKzC"}
@@ -0,0 +1,7 @@
1
+ export function jumpToStart(grid) {
2
+ grid._store.update((draft) => {
3
+ draft.view.pagingState.currentPageSection = 1;
4
+ draft.view.pagingState.currentPage = 1;
5
+ });
6
+ }
7
+ //# sourceMappingURL=jump-to-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jump-to-start.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/jump-to-start.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function loadNextPages(grid: PolyGrid): void;
3
+ //# sourceMappingURL=load-next-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-next-pages.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/load-next-pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,QAQ3C"}
@@ -0,0 +1,9 @@
1
+ export function loadNextPages(grid) {
2
+ const newPageSection = grid._store.getState().view.pagingState.currentPageSection + 1;
3
+ grid._store.update((draft) => {
4
+ draft.view.pagingState.currentPageSection = newPageSection;
5
+ draft.view.pagingState.currentPage =
6
+ (newPageSection - 1) * draft.view.pagingState.pageCount + 1;
7
+ });
8
+ }
9
+ //# sourceMappingURL=load-next-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-next-pages.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/load-next-pages.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,MAAM,cAAc,GAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW;YAChC,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function loadPrevPages(grid: PolyGrid): void;
3
+ //# sourceMappingURL=load-prev-pages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-prev-pages.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/load-prev-pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,QAS3C"}
@@ -0,0 +1,10 @@
1
+ export function loadPrevPages(grid) {
2
+ const currentPageSection = grid._store.getState().view.pagingState.currentPageSection;
3
+ const newPageSection = Math.max(1, currentPageSection - 1);
4
+ grid._store.update((draft) => {
5
+ draft.view.pagingState.currentPageSection = newPageSection;
6
+ draft.view.pagingState.currentPage =
7
+ (newPageSection - 1) * draft.view.pagingState.pageCount + 10;
8
+ });
9
+ }
10
+ //# sourceMappingURL=load-prev-pages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-prev-pages.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/load-prev-pages.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,IAAc;IAC1C,MAAM,kBAAkB,GACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC;IAC7D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,cAAc,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW;YAChC,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function pageSizeChange(grid: PolyGrid, e: Event): void;
3
+ //# sourceMappingURL=page-size-change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-size-change.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/page-size-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,QAOtD"}
@@ -0,0 +1,9 @@
1
+ export function pageSizeChange(grid, e) {
2
+ const newPageSize = +e.target.value;
3
+ grid._store.update((draft) => {
4
+ draft.view.pagingState.pageSize = newPageSize;
5
+ draft.view.pagingState.currentPageSection = 1;
6
+ draft.view.pagingState.currentPage = 1;
7
+ });
8
+ }
9
+ //# sourceMappingURL=page-size-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-size-change.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/page-size-change.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,IAAc,EAAE,CAAQ;IACrD,MAAM,WAAW,GAAG,CAAE,CAAC,CAAC,MAA4B,CAAC,KAAK,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,GAAG,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function pagerClick(grid: PolyGrid, e: PointerEvent): void;
3
+ //# sourceMappingURL=pager-click.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pager-click.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/pager-click.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAY,QAsBzD"}
@@ -0,0 +1,22 @@
1
+ export function pagerClick(grid, e) {
2
+ const target = e.target;
3
+ if (!target)
4
+ return;
5
+ // Page number clicked
6
+ if (target.dataset.page) {
7
+ const page = Number(target.dataset.page);
8
+ grid._store.update((draft) => (draft.view.pagingState.currentPage = page));
9
+ return;
10
+ }
11
+ // Previous section
12
+ if (target.dataset.action === "prev-section") {
13
+ grid._services.paging.loadPrevPages(grid);
14
+ return;
15
+ }
16
+ // Next section
17
+ if (target.dataset.action === "next-section") {
18
+ grid._services.paging.loadNextPages(grid);
19
+ return;
20
+ }
21
+ }
22
+ //# sourceMappingURL=pager-click.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pager-click.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/pager-click.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,IAAc,EAAE,CAAe;IACxD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,sBAAsB;IACtB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ export declare function setPageRows(grid: PolyGrid): void;
3
+ //# sourceMappingURL=set-page-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-page-rows.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/set-page-rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,QA6BzC"}
@@ -0,0 +1,26 @@
1
+ export function setPageRows(grid) {
2
+ const pagingState = grid._store.getState().view.pagingState;
3
+ const viewRows = grid._store.getState().view.viewRows;
4
+ const totalRows = viewRows.length;
5
+ const pageSize = pagingState.pageSize;
6
+ const maxPage = Math.max(1, Math.ceil(totalRows / pageSize));
7
+ // Clamp BEFORE slicing
8
+ if (pagingState.currentPage > maxPage) {
9
+ grid._store.update((draft) => {
10
+ draft.view.pagingState.currentPage = maxPage;
11
+ });
12
+ }
13
+ const newPage = pagingState.currentPage;
14
+ const isPagingTransition = newPage !== grid._services.paging.previousPage;
15
+ grid._services.paging.previousPage = newPage;
16
+ const start = (pagingState.currentPage - 1) * pagingState.pageSize;
17
+ const end = start + pagingState.pageSize;
18
+ const pagedViewRows = viewRows.slice(start, end);
19
+ grid._store.update((draft) => {
20
+ draft.view.isPagingTransition = isPagingTransition;
21
+ draft.view.pagedRows = pagedViewRows;
22
+ draft.ui.virtualRows.totalRowCount = pagedViewRows.length;
23
+ grid._services.row.recomputeVirtualRows(draft.ui.virtualRows);
24
+ });
25
+ }
26
+ //# sourceMappingURL=set-page-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-page-rows.js","sourceRoot":"","sources":["../../../../../src/engine/services/paging/methods/set-page-rows.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW,CAAC,IAAc;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAS,CAAC;IAEvD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC;IAE7D,uBAAuB;IACvB,IAAI,WAAW,CAAC,WAAW,GAAG,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC;IACxC,MAAM,kBAAkB,GAAG,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;IAC1E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;IAE7C,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC;IACnE,MAAM,GAAG,GAAG,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;IACzC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QACrC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -4,12 +4,22 @@ import { ObservableLike } from "../../rx-lite/interfaces/observable-like";
4
4
  import type { PolyGridStore } from "../../store/store";
5
5
  import { ServiceWithMethods } from "../services";
6
6
  import { PagingMethods } from "./index";
7
+ import { PagingButtonState } from "./interfaces/button-state";
8
+ import { PolyGridPagingSettings } from "./interfaces/paging-settings";
7
9
  export declare class PagingService {
8
10
  store: PolyGridStore;
9
11
  destroy$: ObservableLike<void>;
10
12
  gridDom: GridDOM;
11
13
  grid: PolyGrid;
12
- pageable$: ObservableLike<boolean>;
14
+ pageable$: ObservableLike<boolean | PolyGridPagingSettings>;
15
+ totalPages$: ObservableLike<number>;
16
+ visiblePages$: ObservableLike<{
17
+ visiblePages: number[];
18
+ totalPages: number;
19
+ totalRows: number;
20
+ }>;
21
+ buttonStates$: ObservableLike<PagingButtonState>;
22
+ previousPage: number;
13
23
  constructor(grid: PolyGrid);
14
24
  initApiSubscriptions(): void;
15
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paging.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/paging/paging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAW,MAAM,SAAS,CAAC;AAEjD,qBAAa,aAAa;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IAEf,SAAS,EAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBAExB,IAAI,EAAE,QAAQ;IAS1B,oBAAoB;CAMrB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAChD,aAAa,EACb,aAAa,CACd,CAAC"}
1
+ {"version":3,"file":"paging.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/paging/paging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAK1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAgB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAW,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,qBAAa,aAAa;IACxB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IAEf,SAAS,EAAG,cAAc,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;IAC7D,WAAW,EAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACrC,aAAa,EAAG,cAAc,CAAC;QAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,aAAa,EAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAElD,YAAY,SAAK;gBAEL,IAAI,EAAE,QAAQ;IAwD1B,oBAAoB;CAMrB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAChD,aAAa,EACb,aAAa,CACd,CAAC"}
@@ -1,12 +1,49 @@
1
1
  import { distinctUntilChanged } from "../../rx-lite/operators/distinct-until-changed";
2
+ import { map } from "../../rx-lite/operators/map";
2
3
  import { applyMethods } from "../services";
3
4
  import { methods } from "./index";
5
+ import { setPageRows } from "./methods/set-page-rows";
4
6
  export class PagingService {
5
7
  constructor(grid) {
8
+ this.previousPage = 1;
6
9
  this.store = grid._store;
7
10
  this.destroy$ = grid._destroy$;
8
11
  this.gridDom = grid._gridDom;
9
12
  this.grid = grid;
13
+ this.totalPages$ = this.store
14
+ .combineLatest([
15
+ (s) => s.view.viewRows,
16
+ (s) => s.view.pagingState.pageSize,
17
+ ])
18
+ .pipe(map(([rows, pageSize]) => Math.ceil(rows.length / pageSize)), distinctUntilChanged());
19
+ this.visiblePages$ = this.store
20
+ .combineLatestAny([(s) => s.view.pagingState, this.totalPages$])
21
+ .pipe(map(([pageState, totalPages]) => {
22
+ const totalRows = grid._store.getState().view.viewRows.length;
23
+ const start = (pageState.currentPageSection - 1) * pageState.pageCount + 1;
24
+ const end = Math.min(pageState.currentPageSection * pageState.pageCount, totalPages);
25
+ const visiblePages = [];
26
+ for (let p = start; p <= end; p++)
27
+ visiblePages.push(p);
28
+ return { visiblePages, totalPages, totalRows };
29
+ }));
30
+ this.buttonStates$ = this.store
31
+ .combineLatestAny([(s) => s.view.pagingState, this.totalPages$])
32
+ .pipe(map(([pagingState, totalPages]) => {
33
+ return {
34
+ isLeftEndDisabled: pagingState.currentPage === 1,
35
+ isLeftDisabled: pagingState.currentPage === 1,
36
+ isRightEndDisabled: pagingState.currentPage === totalPages,
37
+ isRightDisabled: pagingState.currentPage === totalPages,
38
+ };
39
+ }));
40
+ this.store
41
+ .combineLatestAny([(s) => s.view.viewRows, (s) => s.view.pagingState])
42
+ .subscribe(([viewRows, pagingState]) => {
43
+ if (!viewRows || !this.store.getState().view.pageable)
44
+ return;
45
+ setPageRows(this.grid);
46
+ });
10
47
  applyMethods(this, methods);
11
48
  }
12
49
  initApiSubscriptions() {
@@ -1 +1 @@
1
- {"version":3,"file":"paging.js","sourceRoot":"","sources":["../../../../src/engine/services/paging/paging.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAsB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAiB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,OAAO,aAAa;IAQxB,YAAY,IAAc;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK;aACxB,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;aACpD,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;CACF"}
1
+ {"version":3,"file":"paging.js","sourceRoot":"","sources":["../../../../src/engine/services/paging/paging.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pager.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/pager/pager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,kBAqEzC"}
1
+ {"version":3,"file":"pager.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/pager/pager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,kBAoKzC"}
@@ -1,5 +1,9 @@
1
1
  import { PG_CSS_CLASS } from "../../../../const/pg-css-class";
2
+ import { addDomListener } from "../../../../core/methods";
3
+ import { jumpBack } from "../../../paging/methods/jump-back";
2
4
  export function renderPager(grid) {
5
+ const pagingState = grid._store.getState().view.pagingState;
6
+ const pagingService = grid._services.paging;
3
7
  const pager = document.createElement("div");
4
8
  pager.classList.add(PG_CSS_CLASS.pager);
5
9
  const container = document.createElement("div");
@@ -8,25 +12,71 @@ export function renderPager(grid) {
8
12
  const leftEnd = grid._services.icon.renderIcon(grid._services.icon, "chevronLeftPipe");
9
13
  leftEndIcon.replaceChildren(leftEnd);
10
14
  container.appendChild(leftEndIcon);
15
+ addDomListener(grid._gridDom, leftEndIcon, "click", (e) => pagingService.jumpToStart(grid));
11
16
  const leftIcon = document.createElement("span");
12
17
  const left = grid._services.icon.renderIcon(grid._services.icon, "chevronLeft");
13
18
  leftIcon.replaceChildren(left);
14
19
  container.appendChild(leftIcon);
20
+ addDomListener(grid._gridDom, leftIcon, "click", (e) => jumpBack(grid));
15
21
  const pages = document.createElement("div");
16
22
  pages.classList.add("pages");
23
+ const pageNumbers = document.createElement("div");
24
+ addDomListener(grid._gridDom, pageNumbers, "click", (e) => pagingService.pagerClick(grid, e));
25
+ const visiblePagesSub = pagingService.visiblePages$.subscribe(({ visiblePages, totalPages, totalRows }) => {
26
+ const pagingState = grid._store.getState().view.pagingState;
27
+ pageNumbers.replaceChildren();
28
+ if (pagingState.currentPageSection > 1) {
29
+ const loadPrevPages = document.createElement("span");
30
+ loadPrevPages.innerText = "...";
31
+ loadPrevPages.dataset.action = "prev-section";
32
+ pageNumbers.appendChild(loadPrevPages);
33
+ }
34
+ for (const page of visiblePages) {
35
+ const p = document.createElement("span");
36
+ p.classList.toggle("active", page === pagingState.currentPage);
37
+ p.innerText = page.toString();
38
+ p.dataset.page = page.toString();
39
+ pageNumbers.appendChild(p);
40
+ }
41
+ if (totalPages > pagingState.currentPageSection * pagingState.pageCount) {
42
+ const loadNextPages = document.createElement("span");
43
+ loadNextPages.innerText = "...";
44
+ pageNumbers.appendChild(loadNextPages);
45
+ loadNextPages.dataset.action = "next-section";
46
+ }
47
+ });
48
+ pages.appendChild(pageNumbers);
49
+ grid._destroy$.subscribe(() => visiblePagesSub());
17
50
  container.appendChild(pages);
18
51
  const rightIcon = document.createElement("span");
19
52
  const right = grid._services.icon.renderIcon(grid._services.icon, "chevronRight");
20
53
  rightIcon.replaceChildren(right);
21
54
  container.appendChild(rightIcon);
55
+ addDomListener(grid._gridDom, rightIcon, "click", (e) => pagingService.jumpForward(grid));
22
56
  const rightEndIcon = document.createElement("span");
23
57
  const rightEnd = grid._services.icon.renderIcon(grid._services.icon, "chevronRightPipe");
24
58
  rightEndIcon.replaceChildren(rightEnd);
25
59
  container.appendChild(rightEndIcon);
60
+ addDomListener(grid._gridDom, rightEndIcon, "click", (e) => pagingService.jumpToEnd(grid));
61
+ const buttonStatesSub = pagingService.buttonStates$.subscribe((btnState) => {
62
+ leftEnd.classList.toggle(PG_CSS_CLASS.disabled, btnState.isLeftEndDisabled);
63
+ left.classList.toggle(PG_CSS_CLASS.disabled, btnState.isLeftDisabled);
64
+ rightEnd.classList.toggle(PG_CSS_CLASS.disabled, btnState.isRightEndDisabled);
65
+ right.classList.toggle(PG_CSS_CLASS.disabled, btnState.isRightDisabled);
66
+ });
67
+ grid._destroy$.subscribe(() => buttonStatesSub());
26
68
  const pageSizes = document.createElement("div");
27
69
  pageSizes.classList.add("page-sizes");
28
70
  const select = document.createElement("select");
71
+ pagingState.pageSizes.forEach((pageSize) => {
72
+ const opt = document.createElement("option");
73
+ opt.value = pageSize.toString();
74
+ opt.innerText = pageSize.toString();
75
+ select.appendChild(opt);
76
+ });
77
+ select.value = pagingState.pageSize.toString();
29
78
  pageSizes.appendChild(select);
79
+ addDomListener(grid._gridDom, select, "change", (e) => pagingService.pageSizeChange(grid, e));
30
80
  const itemsPerPage = document.createElement("span");
31
81
  itemsPerPage.innerText = "items per page";
32
82
  pageSizes.appendChild(itemsPerPage);
@@ -34,7 +84,15 @@ export function renderPager(grid) {
34
84
  const recordNumbers = document.createElement("div");
35
85
  recordNumbers.classList.add("record-numbers");
36
86
  const recordsOfTotal = document.createElement("span");
37
- recordsOfTotal.innerText = "x of y items";
87
+ const recNumbersSub = pagingService.visiblePages$.subscribe(({ visiblePages, totalPages, totalRows }) => {
88
+ const pagingState = grid._store.getState().view.pagingState;
89
+ const from = 1 + (pagingState.currentPage - 1) * pagingState.pageSize;
90
+ const to = totalRows > pagingState.currentPage * pagingState.pageSize
91
+ ? pagingState.currentPage * pagingState.pageSize
92
+ : totalRows;
93
+ recordsOfTotal.innerText = `${from} - ${to} of ${totalRows} items`;
94
+ });
95
+ grid._destroy$.subscribe(() => recNumbersSub());
38
96
  recordNumbers.appendChild(recordsOfTotal);
39
97
  container.appendChild(recordNumbers);
40
98
  pager.appendChild(container);
@@ -1 +1 @@
1
- {"version":3,"file":"pager.js","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/pager/pager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pager.js","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/pager/pager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"row-pool.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,OAAO;IAClB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAW;IAEvB,sBAAsB,UAAS;gBAG7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,MAAM;IAkBxB,OAAO,CAAC,UAAU;IA8BlB,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IA2KlD,OAAO;IAQP,OAAO;CAGR"}
1
+ {"version":3,"file":"row-pool.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,OAAO;IAClB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAW;IAEvB,sBAAsB,UAAS;gBAG7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,MAAM;IAkBxB,OAAO,CAAC,UAAU;IA8BlB,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IA0NlD,OAAO;IAQP,OAAO;CAGR"}
@@ -51,9 +51,12 @@ export class RowPool {
51
51
  reason === "filter" &&
52
52
  this.filterAnimationAllowed;
53
53
  const isLoadAnim = animEnabled && reason === "load";
54
+ const isPagingAnim = animEnabled &&
55
+ animOptions.paging &&
56
+ this.grid._store.getState().view.isPagingTransition;
54
57
  // Grouping/expand/collapse should NOT reuse sort/filter animations
55
58
  const isGroupAnim = animEnabled && animOptions.group;
56
- const total = v.totalRowCount;
59
+ const total = Math.min(v.totalRowCount, data.length);
57
60
  // show loading, if data is async
58
61
  if (this.grid._store.getState().view.externalLoading) {
59
62
  renderLoading(this.grid._gridDom.body, this.grid);
@@ -84,7 +87,7 @@ export class RowPool {
84
87
  const visibleCount = v.renderEndIndex - v.renderStartIndex;
85
88
  for (let i = 0; i < this.poolSize; i++) {
86
89
  const rowIndex = v.renderStartIndex + i;
87
- if (i >= visibleCount || rowIndex >= v.totalRowCount) {
90
+ if (i >= visibleCount || rowIndex >= total) {
88
91
  this.rows[i].hide();
89
92
  continue;
90
93
  }
@@ -101,6 +104,27 @@ export class RowPool {
101
104
  const rowData = viewRow.row;
102
105
  rowInstance.update(rowData, rowIndex);
103
106
  if (animEnabled) {
107
+ // Paging animation takes priority over all others
108
+ if (isPagingAnim) {
109
+ const el = rowInstance.el;
110
+ el.style.opacity = "0";
111
+ el.style.transform = `translateY(${newY + 6}px)`;
112
+ requestAnimationFrame(() => {
113
+ el.style.transition = "opacity 500ms ease, transform 500ms ease";
114
+ el.style.opacity = "1";
115
+ el.style.transform = `translateY(${newY}px)`;
116
+ // Only reset once, not for every row
117
+ if (rowIndex === v.renderStartIndex) {
118
+ requestAnimationFrame(() => {
119
+ this.grid._store.update((draft) => {
120
+ draft.view.isPagingTransition = false;
121
+ });
122
+ });
123
+ }
124
+ });
125
+ rowInstance.show();
126
+ continue;
127
+ }
104
128
  if (isSortAnim || isLoadAnim) {
105
129
  const delta = animService.rowDeltas.get(rowData.index);
106
130
  if (delta !== undefined) {
@@ -153,6 +177,26 @@ export class RowPool {
153
177
  if (viewRow.kind === "footer") {
154
178
  rowInstance.updateGroupFooter(viewRow.group, cells);
155
179
  }
180
+ if (isPagingAnim) {
181
+ const el = rowInstance.el;
182
+ el.style.opacity = "0";
183
+ el.style.transform = `translateY(${newY + 6}px)`;
184
+ requestAnimationFrame(() => {
185
+ el.style.transition = "opacity 500ms ease, transform 500ms ease";
186
+ el.style.opacity = "1";
187
+ el.style.transform = `translateY(${newY}px)`;
188
+ // Only reset once, not for every row
189
+ if (rowIndex === v.renderStartIndex) {
190
+ requestAnimationFrame(() => {
191
+ this.grid._store.update((draft) => {
192
+ draft.view.isPagingTransition = false;
193
+ });
194
+ });
195
+ }
196
+ });
197
+ rowInstance.show();
198
+ continue;
199
+ }
156
200
  rowInstance.setOffset(newY);
157
201
  rowInstance.show();
158
202
  }