VLayout.mjs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { createVNode as _createVNode } from "vue";
  2. // Styles
  3. import "./VLayout.css";
  4. // Composables
  5. import { makeComponentProps } from "../../composables/component.mjs";
  6. import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
  7. import { createLayout, makeLayoutProps } from "../../composables/layout.mjs"; // Utilities
  8. import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
  9. export const makeVLayoutProps = propsFactory({
  10. ...makeComponentProps(),
  11. ...makeDimensionProps(),
  12. ...makeLayoutProps()
  13. }, 'VLayout');
  14. export const VLayout = genericComponent()({
  15. name: 'VLayout',
  16. props: makeVLayoutProps(),
  17. setup(props, _ref) {
  18. let {
  19. slots
  20. } = _ref;
  21. const {
  22. layoutClasses,
  23. layoutStyles,
  24. getLayoutItem,
  25. items,
  26. layoutRef
  27. } = createLayout(props);
  28. const {
  29. dimensionStyles
  30. } = useDimension(props);
  31. useRender(() => _createVNode("div", {
  32. "ref": layoutRef,
  33. "class": [layoutClasses.value, props.class],
  34. "style": [dimensionStyles.value, layoutStyles.value, props.style]
  35. }, [slots.default?.()]));
  36. return {
  37. getLayoutItem,
  38. items
  39. };
  40. }
  41. });
  42. //# sourceMappingURL=VLayout.mjs.map