]> source.dussan.org Git - svg.js.git/commitdiff
Modifiers implementation on getter
authornobuti <buti@nobuti.com>
Fri, 26 Oct 2018 16:57:55 +0000 (18:57 +0200)
committernobuti <buti@nobuti.com>
Fri, 26 Oct 2018 16:57:55 +0000 (18:57 +0200)
src/element.js

index f0d9e8e95b94ee58790d99b3b4ebeee49e15ea9f..57a83ac2edb294074f433b502358d35f2a53c3c5 100644 (file)
@@ -261,7 +261,7 @@ SVG.Element = SVG.invent({
       var well, len
 
       // act as a setter if svg is given
-      if (svg && this instanceof SVG.Parent) {
+      if (typeof svg === 'string' && this instanceof SVG.Parent) {
         // create temporary holder
         well = document.createElementNS(SVG.ns, 'svg')
         // dump raw svg
@@ -271,9 +271,20 @@ SVG.Element = SVG.invent({
         for (len = well.children.length; len--;) {
           this.node.appendChild(well.firstElementChild)
         }
-
       // otherwise act as a getter
       } else {
+        if (typeof svg === 'function') {
+          well = svg(this)
+
+          if (well instanceof SVG.Element) {
+            return well.svg()
+          }
+
+          if (typeof well === 'boolean' && !well) {
+            return null
+          }
+        }
+
         // write svgjs data to the dom
         this.writeDataToDom()