index.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _babelHelperVueJsxMergeProps = _interopRequireDefault(require("@vue/babel-helper-vue-jsx-merge-props"));
  7. var _utils = require("../utils");
  8. var _shared = require("./shared");
  9. var _functional = require("../utils/functional");
  10. var _router = require("../utils/router");
  11. var _icon = _interopRequireDefault(require("../icon"));
  12. var _use = (0, _utils.use)('cell'),
  13. sfc = _use[0],
  14. bem = _use[1];
  15. function Cell(h, props, slots, ctx) {
  16. var icon = props.icon,
  17. size = props.size,
  18. title = props.title,
  19. label = props.label,
  20. value = props.value,
  21. isLink = props.isLink,
  22. arrowDirection = props.arrowDirection;
  23. var showTitle = slots.title || (0, _utils.isDef)(title);
  24. var showValue = slots["default"] || (0, _utils.isDef)(value);
  25. var showLabel = slots.label || (0, _utils.isDef)(label);
  26. var Label = showLabel && h("div", {
  27. "class": [bem('label'), props.labelClass]
  28. }, [slots.label ? slots.label() : label]);
  29. var Title = showTitle && h("div", {
  30. "class": [bem('title'), props.titleClass],
  31. "style": props.titleStyle
  32. }, [slots.title ? slots.title() : h("span", [title]), Label]);
  33. var Value = showValue && h("div", {
  34. "class": [bem('value', {
  35. alone: !slots.title && !title
  36. }), props.valueClass]
  37. }, [slots["default"] ? slots["default"]() : h("span", [value])]);
  38. var LeftIcon = slots.icon ? slots.icon() : icon && h(_icon["default"], {
  39. "class": bem('left-icon'),
  40. "attrs": {
  41. "name": icon
  42. }
  43. });
  44. var rightIconSlot = slots['right-icon'];
  45. var RightIcon = rightIconSlot ? rightIconSlot() : isLink && h(_icon["default"], {
  46. "class": bem('right-icon'),
  47. "attrs": {
  48. "name": arrowDirection ? "arrow-" + arrowDirection : 'arrow'
  49. }
  50. });
  51. var onClick = function onClick(event) {
  52. (0, _functional.emit)(ctx, 'click', event);
  53. (0, _router.functionalRoute)(ctx);
  54. };
  55. var classes = {
  56. center: props.center,
  57. required: props.required,
  58. borderless: !props.border,
  59. clickable: isLink || props.clickable
  60. };
  61. if (size) {
  62. classes[size] = size;
  63. }
  64. return h("div", (0, _babelHelperVueJsxMergeProps["default"])([{
  65. "class": bem(classes),
  66. "on": {
  67. "click": onClick
  68. }
  69. }, (0, _functional.inherit)(ctx)]), [LeftIcon, Title, Value, RightIcon, slots.extra && slots.extra()]);
  70. }
  71. Cell.props = (0, _extends2["default"])({}, _shared.cellProps, _router.routeProps, {
  72. clickable: Boolean,
  73. arrowDirection: String
  74. });
  75. var _default = sfc(Cell);
  76. exports["default"] = _default;