| Server IP : 34.87.99.72 / Your IP : 216.73.216.122 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/node_modules/vuetify/src/components/VResponsive/ |
Upload File : |
import './VResponsive.sass'
// Mixins
import Measurable, { NumberOrNumberString } from '../../mixins/measurable'
// Types
import { VNode } from 'vue'
// Utils
import mixins from '../../util/mixins'
/* @vue/component */
export default mixins(Measurable).extend({
name: 'v-responsive',
props: {
aspectRatio: [String, Number] as NumberOrNumberString,
contentClass: String,
},
computed: {
computedAspectRatio (): number {
return Number(this.aspectRatio)
},
aspectStyle (): object | undefined {
return this.computedAspectRatio
? { paddingBottom: (1 / this.computedAspectRatio) * 100 + '%' }
: undefined
},
__cachedSizer (): VNode | [] {
if (!this.aspectStyle) return []
return this.$createElement('div', {
style: this.aspectStyle,
staticClass: 'v-responsive__sizer',
})
},
},
methods: {
genContent (): VNode {
return this.$createElement('div', {
staticClass: 'v-responsive__content',
class: this.contentClass,
}, this.$slots.default)
},
},
render (h): VNode {
return h('div', {
staticClass: 'v-responsive',
style: this.measurableStyles,
on: this.$listeners,
}, [
this.__cachedSizer,
this.genContent(),
])
},
})