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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-common",
3
- "version": "6.15.0",
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.5",
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.0.0",
67
- "stylelint": "^16.8.1",
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.222",
69
+ "svelte": "^5.0.0-next.225",
70
70
  "testcafe": "^3.6.2",
71
71
  "typescript": "^5.5.4",
72
- "vite": "^5.4.0",
72
+ "vite": "^5.4.1",
73
73
  "vite-plugin-compression2": "^1.2.0"
74
74
  },
75
75
  "peerDependencies": {
@@ -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
- let items = Array.isArray(this.#data) ? this.#data : [...this.#data.values()];
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 = Array.isArray(this.#data) ? this.#data : [...this.#data.values()];
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
- const n = this.page - 1;
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
  /**
@@ -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
  */