svelte-common 6.17.2 → 6.18.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-common",
3
- "version": "6.17.2",
3
+ "version": "6.18.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "provenance": true
@@ -123,6 +123,8 @@ export class Pagination {
123
123
  set page(n) {
124
124
  const numberOfPages = this.numberOfPages;
125
125
 
126
+ n = Math.floor(n);
127
+
126
128
  if (n < 0) {
127
129
  n = numberOfPages + n + 1;
128
130
  } else {
@@ -169,7 +171,7 @@ export class Pagination {
169
171
  }
170
172
 
171
173
  /**
172
- *
174
+ * Calculate item index range for a given page number.
173
175
  * @param {number} page 1...
174
176
  * @returns {[number,number]}
175
177
  */
@@ -293,7 +295,7 @@ export function pageNavigation(elem, pg) {
293
295
  }
294
296
 
295
297
  export const defaultNavigationItemOptions = {
296
- numberOfItems: 7,
298
+ numberOfItems: 9,
297
299
  spreads: [[0], [1, 5, 25, 125, 625, 3125, 15625], [2, 3, 4, 10, 50, 100, 500]]
298
300
  };
299
301
 
@@ -301,25 +303,35 @@ export const defaultNavigationItemOptions = {
301
303
  * Generate actual sequence of page numbers to navigate to.
302
304
  * @param {number} numberOfPages
303
305
  * @param {number} currentPage
304
- * @param {Object} options
305
- * @param {Number} options.numberOfItems
306
- * @param {Number[][]} options.spreads
306
+ * @param {Object|number} optionsOrNumberOfItems
307
+ * @param {number} optionsOrNumberOfItems.numberOfItems
308
+ * @param {number[][]} optionsOrNumberOfItems.spreads
307
309
  * @return {Iterable<number>}
308
310
  */
309
- export function navigationItems(
310
- numberOfPages,
311
- currentPage,
312
- options = defaultNavigationItemOptions
313
- ) {
311
+ export function navigationItems(numberOfPages, currentPage, optionsOrNumberOfItems) {
314
312
  if (numberOfPages === 0) {
315
313
  return [];
316
314
  }
317
315
 
316
+ switch (typeof optionsOrNumberOfItems) {
317
+ case "number":
318
+ optionsOrNumberOfItems = Object.assign({}, defaultNavigationItemOptions, {
319
+ numberOfItems: optionsOrNumberOfItems
320
+ });
321
+ break;
322
+ case "undefined":
323
+ optionsOrNumberOfItems = defaultNavigationItemOptions;
324
+ break;
325
+
326
+ default:
327
+ optionsOrNumberOfItems = Object.assign({}, optionsOrNumberOfItems, defaultNavigationItemOptions);
328
+ }
329
+
318
330
  const items = new Set();
319
331
 
320
332
  const spread = (n, sides) => {
321
333
  for (const side of sides) {
322
- if (items.size === options.numberOfItems) {
334
+ if (items.size === optionsOrNumberOfItems.numberOfItems) {
323
335
  return true;
324
336
  }
325
337
  if (n - side >= 1) {
@@ -332,7 +344,7 @@ export function navigationItems(
332
344
  return false;
333
345
  };
334
346
 
335
- for (const s of options.spreads) {
347
+ for (const s of optionsOrNumberOfItems.spreads) {
336
348
  if (spread(currentPage, s) || spread(1, s) || spread(numberOfPages, s)) {
337
349
  break;
338
350
  }
@@ -3,15 +3,12 @@ export function pageNavigation(elem: any, pg: any): void;
3
3
  * Generate actual sequence of page numbers to navigate to.
4
4
  * @param {number} numberOfPages
5
5
  * @param {number} currentPage
6
- * @param {Object} options
7
- * @param {Number} options.numberOfItems
8
- * @param {Number[][]} options.spreads
6
+ * @param {Object|number} optionsOrNumberOfItems
7
+ * @param {number} optionsOrNumberOfItems.numberOfItems
8
+ * @param {number[][]} optionsOrNumberOfItems.spreads
9
9
  * @return {Iterable<number>}
10
10
  */
11
- export function navigationItems(numberOfPages: number, currentPage: number, options?: {
12
- numberOfItems: number;
13
- spreads: number[][];
14
- }): Iterable<number>;
11
+ export function navigationItems(numberOfPages: number, currentPage: number, optionsOrNumberOfItems: any | number): Iterable<number>;
15
12
  /**
16
13
  * Pagination support store.
17
14
  * Pages go from 1 ... numberOfPages
@@ -53,7 +50,7 @@ export class Pagination {
53
50
  */
54
51
  get numberOfItems(): number;
55
52
  /**
56
- *
53
+ * Calculate item index range for a given page number.
57
54
  * @param {number} page 1...
58
55
  * @returns {[number,number]}
59
56
  */