normalize-slot.js
1 KB
import { extend } from '../vue'
import { SLOT_NAME_DEFAULT } from '../constants/slots'
import { hasNormalizedSlot, normalizeSlot } from '../utils/normalize-slot'
import { concat } from '../utils/array'
// @vue/component
export const 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(
name = SLOT_NAME_DEFAULT,
scopedSlots = this.$scopedSlots,
slots = 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(
name = SLOT_NAME_DEFAULT,
scope = {},
scopedSlots = this.$scopedSlots,
slots = this.$slots
) {
const vNodes = normalizeSlot(name, scope, scopedSlots, slots)
return vNodes ? concat(vNodes) : vNodes
}
}
})