Files
react-native-devtools-frontend/node_modules/svgo/plugins/convertEllipseToCircle.js
T
Tim van der Lippe b693eb34d5 Update remaining NPM dependencies
DISABLE_THIRD_PARTY_CHECK=NPM fix
R=jacktfranklin@chromium.org

Bug: none
Change-Id: I41baa3294f88b7e4463fdc580c050932c5abe40e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3372932
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Tim Van der Lippe <tvanderlippe@chromium.org>
2022-01-07 14:42:53 +00:00

40 lines
938 B
JavaScript

'use strict';
exports.name = 'convertEllipseToCircle';
exports.type = 'visitor';
exports.active = true;
exports.description = 'converts non-eccentric <ellipse>s to <circle>s';
/**
* Converts non-eccentric <ellipse>s to <circle>s.
*
* @see https://www.w3.org/TR/SVG11/shapes.html
*
* @author Taylor Hunt
*
* @type {import('../lib/types').Plugin<void>}
*/
exports.fn = () => {
return {
element: {
enter: (node) => {
if (node.name === 'ellipse') {
const rx = node.attributes.rx || '0';
const ry = node.attributes.ry || '0';
if (
rx === ry ||
rx === 'auto' ||
ry === 'auto' // SVG2
) {
node.name = 'circle';
const radius = rx === 'auto' ? ry : rx;
delete node.attributes.rx;
delete node.attributes.ry;
node.attributes.r = radius;
}
}
},
},
};
};