diff options
author | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
---|---|---|
committer | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
commit | 080c5819d87b933816d724a83f3bf4f1686770a7 (patch) | |
tree | 4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js | |
parent | 5ac7049a9d30733165cc212dee308163c2a14644 (diff) | |
parent | d003b82235a9329f912522a2f70aa950dfce4998 (diff) | |
download | LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.tar.gz LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.zip |
Merge branch 'master' of https://github.com/JoelHMikael/FoodJS
Updating remote changes
Diffstat (limited to 'node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js')
-rw-r--r-- | node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js b/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js new file mode 100644 index 0000000..651568d --- /dev/null +++ b/node_modules/jsdom/lib/jsdom/living/helpers/svg/render.js @@ -0,0 +1,46 @@ +"use strict"; +const { SVG_NS } = require("../namespaces"); + +// https://svgwg.org/svg2-draft/render.html#TermNeverRenderedElement +const neverRenderedElements = new Set([ + "clipPath", + "defs", + "desc", + "linearGradient", + "marker", + "mask", + "metadata", + "pattern", + "radialGradient", + "script", + "style", + "title", + "symbol" +]); + +// https://svgwg.org/svg2-draft/render.html#Rendered-vs-NonRendered +exports.isRenderedElement = elImpl => { + if (neverRenderedElements.has(elImpl._localName)) { + return false; + } + + // This does not check for elements excluded because of conditional processing attributes or ‘switch’ structures, + // because conditional processing is not implemented. + // https://svgwg.org/svg2-draft/struct.html#ConditionalProcessing + + // This does not check for computed style of display being none, since that is not yet implemented for HTML + // focusability either (and there are no tests yet). + + if (!elImpl.isConnected) { + return false; + } + + // The spec is unclear about how to deal with non-SVG parents, so we only perform this check for SVG-namespace + // parents. + if (elImpl.parentElement && elImpl.parentElement._namespaceURI === SVG_NS && + !exports.isRenderedElement(elImpl.parentNode)) { + return false; + } + + return true; +}; |