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 1035x 1006x 1006x 29x 7x 7x 29x 1035x 17x 17x 29x 2x 3x 3x 29x 10x 10x 1035x 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, }) } } } |