Col.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
  6. var _defineProperty3 = _interopRequireDefault(_defineProperty2);
  7. var _vueTypes = require('../_util/vue-types');
  8. var _vueTypes2 = _interopRequireDefault(_vueTypes);
  9. var _propsUtil = require('../_util/props-util');
  10. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  11. var ColProps = {
  12. child: _vueTypes2['default'].any,
  13. bordered: _vueTypes2['default'].bool,
  14. colon: _vueTypes2['default'].bool,
  15. type: _vueTypes2['default'].oneOf(['label', 'content']),
  16. layout: _vueTypes2['default'].oneOf(['horizontal', 'vertical'])
  17. };
  18. var Col = {
  19. functional: true,
  20. props: ColProps,
  21. render: function render(h, ctx) {
  22. var _ref;
  23. var _ctx$props = ctx.props,
  24. child = _ctx$props.child,
  25. bordered = _ctx$props.bordered,
  26. colon = _ctx$props.colon,
  27. type = _ctx$props.type,
  28. layout = _ctx$props.layout;
  29. var _getOptionProps = (0, _propsUtil.getOptionProps)(child),
  30. prefixCls = _getOptionProps.prefixCls,
  31. _getOptionProps$span = _getOptionProps.span,
  32. span = _getOptionProps$span === undefined ? 1 : _getOptionProps$span;
  33. var key = ctx.data.key;
  34. var label = (0, _propsUtil.getComponentFromProp)(child, 'label');
  35. var slots = (0, _propsUtil.getSlots)(child);
  36. var labelProps = {
  37. attrs: {},
  38. 'class': [prefixCls + '-item-label', (_ref = {}, (0, _defineProperty3['default'])(_ref, prefixCls + '-item-colon', colon), (0, _defineProperty3['default'])(_ref, prefixCls + '-item-no-label', !label), _ref)],
  39. key: key + '-label'
  40. };
  41. if (layout === 'vertical') {
  42. labelProps.attrs.colSpan = span * 2 - 1;
  43. }
  44. if (bordered) {
  45. if (type === 'label') {
  46. return h(
  47. 'th',
  48. labelProps,
  49. [label]
  50. );
  51. }
  52. return h(
  53. 'td',
  54. { 'class': prefixCls + '-item-content', key: key + '-content', attrs: { colSpan: span * 2 - 1 }
  55. },
  56. [slots['default']]
  57. );
  58. }
  59. if (layout === 'vertical') {
  60. if (type === 'content') {
  61. return h(
  62. 'td',
  63. {
  64. attrs: { colSpan: span },
  65. 'class': prefixCls + '-item' },
  66. [h(
  67. 'span',
  68. { 'class': prefixCls + '-item-content', key: key + '-content' },
  69. [slots['default']]
  70. )]
  71. );
  72. }
  73. return h(
  74. 'td',
  75. {
  76. attrs: { colSpan: span },
  77. 'class': prefixCls + '-item' },
  78. [h(
  79. 'span',
  80. {
  81. 'class': [prefixCls + '-item-label', (0, _defineProperty3['default'])({}, prefixCls + '-item-colon', colon)],
  82. key: key + '-label'
  83. },
  84. [label]
  85. )]
  86. );
  87. }
  88. return h(
  89. 'td',
  90. {
  91. attrs: { colSpan: span },
  92. 'class': prefixCls + '-item' },
  93. [h(
  94. 'span',
  95. labelProps,
  96. [label]
  97. ), h(
  98. 'span',
  99. { 'class': prefixCls + '-item-content', key: key + '-content' },
  100. [slots['default']]
  101. )]
  102. );
  103. }
  104. };
  105. exports['default'] = Col;