Grid.mjs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { defineComponent, createVNode as _createVNode } from "vue";
  2. import { createNamespace, addUnit, truthProp, numericProp, makeNumericProp } from "../utils/index.mjs";
  3. import { BORDER_TOP } from "../utils/constant.mjs";
  4. import { useChildren } from "@vant/use";
  5. const [name, bem] = createNamespace("grid");
  6. const gridProps = {
  7. square: Boolean,
  8. center: truthProp,
  9. border: truthProp,
  10. gutter: numericProp,
  11. reverse: Boolean,
  12. iconSize: numericProp,
  13. direction: String,
  14. clickable: Boolean,
  15. columnNum: makeNumericProp(4)
  16. };
  17. const GRID_KEY = Symbol(name);
  18. var stdin_default = defineComponent({
  19. name,
  20. props: gridProps,
  21. setup(props, {
  22. slots
  23. }) {
  24. const {
  25. linkChildren
  26. } = useChildren(GRID_KEY);
  27. linkChildren({
  28. props
  29. });
  30. return () => {
  31. var _a;
  32. return _createVNode("div", {
  33. "style": {
  34. paddingLeft: addUnit(props.gutter)
  35. },
  36. "class": [bem(), {
  37. [BORDER_TOP]: props.border && !props.gutter
  38. }]
  39. }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
  40. };
  41. }
  42. });
  43. export {
  44. GRID_KEY,
  45. stdin_default as default,
  46. gridProps
  47. };