{"version":3,"names":["SVG","__SystemJSRewritingHack","_export","setters","_srcClientGraphicsJs","pt","rect","execute","_recorder_","_src_client_svg_js","Object","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","getPathVertices","p","getAttribute","split","map","ea","m","pos","c","x1","parseFloat","y1","toString","JSON","stringify","x2","y2","setPathVertices","vertices","s","join","setAttribute","resetBounds","svgElement","path","lively","getPosition","bounds","getBBox","v","pathPos","forEach","x","y","setPosition","addPt","setExtent","width","height","childBounds","result","childNodes","r","getBoundingClientRect","b","union"],"sources":["svg.js"],"sourcesContent":["import {pt, rect} from 'src/client/graphics.js';\n\n/*\n * Kitchensink for all SVG manipulation utilities\n */\n\nexport default class SVG {\n  \n   static getPathVertices(p) {\n    return p.getAttribute(\"d\").split(/(?=[A-Za-z] +)/).map( ea => {\n      var m = ea.split(/ +/)\n      var pos = {c: m[0], x1: parseFloat(m[1]), y1: parseFloat(m[2]), toString: function() { return JSON.stringify(this)}}\n      if (m[3]) {\n        pos.x1 = parseFloat(m[3]);\n        pos.y1 = parseFloat(m[4]);\n        pos.x2 = parseFloat(m[1]);\n        pos.y2 = parseFloat(m[2]);\n      }\n      return pos  \n    })\n  }\n  \n  static setPathVertices(p, vertices) {\n    var s = vertices.map(ea => {\n        var s = ea.c  \n        if (typeof ea.x2 !== 'undefined') \n          s +=  \" \" + ea.x2 + \" \" + ea.y2 // first the helper points\n        s += \" \" + ea.x1 + \" \" + ea.y1;\n        return s \n      }).join(\" \")\n    p.setAttribute(\"d\", s)\n    return s\n  }\n  \n  static resetBounds(svgElement, path) {\n    var pos = lively.getPosition(svgElement)\n    var bounds = svgElement.getBBox()\n    var v = this.getPathVertices(path) \n    var pathPos = lively.getPosition(path)\n    v.forEach(ea => {\n      ea.x1 -= bounds.x - pathPos.x\n      ea.y1 -= bounds.y - pathPos.y\n    })\n    lively.setPosition(svgElement, pos.addPt(pt(bounds.x, bounds.y)))\n    this.setPathVertices(path, v)\n    lively.setExtent(svgElement, pt(bounds.width + 1, bounds.height + 1))\n    lively.setPosition(path, pt(0,0))\n\n    // make sure the width is never 0\n\n  }\n  \n  /* \n   * ## Computes the bounds of the children of an svg element\n   * ``\n   * lively.showRect(SVG.childBounds(that.get(\"svg\")))\n   * ``\n   */ \n  static childBounds(svgElement) {\n    var result \n    svgElement.childNodes.forEach(ea => {\n        var r = ea.getBoundingClientRect()   \n        var b = rect(r.x, r.y, r.width, r.height)\n        result = (result || b).union(b)\n    })\n    return result\n  }\n\n}\n\n\n"],"mappings":";;;gBAMqBA,GAAG,EAAAC,uBAAA;EAAAC,OAAA;EAAA;IAAAC,OAAA,aAAAC,oBAAA;MANhBC,EAAE,GAAAD,oBAAA,CAAFC,EAAE;MAAEC,IAAI,GAAAF,oBAAA,CAAJE,IAAI;IAAA;IAAAC,OAAA,WAAAA,CAAA;MAAAN,uBAAA;MAAAO,UAAA,CAAAC,kBAAA,GAAAD,UAAA,CAAAC,kBAAA;MAEhB;AACA;AACA;MAFAC,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,kBAAA;QAAAG,IAAA;UAAA,OAAAN,IAAA;QAAA;QAAAO,IAAAC,8BAAA;UAFYR,IAAA,CAAAA,CAAA,CAAAA,8BAAI;UAAA;QAAA;QAAAS,UAAA;QAAAC,YAAA;MAAA;MAAAN,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,kBAAA;QAAAG,IAAA;UAAA,OAAAP,EAAA;QAAA;QAAAQ,IAAAC,8BAAA;UAART,EAAA,CAAAA,CAAA,CAAAA,8BAAE;UAAA;QAAA;QAAAU,UAAA;QAAAC,YAAA;MAAA;MAAAd,OAAA,YAMWF,GAAG,GAAT,MAAMA,GAAG,CAAC;QAEtB,OAAOiB,eAAeA,CAACC,CAAC,EAAE;UACzB,OAAOA,CAAC,CAACC,YAAY,CAAC,GAAG,CAAC,CAACC,KAAK,CAAC,gBAAgB,CAAC,CAACC,GAAG,CAAEC,EAAE,IAAI;YAC5D,IAAIC,CAAC,GAAGD,EAAE,CAACF,KAAK,CAAC,IAAI,CAAC;YACtB,IAAII,GAAG,GAAG;cAACC,CAAC,EAAEF,CAAC,CAAC,CAAC,CAAC;cAAEG,EAAE,EAAEC,UAAU,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;cAAEK,EAAE,EAAED,UAAU,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;cAAEM,QAAQ,EAAE,SAAAA,CAAA,EAAW;gBAAE,OAAOC,IAAI,CAACC,SAAS,CAAC,IAAI,CAAC;cAAA;YAAC,CAAC;YACpH,IAAIR,CAAC,CAAC,CAAC,CAAC,EAAE;cACRC,GAAG,CAACE,EAAE,GAAGC,UAAU,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;cACzBC,GAAG,CAACI,EAAE,GAAGD,UAAU,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;cACzBC,GAAG,CAACQ,EAAE,GAAGL,UAAU,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;cACzBC,GAAG,CAACS,EAAE,GAAGN,UAAU,CAACJ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B;YACA,OAAOC,GAAG;UACZ,CAAC,CAAC;QACJ;QAEA,OAAOU,eAAeA,CAAChB,CAAC,EAAEiB,QAAQ,EAAE;UAClC,IAAIC,CAAC,GAAGD,QAAQ,CAACd,GAAG,CAACC,EAAE,IAAI;YACvB,IAAIc,CAAC,GAAGd,EAAE,CAACG,CAAC;YACZ,IAAI,OAAOH,EAAE,CAACU,EAAE,KAAK,WAAW,EAC9BI,CAAC,IAAK,GAAG,GAAGd,EAAE,CAACU,EAAE,GAAG,GAAG,GAAGV,EAAE,CAACW,EAAE,EAAC;YAClCG,CAAC,IAAI,GAAG,GAAGd,EAAE,CAACI,EAAE,GAAG,GAAG,GAAGJ,EAAE,CAACM,EAAE;YAC9B,OAAOQ,CAAC;UACV,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;UACdnB,CAAC,CAACoB,YAAY,CAAC,GAAG,EAAEF,CAAC,CAAC;UACtB,OAAOA,CAAC;QACV;QAEA,OAAOG,WAAWA,CAACC,UAAU,EAAEC,IAAI,EAAE;UACnC,IAAIjB,GAAG,GAAGkB,MAAM,CAACC,WAAW,CAACH,UAAU,CAAC;UACxC,IAAII,MAAM,GAAGJ,UAAU,CAACK,OAAO,CAAC,CAAC;UACjC,IAAIC,CAAC,GAAG,IAAI,CAAC7B,eAAe,CAACwB,IAAI,CAAC;UAClC,IAAIM,OAAO,GAAGL,MAAM,CAACC,WAAW,CAACF,IAAI,CAAC;UACtCK,CAAC,CAACE,OAAO,CAAC1B,EAAE,IAAI;YACdA,EAAE,CAACI,EAAE,IAAIkB,MAAM,CAACK,CAAC,GAAGF,OAAO,CAACE,CAAC;YAC7B3B,EAAE,CAACM,EAAE,IAAIgB,MAAM,CAACM,CAAC,GAAGH,OAAO,CAACG,CAAC;UAC/B,CAAC,CAAC;UACFR,MAAM,CAACS,WAAW,CAACX,UAAU,EAAEhB,GAAG,CAAC4B,KAAK,CAAC/C,EAAE,CAACuC,MAAM,CAACK,CAAC,EAAEL,MAAM,CAACM,CAAC,CAAC,CAAC,CAAC;UACjE,IAAI,CAAChB,eAAe,CAACO,IAAI,EAAEK,CAAC,CAAC;UAC7BJ,MAAM,CAACW,SAAS,CAACb,UAAU,EAAEnC,EAAE,CAACuC,MAAM,CAACU,KAAK,GAAG,CAAC,EAAEV,MAAM,CAACW,MAAM,GAAG,CAAC,CAAC,CAAC;UACrEb,MAAM,CAACS,WAAW,CAACV,IAAI,EAAEpC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;;UAEjC;QAEF;;QAEA;AACF;AACA;AACA;AACA;AACA;QACE,OAAOmD,WAAWA,CAAChB,UAAU,EAAE;UAC7B,IAAIiB,MAAM;UACVjB,UAAU,CAACkB,UAAU,CAACV,OAAO,CAAC1B,EAAE,IAAI;YAChC,IAAIqC,CAAC,GAAGrC,EAAE,CAACsC,qBAAqB,CAAC,CAAC;YAClC,IAAIC,CAAC,GAAGvD,IAAI,CAACqD,CAAC,CAACV,CAAC,EAAEU,CAAC,CAACT,CAAC,EAAES,CAAC,CAACL,KAAK,EAAEK,CAAC,CAACJ,MAAM,CAAC;YACzCE,MAAM,GAAG,CAACA,MAAM,IAAII,CAAC,EAAEC,KAAK,CAACD,CAAC,CAAC;UACnC,CAAC,CAAC;UACF,OAAOJ,MAAM;QACf;MAEF,CAAC;MAAA/C,MAAA,CAAAC,cAAA,CAAAH,UAAA,CAAAC,kBAAA;QAAAG,IAAA;UAAA,OAAAZ,GAAA;QAAA;QAAAa,IAAAC,8BAAA;UAAAZ,OAAA,YA9DoBF,GAAA,CAAAA,CAAA,CAAAA,8BAAG;UAAA;QAAA;QAAAe,UAAA;QAAAC,YAAA;MAAA;IAAA;EAAA;AAAA"}