Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  7. var _react = _interopRequireDefault(require("react"));
  8. var _propTypes = _interopRequireDefault(require("prop-types"));
  9. var _classnames = _interopRequireDefault(require("classnames"));
  10. var _utils = require("./utils");
  11. var propTypes = {
  12. 'aria-label': _propTypes.default.string,
  13. children: _propTypes.default.node,
  14. className: _propTypes.default.string,
  15. cssModule: _propTypes.default.object,
  16. next: _propTypes.default.bool,
  17. previous: _propTypes.default.bool,
  18. tag: _utils.tagPropType
  19. };
  20. var defaultProps = {
  21. tag: 'a'
  22. };
  23. var PaginationLink = function PaginationLink(props) {
  24. var className = props.className,
  25. cssModule = props.cssModule,
  26. next = props.next,
  27. previous = props.previous,
  28. Tag = props.tag,
  29. attributes = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "cssModule", "next", "previous", "tag"]);
  30. var classes = (0, _utils.mapToCssModules)((0, _classnames.default)(className, 'page-link'), cssModule);
  31. var defaultAriaLabel;
  32. if (previous) {
  33. defaultAriaLabel = 'Previous';
  34. } else if (next) {
  35. defaultAriaLabel = 'Next';
  36. }
  37. var ariaLabel = props['aria-label'] || defaultAriaLabel;
  38. var defaultCaret;
  39. if (previous) {
  40. defaultCaret = "\xAB";
  41. } else if (next) {
  42. defaultCaret = "\xBB";
  43. }
  44. var children = props.children;
  45. if (children && Array.isArray(children) && children.length === 0) {
  46. children = null;
  47. }
  48. if (!attributes.href && Tag === 'a') {
  49. Tag = 'button';
  50. }
  51. if (previous || next) {
  52. children = [_react.default.createElement("span", {
  53. "aria-hidden": "true",
  54. key: "caret"
  55. }, children || defaultCaret), _react.default.createElement("span", {
  56. className: "sr-only",
  57. key: "sr"
  58. }, ariaLabel)];
  59. }
  60. return _react.default.createElement(Tag, (0, _extends2.default)({}, attributes, {
  61. className: classes,
  62. "aria-label": ariaLabel
  63. }), children);
  64. };
  65. PaginationLink.propTypes = propTypes;
  66. PaginationLink.defaultProps = defaultProps;
  67. var _default = PaginationLink;
  68. exports.default = _default;