UNPKG

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.

75 lines (64 loc) 1.8 kB
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import { mergeData } from 'vue-functional-data-merge'; import InputGroupPrepend from './input-group-prepend'; import InputGroupAppend from './input-group-append'; import InputGroupText from './input-group-text'; export var props = { id: { type: String, default: null }, size: { type: String, default: null }, prepend: { type: String, default: null }, append: { type: String, default: null }, tag: { type: String, default: 'div' } }; export default { functional: true, props: props, render: function render(h, _ref) { var props = _ref.props, data = _ref.data, slots = _ref.slots; var $slots = slots(); var childNodes = []; // Prepend prop if (props.prepend) { childNodes.push(h(InputGroupPrepend, [h(InputGroupText, { domProps: { innerHTML: props.prepend } })])); } // Prepend slot if ($slots.prepend) { childNodes.push(h(InputGroupPrepend, $slots.prepend)); } // Default slot childNodes.push($slots.default); // Append prop if (props.append) { childNodes.push(h(InputGroupAppend, [h(InputGroupText, { domProps: { innerHTML: props.append } })])); } // Append slot if ($slots.append) { childNodes.push(h(InputGroupAppend, $slots.append)); } return h(props.tag, mergeData(data, { staticClass: 'input-group', class: _defineProperty({}, 'input-group-' + props.size, Boolean(props.size)), attrs: { id: props.id || null, role: 'group' } }), childNodes); } };