Pagination.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.PaginationConfig = exports.PaginationProps = undefined;
  6. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  7. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  8. var _extends2 = require('babel-runtime/helpers/extends');
  9. var _extends3 = _interopRequireDefault(_extends2);
  10. var _vueTypes = require('../_util/vue-types');
  11. var _vueTypes2 = _interopRequireDefault(_vueTypes);
  12. var _select = require('../select');
  13. var _select2 = _interopRequireDefault(_select);
  14. var _MiniSelect = require('./MiniSelect');
  15. var _MiniSelect2 = _interopRequireDefault(_MiniSelect);
  16. var _LocaleReceiver = require('../locale-provider/LocaleReceiver');
  17. var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);
  18. var _propsUtil = require('../_util/props-util');
  19. var _vcPagination = require('../vc-pagination');
  20. var _vcPagination2 = _interopRequireDefault(_vcPagination);
  21. var _en_US = require('../vc-pagination/locale/en_US');
  22. var _en_US2 = _interopRequireDefault(_en_US);
  23. var _icon = require('../icon');
  24. var _icon2 = _interopRequireDefault(_icon);
  25. var _configConsumerProps = require('../config-provider/configConsumerProps');
  26. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  27. var PaginationProps = exports.PaginationProps = function PaginationProps() {
  28. return {
  29. total: _vueTypes2['default'].number,
  30. defaultCurrent: _vueTypes2['default'].number,
  31. disabled: _vueTypes2['default'].bool,
  32. current: _vueTypes2['default'].number,
  33. defaultPageSize: _vueTypes2['default'].number,
  34. pageSize: _vueTypes2['default'].number,
  35. hideOnSinglePage: _vueTypes2['default'].bool,
  36. showSizeChanger: _vueTypes2['default'].bool,
  37. pageSizeOptions: _vueTypes2['default'].arrayOf(_vueTypes2['default'].oneOfType([_vueTypes2['default'].number, _vueTypes2['default'].string])),
  38. buildOptionText: _vueTypes2['default'].func,
  39. showSizeChange: _vueTypes2['default'].func,
  40. showQuickJumper: _vueTypes2['default'].oneOfType([_vueTypes2['default'].bool, _vueTypes2['default'].object]),
  41. showTotal: _vueTypes2['default'].any,
  42. size: _vueTypes2['default'].string,
  43. simple: _vueTypes2['default'].bool,
  44. locale: _vueTypes2['default'].object,
  45. prefixCls: _vueTypes2['default'].string,
  46. selectPrefixCls: _vueTypes2['default'].string,
  47. itemRender: _vueTypes2['default'].any,
  48. role: _vueTypes2['default'].string,
  49. showLessItems: _vueTypes2['default'].bool
  50. };
  51. };
  52. var PaginationConfig = exports.PaginationConfig = function PaginationConfig() {
  53. return (0, _extends3['default'])({}, PaginationProps(), {
  54. position: _vueTypes2['default'].oneOf(['top', 'bottom', 'both'])
  55. });
  56. };
  57. exports['default'] = {
  58. name: 'APagination',
  59. model: {
  60. prop: 'current',
  61. event: 'change.current'
  62. },
  63. props: (0, _extends3['default'])({}, PaginationProps()),
  64. inject: {
  65. configProvider: { 'default': function _default() {
  66. return _configConsumerProps.ConfigConsumerProps;
  67. } }
  68. },
  69. methods: {
  70. getIconsProps: function getIconsProps(prefixCls) {
  71. var h = this.$createElement;
  72. var prevIcon = h(
  73. 'a',
  74. { 'class': prefixCls + '-item-link' },
  75. [h(_icon2['default'], {
  76. attrs: { type: 'left' }
  77. })]
  78. );
  79. var nextIcon = h(
  80. 'a',
  81. { 'class': prefixCls + '-item-link' },
  82. [h(_icon2['default'], {
  83. attrs: { type: 'right' }
  84. })]
  85. );
  86. var jumpPrevIcon = h(
  87. 'a',
  88. { 'class': prefixCls + '-item-link' },
  89. [h(
  90. 'div',
  91. { 'class': prefixCls + '-item-container' },
  92. [h(_icon2['default'], { 'class': prefixCls + '-item-link-icon', attrs: { type: 'double-left' }
  93. }), h(
  94. 'span',
  95. { 'class': prefixCls + '-item-ellipsis' },
  96. ['\u2022\u2022\u2022']
  97. )]
  98. )]
  99. );
  100. var jumpNextIcon = h(
  101. 'a',
  102. { 'class': prefixCls + '-item-link' },
  103. [h(
  104. 'div',
  105. { 'class': prefixCls + '-item-container' },
  106. [h(_icon2['default'], { 'class': prefixCls + '-item-link-icon', attrs: { type: 'double-right' }
  107. }), h(
  108. 'span',
  109. { 'class': prefixCls + '-item-ellipsis' },
  110. ['\u2022\u2022\u2022']
  111. )]
  112. )]
  113. );
  114. return {
  115. prevIcon: prevIcon,
  116. nextIcon: nextIcon,
  117. jumpPrevIcon: jumpPrevIcon,
  118. jumpNextIcon: jumpNextIcon
  119. };
  120. },
  121. renderPagination: function renderPagination(contextLocale) {
  122. var h = this.$createElement;
  123. var _getOptionProps = (0, _propsUtil.getOptionProps)(this),
  124. customizePrefixCls = _getOptionProps.prefixCls,
  125. customizeSelectPrefixCls = _getOptionProps.selectPrefixCls,
  126. buildOptionText = _getOptionProps.buildOptionText,
  127. size = _getOptionProps.size,
  128. customLocale = _getOptionProps.locale,
  129. restProps = (0, _objectWithoutProperties3['default'])(_getOptionProps, ['prefixCls', 'selectPrefixCls', 'buildOptionText', 'size', 'locale']);
  130. var getPrefixCls = this.configProvider.getPrefixCls;
  131. var prefixCls = getPrefixCls('pagination', customizePrefixCls);
  132. var selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);
  133. var isSmall = size === 'small';
  134. var paginationProps = {
  135. props: (0, _extends3['default'])({
  136. prefixCls: prefixCls,
  137. selectPrefixCls: selectPrefixCls
  138. }, restProps, this.getIconsProps(prefixCls), {
  139. selectComponentClass: isSmall ? _MiniSelect2['default'] : _select2['default'],
  140. locale: (0, _extends3['default'])({}, contextLocale, customLocale),
  141. buildOptionText: buildOptionText || this.$scopedSlots.buildOptionText
  142. }),
  143. 'class': {
  144. mini: isSmall
  145. },
  146. on: (0, _propsUtil.getListeners)(this)
  147. };
  148. return h(_vcPagination2['default'], paginationProps);
  149. }
  150. },
  151. render: function render() {
  152. var h = arguments[0];
  153. return h(_LocaleReceiver2['default'], {
  154. attrs: {
  155. componentName: 'Pagination',
  156. defaultLocale: _en_US2['default']
  157. },
  158. scopedSlots: { 'default': this.renderPagination }
  159. });
  160. }
  161. };