summaryrefslogtreecommitdiffstats
path: root/src/ungroup.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/ungroup.js')
-rw-r--r--src/ungroup.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/ungroup.js b/src/ungroup.js
new file mode 100644
index 0000000..7f26915
--- /dev/null
+++ b/src/ungroup.js
@@ -0,0 +1,24 @@
+SVG.extend(SVG.Parent, {
+
+ ungroup: function(parent, depth) {
+ if(depth === 0 || this instanceof SVG.Defs) return this
+
+ parent = parent || (this instanceof SVG.Doc ? this : this.parent(SVG.Parent))
+ depth = depth || Infinity
+
+ this.each(function(){
+ if(this instanceof SVG.Defs) return this
+ if(this instanceof SVG.Parent) return this.ungroup(parent, depth-1)
+ return this.toParent(parent)
+ })
+
+ this.node.firstChild || this.remove()
+
+ return this
+ },
+
+ flatten: function(parent, depth) {
+ return this.ungroup(parent, depth)
+ }
+
+}) \ No newline at end of file