UNPKG

2.94 kBJavaScriptView Raw
1import _inheritsLoose from "@babel/runtime-corejs2/helpers/esm/inheritsLoose";
2import _extends from "@babel/runtime-corejs2/helpers/esm/extends";
3import _objectWithoutPropertiesLoose from "@babel/runtime-corejs2/helpers/esm/objectWithoutPropertiesLoose";
4
5/* eslint-disable react/no-multi-comp */
6import classNames from 'classnames';
7import PropTypes from 'prop-types';
8import React from 'react';
9import SafeAnchor from './SafeAnchor';
10var propTypes = {
11 eventKey: PropTypes.any,
12 className: PropTypes.string,
13 onSelect: PropTypes.func,
14 disabled: PropTypes.bool,
15 active: PropTypes.bool,
16 activeLabel: PropTypes.string.isRequired
17};
18var defaultProps = {
19 active: false,
20 disabled: false,
21 activeLabel: '(current)'
22};
23export default function PaginationItem(_ref) {
24 var active = _ref.active,
25 disabled = _ref.disabled,
26 className = _ref.className,
27 style = _ref.style,
28 activeLabel = _ref.activeLabel,
29 children = _ref.children,
30 props = _objectWithoutPropertiesLoose(_ref, ["active", "disabled", "className", "style", "activeLabel", "children"]);
31
32 var Component = active || disabled ? 'span' : SafeAnchor;
33 return React.createElement("li", {
34 style: style,
35 className: classNames(className, {
36 active: active,
37 disabled: disabled
38 })
39 }, React.createElement(Component, _extends({
40 disabled: disabled
41 }, props), children, active && React.createElement("span", {
42 className: "sr-only"
43 }, activeLabel)));
44}
45PaginationItem.propTypes = propTypes;
46PaginationItem.defaultProps = defaultProps;
47
48function createButton(name, defaultValue, label) {
49 var _class, _temp;
50
51 if (label === void 0) {
52 label = name;
53 }
54
55 return _temp = _class =
56 /*#__PURE__*/
57 function (_React$Component) {
58 _inheritsLoose(_class, _React$Component);
59
60 function _class() {
61 return _React$Component.apply(this, arguments) || this;
62 }
63
64 var _proto = _class.prototype;
65
66 _proto.render = function render() {
67 var _this$props = this.props,
68 disabled = _this$props.disabled,
69 children = _this$props.children,
70 className = _this$props.className,
71 props = _objectWithoutPropertiesLoose(_this$props, ["disabled", "children", "className"]);
72
73 var Component = disabled ? 'span' : SafeAnchor;
74 return React.createElement("li", _extends({
75 "aria-label": label,
76 className: classNames(className, {
77 disabled: disabled
78 })
79 }, props), React.createElement(Component, null, children || defaultValue));
80 };
81
82 return _class;
83 }(React.Component), _class.displayName = name, _class.propTypes = {
84 disabled: PropTypes.bool
85 }, _temp;
86}
87
88export var First = createButton('First', "\xAB");
89export var Prev = createButton('Prev', "\u2039");
90export var Ellipsis = createButton('Ellipsis', "\u2026", 'More');
91export var Next = createButton('Next', "\u203A");
92export var Last = createButton('Last', "\xBB");
\No newline at end of file