bootstrap-vue
Version:
BootstrapVue provides one of the most comprehensive implementations of Bootstrap 4 components and grid system for Vue.js and with extensive and automated WAI-ARIA accessibility markup.
48 lines (42 loc) • 1.12 kB
JavaScript
import { mergeData } from 'vue-functional-data-merge';
import pluckProps from '../../utils/pluck-props';
import { assign } from '../../utils/object';
import Link, { propsFactory as linkPropsFactory } from '../link/link';
export var props = assign(linkPropsFactory(), {
text: {
type: String,
default: null
},
active: {
type: Boolean,
default: false
},
href: {
type: String,
default: '#'
},
ariaCurrent: {
type: String,
default: 'location'
}
});
export default {
functional: true,
props: props,
render: function render(h, _ref) {
var suppliedProps = _ref.props,
data = _ref.data,
children = _ref.children;
var tag = suppliedProps.active ? 'span' : Link;
var componentData = {
props: pluckProps(props, suppliedProps),
domProps: { innerHTML: suppliedProps.text }
};
if (suppliedProps.active) {
componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent };
} else {
componentData.attrs = { href: suppliedProps.href };
}
return h(tag, mergeData(data, componentData), children);
}
};