quasar
Version:
Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
50 lines (41 loc) • 1.08 kB
JavaScript
import Vue from 'vue'
import ListenersMixin from '../../mixins/listeners.js'
import { slot } from '../../utils/slot.js'
export default Vue.extend({
name: 'QItemLabel',
mixins: [ ListenersMixin ],
props: {
overline: Boolean,
caption: Boolean,
header: Boolean,
lines: [ Number, String ]
},
computed: {
classes () {
return {
'q-item__label--overline text-overline': this.overline,
'q-item__label--caption text-caption': this.caption,
'q-item__label--header': this.header,
'ellipsis': parseInt(this.lines, 10) === 1
}
},
style () {
if (this.lines !== void 0 && parseInt(this.lines, 10) > 1) {
return {
overflow: 'hidden',
display: '-webkit-box',
'-webkit-box-orient': 'vertical',
'-webkit-line-clamp': this.lines
}
}
}
},
render (h) {
return h('div', {
staticClass: 'q-item__label',
style: this.style,
class: this.classes,
on: { ...this.qListeners }
}, slot(this, 'default'))
}
})