123456789101112131415161718192021222324252627 |
- /* @flow */
- export function resolveScopedSlots (
- fns: ScopedSlotsData, // see flow/vnode
- res?: Object,
- // the following are added in 2.6
- hasDynamicKeys?: boolean,
- contentHashKey?: number
- ): { [key: string]: Function, $stable: boolean } {
- res = res || { $stable: !hasDynamicKeys }
- for (let i = 0; i < fns.length; i++) {
- const slot = fns[i]
- if (Array.isArray(slot)) {
- resolveScopedSlots(slot, res, hasDynamicKeys)
- } else if (slot) {
- // marker for reverse proxying v-slot without scope on this.$slots
- if (slot.proxy) {
- slot.fn.proxy = true
- }
- res[slot.key] = slot.fn
- }
- }
- if (contentHashKey) {
- (res: any).$key = contentHashKey
- }
- return res
- }
|