CellGroup.mjs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
  2. import { defineComponent } from "vue";
  3. import { truthProp, createNamespace, BORDER_TOP_BOTTOM } from "../utils/index.mjs";
  4. const [name, bem] = createNamespace("cell-group");
  5. const cellGroupProps = {
  6. title: String,
  7. inset: Boolean,
  8. border: truthProp
  9. };
  10. var stdin_default = defineComponent({
  11. name,
  12. inheritAttrs: false,
  13. props: cellGroupProps,
  14. setup(props, {
  15. slots,
  16. attrs
  17. }) {
  18. const renderGroup = () => {
  19. var _a;
  20. return _createVNode("div", _mergeProps({
  21. "class": [bem({
  22. inset: props.inset
  23. }), {
  24. [BORDER_TOP_BOTTOM]: props.border && !props.inset
  25. }]
  26. }, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
  27. };
  28. const renderTitle = () => _createVNode("div", {
  29. "class": bem("title", {
  30. inset: props.inset
  31. })
  32. }, [slots.title ? slots.title() : props.title]);
  33. return () => {
  34. if (props.title || slots.title) {
  35. return _createVNode(_Fragment, null, [renderTitle(), renderGroup()]);
  36. }
  37. return renderGroup();
  38. };
  39. }
  40. });
  41. export {
  42. stdin_default as default
  43. };