UNPKG

svg-shapes

Version:

Get point data from SVG shapes. Convert point data to an SVG path

1 lines 5.29 kB
!function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.SVGShapes=r():e.SVGShapes=r()}(this,function(){return function(e){function r(a){if(t[a])return t[a].exports;var c=t[a]={exports:{},id:a,loaded:!1};return e[a].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(r,"__esModule",{value:!0}),r.toPath=r.getPoints=void 0;var c=t(1),y=a(c),i=t(2),s=a(i);r.getPoints=y["default"],r.toPath=s["default"]},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t=function(e,r){switch(e){case"circle":return a(r);case"ellipse":return c(r);case"line":return y(r);case"path":return i(r);case"polygon":return s(r);case"polyline":return u(r);case"rect":return n(r);default:throw new Error("Not a valid shape type")}},a=function(e){var r=e.cx,t=e.cy,a=e.r;return[{x:r,y:t-a},{x:r,y:t+a,curve:{type:"arc",rx:a,ry:a}},{x:r,y:t-a,curve:{type:"arc",rx:a,ry:a}}]},c=function(e){var r=e.cx,t=e.cy,a=e.rx,c=e.ry;return[{x:r,y:t-c},{x:r,y:t+c,curve:{type:"arc",rx:a,ry:c}},{x:r,y:t-c,curve:{type:"arc",rx:a,ry:c}}]},y=function(e){var r=e.x1,t=e.x2,a=e.y1,c=e.y2;return[{x:r,y:a},{x:t,y:c}]},i=function(e){for(var r=e.d,t=[],a=r.split(/[^a-zA-Z]+/).filter(function(e){return e.length}),c=r.split(/[^\-0-9.]+/).map(parseFloat).filter(function(e){return!isNaN(e)}),y=["xAxisRotation","largeArcFlag","sweepFlag"],i=0,s=a.length;s>i;i++){var u=0===i,x=u?null:t[i-1],n=!1;switch(a[i]){case"m":case"l":n=!0;case"M":case"L":t.push({x:(n?x.x:0)+c.shift(),y:(n?x.y:0)+c.shift()});break;case"h":n=!0;case"H":t.push({x:(n?x.x:0)+c.shift(),y:x.y});break;case"v":n=!0;case"V":t.push({x:x.x,y:(n?x.y:0)+c.shift()});break;case"a":n=!0;case"A":t.push({curve:{type:"arc",rx:c.shift(),ry:c.shift(),xAxisRotation:c.shift(),largeArcFlag:c.shift(),sweepFlag:c.shift()},x:(n?x.x:0)+c.shift(),y:(n?x.y:0)+c.shift()});var o=!0,f=!1,h=void 0;try{for(var v,l=y[Symbol.iterator]();!(o=(v=l.next()).done);o=!0){var p=v.value;0===t[i].curve[p]&&delete t[i].curve[p]}}catch(d){f=!0,h=d}finally{try{!o&&l["return"]&&l["return"]()}finally{if(f)throw h}}break;case"c":n=!0;case"C":t.push({curve:{type:"cubic",x1:(n?x.x:0)+c.shift(),y1:(n?x.y:0)+c.shift(),x2:(n?x.x:0)+c.shift(),y2:(n?x.y:0)+c.shift()},x:(n?x.x:0)+c.shift(),y:(n?x.y:0)+c.shift()});break;case"s":n=!0;case"S":var b=(n?x.x:0)+c.shift(),g=(n?x.y:0)+c.shift(),w=(n?x.x:0)+c.shift(),M=(n?x.y:0)+c.shift(),k={},m=void 0,A=void 0;x.curve&&"cubic"===x.curve.type?(k.x=Math.abs(x.x-x.curve.x2),k.y=Math.abs(x.y-x.curve.y2),m=x.x<x.curve.x2?x.x-k.x:x.x+k.x,A=x.y<x.curve.y2?x.y-k.y:x.y+k.y):(k.x=Math.abs(w-b),k.y=Math.abs(M-g),m=b>w?x.x-k.x:x.x+k.x,A=g>M?x.y+k.y:x.y-k.y),t.push({curve:{type:"cubic",x1:m,y1:A,x2:b,y2:g},x:w,y:M});break;case"q":n=!0;case"Q":t.push({curve:{type:"quadratic",x1:(n?x.x:0)+c.shift(),y1:(n?x.y:0)+c.shift()},x:(n?x.x:0)+c.shift(),y:(n?x.y:0)+c.shift()});break;case"t":n=!0;case"T":var F=(n?x.x:0)+c.shift(),_=(n?x.y:0)+c.shift(),P=void 0,S=void 0;if(x.curve&&"quadratic"===x.curve.type){var j={x:Math.abs(x.x-x.curve.x1),y:Math.abs(x.y-x.curve.y1)};P=x.x<x.curve.x1?x.x-j.x:x.x+j.x,S=x.y<x.curve.y1?x.y-j.y:x.y+j.y}else P=x.x,S=x.y;t.push({curve:{type:"quadratic",x1:P,y1:S},x:F,y:_});break;case"z":case"Z":t.push({x:t[0].x,y:t[0].y})}}return t},s=function(e){var r=e.points;return x({closed:!0,points:r})},u=function(e){var r=e.points;return x({closed:!1,points:r})},x=function(e){var r=e.closed,t=e.points,a=t.split(/[\s,]+/).map(function(e){return parseFloat(e)}),c=a.reduce(function(e,r,t){return t%2===0?e.push({x:r}):e[(t-1)/2].y=r,e},[]);return r&&c.push(c[0]),c},n=function(e){var r=e.height,t=e.rx,a=e.ry,c=e.width,y=e.x,i=e.y;return t||a?f({height:r,rx:t?t:a,ry:a?a:t,width:c,x:y,y:i}):o({height:r,width:c,x:y,y:i})},o=function(e){var r=e.height,t=e.width,a=e.x,c=e.y;return[{x:a,y:c},{x:a+t,y:c},{x:a+t,y:c+r},{x:a,y:c+r},{x:a,y:c}]},f=function(e){var r=e.height,t=e.rx,a=e.ry,c=e.width,y=e.x,i=e.y,s={type:"arc",rx:t,ry:a,sweepFlag:1};return[{x:y+t,y:i},{x:y+c-t,y:i},{x:y+c,y:i+a,curve:s},{x:y+c,y:i+r-a},{x:y+c-t,y:i+r,curve:s},{x:y+t,y:i+r},{x:y,y:i+r-a,curve:s},{x:y,y:i+a},{x:y+t,y:i,curve:s}]};r["default"]=t},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t=function(e){var r="",t=0,a=e[t],c=!0,y=!1,i=void 0;try{for(var s,u=e[Symbol.iterator]();!(c=(s=u.next()).done);c=!0){var x=s.value,n=0===t,o=t===e.length-1,f=n?null:e[t-1],h=x.curve,v=void 0===h?!1:h,l=x.x,p=x.y;if(n)r+="M"+l+","+p;else if(v){switch(v.type){case"arc":var d=x.curve,b=d.largeArcFlag,g=void 0===b?0:b,w=d.rx,M=d.ry,k=d.sweepFlag,m=void 0===k?0:k,A=d.xAxisRotation,F=void 0===A?0:A;r+="A"+w+","+M+","+F+","+g+","+m+","+l+","+p;break;case"cubic":var _=x.curve,P=_.x1,S=_.y1,j=_.x2,q=_.y2;r+="C"+P+","+S+","+j+","+q+","+l+","+p;break;case"quadratic":var V=x.curve,Z=V.x1,N=V.y1;r+="Q"+Z+","+N+","+l+","+p}o&&l===a.x&&p===a.y&&(r+="Z")}else o&&l===a.x&&p===a.y?r+="Z":l!==f.x&&p!==f.y?r+="L"+l+","+p:l!==f.x?r+="H"+l:p!==f.y&&(r+="V"+p);t++}}catch(O){y=!0,i=O}finally{try{!c&&u["return"]&&u["return"]()}finally{if(y)throw i}}return r};r["default"]=t}])});