Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 2x 2x 2x 943x 914x 914x 29x 7x 7x 29x 943x 17x 17x 29x 2x 3x 3x 29x 10x 10x 943x 15x 15x 15x 14x 2x 14x 15x 14x 1x 2x 2x 2x 2x 1x 1x 1x 1x 2x 14x 13x 13x 13x 13x 13x 13x 13x 13x 13x 14x 15x | import { ElementTypes, type NodeTransform, NodeTypes, type RootNode, type TemplateChildNode, createSimpleExpression, findDir, locStub, } from '@vue/compiler-dom' export const ssrInjectCssVars: NodeTransform = (node, context) => { if (!context.ssrCssVars) { return } // _cssVars is initialized once per render function // the code is injected in ssrCodegenTransform when creating the // ssr transform context if (node.type === NodeTypes.ROOT) { context.identifiers._cssVars = 1 } const parent = context.parent if (!parent || parent.type !== NodeTypes.ROOT) { return } if (node.type === NodeTypes.IF_BRANCH) { for (const child of node.children) { injectCssVars(child) } } else { injectCssVars(node) } } function injectCssVars(node: RootNode | TemplateChildNode) { if ( node.type === NodeTypes.ELEMENT && (node.tagType === ElementTypes.ELEMENT || node.tagType === ElementTypes.COMPONENT) && !findDir(node, 'for') ) { if (node.tag === 'suspense' || node.tag === 'Suspense') { for (const child of node.children) { if ( child.type === NodeTypes.ELEMENT && child.tagType === ElementTypes.TEMPLATE ) { // suspense slot child.children.forEach(injectCssVars) } else { injectCssVars(child) } } } else { node.props.push({ type: NodeTypes.DIRECTIVE, name: 'bind', arg: undefined, exp: createSimpleExpression(`_cssVars`, false), modifiers: [], loc: locStub, }) } } } |