@hyphen/hyphen-components 2.13.0 → 2.14.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/dist/components/Pagination/Pagination.utilities.d.ts +3 -4
- package/dist/css/utilities.css +13 -0
- package/dist/hyphen-components.cjs.development.js +59 -58
- package/dist/hyphen-components.cjs.development.js.map +1 -1
- package/dist/hyphen-components.cjs.production.min.js +1 -1
- package/dist/hyphen-components.cjs.production.min.js.map +1 -1
- package/dist/hyphen-components.esm.js +59 -58
- package/dist/hyphen-components.esm.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/components/Box/Box.test.tsx +229 -314
- package/src/components/Pagination/Pagination.test.tsx +5 -2
- package/src/components/Pagination/Pagination.tsx +43 -25
- package/src/components/Pagination/Pagination.utilities.test.ts +15 -30
- package/src/components/Pagination/Pagination.utilities.ts +21 -59
- package/src/styles/display.scss +12 -0
- package/src/types/index.ts +2 -1
|
@@ -3383,20 +3383,17 @@ var Modal = /*#__PURE__*/function () {
|
|
|
3383
3383
|
return Modal;
|
|
3384
3384
|
}();
|
|
3385
3385
|
|
|
3386
|
-
var generatePages = function generatePages(
|
|
3387
|
-
var
|
|
3386
|
+
var generatePages = function generatePages(pageTotal, activePage, numberOfPagesDisplayed) {
|
|
3387
|
+
var pageRange = Math.min(pageTotal, Math.max(1, numberOfPagesDisplayed));
|
|
3388
3388
|
var pages = [];
|
|
3389
3389
|
var startingPage = 1;
|
|
3390
3390
|
var endingPage = pageRange;
|
|
3391
|
-
if (
|
|
3392
|
-
startingPage = 1;
|
|
3393
|
-
endingPage =
|
|
3394
|
-
} else
|
|
3395
|
-
startingPage =
|
|
3396
|
-
endingPage = startingPage +
|
|
3397
|
-
} else if (activePage > numberOfPagesDisplayed && activePage + numberOfPagesDisplayed <= pageTotal) {
|
|
3398
|
-
startingPage = activePage - Math.floor(numberOfPagesDisplayed / 2);
|
|
3399
|
-
endingPage = startingPage + (numberOfPagesDisplayed - 1);
|
|
3391
|
+
if (activePage + Math.floor(pageRange / 2) >= pageTotal) {
|
|
3392
|
+
startingPage = Math.max(1, pageTotal - pageRange + 1);
|
|
3393
|
+
endingPage = pageTotal;
|
|
3394
|
+
} else {
|
|
3395
|
+
startingPage = Math.max(1, activePage - Math.floor(pageRange / 2));
|
|
3396
|
+
endingPage = Math.min(pageTotal, startingPage + pageRange - 1);
|
|
3400
3397
|
}
|
|
3401
3398
|
for (var i = startingPage; i <= endingPage; i += 1) {
|
|
3402
3399
|
pages.push({
|
|
@@ -3404,36 +3401,32 @@ var generatePages = function generatePages(pageRange, pageTotal, activePage, num
|
|
|
3404
3401
|
isPage: true
|
|
3405
3402
|
});
|
|
3406
3403
|
}
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
if (pageTotal > numberOfPagesDisplayed + 1) {
|
|
3404
|
+
// Handling ellipsis for overflow pages
|
|
3405
|
+
if (endingPage < pageTotal) {
|
|
3406
|
+
if (endingPage < pageTotal - 1) {
|
|
3411
3407
|
pages.push({
|
|
3412
|
-
pageNumber:
|
|
3408
|
+
pageNumber: -1,
|
|
3413
3409
|
isPage: false
|
|
3414
|
-
});
|
|
3410
|
+
}); // represents ellipsis
|
|
3415
3411
|
}
|
|
3416
3412
|
pages.push({
|
|
3417
3413
|
pageNumber: pageTotal,
|
|
3418
3414
|
isPage: true
|
|
3419
3415
|
});
|
|
3420
3416
|
}
|
|
3421
|
-
if (
|
|
3422
|
-
var threeDotsPage = activePage - numberOfPagesDisplayed > 1 ? activePage - numberOfPagesDisplayed : activePage - numberOfPagesDisplayed + 1;
|
|
3417
|
+
if (startingPage > 1) {
|
|
3423
3418
|
pages.unshift({
|
|
3424
3419
|
pageNumber: 1,
|
|
3425
3420
|
isPage: true
|
|
3426
|
-
}, {
|
|
3427
|
-
pageNumber: threeDotsPage,
|
|
3428
|
-
isPage: false
|
|
3429
3421
|
});
|
|
3422
|
+
if (startingPage > 2) {
|
|
3423
|
+
pages.splice(1, 0, {
|
|
3424
|
+
pageNumber: -1,
|
|
3425
|
+
isPage: false
|
|
3426
|
+
}); // represents ellipsis
|
|
3427
|
+
}
|
|
3430
3428
|
}
|
|
3431
|
-
return
|
|
3432
|
-
};
|
|
3433
|
-
// Return the true page range in cases
|
|
3434
|
-
// where number of pages wanted for display is larger than the actual page total.
|
|
3435
|
-
var generatePageRange = function generatePageRange(numberOfPagesDisplayed, pageTotal) {
|
|
3436
|
-
return numberOfPagesDisplayed > pageTotal ? pageTotal : numberOfPagesDisplayed;
|
|
3429
|
+
return pages;
|
|
3437
3430
|
};
|
|
3438
3431
|
var generatePageTotal = function generatePageTotal(totalItemsCount, itemsPerPage) {
|
|
3439
3432
|
return Math.ceil(totalItemsCount / itemsPerPage);
|
|
@@ -3442,19 +3435,12 @@ var generatePageTotal = function generatePageTotal(totalItemsCount, itemsPerPage
|
|
|
3442
3435
|
// E.G: if the items per page is 20 and we are on page 1, it will return:
|
|
3443
3436
|
// { first: 1, last: 20 }
|
|
3444
3437
|
var generateActiveListRange = function generateActiveListRange(activePage, totalItemsCount, itemsPerPage) {
|
|
3445
|
-
var
|
|
3446
|
-
var
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
}
|
|
3451
|
-
activePageRange.first = activePage * itemsPerPage - (itemsPerPage - 1);
|
|
3452
|
-
activePageRange.last = activePage * itemsPerPage;
|
|
3453
|
-
} else {
|
|
3454
|
-
activePageRange.first = activePage * itemsPerPage - (itemsPerPage - 1);
|
|
3455
|
-
activePageRange.last = totalItemsCount;
|
|
3456
|
-
}
|
|
3457
|
-
return activePageRange;
|
|
3438
|
+
var first = (activePage - 1) * itemsPerPage + 1;
|
|
3439
|
+
var last = Math.min(activePage * itemsPerPage, totalItemsCount);
|
|
3440
|
+
return {
|
|
3441
|
+
first: first,
|
|
3442
|
+
last: last
|
|
3443
|
+
};
|
|
3458
3444
|
};
|
|
3459
3445
|
|
|
3460
3446
|
var Pagination = function Pagination(_ref) {
|
|
@@ -3477,23 +3463,31 @@ var Pagination = function Pagination(_ref) {
|
|
|
3477
3463
|
_ref$prevPageText = _ref.prevPageText,
|
|
3478
3464
|
prevPageText = _ref$prevPageText === void 0 ? 'Previous' : _ref$prevPageText;
|
|
3479
3465
|
var pageTotal = useMemo(function () {
|
|
3466
|
+
if (itemsPerPage <= 0) return 1;
|
|
3480
3467
|
return generatePageTotal(totalItemsCount, itemsPerPage);
|
|
3481
3468
|
}, [totalItemsCount, itemsPerPage]);
|
|
3482
|
-
var
|
|
3483
|
-
return generatePageRange(numberOfPagesDisplayed, pageTotal);
|
|
3484
|
-
}, [numberOfPagesDisplayed, pageTotal]);
|
|
3469
|
+
var validActivePage = Math.max(1, Math.min(activePage, pageTotal));
|
|
3485
3470
|
var activeListRange = useMemo(function () {
|
|
3486
|
-
return generateActiveListRange(
|
|
3487
|
-
}, [
|
|
3471
|
+
return generateActiveListRange(validActivePage, totalItemsCount, itemsPerPage);
|
|
3472
|
+
}, [validActivePage, totalItemsCount, itemsPerPage]);
|
|
3488
3473
|
var pages = useMemo(function () {
|
|
3489
|
-
return generatePages(
|
|
3490
|
-
}, [
|
|
3474
|
+
return generatePages(pageTotal, validActivePage, numberOfPagesDisplayed);
|
|
3475
|
+
}, [pageTotal, validActivePage, numberOfPagesDisplayed]);
|
|
3476
|
+
var paginationClassNames = useMemo(function () {
|
|
3477
|
+
return classNames(className);
|
|
3478
|
+
}, [className]);
|
|
3479
|
+
var activeListRangeText = useMemo(function () {
|
|
3480
|
+
if (totalItemsCount === 0) {
|
|
3481
|
+
return 'No items to display';
|
|
3482
|
+
}
|
|
3483
|
+
return "Showing " + activeListRange.first + "-" + activeListRange.last + " of " + totalItemsCount;
|
|
3484
|
+
}, [activeListRange, totalItemsCount]);
|
|
3491
3485
|
return React.createElement(Box, {
|
|
3492
3486
|
as: "nav",
|
|
3493
3487
|
direction: "row",
|
|
3494
3488
|
alignItems: "center",
|
|
3495
3489
|
justifyContent: "space-between",
|
|
3496
|
-
className:
|
|
3490
|
+
className: paginationClassNames
|
|
3497
3491
|
}, React.createElement(Box, {
|
|
3498
3492
|
direction: "row",
|
|
3499
3493
|
justifyContent: {
|
|
@@ -3507,18 +3501,17 @@ var Pagination = function Pagination(_ref) {
|
|
|
3507
3501
|
}, React.createElement(Button, {
|
|
3508
3502
|
variant: "secondary",
|
|
3509
3503
|
size: isCompact ? 'sm' : 'md',
|
|
3510
|
-
isDisabled:
|
|
3504
|
+
isDisabled: validActivePage === 1,
|
|
3511
3505
|
onClick: function onClick() {
|
|
3512
|
-
return onChange(
|
|
3506
|
+
return onChange(validActivePage - 1);
|
|
3513
3507
|
}
|
|
3514
3508
|
}, prevPageText), arePagesVisible && React.createElement(Box, {
|
|
3515
3509
|
direction: "row",
|
|
3516
3510
|
gap: "2xs"
|
|
3517
|
-
}, pages.map(function (_ref2) {
|
|
3511
|
+
}, pages.map(function (_ref2, index) {
|
|
3518
3512
|
var pageNumber = _ref2.pageNumber,
|
|
3519
3513
|
isPage = _ref2.isPage;
|
|
3520
|
-
|
|
3521
|
-
return React.createElement(Button, {
|
|
3514
|
+
return isPage ? React.createElement(Button, {
|
|
3522
3515
|
key: pageNumber,
|
|
3523
3516
|
onClick: function onClick() {
|
|
3524
3517
|
return onChange(pageNumber);
|
|
@@ -3529,13 +3522,21 @@ var Pagination = function Pagination(_ref) {
|
|
|
3529
3522
|
minWidth: isCompact ? '33px' : '42px'
|
|
3530
3523
|
},
|
|
3531
3524
|
className: className
|
|
3532
|
-
},
|
|
3525
|
+
}, pageNumber) : React.createElement(Box, {
|
|
3526
|
+
key: "ellipsis-" + index,
|
|
3527
|
+
style: {
|
|
3528
|
+
display: 'flexk',
|
|
3529
|
+
minWidth: isCompact ? '33px' : '42px',
|
|
3530
|
+
justifyContent: 'space-around',
|
|
3531
|
+
alignItems: 'center'
|
|
3532
|
+
}
|
|
3533
|
+
}, "...");
|
|
3533
3534
|
})), React.createElement(Button, {
|
|
3534
3535
|
variant: "secondary",
|
|
3535
3536
|
size: isCompact ? 'sm' : 'md',
|
|
3536
|
-
isDisabled:
|
|
3537
|
+
isDisabled: validActivePage === pageTotal,
|
|
3537
3538
|
onClick: function onClick() {
|
|
3538
|
-
return onChange(
|
|
3539
|
+
return onChange(validActivePage + 1);
|
|
3539
3540
|
}
|
|
3540
3541
|
}, nextPageText)), React.createElement(Box, {
|
|
3541
3542
|
as: "p",
|
|
@@ -3544,7 +3545,7 @@ var Pagination = function Pagination(_ref) {
|
|
|
3544
3545
|
tablet: 'block'
|
|
3545
3546
|
},
|
|
3546
3547
|
fontSize: isCompact ? 'sm' : 'md'
|
|
3547
|
-
}, isTotalVisible &&
|
|
3548
|
+
}, isTotalVisible && activeListRangeText));
|
|
3548
3549
|
};
|
|
3549
3550
|
|
|
3550
3551
|
var styles$6 = {"slider":"RangeInput-module_slider__Z6D68","disabled":"RangeInput-module_disabled__gyu72"};
|