@nl-rvo/css-page-number-navigation 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +39 -38
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -21,58 +21,59 @@
|
|
|
21
21
|
|
|
22
22
|
## Voor ontwikkelaars
|
|
23
23
|
|
|
24
|
-
De
|
|
24
|
+
De logica voor het genereren van paginanummers met ellipsen kan als volgt worden geïmplementeerd.
|
|
25
25
|
|
|
26
26
|
```js
|
|
27
|
-
const generatePageNumberMarkup = () =>
|
|
28
|
-
|
|
27
|
+
const generatePageNumberMarkup = (page, activePage) => {
|
|
28
|
+
return page === activePage ? `[${page}]` : `${page}`;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const generateEllipsisMarkup = () => "…";
|
|
29
32
|
|
|
30
33
|
const generatePageNumbers = (totalPages, activePage) => {
|
|
31
34
|
const pages = [];
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// Add the page before the active page if it's more than 2
|
|
45
|
-
if (activePage > 2) {
|
|
46
|
-
pages.push(generatePageNumberMarkup(activePage - 1, activePage));
|
|
35
|
+
const windowSize = 5;
|
|
36
|
+
|
|
37
|
+
const addRange = (from, to) => {
|
|
38
|
+
for (let i = from; i <= to; i++) {
|
|
39
|
+
pages.push(generatePageNumberMarkup(i, activePage));
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
// Toon alle pagina's als het totaal klein is
|
|
44
|
+
if (totalPages <= windowSize) {
|
|
45
|
+
addRange(1, totalPages);
|
|
46
|
+
return pages;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
//
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// Add the page after the active page if it's less than total pages minus 1 and not the last page
|
|
55
|
-
if (activePage < totalPages - 1 && activePage !== totalPages - 2) {
|
|
56
|
-
pages.push(generatePageNumberMarkup(activePage + 1, activePage));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Add ellipses if the active page is less than the total pages minus 3
|
|
60
|
-
if (activePage < totalPages - 3) {
|
|
49
|
+
// Begin van de paginering
|
|
50
|
+
// Voorbeeld: [1] 2 3 4 5 … 100
|
|
51
|
+
if (activePage <= 4) {
|
|
52
|
+
addRange(1, 5);
|
|
61
53
|
pages.push(generateEllipsisMarkup());
|
|
54
|
+
pages.push(generatePageNumberMarkup(totalPages, activePage));
|
|
55
|
+
return pages;
|
|
62
56
|
}
|
|
63
57
|
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
// Einde van de paginering
|
|
59
|
+
// Voorbeeld: 1 … 96 97 98 [99] 100
|
|
60
|
+
if (activePage >= totalPages - 3) {
|
|
61
|
+
pages.push(generatePageNumberMarkup(1, activePage));
|
|
62
|
+
pages.push(generateEllipsisMarkup());
|
|
63
|
+
addRange(totalPages - 4, totalPages);
|
|
64
|
+
return pages;
|
|
67
65
|
}
|
|
68
66
|
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
// Midden van de paginering
|
|
68
|
+
// Voorbeeld: 1 … 4 [5] 6 … 100
|
|
69
|
+
pages.push(generatePageNumberMarkup(1, activePage));
|
|
70
|
+
pages.push(generateEllipsisMarkup());
|
|
71
|
+
addRange(activePage - 1, activePage + 1);
|
|
72
|
+
pages.push(generateEllipsisMarkup());
|
|
73
|
+
pages.push(generatePageNumberMarkup(totalPages, activePage));
|
|
73
74
|
|
|
74
75
|
return pages;
|
|
75
76
|
};
|
|
76
77
|
|
|
77
|
-
generatePageNumbers(
|
|
78
|
+
generatePageNumbers(100, 1);
|
|
78
79
|
```
|
package/package.json
CHANGED