UNPKG

4.33 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4exports.Last = exports.Next = exports.Ellipsis = exports.Prev = exports.First = undefined;
5
6var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
7
8var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9
10var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
11
12var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
13
14var _inherits2 = require('babel-runtime/helpers/inherits');
15
16var _inherits3 = _interopRequireDefault(_inherits2);
17
18var _extends2 = require('babel-runtime/helpers/extends');
19
20var _extends3 = _interopRequireDefault(_extends2);
21
22var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
23
24var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
25
26exports.default = PaginationItem;
27
28var _classnames = require('classnames');
29
30var _classnames2 = _interopRequireDefault(_classnames);
31
32var _propTypes = require('prop-types');
33
34var _propTypes2 = _interopRequireDefault(_propTypes);
35
36var _react = require('react');
37
38var _react2 = _interopRequireDefault(_react);
39
40var _SafeAnchor = require('./SafeAnchor');
41
42var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
43
44function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
46/* eslint-disable react/no-multi-comp */
47var propTypes = {
48 eventKey: _propTypes2.default.any,
49 className: _propTypes2.default.string,
50 onSelect: _propTypes2.default.func,
51 disabled: _propTypes2.default.bool,
52 active: _propTypes2.default.bool,
53 activeLabel: _propTypes2.default.string.isRequired
54};
55
56var defaultProps = {
57 active: false,
58 disabled: false,
59 activeLabel: '(current)'
60};
61
62function PaginationItem(_ref) {
63 var active = _ref.active,
64 disabled = _ref.disabled,
65 className = _ref.className,
66 style = _ref.style,
67 activeLabel = _ref.activeLabel,
68 children = _ref.children,
69 props = (0, _objectWithoutProperties3.default)(_ref, ['active', 'disabled', 'className', 'style', 'activeLabel', 'children']);
70
71 var Component = active || disabled ? 'span' : _SafeAnchor2.default;
72 return _react2.default.createElement(
73 'li',
74 { style: style, className: (0, _classnames2.default)(className, { active: active, disabled: disabled }) },
75 _react2.default.createElement(
76 Component,
77 (0, _extends3.default)({ disabled: disabled }, props),
78 children,
79 active && _react2.default.createElement(
80 'span',
81 { className: 'sr-only' },
82 activeLabel
83 )
84 )
85 );
86}
87
88PaginationItem.propTypes = propTypes;
89PaginationItem.defaultProps = defaultProps;
90
91function createButton(name, defaultValue) {
92 var _class, _temp;
93
94 var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : name;
95
96 return _temp = _class = function (_React$Component) {
97 (0, _inherits3.default)(_class, _React$Component);
98
99 function _class() {
100 (0, _classCallCheck3.default)(this, _class);
101 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
102 }
103
104 _class.prototype.render = function render() {
105 var _props = this.props,
106 disabled = _props.disabled,
107 children = _props.children,
108 className = _props.className,
109 props = (0, _objectWithoutProperties3.default)(_props, ['disabled', 'children', 'className']);
110
111 var Component = disabled ? 'span' : _SafeAnchor2.default;
112
113 return _react2.default.createElement(
114 'li',
115 (0, _extends3.default)({
116 'aria-label': label,
117 className: (0, _classnames2.default)(className, { disabled: disabled })
118 }, props),
119 _react2.default.createElement(
120 Component,
121 null,
122 children || defaultValue
123 )
124 );
125 };
126
127 return _class;
128 }(_react2.default.Component), _class.displayName = name, _class.propTypes = { disabled: _propTypes2.default.bool }, _temp;
129}
130
131var First = exports.First = createButton('First', '\xAB');
132var Prev = exports.Prev = createButton('Prev', '\u2039');
133var Ellipsis = exports.Ellipsis = createButton('Ellipsis', '\u2026', 'More');
134var Next = exports.Next = createButton('Next', '\u203A');
135var Last = exports.Last = createButton('Last', '\xBB');
\No newline at end of file