vuetify
Version:
Vue Material Component Framework
43 lines (34 loc) • 1.3 kB
text/typescript
// Helpers
import { convertToUnit } from '../../util/helpers'
// Types
import Vue, { PropType } from 'vue'
export type NumberOrNumberString = PropType<string | number | undefined>
export default Vue.extend({
name: 'measurable',
props: {
height: [Number, String] as NumberOrNumberString,
maxHeight: [Number, String] as NumberOrNumberString,
maxWidth: [Number, String] as NumberOrNumberString,
minHeight: [Number, String] as NumberOrNumberString,
minWidth: [Number, String] as NumberOrNumberString,
width: [Number, String] as NumberOrNumberString,
},
computed: {
measurableStyles (): object {
const styles: Record<string, string> = {}
const height = convertToUnit(this.height)
const minHeight = convertToUnit(this.minHeight)
const minWidth = convertToUnit(this.minWidth)
const maxHeight = convertToUnit(this.maxHeight)
const maxWidth = convertToUnit(this.maxWidth)
const width = convertToUnit(this.width)
if (height) styles.height = height
if (minHeight) styles.minHeight = minHeight
if (minWidth) styles.minWidth = minWidth
if (maxHeight) styles.maxHeight = maxHeight
if (maxWidth) styles.maxWidth = maxWidth
if (width) styles.width = width
return styles
},
},
})