Col.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.ColProps = exports.ColSize = undefined;
  6. var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
  7. var _defineProperty3 = _interopRequireDefault(_defineProperty2);
  8. var _extends4 = require('babel-runtime/helpers/extends');
  9. var _extends5 = _interopRequireDefault(_extends4);
  10. var _typeof2 = require('babel-runtime/helpers/typeof');
  11. var _typeof3 = _interopRequireDefault(_typeof2);
  12. var _vueTypes = require('../_util/vue-types');
  13. var _vueTypes2 = _interopRequireDefault(_vueTypes);
  14. var _configConsumerProps = require('../config-provider/configConsumerProps');
  15. var _propsUtil = require('../_util/props-util');
  16. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  17. var stringOrNumber = _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].number]);
  18. var ColSize = exports.ColSize = _vueTypes2['default'].shape({
  19. span: stringOrNumber,
  20. order: stringOrNumber,
  21. offset: stringOrNumber,
  22. push: stringOrNumber,
  23. pull: stringOrNumber
  24. }).loose;
  25. var objectOrNumber = _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].number, ColSize]);
  26. var ColProps = exports.ColProps = {
  27. span: stringOrNumber,
  28. order: stringOrNumber,
  29. offset: stringOrNumber,
  30. push: stringOrNumber,
  31. pull: stringOrNumber,
  32. xs: objectOrNumber,
  33. sm: objectOrNumber,
  34. md: objectOrNumber,
  35. lg: objectOrNumber,
  36. xl: objectOrNumber,
  37. xxl: objectOrNumber,
  38. prefixCls: _vueTypes2['default'].string,
  39. flex: stringOrNumber
  40. };
  41. exports['default'] = {
  42. name: 'ACol',
  43. props: ColProps,
  44. inject: {
  45. configProvider: { 'default': function _default() {
  46. return _configConsumerProps.ConfigConsumerProps;
  47. } },
  48. rowContext: {
  49. 'default': function _default() {
  50. return null;
  51. }
  52. }
  53. },
  54. methods: {
  55. parseFlex: function parseFlex(flex) {
  56. if (typeof flex === 'number') {
  57. return flex + ' ' + flex + ' auto';
  58. }
  59. if (/^\d+(\.\d+)?(px|em|rem|%)$/.test(flex)) {
  60. return '0 0 ' + flex;
  61. }
  62. return flex;
  63. }
  64. },
  65. render: function render() {
  66. var _this = this,
  67. _extends3;
  68. var h = arguments[0];
  69. var span = this.span,
  70. order = this.order,
  71. offset = this.offset,
  72. push = this.push,
  73. pull = this.pull,
  74. flex = this.flex,
  75. customizePrefixCls = this.prefixCls,
  76. $slots = this.$slots,
  77. rowContext = this.rowContext;
  78. var getPrefixCls = this.configProvider.getPrefixCls;
  79. var prefixCls = getPrefixCls('col', customizePrefixCls);
  80. var sizeClassObj = {};
  81. ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'].forEach(function (size) {
  82. var _extends2;
  83. var sizeProps = {};
  84. var propSize = _this[size];
  85. if (typeof propSize === 'number') {
  86. sizeProps.span = propSize;
  87. } else if ((typeof propSize === 'undefined' ? 'undefined' : (0, _typeof3['default'])(propSize)) === 'object') {
  88. sizeProps = propSize || {};
  89. }
  90. sizeClassObj = (0, _extends5['default'])({}, sizeClassObj, (_extends2 = {}, (0, _defineProperty3['default'])(_extends2, prefixCls + '-' + size + '-' + sizeProps.span, sizeProps.span !== undefined), (0, _defineProperty3['default'])(_extends2, prefixCls + '-' + size + '-order-' + sizeProps.order, sizeProps.order || sizeProps.order === 0), (0, _defineProperty3['default'])(_extends2, prefixCls + '-' + size + '-offset-' + sizeProps.offset, sizeProps.offset || sizeProps.offset === 0), (0, _defineProperty3['default'])(_extends2, prefixCls + '-' + size + '-push-' + sizeProps.push, sizeProps.push || sizeProps.push === 0), (0, _defineProperty3['default'])(_extends2, prefixCls + '-' + size + '-pull-' + sizeProps.pull, sizeProps.pull || sizeProps.pull === 0), _extends2));
  91. });
  92. var classes = (0, _extends5['default'])((_extends3 = {}, (0, _defineProperty3['default'])(_extends3, '' + prefixCls, true), (0, _defineProperty3['default'])(_extends3, prefixCls + '-' + span, span !== undefined), (0, _defineProperty3['default'])(_extends3, prefixCls + '-order-' + order, order), (0, _defineProperty3['default'])(_extends3, prefixCls + '-offset-' + offset, offset), (0, _defineProperty3['default'])(_extends3, prefixCls + '-push-' + push, push), (0, _defineProperty3['default'])(_extends3, prefixCls + '-pull-' + pull, pull), _extends3), sizeClassObj);
  93. var divProps = {
  94. on: (0, _propsUtil.getListeners)(this),
  95. 'class': classes,
  96. style: {}
  97. };
  98. if (rowContext) {
  99. var gutter = rowContext.getGutter();
  100. if (gutter) {
  101. divProps.style = (0, _extends5['default'])({}, gutter[0] > 0 ? {
  102. paddingLeft: gutter[0] / 2 + 'px',
  103. paddingRight: gutter[0] / 2 + 'px'
  104. } : {}, gutter[1] > 0 ? {
  105. paddingTop: gutter[1] / 2 + 'px',
  106. paddingBottom: gutter[1] / 2 + 'px'
  107. } : {});
  108. }
  109. }
  110. if (flex) {
  111. divProps.style.flex = this.parseFlex(flex);
  112. }
  113. return h(
  114. 'div',
  115. divProps,
  116. [$slots['default']]
  117. );
  118. }
  119. };