@deque/cauldron-react 4.4.0-canary.f8ca4e9b → 4.5.0-canary.7f6a304a
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.
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Placement } from '@popperjs/core';
|
|
3
|
+
interface Props extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
totalItems: number;
|
|
5
|
+
itemsPerPage?: number;
|
|
6
|
+
currentPage?: number;
|
|
7
|
+
statusLabel?: React.ReactNode;
|
|
8
|
+
firstPageLabel?: string;
|
|
9
|
+
previousPageLabel?: string;
|
|
10
|
+
nextPageLabel?: string;
|
|
11
|
+
lastPageLabel?: string;
|
|
12
|
+
onNextPageClick?: () => void;
|
|
13
|
+
onPreviousPageClick?: () => void;
|
|
14
|
+
onFirstPageClick?: () => void;
|
|
15
|
+
onLastPageClick?: () => void;
|
|
16
|
+
tooltipPlacement?: Placement;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const Pagination: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
export default Pagination;
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
interface Props extends React.HTMLAttributes<HTMLDivElement> {
|
|
4
|
-
totalItems: number;
|
|
5
|
-
itemsPerPage?: number;
|
|
6
|
-
currentPage?: number;
|
|
7
|
-
statusLabel?: React.ReactNode;
|
|
8
|
-
firstPageLabel?: string;
|
|
9
|
-
previousPageLabel?: string;
|
|
10
|
-
nextPageLabel?: string;
|
|
11
|
-
lastPageLabel?: string;
|
|
12
|
-
onNextPageClick?: () => void;
|
|
13
|
-
onPreviousPageClick?: () => void;
|
|
14
|
-
onFirstPageClick?: () => void;
|
|
15
|
-
onLastPageClick?: () => void;
|
|
16
|
-
tooltipPlacement?: Placement;
|
|
17
|
-
className?: string;
|
|
18
|
-
}
|
|
19
|
-
declare const Pagination: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
|
|
1
|
+
import Pagination from './Pagination';
|
|
2
|
+
export { usePagination } from './usePagination';
|
|
20
3
|
export default Pagination;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
interface Options {
|
|
2
|
+
totalItems: number;
|
|
3
|
+
initialPageSize?: number;
|
|
4
|
+
initialPage?: number;
|
|
5
|
+
}
|
|
6
|
+
interface PaginationResults {
|
|
7
|
+
totalItems: number;
|
|
8
|
+
currentPage: number;
|
|
9
|
+
itemsPerPage: number;
|
|
10
|
+
onNextPageClick: () => void;
|
|
11
|
+
onPreviousPageClick: () => void;
|
|
12
|
+
onFirstPageClick: () => void;
|
|
13
|
+
onLastPageClick: () => void;
|
|
14
|
+
}
|
|
15
|
+
interface PageStatus {
|
|
16
|
+
currentPage: number;
|
|
17
|
+
pageStart: number;
|
|
18
|
+
pageEnd: number;
|
|
19
|
+
}
|
|
20
|
+
export declare const usePagination: ({ totalItems, initialPageSize, initialPage }: Options) => {
|
|
21
|
+
pagination: PaginationResults;
|
|
22
|
+
pageStatus: PageStatus;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
package/lib/index.d.ts
CHANGED
|
@@ -45,7 +45,7 @@ export { default as Panel } from './components/Panel';
|
|
|
45
45
|
export { default as IssuePanel } from './components/IssuePanel';
|
|
46
46
|
export { default as ProgressBar } from './components/ProgressBar';
|
|
47
47
|
export { Address, AddressLine, AddressCityStateZip } from './components/Address';
|
|
48
|
-
export { default as Pagination } from './components/Pagination';
|
|
48
|
+
export { default as Pagination, usePagination } from './components/Pagination';
|
|
49
49
|
export { default as FieldWrap } from './components/FieldWrap';
|
|
50
50
|
export { default as Breadcrumb, BreadcrumbItem, BreadcrumbLink } from './components/Breadcrumb';
|
|
51
51
|
export { default as TwoColumnPanel, ColumnHeader, ColumnGroupHeader, ColumnLeft, ColumnRight, ColumnList } from './components/TwoColumnPanel';
|
package/lib/index.js
CHANGED
|
@@ -8019,6 +8019,17 @@ function useSharedRef(ref) {
|
|
|
8019
8019
|
var LoaderOverlay = React.forwardRef(function (_a, ref) {
|
|
8020
8020
|
var className = _a.className, variant = _a.variant, label = _a.label, children = _a.children, focusOnInitialRender = _a.focusOnInitialRender, _b = _a.focusTrap, focusTrap = _b === void 0 ? false : _b, other = tslib.__rest(_a, ["className", "variant", "label", "children", "focusOnInitialRender", "focusTrap"]);
|
|
8021
8021
|
var overlayRef = useSharedRef(ref);
|
|
8022
|
+
React.useEffect(function () {
|
|
8023
|
+
var isolator = overlayRef.current
|
|
8024
|
+
? new AriaIsolate(overlayRef.current)
|
|
8025
|
+
: null;
|
|
8026
|
+
if (isolator) {
|
|
8027
|
+
focusTrap ? isolator.activate() : isolator.deactivate();
|
|
8028
|
+
}
|
|
8029
|
+
return function () {
|
|
8030
|
+
isolator === null || isolator === void 0 ? void 0 : isolator.deactivate();
|
|
8031
|
+
};
|
|
8032
|
+
}, [focusTrap, overlayRef.current]);
|
|
8022
8033
|
React.useEffect(function () {
|
|
8023
8034
|
if (!!focusOnInitialRender && overlayRef.current) {
|
|
8024
8035
|
setTimeout(function () {
|
|
@@ -8521,6 +8532,34 @@ Pagination.propTypes = {
|
|
|
8521
8532
|
className: PropTypes.string
|
|
8522
8533
|
};
|
|
8523
8534
|
|
|
8535
|
+
var usePagination = function (_a) {
|
|
8536
|
+
var totalItems = _a.totalItems, _b = _a.initialPageSize, initialPageSize = _b === void 0 ? 10 : _b, _c = _a.initialPage, initialPage = _c === void 0 ? 1 : _c;
|
|
8537
|
+
var _d = tslib.__read(React.useState(initialPage), 2), currentPage = _d[0], setCurrentPage = _d[1];
|
|
8538
|
+
var pageStart = currentPage * initialPageSize - initialPageSize + 1;
|
|
8539
|
+
var pageEnd = Math.min(pageStart + initialPageSize - 1, totalItems);
|
|
8540
|
+
var onFirstPageClick = function () { return setCurrentPage(1); };
|
|
8541
|
+
var onPreviousPageClick = function () { return setCurrentPage(currentPage - 1); };
|
|
8542
|
+
var onNextPageClick = function () { return setCurrentPage(currentPage + 1); };
|
|
8543
|
+
var onLastPageClick = function () {
|
|
8544
|
+
return setCurrentPage(Math.ceil(totalItems / initialPageSize));
|
|
8545
|
+
};
|
|
8546
|
+
var pagination = {
|
|
8547
|
+
totalItems: totalItems,
|
|
8548
|
+
currentPage: currentPage,
|
|
8549
|
+
itemsPerPage: initialPageSize,
|
|
8550
|
+
onFirstPageClick: onFirstPageClick,
|
|
8551
|
+
onPreviousPageClick: onPreviousPageClick,
|
|
8552
|
+
onNextPageClick: onNextPageClick,
|
|
8553
|
+
onLastPageClick: onLastPageClick
|
|
8554
|
+
};
|
|
8555
|
+
var pageStatus = {
|
|
8556
|
+
currentPage: currentPage,
|
|
8557
|
+
pageStart: pageStart,
|
|
8558
|
+
pageEnd: pageEnd
|
|
8559
|
+
};
|
|
8560
|
+
return { pagination: pagination, pageStatus: pageStatus };
|
|
8561
|
+
};
|
|
8562
|
+
|
|
8524
8563
|
var FieldWrap = React__default.forwardRef(function (_a, ref) {
|
|
8525
8564
|
var children = _a.children, className = _a.className, _b = _a.as, Component = _b === void 0 ? 'div' : _b, props = tslib.__rest(_a, ["children", "className", "as"]);
|
|
8526
8565
|
return (React__default.createElement(Component, tslib.__assign({ ref: ref, className: classNames('Panel', className) }, props), children));
|
|
@@ -8883,4 +8922,5 @@ exports.Workspace = Workspace;
|
|
|
8883
8922
|
exports.focusableSelector = focusableSelector;
|
|
8884
8923
|
exports.iconTypes = iconTypes;
|
|
8885
8924
|
exports.useDidUpdate = useDidUpdate;
|
|
8925
|
+
exports.usePagination = usePagination;
|
|
8886
8926
|
exports.useThemeContext = useThemeContext;
|