dimensions.mjs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Utilities
  2. import { computed } from 'vue';
  3. import { convertToUnit, propsFactory } from "../util/index.mjs"; // Types
  4. // Composables
  5. export const makeDimensionProps = propsFactory({
  6. height: [Number, String],
  7. maxHeight: [Number, String],
  8. maxWidth: [Number, String],
  9. minHeight: [Number, String],
  10. minWidth: [Number, String],
  11. width: [Number, String]
  12. }, 'dimension');
  13. export function useDimension(props) {
  14. const dimensionStyles = computed(() => {
  15. const styles = {};
  16. const height = convertToUnit(props.height);
  17. const maxHeight = convertToUnit(props.maxHeight);
  18. const maxWidth = convertToUnit(props.maxWidth);
  19. const minHeight = convertToUnit(props.minHeight);
  20. const minWidth = convertToUnit(props.minWidth);
  21. const width = convertToUnit(props.width);
  22. if (height != null) styles.height = height;
  23. if (maxHeight != null) styles.maxHeight = maxHeight;
  24. if (maxWidth != null) styles.maxWidth = maxWidth;
  25. if (minHeight != null) styles.minHeight = minHeight;
  26. if (minWidth != null) styles.minWidth = minWidth;
  27. if (width != null) styles.width = width;
  28. return styles;
  29. });
  30. return {
  31. dimensionStyles
  32. };
  33. }
  34. //# sourceMappingURL=dimensions.mjs.map