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 156x 156x 156x 156x 156x 156x 156x 156x 156x 156x 156x 156x 156x 6x 6x 156x 150x 150x 214x 214x 214x 214x 214x 214x 205x 214x 9x 9x 9x 9x 9x 205x 214x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 23x 214x 150x 156x 156x 156x 156x 156x | /** @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 }); } |