UNPKG

ink

Version:
55 lines 2.07 kB
import renderNodeToOutput, { renderNodeToScreenReaderOutput, } from './render-node-to-output.js'; import Output from './output.js'; const renderer = (node, isScreenReaderEnabled) => { if (node.yogaNode) { if (isScreenReaderEnabled) { const output = renderNodeToScreenReaderOutput(node, { skipStaticElements: true, }); const outputHeight = output === '' ? 0 : output.split('\n').length; let staticOutput = ''; if (node.staticNode) { staticOutput = renderNodeToScreenReaderOutput(node.staticNode, { skipStaticElements: false, }); } return { output, outputHeight, staticOutput: staticOutput ? `${staticOutput}\n` : '', }; } const output = new Output({ width: node.yogaNode.getComputedWidth(), height: node.yogaNode.getComputedHeight(), }); renderNodeToOutput(node, output, { skipStaticElements: true, }); let staticOutput; if (node.staticNode?.yogaNode) { staticOutput = new Output({ width: node.staticNode.yogaNode.getComputedWidth(), height: node.staticNode.yogaNode.getComputedHeight(), }); renderNodeToOutput(node.staticNode, staticOutput, { skipStaticElements: false, }); } const { output: generatedOutput, height: outputHeight } = output.get(); return { output: generatedOutput, outputHeight, // Newline at the end is needed, because static output doesn't have one, so // interactive output will override last line of static output staticOutput: staticOutput ? `${staticOutput.get().output}\n` : '', }; } return { output: '', outputHeight: 0, staticOutput: '', }; }; export default renderer; //# sourceMappingURL=renderer.js.map