UNPKG

quasar

Version:

Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time

45 lines (35 loc) 1.19 kB
import { h, computed, provide, getCurrentInstance } from 'vue' import useDark, { useDarkProps } from '../../composables/private.use-dark/use-dark.js' import { createComponent } from '../../utils/private.create/create.js' import { hSlot } from '../../utils/private.render/render.js' import { timelineKey } from '../../utils/private.symbols/symbols.js' export default createComponent({ name: 'QTimeline', props: { ...useDarkProps, color: { type: String, default: 'primary' }, side: { type: String, default: 'right', validator: v => [ 'left', 'right' ].includes(v) }, layout: { type: String, default: 'dense', validator: v => [ 'dense', 'comfortable', 'loose' ].includes(v) } }, setup (props, { slots }) { const vm = getCurrentInstance() const isDark = useDark(props, vm.proxy.$q) provide(timelineKey, props) const classes = computed(() => `q-timeline q-timeline--${ props.layout } q-timeline--${ props.layout }--${ props.side }` + (isDark.value === true ? ' q-timeline--dark' : '') ) return () => h('ul', { class: classes.value }, hSlot(slots.default)) } })