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 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 127x 127x 127x 127x 127x 127x 127x 127x 127x 127x 127x 127x 127x 6x 6x 127x 121x 121x 172x 172x 172x 172x 172x 172x 166x 172x 6x 6x 6x 6x 6x 166x 172x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 21x 172x 121x 127x 127x 127x 127x 127x | /** @import { AST } from '#compiler' */ /** @import { Context } from '../types' */ import { NAMESPACE_MATHML, NAMESPACE_SVG } from '../../../../constants.js'; import { is_text_attribute } from '../../../utils/ast.js'; import { check_element } from './shared/a11y.js'; import { validate_element } from './shared/element.js'; import { mark_subtree_dynamic } from './shared/fragment.js'; /** * @param {AST.SvelteElement} node * @param {Context} context */ export function SvelteElement(node, context) { validate_element(node, context); check_element(node, context.state); context.state.analysis.elements.push(node); const xmlns = /** @type {AST.Attribute & { value: [AST.Text] } | undefined} */ ( node.attributes.find( (a) => a.type === 'Attribute' && a.name === 'xmlns' && is_text_attribute(a) ) ); if (xmlns) { node.metadata.svg = xmlns.value[0].data === NAMESPACE_SVG; node.metadata.mathml = xmlns.value[0].data === NAMESPACE_MATHML; } else { let i = context.path.length; while (i--) { const ancestor = context.path[i]; if ( ancestor.type === 'Component' || ancestor.type === 'SvelteComponent' || ancestor.type === 'SvelteFragment' || ancestor.type === 'SnippetBlock' ) { // Inside a slot or a snippet -> this resets the namespace, so assume the component namespace node.metadata.svg = context.state.options.namespace === 'svg'; node.metadata.mathml = context.state.options.namespace === 'mathml'; break; } if (ancestor.type === 'SvelteElement' || ancestor.type === 'RegularElement') { node.metadata.svg = ancestor.type === 'RegularElement' && ancestor.name === 'foreignObject' ? false : ancestor.metadata.svg; node.metadata.mathml = ancestor.type === 'RegularElement' && ancestor.name === 'foreignObject' ? false : ancestor.metadata.mathml; break; } } } mark_subtree_dynamic(context.path); context.next({ ...context.state, parent_element: null }); } |