@coreui/vue
Version:
UI Components Library for Vue.js
55 lines (52 loc) • 1.36 kB
text/typescript
import { defineComponent, h } from 'vue'
const CHeader = defineComponent({
name: 'CHeader',
props: {
/**
* Component used for the root node. Either a string to use a HTML element or a component.
*/
as: {
type: String,
default: 'div',
},
/**
* Defines optional container wrapping children elements.
*
* @values boolean, 'sm', 'md', 'lg', 'xl', 'xxl', 'fluid'
*/
container: {
type: [Boolean, String],
validator: (value: boolean | string) => {
return (
typeof value === 'boolean' || ['sm', 'md', 'lg', 'xl', 'xxl', 'fluid'].includes(value)
)
},
},
/**
* Place header in non-static positions.
*
* @values 'fixed', 'sticky'
*/
position: {
type: String,
validator: (value: string) => {
return ['fixed', 'sticky'].includes(value)
},
},
},
setup(props, { slots }) {
return () =>
h(
props.as,
{ class: ['header', { [`header-${props.position}`]: props.position }] },
props.container
? h(
'div',
{ class: `container${props.container === true ? '' : '-' + props.container}` },
slots.default && slots.default(),
)
: slots.default && slots.default(),
)
},
})
export { CHeader }