svelte-common 6.15.0 → 6.15.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.
- package/package.json +6 -6
- package/src/pagination.mjs +17 -15
- package/types/pagination.d.mts +7 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelte-common",
|
|
3
|
-
"version": "6.15.
|
|
3
|
+
"version": "6.15.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
57
57
|
"@semantic-release/exec": "^6.0.3",
|
|
58
|
-
"@semantic-release/github": "^10.1.
|
|
58
|
+
"@semantic-release/github": "^10.1.6",
|
|
59
59
|
"@semantic-release/release-notes-generator": "^14.0.1",
|
|
60
60
|
"@sveltejs/vite-plugin-svelte": "^3.1.1",
|
|
61
61
|
"ava": "^6.1.3",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"documentation": "^14.0.3",
|
|
64
64
|
"mf-styling": "^3.1.8",
|
|
65
65
|
"npm-pkgbuild": "^15.3.29",
|
|
66
|
-
"semantic-release": "^24.
|
|
67
|
-
"stylelint": "^16.8.
|
|
66
|
+
"semantic-release": "^24.1.0",
|
|
67
|
+
"stylelint": "^16.8.2",
|
|
68
68
|
"stylelint-config-standard": "^36.0.1",
|
|
69
|
-
"svelte": "^5.0.0-next.
|
|
69
|
+
"svelte": "^5.0.0-next.225",
|
|
70
70
|
"testcafe": "^3.6.2",
|
|
71
71
|
"typescript": "^5.5.4",
|
|
72
|
-
"vite": "^5.4.
|
|
72
|
+
"vite": "^5.4.1",
|
|
73
73
|
"vite-plugin-compression2": "^1.2.0"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
package/src/pagination.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { readable } from "svelte/store";
|
|
|
6
6
|
* @param {Map|Set|Array|readable} data
|
|
7
7
|
* @param {Object} options
|
|
8
8
|
* @param {number} [options.itemsPerPage]
|
|
9
|
-
* @param {number} [options.page]
|
|
9
|
+
* @param {number} [options.page] current page
|
|
10
10
|
* @param {Function} [options.sorter]
|
|
11
11
|
* @param {Function} [options.filter]
|
|
12
12
|
*/
|
|
@@ -63,7 +63,7 @@ export class Pagination {
|
|
|
63
63
|
const applySorter = sorter => {
|
|
64
64
|
this.#sorter = sorter;
|
|
65
65
|
this.fireSubscriptions();
|
|
66
|
-
|
|
66
|
+
};
|
|
67
67
|
|
|
68
68
|
if (sorter?.subscribe) {
|
|
69
69
|
this.#unsubscribeFilter = sorter.subscribe(applySorter);
|
|
@@ -165,6 +165,15 @@ export class Pagination {
|
|
|
165
165
|
return Array.isArray(this.#data) ? this.#data.length : this.#data.size;
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
+
/**
|
|
169
|
+
*
|
|
170
|
+
* @param {number} page 1...
|
|
171
|
+
* @returns {[number,number]}
|
|
172
|
+
*/
|
|
173
|
+
itemRangeOnPage(page) {
|
|
174
|
+
return [(this.page - 1) * this.itemsPerPage, this.page * this.itemsPerPage];
|
|
175
|
+
}
|
|
176
|
+
|
|
168
177
|
/**
|
|
169
178
|
* @return {number}
|
|
170
179
|
*/
|
|
@@ -181,9 +190,10 @@ export class Pagination {
|
|
|
181
190
|
return this.#itemsPerPage;
|
|
182
191
|
}
|
|
183
192
|
|
|
184
|
-
get filteredItems()
|
|
185
|
-
|
|
186
|
-
|
|
193
|
+
get filteredItems() {
|
|
194
|
+
let items = Array.isArray(this.#data)
|
|
195
|
+
? this.#data
|
|
196
|
+
: [...this.#data.values()];
|
|
187
197
|
|
|
188
198
|
if (this.filter) {
|
|
189
199
|
return items.filter(this.filter);
|
|
@@ -193,21 +203,13 @@ export class Pagination {
|
|
|
193
203
|
}
|
|
194
204
|
|
|
195
205
|
*[Symbol.iterator]() {
|
|
196
|
-
let data =
|
|
197
|
-
|
|
198
|
-
if (this.filter) {
|
|
199
|
-
data = data.filter(this.filter);
|
|
200
|
-
}
|
|
206
|
+
let data = this.filteredItems;
|
|
201
207
|
|
|
202
208
|
if (this.sorter) {
|
|
203
209
|
data = data.sort(this.sorter);
|
|
204
210
|
}
|
|
205
211
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
yield* data
|
|
209
|
-
.slice(n * this.itemsPerPage, (n + 1) * this.itemsPerPage)
|
|
210
|
-
[Symbol.iterator]();
|
|
212
|
+
yield* data.slice(...this.itemRangeOnPage(this.page))[Symbol.iterator]();
|
|
211
213
|
}
|
|
212
214
|
|
|
213
215
|
/**
|
package/types/pagination.d.mts
CHANGED
|
@@ -13,7 +13,7 @@ export function navigationItems(numberOfPages: number, currentPage: number, numb
|
|
|
13
13
|
* @param {Map|Set|Array|readable} data
|
|
14
14
|
* @param {Object} options
|
|
15
15
|
* @param {number} [options.itemsPerPage]
|
|
16
|
-
* @param {number} [options.page]
|
|
16
|
+
* @param {number} [options.page] current page
|
|
17
17
|
* @param {Function} [options.sorter]
|
|
18
18
|
* @param {Function} [options.filter]
|
|
19
19
|
*/
|
|
@@ -46,6 +46,12 @@ export class Pagination {
|
|
|
46
46
|
* @return {number}
|
|
47
47
|
*/
|
|
48
48
|
get numberOfItems(): number;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
* @param {number} page 1...
|
|
52
|
+
* @returns {[number,number]}
|
|
53
|
+
*/
|
|
54
|
+
itemRangeOnPage(page: number): [number, number];
|
|
49
55
|
/**
|
|
50
56
|
* @return {number}
|
|
51
57
|
*/
|