Pagination.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.paginationProps = exports.paginationConfig = exports.default = void 0;
  7. var _vue = require("vue");
  8. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  9. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  10. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  11. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  12. var _LeftOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/LeftOutlined"));
  13. var _RightOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/RightOutlined"));
  14. var _DoubleLeftOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/DoubleLeftOutlined"));
  15. var _DoubleRightOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/DoubleRightOutlined"));
  16. var _select = _interopRequireDefault(require("../select"));
  17. var _MiniSelect = _interopRequireDefault(require("./MiniSelect"));
  18. var _LocaleReceiver = require("../locale-provider/LocaleReceiver");
  19. var _vcPagination = _interopRequireDefault(require("../vc-pagination"));
  20. var _en_US = _interopRequireDefault(require("../vc-pagination/locale/en_US"));
  21. var _classNames2 = _interopRequireDefault(require("../_util/classNames"));
  22. var _useConfigInject2 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
  23. var _useBreakpoint = _interopRequireDefault(require("../_util/hooks/useBreakpoint"));
  24. var _excluded = ["size", "itemRender", "buildOptionText", "selectComponentClass", "responsive"];
  25. var paginationProps = function paginationProps() {
  26. return {
  27. total: Number,
  28. defaultCurrent: Number,
  29. disabled: {
  30. type: Boolean,
  31. default: undefined
  32. },
  33. current: Number,
  34. defaultPageSize: Number,
  35. pageSize: Number,
  36. hideOnSinglePage: {
  37. type: Boolean,
  38. default: undefined
  39. },
  40. showSizeChanger: {
  41. type: Boolean,
  42. default: undefined
  43. },
  44. pageSizeOptions: Array,
  45. buildOptionText: Function,
  46. showQuickJumper: {
  47. type: [Boolean, Object],
  48. default: undefined
  49. },
  50. showTotal: Function,
  51. size: String,
  52. simple: {
  53. type: Boolean,
  54. default: undefined
  55. },
  56. locale: Object,
  57. prefixCls: String,
  58. selectPrefixCls: String,
  59. totalBoundaryShowSizeChanger: Number,
  60. selectComponentClass: String,
  61. itemRender: Function,
  62. role: String,
  63. responsive: Boolean,
  64. showLessItems: {
  65. type: Boolean,
  66. default: undefined
  67. },
  68. onChange: Function,
  69. onShowSizeChange: Function,
  70. 'onUpdate:current': Function,
  71. 'onUpdate:pageSize': Function
  72. };
  73. };
  74. exports.paginationProps = paginationProps;
  75. var paginationConfig = function paginationConfig() {
  76. return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, paginationProps()), {}, {
  77. position: String
  78. });
  79. };
  80. exports.paginationConfig = paginationConfig;
  81. var _default = (0, _vue.defineComponent)({
  82. compatConfig: {
  83. MODE: 3
  84. },
  85. name: 'APagination',
  86. inheritAttrs: false,
  87. props: paginationProps(),
  88. // emits: ['change', 'showSizeChange', 'update:current', 'update:pageSize'],
  89. setup: function setup(props, _ref) {
  90. var slots = _ref.slots,
  91. attrs = _ref.attrs;
  92. var _useConfigInject = (0, _useConfigInject2.default)('pagination', props),
  93. prefixCls = _useConfigInject.prefixCls,
  94. configProvider = _useConfigInject.configProvider,
  95. direction = _useConfigInject.direction;
  96. var selectPrefixCls = (0, _vue.computed)(function () {
  97. return configProvider.getPrefixCls('select', props.selectPrefixCls);
  98. });
  99. var breakpoint = (0, _useBreakpoint.default)();
  100. var _useLocaleReceiver = (0, _LocaleReceiver.useLocaleReceiver)('Pagination', _en_US.default, (0, _vue.toRef)(props, 'locale')),
  101. _useLocaleReceiver2 = (0, _slicedToArray2.default)(_useLocaleReceiver, 1),
  102. locale = _useLocaleReceiver2[0];
  103. var getIconsProps = function getIconsProps(pre) {
  104. var ellipsis = (0, _vue.createVNode)("span", {
  105. "class": "".concat(pre, "-item-ellipsis")
  106. }, [(0, _vue.createTextVNode)("\u2022\u2022\u2022")]);
  107. var prevIcon = (0, _vue.createVNode)("button", {
  108. "class": "".concat(pre, "-item-link"),
  109. "type": "button",
  110. "tabindex": -1
  111. }, [(0, _vue.createVNode)(_LeftOutlined.default, null, null)]);
  112. var nextIcon = (0, _vue.createVNode)("button", {
  113. "class": "".concat(pre, "-item-link"),
  114. "type": "button",
  115. "tabindex": -1
  116. }, [(0, _vue.createVNode)(_RightOutlined.default, null, null)]);
  117. var jumpPrevIcon = (0, _vue.createVNode)("a", {
  118. "rel": "nofollow",
  119. "class": "".concat(pre, "-item-link")
  120. }, [(0, _vue.createVNode)("div", {
  121. "class": "".concat(pre, "-item-container")
  122. }, [(0, _vue.createVNode)(_DoubleLeftOutlined.default, {
  123. "class": "".concat(pre, "-item-link-icon")
  124. }, null), ellipsis])]);
  125. var jumpNextIcon = (0, _vue.createVNode)("a", {
  126. "rel": "nofollow",
  127. "class": "".concat(pre, "-item-link")
  128. }, [(0, _vue.createVNode)("div", {
  129. "class": "".concat(pre, "-item-container")
  130. }, [(0, _vue.createVNode)(_DoubleRightOutlined.default, {
  131. "class": "".concat(pre, "-item-link-icon")
  132. }, null), ellipsis])]);
  133. // change arrows direction in right-to-left direction
  134. if (direction.value === 'rtl') {
  135. var _ref2 = [nextIcon, prevIcon];
  136. prevIcon = _ref2[0];
  137. nextIcon = _ref2[1];
  138. var _ref3 = [jumpNextIcon, jumpPrevIcon];
  139. jumpPrevIcon = _ref3[0];
  140. jumpNextIcon = _ref3[1];
  141. }
  142. return {
  143. prevIcon: prevIcon,
  144. nextIcon: nextIcon,
  145. jumpPrevIcon: jumpPrevIcon,
  146. jumpNextIcon: jumpNextIcon
  147. };
  148. };
  149. return function () {
  150. var _breakpoint$value;
  151. var size = props.size,
  152. _props$itemRender = props.itemRender,
  153. itemRender = _props$itemRender === void 0 ? slots.itemRender : _props$itemRender,
  154. _props$buildOptionTex = props.buildOptionText,
  155. buildOptionText = _props$buildOptionTex === void 0 ? slots.buildOptionText : _props$buildOptionTex,
  156. selectComponentClass = props.selectComponentClass,
  157. responsive = props.responsive,
  158. restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
  159. var isSmall = size === 'small' || !!((_breakpoint$value = breakpoint.value) !== null && _breakpoint$value !== void 0 && _breakpoint$value.xs && !size && responsive);
  160. var paginationProps = (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), getIconsProps(prefixCls.value)), {}, {
  161. prefixCls: prefixCls.value,
  162. selectPrefixCls: selectPrefixCls.value,
  163. selectComponentClass: selectComponentClass || (isSmall ? _MiniSelect.default : _select.default),
  164. locale: locale.value,
  165. buildOptionText: buildOptionText
  166. }, attrs), {}, {
  167. class: (0, _classNames2.default)((0, _defineProperty2.default)({
  168. mini: isSmall
  169. }, "".concat(prefixCls.value, "-rtl"), direction.value === 'rtl'), attrs.class),
  170. itemRender: itemRender
  171. });
  172. return (0, _vue.createVNode)(_vcPagination.default, paginationProps, null);
  173. };
  174. }
  175. });
  176. exports.default = _default;