UNPKG

2.17 kBJavaScriptView Raw
1import _extends from "@babel/runtime/helpers/esm/extends";
2import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
4/* eslint-disable react/no-multi-comp */
5import classNames from 'classnames';
6import React from 'react';
7import SafeAnchor from './SafeAnchor';
8var defaultProps = {
9 active: false,
10 disabled: false,
11 activeLabel: '(current)'
12};
13var PageItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
14 var active = _ref.active,
15 disabled = _ref.disabled,
16 className = _ref.className,
17 style = _ref.style,
18 activeLabel = _ref.activeLabel,
19 children = _ref.children,
20 props = _objectWithoutPropertiesLoose(_ref, ["active", "disabled", "className", "style", "activeLabel", "children"]);
21
22 var Component = active || disabled ? 'span' : SafeAnchor;
23 return /*#__PURE__*/React.createElement("li", {
24 ref: ref,
25 style: style,
26 className: classNames(className, 'page-item', {
27 active: active,
28 disabled: disabled
29 })
30 }, /*#__PURE__*/React.createElement(Component, _extends({
31 className: "page-link",
32 disabled: disabled
33 }, props), children, active && activeLabel && /*#__PURE__*/React.createElement("span", {
34 className: "sr-only"
35 }, activeLabel)));
36});
37PageItem.defaultProps = defaultProps;
38PageItem.displayName = 'PageItem';
39export default PageItem;
40
41function createButton(name, defaultValue, label) {
42 if (label === void 0) {
43 label = name;
44 }
45
46 function Button(_ref2) {
47 var children = _ref2.children,
48 props = _objectWithoutPropertiesLoose(_ref2, ["children"]);
49
50 return /*#__PURE__*/React.createElement(PageItem, props, /*#__PURE__*/React.createElement("span", {
51 "aria-hidden": "true"
52 }, children || defaultValue), /*#__PURE__*/React.createElement("span", {
53 className: "sr-only"
54 }, label));
55 }
56
57 Button.displayName = name;
58 return Button;
59}
60
61export var First = createButton('First', '«');
62export var Prev = createButton('Prev', '‹', 'Previous');
63export var Ellipsis = createButton('Ellipsis', '…', 'More');
64export var Next = createButton('Next', '›');
65export var Last = createButton('Last', '»');
\No newline at end of file