UNPKG

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