"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createVSlotCallExpression = exports.rewriteScopedSlotVForScope = exports.findCurrentPath = exports.findSlotName = exports.rewriteVSlot = exports.transformSlot = void 0; const types_1 = require("@babel/types"); const shared_1 = require("@vue/shared"); const compiler_core_1 = require("@vue/compiler-core"); const uni_shared_1 = require("@dcloudio/uni-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const runtimeHelpers_1 = require("../runtimeHelpers"); const ast_1 = require("../ast"); const codegen_1 = require("../codegen"); const transform_1 = require("../transform"); const utils_1 = require("./utils"); const vFor_1 = require("./vFor"); const runtimeHelpers_2 = require("../runtimeHelpers"); const transformSlot = (node, context) => { if (!(0, uni_cli_shared_1.isUserComponent)(node, context)) { return; } const { tag, children } = node; const slots = new Set(); const onComponentSlot = (0, compiler_core_1.findDir)(node, 'slot', true); const implicitDefaultChildren = []; const isMiniProgramComponent = context.isMiniProgramComponent(tag); for (let i = 0; i < children.length; i++) { const slotElement = children[i]; let slotDir; if (!(0, compiler_core_1.isTemplateNode)(slotElement) || !(slotDir = (0, compiler_core_1.findDir)(slotElement, 'slot', true))) { // not a