import type { Slots, VNode } from 'vue'; import { VueWidget } from '../basic'; export function renderWidgets(widgets: VueWidget[], ctx: Record, slots?: Slots) { let vNodes: VNode | VNode[] | undefined; const { length } = widgets; for (let i = length - 1; i >= 0; i--) { const widget = widgets[i]; if (vNodes) { const finalVNodes = Array.isArray(vNodes) ? vNodes : [vNodes]; vNodes = widget.render(ctx, { default: () => finalVNodes }); } else { vNodes = widget.render(ctx, slots); } } return vNodes; }