summaryrefslogtreecommitdiff
path: root/node_modules/svgo/plugins/convertEllipseToCircle.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/svgo/plugins/convertEllipseToCircle.js')
-rw-r--r--node_modules/svgo/plugins/convertEllipseToCircle.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/node_modules/svgo/plugins/convertEllipseToCircle.js b/node_modules/svgo/plugins/convertEllipseToCircle.js
new file mode 100644
index 00000000..50fa20db
--- /dev/null
+++ b/node_modules/svgo/plugins/convertEllipseToCircle.js
@@ -0,0 +1,37 @@
+'use strict';
+
+exports.name = 'convertEllipseToCircle';
+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('./plugins-types').Plugin<'convertEllipseToCircle'>}
+ */
+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;
+ }
+ }
+ },
+ },
+ };
+};