Added garbage collector to clear the hub.

Fix for bug #241
master
Dmitry Baranovskiy 2014-05-08 14:21:19 +10:00
parent f5d9ff5bb7
commit f39b99ee06
4 changed files with 253 additions and 56 deletions

File diff suppressed because one or more lines are too long

56
dist/snap.svg.js vendored
View File

@ -14,7 +14,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
//
// build: 2014-05-07
// build: 2014-05-08
// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
@ -1903,6 +1903,16 @@ function add2group(list) {
}
return this;
}
// Hub garbage collector every 10s
setInterval(function () {
for (var key in hub) if (hub[has](key)) {
var el = hub[key],
node = el.node;
if (el.type != "svg" && !node.ownerSVGElement || el.type == "svg" && (!node.parentNode || "ownerSVGElement" in node.parentNode && !node.ownerSVGElement)) {
delete hub[key];
}
}
}, 1e4);
function Element(el) {
if (el.snap in hub) {
return hub[el.snap];
@ -6209,6 +6219,7 @@ Snap.plugin(function (Snap, Element, Paper, glob) {
// Set
var Set = function (items) {
this.items = [];
this.bindings = {};
this.length = 0;
this.type = "set";
if (items) {
@ -6330,9 +6341,49 @@ Snap.plugin(function (Snap, Element, Paper, glob) {
}
return this;
};
/*\
* Set.bind
[ method ]
**
* Specifies how to handle a specific attribute when applied
* to a set.
*
**
- attr (string) attribute name
- callback (function) function to run
* or
- attr (string) attribute name
- element (Element) specific element in the set to apply the attribute to
* or
- attr (string) attribute name
- element (Element) specific element in the set to apply the attribute to
- eattr (string) attribute on the element to bind the attribute to
= (object) Set object
\*/
setproto.bind = function (attr, a, b) {
var data = {};
if (typeof a == "function") {
this.bindings[attr] = a;
} else {
var aname = b || attr;
this.bindings[attr] = function (v) {
data[aname] = v;
a.attr(data);
};
}
return this;
};
setproto.attr = function (value) {
var unbound = {};
for (var k in value) {
if (this.bindings[k]) {
this.bindings[k](value[k]);
} else {
unbound[k] = value[k];
}
}
for (var i = 0, ii = this.items.length; i < ii; i++) {
this.items[i].attr(value);
this.items[i].attr(unbound);
}
return this;
};
@ -6454,6 +6505,7 @@ Snap.plugin(function (Snap, Element, Paper, glob) {
return set;
};
});
// Copyright (c) 2013 Adobe Systems Incorporated. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");

View File

@ -347,6 +347,10 @@
<a href="#Set" class="undefined"><span>Set</span></a>
</li>
<li class="dr-lvl1">
<a href="#Set.bind" class="dr-method"><span>Set.bind()</span></a>
</li>
<li class="dr-lvl1">
<a href="#Set.clear" class="dr-method"><span>Set.clear()</span></a>
</li>
@ -2598,7 +2602,7 @@ Parses given transform string into an array of transformations
<article id="Element.node">
<header>
<h3 class="dr-property">Element.node(x, y, width, height, refX, refY)<a href="#Element.node" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1169 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1169">&#x27ad;</a></h3>
<h3 class="dr-property">Element.node(x, y, width, height, refX, refY)<a href="#Element.node" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1179 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1179">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.node-extra"></div>
@ -2649,7 +2653,7 @@ c.node.onclick = function () {
<article id="Element.type">
<header>
<h3 class="dr-property">Element.type(tstr)<a href="#Element.type" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1179 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1179">&#x27ad;</a></h3>
<h3 class="dr-property">Element.type(tstr)<a href="#Element.type" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1189 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1189">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.type-extra"></div>
@ -2674,7 +2678,7 @@ c.node.onclick = function () {
<article id="Element.attr">
<header>
<h3 class="dr-method">Element.attr(…)<a href="#Element.attr" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1226 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1226">&#x27ad;</a></h3>
<h3 class="dr-method">Element.attr(…)<a href="#Element.attr" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1236 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1236">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.attr-extra"></div>
@ -2819,7 +2823,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.getBBox">
<header>
<h3 class="dr-method">Element.getBBox()<a href="#Element.getBBox" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1273 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1273">&#x27ad;</a></h3>
<h3 class="dr-method">Element.getBBox()<a href="#Element.getBBox" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1283 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1283">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.getBBox-extra"></div>
@ -3001,7 +3005,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.transform">
<header>
<h3 class="dr-method">Element.transform(tstr)<a href="#Element.transform" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1320 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1320">&#x27ad;</a></h3>
<h3 class="dr-method">Element.transform(tstr)<a href="#Element.transform" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1330 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1330">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.transform-extra"></div>
@ -3165,7 +3169,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.parent">
<header>
<h3 class="dr-method">Element.parent()<a href="#Element.parent" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1377 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1377">&#x27ad;</a></h3>
<h3 class="dr-method">Element.parent()<a href="#Element.parent" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1387 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1387">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.parent-extra"></div>
@ -3207,7 +3211,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.append">
<header>
<h3 class="dr-method">Element.append(el)<a href="#Element.append" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1389 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1389">&#x27ad;</a></h3>
<h3 class="dr-method">Element.append(el)<a href="#Element.append" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1399 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1399">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.append-extra"></div>
@ -3267,7 +3271,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.add">
<header>
<h3 class="dr-method">Element.add()<a href="#Element.add" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1395 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1395">&#x27ad;</a></h3>
<h3 class="dr-method">Element.add()<a href="#Element.add" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1405 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1405">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.add-extra"></div>
@ -3292,7 +3296,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.appendTo">
<header>
<h3 class="dr-method">Element.appendTo(el)<a href="#Element.appendTo" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1419 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1419">&#x27ad;</a></h3>
<h3 class="dr-method">Element.appendTo(el)<a href="#Element.appendTo" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1429 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1429">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.appendTo-extra"></div>
@ -3352,7 +3356,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.prepend">
<header>
<h3 class="dr-method">Element.prepend(el)<a href="#Element.prepend" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1435 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1435">&#x27ad;</a></h3>
<h3 class="dr-method">Element.prepend(el)<a href="#Element.prepend" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1445 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1445">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.prepend-extra"></div>
@ -3412,7 +3416,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.prependTo">
<header>
<h3 class="dr-method">Element.prependTo(el)<a href="#Element.prependTo" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1456 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1456">&#x27ad;</a></h3>
<h3 class="dr-method">Element.prependTo(el)<a href="#Element.prependTo" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1466 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1466">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.prependTo-extra"></div>
@ -3472,7 +3476,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.before">
<header>
<h3 class="dr-method">Element.before(el)<a href="#Element.before" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1470 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1470">&#x27ad;</a></h3>
<h3 class="dr-method">Element.before(el)<a href="#Element.before" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1480 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1480">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.before-extra"></div>
@ -3532,7 +3536,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.after">
<header>
<h3 class="dr-method">Element.after(el)<a href="#Element.after" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1498 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1498">&#x27ad;</a></h3>
<h3 class="dr-method">Element.after(el)<a href="#Element.after" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1508 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1508">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.after-extra"></div>
@ -3592,7 +3596,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.insertBefore">
<header>
<h3 class="dr-method">Element.insertBefore(el)<a href="#Element.insertBefore" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1520 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1520">&#x27ad;</a></h3>
<h3 class="dr-method">Element.insertBefore(el)<a href="#Element.insertBefore" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1530 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1530">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.insertBefore-extra"></div>
@ -3652,7 +3656,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.insertAfter">
<header>
<h3 class="dr-method">Element.insertAfter(el)<a href="#Element.insertAfter" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1538 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1538">&#x27ad;</a></h3>
<h3 class="dr-method">Element.insertAfter(el)<a href="#Element.insertAfter" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1548 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1548">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.insertAfter-extra"></div>
@ -3712,7 +3716,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.remove">
<header>
<h3 class="dr-method">Element.remove()<a href="#Element.remove" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1554 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1554">&#x27ad;</a></h3>
<h3 class="dr-method">Element.remove()<a href="#Element.remove" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1564 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1564">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.remove-extra"></div>
@ -3754,7 +3758,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.select">
<header>
<h3 class="dr-method">Element.select(query)<a href="#Element.select" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1571 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1571">&#x27ad;</a></h3>
<h3 class="dr-method">Element.select(query)<a href="#Element.select" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1581 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1581">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.select-extra"></div>
@ -3814,7 +3818,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.selectAll">
<header>
<h3 class="dr-method">Element.selectAll(query)<a href="#Element.selectAll" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1583 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1583">&#x27ad;</a></h3>
<h3 class="dr-method">Element.selectAll(query)<a href="#Element.selectAll" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1593 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1593">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.selectAll-extra"></div>
@ -3876,7 +3880,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.asPX">
<header>
<h3 class="dr-method">Element.asPX(attr, [value])<a href="#Element.asPX" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1601 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1601">&#x27ad;</a></h3>
<h3 class="dr-method">Element.asPX(attr, [value])<a href="#Element.asPX" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1611 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1611">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.asPX-extra"></div>
@ -3939,7 +3943,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.use">
<header>
<h3 class="dr-method">Element.use()<a href="#Element.use" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1616 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1616">&#x27ad;</a></h3>
<h3 class="dr-method">Element.use()<a href="#Element.use" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1626 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1626">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.use-extra"></div>
@ -3981,7 +3985,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.clone">
<header>
<h3 class="dr-method">Element.clone()<a href="#Element.clone" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1645 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1645">&#x27ad;</a></h3>
<h3 class="dr-method">Element.clone()<a href="#Element.clone" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1655 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1655">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.clone-extra"></div>
@ -4023,7 +4027,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.toDefs">
<header>
<h3 class="dr-method">Element.toDefs()<a href="#Element.toDefs" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1816 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1816">&#x27ad;</a></h3>
<h3 class="dr-method">Element.toDefs()<a href="#Element.toDefs" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1826 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1826">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.toDefs-extra"></div>
@ -4065,7 +4069,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.pattern">
<header>
<h3 class="dr-method">Element.pattern()<a href="#Element.pattern" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1827 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1827">&#x27ad;</a></h3>
<h3 class="dr-method">Element.pattern()<a href="#Element.pattern" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1837 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1837">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.pattern-extra"></div>
@ -4090,7 +4094,7 @@ console.log(el.attr("fill")); // #fc0</code></pre></section>
<article id="Element.toPattern">
<header>
<h3 class="dr-method">Element.toPattern(x, y, width, height)<a href="#Element.toPattern" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1850 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1850">&#x27ad;</a></h3>
<h3 class="dr-method">Element.toPattern(x, y, width, height)<a href="#Element.toPattern" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1860 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1860">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.toPattern-extra"></div>
@ -4190,7 +4194,7 @@ c.attr({
<article id="Element.marker">
<header>
<h3 class="dr-method">Element.marker(x, y, width, height, refX, refY)<a href="#Element.marker" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1891 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1891">&#x27ad;</a></h3>
<h3 class="dr-method">Element.marker(x, y, width, height, refX, refY)<a href="#Element.marker" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1901 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1901">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.marker-extra"></div>
@ -4277,7 +4281,7 @@ To create a marker you have to specify the bounding rect and reference point:
<article id="Snap.animation">
<header>
<h3 class="dr-method">Snap.animation(attr, duration, [easing], [callback])<a href="#Snap.animation" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1950 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1950">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.animation(attr, duration, [easing], [callback])<a href="#Snap.animation" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1960 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1960">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.animation-extra"></div>
@ -4346,7 +4350,7 @@ To create a marker you have to specify the bounding rect and reference point:
<article id="Element.inAnim">
<header>
<h3 class="dr-method">Element.inAnim()<a href="#Element.inAnim" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1968 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1968">&#x27ad;</a></h3>
<h3 class="dr-method">Element.inAnim()<a href="#Element.inAnim" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 1978 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L1978">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.inAnim-extra"></div>
@ -4448,7 +4452,7 @@ To create a marker you have to specify the bounding rect and reference point:
<article id="Snap.animate">
<header>
<h3 class="dr-method">Snap.animate(from, to, setter, duration, [easing], [callback])<a href="#Snap.animate" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2018 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2018">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.animate(from, to, setter, duration, [easing], [callback])<a href="#Snap.animate" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2028 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2028">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.animate-extra"></div>
@ -4609,7 +4613,7 @@ rect.animate({x: 10}, 1000);</code></pre></section>
<article id="Element.stop">
<header>
<h3 class="dr-method">Element.stop()<a href="#Element.stop" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2036 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2036">&#x27ad;</a></h3>
<h3 class="dr-method">Element.stop()<a href="#Element.stop" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2046 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2046">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.stop-extra"></div>
@ -4651,7 +4655,7 @@ rect.animate({x: 10}, 1000);</code></pre></section>
<article id="Element.animate">
<header>
<h3 class="dr-method">Element.animate(attrs, duration, [easing], [callback])<a href="#Element.animate" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2057 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2057">&#x27ad;</a></h3>
<h3 class="dr-method">Element.animate(attrs, duration, [easing], [callback])<a href="#Element.animate" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2067 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2067">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.animate-extra"></div>
@ -4720,7 +4724,7 @@ rect.animate({x: 10}, 1000);</code></pre></section>
<article id="Element.data">
<header>
<h3 class="dr-method">Element.data(key, [value])<a href="#Element.data" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2130 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2130">&#x27ad;</a></h3>
<h3 class="dr-method">Element.data(key, [value])<a href="#Element.data" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2140 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2140">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.data-extra"></div>
@ -4842,7 +4846,7 @@ with <code>data-</code> attributes)
<article id="Element.removeData">
<header>
<h3 class="dr-method">Element.removeData([key])<a href="#Element.removeData" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2159 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2159">&#x27ad;</a></h3>
<h3 class="dr-method">Element.removeData([key])<a href="#Element.removeData" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2169 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2169">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.removeData-extra"></div>
@ -4903,7 +4907,7 @@ If key is not provided, removes all the data of the element.
<article id="Element.outerSVG">
<header>
<h3 class="dr-method">Element.outerSVG()<a href="#Element.outerSVG" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2176 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2176">&#x27ad;</a></h3>
<h3 class="dr-method">Element.outerSVG()<a href="#Element.outerSVG" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2186 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2186">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.outerSVG-extra"></div>
@ -4946,7 +4950,7 @@ If key is not provided, removes all the data of the element.
<article id="Element.toString">
<header>
<h3 class="dr-method">Element.toString()<a href="#Element.toString" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2182 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2182">&#x27ad;</a></h3>
<h3 class="dr-method">Element.toString()<a href="#Element.toString" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2192 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2192">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.toString-extra"></div>
@ -4971,7 +4975,7 @@ If key is not provided, removes all the data of the element.
<article id="Element.innerSVG">
<header>
<h3 class="dr-method">Element.innerSVG()<a href="#Element.innerSVG" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2190 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2190">&#x27ad;</a></h3>
<h3 class="dr-method">Element.innerSVG()<a href="#Element.innerSVG" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2200 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2200">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Element.innerSVG-extra"></div>
@ -5013,7 +5017,7 @@ If key is not provided, removes all the data of the element.
<article id="Snap.parse">
<header>
<h3 class="dr-method">Snap.parse(svg)<a href="#Snap.parse" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2228 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2228">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.parse(svg)<a href="#Snap.parse" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2238 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2238">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.parse-extra"></div>
@ -5073,7 +5077,7 @@ If key is not provided, removes all the data of the element.
<article id="Fragment.select">
<header>
<h3 class="dr-method">Fragment.select()<a href="#Fragment.select" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2260 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2260">&#x27ad;</a></h3>
<h3 class="dr-method">Fragment.select()<a href="#Fragment.select" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2270 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2270">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Fragment.select-extra"></div>
@ -5098,7 +5102,7 @@ If key is not provided, removes all the data of the element.
<article id="Fragment.selectAll">
<header>
<h3 class="dr-method">Fragment.selectAll()<a href="#Fragment.selectAll" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2267 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2267">&#x27ad;</a></h3>
<h3 class="dr-method">Fragment.selectAll()<a href="#Fragment.selectAll" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2277 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2277">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Fragment.selectAll-extra"></div>
@ -5123,7 +5127,7 @@ If key is not provided, removes all the data of the element.
<article id="Snap.fragment">
<header>
<h3 class="dr-method">Snap.fragment(varargs)<a href="#Snap.fragment" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2278 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2278">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.fragment(varargs)<a href="#Snap.fragment" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2288 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2288">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.fragment-extra"></div>
@ -5183,7 +5187,7 @@ If key is not provided, removes all the data of the element.
<article id="Paper.el">
<header>
<h3 class="dr-method">Paper.el(name, attr)<a href="#Paper.el" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2381 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2381">&#x27ad;</a></h3>
<h3 class="dr-method">Paper.el(name, attr)<a href="#Paper.el" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2391 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2391">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Paper.el-extra"></div>
@ -5279,7 +5283,7 @@ var c = paper.el("circle", {
<article id="Snap.ajax">
<header>
<h3 class="dr-method">Snap.ajax(…)<a href="#Snap.ajax" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2499 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2499">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.ajax(…)<a href="#Snap.ajax" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2509 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2509">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.ajax-extra"></div>
@ -5383,7 +5387,7 @@ var c = paper.el("circle", {
<article id="Snap.load">
<header>
<h3 class="dr-method">Snap.load(url, callback, [scope])<a href="#Snap.load" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2545 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2545">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.load(url, callback, [scope])<a href="#Snap.load" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2555 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2555">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.load-extra"></div>
@ -5432,7 +5436,7 @@ var c = paper.el("circle", {
<article id="Snap.getElementByPoint">
<header>
<h3 class="dr-method">Snap.getElementByPoint(x, y)<a href="#Snap.getElementByPoint" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2576 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2576">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.getElementByPoint(x, y)<a href="#Snap.getElementByPoint" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2586 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2586">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.getElementByPoint-extra"></div>
@ -5517,7 +5521,7 @@ var c = paper.el("circle", {
<article id="Snap.plugin">
<header>
<h3 class="dr-method">Snap.plugin(f)<a href="#Snap.plugin" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2611 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2611">&#x27ad;</a></h3>
<h3 class="dr-method">Snap.plugin(f)<a href="#Snap.plugin" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 2621 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L2621">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Snap.plugin-extra"></div>
@ -10445,7 +10449,7 @@ Converts path to a new path where all segments are cubic beziér curves
<article id="Set.push">
<header>
<h3 class="dr-method">Set.push()<a href="#Set.push" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 40 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L40">&#x27ad;</a></h3>
<h3 class="dr-method">Set.push()<a href="#Set.push" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 41 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L41">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.push-extra"></div>
@ -10487,7 +10491,7 @@ Converts path to a new path where all segments are cubic beziér curves
<article id="Set.pop">
<header>
<h3 class="dr-method">Set.pop()<a href="#Set.pop" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 60 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L60">&#x27ad;</a></h3>
<h3 class="dr-method">Set.pop()<a href="#Set.pop" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 61 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L61">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.pop-extra"></div>
@ -10529,7 +10533,7 @@ Converts path to a new path where all segments are cubic beziér curves
<article id="Set.forEach">
<header>
<h3 class="dr-method">Set.forEach(callback, thisArg)<a href="#Set.forEach" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 76 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L76">&#x27ad;</a></h3>
<h3 class="dr-method">Set.forEach(callback, thisArg)<a href="#Set.forEach" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 77 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L77">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.forEach-extra"></div>
@ -10576,6 +10580,137 @@ Converts path to a new path where all segments are cubic beziér curves
<p class="dr-returns">
<strong class="dr-title">Returns:</strong>
<em class="dr-type-object">object</em>
<span class="dr-description">Set object</span>
</p>
</div>
</section>
</article>
<article id="Set.bind">
<header>
<h3 class="dr-method">Set.bind(…)<a href="#Set.bind" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 162 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L162">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.bind-extra"></div>
<div class="dr-method">
<p>Specifies how to handle a specific attribute when applied
to a set.
</p><p></p>
<div class="topcoat-list__container">
<h3 class="topcoat-list__header">Parameters</h3>
<ol class="topcoat-list">
<li class="topcoat-list__item"><span class="dr-param">attr</span>
<span class="dr-type"><em class="dr-type-string">string</em> </span>
<span class="dr-description">attribute name</span></li>
<li class="topcoat-list__item"><span class="dr-param">callback</span>
<span class="dr-type"><em class="dr-type-function">function</em> </span>
<span class="dr-description">function to run</span></li>
</ol>
</div>
<p>or
</p>
<div class="topcoat-list__container">
<h3 class="topcoat-list__header">Parameters</h3>
<ol class="topcoat-list">
<li class="topcoat-list__item"><span class="dr-param">attr</span>
<span class="dr-type"><em class="dr-type-string">string</em> </span>
<span class="dr-description">attribute name</span></li>
<li class="topcoat-list__item"><span class="dr-param">element</span>
<span class="dr-type"><em class="dr-type-Element">Element</em> </span>
<span class="dr-description">specific element in the set to apply the attribute to</span></li>
</ol>
</div>
<p>or
</p>
<div class="topcoat-list__container">
<h3 class="topcoat-list__header">Parameters</h3>
<ol class="topcoat-list">
<li class="topcoat-list__item"><span class="dr-param">attr</span>
<span class="dr-type"><em class="dr-type-string">string</em> </span>
<span class="dr-description">attribute name</span></li>
<li class="topcoat-list__item"><span class="dr-param">element</span>
<span class="dr-type"><em class="dr-type-Element">Element</em> </span>
<span class="dr-description">specific element in the set to apply the attribute to</span></li>
<li class="topcoat-list__item"><span class="dr-param">eattr</span>
<span class="dr-type"><em class="dr-type-string">string</em> </span>
<span class="dr-description">attribute on the element to bind the attribute to</span></li>
</ol>
</div>
<p class="dr-returns">
<strong class="dr-title">Returns:</strong>
@ -10593,7 +10728,7 @@ Converts path to a new path where all segments are cubic beziér curves
<article id="Set.clear">
<header>
<h3 class="dr-method">Set.clear()<a href="#Set.clear" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 154 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L154">&#x27ad;</a></h3>
<h3 class="dr-method">Set.clear()<a href="#Set.clear" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 195 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L195">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.clear-extra"></div>
@ -10618,7 +10753,7 @@ Converts path to a new path where all segments are cubic beziér curves
<article id="Set.splice">
<header>
<h3 class="dr-method">Set.splice(index, count, [insertion…])<a href="#Set.splice" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 170 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L170">&#x27ad;</a></h3>
<h3 class="dr-method">Set.splice(index, count, [insertion…])<a href="#Set.splice" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 211 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L211">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.splice-extra"></div>
@ -10684,7 +10819,7 @@ Converts path to a new path where all segments are cubic beziér curves
<article id="Set.exclude">
<header>
<h3 class="dr-method">Set.exclude(element)<a href="#Set.exclude" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 205 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L205">&#x27ad;</a></h3>
<h3 class="dr-method">Set.exclude(element)<a href="#Set.exclude" title="Link to this section" class="dr-hash">&#x2693;</a><a class="dr-sourceline" title="Go to line 246 in the source" href="https://github.com/adobe-webplatform/Snap.svg/blob/master/src/svg.js#L246">&#x27ad;</a></h3>
</header>
<section>
<div class="extra" id="Set.exclude-extra"></div>

View File

@ -1145,6 +1145,16 @@ function add2group(list) {
}
return this;
}
// Hub garbage collector every 10s
setInterval(function () {
for (var key in hub) if (hub[has](key)) {
var el = hub[key],
node = el.node;
if (el.type != "svg" && !node.ownerSVGElement || el.type == "svg" && (!node.parentNode || "ownerSVGElement" in node.parentNode && !node.ownerSVGElement)) {
delete hub[key];
}
}
}, 1e4);
function Element(el) {
if (el.snap in hub) {
return hub[el.snap];