選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

79 行
2.6 KiB

  1. import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
  2. import _extends from "@babel/runtime/helpers/esm/extends";
  3. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  4. /* eslint-disable react/no-multi-comp */
  5. import classNames from 'classnames';
  6. import React from 'react';
  7. import SafeAnchor from './SafeAnchor';
  8. var defaultProps = {
  9. active: false,
  10. disabled: false,
  11. activeLabel: '(current)'
  12. };
  13. var PageItem = 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. var Component = active || disabled ? 'span' : SafeAnchor;
  22. return /*#__PURE__*/React.createElement("li", {
  23. ref: ref,
  24. style: style,
  25. className: classNames(className, 'page-item', {
  26. active: active,
  27. disabled: disabled
  28. })
  29. }, /*#__PURE__*/React.createElement(Component, _extends({
  30. className: "page-link",
  31. disabled: disabled
  32. }, props), children, active && activeLabel && /*#__PURE__*/React.createElement("span", {
  33. className: "sr-only"
  34. }, activeLabel)));
  35. });
  36. PageItem.defaultProps = defaultProps;
  37. PageItem.displayName = 'PageItem';
  38. export default PageItem;
  39. function createButton(name, defaultValue, label) {
  40. var _class, _temp;
  41. if (label === void 0) {
  42. label = name;
  43. }
  44. return _temp = _class = /*#__PURE__*/function (_React$Component) {
  45. _inheritsLoose(_class, _React$Component);
  46. function _class() {
  47. return _React$Component.apply(this, arguments) || this;
  48. }
  49. var _proto = _class.prototype;
  50. _proto.render = function render() {
  51. var _this$props = this.props,
  52. children = _this$props.children,
  53. props = _objectWithoutPropertiesLoose(_this$props, ["children"]);
  54. delete props.active;
  55. return /*#__PURE__*/React.createElement(PageItem, props, /*#__PURE__*/React.createElement("span", {
  56. "aria-hidden": "true"
  57. }, children || defaultValue), /*#__PURE__*/React.createElement("span", {
  58. className: "sr-only"
  59. }, label));
  60. };
  61. return _class;
  62. }(React.Component), _class.displayName = name, _temp;
  63. }
  64. export var First = createButton('First', '«');
  65. export var Prev = createButton('Prev', '‹', 'Previous');
  66. export var Ellipsis = createButton('Ellipsis', '…', 'More');
  67. export var Next = createButton('Next', '›');
  68. export var Last = createButton('Last', '»');