bootstrap-vue-3
Version:
Early (but lovely) implementation of Vue 3, Bootstrap 5 and Typescript
16 lines (14 loc) • 549 B
text/typescript
import {VNode} from '@vue/runtime-core'
import {Slots} from 'vue'
import {isFunction} from './inspect'
export const normalizeSlot = (name: string, scope = {}, $slots: Slots = {}): VNode => {
// Ensure names is an array
const names = [name]
let slot
for (let i = 0; i < names.length && !slot; i++) {
const name = names[i]
slot = $slots[name]
}
// Note: in Vue 3.x, slots have been unified. No more scoped slots and all slots are exposed as functions
return (slot && isFunction(slot) ? slot(scope) : slot) as unknown as VNode
}