svelte-common 6.15.1 → 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.1",
3
+ "version": "6.15.2",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -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);
@@ -199,11 +209,7 @@ export class Pagination {
199
209
  data = data.sort(this.sorter);
200
210
  }
201
211
 
202
- const n = this.page - 1;
203
-
204
- yield* data
205
- .slice(n * this.itemsPerPage, (n + 1) * this.itemsPerPage)
206
- [Symbol.iterator]();
212
+ yield* data.slice(...this.itemRangeOnPage(this.page))[Symbol.iterator]();
207
213
  }
208
214
 
209
215
  /**
@@ -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
  */