bootstrap-vue
Version:
With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extens
29 lines (26 loc) • 1.62 kB
JavaScript
import { extend } from '../vue';
import { SLOT_NAME_DEFAULT } from '../constants/slots';
import { hasNormalizedSlot as _hasNormalizedSlot, normalizeSlot as _normalizeSlot } from '../utils/normalize-slot';
import { concat } from '../utils/array'; // @vue/component
export var normalizeSlotMixin = extend({
methods: {
// Returns `true` if the either a `$scopedSlot` or `$slot` exists with the specified name
// `name` can be a string name or an array of names
hasNormalizedSlot: function hasNormalizedSlot() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;
var scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots;
var slots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$slots;
return _hasNormalizedSlot(name, scopedSlots, slots);
},
// Returns an array of rendered VNodes if slot found, otherwise `undefined`
// `name` can be a string name or an array of names
normalizeSlot: function normalizeSlot() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT;
var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots;
var slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots;
var vNodes = _normalizeSlot(name, scope, scopedSlots, slots);
return vNodes ? concat(vNodes) : vNodes;
}
}
});