UNPKG

quasar-framework

Version:

Build responsive SPA, SSR, PWA, Hybrid Mobile Apps and Electron apps, all simultaneously using the same codebase

81 lines (70 loc) 1.77 kB
import QItem from './QItem.js' import QItemMain from './QItemMain.js' import QItemSide from './QItemSide.js' function push (child, h, name, slot, replace, conf) { const defaultProps = { props: { right: conf.right } } if (slot && replace) { child.push(h(name, defaultProps, slot)) return } let v = false for (let p in conf) { if (conf.hasOwnProperty(p)) { v = conf[p] if (v !== void 0 && v !== true) { child.push(h(name, { props: conf })) break } } } slot && child.push(h(name, defaultProps, slot)) } export default { name: 'QItemWrapper', props: { cfg: { type: Object, default: () => ({}) }, slotReplace: Boolean }, render (h) { const cfg = this.cfg, replace = this.slotReplace, child = [] push(child, h, QItemSide, this.$slots.left, replace, { icon: cfg.icon, color: cfg.leftColor, avatar: cfg.avatar, letter: cfg.letter, image: cfg.image, inverted: cfg.leftInverted, textColor: cfg.leftTextColor }) push(child, h, QItemMain, this.$slots.main, replace, { label: cfg.label, sublabel: cfg.sublabel, labelLines: cfg.labelLines, sublabelLines: cfg.sublabelLines, inset: cfg.inset }) push(child, h, QItemSide, this.$slots.right, replace, { right: true, icon: cfg.rightIcon, color: cfg.rightColor, avatar: cfg.rightAvatar, letter: cfg.rightLetter, image: cfg.rightImage, stamp: cfg.stamp, inverted: cfg.rightInverted, textColor: cfg.rightTextColor }) child.push(this.$slots.default) return h(QItem, { attrs: this.$attrs, on: this.$listeners, props: cfg }, child) } }