"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateTemplateChild = generateTemplateChild; exports.getVForNode = getVForNode; exports.parseInterpolationNode = parseInterpolationNode; const CompilerDOM = require("@vue/compiler-dom"); const utils_1 = require("../utils"); const element_1 = require("./element"); const interpolation_1 = require("./interpolation"); const slotOutlet_1 = require("./slotOutlet"); const vFor_1 = require("./vFor"); const vIf_1 = require("./vIf"); // @ts-ignore const transformContext = { onError: () => { }, helperString: str => str.toString(), replaceNode: () => { }, cacheHandlers: false, prefixIdentifiers: false, scopes: { vFor: 0, vOnce: 0, vPre: 0, vSlot: 0, }, expressionPlugins: ['typescript'], }; function* generateTemplateChild(options, ctx, node, prevNode, isVForChild = false) { if (prevNode?.type === CompilerDOM.NodeTypes.COMMENT) { const commentText = prevNode.content.trim().split(' ')[0]; if (/^@vue-skip\b[\s\S]*/.test(commentText)) { yield `// @vue-skip${utils_1.newLine}`; return; } else if (/^@vue-ignore\b[\s\S]*/.test(commentText)) { yield* ctx.ignoreError(); } else if (/^@vue-expect-error\b[\s\S]*/.test(commentText)) { yield* ctx.expectError(prevNode); } else { const match = prevNode.loc.source.match(/^