Pager.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _vue = require("vue");
  8. var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
  9. var _classNames = _interopRequireDefault(require("../_util/classNames"));
  10. var _default = exports.default = (0, _vue.defineComponent)({
  11. compatConfig: {
  12. MODE: 3
  13. },
  14. name: 'Pager',
  15. inheritAttrs: false,
  16. props: {
  17. rootPrefixCls: String,
  18. page: Number,
  19. active: {
  20. type: Boolean,
  21. default: undefined
  22. },
  23. last: {
  24. type: Boolean,
  25. default: undefined
  26. },
  27. locale: _vueTypes.default.object,
  28. showTitle: {
  29. type: Boolean,
  30. default: undefined
  31. },
  32. itemRender: {
  33. type: Function,
  34. default: () => {}
  35. },
  36. onClick: {
  37. type: Function
  38. },
  39. onKeypress: {
  40. type: Function
  41. }
  42. },
  43. eimt: ['click', 'keypress'],
  44. setup(props, _ref) {
  45. let {
  46. emit,
  47. attrs
  48. } = _ref;
  49. const handleClick = () => {
  50. emit('click', props.page);
  51. };
  52. const handleKeyPress = event => {
  53. emit('keypress', event, handleClick, props.page);
  54. };
  55. return () => {
  56. const {
  57. showTitle,
  58. page,
  59. itemRender
  60. } = props;
  61. const {
  62. class: _cls,
  63. style
  64. } = attrs;
  65. const prefixCls = `${props.rootPrefixCls}-item`;
  66. const cls = (0, _classNames.default)(prefixCls, `${prefixCls}-${props.page}`, {
  67. [`${prefixCls}-active`]: props.active,
  68. [`${prefixCls}-disabled`]: !props.page
  69. }, _cls);
  70. return (0, _vue.createVNode)("li", {
  71. "onClick": handleClick,
  72. "onKeypress": handleKeyPress,
  73. "title": showTitle ? String(page) : null,
  74. "tabindex": "0",
  75. "class": cls,
  76. "style": style
  77. }, [itemRender({
  78. page,
  79. type: 'page',
  80. originalElement: (0, _vue.createVNode)("a", {
  81. "rel": "nofollow"
  82. }, [page])
  83. })]);
  84. };
  85. }
  86. });