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 +1 -1
- package/src/pagination.mjs +24 -12
- package/types/pagination.d.mts +5 -8
package/package.json
CHANGED
package/src/pagination.mjs
CHANGED
|
@@ -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:
|
|
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}
|
|
305
|
-
* @param {
|
|
306
|
-
* @param {
|
|
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 ===
|
|
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
|
|
347
|
+
for (const s of optionsOrNumberOfItems.spreads) {
|
|
336
348
|
if (spread(currentPage, s) || spread(1, s) || spread(numberOfPages, s)) {
|
|
337
349
|
break;
|
|
338
350
|
}
|
package/types/pagination.d.mts
CHANGED
|
@@ -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}
|
|
7
|
-
* @param {
|
|
8
|
-
* @param {
|
|
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,
|
|
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
|
*/
|