UNPKG

@gitlab/ui

Version:
31 lines (28 loc) 1.55 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 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() { let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT; let scopedSlots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.$scopedSlots; let 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() { let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SLOT_NAME_DEFAULT; let scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; let scopedSlots = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.$scopedSlots; let slots = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.$slots; const vNodes = normalizeSlot(name, scope, scopedSlots, slots); return vNodes ? concat(vNodes) : vNodes; } } }); export { normalizeSlotMixin };