VApp.mjs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { createVNode as _createVNode } from "vue";
  2. // Styles
  3. import "./VApp.css";
  4. // Composables
  5. import { makeComponentProps } from "../../composables/component.mjs";
  6. import { createLayout, makeLayoutProps } from "../../composables/layout.mjs";
  7. import { useRtl } from "../../composables/locale.mjs";
  8. import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
  9. import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
  10. export const makeVAppProps = propsFactory({
  11. ...makeComponentProps(),
  12. ...makeLayoutProps({
  13. fullHeight: true
  14. }),
  15. ...makeThemeProps()
  16. }, 'VApp');
  17. export const VApp = genericComponent()({
  18. name: 'VApp',
  19. props: makeVAppProps(),
  20. setup(props, _ref) {
  21. let {
  22. slots
  23. } = _ref;
  24. const theme = provideTheme(props);
  25. const {
  26. layoutClasses,
  27. getLayoutItem,
  28. items,
  29. layoutRef
  30. } = createLayout(props);
  31. const {
  32. rtlClasses
  33. } = useRtl();
  34. useRender(() => _createVNode("div", {
  35. "ref": layoutRef,
  36. "class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
  37. "style": [props.style]
  38. }, [_createVNode("div", {
  39. "class": "v-application__wrap"
  40. }, [slots.default?.()])]));
  41. return {
  42. getLayoutItem,
  43. items,
  44. theme
  45. };
  46. }
  47. });
  48. //# sourceMappingURL=VApp.mjs.map