mirror of
https://github.com/scratchfoundation/paper.js.git
synced 2024-12-29 09:22:22 -05:00
Add SVG switch support (#1597)
SVG <switch> is simply parsed as a group because conditional attributes cannot be evaluated in paper.js context. Relates to #1389
This commit is contained in:
parent
33a5625936
commit
598d9a3356
2 changed files with 20 additions and 1 deletions
|
@ -303,7 +303,11 @@ new function() {
|
||||||
getPoint(node, 'dx', 'dy')));
|
getPoint(node, 'dx', 'dy')));
|
||||||
text.setContent(node.textContent.trim() || '');
|
text.setContent(node.textContent.trim() || '');
|
||||||
return text;
|
return text;
|
||||||
}
|
},
|
||||||
|
|
||||||
|
// https://www.w3.org/TR/SVG/struct.html#SwitchElement
|
||||||
|
// Conditional attributes are ignored and all children are rendered.
|
||||||
|
switch: importGroup
|
||||||
};
|
};
|
||||||
|
|
||||||
// Attributes and Styles
|
// Attributes and Styles
|
||||||
|
|
|
@ -143,6 +143,21 @@ test('Import SVG without insertion', function() {
|
||||||
}, true);
|
}, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Import SVG switch', function(assert) {
|
||||||
|
var done = assert.async();
|
||||||
|
var svg = '<svg xmlns="http://www.w3.org/2000/svg"><switch><line x1="0" x2="10" y1="0" y2="10" fill="none"></line></switch></svg>';
|
||||||
|
paper.project.importSVG(svg, {
|
||||||
|
onLoad: function(item) {
|
||||||
|
equals(item.className, 'Group');
|
||||||
|
equals(item.children.length, 1);
|
||||||
|
equals(item.firstChild.className, 'Group');
|
||||||
|
equals(item.firstChild.children.length, 1);
|
||||||
|
equals(item.firstChild.firstChild, new Path([new Point(0, 0), new Point(10, 10)]));
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
function importSVG(assert, url, message, options) {
|
function importSVG(assert, url, message, options) {
|
||||||
var done = assert.async();
|
var done = assert.async();
|
||||||
project.importSVG(url, {
|
project.importSVG(url, {
|
||||||
|
|
Loading…
Reference in a new issue