Grid.mjs 1.1 KB

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