svg-path-commander 0.1.20 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * SVGPathCommander v0.1.20 (http://thednp.github.io/svg-path-commander)
2
+ * SVGPathCommander v0.1.21 (http://thednp.github.io/svg-path-commander)
3
3
  * Copyright 2021 © thednp
4
4
  * Licensed under MIT (https://github.com/thednp/svg-path-commander/blob/master/LICENSE)
5
5
  */
@@ -2397,9 +2397,10 @@ function transformEllipse(m, rx, ry, ax) {
2397
2397
  * @returns {[number, number]} the projected [x,y] coordinates
2398
2398
  */
2399
2399
  function projection2d(m, point2D, origin) {
2400
+ const [px, py] = point2D;
2400
2401
  const [originX, originY, originZ] = origin;
2401
2402
  const point3D = m.transformPoint({
2402
- x: point2D[0], y: point2D[1], z: 0, w: 1,
2403
+ x: px, y: py, z: 0, w: 1,
2403
2404
  });
2404
2405
 
2405
2406
  const relativePositionX = point3D.x - originX;
@@ -2617,7 +2618,7 @@ function getCubicSize(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {
2617
2618
  function getPathBBox(path) {
2618
2619
  if (!path) {
2619
2620
  return {
2620
- x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0, cx: 0, cy: 0,
2621
+ x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0, cx: 0, cy: 0, cz: 0,
2621
2622
  };
2622
2623
  }
2623
2624
  const pathCurve = pathToCurve(path);
@@ -2651,16 +2652,22 @@ function getPathBBox(path) {
2651
2652
  });
2652
2653
 
2653
2654
  // @ts-ignore
2654
- const xTop = Math.min.apply(0, X);
2655
+ // const xTop = Math.min.apply(0, X);
2656
+ const xTop = Math.min(...X);
2655
2657
  // @ts-ignore
2656
- const yTop = Math.min.apply(0, Y);
2658
+ // const yTop = Math.min.apply(0, Y);
2659
+ const yTop = Math.min(...Y);
2657
2660
  // @ts-ignore
2658
- const xBot = Math.max.apply(0, X);
2661
+ // const xBot = Math.max.apply(0, X);
2662
+ const xBot = Math.max(...X);
2659
2663
  // @ts-ignore
2660
- const yBot = Math.max.apply(0, Y);
2664
+ // const yBot = Math.max.apply(0, Y);
2665
+ const yBot = Math.max(...Y);
2661
2666
  const width = xBot - xTop;
2662
2667
  const height = yBot - yTop;
2663
2668
 
2669
+ // an estimted guess
2670
+ const cz = Math.max(width, height) + Math.min(width, height) / 2;
2664
2671
  return {
2665
2672
  width,
2666
2673
  height,
@@ -2670,6 +2677,7 @@ function getPathBBox(path) {
2670
2677
  y2: yBot,
2671
2678
  cx: xTop + width / 2,
2672
2679
  cy: yTop + height / 2,
2680
+ cz,
2673
2681
  };
2674
2682
  }
2675
2683
 
@@ -2697,9 +2705,15 @@ class SVGPathCommander {
2697
2705
  */
2698
2706
  this.segments = parsePathString(pathValue);
2699
2707
  const BBox = getPathBBox(this.segments);
2700
- const { width, height } = BBox;
2701
-
2702
- // set instance options
2708
+ const {
2709
+ width,
2710
+ height,
2711
+ cx,
2712
+ cy,
2713
+ cz,
2714
+ } = BBox;
2715
+
2716
+ // set instance options.round
2703
2717
  let { round, origin } = defaultOptions;
2704
2718
  const { round: roundOption, origin: originOption } = instanceOptions;
2705
2719
 
@@ -2710,15 +2724,16 @@ class SVGPathCommander {
2710
2724
  round = roundOption;
2711
2725
  }
2712
2726
 
2713
- if (Array.isArray(originOption) && [2, 3].includes(originOption.length)
2714
- && originOption.map((n) => !Number.isNaN(n))) {
2715
- origin = [...originOption.map(Number)];
2727
+ // set instance options.origin
2728
+ if (Array.isArray(originOption) && originOption.length >= 2) {
2729
+ const [originX, originY, originZ] = originOption.map(Number);
2730
+ origin = [
2731
+ !Number.isNaN(originX) ? originX : cx,
2732
+ !Number.isNaN(originY) ? originY : cy,
2733
+ originZ || cz,
2734
+ ];
2716
2735
  } else {
2717
- // determine a transform origin
2718
- const { cx, cy } = BBox;
2719
- // an estimted guess
2720
- const originZ = Math.max(width, height) + Math.min(width, height) / 2;
2721
- origin = [cx, cy, originZ];
2736
+ origin = [cx, cy, cz];
2722
2737
  }
2723
2738
 
2724
2739
  /**
@@ -2726,9 +2741,6 @@ class SVGPathCommander {
2726
2741
  * @default 4
2727
2742
  */
2728
2743
  this.round = round;
2729
- /**
2730
- * @default [0,0]
2731
- */
2732
2744
  this.origin = origin;
2733
2745
 
2734
2746
  return this;
@@ -2844,7 +2856,16 @@ class SVGPathCommander {
2844
2856
 
2845
2857
  // if origin is not specified
2846
2858
  // it's important that we have one
2847
- if (!transform.origin) {
2859
+ const { origin } = transform;
2860
+ if (origin && origin.length >= 2) {
2861
+ const [originX, originY, originZ] = origin.map(Number);
2862
+ const [cx, cy, cz] = this.origin;
2863
+ transform.origin = [
2864
+ !Number.isNaN(originX) ? originX : cx,
2865
+ !Number.isNaN(originY) ? originY : cy,
2866
+ originZ || cz,
2867
+ ];
2868
+ } else {
2848
2869
  // @ts-ignore
2849
2870
  transform.origin = { ...this.origin };
2850
2871
  }
@@ -3314,7 +3335,7 @@ const Util = {
3314
3335
  options: defaultOptions,
3315
3336
  };
3316
3337
 
3317
- var version = "0.1.20";
3338
+ var version = "0.1.21";
3318
3339
 
3319
3340
  // @ts-ignore
3320
3341
 
@@ -1,2 +1,2 @@
1
- // SVGPathCommander v0.1.20 | thednp © 2021 | MIT-License
2
- const t={origin:[0,0,0],round:4},e={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function r(t){let r=t.pathValue[t.segmentStart],n=r.toLowerCase(),{data:s}=t;for("m"===n&&s.length>2&&(t.segments.push([r,s[0],s[1]]),s=s.slice(2),n="l",r="m"===r?"l":"L");s.length>=e[n]&&(t.segments.push([r,...s.splice(0,e[n])]),e[n]););}function n(t){const{index:e}=t,r=t.pathValue.charCodeAt(e);return 48===r?(t.param=0,void(t.index+=1)):49===r?(t.param=1,void(t.index+=1)):void(t.err=`Invalid path value: invalid Arc flag "${r}", expecting 0 or 1 at index ${e}`)}function s(t){return t>=48&&t<=57}function a(t){const{max:e,pathValue:r,index:n}=t;let a,i=n,m=!1,o=!1,c=!1,l=!1;if(i>=e)t.err=`Invalid path value at ${i}: missing param ${r[i]}`;else if(a=r.charCodeAt(i),43!==a&&45!==a||(i+=1,a=i<e?r.charCodeAt(i):0),s(a)||46===a){if(46!==a){if(m=48===a,i+=1,a=i<e?r.charCodeAt(i):0,m&&i<e&&a&&s(a))return void(t.err=`Invalid path value at index ${n}: ${r[n]} illegal number`);for(;i<e&&s(r.charCodeAt(i));)i+=1,o=!0;a=i<e?r.charCodeAt(i):0}if(46===a){for(l=!0,i+=1;s(r.charCodeAt(i));)i+=1,c=!0;a=i<e?r.charCodeAt(i):0}if(101===a||69===a){if(l&&!o&&!c)return void(t.err=`Invalid path value at index ${i}: ${r[i]} invalid float exponent`);if(i+=1,a=i<e?r.charCodeAt(i):0,43!==a&&45!==a||(i+=1),!(i<e&&s(r.charCodeAt(i))))return void(t.err=`Invalid path value at index ${i}: ${r[i]} invalid float exponent`);for(;i<e&&s(r.charCodeAt(i));)i+=1}t.index=i,t.param=+t.pathValue.slice(n,i)}else t.err=`Invalid path value at index ${i}: ${r[i]} is not a number`}function i(t){const{pathValue:e,max:r}=t;for(;t.index<r&&(10===(n=e.charCodeAt(t.index))||13===n||8232===n||8233===n||32===n||9===n||11===n||12===n||160===n||n>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(n)>=0);)t.index+=1;var n}function m(t){return t>=48&&t<=57||43===t||45===t||46===t}function o(t){const{max:s,pathValue:o,index:c}=t,l=o.charCodeAt(c),u=e[o[c].toLowerCase()];if(t.segmentStart=c,function(t){switch(32|t){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:return!0;default:return!1}}(l))if(t.index+=1,i(t),t.data=[],u){for(;;){for(let e=u;e>0;e-=1){if(97!=(32|l)||3!==e&&4!==e?a(t):n(t),t.err.length)return;t.data.push(t.param),i(t),t.index<s&&44===o.charCodeAt(t.index)&&(t.index+=1,i(t))}if(t.index>=t.max)break;if(!m(o.charCodeAt(t.index)))break}r(t)}else r(t);else t.err=`Invalid path value: ${o[c]} not a path command`}function c(t){return t.map(t=>Array.isArray(t)?[...t]:t)}function l(t){this.segments=[],this.pathValue=t,this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}function u(t){return Array.isArray(t)&&t.every(t=>{const r=t[0].toLowerCase();return e[r]===t.length-1&&"achlmqstvz".includes(r)})}function h(t){if(Array.isArray(t)&&u(t))return c(t);const e=new l(t);for(i(e);e.index<e.max&&!e.err.length;)o(e);return e.err.length?e.segments=[]:e.segments.length&&("mM".includes(e.segments[0][0])?e.segments[0][0]="M":(e.err="Invalid path value: missing M/m",e.segments=[])),e.segments}function f(t){return u(t)&&t.every(t=>t[0]===t[0].toUpperCase())}function y(t){if(Array.isArray(t)&&f(t))return c(t);const e=h(t);let r=0,n=0,s=0,a=0;return e.map(t=>{const e=t.slice(1).map(Number),[i]=t,m=i.toUpperCase();if("M"===i)return[r,n]=e,s=r,a=n,["M",r,n];let o=[];if(i!==m)switch(m){case"A":o=[m,e[0],e[1],e[2],e[3],e[4],e[5]+r,e[6]+n];break;case"V":o=[m,e[0]+n];break;case"H":o=[m,e[0]+r];break;default:o=[m,...e.map((t,e)=>t+(e%2?n:r))]}else o=[m,...e];const c=o.length;switch(m){case"Z":r=s,n=a;break;case"H":[,r]=o;break;case"V":[,n]=o;break;default:r=o[c-2],n=o[c-1],"M"===m&&(s=r,a=n)}return o})}function p(t){return u(t)&&t.slice(1).every(t=>t[0]===t[0].toLowerCase())}function x(t){if(p(t))return c(t);const e=h(t);let r=0,n=0,s=0,a=0;return e.map(t=>{const e=t.slice(1).map(Number),[i]=t,m=i.toLowerCase();if("M"===i)return[r,n]=e,s=r,a=n,["M",r,n];let o=[];if(i!==m)switch(m){case"a":o=[m,e[0],e[1],e[2],e[3],e[4],e[5]-r,e[6]-n];break;case"v":o=[m,e[0]-n];break;case"h":o=[m,e[0]-r];break;default:o=[m,...e.map((t,e)=>t-(e%2?n:r))],"m"===m&&([r,n]=e,s=r,a=n)}else"m"===i&&(s=e[0]+r,a=e[1]+n),o=[m,...e];const c=o.length;switch(m){case"z":r=s,n=a;break;case"h":r+=o[1];break;case"v":n+=o[1];break;default:r+=o[c-2],n+=o[c-1]}return o})}function d(t,e,r){if(t[r].length>7){t[r].shift();const n=t[r];let s=r;for(;n.length;)e[r]="A",t.splice(s+=1,0,["C",...n.splice(0,6)]);t.splice(r,1)}}function g(t,e,r){const[n]=t,{x1:s,y1:a,x2:i,y2:m}=e,o=t.slice(1).map(Number);let c=t;if("TQ".includes(n)||(e.qx=null,e.qy=null),"H"===n)c=["L",t[1],a];else if("V"===n)c=["L",s,t[1]];else if("S"===n){const{x1:t,y1:n}=function(t,e,r,n,s){return"CS".includes(s)?{x1:2*t-r,y1:2*e-n}:{x1:t,y1:e}}(s,a,i,m,r);e.x1=t,e.y1=n,c=["C",t,n,...o]}else if("T"===n){const{qx:t,qy:n}=function(t,e,r,n,s){return"QT".includes(s)?{qx:2*t-r,qy:2*e-n}:{qx:t,qy:e}}(s,a,e.qx,e.qy,r);e.qx=t,e.qy=n,c=["Q",t,n,...o]}else if("Q"===n){const[t,r]=o;e.qx=t,e.qy=r}return c}function M(t){return f(t)&&t.every(t=>"ACLMQZ".includes(t[0]))}const b={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function v(t){if(M(t))return c(t);const e=y(t),r={...b},n=[],s=e.length;let a="",i="";for(let t=0;t<s;t+=1){[a]=e[t],n[t]=a,t&&(i=n[t-1]),e[t]=g(e[t],r,i);const s=e[t],m=s.length;r.x1=+s[m-2],r.y1=+s[m-1],r.x2=+s[m-4]||r.x1,r.y2=+s[m-3]||r.y1}return e}function w(t){const e=h(t),r=v(e),{length:n}=e,s="Z"===r.slice(-1)[0][0],a=s?n-2:n-1,[i,m]=r[0].slice(1),[o,c]=r[a].slice(-2);return s&&i===o&&m===c?e.slice(0,-1):e}function A(t){return u(t)&&t.every(t=>"MC".includes(t[0]))}function N(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function C(t,e,r,n,s,a,i,m,o,c){let l=t,u=e,h=r,f=n,y=m,p=o;const x=120*Math.PI/180,d=Math.PI/180*(+s||0);let g,M,b,v,w,A=[];if(c)[M,b,v,w]=c;else{g=N(l,u,-d),l=g.x,u=g.y,g=N(y,p,-d),y=g.x,p=g.y;const t=(l-y)/2,e=(u-p)/2;let r=t*t/(h*h)+e*e/(f*f);r>1&&(r=Math.sqrt(r),h*=r,f*=r);const n=h*h,s=f*f,m=(a===i?-1:1)*Math.sqrt(Math.abs((n*s-n*e*e-s*t*t)/(n*e*e+s*t*t)));v=m*h*e/f+(l+y)/2,w=m*-f*t/h+(u+p)/2,M=(Math.asin((u-w)/f)*10**9>>0)/10**9,b=(Math.asin((p-w)/f)*10**9>>0)/10**9,M=l<v?Math.PI-M:M,b=y<v?Math.PI-b:b,M<0&&(M=2*Math.PI+M),b<0&&(b=2*Math.PI+b),i&&M>b&&(M-=2*Math.PI),!i&&b>M&&(b-=2*Math.PI)}let k=b-M;if(Math.abs(k)>x){const t=b,e=y,r=p;b=M+x*(i&&b>M?1:-1),y=v+h*Math.cos(b),p=w+f*Math.sin(b),A=C(y,p,h,f,s,0,i,e,r,[b,t,v,w])}k=b-M;const S=Math.cos(M),q=Math.sin(M),P=Math.cos(b),I=Math.sin(b),T=Math.tan(k/4),V=4/3*h*T,$=4/3*f*T,j=[l,u],z=[l+V*q,u-$*S],E=[y+V*I,p-$*P],L=[y,p];if(z[0]=2*j[0]-z[0],z[1]=2*j[1]-z[1],c)return[...z,...E,...L,...A];A=[...z,...E,...L,...A];const O=[];for(let t=0,e=A.length;t<e;t+=1)O[t]=t%2?N(A[t-1],A[t],d).y:N(A[t],A[t+1],d).x;return O}function k(t,e,r,n,s,a){return[1/3*t+2/3*r,1/3*e+2/3*n,1/3*s+2/3*r,1/3*a+2/3*n,s,a]}function S(t,e,r,n,s,a,i,m,o){const c=1-o;return{x:c**3*t+c*c*3*o*r+3*c*o*o*s+o**3*i,y:c**3*e+c*c*3*o*n+3*c*o*o*a+o**3*m}}function q(t,e,r){const[n,s]=t,[a,i]=e;return[n+(a-n)*r,s+(i-s)*r]}function P(t,e,r,n){const s=.5,a=[t,e],i=[r,n],m=q(a,i,s),o=q(i,m,s),c=q(m,o,s),l=q(o,c,s),u=q(c,l,s),h=S(...[...a,...m,...c,...u,s]),f=S(...[...u,...l,...o,...i,0]);return[h.x,h.y,f.x,f.y,r,n]}function I(t,e){const[r]=t,n=t.slice(1).map(t=>+t),[s,a]=n;let i;const{x1:m,y1:o,x:c,y:l}=e;switch("TQ".includes(r)||(e.qx=null,e.qy=null),r){case"M":return e.x=s,e.y=a,t;case"A":return i=[m,o,...n],["C",...C(...i)];case"Q":return e.qx=s,e.qy=a,i=[m,o,...n],["C",...k(...i)];case"L":return["C",...P(m,o,s,a)];case"Z":return["C",...P(m,o,c,l)]}return t}function T(t){if(A(t))return c(t);const e=w(v(t)),r={...b},n=[];let s="",a=e.length;for(let t=0;t<a;t+=1){[s]=e[t],n[t]=s,e[t]=I(e[t],r),d(e,n,t),a=e.length;const i=e[t],m=i.length;r.x1=+i[m-2],r.y1=+i[m-1],r.x2=+i[m-4]||r.x1,r.y2=+i[m-3]||r.y1}return e}function V(e,r){let{round:n}=t;if(!1===r||!1===n)return c(e);n=r>=1?r:n;const s=n>=1?10**n:1;return e.map(t=>{const e=t.slice(1).map(Number).map(t=>t%1==0?t:Math.round(t*s)/s);return[t[0],...e]})}function $(t,e){return V(t,e).map(t=>t[0]+t.slice(1).join(" ")).join("")}function j(t){const e=y(t),r="Z"===e.slice(-1)[0][0],n=v(e).map((t,r)=>{const[n,s]=t.slice(-2).map(Number);return{seg:e[r],n:t,c:e[r][0],x:n,y:s}}).map((t,e,n)=>{const s=t.seg,a=t.n,i=e&&n[e-1],m=n[e+1]&&n[e+1],o=t.c,c=n.length,l=e?n[e-1].x:n[c-1].x,u=e?n[e-1].y:n[c-1].y;let h=[];switch(o){case"M":h=r?["Z"]:[o,l,u];break;case"A":h=[o,...s.slice(1,-3),1===s[5]?0:1,l,u];break;case"C":h=m&&"S"===m.c?["S",s[1],s[2],l,u]:[o,s[3],s[4],s[1],s[2],l,u];break;case"S":h=i&&"CS".includes(i.c)&&(!m||m&&"S"!==m.c)?["C",a[3],a[4],a[1],a[2],l,u]:[o,a[1],a[2],l,u];break;case"Q":h=m&&"T"===m.c?["T",l,u]:[o,...s.slice(1,-2),l,u];break;case"T":h=i&&"QT".includes(i.c)&&(!m||m&&"T"!==m.c)?["Q",a[1],a[2],l,u]:[o,l,u];break;case"Z":h=["M",l,u];break;case"H":h=[o,l];break;case"V":h=[o,u];break;default:h=[o,...s.slice(1,-2),l,u]}return h});return r?n.reverse():[n[0],...n.slice(1).reverse()]}function z(t){return $(y(t),0).replace(/(m|M)/g,"|$1").split("|").map(t=>t.trim()).filter(t=>t)}function E(t,e,r,n){const[s]=t,a=t=>Math.round(1e4*t)/1e4,i=t.slice(1).map(t=>+t),m=e.slice(1).map(t=>+t),{x1:o,y1:c,x2:l,y2:u,x:h,y:f}=r;let y=t;const[p,x]=m.slice(-2);if("TQ".includes(s)||(r.qx=null,r.qy=null),["V","H","S","T","Z"].includes(s))y=[s,...i];else if("L"===s)a(h)===a(p)?y=["V",x]:a(f)===a(x)&&(y=["H",p]);else if("C"===s){const[t,e]=m;"CS".includes(n)&&a(t)===a(2*o-l)&&a(e)===a(2*c-u)&&(y=["S",...m.slice(-4)]),r.x1=t,r.y1=e}else if("Q"===s){const[t,e]=m;r.qx=t,r.qy=e,"QT".includes(n)&&a(t)===a(2*o-l)&&a(e)===a(2*c-u)&&(y=["T",...m.slice(-2)])}return y}function L(t,e){const r=y(t),n=v(r),s={...b},a=[],i=r.length;let m="",o="",c=0,l=0,u=0,h=0;for(let t=0;t<i;t+=1){[m]=r[t],a[t]=m,t&&(o=a[t-1]),r[t]=E(r[t],n[t],s,o);const e=r[t],i=e.length;switch(s.x1=+e[i-2],s.y1=+e[i-1],s.x2=+e[i-4]||s.x1,s.y2=+e[i-3]||s.y1,m){case"Z":c=u,l=h;break;case"H":[,c]=e;break;case"V":[,l]=e;break;default:[c,l]=e.slice(-2).map(Number),"M"===m&&(u=c,h=l)}s.x=c,s.y=l}const f=V(r,e),p=V(x(r),e);return f.map((t,e)=>e?t.join("").length<p[e].join("").length?t:p[e]:t)}function O(t){const e=new J,r=Array.from(t);if(!r.every(t=>!Number.isNaN(t)))throw TypeError(`CSSMatrix: "${t}" must only have numbers.`);if(16===r.length){const[t,n,s,a,i,m,o,c,l,u,h,f,y,p,x,d]=r;e.m11=t,e.a=t,e.m21=i,e.c=i,e.m31=l,e.m41=y,e.e=y,e.m12=n,e.b=n,e.m22=m,e.d=m,e.m32=u,e.m42=p,e.f=p,e.m13=s,e.m23=o,e.m33=h,e.m43=x,e.m14=a,e.m24=c,e.m34=f,e.m44=d}else{if(6!==r.length)throw new TypeError("CSSMatrix: expecting an Array of 6/16 values.");{const[t,n,s,a,i,m]=r;e.m11=t,e.a=t,e.m12=n,e.b=n,e.m21=s,e.c=s,e.m22=a,e.d=a,e.m41=i,e.e=i,e.m42=m,e.f=m}}return e}function Q(t){const e=Object.keys(new J);if("object"==typeof t&&e.every(e=>e in t))return O([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44]);throw TypeError(`CSSMatrix: "${t}" is not a DOMMatrix / CSSMatrix / JSON compatible object.`)}function Z(t){if("string"!=typeof t)throw TypeError(`CSSMatrix: "${t}" is not a string.`);const e=String(t).replace(/\s/g,"");let r=new J;const n=`CSSMatrix: invalid transform string "${t}"`;return e.split(")").filter(t=>t).forEach(t=>{const[e,s]=t.split("(");if(!s)throw TypeError(n);const a=s.split(",").map(t=>t.includes("rad")?parseFloat(t)*(180/Math.PI):parseFloat(t)),[i,m,o,c]=a,l=[i,m,o],u=[i,m,o,c];if("perspective"===e&&i&&[m,o].every(t=>void 0===t))r.m34=-1/i;else if(e.includes("matrix")&&[6,16].includes(a.length)&&a.every(t=>!Number.isNaN(+t))){const t=a.map(t=>Math.abs(t)<1e-6?0:t);r=r.multiply(O(t))}else if("translate3d"===e&&l.every(t=>!Number.isNaN(+t)))r=r.translate(i,m,o);else if("translate"===e&&i&&void 0===o)r=r.translate(i,m||0,0);else if("rotate3d"===e&&u.every(t=>!Number.isNaN(+t))&&c)r=r.rotateAxisAngle(i,m,o,c);else if("rotate"===e&&i&&[m,o].every(t=>void 0===t))r=r.rotate(0,0,i);else if("scale3d"===e&&l.every(t=>!Number.isNaN(+t))&&l.some(t=>1!==t))r=r.scale(i,m,o);else if("scale"!==e||Number.isNaN(i)||1===i||void 0!==o)if("skew"===e&&i&&void 0===o)r=r.skewX(i),r=m?r.skewY(m):r;else{if(!(/[XYZ]/.test(e)&&i&&[m,o].every(t=>void 0===t)&&["translate","rotate","scale","skew"].some(t=>e.includes(t))))throw TypeError(n);if(["skewX","skewY"].includes(e))r=r[e](i);else{const t=e.replace(/[XYZ]/,""),n=e.replace(t,""),s=["X","Y","Z"].indexOf(n),a=[0===s?i:0,1===s?i:0,2===s?i:0];r=r[t](...a)}}else{const t=Number.isNaN(+m)?i:m;r=r.scale(i,t,1)}}),r}function D(t,e,r){const n=new J;return n.m41=t,n.e=t,n.m42=e,n.f=e,n.m43=r,n}function X(t,e,r){const n=new J,s=Math.PI/180,a=t*s,i=e*s,m=r*s,o=Math.cos(a),c=-Math.sin(a),l=Math.cos(i),u=-Math.sin(i),h=Math.cos(m),f=-Math.sin(m),y=l*h,p=-l*f;n.m11=y,n.a=y,n.m12=p,n.b=p,n.m13=u;const x=c*u*h+o*f;n.m21=x,n.c=x;const d=o*h-c*u*f;return n.m22=d,n.d=d,n.m23=-c*l,n.m31=c*f-o*u*h,n.m32=c*h+o*u*f,n.m33=o*l,n}function H(t,e,r,n){const s=new J,a=n*(Math.PI/360),i=Math.sin(a),m=Math.cos(a),o=i*i,c=Math.sqrt(t*t+e*e+r*r);let l=t,u=e,h=r;0===c?(l=0,u=0,h=1):(l/=c,u/=c,h/=c);const f=l*l,y=u*u,p=h*h,x=1-2*(y+p)*o;s.m11=x,s.a=x;const d=2*(l*u*o+h*i*m);s.m12=d,s.b=d,s.m13=2*(l*h*o-u*i*m);const g=2*(u*l*o-h*i*m);s.m21=g,s.c=g;const M=1-2*(p+f)*o;return s.m22=M,s.d=M,s.m23=2*(u*h*o+l*i*m),s.m31=2*(h*l*o+u*i*m),s.m32=2*(h*u*o-l*i*m),s.m33=1-2*(f+y)*o,s}function Y(t,e,r){const n=new J;return n.m11=t,n.a=t,n.m22=e,n.d=e,n.m33=r,n}function R(t){const e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m21=n,e.c=n,e}function F(t){const e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m12=n,e.b=n,e}function B(t,e){return O([e.m11*t.m11+e.m12*t.m21+e.m13*t.m31+e.m14*t.m41,e.m11*t.m12+e.m12*t.m22+e.m13*t.m32+e.m14*t.m42,e.m11*t.m13+e.m12*t.m23+e.m13*t.m33+e.m14*t.m43,e.m11*t.m14+e.m12*t.m24+e.m13*t.m34+e.m14*t.m44,e.m21*t.m11+e.m22*t.m21+e.m23*t.m31+e.m24*t.m41,e.m21*t.m12+e.m22*t.m22+e.m23*t.m32+e.m24*t.m42,e.m21*t.m13+e.m22*t.m23+e.m23*t.m33+e.m24*t.m43,e.m21*t.m14+e.m22*t.m24+e.m23*t.m34+e.m24*t.m44,e.m31*t.m11+e.m32*t.m21+e.m33*t.m31+e.m34*t.m41,e.m31*t.m12+e.m32*t.m22+e.m33*t.m32+e.m34*t.m42,e.m31*t.m13+e.m32*t.m23+e.m33*t.m33+e.m34*t.m43,e.m31*t.m14+e.m32*t.m24+e.m33*t.m34+e.m34*t.m44,e.m41*t.m11+e.m42*t.m21+e.m43*t.m31+e.m44*t.m41,e.m41*t.m12+e.m42*t.m22+e.m43*t.m32+e.m44*t.m42,e.m41*t.m13+e.m42*t.m23+e.m43*t.m33+e.m44*t.m43,e.m41*t.m14+e.m42*t.m24+e.m43*t.m34+e.m44*t.m44])}class J{constructor(...t){const e=this;if(e.a=1,e.b=0,e.c=0,e.d=1,e.e=0,e.f=0,e.m11=1,e.m12=0,e.m13=0,e.m14=0,e.m21=0,e.m22=1,e.m23=0,e.m24=0,e.m31=0,e.m32=0,e.m33=1,e.m34=0,e.m41=0,e.m42=0,e.m43=0,e.m44=1,t&&t.length){const r=[16,6].some(e=>e===t.length)?t:t[0];return e.setMatrixValue(r)}return e}set isIdentity(t){this.isIdentity=t}get isIdentity(){const t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44}get is2D(){const t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44}set is2D(t){this.is2D=t}setMatrixValue(t){return[Array,Float64Array,Float32Array].some(e=>t instanceof e)?O(t):"string"==typeof t&&t.length&&"none"!==t?Z(t):"object"==typeof t?Q(t):this}toArray(){const t=this;let e;return e=t.is2D?[t.a,t.b,t.c,t.d,t.e,t.f]:[t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44],e.map(t=>Math.abs(t)<1e-6?0:(t*10**6>>0)/10**6)}toString(){const t=this.toArray();return`${this.is2D?"matrix":"matrix3d"}(${t})`}toJSON(){const{is2D:t,isIdentity:e}=this;return{...this,is2D:t,isIdentity:e}}multiply(t){return B(this,t)}translate(t,e,r){let n=e,s=r;return void 0===s&&(s=0),void 0===n&&(n=0),B(this,D(t,n,s))}scale(t,e,r){let n=e,s=r;return void 0===n&&(n=t),void 0===s&&(s=1),B(this,Y(t,n,s))}rotate(t,e,r){let n=t,s=e,a=r;return void 0===s&&(s=0),void 0===a&&(a=n,n=0),B(this,X(n,s,a))}rotateAxisAngle(t,e,r,n){if([t,e,r,n].some(t=>Number.isNaN(t)))throw new TypeError("CSSMatrix: expecting 4 values");return B(this,H(t,e,r,n))}skewX(t){return B(this,R(t))}skewY(t){return B(this,F(t))}transformPoint(t){let e=D(t.x,t.y,t.z);return e.m44=t.w||1,e=this.multiply(e),{x:e.m41,y:e.m42,z:e.m43,w:e.m44}}transform(t){const e=this,r=e.m11*t.x+e.m12*t.y+e.m13*t.z+e.m14*t.w,n=e.m21*t.x+e.m22*t.y+e.m23*t.z+e.m24*t.w,s=e.m31*t.x+e.m32*t.y+e.m33*t.z+e.m34*t.w,a=e.m41*t.x+e.m42*t.y+e.m43*t.z+e.m44*t.w;return{x:r/a,y:n/a,z:s/a,w:a}}}Object.assign(J,{Translate:D,Rotate:X,RotateAxisAngle:H,Scale:Y,SkewX:R,SkewY:F,Multiply:B,fromArray:O,fromMatrix:Q,fromString:Z});function U(t,e,r){const[n,s,a]=r,i=t.transformPoint({x:e[0],y:e[1],z:0,w:1}),m=i.x-n,o=i.y-s,c=i.z-a;return[m*(Math.abs(a)/Math.abs(c))+n,o*(Math.abs(a)/Math.abs(c))+s]}function G(t,e){let r,n,s,a,i,m,o,l=0,u=0;const h=y(t),f=v(h),p=function(t){let e=new J;const{origin:r}=t,[n,s]=r,{translate:a}=t,{rotate:i}=t,{skew:m}=t,{scale:o}=t;return Array.isArray(a)&&a.every(t=>!Number.isNaN(+t))&&a.some(t=>0!==t)?e=e.translate(a[0]||0,a[1]||0,a[2]||0):"number"!=typeof a||Number.isNaN(+a)||(e=e.translate(a||0,0,0)),(i||m||o)&&(e=e.translate(n,s),Array.isArray(i)&&i.every(t=>!Number.isNaN(+t))&&i.some(t=>0!==t)?e=e.rotate(i[0],i[1],i[2]):"number"!=typeof i||Number.isNaN(+i)||(e=e.rotate(0,0,i)),Array.isArray(m)&&m.every(t=>!Number.isNaN(+t))&&m.some(t=>0!==t)?(e=m[0]?e.skewX(m[0]):e,e=m[1]?e.skewY(m[1]):e):"number"!=typeof m||Number.isNaN(+m)||(e=e.skewX(m||0)),Array.isArray(o)&&o.every(t=>!Number.isNaN(+t))&&o.some(t=>1!==t)?e=e.scale(o[0],o[1],o[2]):"number"!=typeof o||Number.isNaN(+o)||(e=e.scale(o||1,o||1,o||1)),e=e.translate(-n,-s)),e}(e),x=Object.keys(e),{origin:g}=e,{a:M,b:w,c:A,d:N,e:C,f:k}=p,S=[M,w,A,N,C,k],q={...b};let P=[],T=0,V="",$=[];const j=[];if(!p.isIdentity){for(r=0,s=h.length;r<s;r+=1){P=h[r],h[r]&&([V]=P),j[r]=V,"A"!==V||p.is2D&&["skewX","skewY"].find(t=>x.includes(t))||(P=I(f[r],q),h[r]=I(f[r],q),d(h,j,r),f[r]=I(f[r],q),d(f,j,r),s=Math.max(h.length,f.length)),P=f[r],T=P.length,q.x1=+P[T-2],q.y1=+P[T-1],q.x2=+P[T-4]||q.x1,q.y2=+P[T-3]||q.y1;const t={s:h[r],c:h[r][0],x:q.x1,y:q.y1};$=[...$,t]}return $.map(t=>{switch(V=t.c,P=t.s,V){case"A":return o=function(t,e,r,n){const s=Math.cos(n*Math.PI/180),a=Math.sin(n*Math.PI/180),i=[e*(t[0]*s+t[2]*a),e*(t[1]*s+t[3]*a),r*(-t[0]*a+t[2]*s),r*(-t[1]*a+t[3]*s)],m=i[0]*i[0]+i[2]*i[2],o=i[1]*i[1]+i[3]*i[3];let c=((i[0]-i[3])*(i[0]-i[3])+(i[2]+i[1])*(i[2]+i[1]))*((i[0]+i[3])*(i[0]+i[3])+(i[2]-i[1])*(i[2]-i[1]));const l=(m+o)/2;if(c<1e-9*l){const t=Math.sqrt(l);return{rx:t,ry:t,ax:0}}const u=i[0]*i[1]+i[2]*i[3];c=Math.sqrt(c);const h=l+c/2,f=l-c/2;let y,p,x=Math.abs(u)<1e-9&&Math.abs(h-o)<1e-9?90:Math.atan(Math.abs(u)>Math.abs(h-o)?(h-m)/u:u/(h-o)*180)/Math.PI;return x>=0?(y=Math.sqrt(h),p=Math.sqrt(f)):(x+=90,y=Math.sqrt(f),p=Math.sqrt(h)),{rx:y,ry:p,ax:x}}(S,P[1],P[2],P[3]),S[0]*S[3]-S[1]*S[2]<0&&(P[5]=P[5]?0:1),[i,m]=U(p,[+P[6],+P[7]],g),P=l===i&&u===m||o.rx<1e-9*o.ry||o.ry<1e-9*o.rx?["L",i,m]:[V,o.rx,o.ry,o.ax,P[4],P[5],i,m],l=i,u=m,P;case"L":case"H":case"V":return[i,m]=U(p,[t.x,t.y],g),l!==i&&u!==m?P=["L",i,m]:u===m?P=["H",i]:l===i&&(P=["V",m]),l=i,u=m,P;default:for(n=1,a=P.length;n<a;n+=2)[l,u]=U(p,[+P[n],+P[n+1]],g),P[n]=l,P[n+1]=u;return P}})}return c(h)}function K(t){if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0,cx:0,cy:0};const e=T(t);let r=0,n=0,s=[],a=[];e.forEach(t=>{const[e,i]=t.slice(-2).map(Number);if("M"===t[0])r=e,n=i,s.push(e),a.push(i);else{const m=function(t,e,r,n,s,a,i,m){let o=s-2*r+t-(i-2*s+r),c=2*(r-t)-2*(s-r),l=t-r,u=(-c+Math.sqrt(c*c-4*o*l))/2/o,h=(-c-Math.sqrt(c*c-4*o*l))/2/o;const f=[e,m],y=[t,i];let p;return Math.abs(u)>"1e12"&&(u=.5),Math.abs(h)>"1e12"&&(h=.5),u>0&&u<1&&(p=S(t,e,r,n,s,a,i,m,u),y.push(p.x),f.push(p.y)),h>0&&h<1&&(p=S(t,e,r,n,s,a,i,m,h),y.push(p.x),f.push(p.y)),o=a-2*n+e-(m-2*a+n),c=2*(n-e)-2*(a-n),l=e-n,u=(-c+Math.sqrt(c*c-4*o*l))/2/o,h=(-c-Math.sqrt(c*c-4*o*l))/2/o,Math.abs(u)>"1e12"&&(u=.5),Math.abs(h)>"1e12"&&(h=.5),u>0&&u<1&&(p=S(t,e,r,n,s,a,i,m,u),y.push(p.x),f.push(p.y)),h>0&&h<1&&(p=S(t,e,r,n,s,a,i,m,h),y.push(p.x),f.push(p.y)),{min:{x:Math.min.apply(0,y),y:Math.min.apply(0,f)},max:{x:Math.max.apply(0,y),y:Math.max.apply(0,f)}}}(...[r,n,...t.slice(1)]);s=[...s,m.min.x,m.max.x],a=[...a,m.min.y,m.max.y],r=e,n=i}});const i=Math.min.apply(0,s),m=Math.min.apply(0,a),o=Math.max.apply(0,s),c=Math.max.apply(0,a),l=o-i,u=c-m;return{width:l,height:u,x:i,y:m,x2:o,y2:c,cx:i+l/2,cy:m+u/2}}Object.assign(J,{Version:"0.0.24"});class W{constructor(e,r){const n=r||{};this.segments=h(e);const s=K(this.segments),{width:a,height:i}=s;let{round:m,origin:o}=t;const{round:c,origin:l}=n;if("auto"===c){const t=(""+Math.floor(Math.max(a,i))).length;m=t>=4?0:4-t}else(Number.isInteger(c)&&c>=1||!1===c)&&(m=c);if(Array.isArray(l)&&[2,3].includes(l.length)&&l.map(t=>!Number.isNaN(t)))o=[...l.map(Number)];else{const{cx:t,cy:e}=s;o=[t,e,Math.max(a,i)+Math.min(a,i)/2]}return this.round=m,this.origin=o,this}toAbsolute(){const{segments:t}=this;return this.segments=y(t),this}toRelative(){const{segments:t}=this;return this.segments=x(t),this}toCurve(){const{segments:t}=this;return this.segments=T(t),this}reverse(t){this.toAbsolute();const{segments:e}=this,r=z(this.toString()),n=r.length>1?r:0,s=n&&c(n).map((e,r)=>t?r?j(e):h(e):j(e));let a=[];return a=n?s.flat(1):t?e:j(e),this.segments=c(a),this}normalize(){const{segments:t}=this;return this.segments=v(t),this}optimize(){const{segments:t}=this;return this.segments=L(t,this.round),this}transform(t){if(!t||"object"!=typeof t||"object"==typeof t&&!["translate","rotate","skew","scale"].some(e=>e in t))return this;const e={};Object.keys(t).forEach(r=>{e[r]=Array.isArray(t[r])?[...t[r]]:Number(t[r])});const{segments:r}=this;return e.origin||(e.origin={...this.origin}),this.segments=G(r,e),this}flipX(){return this.transform({rotate:[180,0,0]}),this}flipY(){return this.transform({rotate:[0,180,0]}),this}toString(){return $(this.segments,this.round)}}function _(t){let e=0,r=0,n=0;return T(t).map(t=>{switch(t[0]){case"M":return[,e,r]=t,0;default:return n=function(t,e,r,n,s,a,i,m){return 3*((m-e)*(r+s)-(i-t)*(n+a)+n*(t-s)-r*(e-a)+m*(s+t/3)-i*(a+e/3))/20}(e,r,...t.slice(1)),[e,r]=t.slice(-2).map(Number),n}}).reduce((t,e)=>t+e,0)}function tt(t,e,r,n,s){return s*(s*(-3*t+9*e-9*r+3*n)+6*t-12*e+6*r)-3*t+3*e}function et(t,e,r,n,s,a,i,m,o){let c=o;(null===o||Number.isNaN(+o))&&(c=1),c>1&&(c=1),c<0&&(c=0);const l=c/2;let u=0,h=0,f=0,y=0;const p=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472];return[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816].forEach((o,c)=>{u=l*o+l,h=tt(t,r,s,i,u),f=tt(e,n,a,m,u),y+=p[c]*Math.sqrt(h*h+f*f)}),l*y}const rt={circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],rect:["width","height","x","y","rx","ry"],polygon:["points"],polyline:["points"],glyph:[]};const nt={CSSMatrix:J,parsePathString:h,isPathArray:u,isCurveArray:A,isAbsoluteArray:f,isRelativeArray:p,isNormalizedArray:M,isValidPath:function(t){if("string"!=typeof t)return!1;const e=new l(t);for(i(e);e.index<e.max&&!e.err.length;)o(e);return!e.err.length&&"mM".includes(e.segments[0][0])},pathToAbsolute:y,pathToRelative:x,pathToCurve:T,pathToString:$,getDrawDirection:function(t){return _(T(t))>=0},getPathArea:_,getPathBBox:K,getPathLength:function(t){let e=0;return T(t).forEach((t,r,n)=>{const s="M"!==t[0]?[...n[r-1].slice(-2),...t.slice(1)]:[];e+="M"===t[0]?0:et(...s)}),e},getPointAtLength:function(t,e){let r,n,s,a=0;return T(t).map((t,i,m)=>{if(n=i?[...m[i-1].slice(-2),...t.slice(1)]:t.slice(1),r=i?et(...n):0,a+=r,0===i)s={x:n[0],y:n[1]};else if(a>e&&e>a-r){const t=[...n,1-(a-e)/r];s=S(...t)}else s=null;return s}).filter(t=>t).slice(-1)[0]},clonePath:c,splitPath:z,fixPath:w,roundPath:V,optimizePath:L,reverseCurve:function(t){const e=t.slice(1).map((e,r,n)=>r?[...n[r-1].slice(-2),...e.slice(1)]:[...t[0].slice(1),...e.slice(1)]).map(t=>t.map((e,r)=>t[t.length-r-2*(1-r%2)])).reverse();return[["M",...e[0].slice(0,2)],...e.map(t=>["C",...t.slice(2)])]},reversePath:j,normalizePath:v,transformPath:G,shapeToPath:function(e,r){const n=Object.keys(rt),s=e instanceof Element;if(s&&!n.some(t=>e.tagName===t))throw TypeError(`shapeToPath: "${e}" is not SVGElement`);const a=document.createElementNS("http://www.w3.org/2000/svg","path"),i=s?e.tagName:e.type,m={};if(m.type=i,s){const t=rt[i];t.forEach(t=>{m[t]=e.getAttribute(t)}),Object.values(e.attributes).forEach(({name:e,value:r})=>{t.includes(e)||a.setAttribute(e,r)})}else Object.assign(m,e);let o;const{round:c}=t;return"circle"===i?o=$(function(t){const{cx:e,cy:r,r:n}=t;return[["M",e-n,r],["a",n,n,0,1,0,2*n,0],["a",n,n,0,1,0,-2*n,0]]}(m),c):"ellipse"===i?o=$(function(t){const{cx:e,cy:r,rx:n,ry:s}=t;return[["M",e-n,r],["a",n,s,0,1,0,2*n,0],["a",n,s,0,1,0,-2*n,0]]}(m),c):["polyline","polygon"].includes(i)?o=$(function(t){const e=[],r=t.points.split(/[\s|,]/).map(Number);let n=0;for(;n<r.length;)e.push([n?"L":"M",r[n],r[n+1]]),n+=2;return"polygon"===t.type?[...e,["z"]]:e}(m),c):"rect"===i?o=$(function(t){const e=+t.x||0,r=+t.y||0,n=+t.width,s=+t.height;let a=+t.rx,i=+t.ry;return a||i?(a=a||i,i=i||a,2*a>n&&(a-=(2*a-n)/2),2*i>s&&(i-=(2*i-s)/2),[["M",e+a,r],["h",n-2*a],["s",a,0,a,i],["v",s-2*i],["s",0,i,-a,i],["h",2*a-n],["s",-a,0,-a,-i],["v",2*i-s],["s",0,-i,a,-i]]):[["M",e,r],["h",n],["v",s],["H",e],["Z"]]}(m),c):"line"===i?o=$(function(t){const{x1:e,y1:r,x2:n,y2:s}=t;return[["M",e,r],["L",n,s]]}(m),c):"glyph"===i&&(o=s?e.getAttribute("d"):e.type),!!o&&(a.setAttribute("d",o),r&&s&&(e.before(a,e),e.remove()),a)},options:t};Object.assign(W,nt,{Version:"0.1.20"});export{W as default};
1
+ // SVGPathCommander v0.1.21 | thednp © 2021 | MIT-License
2
+ const t={origin:[0,0,0],round:4},e={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function r(t){let r=t.pathValue[t.segmentStart],n=r.toLowerCase(),{data:s}=t;for("m"===n&&s.length>2&&(t.segments.push([r,s[0],s[1]]),s=s.slice(2),n="l",r="m"===r?"l":"L");s.length>=e[n]&&(t.segments.push([r,...s.splice(0,e[n])]),e[n]););}function n(t){const{index:e}=t,r=t.pathValue.charCodeAt(e);return 48===r?(t.param=0,void(t.index+=1)):49===r?(t.param=1,void(t.index+=1)):void(t.err=`Invalid path value: invalid Arc flag "${r}", expecting 0 or 1 at index ${e}`)}function s(t){return t>=48&&t<=57}function a(t){const{max:e,pathValue:r,index:n}=t;let a,i=n,m=!1,o=!1,c=!1,l=!1;if(i>=e)t.err=`Invalid path value at ${i}: missing param ${r[i]}`;else if(a=r.charCodeAt(i),43!==a&&45!==a||(i+=1,a=i<e?r.charCodeAt(i):0),s(a)||46===a){if(46!==a){if(m=48===a,i+=1,a=i<e?r.charCodeAt(i):0,m&&i<e&&a&&s(a))return void(t.err=`Invalid path value at index ${n}: ${r[n]} illegal number`);for(;i<e&&s(r.charCodeAt(i));)i+=1,o=!0;a=i<e?r.charCodeAt(i):0}if(46===a){for(l=!0,i+=1;s(r.charCodeAt(i));)i+=1,c=!0;a=i<e?r.charCodeAt(i):0}if(101===a||69===a){if(l&&!o&&!c)return void(t.err=`Invalid path value at index ${i}: ${r[i]} invalid float exponent`);if(i+=1,a=i<e?r.charCodeAt(i):0,43!==a&&45!==a||(i+=1),!(i<e&&s(r.charCodeAt(i))))return void(t.err=`Invalid path value at index ${i}: ${r[i]} invalid float exponent`);for(;i<e&&s(r.charCodeAt(i));)i+=1}t.index=i,t.param=+t.pathValue.slice(n,i)}else t.err=`Invalid path value at index ${i}: ${r[i]} is not a number`}function i(t){const{pathValue:e,max:r}=t;for(;t.index<r&&(10===(n=e.charCodeAt(t.index))||13===n||8232===n||8233===n||32===n||9===n||11===n||12===n||160===n||n>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(n)>=0);)t.index+=1;var n}function m(t){return t>=48&&t<=57||43===t||45===t||46===t}function o(t){const{max:s,pathValue:o,index:c}=t,l=o.charCodeAt(c),u=e[o[c].toLowerCase()];if(t.segmentStart=c,function(t){switch(32|t){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:return!0;default:return!1}}(l))if(t.index+=1,i(t),t.data=[],u){for(;;){for(let e=u;e>0;e-=1){if(97!=(32|l)||3!==e&&4!==e?a(t):n(t),t.err.length)return;t.data.push(t.param),i(t),t.index<s&&44===o.charCodeAt(t.index)&&(t.index+=1,i(t))}if(t.index>=t.max)break;if(!m(o.charCodeAt(t.index)))break}r(t)}else r(t);else t.err=`Invalid path value: ${o[c]} not a path command`}function c(t){return t.map(t=>Array.isArray(t)?[...t]:t)}function l(t){this.segments=[],this.pathValue=t,this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}function u(t){return Array.isArray(t)&&t.every(t=>{const r=t[0].toLowerCase();return e[r]===t.length-1&&"achlmqstvz".includes(r)})}function h(t){if(Array.isArray(t)&&u(t))return c(t);const e=new l(t);for(i(e);e.index<e.max&&!e.err.length;)o(e);return e.err.length?e.segments=[]:e.segments.length&&("mM".includes(e.segments[0][0])?e.segments[0][0]="M":(e.err="Invalid path value: missing M/m",e.segments=[])),e.segments}function f(t){return u(t)&&t.every(t=>t[0]===t[0].toUpperCase())}function y(t){if(Array.isArray(t)&&f(t))return c(t);const e=h(t);let r=0,n=0,s=0,a=0;return e.map(t=>{const e=t.slice(1).map(Number),[i]=t,m=i.toUpperCase();if("M"===i)return[r,n]=e,s=r,a=n,["M",r,n];let o=[];if(i!==m)switch(m){case"A":o=[m,e[0],e[1],e[2],e[3],e[4],e[5]+r,e[6]+n];break;case"V":o=[m,e[0]+n];break;case"H":o=[m,e[0]+r];break;default:o=[m,...e.map((t,e)=>t+(e%2?n:r))]}else o=[m,...e];const c=o.length;switch(m){case"Z":r=s,n=a;break;case"H":[,r]=o;break;case"V":[,n]=o;break;default:r=o[c-2],n=o[c-1],"M"===m&&(s=r,a=n)}return o})}function x(t){return u(t)&&t.slice(1).every(t=>t[0]===t[0].toLowerCase())}function p(t){if(x(t))return c(t);const e=h(t);let r=0,n=0,s=0,a=0;return e.map(t=>{const e=t.slice(1).map(Number),[i]=t,m=i.toLowerCase();if("M"===i)return[r,n]=e,s=r,a=n,["M",r,n];let o=[];if(i!==m)switch(m){case"a":o=[m,e[0],e[1],e[2],e[3],e[4],e[5]-r,e[6]-n];break;case"v":o=[m,e[0]-n];break;case"h":o=[m,e[0]-r];break;default:o=[m,...e.map((t,e)=>t-(e%2?n:r))],"m"===m&&([r,n]=e,s=r,a=n)}else"m"===i&&(s=e[0]+r,a=e[1]+n),o=[m,...e];const c=o.length;switch(m){case"z":r=s,n=a;break;case"h":r+=o[1];break;case"v":n+=o[1];break;default:r+=o[c-2],n+=o[c-1]}return o})}function d(t,e,r){if(t[r].length>7){t[r].shift();const n=t[r];let s=r;for(;n.length;)e[r]="A",t.splice(s+=1,0,["C",...n.splice(0,6)]);t.splice(r,1)}}function g(t,e,r){const[n]=t,{x1:s,y1:a,x2:i,y2:m}=e,o=t.slice(1).map(Number);let c=t;if("TQ".includes(n)||(e.qx=null,e.qy=null),"H"===n)c=["L",t[1],a];else if("V"===n)c=["L",s,t[1]];else if("S"===n){const{x1:t,y1:n}=function(t,e,r,n,s){return"CS".includes(s)?{x1:2*t-r,y1:2*e-n}:{x1:t,y1:e}}(s,a,i,m,r);e.x1=t,e.y1=n,c=["C",t,n,...o]}else if("T"===n){const{qx:t,qy:n}=function(t,e,r,n,s){return"QT".includes(s)?{qx:2*t-r,qy:2*e-n}:{qx:t,qy:e}}(s,a,e.qx,e.qy,r);e.qx=t,e.qy=n,c=["Q",t,n,...o]}else if("Q"===n){const[t,r]=o;e.qx=t,e.qy=r}return c}function M(t){return f(t)&&t.every(t=>"ACLMQZ".includes(t[0]))}const b={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function v(t){if(M(t))return c(t);const e=y(t),r={...b},n=[],s=e.length;let a="",i="";for(let t=0;t<s;t+=1){[a]=e[t],n[t]=a,t&&(i=n[t-1]),e[t]=g(e[t],r,i);const s=e[t],m=s.length;r.x1=+s[m-2],r.y1=+s[m-1],r.x2=+s[m-4]||r.x1,r.y2=+s[m-3]||r.y1}return e}function N(t){const e=h(t),r=v(e),{length:n}=e,s="Z"===r.slice(-1)[0][0],a=s?n-2:n-1,[i,m]=r[0].slice(1),[o,c]=r[a].slice(-2);return s&&i===o&&m===c?e.slice(0,-1):e}function w(t){return u(t)&&t.every(t=>"MC".includes(t[0]))}function A(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function C(t,e,r,n,s,a,i,m,o,c){let l=t,u=e,h=r,f=n,y=m,x=o;const p=120*Math.PI/180,d=Math.PI/180*(+s||0);let g,M,b,v,N,w=[];if(c)[M,b,v,N]=c;else{g=A(l,u,-d),l=g.x,u=g.y,g=A(y,x,-d),y=g.x,x=g.y;const t=(l-y)/2,e=(u-x)/2;let r=t*t/(h*h)+e*e/(f*f);r>1&&(r=Math.sqrt(r),h*=r,f*=r);const n=h*h,s=f*f,m=(a===i?-1:1)*Math.sqrt(Math.abs((n*s-n*e*e-s*t*t)/(n*e*e+s*t*t)));v=m*h*e/f+(l+y)/2,N=m*-f*t/h+(u+x)/2,M=(Math.asin((u-N)/f)*10**9>>0)/10**9,b=(Math.asin((x-N)/f)*10**9>>0)/10**9,M=l<v?Math.PI-M:M,b=y<v?Math.PI-b:b,M<0&&(M=2*Math.PI+M),b<0&&(b=2*Math.PI+b),i&&M>b&&(M-=2*Math.PI),!i&&b>M&&(b-=2*Math.PI)}let k=b-M;if(Math.abs(k)>p){const t=b,e=y,r=x;b=M+p*(i&&b>M?1:-1),y=v+h*Math.cos(b),x=N+f*Math.sin(b),w=C(y,x,h,f,s,0,i,e,r,[b,t,v,N])}k=b-M;const S=Math.cos(M),q=Math.sin(M),P=Math.cos(b),I=Math.sin(b),T=Math.tan(k/4),V=4/3*h*T,z=4/3*f*T,$=[l,u],j=[l+V*q,u-z*S],E=[y+V*I,x-z*P],L=[y,x];if(j[0]=2*$[0]-j[0],j[1]=2*$[1]-j[1],c)return[...j,...E,...L,...w];w=[...j,...E,...L,...w];const O=[];for(let t=0,e=w.length;t<e;t+=1)O[t]=t%2?A(w[t-1],w[t],d).y:A(w[t],w[t+1],d).x;return O}function k(t,e,r,n,s,a){return[1/3*t+2/3*r,1/3*e+2/3*n,1/3*s+2/3*r,1/3*a+2/3*n,s,a]}function S(t,e,r,n,s,a,i,m,o){const c=1-o;return{x:c**3*t+c*c*3*o*r+3*c*o*o*s+o**3*i,y:c**3*e+c*c*3*o*n+3*c*o*o*a+o**3*m}}function q(t,e,r){const[n,s]=t,[a,i]=e;return[n+(a-n)*r,s+(i-s)*r]}function P(t,e,r,n){const s=.5,a=[t,e],i=[r,n],m=q(a,i,s),o=q(i,m,s),c=q(m,o,s),l=q(o,c,s),u=q(c,l,s),h=S(...[...a,...m,...c,...u,s]),f=S(...[...u,...l,...o,...i,0]);return[h.x,h.y,f.x,f.y,r,n]}function I(t,e){const[r]=t,n=t.slice(1).map(t=>+t),[s,a]=n;let i;const{x1:m,y1:o,x:c,y:l}=e;switch("TQ".includes(r)||(e.qx=null,e.qy=null),r){case"M":return e.x=s,e.y=a,t;case"A":return i=[m,o,...n],["C",...C(...i)];case"Q":return e.qx=s,e.qy=a,i=[m,o,...n],["C",...k(...i)];case"L":return["C",...P(m,o,s,a)];case"Z":return["C",...P(m,o,c,l)]}return t}function T(t){if(w(t))return c(t);const e=N(v(t)),r={...b},n=[];let s="",a=e.length;for(let t=0;t<a;t+=1){[s]=e[t],n[t]=s,e[t]=I(e[t],r),d(e,n,t),a=e.length;const i=e[t],m=i.length;r.x1=+i[m-2],r.y1=+i[m-1],r.x2=+i[m-4]||r.x1,r.y2=+i[m-3]||r.y1}return e}function V(e,r){let{round:n}=t;if(!1===r||!1===n)return c(e);n=r>=1?r:n;const s=n>=1?10**n:1;return e.map(t=>{const e=t.slice(1).map(Number).map(t=>t%1==0?t:Math.round(t*s)/s);return[t[0],...e]})}function z(t,e){return V(t,e).map(t=>t[0]+t.slice(1).join(" ")).join("")}function $(t){const e=y(t),r="Z"===e.slice(-1)[0][0],n=v(e).map((t,r)=>{const[n,s]=t.slice(-2).map(Number);return{seg:e[r],n:t,c:e[r][0],x:n,y:s}}).map((t,e,n)=>{const s=t.seg,a=t.n,i=e&&n[e-1],m=n[e+1]&&n[e+1],o=t.c,c=n.length,l=e?n[e-1].x:n[c-1].x,u=e?n[e-1].y:n[c-1].y;let h=[];switch(o){case"M":h=r?["Z"]:[o,l,u];break;case"A":h=[o,...s.slice(1,-3),1===s[5]?0:1,l,u];break;case"C":h=m&&"S"===m.c?["S",s[1],s[2],l,u]:[o,s[3],s[4],s[1],s[2],l,u];break;case"S":h=i&&"CS".includes(i.c)&&(!m||m&&"S"!==m.c)?["C",a[3],a[4],a[1],a[2],l,u]:[o,a[1],a[2],l,u];break;case"Q":h=m&&"T"===m.c?["T",l,u]:[o,...s.slice(1,-2),l,u];break;case"T":h=i&&"QT".includes(i.c)&&(!m||m&&"T"!==m.c)?["Q",a[1],a[2],l,u]:[o,l,u];break;case"Z":h=["M",l,u];break;case"H":h=[o,l];break;case"V":h=[o,u];break;default:h=[o,...s.slice(1,-2),l,u]}return h});return r?n.reverse():[n[0],...n.slice(1).reverse()]}function j(t){return z(y(t),0).replace(/(m|M)/g,"|$1").split("|").map(t=>t.trim()).filter(t=>t)}function E(t,e,r,n){const[s]=t,a=t=>Math.round(1e4*t)/1e4,i=t.slice(1).map(t=>+t),m=e.slice(1).map(t=>+t),{x1:o,y1:c,x2:l,y2:u,x:h,y:f}=r;let y=t;const[x,p]=m.slice(-2);if("TQ".includes(s)||(r.qx=null,r.qy=null),["V","H","S","T","Z"].includes(s))y=[s,...i];else if("L"===s)a(h)===a(x)?y=["V",p]:a(f)===a(p)&&(y=["H",x]);else if("C"===s){const[t,e]=m;"CS".includes(n)&&a(t)===a(2*o-l)&&a(e)===a(2*c-u)&&(y=["S",...m.slice(-4)]),r.x1=t,r.y1=e}else if("Q"===s){const[t,e]=m;r.qx=t,r.qy=e,"QT".includes(n)&&a(t)===a(2*o-l)&&a(e)===a(2*c-u)&&(y=["T",...m.slice(-2)])}return y}function L(t,e){const r=y(t),n=v(r),s={...b},a=[],i=r.length;let m="",o="",c=0,l=0,u=0,h=0;for(let t=0;t<i;t+=1){[m]=r[t],a[t]=m,t&&(o=a[t-1]),r[t]=E(r[t],n[t],s,o);const e=r[t],i=e.length;switch(s.x1=+e[i-2],s.y1=+e[i-1],s.x2=+e[i-4]||s.x1,s.y2=+e[i-3]||s.y1,m){case"Z":c=u,l=h;break;case"H":[,c]=e;break;case"V":[,l]=e;break;default:[c,l]=e.slice(-2).map(Number),"M"===m&&(u=c,h=l)}s.x=c,s.y=l}const f=V(r,e),x=V(p(r),e);return f.map((t,e)=>e?t.join("").length<x[e].join("").length?t:x[e]:t)}function O(t){const e=new J,r=Array.from(t);if(!r.every(t=>!Number.isNaN(t)))throw TypeError(`CSSMatrix: "${t}" must only have numbers.`);if(16===r.length){const[t,n,s,a,i,m,o,c,l,u,h,f,y,x,p,d]=r;e.m11=t,e.a=t,e.m21=i,e.c=i,e.m31=l,e.m41=y,e.e=y,e.m12=n,e.b=n,e.m22=m,e.d=m,e.m32=u,e.m42=x,e.f=x,e.m13=s,e.m23=o,e.m33=h,e.m43=p,e.m14=a,e.m24=c,e.m34=f,e.m44=d}else{if(6!==r.length)throw new TypeError("CSSMatrix: expecting an Array of 6/16 values.");{const[t,n,s,a,i,m]=r;e.m11=t,e.a=t,e.m12=n,e.b=n,e.m21=s,e.c=s,e.m22=a,e.d=a,e.m41=i,e.e=i,e.m42=m,e.f=m}}return e}function Q(t){const e=Object.keys(new J);if("object"==typeof t&&e.every(e=>e in t))return O([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44]);throw TypeError(`CSSMatrix: "${t}" is not a DOMMatrix / CSSMatrix / JSON compatible object.`)}function Z(t){if("string"!=typeof t)throw TypeError(`CSSMatrix: "${t}" is not a string.`);const e=String(t).replace(/\s/g,"");let r=new J;const n=`CSSMatrix: invalid transform string "${t}"`;return e.split(")").filter(t=>t).forEach(t=>{const[e,s]=t.split("(");if(!s)throw TypeError(n);const a=s.split(",").map(t=>t.includes("rad")?parseFloat(t)*(180/Math.PI):parseFloat(t)),[i,m,o,c]=a,l=[i,m,o],u=[i,m,o,c];if("perspective"===e&&i&&[m,o].every(t=>void 0===t))r.m34=-1/i;else if(e.includes("matrix")&&[6,16].includes(a.length)&&a.every(t=>!Number.isNaN(+t))){const t=a.map(t=>Math.abs(t)<1e-6?0:t);r=r.multiply(O(t))}else if("translate3d"===e&&l.every(t=>!Number.isNaN(+t)))r=r.translate(i,m,o);else if("translate"===e&&i&&void 0===o)r=r.translate(i,m||0,0);else if("rotate3d"===e&&u.every(t=>!Number.isNaN(+t))&&c)r=r.rotateAxisAngle(i,m,o,c);else if("rotate"===e&&i&&[m,o].every(t=>void 0===t))r=r.rotate(0,0,i);else if("scale3d"===e&&l.every(t=>!Number.isNaN(+t))&&l.some(t=>1!==t))r=r.scale(i,m,o);else if("scale"!==e||Number.isNaN(i)||1===i||void 0!==o)if("skew"===e&&i&&void 0===o)r=r.skewX(i),r=m?r.skewY(m):r;else{if(!(/[XYZ]/.test(e)&&i&&[m,o].every(t=>void 0===t)&&["translate","rotate","scale","skew"].some(t=>e.includes(t))))throw TypeError(n);if(["skewX","skewY"].includes(e))r=r[e](i);else{const t=e.replace(/[XYZ]/,""),n=e.replace(t,""),s=["X","Y","Z"].indexOf(n),a=[0===s?i:0,1===s?i:0,2===s?i:0];r=r[t](...a)}}else{const t=Number.isNaN(+m)?i:m;r=r.scale(i,t,1)}}),r}function D(t,e,r){const n=new J;return n.m41=t,n.e=t,n.m42=e,n.f=e,n.m43=r,n}function X(t,e,r){const n=new J,s=Math.PI/180,a=t*s,i=e*s,m=r*s,o=Math.cos(a),c=-Math.sin(a),l=Math.cos(i),u=-Math.sin(i),h=Math.cos(m),f=-Math.sin(m),y=l*h,x=-l*f;n.m11=y,n.a=y,n.m12=x,n.b=x,n.m13=u;const p=c*u*h+o*f;n.m21=p,n.c=p;const d=o*h-c*u*f;return n.m22=d,n.d=d,n.m23=-c*l,n.m31=c*f-o*u*h,n.m32=c*h+o*u*f,n.m33=o*l,n}function H(t,e,r,n){const s=new J,a=n*(Math.PI/360),i=Math.sin(a),m=Math.cos(a),o=i*i,c=Math.sqrt(t*t+e*e+r*r);let l=t,u=e,h=r;0===c?(l=0,u=0,h=1):(l/=c,u/=c,h/=c);const f=l*l,y=u*u,x=h*h,p=1-2*(y+x)*o;s.m11=p,s.a=p;const d=2*(l*u*o+h*i*m);s.m12=d,s.b=d,s.m13=2*(l*h*o-u*i*m);const g=2*(u*l*o-h*i*m);s.m21=g,s.c=g;const M=1-2*(x+f)*o;return s.m22=M,s.d=M,s.m23=2*(u*h*o+l*i*m),s.m31=2*(h*l*o+u*i*m),s.m32=2*(h*u*o-l*i*m),s.m33=1-2*(f+y)*o,s}function Y(t,e,r){const n=new J;return n.m11=t,n.a=t,n.m22=e,n.d=e,n.m33=r,n}function R(t){const e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m21=n,e.c=n,e}function F(t){const e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m12=n,e.b=n,e}function B(t,e){return O([e.m11*t.m11+e.m12*t.m21+e.m13*t.m31+e.m14*t.m41,e.m11*t.m12+e.m12*t.m22+e.m13*t.m32+e.m14*t.m42,e.m11*t.m13+e.m12*t.m23+e.m13*t.m33+e.m14*t.m43,e.m11*t.m14+e.m12*t.m24+e.m13*t.m34+e.m14*t.m44,e.m21*t.m11+e.m22*t.m21+e.m23*t.m31+e.m24*t.m41,e.m21*t.m12+e.m22*t.m22+e.m23*t.m32+e.m24*t.m42,e.m21*t.m13+e.m22*t.m23+e.m23*t.m33+e.m24*t.m43,e.m21*t.m14+e.m22*t.m24+e.m23*t.m34+e.m24*t.m44,e.m31*t.m11+e.m32*t.m21+e.m33*t.m31+e.m34*t.m41,e.m31*t.m12+e.m32*t.m22+e.m33*t.m32+e.m34*t.m42,e.m31*t.m13+e.m32*t.m23+e.m33*t.m33+e.m34*t.m43,e.m31*t.m14+e.m32*t.m24+e.m33*t.m34+e.m34*t.m44,e.m41*t.m11+e.m42*t.m21+e.m43*t.m31+e.m44*t.m41,e.m41*t.m12+e.m42*t.m22+e.m43*t.m32+e.m44*t.m42,e.m41*t.m13+e.m42*t.m23+e.m43*t.m33+e.m44*t.m43,e.m41*t.m14+e.m42*t.m24+e.m43*t.m34+e.m44*t.m44])}class J{constructor(...t){const e=this;if(e.a=1,e.b=0,e.c=0,e.d=1,e.e=0,e.f=0,e.m11=1,e.m12=0,e.m13=0,e.m14=0,e.m21=0,e.m22=1,e.m23=0,e.m24=0,e.m31=0,e.m32=0,e.m33=1,e.m34=0,e.m41=0,e.m42=0,e.m43=0,e.m44=1,t&&t.length){const r=[16,6].some(e=>e===t.length)?t:t[0];return e.setMatrixValue(r)}return e}set isIdentity(t){this.isIdentity=t}get isIdentity(){const t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44}get is2D(){const t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44}set is2D(t){this.is2D=t}setMatrixValue(t){return[Array,Float64Array,Float32Array].some(e=>t instanceof e)?O(t):"string"==typeof t&&t.length&&"none"!==t?Z(t):"object"==typeof t?Q(t):this}toArray(){const t=this;let e;return e=t.is2D?[t.a,t.b,t.c,t.d,t.e,t.f]:[t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44],e.map(t=>Math.abs(t)<1e-6?0:(t*10**6>>0)/10**6)}toString(){const t=this.toArray();return`${this.is2D?"matrix":"matrix3d"}(${t})`}toJSON(){const{is2D:t,isIdentity:e}=this;return{...this,is2D:t,isIdentity:e}}multiply(t){return B(this,t)}translate(t,e,r){let n=e,s=r;return void 0===s&&(s=0),void 0===n&&(n=0),B(this,D(t,n,s))}scale(t,e,r){let n=e,s=r;return void 0===n&&(n=t),void 0===s&&(s=1),B(this,Y(t,n,s))}rotate(t,e,r){let n=t,s=e,a=r;return void 0===s&&(s=0),void 0===a&&(a=n,n=0),B(this,X(n,s,a))}rotateAxisAngle(t,e,r,n){if([t,e,r,n].some(t=>Number.isNaN(t)))throw new TypeError("CSSMatrix: expecting 4 values");return B(this,H(t,e,r,n))}skewX(t){return B(this,R(t))}skewY(t){return B(this,F(t))}transformPoint(t){let e=D(t.x,t.y,t.z);return e.m44=t.w||1,e=this.multiply(e),{x:e.m41,y:e.m42,z:e.m43,w:e.m44}}transform(t){const e=this,r=e.m11*t.x+e.m12*t.y+e.m13*t.z+e.m14*t.w,n=e.m21*t.x+e.m22*t.y+e.m23*t.z+e.m24*t.w,s=e.m31*t.x+e.m32*t.y+e.m33*t.z+e.m34*t.w,a=e.m41*t.x+e.m42*t.y+e.m43*t.z+e.m44*t.w;return{x:r/a,y:n/a,z:s/a,w:a}}}Object.assign(J,{Translate:D,Rotate:X,RotateAxisAngle:H,Scale:Y,SkewX:R,SkewY:F,Multiply:B,fromArray:O,fromMatrix:Q,fromString:Z});function U(t,e,r){const[n,s]=e,[a,i,m]=r,o=t.transformPoint({x:n,y:s,z:0,w:1}),c=o.x-a,l=o.y-i,u=o.z-m;return[c*(Math.abs(m)/Math.abs(u))+a,l*(Math.abs(m)/Math.abs(u))+i]}function G(t,e){let r,n,s,a,i,m,o,l=0,u=0;const h=y(t),f=v(h),x=function(t){let e=new J;const{origin:r}=t,[n,s]=r,{translate:a}=t,{rotate:i}=t,{skew:m}=t,{scale:o}=t;return Array.isArray(a)&&a.every(t=>!Number.isNaN(+t))&&a.some(t=>0!==t)?e=e.translate(a[0]||0,a[1]||0,a[2]||0):"number"!=typeof a||Number.isNaN(+a)||(e=e.translate(a||0,0,0)),(i||m||o)&&(e=e.translate(n,s),Array.isArray(i)&&i.every(t=>!Number.isNaN(+t))&&i.some(t=>0!==t)?e=e.rotate(i[0],i[1],i[2]):"number"!=typeof i||Number.isNaN(+i)||(e=e.rotate(0,0,i)),Array.isArray(m)&&m.every(t=>!Number.isNaN(+t))&&m.some(t=>0!==t)?(e=m[0]?e.skewX(m[0]):e,e=m[1]?e.skewY(m[1]):e):"number"!=typeof m||Number.isNaN(+m)||(e=e.skewX(m||0)),Array.isArray(o)&&o.every(t=>!Number.isNaN(+t))&&o.some(t=>1!==t)?e=e.scale(o[0],o[1],o[2]):"number"!=typeof o||Number.isNaN(+o)||(e=e.scale(o||1,o||1,o||1)),e=e.translate(-n,-s)),e}(e),p=Object.keys(e),{origin:g}=e,{a:M,b:N,c:w,d:A,e:C,f:k}=x,S=[M,N,w,A,C,k],q={...b};let P=[],T=0,V="",z=[];const $=[];if(!x.isIdentity){for(r=0,s=h.length;r<s;r+=1){P=h[r],h[r]&&([V]=P),$[r]=V,"A"!==V||x.is2D&&["skewX","skewY"].find(t=>p.includes(t))||(P=I(f[r],q),h[r]=I(f[r],q),d(h,$,r),f[r]=I(f[r],q),d(f,$,r),s=Math.max(h.length,f.length)),P=f[r],T=P.length,q.x1=+P[T-2],q.y1=+P[T-1],q.x2=+P[T-4]||q.x1,q.y2=+P[T-3]||q.y1;const t={s:h[r],c:h[r][0],x:q.x1,y:q.y1};z=[...z,t]}return z.map(t=>{switch(V=t.c,P=t.s,V){case"A":return o=function(t,e,r,n){const s=Math.cos(n*Math.PI/180),a=Math.sin(n*Math.PI/180),i=[e*(t[0]*s+t[2]*a),e*(t[1]*s+t[3]*a),r*(-t[0]*a+t[2]*s),r*(-t[1]*a+t[3]*s)],m=i[0]*i[0]+i[2]*i[2],o=i[1]*i[1]+i[3]*i[3];let c=((i[0]-i[3])*(i[0]-i[3])+(i[2]+i[1])*(i[2]+i[1]))*((i[0]+i[3])*(i[0]+i[3])+(i[2]-i[1])*(i[2]-i[1]));const l=(m+o)/2;if(c<1e-9*l){const t=Math.sqrt(l);return{rx:t,ry:t,ax:0}}const u=i[0]*i[1]+i[2]*i[3];c=Math.sqrt(c);const h=l+c/2,f=l-c/2;let y,x,p=Math.abs(u)<1e-9&&Math.abs(h-o)<1e-9?90:Math.atan(Math.abs(u)>Math.abs(h-o)?(h-m)/u:u/(h-o)*180)/Math.PI;return p>=0?(y=Math.sqrt(h),x=Math.sqrt(f)):(p+=90,y=Math.sqrt(f),x=Math.sqrt(h)),{rx:y,ry:x,ax:p}}(S,P[1],P[2],P[3]),S[0]*S[3]-S[1]*S[2]<0&&(P[5]=P[5]?0:1),[i,m]=U(x,[+P[6],+P[7]],g),P=l===i&&u===m||o.rx<1e-9*o.ry||o.ry<1e-9*o.rx?["L",i,m]:[V,o.rx,o.ry,o.ax,P[4],P[5],i,m],l=i,u=m,P;case"L":case"H":case"V":return[i,m]=U(x,[t.x,t.y],g),l!==i&&u!==m?P=["L",i,m]:u===m?P=["H",i]:l===i&&(P=["V",m]),l=i,u=m,P;default:for(n=1,a=P.length;n<a;n+=2)[l,u]=U(x,[+P[n],+P[n+1]],g),P[n]=l,P[n+1]=u;return P}})}return c(h)}function K(t){if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0,cx:0,cy:0,cz:0};const e=T(t);let r=0,n=0,s=[],a=[];e.forEach(t=>{const[e,i]=t.slice(-2).map(Number);if("M"===t[0])r=e,n=i,s.push(e),a.push(i);else{const m=function(t,e,r,n,s,a,i,m){let o=s-2*r+t-(i-2*s+r),c=2*(r-t)-2*(s-r),l=t-r,u=(-c+Math.sqrt(c*c-4*o*l))/2/o,h=(-c-Math.sqrt(c*c-4*o*l))/2/o;const f=[e,m],y=[t,i];let x;return Math.abs(u)>"1e12"&&(u=.5),Math.abs(h)>"1e12"&&(h=.5),u>0&&u<1&&(x=S(t,e,r,n,s,a,i,m,u),y.push(x.x),f.push(x.y)),h>0&&h<1&&(x=S(t,e,r,n,s,a,i,m,h),y.push(x.x),f.push(x.y)),o=a-2*n+e-(m-2*a+n),c=2*(n-e)-2*(a-n),l=e-n,u=(-c+Math.sqrt(c*c-4*o*l))/2/o,h=(-c-Math.sqrt(c*c-4*o*l))/2/o,Math.abs(u)>"1e12"&&(u=.5),Math.abs(h)>"1e12"&&(h=.5),u>0&&u<1&&(x=S(t,e,r,n,s,a,i,m,u),y.push(x.x),f.push(x.y)),h>0&&h<1&&(x=S(t,e,r,n,s,a,i,m,h),y.push(x.x),f.push(x.y)),{min:{x:Math.min.apply(0,y),y:Math.min.apply(0,f)},max:{x:Math.max.apply(0,y),y:Math.max.apply(0,f)}}}(...[r,n,...t.slice(1)]);s=[...s,m.min.x,m.max.x],a=[...a,m.min.y,m.max.y],r=e,n=i}});const i=Math.min(...s),m=Math.min(...a),o=Math.max(...s),c=Math.max(...a),l=o-i,u=c-m;return{width:l,height:u,x:i,y:m,x2:o,y2:c,cx:i+l/2,cy:m+u/2,cz:Math.max(l,u)+Math.min(l,u)/2}}Object.assign(J,{Version:"0.0.24"});class W{constructor(e,r){const n=r||{};this.segments=h(e);const s=K(this.segments),{width:a,height:i,cx:m,cy:o,cz:c}=s;let{round:l,origin:u}=t;const{round:f,origin:y}=n;if("auto"===f){const t=(""+Math.floor(Math.max(a,i))).length;l=t>=4?0:4-t}else(Number.isInteger(f)&&f>=1||!1===f)&&(l=f);if(Array.isArray(y)&&y.length>=2){const[t,e,r]=y.map(Number);u=[Number.isNaN(t)?m:t,Number.isNaN(e)?o:e,r||c]}else u=[m,o,c];return this.round=l,this.origin=u,this}toAbsolute(){const{segments:t}=this;return this.segments=y(t),this}toRelative(){const{segments:t}=this;return this.segments=p(t),this}toCurve(){const{segments:t}=this;return this.segments=T(t),this}reverse(t){this.toAbsolute();const{segments:e}=this,r=j(this.toString()),n=r.length>1?r:0,s=n&&c(n).map((e,r)=>t?r?$(e):h(e):$(e));let a=[];return a=n?s.flat(1):t?e:$(e),this.segments=c(a),this}normalize(){const{segments:t}=this;return this.segments=v(t),this}optimize(){const{segments:t}=this;return this.segments=L(t,this.round),this}transform(t){if(!t||"object"!=typeof t||"object"==typeof t&&!["translate","rotate","skew","scale"].some(e=>e in t))return this;const e={};Object.keys(t).forEach(r=>{e[r]=Array.isArray(t[r])?[...t[r]]:Number(t[r])});const{segments:r}=this,{origin:n}=e;if(n&&n.length>=2){const[t,r,s]=n.map(Number),[a,i,m]=this.origin;e.origin=[Number.isNaN(t)?a:t,Number.isNaN(r)?i:r,s||m]}else e.origin={...this.origin};return this.segments=G(r,e),this}flipX(){return this.transform({rotate:[180,0,0]}),this}flipY(){return this.transform({rotate:[0,180,0]}),this}toString(){return z(this.segments,this.round)}}function _(t){let e=0,r=0,n=0;return T(t).map(t=>{switch(t[0]){case"M":return[,e,r]=t,0;default:return n=function(t,e,r,n,s,a,i,m){return 3*((m-e)*(r+s)-(i-t)*(n+a)+n*(t-s)-r*(e-a)+m*(s+t/3)-i*(a+e/3))/20}(e,r,...t.slice(1)),[e,r]=t.slice(-2).map(Number),n}}).reduce((t,e)=>t+e,0)}function tt(t,e,r,n,s){return s*(s*(-3*t+9*e-9*r+3*n)+6*t-12*e+6*r)-3*t+3*e}function et(t,e,r,n,s,a,i,m,o){let c=o;(null===o||Number.isNaN(+o))&&(c=1),c>1&&(c=1),c<0&&(c=0);const l=c/2;let u=0,h=0,f=0,y=0;const x=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472];return[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816].forEach((o,c)=>{u=l*o+l,h=tt(t,r,s,i,u),f=tt(e,n,a,m,u),y+=x[c]*Math.sqrt(h*h+f*f)}),l*y}const rt={circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],rect:["width","height","x","y","rx","ry"],polygon:["points"],polyline:["points"],glyph:[]};const nt={CSSMatrix:J,parsePathString:h,isPathArray:u,isCurveArray:w,isAbsoluteArray:f,isRelativeArray:x,isNormalizedArray:M,isValidPath:function(t){if("string"!=typeof t)return!1;const e=new l(t);for(i(e);e.index<e.max&&!e.err.length;)o(e);return!e.err.length&&"mM".includes(e.segments[0][0])},pathToAbsolute:y,pathToRelative:p,pathToCurve:T,pathToString:z,getDrawDirection:function(t){return _(T(t))>=0},getPathArea:_,getPathBBox:K,getPathLength:function(t){let e=0;return T(t).forEach((t,r,n)=>{const s="M"!==t[0]?[...n[r-1].slice(-2),...t.slice(1)]:[];e+="M"===t[0]?0:et(...s)}),e},getPointAtLength:function(t,e){let r,n,s,a=0;return T(t).map((t,i,m)=>{if(n=i?[...m[i-1].slice(-2),...t.slice(1)]:t.slice(1),r=i?et(...n):0,a+=r,0===i)s={x:n[0],y:n[1]};else if(a>e&&e>a-r){const t=[...n,1-(a-e)/r];s=S(...t)}else s=null;return s}).filter(t=>t).slice(-1)[0]},clonePath:c,splitPath:j,fixPath:N,roundPath:V,optimizePath:L,reverseCurve:function(t){const e=t.slice(1).map((e,r,n)=>r?[...n[r-1].slice(-2),...e.slice(1)]:[...t[0].slice(1),...e.slice(1)]).map(t=>t.map((e,r)=>t[t.length-r-2*(1-r%2)])).reverse();return[["M",...e[0].slice(0,2)],...e.map(t=>["C",...t.slice(2)])]},reversePath:$,normalizePath:v,transformPath:G,shapeToPath:function(e,r){const n=Object.keys(rt),s=e instanceof Element;if(s&&!n.some(t=>e.tagName===t))throw TypeError(`shapeToPath: "${e}" is not SVGElement`);const a=document.createElementNS("http://www.w3.org/2000/svg","path"),i=s?e.tagName:e.type,m={};if(m.type=i,s){const t=rt[i];t.forEach(t=>{m[t]=e.getAttribute(t)}),Object.values(e.attributes).forEach(({name:e,value:r})=>{t.includes(e)||a.setAttribute(e,r)})}else Object.assign(m,e);let o;const{round:c}=t;return"circle"===i?o=z(function(t){const{cx:e,cy:r,r:n}=t;return[["M",e-n,r],["a",n,n,0,1,0,2*n,0],["a",n,n,0,1,0,-2*n,0]]}(m),c):"ellipse"===i?o=z(function(t){const{cx:e,cy:r,rx:n,ry:s}=t;return[["M",e-n,r],["a",n,s,0,1,0,2*n,0],["a",n,s,0,1,0,-2*n,0]]}(m),c):["polyline","polygon"].includes(i)?o=z(function(t){const e=[],r=t.points.split(/[\s|,]/).map(Number);let n=0;for(;n<r.length;)e.push([n?"L":"M",r[n],r[n+1]]),n+=2;return"polygon"===t.type?[...e,["z"]]:e}(m),c):"rect"===i?o=z(function(t){const e=+t.x||0,r=+t.y||0,n=+t.width,s=+t.height;let a=+t.rx,i=+t.ry;return a||i?(a=a||i,i=i||a,2*a>n&&(a-=(2*a-n)/2),2*i>s&&(i-=(2*i-s)/2),[["M",e+a,r],["h",n-2*a],["s",a,0,a,i],["v",s-2*i],["s",0,i,-a,i],["h",2*a-n],["s",-a,0,-a,-i],["v",2*i-s],["s",0,-i,a,-i]]):[["M",e,r],["h",n],["v",s],["H",e],["Z"]]}(m),c):"line"===i?o=z(function(t){const{x1:e,y1:r,x2:n,y2:s}=t;return[["M",e,r],["L",n,s]]}(m),c):"glyph"===i&&(o=s?e.getAttribute("d"):e.type),!!o&&(a.setAttribute("d",o),r&&s&&(e.before(a,e),e.remove()),a)},options:t};Object.assign(W,nt,{Version:"0.1.21"});export{W as default};
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * SVGPathCommander v0.1.20 (http://thednp.github.io/svg-path-commander)
2
+ * SVGPathCommander v0.1.21 (http://thednp.github.io/svg-path-commander)
3
3
  * Copyright 2021 © thednp
4
4
  * Licensed under MIT (https://github.com/thednp/svg-path-commander/blob/master/LICENSE)
5
5
  */
@@ -2463,11 +2463,13 @@
2463
2463
  * @returns {[number, number]} the projected [x,y] coordinates
2464
2464
  */
2465
2465
  function projection2d(m, point2D, origin) {
2466
+ var px = point2D[0];
2467
+ var py = point2D[1];
2466
2468
  var originX = origin[0];
2467
2469
  var originY = origin[1];
2468
2470
  var originZ = origin[2];
2469
2471
  var point3D = m.transformPoint({
2470
- x: point2D[0], y: point2D[1], z: 0, w: 1,
2472
+ x: px, y: py, z: 0, w: 1,
2471
2473
  });
2472
2474
 
2473
2475
  var relativePositionX = point3D.x - originX;
@@ -2691,7 +2693,7 @@
2691
2693
  function getPathBBox(path) {
2692
2694
  if (!path) {
2693
2695
  return {
2694
- x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0, cx: 0, cy: 0,
2696
+ x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0, cx: 0, cy: 0, cz: 0,
2695
2697
  };
2696
2698
  }
2697
2699
  var pathCurve = pathToCurve(path);
@@ -2727,16 +2729,22 @@
2727
2729
  });
2728
2730
 
2729
2731
  // @ts-ignore
2730
- var xTop = Math.min.apply(0, X);
2732
+ // const xTop = Math.min.apply(0, X);
2733
+ var xTop = Math.min.apply(Math, X);
2731
2734
  // @ts-ignore
2732
- var yTop = Math.min.apply(0, Y);
2735
+ // const yTop = Math.min.apply(0, Y);
2736
+ var yTop = Math.min.apply(Math, Y);
2733
2737
  // @ts-ignore
2734
- var xBot = Math.max.apply(0, X);
2738
+ // const xBot = Math.max.apply(0, X);
2739
+ var xBot = Math.max.apply(Math, X);
2735
2740
  // @ts-ignore
2736
- var yBot = Math.max.apply(0, Y);
2741
+ // const yBot = Math.max.apply(0, Y);
2742
+ var yBot = Math.max.apply(Math, Y);
2737
2743
  var width = xBot - xTop;
2738
2744
  var height = yBot - yTop;
2739
2745
 
2746
+ // an estimted guess
2747
+ var cz = Math.max(width, height) + Math.min(width, height) / 2;
2740
2748
  return {
2741
2749
  width: width,
2742
2750
  height: height,
@@ -2746,6 +2754,7 @@
2746
2754
  y2: yBot,
2747
2755
  cx: xTop + width / 2,
2748
2756
  cy: yTop + height / 2,
2757
+ cz: cz,
2749
2758
  };
2750
2759
  }
2751
2760
 
@@ -2769,8 +2778,11 @@
2769
2778
  var BBox = getPathBBox(this.segments);
2770
2779
  var width = BBox.width;
2771
2780
  var height = BBox.height;
2781
+ var cx = BBox.cx;
2782
+ var cy = BBox.cy;
2783
+ var cz = BBox.cz;
2772
2784
 
2773
- // set instance options
2785
+ // set instance options.round
2774
2786
  var round = defaultOptions.round;
2775
2787
  var origin = defaultOptions.origin;
2776
2788
  var roundOption = instanceOptions.round;
@@ -2783,16 +2795,18 @@
2783
2795
  round = roundOption;
2784
2796
  }
2785
2797
 
2786
- if (Array.isArray(originOption) && [2, 3].includes(originOption.length)
2787
- && originOption.map(function (n) { return !Number.isNaN(n); })) {
2788
- origin = [].concat( originOption.map(Number) );
2798
+ // set instance options.origin
2799
+ if (Array.isArray(originOption) && originOption.length >= 2) {
2800
+ var ref = originOption.map(Number);
2801
+ var originX = ref[0];
2802
+ var originY = ref[1];
2803
+ var originZ = ref[2];
2804
+ origin = [
2805
+ !Number.isNaN(originX) ? originX : cx,
2806
+ !Number.isNaN(originY) ? originY : cy,
2807
+ originZ || cz ];
2789
2808
  } else {
2790
- // determine a transform origin
2791
- var cx = BBox.cx;
2792
- var cy = BBox.cy;
2793
- // an estimted guess
2794
- var originZ = Math.max(width, height) + Math.min(width, height) / 2;
2795
- origin = [cx, cy, originZ];
2809
+ origin = [cx, cy, cz];
2796
2810
  }
2797
2811
 
2798
2812
  /**
@@ -2800,9 +2814,6 @@
2800
2814
  * @default 4
2801
2815
  */
2802
2816
  this.round = round;
2803
- /**
2804
- * @default [0,0]
2805
- */
2806
2817
  this.origin = origin;
2807
2818
 
2808
2819
  return this;
@@ -2925,7 +2936,21 @@
2925
2936
 
2926
2937
  // if origin is not specified
2927
2938
  // it's important that we have one
2928
- if (!transform.origin) {
2939
+ var origin = transform.origin;
2940
+ if (origin && origin.length >= 2) {
2941
+ var ref$1 = origin.map(Number);
2942
+ var originX = ref$1[0];
2943
+ var originY = ref$1[1];
2944
+ var originZ = ref$1[2];
2945
+ var ref$2 = this.origin;
2946
+ var cx = ref$2[0];
2947
+ var cy = ref$2[1];
2948
+ var cz = ref$2[2];
2949
+ transform.origin = [
2950
+ !Number.isNaN(originX) ? originX : cx,
2951
+ !Number.isNaN(originY) ? originY : cy,
2952
+ originZ || cz ];
2953
+ } else {
2929
2954
  // @ts-ignore
2930
2955
  transform.origin = Object.assign({}, this.origin);
2931
2956
  }
@@ -3396,7 +3421,7 @@
3396
3421
  options: defaultOptions,
3397
3422
  };
3398
3423
 
3399
- var version = "0.1.20";
3424
+ var version = "0.1.21";
3400
3425
 
3401
3426
  // @ts-ignore
3402
3427
 
@@ -1,2 +1,2 @@
1
- // SVGPathCommander v0.1.20 | thednp © 2021 | MIT-License
2
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).SVGPathCommander=e()}(this,(function(){"use strict";var t={origin:[0,0,0],round:4},e={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function r(t){var r=t.pathValue[t.segmentStart],n=r.toLowerCase(),a=t.data;for("m"===n&&a.length>2&&(t.segments.push([r,a[0],a[1]]),a=a.slice(2),n="l",r="m"===r?"l":"L");a.length>=e[n]&&(t.segments.push([r].concat(a.splice(0,e[n]))),e[n]););}function n(t){var e=t.index,r=t.pathValue.charCodeAt(e);return 48===r?(t.param=0,void(t.index+=1)):49===r?(t.param=1,void(t.index+=1)):void(t.err='Invalid path value: invalid Arc flag "'+r+'", expecting 0 or 1 at index '+e)}function a(t){return t>=48&&t<=57}function i(t){var e,r=t.max,n=t.pathValue,i=t.index,s=i,o=!1,c=!1,u=!1,m=!1;if(s>=r)t.err="Invalid path value at "+s+": missing param "+n[s];else if(43!==(e=n.charCodeAt(s))&&45!==e||(e=(s+=1)<r?n.charCodeAt(s):0),a(e)||46===e){if(46!==e){if(o=48===e,e=(s+=1)<r?n.charCodeAt(s):0,o&&s<r&&e&&a(e))return void(t.err="Invalid path value at index "+i+": "+n[i]+" illegal number");for(;s<r&&a(n.charCodeAt(s));)s+=1,c=!0;e=s<r?n.charCodeAt(s):0}if(46===e){for(m=!0,s+=1;a(n.charCodeAt(s));)s+=1,u=!0;e=s<r?n.charCodeAt(s):0}if(101===e||69===e){if(m&&!c&&!u)return void(t.err="Invalid path value at index "+s+": "+n[s]+" invalid float exponent");if(43!==(e=(s+=1)<r?n.charCodeAt(s):0)&&45!==e||(s+=1),!(s<r&&a(n.charCodeAt(s))))return void(t.err="Invalid path value at index "+s+": "+n[s]+" invalid float exponent");for(;s<r&&a(n.charCodeAt(s));)s+=1}t.index=s,t.param=+t.pathValue.slice(i,s)}else t.err="Invalid path value at index "+s+": "+n[s]+" is not a number"}function s(t){for(var e,r=t.pathValue,n=t.max;t.index<n&&(10===(e=r.charCodeAt(t.index))||13===e||8232===e||8233===e||32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0);)t.index+=1}function o(t){return t>=48&&t<=57||43===t||45===t||46===t}function c(t){var a=t.max,c=t.pathValue,u=t.index,m=c.charCodeAt(u),h=e[c[u].toLowerCase()];if(t.segmentStart=u,function(t){switch(32|t){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:return!0;default:return!1}}(m))if(t.index+=1,s(t),t.data=[],h){for(;;){for(var l=h;l>0;l-=1){if(97!=(32|m)||3!==l&&4!==l?i(t):n(t),t.err.length)return;t.data.push(t.param),s(t),t.index<a&&44===c.charCodeAt(t.index)&&(t.index+=1,s(t))}if(t.index>=t.max)break;if(!o(c.charCodeAt(t.index)))break}r(t)}else r(t);else t.err="Invalid path value: "+c[u]+" not a path command"}function u(t){return t.map((function(t){return Array.isArray(t)?[].concat(t):t}))}function m(t){this.segments=[],this.pathValue=t,this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}function h(t){return Array.isArray(t)&&t.every((function(t){var r=t[0].toLowerCase();return e[r]===t.length-1&&"achlmqstvz".includes(r)}))}function l(t){if(Array.isArray(t)&&h(t))return u(t);var e=new m(t);for(s(e);e.index<e.max&&!e.err.length;)c(e);return e.err.length?e.segments=[]:e.segments.length&&("mM".includes(e.segments[0][0])?e.segments[0][0]="M":(e.err="Invalid path value: missing M/m",e.segments=[])),e.segments}function f(t){return h(t)&&t.every((function(t){return t[0]===t[0].toUpperCase()}))}function p(t){if(Array.isArray(t)&&f(t))return u(t);var e=l(t),r=0,n=0,a=0,i=0;return e.map((function(t){var e,s=t.slice(1).map(Number),o=t[0],c=o.toUpperCase();if("M"===o)return r=(e=s)[0],n=e[1],a=r,i=n,["M",r,n];var u=[];if(o!==c)switch(c){case"A":u=[c,s[0],s[1],s[2],s[3],s[4],s[5]+r,s[6]+n];break;case"V":u=[c,s[0]+n];break;case"H":u=[c,s[0]+r];break;default:var m=s.map((function(t,e){return t+(e%2?n:r)}));u=[c].concat(m)}else u=[c].concat(s);var h=u.length;switch(c){case"Z":r=a,n=i;break;case"H":r=u[1];break;case"V":n=u[1];break;default:r=u[h-2],n=u[h-1],"M"===c&&(a=r,i=n)}return u}))}function y(t){return h(t)&&t.slice(1).every((function(t){return t[0]===t[0].toLowerCase()}))}function v(t){if(y(t))return u(t);var e=l(t),r=0,n=0,a=0,i=0;return e.map((function(t){var e,s,o=t.slice(1).map(Number),c=t[0],u=c.toLowerCase();if("M"===c)return r=(e=o)[0],n=e[1],a=r,i=n,["M",r,n];var m=[];if(c!==u)switch(u){case"a":m=[u,o[0],o[1],o[2],o[3],o[4],o[5]-r,o[6]-n];break;case"v":m=[u,o[0]-n];break;case"h":m=[u,o[0]-r];break;default:var h=o.map((function(t,e){return t-(e%2?n:r)}));m=[u].concat(h),"m"===u&&(r=(s=o)[0],n=s[1],a=r,i=n)}else"m"===c&&(a=o[0]+r,i=o[1]+n),m=[u].concat(o);var l=m.length;switch(u){case"z":r=a,n=i;break;case"h":r+=m[1];break;case"v":n+=m[1];break;default:r+=m[l-2],n+=m[l-1]}return m}))}function d(t,e,r){if(t[r].length>7){t[r].shift();for(var n=t[r],a=r;n.length;)e[r]="A",t.splice(a+=1,0,["C"].concat(n.splice(0,6)));t.splice(r,1)}}function x(t,e,r){var n=t[0],a=e.x1,i=e.y1,s=e.x2,o=e.y2,c=t.slice(1).map(Number),u=t;if("TQ".includes(n)||(e.qx=null,e.qy=null),"H"===n)u=["L",t[1],i];else if("V"===n)u=["L",a,t[1]];else if("S"===n){var m=function(t,e,r,n,a){return"CS".includes(a)?{x1:2*t-r,y1:2*e-n}:{x1:t,y1:e}}(a,i,s,o,r),h=m.x1,l=m.y1;e.x1=h,e.y1=l,u=["C",h,l].concat(c)}else if("T"===n){var f=function(t,e,r,n,a){return"QT".includes(a)?{qx:2*t-r,qy:2*e-n}:{qx:t,qy:e}}(a,i,e.qx,e.qy,r),p=f.qx,y=f.qy;e.qx=p,e.qy=y,u=["Q",p,y].concat(c)}else if("Q"===n){var v=c[0],d=c[1];e.qx=v,e.qy=d}return u}function g(t){return f(t)&&t.every((function(t){return"ACLMQZ".includes(t[0])}))}var M={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function b(t){if(g(t))return u(t);for(var e=p(t),r=Object.assign({},M),n=[],a=e.length,i="",s="",o=0;o<a;o+=1){i=e[o][0],n[o]=i,o&&(s=n[o-1]),e[o]=x(e[o],r,s);var c=e[o],m=c.length;r.x1=+c[m-2],r.y1=+c[m-1],r.x2=+c[m-4]||r.x1,r.y2=+c[m-3]||r.y1}return e}function w(t){var e=l(t),r=b(e),n=e.length,a="Z"===r.slice(-1)[0][0],i=a?n-2:n-1,s=r[0].slice(1),o=s[0],c=s[1],u=r[i].slice(-2),m=u[0],h=u[1];return a&&o===m&&c===h?e.slice(0,-1):e}function A(t){return h(t)&&t.every((function(t){return"MC".includes(t[0])}))}function N(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function C(t,e,r,n,a,i,s,o,c,u){var m,h,l,f,p,y,v=t,d=e,x=r,g=n,M=o,b=c,w=120*Math.PI/180,A=Math.PI/180*(+a||0),k=[];if(u)l=(m=u)[0],f=m[1],p=m[2],y=m[3];else{v=(h=N(v,d,-A)).x,d=h.y;var S=(v-(M=(h=N(M,b,-A)).x))/2,q=(d-(b=h.y))/2,P=S*S/(x*x)+q*q/(g*g);P>1&&(x*=P=Math.sqrt(P),g*=P);var I=x*x,T=g*g,j=(i===s?-1:1)*Math.sqrt(Math.abs((I*T-I*q*q-T*S*S)/(I*q*q+T*S*S)));p=j*x*q/g+(v+M)/2,y=j*-g*S/x+(d+b)/2,l=(Math.asin((d-y)/g)*Math.pow(10,9)>>0)/Math.pow(10,9),f=(Math.asin((b-y)/g)*Math.pow(10,9)>>0)/Math.pow(10,9),l=v<p?Math.PI-l:l,f=M<p?Math.PI-f:f,l<0&&(l=2*Math.PI+l),f<0&&(f=2*Math.PI+f),s&&l>f&&(l-=2*Math.PI),!s&&f>l&&(f-=2*Math.PI)}var V=f-l;if(Math.abs(V)>w){var O=f,z=M,E=b;f=l+w*(s&&f>l?1:-1),k=C(M=p+x*Math.cos(f),b=y+g*Math.sin(f),x,g,a,0,s,z,E,[f,O,p,y])}V=f-l;var L=Math.cos(l),Q=Math.sin(l),Z=Math.cos(f),D=Math.sin(f),X=Math.tan(V/4),H=4/3*x*X,Y=4/3*g*X,R=[v,d],F=[v+H*Q,d-Y*L],B=[M+H*D,b-Y*Z],G=[M,b];if(F[0]=2*R[0]-F[0],F[1]=2*R[1]-F[1],u)return F.concat(B,G,k);for(var J=[],U=0,$=(k=F.concat(B,G,k)).length;U<$;U+=1)J[U]=U%2?N(k[U-1],k[U],A).y:N(k[U],k[U+1],A).x;return J}function k(t,e,r,n,a,i){return[1/3*t+2/3*r,1/3*e+2/3*n,1/3*a+2/3*r,1/3*i+2/3*n,a,i]}function S(t,e,r,n,a,i,s,o,c){var u=1-c;return{x:Math.pow(u,3)*t+u*u*3*c*r+3*u*c*c*a+Math.pow(c,3)*s,y:Math.pow(u,3)*e+u*u*3*c*n+3*u*c*c*i+Math.pow(c,3)*o}}function q(t,e,r){var n=t[0],a=t[1];return[n+(e[0]-n)*r,a+(e[1]-a)*r]}function P(t,e,r,n){var a=.5,i=[t,e],s=[r,n],o=q(i,s,a),c=q(s,o,a),u=q(o,c,a),m=q(c,u,a),h=q(u,m,a),l=i.concat(o,u,h,[a]),f=S.apply(void 0,l),p=h.concat(m,c,s,[0]),y=S.apply(void 0,p);return[f.x,f.y,y.x,y.y,r,n]}function I(t,e){var r,n=t[0],a=t.slice(1).map((function(t){return+t})),i=a[0],s=a[1],o=e.x1,c=e.y1,u=e.x,m=e.y;switch("TQ".includes(n)||(e.qx=null,e.qy=null),n){case"M":return e.x=i,e.y=s,t;case"A":return r=[o,c].concat(a),["C"].concat(C.apply(void 0,r));case"Q":return e.qx=i,e.qy=s,r=[o,c].concat(a),["C"].concat(k.apply(void 0,r));case"L":return["C"].concat(P(o,c,i,s));case"Z":return["C"].concat(P(o,c,u,m))}return t}function T(t){if(A(t))return u(t);for(var e=w(b(t)),r=Object.assign({},M),n=[],a="",i=e.length,s=0;s<i;s+=1){a=e[s][0],n[s]=a,e[s]=I(e[s],r),d(e,n,s),i=e.length;var o=e[s],c=o.length;r.x1=+o[c-2],r.y1=+o[c-1],r.x2=+o[c-4]||r.x1,r.y2=+o[c-3]||r.y1}return e}function j(e,r){var n=t.round;if(!1===r||!1===n)return u(e);var a=(n=r>=1?r:n)>=1?Math.pow(10,n):1;return e.map((function(t){var e=t.slice(1).map(Number).map((function(t){return t%1==0?t:Math.round(t*a)/a}));return[t[0]].concat(e)}))}function V(t,e){return j(t,e).map((function(t){return t[0]+t.slice(1).join(" ")})).join("")}function O(t){var e=p(t),r="Z"===e.slice(-1)[0][0],n=b(e).map((function(t,r){var n=t.slice(-2).map(Number),a=n[0],i=n[1];return{seg:e[r],n:t,c:e[r][0],x:a,y:i}})).map((function(t,e,n){var a=t.seg,i=t.n,s=e&&n[e-1],o=n[e+1]&&n[e+1],c=t.c,u=n.length,m=e?n[e-1].x:n[u-1].x,h=e?n[e-1].y:n[u-1].y,l=[];switch(c){case"M":l=r?["Z"]:[c,m,h];break;case"A":l=[c].concat(a.slice(1,-3),[1===a[5]?0:1],[m],[h]);break;case"C":l=o&&"S"===o.c?["S",a[1],a[2],m,h]:[c,a[3],a[4],a[1],a[2],m,h];break;case"S":l=s&&"CS".includes(s.c)&&(!o||o&&"S"!==o.c)?["C",i[3],i[4],i[1],i[2],m,h]:[c,i[1],i[2],m,h];break;case"Q":l=o&&"T"===o.c?["T",m,h]:[c].concat(a.slice(1,-2),[m],[h]);break;case"T":l=s&&"QT".includes(s.c)&&(!o||o&&"T"!==o.c)?["Q",i[1],i[2],m,h]:[c,m,h];break;case"Z":l=["M",m,h];break;case"H":l=[c,m];break;case"V":l=[c,h];break;default:l=[c].concat(a.slice(1,-2),[m],[h])}return l}));return r?n.reverse():[n[0]].concat(n.slice(1).reverse())}function z(t){return V(p(t),0).replace(/(m|M)/g,"|$1").split("|").map((function(t){return t.trim()})).filter((function(t){return t}))}function E(t,e,r,n){var a=t[0],i=function(t){return Math.round(t*Math.pow(10,4))/Math.pow(10,4)},s=t.slice(1).map((function(t){return+t})),o=e.slice(1).map((function(t){return+t})),c=r.x1,u=r.y1,m=r.x2,h=r.y2,l=r.x,f=r.y,p=t,y=o.slice(-2),v=y[0],d=y[1];if("TQ".includes(a)||(r.qx=null,r.qy=null),["V","H","S","T","Z"].includes(a))p=[a].concat(s);else if("L"===a)i(l)===i(v)?p=["V",d]:i(f)===i(d)&&(p=["H",v]);else if("C"===a){var x=o[0],g=o[1];"CS".includes(n)&&i(x)===i(2*c-m)&&i(g)===i(2*u-h)&&(p=["S"].concat(o.slice(-4))),r.x1=x,r.y1=g}else if("Q"===a){var M=o[0],b=o[1];r.qx=M,r.qy=b,"QT".includes(n)&&i(M)===i(2*c-m)&&i(b)===i(2*u-h)&&(p=["T"].concat(o.slice(-2)))}return p}function L(t,e){for(var r,n=p(t),a=b(n),i=Object.assign({},M),s=[],o=n.length,c="",u="",m=0,h=0,l=0,f=0,y=0;y<o;y+=1){c=n[y][0],s[y]=c,y&&(u=s[y-1]),n[y]=E(n[y],a[y],i,u);var d=n[y],x=d.length;switch(i.x1=+d[x-2],i.y1=+d[x-1],i.x2=+d[x-4]||i.x1,i.y2=+d[x-3]||i.y1,c){case"Z":m=l,h=f;break;case"H":m=d[1];break;case"V":h=d[1];break;default:m=(r=d.slice(-2).map(Number))[0],h=r[1],"M"===c&&(l=m,f=h)}i.x=m,i.y=h}var g=j(n,e),w=j(v(n),e);return g.map((function(t,e){return e?t.join("").length<w[e].join("").length?t:w[e]:t}))}function Q(t){var e=new J,r=Array.from(t);if(!r.every((function(t){return!Number.isNaN(t)})))throw TypeError('CSSMatrix: "'+t+'" must only have numbers.');if(16===r.length){var n=r[0],a=r[1],i=r[2],s=r[3],o=r[4],c=r[5],u=r[6],m=r[7],h=r[8],l=r[9],f=r[10],p=r[11],y=r[12],v=r[13],d=r[14],x=r[15];e.m11=n,e.a=n,e.m21=o,e.c=o,e.m31=h,e.m41=y,e.e=y,e.m12=a,e.b=a,e.m22=c,e.d=c,e.m32=l,e.m42=v,e.f=v,e.m13=i,e.m23=u,e.m33=f,e.m43=d,e.m14=s,e.m24=m,e.m34=p,e.m44=x}else{if(6!==r.length)throw new TypeError("CSSMatrix: expecting an Array of 6/16 values.");var g=r[0],M=r[1],b=r[2],w=r[3],A=r[4],N=r[5];e.m11=g,e.a=g,e.m12=M,e.b=M,e.m21=b,e.c=b,e.m22=w,e.d=w,e.m41=A,e.e=A,e.m42=N,e.f=N}return e}function Z(t){var e=Object.keys(new J);if("object"==typeof t&&e.every((function(e){return e in t})))return Q([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44]);throw TypeError('CSSMatrix: "'+t+'" is not a DOMMatrix / CSSMatrix / JSON compatible object.')}function D(t){if("string"!=typeof t)throw TypeError('CSSMatrix: "'+t+'" is not a string.');var e=String(t).replace(/\s/g,""),r=new J,n='CSSMatrix: invalid transform string "'+t+'"';return e.split(")").filter((function(t){return t})).forEach((function(t){var e=t.split("("),a=e[0],i=e[1];if(!i)throw TypeError(n);var s=i.split(",").map((function(t){return t.includes("rad")?parseFloat(t)*(180/Math.PI):parseFloat(t)})),o=s[0],c=s[1],u=s[2],m=s[3],h=[o,c,u],l=[o,c,u,m];if("perspective"===a&&o&&[c,u].every((function(t){return void 0===t})))r.m34=-1/o;else if(a.includes("matrix")&&[6,16].includes(s.length)&&s.every((function(t){return!Number.isNaN(+t)}))){var f=s.map((function(t){return Math.abs(t)<1e-6?0:t}));r=r.multiply(Q(f))}else if("translate3d"===a&&h.every((function(t){return!Number.isNaN(+t)})))r=r.translate(o,c,u);else if("translate"===a&&o&&void 0===u)r=r.translate(o,c||0,0);else if("rotate3d"===a&&l.every((function(t){return!Number.isNaN(+t)}))&&m)r=r.rotateAxisAngle(o,c,u,m);else if("rotate"===a&&o&&[c,u].every((function(t){return void 0===t})))r=r.rotate(0,0,o);else if("scale3d"===a&&h.every((function(t){return!Number.isNaN(+t)}))&&h.some((function(t){return 1!==t})))r=r.scale(o,c,u);else if("scale"!==a||Number.isNaN(o)||1===o||void 0!==u)if("skew"===a&&o&&void 0===u)r=r.skewX(o),r=c?r.skewY(c):r;else{if(!(/[XYZ]/.test(a)&&o&&[c,u].every((function(t){return void 0===t}))&&["translate","rotate","scale","skew"].some((function(t){return a.includes(t)}))))throw TypeError(n);if(["skewX","skewY"].includes(a))r=r[a](o);else{var p=a.replace(/[XYZ]/,""),y=a.replace(p,""),v=["X","Y","Z"].indexOf(y),d=[0===v?o:0,1===v?o:0,2===v?o:0];r=r[p].apply(r,d)}}else{var x=Number.isNaN(+c)?o:c;r=r.scale(o,x,1)}})),r}function X(t,e,r){var n=new J;return n.m41=t,n.e=t,n.m42=e,n.f=e,n.m43=r,n}function H(t,e,r){var n=new J,a=Math.PI/180,i=t*a,s=e*a,o=r*a,c=Math.cos(i),u=-Math.sin(i),m=Math.cos(s),h=-Math.sin(s),l=Math.cos(o),f=-Math.sin(o),p=m*l,y=-m*f;n.m11=p,n.a=p,n.m12=y,n.b=y,n.m13=h;var v=u*h*l+c*f;n.m21=v,n.c=v;var d=c*l-u*h*f;return n.m22=d,n.d=d,n.m23=-u*m,n.m31=u*f-c*h*l,n.m32=u*l+c*h*f,n.m33=c*m,n}function Y(t,e,r,n){var a=new J,i=n*(Math.PI/360),s=Math.sin(i),o=Math.cos(i),c=s*s,u=Math.sqrt(t*t+e*e+r*r),m=t,h=e,l=r;0===u?(m=0,h=0,l=1):(m/=u,h/=u,l/=u);var f=m*m,p=h*h,y=l*l,v=1-2*(p+y)*c;a.m11=v,a.a=v;var d=2*(m*h*c+l*s*o);a.m12=d,a.b=d,a.m13=2*(m*l*c-h*s*o);var x=2*(h*m*c-l*s*o);a.m21=x,a.c=x;var g=1-2*(y+f)*c;return a.m22=g,a.d=g,a.m23=2*(h*l*c+m*s*o),a.m31=2*(l*m*c+h*s*o),a.m32=2*(l*h*c-m*s*o),a.m33=1-2*(f+p)*c,a}function R(t,e,r){var n=new J;return n.m11=t,n.a=t,n.m22=e,n.d=e,n.m33=r,n}function F(t){var e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m21=n,e.c=n,e}function B(t){var e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m12=n,e.b=n,e}function G(t,e){return Q([e.m11*t.m11+e.m12*t.m21+e.m13*t.m31+e.m14*t.m41,e.m11*t.m12+e.m12*t.m22+e.m13*t.m32+e.m14*t.m42,e.m11*t.m13+e.m12*t.m23+e.m13*t.m33+e.m14*t.m43,e.m11*t.m14+e.m12*t.m24+e.m13*t.m34+e.m14*t.m44,e.m21*t.m11+e.m22*t.m21+e.m23*t.m31+e.m24*t.m41,e.m21*t.m12+e.m22*t.m22+e.m23*t.m32+e.m24*t.m42,e.m21*t.m13+e.m22*t.m23+e.m23*t.m33+e.m24*t.m43,e.m21*t.m14+e.m22*t.m24+e.m23*t.m34+e.m24*t.m44,e.m31*t.m11+e.m32*t.m21+e.m33*t.m31+e.m34*t.m41,e.m31*t.m12+e.m32*t.m22+e.m33*t.m32+e.m34*t.m42,e.m31*t.m13+e.m32*t.m23+e.m33*t.m33+e.m34*t.m43,e.m31*t.m14+e.m32*t.m24+e.m33*t.m34+e.m34*t.m44,e.m41*t.m11+e.m42*t.m21+e.m43*t.m31+e.m44*t.m41,e.m41*t.m12+e.m42*t.m22+e.m43*t.m32+e.m44*t.m42,e.m41*t.m13+e.m42*t.m23+e.m43*t.m33+e.m44*t.m43,e.m41*t.m14+e.m42*t.m24+e.m43*t.m34+e.m44*t.m44])}var J=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=this;if(r.a=1,r.b=0,r.c=0,r.d=1,r.e=0,r.f=0,r.m11=1,r.m12=0,r.m13=0,r.m14=0,r.m21=0,r.m22=1,r.m23=0,r.m24=0,r.m31=0,r.m32=0,r.m33=1,r.m34=0,r.m41=0,r.m42=0,r.m43=0,r.m44=1,t&&t.length){var n=[16,6].some((function(e){return e===t.length}))?t:t[0];return r.setMatrixValue(n)}return r},U={isIdentity:{configurable:!0},is2D:{configurable:!0}};U.isIdentity.set=function(t){this.isIdentity=t},U.isIdentity.get=function(){var t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44},U.is2D.get=function(){var t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44},U.is2D.set=function(t){this.is2D=t},J.prototype.setMatrixValue=function(t){return[Array,Float64Array,Float32Array].some((function(e){return t instanceof e}))?Q(t):"string"==typeof t&&t.length&&"none"!==t?D(t):"object"==typeof t?Z(t):this},J.prototype.toArray=function(){var t=this,e=Math.pow(10,6);return(t.is2D?[t.a,t.b,t.c,t.d,t.e,t.f]:[t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44]).map((function(t){return Math.abs(t)<1e-6?0:(t*e>>0)/e}))},J.prototype.toString=function(){var t=this.toArray();return(this.is2D?"matrix":"matrix3d")+"("+t+")"},J.prototype.toJSON=function(){var t=this,e=t.is2D,r=t.isIdentity;return Object.assign({},t,{is2D:e,isIdentity:r})},J.prototype.multiply=function(t){return G(this,t)},J.prototype.translate=function(t,e,r){var n=e,a=r;return void 0===a&&(a=0),void 0===n&&(n=0),G(this,X(t,n,a))},J.prototype.scale=function(t,e,r){var n=e,a=r;return void 0===n&&(n=t),void 0===a&&(a=1),G(this,R(t,n,a))},J.prototype.rotate=function(t,e,r){var n=t,a=e,i=r;return void 0===a&&(a=0),void 0===i&&(i=n,n=0),G(this,H(n,a,i))},J.prototype.rotateAxisAngle=function(t,e,r,n){if([t,e,r,n].some((function(t){return Number.isNaN(t)})))throw new TypeError("CSSMatrix: expecting 4 values");return G(this,Y(t,e,r,n))},J.prototype.skewX=function(t){return G(this,F(t))},J.prototype.skewY=function(t){return G(this,B(t))},J.prototype.transformPoint=function(t){var e=X(t.x,t.y,t.z);return e.m44=t.w||1,{x:(e=this.multiply(e)).m41,y:e.m42,z:e.m43,w:e.m44}},J.prototype.transform=function(t){var e=this,r=e.m11*t.x+e.m12*t.y+e.m13*t.z+e.m14*t.w,n=e.m21*t.x+e.m22*t.y+e.m23*t.z+e.m24*t.w,a=e.m31*t.x+e.m32*t.y+e.m33*t.z+e.m34*t.w,i=e.m41*t.x+e.m42*t.y+e.m43*t.z+e.m44*t.w;return{x:r/i,y:n/i,z:a/i,w:i}},Object.defineProperties(J.prototype,U),Object.assign(J,{Translate:X,Rotate:H,RotateAxisAngle:Y,Scale:R,SkewX:F,SkewY:B,Multiply:G,fromArray:Q,fromMatrix:Z,fromString:D});function $(t,e,r){var n=r[0],a=r[1],i=r[2],s=t.transformPoint({x:e[0],y:e[1],z:0,w:1}),o=s.x-n,c=s.y-a,u=s.z-i;return[o*(Math.abs(i)/Math.abs(u))+n,c*(Math.abs(i)/Math.abs(u))+a]}function K(t,e){var r,n,a,i,s,o,c,m=0,h=0,l=p(t),f=b(l),y=function(t){var e=new J,r=t.origin,n=r[0],a=r[1],i=t.translate,s=t.rotate,o=t.skew,c=t.scale;return Array.isArray(i)&&i.every((function(t){return!Number.isNaN(+t)}))&&i.some((function(t){return 0!==t}))?e=e.translate(i[0]||0,i[1]||0,i[2]||0):"number"!=typeof i||Number.isNaN(+i)||(e=e.translate(i||0,0,0)),(s||o||c)&&(e=e.translate(n,a),Array.isArray(s)&&s.every((function(t){return!Number.isNaN(+t)}))&&s.some((function(t){return 0!==t}))?e=e.rotate(s[0],s[1],s[2]):"number"!=typeof s||Number.isNaN(+s)||(e=e.rotate(0,0,s)),Array.isArray(o)&&o.every((function(t){return!Number.isNaN(+t)}))&&o.some((function(t){return 0!==t}))?(e=o[0]?e.skewX(o[0]):e,e=o[1]?e.skewY(o[1]):e):"number"!=typeof o||Number.isNaN(+o)||(e=e.skewX(o||0)),Array.isArray(c)&&c.every((function(t){return!Number.isNaN(+t)}))&&c.some((function(t){return 1!==t}))?e=e.scale(c[0],c[1],c[2]):"number"!=typeof c||Number.isNaN(+c)||(e=e.scale(c||1,c||1,c||1)),e=e.translate(-n,-a)),e}(e),v=Object.keys(e),x=e.origin,g=[y.a,y.b,y.c,y.d,y.e,y.f],w=Object.assign({},M),A=[],N=0,C="",k=[],S=[];if(!y.isIdentity){for(r=0,a=l.length;r<a;r+=1){A=l[r],l[r]&&(C=A[0]),S[r]=C,"A"!==C||y.is2D&&["skewX","skewY"].find((function(t){return v.includes(t)}))||(A=I(f[r],w),l[r]=I(f[r],w),d(l,S,r),f[r]=I(f[r],w),d(f,S,r),a=Math.max(l.length,f.length)),N=(A=f[r]).length,w.x1=+A[N-2],w.y1=+A[N-1],w.x2=+A[N-4]||w.x1,w.y2=+A[N-3]||w.y1;var q={s:l[r],c:l[r][0],x:w.x1,y:w.y1};k=k.concat([q])}return k.map((function(t){var e,r,a;switch(C=t.c,A=t.s,C){case"A":return c=function(t,e,r,n){var a=Math.cos(n*Math.PI/180),i=Math.sin(n*Math.PI/180),s=[e*(t[0]*a+t[2]*i),e*(t[1]*a+t[3]*i),r*(-t[0]*i+t[2]*a),r*(-t[1]*i+t[3]*a)],o=s[0]*s[0]+s[2]*s[2],c=s[1]*s[1]+s[3]*s[3],u=((s[0]-s[3])*(s[0]-s[3])+(s[2]+s[1])*(s[2]+s[1]))*((s[0]+s[3])*(s[0]+s[3])+(s[2]-s[1])*(s[2]-s[1])),m=(o+c)/2;if(u<1e-9*m){var h=Math.sqrt(m);return{rx:h,ry:h,ax:0}}var l,f,p=s[0]*s[1]+s[2]*s[3],y=m+(u=Math.sqrt(u))/2,v=m-u/2,d=Math.abs(p)<1e-9&&Math.abs(y-c)<1e-9?90:Math.atan(Math.abs(p)>Math.abs(y-c)?(y-o)/p:p/(y-c)*180)/Math.PI;return d>=0?(l=Math.sqrt(y),f=Math.sqrt(v)):(d+=90,l=Math.sqrt(v),f=Math.sqrt(y)),{rx:l,ry:f,ax:d}}(g,A[1],A[2],A[3]),g[0]*g[3]-g[1]*g[2]<0&&(A[5]=A[5]?0:1),e=$(y,[+A[6],+A[7]],x),s=e[0],o=e[1],A=m===s&&h===o||c.rx<1e-9*c.ry||c.ry<1e-9*c.rx?["L",s,o]:[C,c.rx,c.ry,c.ax,A[4],A[5],s,o],m=s,h=o,A;case"L":case"H":case"V":return r=$(y,[t.x,t.y],x),s=r[0],o=r[1],m!==s&&h!==o?A=["L",s,o]:h===o?A=["H",s]:m===s&&(A=["V",o]),m=s,h=o,A;default:for(n=1,i=A.length;n<i;n+=2)a=$(y,[+A[n],+A[n+1]],x),m=a[0],h=a[1],A[n]=m,A[n+1]=h;return A}}))}return u(l)}function W(t,e,r,n,a,i,s,o){var c,u=a-2*r+t-(s-2*a+r),m=2*(r-t)-2*(a-r),h=t-r,l=(-m+Math.sqrt(m*m-4*u*h))/2/u,f=(-m-Math.sqrt(m*m-4*u*h))/2/u,p=[e,o],y=[t,s];return Math.abs(l)>"1e12"&&(l=.5),Math.abs(f)>"1e12"&&(f=.5),l>0&&l<1&&(c=S(t,e,r,n,a,i,s,o,l),y.push(c.x),p.push(c.y)),f>0&&f<1&&(c=S(t,e,r,n,a,i,s,o,f),y.push(c.x),p.push(c.y)),u=i-2*n+e-(o-2*i+n),h=e-n,l=(-(m=2*(n-e)-2*(i-n))+Math.sqrt(m*m-4*u*h))/2/u,f=(-m-Math.sqrt(m*m-4*u*h))/2/u,Math.abs(l)>"1e12"&&(l=.5),Math.abs(f)>"1e12"&&(f=.5),l>0&&l<1&&(c=S(t,e,r,n,a,i,s,o,l),y.push(c.x),p.push(c.y)),f>0&&f<1&&(c=S(t,e,r,n,a,i,s,o,f),y.push(c.x),p.push(c.y)),{min:{x:Math.min.apply(0,y),y:Math.min.apply(0,p)},max:{x:Math.max.apply(0,y),y:Math.max.apply(0,p)}}}function _(t){if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0,cx:0,cy:0};var e=T(t),r=0,n=0,a=[],i=[];e.forEach((function(t){var e=t.slice(-2).map(Number),s=e[0],o=e[1];if("M"===t[0])r=s,n=o,a.push(s),i.push(o);else{var c=[r,n].concat(t.slice(1)),u=W.apply(void 0,c);a=a.concat([u.min.x],[u.max.x]),i=i.concat([u.min.y],[u.max.y]),r=s,n=o}}));var s=Math.min.apply(0,a),o=Math.min.apply(0,i),c=Math.max.apply(0,a),u=Math.max.apply(0,i),m=c-s,h=u-o;return{width:m,height:h,x:s,y:o,x2:c,y2:u,cx:s+m/2,cy:o+h/2}}Object.assign(J,{Version:"0.0.24"});var tt=function(e,r){var n=r||{};this.segments=l(e);var a=_(this.segments),i=a.width,s=a.height,o=t.round,c=t.origin,u=n.round,m=n.origin;if("auto"===u){var h=(""+Math.floor(Math.max(i,s))).length;o=h>=4?0:4-h}else(Number.isInteger(u)&&u>=1||!1===u)&&(o=u);Array.isArray(m)&&[2,3].includes(m.length)&&m.map((function(t){return!Number.isNaN(t)}))?c=[].concat(m.map(Number)):c=[a.cx,a.cy,Math.max(i,s)+Math.min(i,s)/2];return this.round=o,this.origin=c,this};function et(t,e,r,n,a,i,s,o){return 3*((o-e)*(r+a)-(s-t)*(n+i)+n*(t-a)-r*(e-i)+o*(a+t/3)-s*(i+e/3))/20}function rt(t){var e=0,r=0,n=0;return T(t).map((function(t){var a,i;switch(t[0]){case"M":return e=(a=t)[1],r=a[2],0;default:return n=et.apply(void 0,[e,r].concat(t.slice(1))),i=t.slice(-2).map(Number),e=i[0],r=i[1],n}})).reduce((function(t,e){return t+e}),0)}function nt(t,e,r,n,a){return a*(a*(-3*t+9*e-9*r+3*n)+6*t-12*e+6*r)-3*t+3*e}function at(t,e,r,n,a,i,s,o,c){var u=c;(null===c||Number.isNaN(+c))&&(u=1),u>1&&(u=1),u<0&&(u=0);var m=u/2,h=0,l=0,f=0,p=0,y=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472];return[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816].forEach((function(c,u){l=nt(t,r,a,s,h=m*c+m),f=nt(e,n,i,o,h),p+=y[u]*Math.sqrt(l*l+f*f)})),m*p}tt.prototype.toAbsolute=function(){var t=this.segments;return this.segments=p(t),this},tt.prototype.toRelative=function(){var t=this.segments;return this.segments=v(t),this},tt.prototype.toCurve=function(){var t=this.segments;return this.segments=T(t),this},tt.prototype.reverse=function(t){this.toAbsolute();var e=this.segments,r=z(this.toString()),n=r.length>1?r:0,a=n&&u(n).map((function(e,r){return t?r?O(e):l(e):O(e)})),i=[];return i=n?a.flat(1):t?e:O(e),this.segments=u(i),this},tt.prototype.normalize=function(){var t=this.segments;return this.segments=b(t),this},tt.prototype.optimize=function(){var t=this.segments;return this.segments=L(t,this.round),this},tt.prototype.transform=function(t){if(!t||"object"!=typeof t||"object"==typeof t&&!["translate","rotate","skew","scale"].some((function(e){return e in t})))return this;var e={};Object.keys(t).forEach((function(r){e[r]=Array.isArray(t[r])?[].concat(t[r]):Number(t[r])}));var r=this.segments;return e.origin||(e.origin=Object.assign({},this.origin)),this.segments=K(r,e),this},tt.prototype.flipX=function(){return this.transform({rotate:[180,0,0]}),this},tt.prototype.flipY=function(){return this.transform({rotate:[0,180,0]}),this},tt.prototype.toString=function(){return V(this.segments,this.round)};var it={circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],rect:["width","height","x","y","rx","ry"],polygon:["points"],polyline:["points"],glyph:[]};var st={CSSMatrix:J,parsePathString:l,isPathArray:h,isCurveArray:A,isAbsoluteArray:f,isRelativeArray:y,isNormalizedArray:g,isValidPath:function(t){if("string"!=typeof t)return!1;var e=new m(t);for(s(e);e.index<e.max&&!e.err.length;)c(e);return!e.err.length&&"mM".includes(e.segments[0][0])},pathToAbsolute:p,pathToRelative:v,pathToCurve:T,pathToString:V,getDrawDirection:function(t){return rt(T(t))>=0},getPathArea:rt,getPathBBox:_,getPathLength:function(t){var e=0;return T(t).forEach((function(t,r,n){var a="M"!==t[0]?n[r-1].slice(-2).concat(t.slice(1)):[];e+="M"===t[0]?0:at.apply(void 0,a)})),e},getPointAtLength:function(t,e){var r,n,a,i=0;return T(t).map((function(t,s,o){if(n=s?o[s-1].slice(-2).concat(t.slice(1)):t.slice(1),r=s?at.apply(void 0,n):0,i+=r,0===s)a={x:n[0],y:n[1]};else if(i>e&&e>i-r){var c=n.concat([1-(i-e)/r]);a=S.apply(void 0,c)}else a=null;return a})).filter((function(t){return t})).slice(-1)[0]},clonePath:u,splitPath:z,fixPath:w,roundPath:j,optimizePath:L,reverseCurve:function(t){var e=t.slice(1).map((function(e,r,n){return r?n[r-1].slice(-2).concat(e.slice(1)):t[0].slice(1).concat(e.slice(1))})).map((function(t){return t.map((function(e,r){return t[t.length-r-2*(1-r%2)]}))})).reverse();return[["M"].concat(e[0].slice(0,2))].concat(e.map((function(t){return["C"].concat(t.slice(2))})))},reversePath:O,normalizePath:b,transformPath:K,shapeToPath:function(e,r){var n=Object.keys(it),a=e instanceof Element;if(a&&!n.some((function(t){return e.tagName===t})))throw TypeError('shapeToPath: "'+e+'" is not SVGElement');var i,s=document.createElementNS("http://www.w3.org/2000/svg","path"),o=a?e.tagName:e.type,c={};if(c.type=o,a){var u=it[o];u.forEach((function(t){c[t]=e.getAttribute(t)})),Object.values(e.attributes).forEach((function(t){var e=t.name,r=t.value;u.includes(e)||s.setAttribute(e,r)}))}else Object.assign(c,e);var m,h,l,f,p=t.round;return"circle"===o?i=V((h=(m=c).cx,l=m.cy,f=m.r,[["M",h-f,l],["a",f,f,0,1,0,2*f,0],["a",f,f,0,1,0,-2*f,0]]),p):"ellipse"===o?i=V(function(t){var e=t.cx,r=t.cy,n=t.rx,a=t.ry;return[["M",e-n,r],["a",n,a,0,1,0,2*n,0],["a",n,a,0,1,0,-2*n,0]]}(c),p):["polyline","polygon"].includes(o)?i=V(function(t){for(var e=[],r=t.points.split(/[\s|,]/).map(Number),n=0;n<r.length;)e.push([n?"L":"M",r[n],r[n+1]]),n+=2;return"polygon"===t.type?e.concat([["z"]]):e}(c),p):"rect"===o?i=V(function(t){var e=+t.x||0,r=+t.y||0,n=+t.width,a=+t.height,i=+t.rx,s=+t.ry;return i||s?(i=i||s,s=s||i,2*i>n&&(i-=(2*i-n)/2),2*s>a&&(s-=(2*s-a)/2),[["M",e+i,r],["h",n-2*i],["s",i,0,i,s],["v",a-2*s],["s",0,s,-i,s],["h",2*i-n],["s",-i,0,-i,-s],["v",2*s-a],["s",0,-s,i,-s]]):[["M",e,r],["h",n],["v",a],["H",e],["Z"]]}(c),p):"line"===o?i=V(function(t){return[["M",t.x1,t.y1],["L",t.x2,t.y2]]}(c),p):"glyph"===o&&(i=a?e.getAttribute("d"):e.type),!!i&&(s.setAttribute("d",i),r&&a&&(e.before(s,e),e.remove()),s)},options:t};return Object.assign(tt,st,{Version:"0.1.20"}),tt}));
1
+ // SVGPathCommander v0.1.21 | thednp © 2021 | MIT-License
2
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).SVGPathCommander=e()}(this,(function(){"use strict";var t={origin:[0,0,0],round:4},e={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function r(t){var r=t.pathValue[t.segmentStart],n=r.toLowerCase(),a=t.data;for("m"===n&&a.length>2&&(t.segments.push([r,a[0],a[1]]),a=a.slice(2),n="l",r="m"===r?"l":"L");a.length>=e[n]&&(t.segments.push([r].concat(a.splice(0,e[n]))),e[n]););}function n(t){var e=t.index,r=t.pathValue.charCodeAt(e);return 48===r?(t.param=0,void(t.index+=1)):49===r?(t.param=1,void(t.index+=1)):void(t.err='Invalid path value: invalid Arc flag "'+r+'", expecting 0 or 1 at index '+e)}function a(t){return t>=48&&t<=57}function i(t){var e,r=t.max,n=t.pathValue,i=t.index,s=i,o=!1,c=!1,u=!1,m=!1;if(s>=r)t.err="Invalid path value at "+s+": missing param "+n[s];else if(43!==(e=n.charCodeAt(s))&&45!==e||(e=(s+=1)<r?n.charCodeAt(s):0),a(e)||46===e){if(46!==e){if(o=48===e,e=(s+=1)<r?n.charCodeAt(s):0,o&&s<r&&e&&a(e))return void(t.err="Invalid path value at index "+i+": "+n[i]+" illegal number");for(;s<r&&a(n.charCodeAt(s));)s+=1,c=!0;e=s<r?n.charCodeAt(s):0}if(46===e){for(m=!0,s+=1;a(n.charCodeAt(s));)s+=1,u=!0;e=s<r?n.charCodeAt(s):0}if(101===e||69===e){if(m&&!c&&!u)return void(t.err="Invalid path value at index "+s+": "+n[s]+" invalid float exponent");if(43!==(e=(s+=1)<r?n.charCodeAt(s):0)&&45!==e||(s+=1),!(s<r&&a(n.charCodeAt(s))))return void(t.err="Invalid path value at index "+s+": "+n[s]+" invalid float exponent");for(;s<r&&a(n.charCodeAt(s));)s+=1}t.index=s,t.param=+t.pathValue.slice(i,s)}else t.err="Invalid path value at index "+s+": "+n[s]+" is not a number"}function s(t){for(var e,r=t.pathValue,n=t.max;t.index<n&&(10===(e=r.charCodeAt(t.index))||13===e||8232===e||8233===e||32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0);)t.index+=1}function o(t){return t>=48&&t<=57||43===t||45===t||46===t}function c(t){var a=t.max,c=t.pathValue,u=t.index,m=c.charCodeAt(u),h=e[c[u].toLowerCase()];if(t.segmentStart=u,function(t){switch(32|t){case 109:case 122:case 108:case 104:case 118:case 99:case 115:case 113:case 116:case 97:return!0;default:return!1}}(m))if(t.index+=1,s(t),t.data=[],h){for(;;){for(var l=h;l>0;l-=1){if(97!=(32|m)||3!==l&&4!==l?i(t):n(t),t.err.length)return;t.data.push(t.param),s(t),t.index<a&&44===c.charCodeAt(t.index)&&(t.index+=1,s(t))}if(t.index>=t.max)break;if(!o(c.charCodeAt(t.index)))break}r(t)}else r(t);else t.err="Invalid path value: "+c[u]+" not a path command"}function u(t){return t.map((function(t){return Array.isArray(t)?[].concat(t):t}))}function m(t){this.segments=[],this.pathValue=t,this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}function h(t){return Array.isArray(t)&&t.every((function(t){var r=t[0].toLowerCase();return e[r]===t.length-1&&"achlmqstvz".includes(r)}))}function l(t){if(Array.isArray(t)&&h(t))return u(t);var e=new m(t);for(s(e);e.index<e.max&&!e.err.length;)c(e);return e.err.length?e.segments=[]:e.segments.length&&("mM".includes(e.segments[0][0])?e.segments[0][0]="M":(e.err="Invalid path value: missing M/m",e.segments=[])),e.segments}function f(t){return h(t)&&t.every((function(t){return t[0]===t[0].toUpperCase()}))}function p(t){if(Array.isArray(t)&&f(t))return u(t);var e=l(t),r=0,n=0,a=0,i=0;return e.map((function(t){var e,s=t.slice(1).map(Number),o=t[0],c=o.toUpperCase();if("M"===o)return r=(e=s)[0],n=e[1],a=r,i=n,["M",r,n];var u=[];if(o!==c)switch(c){case"A":u=[c,s[0],s[1],s[2],s[3],s[4],s[5]+r,s[6]+n];break;case"V":u=[c,s[0]+n];break;case"H":u=[c,s[0]+r];break;default:var m=s.map((function(t,e){return t+(e%2?n:r)}));u=[c].concat(m)}else u=[c].concat(s);var h=u.length;switch(c){case"Z":r=a,n=i;break;case"H":r=u[1];break;case"V":n=u[1];break;default:r=u[h-2],n=u[h-1],"M"===c&&(a=r,i=n)}return u}))}function y(t){return h(t)&&t.slice(1).every((function(t){return t[0]===t[0].toLowerCase()}))}function v(t){if(y(t))return u(t);var e=l(t),r=0,n=0,a=0,i=0;return e.map((function(t){var e,s,o=t.slice(1).map(Number),c=t[0],u=c.toLowerCase();if("M"===c)return r=(e=o)[0],n=e[1],a=r,i=n,["M",r,n];var m=[];if(c!==u)switch(u){case"a":m=[u,o[0],o[1],o[2],o[3],o[4],o[5]-r,o[6]-n];break;case"v":m=[u,o[0]-n];break;case"h":m=[u,o[0]-r];break;default:var h=o.map((function(t,e){return t-(e%2?n:r)}));m=[u].concat(h),"m"===u&&(r=(s=o)[0],n=s[1],a=r,i=n)}else"m"===c&&(a=o[0]+r,i=o[1]+n),m=[u].concat(o);var l=m.length;switch(u){case"z":r=a,n=i;break;case"h":r+=m[1];break;case"v":n+=m[1];break;default:r+=m[l-2],n+=m[l-1]}return m}))}function d(t,e,r){if(t[r].length>7){t[r].shift();for(var n=t[r],a=r;n.length;)e[r]="A",t.splice(a+=1,0,["C"].concat(n.splice(0,6)));t.splice(r,1)}}function x(t,e,r){var n=t[0],a=e.x1,i=e.y1,s=e.x2,o=e.y2,c=t.slice(1).map(Number),u=t;if("TQ".includes(n)||(e.qx=null,e.qy=null),"H"===n)u=["L",t[1],i];else if("V"===n)u=["L",a,t[1]];else if("S"===n){var m=function(t,e,r,n,a){return"CS".includes(a)?{x1:2*t-r,y1:2*e-n}:{x1:t,y1:e}}(a,i,s,o,r),h=m.x1,l=m.y1;e.x1=h,e.y1=l,u=["C",h,l].concat(c)}else if("T"===n){var f=function(t,e,r,n,a){return"QT".includes(a)?{qx:2*t-r,qy:2*e-n}:{qx:t,qy:e}}(a,i,e.qx,e.qy,r),p=f.qx,y=f.qy;e.qx=p,e.qy=y,u=["Q",p,y].concat(c)}else if("Q"===n){var v=c[0],d=c[1];e.qx=v,e.qy=d}return u}function g(t){return f(t)&&t.every((function(t){return"ACLMQZ".includes(t[0])}))}var M={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function b(t){if(g(t))return u(t);for(var e=p(t),r=Object.assign({},M),n=[],a=e.length,i="",s="",o=0;o<a;o+=1){i=e[o][0],n[o]=i,o&&(s=n[o-1]),e[o]=x(e[o],r,s);var c=e[o],m=c.length;r.x1=+c[m-2],r.y1=+c[m-1],r.x2=+c[m-4]||r.x1,r.y2=+c[m-3]||r.y1}return e}function w(t){var e=l(t),r=b(e),n=e.length,a="Z"===r.slice(-1)[0][0],i=a?n-2:n-1,s=r[0].slice(1),o=s[0],c=s[1],u=r[i].slice(-2),m=u[0],h=u[1];return a&&o===m&&c===h?e.slice(0,-1):e}function N(t){return h(t)&&t.every((function(t){return"MC".includes(t[0])}))}function A(t,e,r){return{x:t*Math.cos(r)-e*Math.sin(r),y:t*Math.sin(r)+e*Math.cos(r)}}function C(t,e,r,n,a,i,s,o,c,u){var m,h,l,f,p,y,v=t,d=e,x=r,g=n,M=o,b=c,w=120*Math.PI/180,N=Math.PI/180*(+a||0),k=[];if(u)l=(m=u)[0],f=m[1],p=m[2],y=m[3];else{v=(h=A(v,d,-N)).x,d=h.y;var S=(v-(M=(h=A(M,b,-N)).x))/2,q=(d-(b=h.y))/2,P=S*S/(x*x)+q*q/(g*g);P>1&&(x*=P=Math.sqrt(P),g*=P);var I=x*x,T=g*g,j=(i===s?-1:1)*Math.sqrt(Math.abs((I*T-I*q*q-T*S*S)/(I*q*q+T*S*S)));p=j*x*q/g+(v+M)/2,y=j*-g*S/x+(d+b)/2,l=(Math.asin((d-y)/g)*Math.pow(10,9)>>0)/Math.pow(10,9),f=(Math.asin((b-y)/g)*Math.pow(10,9)>>0)/Math.pow(10,9),l=v<p?Math.PI-l:l,f=M<p?Math.PI-f:f,l<0&&(l=2*Math.PI+l),f<0&&(f=2*Math.PI+f),s&&l>f&&(l-=2*Math.PI),!s&&f>l&&(f-=2*Math.PI)}var V=f-l;if(Math.abs(V)>w){var z=f,O=M,E=b;f=l+w*(s&&f>l?1:-1),k=C(M=p+x*Math.cos(f),b=y+g*Math.sin(f),x,g,a,0,s,O,E,[f,z,p,y])}V=f-l;var L=Math.cos(l),Q=Math.sin(l),Z=Math.cos(f),D=Math.sin(f),X=Math.tan(V/4),H=4/3*x*X,Y=4/3*g*X,R=[v,d],F=[v+H*Q,d-Y*L],B=[M+H*D,b-Y*Z],G=[M,b];if(F[0]=2*R[0]-F[0],F[1]=2*R[1]-F[1],u)return F.concat(B,G,k);for(var J=[],U=0,$=(k=F.concat(B,G,k)).length;U<$;U+=1)J[U]=U%2?A(k[U-1],k[U],N).y:A(k[U],k[U+1],N).x;return J}function k(t,e,r,n,a,i){return[1/3*t+2/3*r,1/3*e+2/3*n,1/3*a+2/3*r,1/3*i+2/3*n,a,i]}function S(t,e,r,n,a,i,s,o,c){var u=1-c;return{x:Math.pow(u,3)*t+u*u*3*c*r+3*u*c*c*a+Math.pow(c,3)*s,y:Math.pow(u,3)*e+u*u*3*c*n+3*u*c*c*i+Math.pow(c,3)*o}}function q(t,e,r){var n=t[0],a=t[1];return[n+(e[0]-n)*r,a+(e[1]-a)*r]}function P(t,e,r,n){var a=.5,i=[t,e],s=[r,n],o=q(i,s,a),c=q(s,o,a),u=q(o,c,a),m=q(c,u,a),h=q(u,m,a),l=i.concat(o,u,h,[a]),f=S.apply(void 0,l),p=h.concat(m,c,s,[0]),y=S.apply(void 0,p);return[f.x,f.y,y.x,y.y,r,n]}function I(t,e){var r,n=t[0],a=t.slice(1).map((function(t){return+t})),i=a[0],s=a[1],o=e.x1,c=e.y1,u=e.x,m=e.y;switch("TQ".includes(n)||(e.qx=null,e.qy=null),n){case"M":return e.x=i,e.y=s,t;case"A":return r=[o,c].concat(a),["C"].concat(C.apply(void 0,r));case"Q":return e.qx=i,e.qy=s,r=[o,c].concat(a),["C"].concat(k.apply(void 0,r));case"L":return["C"].concat(P(o,c,i,s));case"Z":return["C"].concat(P(o,c,u,m))}return t}function T(t){if(N(t))return u(t);for(var e=w(b(t)),r=Object.assign({},M),n=[],a="",i=e.length,s=0;s<i;s+=1){a=e[s][0],n[s]=a,e[s]=I(e[s],r),d(e,n,s),i=e.length;var o=e[s],c=o.length;r.x1=+o[c-2],r.y1=+o[c-1],r.x2=+o[c-4]||r.x1,r.y2=+o[c-3]||r.y1}return e}function j(e,r){var n=t.round;if(!1===r||!1===n)return u(e);var a=(n=r>=1?r:n)>=1?Math.pow(10,n):1;return e.map((function(t){var e=t.slice(1).map(Number).map((function(t){return t%1==0?t:Math.round(t*a)/a}));return[t[0]].concat(e)}))}function V(t,e){return j(t,e).map((function(t){return t[0]+t.slice(1).join(" ")})).join("")}function z(t){var e=p(t),r="Z"===e.slice(-1)[0][0],n=b(e).map((function(t,r){var n=t.slice(-2).map(Number),a=n[0],i=n[1];return{seg:e[r],n:t,c:e[r][0],x:a,y:i}})).map((function(t,e,n){var a=t.seg,i=t.n,s=e&&n[e-1],o=n[e+1]&&n[e+1],c=t.c,u=n.length,m=e?n[e-1].x:n[u-1].x,h=e?n[e-1].y:n[u-1].y,l=[];switch(c){case"M":l=r?["Z"]:[c,m,h];break;case"A":l=[c].concat(a.slice(1,-3),[1===a[5]?0:1],[m],[h]);break;case"C":l=o&&"S"===o.c?["S",a[1],a[2],m,h]:[c,a[3],a[4],a[1],a[2],m,h];break;case"S":l=s&&"CS".includes(s.c)&&(!o||o&&"S"!==o.c)?["C",i[3],i[4],i[1],i[2],m,h]:[c,i[1],i[2],m,h];break;case"Q":l=o&&"T"===o.c?["T",m,h]:[c].concat(a.slice(1,-2),[m],[h]);break;case"T":l=s&&"QT".includes(s.c)&&(!o||o&&"T"!==o.c)?["Q",i[1],i[2],m,h]:[c,m,h];break;case"Z":l=["M",m,h];break;case"H":l=[c,m];break;case"V":l=[c,h];break;default:l=[c].concat(a.slice(1,-2),[m],[h])}return l}));return r?n.reverse():[n[0]].concat(n.slice(1).reverse())}function O(t){return V(p(t),0).replace(/(m|M)/g,"|$1").split("|").map((function(t){return t.trim()})).filter((function(t){return t}))}function E(t,e,r,n){var a=t[0],i=function(t){return Math.round(t*Math.pow(10,4))/Math.pow(10,4)},s=t.slice(1).map((function(t){return+t})),o=e.slice(1).map((function(t){return+t})),c=r.x1,u=r.y1,m=r.x2,h=r.y2,l=r.x,f=r.y,p=t,y=o.slice(-2),v=y[0],d=y[1];if("TQ".includes(a)||(r.qx=null,r.qy=null),["V","H","S","T","Z"].includes(a))p=[a].concat(s);else if("L"===a)i(l)===i(v)?p=["V",d]:i(f)===i(d)&&(p=["H",v]);else if("C"===a){var x=o[0],g=o[1];"CS".includes(n)&&i(x)===i(2*c-m)&&i(g)===i(2*u-h)&&(p=["S"].concat(o.slice(-4))),r.x1=x,r.y1=g}else if("Q"===a){var M=o[0],b=o[1];r.qx=M,r.qy=b,"QT".includes(n)&&i(M)===i(2*c-m)&&i(b)===i(2*u-h)&&(p=["T"].concat(o.slice(-2)))}return p}function L(t,e){for(var r,n=p(t),a=b(n),i=Object.assign({},M),s=[],o=n.length,c="",u="",m=0,h=0,l=0,f=0,y=0;y<o;y+=1){c=n[y][0],s[y]=c,y&&(u=s[y-1]),n[y]=E(n[y],a[y],i,u);var d=n[y],x=d.length;switch(i.x1=+d[x-2],i.y1=+d[x-1],i.x2=+d[x-4]||i.x1,i.y2=+d[x-3]||i.y1,c){case"Z":m=l,h=f;break;case"H":m=d[1];break;case"V":h=d[1];break;default:m=(r=d.slice(-2).map(Number))[0],h=r[1],"M"===c&&(l=m,f=h)}i.x=m,i.y=h}var g=j(n,e),w=j(v(n),e);return g.map((function(t,e){return e?t.join("").length<w[e].join("").length?t:w[e]:t}))}function Q(t){var e=new J,r=Array.from(t);if(!r.every((function(t){return!Number.isNaN(t)})))throw TypeError('CSSMatrix: "'+t+'" must only have numbers.');if(16===r.length){var n=r[0],a=r[1],i=r[2],s=r[3],o=r[4],c=r[5],u=r[6],m=r[7],h=r[8],l=r[9],f=r[10],p=r[11],y=r[12],v=r[13],d=r[14],x=r[15];e.m11=n,e.a=n,e.m21=o,e.c=o,e.m31=h,e.m41=y,e.e=y,e.m12=a,e.b=a,e.m22=c,e.d=c,e.m32=l,e.m42=v,e.f=v,e.m13=i,e.m23=u,e.m33=f,e.m43=d,e.m14=s,e.m24=m,e.m34=p,e.m44=x}else{if(6!==r.length)throw new TypeError("CSSMatrix: expecting an Array of 6/16 values.");var g=r[0],M=r[1],b=r[2],w=r[3],N=r[4],A=r[5];e.m11=g,e.a=g,e.m12=M,e.b=M,e.m21=b,e.c=b,e.m22=w,e.d=w,e.m41=N,e.e=N,e.m42=A,e.f=A}return e}function Z(t){var e=Object.keys(new J);if("object"==typeof t&&e.every((function(e){return e in t})))return Q([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44]);throw TypeError('CSSMatrix: "'+t+'" is not a DOMMatrix / CSSMatrix / JSON compatible object.')}function D(t){if("string"!=typeof t)throw TypeError('CSSMatrix: "'+t+'" is not a string.');var e=String(t).replace(/\s/g,""),r=new J,n='CSSMatrix: invalid transform string "'+t+'"';return e.split(")").filter((function(t){return t})).forEach((function(t){var e=t.split("("),a=e[0],i=e[1];if(!i)throw TypeError(n);var s=i.split(",").map((function(t){return t.includes("rad")?parseFloat(t)*(180/Math.PI):parseFloat(t)})),o=s[0],c=s[1],u=s[2],m=s[3],h=[o,c,u],l=[o,c,u,m];if("perspective"===a&&o&&[c,u].every((function(t){return void 0===t})))r.m34=-1/o;else if(a.includes("matrix")&&[6,16].includes(s.length)&&s.every((function(t){return!Number.isNaN(+t)}))){var f=s.map((function(t){return Math.abs(t)<1e-6?0:t}));r=r.multiply(Q(f))}else if("translate3d"===a&&h.every((function(t){return!Number.isNaN(+t)})))r=r.translate(o,c,u);else if("translate"===a&&o&&void 0===u)r=r.translate(o,c||0,0);else if("rotate3d"===a&&l.every((function(t){return!Number.isNaN(+t)}))&&m)r=r.rotateAxisAngle(o,c,u,m);else if("rotate"===a&&o&&[c,u].every((function(t){return void 0===t})))r=r.rotate(0,0,o);else if("scale3d"===a&&h.every((function(t){return!Number.isNaN(+t)}))&&h.some((function(t){return 1!==t})))r=r.scale(o,c,u);else if("scale"!==a||Number.isNaN(o)||1===o||void 0!==u)if("skew"===a&&o&&void 0===u)r=r.skewX(o),r=c?r.skewY(c):r;else{if(!(/[XYZ]/.test(a)&&o&&[c,u].every((function(t){return void 0===t}))&&["translate","rotate","scale","skew"].some((function(t){return a.includes(t)}))))throw TypeError(n);if(["skewX","skewY"].includes(a))r=r[a](o);else{var p=a.replace(/[XYZ]/,""),y=a.replace(p,""),v=["X","Y","Z"].indexOf(y),d=[0===v?o:0,1===v?o:0,2===v?o:0];r=r[p].apply(r,d)}}else{var x=Number.isNaN(+c)?o:c;r=r.scale(o,x,1)}})),r}function X(t,e,r){var n=new J;return n.m41=t,n.e=t,n.m42=e,n.f=e,n.m43=r,n}function H(t,e,r){var n=new J,a=Math.PI/180,i=t*a,s=e*a,o=r*a,c=Math.cos(i),u=-Math.sin(i),m=Math.cos(s),h=-Math.sin(s),l=Math.cos(o),f=-Math.sin(o),p=m*l,y=-m*f;n.m11=p,n.a=p,n.m12=y,n.b=y,n.m13=h;var v=u*h*l+c*f;n.m21=v,n.c=v;var d=c*l-u*h*f;return n.m22=d,n.d=d,n.m23=-u*m,n.m31=u*f-c*h*l,n.m32=u*l+c*h*f,n.m33=c*m,n}function Y(t,e,r,n){var a=new J,i=n*(Math.PI/360),s=Math.sin(i),o=Math.cos(i),c=s*s,u=Math.sqrt(t*t+e*e+r*r),m=t,h=e,l=r;0===u?(m=0,h=0,l=1):(m/=u,h/=u,l/=u);var f=m*m,p=h*h,y=l*l,v=1-2*(p+y)*c;a.m11=v,a.a=v;var d=2*(m*h*c+l*s*o);a.m12=d,a.b=d,a.m13=2*(m*l*c-h*s*o);var x=2*(h*m*c-l*s*o);a.m21=x,a.c=x;var g=1-2*(y+f)*c;return a.m22=g,a.d=g,a.m23=2*(h*l*c+m*s*o),a.m31=2*(l*m*c+h*s*o),a.m32=2*(l*h*c-m*s*o),a.m33=1-2*(f+p)*c,a}function R(t,e,r){var n=new J;return n.m11=t,n.a=t,n.m22=e,n.d=e,n.m33=r,n}function F(t){var e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m21=n,e.c=n,e}function B(t){var e=new J,r=t*Math.PI/180,n=Math.tan(r);return e.m12=n,e.b=n,e}function G(t,e){return Q([e.m11*t.m11+e.m12*t.m21+e.m13*t.m31+e.m14*t.m41,e.m11*t.m12+e.m12*t.m22+e.m13*t.m32+e.m14*t.m42,e.m11*t.m13+e.m12*t.m23+e.m13*t.m33+e.m14*t.m43,e.m11*t.m14+e.m12*t.m24+e.m13*t.m34+e.m14*t.m44,e.m21*t.m11+e.m22*t.m21+e.m23*t.m31+e.m24*t.m41,e.m21*t.m12+e.m22*t.m22+e.m23*t.m32+e.m24*t.m42,e.m21*t.m13+e.m22*t.m23+e.m23*t.m33+e.m24*t.m43,e.m21*t.m14+e.m22*t.m24+e.m23*t.m34+e.m24*t.m44,e.m31*t.m11+e.m32*t.m21+e.m33*t.m31+e.m34*t.m41,e.m31*t.m12+e.m32*t.m22+e.m33*t.m32+e.m34*t.m42,e.m31*t.m13+e.m32*t.m23+e.m33*t.m33+e.m34*t.m43,e.m31*t.m14+e.m32*t.m24+e.m33*t.m34+e.m34*t.m44,e.m41*t.m11+e.m42*t.m21+e.m43*t.m31+e.m44*t.m41,e.m41*t.m12+e.m42*t.m22+e.m43*t.m32+e.m44*t.m42,e.m41*t.m13+e.m42*t.m23+e.m43*t.m33+e.m44*t.m43,e.m41*t.m14+e.m42*t.m24+e.m43*t.m34+e.m44*t.m44])}var J=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=this;if(r.a=1,r.b=0,r.c=0,r.d=1,r.e=0,r.f=0,r.m11=1,r.m12=0,r.m13=0,r.m14=0,r.m21=0,r.m22=1,r.m23=0,r.m24=0,r.m31=0,r.m32=0,r.m33=1,r.m34=0,r.m41=0,r.m42=0,r.m43=0,r.m44=1,t&&t.length){var n=[16,6].some((function(e){return e===t.length}))?t:t[0];return r.setMatrixValue(n)}return r},U={isIdentity:{configurable:!0},is2D:{configurable:!0}};U.isIdentity.set=function(t){this.isIdentity=t},U.isIdentity.get=function(){var t=this;return 1===t.m11&&0===t.m12&&0===t.m13&&0===t.m14&&0===t.m21&&1===t.m22&&0===t.m23&&0===t.m24&&0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m41&&0===t.m42&&0===t.m43&&1===t.m44},U.is2D.get=function(){var t=this;return 0===t.m31&&0===t.m32&&1===t.m33&&0===t.m34&&0===t.m43&&1===t.m44},U.is2D.set=function(t){this.is2D=t},J.prototype.setMatrixValue=function(t){return[Array,Float64Array,Float32Array].some((function(e){return t instanceof e}))?Q(t):"string"==typeof t&&t.length&&"none"!==t?D(t):"object"==typeof t?Z(t):this},J.prototype.toArray=function(){var t=this,e=Math.pow(10,6);return(t.is2D?[t.a,t.b,t.c,t.d,t.e,t.f]:[t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44]).map((function(t){return Math.abs(t)<1e-6?0:(t*e>>0)/e}))},J.prototype.toString=function(){var t=this.toArray();return(this.is2D?"matrix":"matrix3d")+"("+t+")"},J.prototype.toJSON=function(){var t=this,e=t.is2D,r=t.isIdentity;return Object.assign({},t,{is2D:e,isIdentity:r})},J.prototype.multiply=function(t){return G(this,t)},J.prototype.translate=function(t,e,r){var n=e,a=r;return void 0===a&&(a=0),void 0===n&&(n=0),G(this,X(t,n,a))},J.prototype.scale=function(t,e,r){var n=e,a=r;return void 0===n&&(n=t),void 0===a&&(a=1),G(this,R(t,n,a))},J.prototype.rotate=function(t,e,r){var n=t,a=e,i=r;return void 0===a&&(a=0),void 0===i&&(i=n,n=0),G(this,H(n,a,i))},J.prototype.rotateAxisAngle=function(t,e,r,n){if([t,e,r,n].some((function(t){return Number.isNaN(t)})))throw new TypeError("CSSMatrix: expecting 4 values");return G(this,Y(t,e,r,n))},J.prototype.skewX=function(t){return G(this,F(t))},J.prototype.skewY=function(t){return G(this,B(t))},J.prototype.transformPoint=function(t){var e=X(t.x,t.y,t.z);return e.m44=t.w||1,{x:(e=this.multiply(e)).m41,y:e.m42,z:e.m43,w:e.m44}},J.prototype.transform=function(t){var e=this,r=e.m11*t.x+e.m12*t.y+e.m13*t.z+e.m14*t.w,n=e.m21*t.x+e.m22*t.y+e.m23*t.z+e.m24*t.w,a=e.m31*t.x+e.m32*t.y+e.m33*t.z+e.m34*t.w,i=e.m41*t.x+e.m42*t.y+e.m43*t.z+e.m44*t.w;return{x:r/i,y:n/i,z:a/i,w:i}},Object.defineProperties(J.prototype,U),Object.assign(J,{Translate:X,Rotate:H,RotateAxisAngle:Y,Scale:R,SkewX:F,SkewY:B,Multiply:G,fromArray:Q,fromMatrix:Z,fromString:D});function $(t,e,r){var n=e[0],a=e[1],i=r[0],s=r[1],o=r[2],c=t.transformPoint({x:n,y:a,z:0,w:1}),u=c.x-i,m=c.y-s,h=c.z-o;return[u*(Math.abs(o)/Math.abs(h))+i,m*(Math.abs(o)/Math.abs(h))+s]}function K(t,e){var r,n,a,i,s,o,c,m=0,h=0,l=p(t),f=b(l),y=function(t){var e=new J,r=t.origin,n=r[0],a=r[1],i=t.translate,s=t.rotate,o=t.skew,c=t.scale;return Array.isArray(i)&&i.every((function(t){return!Number.isNaN(+t)}))&&i.some((function(t){return 0!==t}))?e=e.translate(i[0]||0,i[1]||0,i[2]||0):"number"!=typeof i||Number.isNaN(+i)||(e=e.translate(i||0,0,0)),(s||o||c)&&(e=e.translate(n,a),Array.isArray(s)&&s.every((function(t){return!Number.isNaN(+t)}))&&s.some((function(t){return 0!==t}))?e=e.rotate(s[0],s[1],s[2]):"number"!=typeof s||Number.isNaN(+s)||(e=e.rotate(0,0,s)),Array.isArray(o)&&o.every((function(t){return!Number.isNaN(+t)}))&&o.some((function(t){return 0!==t}))?(e=o[0]?e.skewX(o[0]):e,e=o[1]?e.skewY(o[1]):e):"number"!=typeof o||Number.isNaN(+o)||(e=e.skewX(o||0)),Array.isArray(c)&&c.every((function(t){return!Number.isNaN(+t)}))&&c.some((function(t){return 1!==t}))?e=e.scale(c[0],c[1],c[2]):"number"!=typeof c||Number.isNaN(+c)||(e=e.scale(c||1,c||1,c||1)),e=e.translate(-n,-a)),e}(e),v=Object.keys(e),x=e.origin,g=[y.a,y.b,y.c,y.d,y.e,y.f],w=Object.assign({},M),N=[],A=0,C="",k=[],S=[];if(!y.isIdentity){for(r=0,a=l.length;r<a;r+=1){N=l[r],l[r]&&(C=N[0]),S[r]=C,"A"!==C||y.is2D&&["skewX","skewY"].find((function(t){return v.includes(t)}))||(N=I(f[r],w),l[r]=I(f[r],w),d(l,S,r),f[r]=I(f[r],w),d(f,S,r),a=Math.max(l.length,f.length)),A=(N=f[r]).length,w.x1=+N[A-2],w.y1=+N[A-1],w.x2=+N[A-4]||w.x1,w.y2=+N[A-3]||w.y1;var q={s:l[r],c:l[r][0],x:w.x1,y:w.y1};k=k.concat([q])}return k.map((function(t){var e,r,a;switch(C=t.c,N=t.s,C){case"A":return c=function(t,e,r,n){var a=Math.cos(n*Math.PI/180),i=Math.sin(n*Math.PI/180),s=[e*(t[0]*a+t[2]*i),e*(t[1]*a+t[3]*i),r*(-t[0]*i+t[2]*a),r*(-t[1]*i+t[3]*a)],o=s[0]*s[0]+s[2]*s[2],c=s[1]*s[1]+s[3]*s[3],u=((s[0]-s[3])*(s[0]-s[3])+(s[2]+s[1])*(s[2]+s[1]))*((s[0]+s[3])*(s[0]+s[3])+(s[2]-s[1])*(s[2]-s[1])),m=(o+c)/2;if(u<1e-9*m){var h=Math.sqrt(m);return{rx:h,ry:h,ax:0}}var l,f,p=s[0]*s[1]+s[2]*s[3],y=m+(u=Math.sqrt(u))/2,v=m-u/2,d=Math.abs(p)<1e-9&&Math.abs(y-c)<1e-9?90:Math.atan(Math.abs(p)>Math.abs(y-c)?(y-o)/p:p/(y-c)*180)/Math.PI;return d>=0?(l=Math.sqrt(y),f=Math.sqrt(v)):(d+=90,l=Math.sqrt(v),f=Math.sqrt(y)),{rx:l,ry:f,ax:d}}(g,N[1],N[2],N[3]),g[0]*g[3]-g[1]*g[2]<0&&(N[5]=N[5]?0:1),e=$(y,[+N[6],+N[7]],x),s=e[0],o=e[1],N=m===s&&h===o||c.rx<1e-9*c.ry||c.ry<1e-9*c.rx?["L",s,o]:[C,c.rx,c.ry,c.ax,N[4],N[5],s,o],m=s,h=o,N;case"L":case"H":case"V":return r=$(y,[t.x,t.y],x),s=r[0],o=r[1],m!==s&&h!==o?N=["L",s,o]:h===o?N=["H",s]:m===s&&(N=["V",o]),m=s,h=o,N;default:for(n=1,i=N.length;n<i;n+=2)a=$(y,[+N[n],+N[n+1]],x),m=a[0],h=a[1],N[n]=m,N[n+1]=h;return N}}))}return u(l)}function W(t,e,r,n,a,i,s,o){var c,u=a-2*r+t-(s-2*a+r),m=2*(r-t)-2*(a-r),h=t-r,l=(-m+Math.sqrt(m*m-4*u*h))/2/u,f=(-m-Math.sqrt(m*m-4*u*h))/2/u,p=[e,o],y=[t,s];return Math.abs(l)>"1e12"&&(l=.5),Math.abs(f)>"1e12"&&(f=.5),l>0&&l<1&&(c=S(t,e,r,n,a,i,s,o,l),y.push(c.x),p.push(c.y)),f>0&&f<1&&(c=S(t,e,r,n,a,i,s,o,f),y.push(c.x),p.push(c.y)),u=i-2*n+e-(o-2*i+n),h=e-n,l=(-(m=2*(n-e)-2*(i-n))+Math.sqrt(m*m-4*u*h))/2/u,f=(-m-Math.sqrt(m*m-4*u*h))/2/u,Math.abs(l)>"1e12"&&(l=.5),Math.abs(f)>"1e12"&&(f=.5),l>0&&l<1&&(c=S(t,e,r,n,a,i,s,o,l),y.push(c.x),p.push(c.y)),f>0&&f<1&&(c=S(t,e,r,n,a,i,s,o,f),y.push(c.x),p.push(c.y)),{min:{x:Math.min.apply(0,y),y:Math.min.apply(0,p)},max:{x:Math.max.apply(0,y),y:Math.max.apply(0,p)}}}function _(t){if(!t)return{x:0,y:0,width:0,height:0,x2:0,y2:0,cx:0,cy:0,cz:0};var e=T(t),r=0,n=0,a=[],i=[];e.forEach((function(t){var e=t.slice(-2).map(Number),s=e[0],o=e[1];if("M"===t[0])r=s,n=o,a.push(s),i.push(o);else{var c=[r,n].concat(t.slice(1)),u=W.apply(void 0,c);a=a.concat([u.min.x],[u.max.x]),i=i.concat([u.min.y],[u.max.y]),r=s,n=o}}));var s=Math.min.apply(Math,a),o=Math.min.apply(Math,i),c=Math.max.apply(Math,a),u=Math.max.apply(Math,i),m=c-s,h=u-o;return{width:m,height:h,x:s,y:o,x2:c,y2:u,cx:s+m/2,cy:o+h/2,cz:Math.max(m,h)+Math.min(m,h)/2}}Object.assign(J,{Version:"0.0.24"});var tt=function(e,r){var n=r||{};this.segments=l(e);var a=_(this.segments),i=a.width,s=a.height,o=a.cx,c=a.cy,u=a.cz,m=t.round,h=t.origin,f=n.round,p=n.origin;if("auto"===f){var y=(""+Math.floor(Math.max(i,s))).length;m=y>=4?0:4-y}else(Number.isInteger(f)&&f>=1||!1===f)&&(m=f);if(Array.isArray(p)&&p.length>=2){var v=p.map(Number),d=v[0],x=v[1],g=v[2];h=[Number.isNaN(d)?o:d,Number.isNaN(x)?c:x,g||u]}else h=[o,c,u];return this.round=m,this.origin=h,this};function et(t,e,r,n,a,i,s,o){return 3*((o-e)*(r+a)-(s-t)*(n+i)+n*(t-a)-r*(e-i)+o*(a+t/3)-s*(i+e/3))/20}function rt(t){var e=0,r=0,n=0;return T(t).map((function(t){var a,i;switch(t[0]){case"M":return e=(a=t)[1],r=a[2],0;default:return n=et.apply(void 0,[e,r].concat(t.slice(1))),i=t.slice(-2).map(Number),e=i[0],r=i[1],n}})).reduce((function(t,e){return t+e}),0)}function nt(t,e,r,n,a){return a*(a*(-3*t+9*e-9*r+3*n)+6*t-12*e+6*r)-3*t+3*e}function at(t,e,r,n,a,i,s,o,c){var u=c;(null===c||Number.isNaN(+c))&&(u=1),u>1&&(u=1),u<0&&(u=0);var m=u/2,h=0,l=0,f=0,p=0,y=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472];return[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816].forEach((function(c,u){l=nt(t,r,a,s,h=m*c+m),f=nt(e,n,i,o,h),p+=y[u]*Math.sqrt(l*l+f*f)})),m*p}tt.prototype.toAbsolute=function(){var t=this.segments;return this.segments=p(t),this},tt.prototype.toRelative=function(){var t=this.segments;return this.segments=v(t),this},tt.prototype.toCurve=function(){var t=this.segments;return this.segments=T(t),this},tt.prototype.reverse=function(t){this.toAbsolute();var e=this.segments,r=O(this.toString()),n=r.length>1?r:0,a=n&&u(n).map((function(e,r){return t?r?z(e):l(e):z(e)})),i=[];return i=n?a.flat(1):t?e:z(e),this.segments=u(i),this},tt.prototype.normalize=function(){var t=this.segments;return this.segments=b(t),this},tt.prototype.optimize=function(){var t=this.segments;return this.segments=L(t,this.round),this},tt.prototype.transform=function(t){if(!t||"object"!=typeof t||"object"==typeof t&&!["translate","rotate","skew","scale"].some((function(e){return e in t})))return this;var e={};Object.keys(t).forEach((function(r){e[r]=Array.isArray(t[r])?[].concat(t[r]):Number(t[r])}));var r=this.segments,n=e.origin;if(n&&n.length>=2){var a=n.map(Number),i=a[0],s=a[1],o=a[2],c=this.origin,u=c[0],m=c[1],h=c[2];e.origin=[Number.isNaN(i)?u:i,Number.isNaN(s)?m:s,o||h]}else e.origin=Object.assign({},this.origin);return this.segments=K(r,e),this},tt.prototype.flipX=function(){return this.transform({rotate:[180,0,0]}),this},tt.prototype.flipY=function(){return this.transform({rotate:[0,180,0]}),this},tt.prototype.toString=function(){return V(this.segments,this.round)};var it={circle:["cx","cy","r"],ellipse:["cx","cy","rx","ry"],rect:["width","height","x","y","rx","ry"],polygon:["points"],polyline:["points"],glyph:[]};var st={CSSMatrix:J,parsePathString:l,isPathArray:h,isCurveArray:N,isAbsoluteArray:f,isRelativeArray:y,isNormalizedArray:g,isValidPath:function(t){if("string"!=typeof t)return!1;var e=new m(t);for(s(e);e.index<e.max&&!e.err.length;)c(e);return!e.err.length&&"mM".includes(e.segments[0][0])},pathToAbsolute:p,pathToRelative:v,pathToCurve:T,pathToString:V,getDrawDirection:function(t){return rt(T(t))>=0},getPathArea:rt,getPathBBox:_,getPathLength:function(t){var e=0;return T(t).forEach((function(t,r,n){var a="M"!==t[0]?n[r-1].slice(-2).concat(t.slice(1)):[];e+="M"===t[0]?0:at.apply(void 0,a)})),e},getPointAtLength:function(t,e){var r,n,a,i=0;return T(t).map((function(t,s,o){if(n=s?o[s-1].slice(-2).concat(t.slice(1)):t.slice(1),r=s?at.apply(void 0,n):0,i+=r,0===s)a={x:n[0],y:n[1]};else if(i>e&&e>i-r){var c=n.concat([1-(i-e)/r]);a=S.apply(void 0,c)}else a=null;return a})).filter((function(t){return t})).slice(-1)[0]},clonePath:u,splitPath:O,fixPath:w,roundPath:j,optimizePath:L,reverseCurve:function(t){var e=t.slice(1).map((function(e,r,n){return r?n[r-1].slice(-2).concat(e.slice(1)):t[0].slice(1).concat(e.slice(1))})).map((function(t){return t.map((function(e,r){return t[t.length-r-2*(1-r%2)]}))})).reverse();return[["M"].concat(e[0].slice(0,2))].concat(e.map((function(t){return["C"].concat(t.slice(2))})))},reversePath:z,normalizePath:b,transformPath:K,shapeToPath:function(e,r){var n=Object.keys(it),a=e instanceof Element;if(a&&!n.some((function(t){return e.tagName===t})))throw TypeError('shapeToPath: "'+e+'" is not SVGElement');var i,s=document.createElementNS("http://www.w3.org/2000/svg","path"),o=a?e.tagName:e.type,c={};if(c.type=o,a){var u=it[o];u.forEach((function(t){c[t]=e.getAttribute(t)})),Object.values(e.attributes).forEach((function(t){var e=t.name,r=t.value;u.includes(e)||s.setAttribute(e,r)}))}else Object.assign(c,e);var m,h,l,f,p=t.round;return"circle"===o?i=V((h=(m=c).cx,l=m.cy,f=m.r,[["M",h-f,l],["a",f,f,0,1,0,2*f,0],["a",f,f,0,1,0,-2*f,0]]),p):"ellipse"===o?i=V(function(t){var e=t.cx,r=t.cy,n=t.rx,a=t.ry;return[["M",e-n,r],["a",n,a,0,1,0,2*n,0],["a",n,a,0,1,0,-2*n,0]]}(c),p):["polyline","polygon"].includes(o)?i=V(function(t){for(var e=[],r=t.points.split(/[\s|,]/).map(Number),n=0;n<r.length;)e.push([n?"L":"M",r[n],r[n+1]]),n+=2;return"polygon"===t.type?e.concat([["z"]]):e}(c),p):"rect"===o?i=V(function(t){var e=+t.x||0,r=+t.y||0,n=+t.width,a=+t.height,i=+t.rx,s=+t.ry;return i||s?(i=i||s,s=s||i,2*i>n&&(i-=(2*i-n)/2),2*s>a&&(s-=(2*s-a)/2),[["M",e+i,r],["h",n-2*i],["s",i,0,i,s],["v",a-2*s],["s",0,s,-i,s],["h",2*i-n],["s",-i,0,-i,-s],["v",2*s-a],["s",0,-s,i,-s]]):[["M",e,r],["h",n],["v",a],["H",e],["Z"]]}(c),p):"line"===o?i=V(function(t){return[["M",t.x1,t.y1],["L",t.x2,t.y2]]}(c),p):"glyph"===o&&(i=a?e.getAttribute("d"):e.type),!!i&&(s.setAttribute("d",i),r&&a&&(e.before(s,e),e.remove()),s)},options:t};return Object.assign(tt,st,{Version:"0.1.21"}),tt}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svg-path-commander",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "ES6+ JavaScript tools for SVG processing and converting path data",
5
5
  "main": "dist/svg-path-commander.min.js",
6
6
  "module": "dist/svg-path-commander.esm.js",
@@ -13,9 +13,10 @@
13
13
  * @returns {[number, number]} the projected [x,y] coordinates
14
14
  */
15
15
  export default function projection2d(m, point2D, origin) {
16
+ const [px, py] = point2D;
16
17
  const [originX, originY, originZ] = origin;
17
18
  const point3D = m.transformPoint({
18
- x: point2D[0], y: point2D[1], z: 0, w: 1,
19
+ x: px, y: py, z: 0, w: 1,
19
20
  });
20
21
 
21
22
  const relativePositionX = point3D.x - originX;
@@ -40,9 +40,15 @@ class SVGPathCommander {
40
40
  */
41
41
  this.segments = parsePathString(pathValue);
42
42
  const BBox = getPathBBox(this.segments);
43
- const { width, height } = BBox;
44
-
45
- // set instance options
43
+ const {
44
+ width,
45
+ height,
46
+ cx,
47
+ cy,
48
+ cz,
49
+ } = BBox;
50
+
51
+ // set instance options.round
46
52
  let { round, origin } = defaultOptions;
47
53
  const { round: roundOption, origin: originOption } = instanceOptions;
48
54
 
@@ -53,15 +59,16 @@ class SVGPathCommander {
53
59
  round = roundOption;
54
60
  }
55
61
 
56
- if (Array.isArray(originOption) && [2, 3].includes(originOption.length)
57
- && originOption.map((n) => !Number.isNaN(n))) {
58
- origin = [...originOption.map(Number)];
62
+ // set instance options.origin
63
+ if (Array.isArray(originOption) && originOption.length >= 2) {
64
+ const [originX, originY, originZ] = originOption.map(Number);
65
+ origin = [
66
+ !Number.isNaN(originX) ? originX : cx,
67
+ !Number.isNaN(originY) ? originY : cy,
68
+ originZ || cz,
69
+ ];
59
70
  } else {
60
- // determine a transform origin
61
- const { cx, cy } = BBox;
62
- // an estimted guess
63
- const originZ = Math.max(width, height) + Math.min(width, height) / 2;
64
- origin = [cx, cy, originZ];
71
+ origin = [cx, cy, cz];
65
72
  }
66
73
 
67
74
  /**
@@ -69,9 +76,6 @@ class SVGPathCommander {
69
76
  * @default 4
70
77
  */
71
78
  this.round = round;
72
- /**
73
- * @default [0,0]
74
- */
75
79
  this.origin = origin;
76
80
 
77
81
  return this;
@@ -187,7 +191,16 @@ class SVGPathCommander {
187
191
 
188
192
  // if origin is not specified
189
193
  // it's important that we have one
190
- if (!transform.origin) {
194
+ const { origin } = transform;
195
+ if (origin && origin.length >= 2) {
196
+ const [originX, originY, originZ] = origin.map(Number);
197
+ const [cx, cy, cz] = this.origin;
198
+ transform.origin = [
199
+ !Number.isNaN(originX) ? originX : cx,
200
+ !Number.isNaN(originY) ? originY : cy,
201
+ originZ || cz,
202
+ ];
203
+ } else {
191
204
  // @ts-ignore
192
205
  transform.origin = { ...this.origin };
193
206
  }
@@ -10,7 +10,7 @@ import pathToCurve from '../convert/pathToCurve';
10
10
  export default function getPathBBox(path) {
11
11
  if (!path) {
12
12
  return {
13
- x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0, cx: 0, cy: 0,
13
+ x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0, cx: 0, cy: 0, cz: 0,
14
14
  };
15
15
  }
16
16
  const pathCurve = pathToCurve(path);
@@ -44,16 +44,22 @@ export default function getPathBBox(path) {
44
44
  });
45
45
 
46
46
  // @ts-ignore
47
- const xTop = Math.min.apply(0, X);
47
+ // const xTop = Math.min.apply(0, X);
48
+ const xTop = Math.min(...X);
48
49
  // @ts-ignore
49
- const yTop = Math.min.apply(0, Y);
50
+ // const yTop = Math.min.apply(0, Y);
51
+ const yTop = Math.min(...Y);
50
52
  // @ts-ignore
51
- const xBot = Math.max.apply(0, X);
53
+ // const xBot = Math.max.apply(0, X);
54
+ const xBot = Math.max(...X);
52
55
  // @ts-ignore
53
- const yBot = Math.max.apply(0, Y);
56
+ // const yBot = Math.max.apply(0, Y);
57
+ const yBot = Math.max(...Y);
54
58
  const width = xBot - xTop;
55
59
  const height = yBot - yTop;
56
60
 
61
+ // an estimted guess
62
+ const cz = Math.max(width, height) + Math.min(width, height) / 2;
57
63
  return {
58
64
  width,
59
65
  height,
@@ -63,5 +69,6 @@ export default function getPathBBox(path) {
63
69
  y2: yBot,
64
70
  cx: xTop + width / 2,
65
71
  cy: yTop + height / 2,
72
+ cz,
66
73
  };
67
74
  }
package/types/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export as namespace SVGPathCommander;
2
2
  export default SVGPathCommander;
3
3
 
4
4
  // modules
5
+ import './svg-path-commander';
5
6
  export { default as pathToAbsolute } from "svg-path-commander/src/convert/pathToAbsolute";
6
7
  export { default as pathToRelative } from "svg-path-commander/src/convert/pathToRelative";
7
8
  export { default as pathToCurve } from "svg-path-commander/src/convert/pathToCurve";
@@ -1,105 +1,105 @@
1
1
  // custom types
2
- export declare type MCommand = 'M';
3
- export declare type mCommand = 'm';
2
+ export type MCommand = 'M';
3
+ export type mCommand = 'm';
4
4
 
5
- export declare type LCommand = 'L';
6
- export declare type lCommand = 'l';
5
+ export type LCommand = 'L';
6
+ export type lCommand = 'l';
7
7
 
8
- export declare type VCommand = 'V';
9
- export declare type vCommand = 'v';
8
+ export type VCommand = 'V';
9
+ export type vCommand = 'v';
10
10
 
11
- export declare type HCommand = 'H';
12
- export declare type hCommand = 'h';
11
+ export type HCommand = 'H';
12
+ export type hCommand = 'h';
13
13
 
14
- export declare type ZCommand = 'Z';
15
- export declare type zCommand = 'z';
14
+ export type ZCommand = 'Z';
15
+ export type zCommand = 'z';
16
16
 
17
- export declare type CCommand = 'C';
18
- export declare type cCommand = 'c';
17
+ export type CCommand = 'C';
18
+ export type cCommand = 'c';
19
19
 
20
- export declare type SCommand = 'S';
21
- export declare type sCommand = 's';
20
+ export type SCommand = 'S';
21
+ export type sCommand = 's';
22
22
 
23
- export declare type QCommand = 'Q';
24
- export declare type qCommand = 'q';
23
+ export type QCommand = 'Q';
24
+ export type qCommand = 'q';
25
25
 
26
- export declare type TCommand = 'T';
27
- export declare type tCommand = 't';
26
+ export type TCommand = 'T';
27
+ export type tCommand = 't';
28
28
 
29
- export declare type ACommand = 'A';
30
- export declare type aCommand = 'a';
29
+ export type ACommand = 'A';
30
+ export type aCommand = 'a';
31
31
 
32
- export declare type absoluteCommand = MCommand | LCommand | VCommand | HCommand | ZCommand
32
+ export type absoluteCommand = MCommand | LCommand | VCommand | HCommand | ZCommand
33
33
  | CCommand | SCommand | QCommand | TCommand | ACommand;
34
- export declare type relativeCommand = mCommand | lCommand | vCommand | hCommand | zCommand
34
+ export type relativeCommand = mCommand | lCommand | vCommand | hCommand | zCommand
35
35
  | cCommand | sCommand | qCommand | tCommand | aCommand;
36
36
 
37
- export declare type pathCommand = absoluteCommand | relativeCommand;
37
+ export type pathCommand = absoluteCommand | relativeCommand;
38
38
 
39
- export declare type MSegment = [MCommand, number, number];
40
- export declare type mSegment = [mCommand, number, number];
41
- export declare type moveSegment = MSegment | mSegment;
39
+ export type MSegment = [MCommand, number, number];
40
+ export type mSegment = [mCommand, number, number];
41
+ export type moveSegment = MSegment | mSegment;
42
42
 
43
- export declare type LSegment = [LCommand, number, number];
44
- export declare type lSegment = [lCommand, number, number];
45
- export declare type lineSegment = LSegment | lSegment;
43
+ export type LSegment = [LCommand, number, number];
44
+ export type lSegment = [lCommand, number, number];
45
+ export type lineSegment = LSegment | lSegment;
46
46
 
47
- export declare type VSegment = [VCommand, number];
48
- export declare type vSegment = [vCommand, number];
49
- export declare type vertLineSegment = vSegment | VSegment;
47
+ export type VSegment = [VCommand, number];
48
+ export type vSegment = [vCommand, number];
49
+ export type vertLineSegment = vSegment | VSegment;
50
50
 
51
- export declare type HSegment = [HCommand, number];
52
- export declare type hSegment = [hCommand, number];
53
- export declare type horLineSegment = HSegment | hSegment;
51
+ export type HSegment = [HCommand, number];
52
+ export type hSegment = [hCommand, number];
53
+ export type horLineSegment = HSegment | hSegment;
54
54
 
55
- export declare type ZSegment = [ZCommand];
56
- export declare type zSegment = [zCommand];
57
- export declare type closeSegment = ZSegment | zSegment;
55
+ export type ZSegment = [ZCommand];
56
+ export type zSegment = [zCommand];
57
+ export type closeSegment = ZSegment | zSegment;
58
58
 
59
- export declare type CSegment = [CCommand, number, number, number, number, number, number];
60
- export declare type cSegment = [cCommand, number, number, number, number, number, number];
61
- export declare type cubicSegment = CSegment | cSegment;
59
+ export type CSegment = [CCommand, number, number, number, number, number, number];
60
+ export type cSegment = [cCommand, number, number, number, number, number, number];
61
+ export type cubicSegment = CSegment | cSegment;
62
62
 
63
- export declare type SSegment = [SCommand, number, number, number, number];
64
- export declare type sSegment = [sCommand, number, number, number, number];
65
- export declare type shortCubicSegment = SSegment | sSegment;
63
+ export type SSegment = [SCommand, number, number, number, number];
64
+ export type sSegment = [sCommand, number, number, number, number];
65
+ export type shortCubicSegment = SSegment | sSegment;
66
66
 
67
- export declare type QSegment = [QCommand, number, number, number, number];
68
- export declare type qSegment = [qCommand, number, number, number, number];
69
- export declare type quadSegment = QSegment | qSegment;
67
+ export type QSegment = [QCommand, number, number, number, number];
68
+ export type qSegment = [qCommand, number, number, number, number];
69
+ export type quadSegment = QSegment | qSegment;
70
70
 
71
- export declare type TSegment = [TCommand, number, number];
72
- export declare type tSegment = [tCommand, number, number];
73
- export declare type shortQuadSegment = TSegment | tSegment;
71
+ export type TSegment = [TCommand, number, number];
72
+ export type tSegment = [tCommand, number, number];
73
+ export type shortQuadSegment = TSegment | tSegment;
74
74
 
75
- export declare type ASegment = [ACommand, number, number, number, number, number, number, number];
76
- export declare type aSegment = [aCommand, number, number, number, number, number, number, number];
77
- export declare type arcSegment = ASegment | aSegment;
75
+ export type ASegment = [ACommand, number, number, number, number, number, number, number];
76
+ export type aSegment = [aCommand, number, number, number, number, number, number, number];
77
+ export type arcSegment = ASegment | aSegment;
78
78
 
79
- export declare type pathSegment = moveSegment | lineSegment | vertLineSegment | horLineSegment | closeSegment
79
+ export type pathSegment = moveSegment | lineSegment | vertLineSegment | horLineSegment | closeSegment
80
80
  | cubicSegment | shortCubicSegment | quadSegment | shortQuadSegment | arcSegment;
81
81
 
82
- export declare type shortSegment = vertLineSegment | horLineSegment | shortCubicSegment | shortQuadSegment | closeSegment;
83
- export declare type absoluteSegment = MSegment | LSegment | VSegment | HSegment | CSegment | SSegment | QSegment | TSegment | ASegment | ZSegment;
84
- export declare type relativeSegment = mSegment | lSegment | vSegment | hSegment | cSegment | sSegment | qSegment | tSegment | aSegment | zSegment;
85
- export declare type normalSegment = MSegment | LSegment | CSegment | QSegment | ASegment | ZSegment;
82
+ export type shortSegment = vertLineSegment | horLineSegment | shortCubicSegment | shortQuadSegment | closeSegment;
83
+ export type absoluteSegment = MSegment | LSegment | VSegment | HSegment | CSegment | SSegment | QSegment | TSegment | ASegment | ZSegment;
84
+ export type relativeSegment = mSegment | lSegment | vSegment | hSegment | cSegment | sSegment | qSegment | tSegment | aSegment | zSegment;
85
+ export type normalSegment = MSegment | LSegment | CSegment | QSegment | ASegment | ZSegment;
86
86
 
87
- export declare type pathArray = [(MSegment | mSegment), ...pathSegment[]];
88
- export declare type absoluteArray = [MSegment, ...absoluteSegment[]];
89
- export declare type relativeArray = [MSegment, ...relativeSegment[]];
90
- export declare type normalArray = [MSegment, ...normalSegment[]];
91
- export declare type curveArray = [MSegment, ...CSegment[]];
92
- export declare type polygonArray = [MSegment, ...LSegment[], ZSegment];
93
- export declare type polylineArray = [MSegment, ...LSegment[]];
87
+ export type pathArray = [(MSegment | mSegment), ...pathSegment[]];
88
+ export type absoluteArray = [MSegment, ...absoluteSegment[]];
89
+ export type relativeArray = [MSegment, ...relativeSegment[]];
90
+ export type normalArray = [MSegment, ...normalSegment[]];
91
+ export type curveArray = [MSegment, ...CSegment[]];
92
+ export type polygonArray = [MSegment, ...LSegment[], ZSegment];
93
+ export type polylineArray = [MSegment, ...LSegment[]];
94
94
 
95
- export declare interface options {
95
+ export interface options {
96
96
  /** @default 4 */
97
97
  round: boolean | number;
98
98
  /** @default [0,0,0] */
99
99
  origin: number[];
100
100
  }
101
101
 
102
- export declare interface pathTransformList {
102
+ export interface pathTransformList {
103
103
  /** segment */
104
104
  s: pathSegment,
105
105
  /** pathCommand */
@@ -110,7 +110,7 @@ export declare interface pathTransformList {
110
110
  y: number
111
111
  }
112
112
 
113
- export declare interface transformObject {
113
+ export interface transformObject {
114
114
  // translate?: number | [number, number, number];
115
115
  // rotate?: number | [number, number, number];
116
116
  // scale?: number | [number, number, number];
@@ -125,55 +125,55 @@ export declare interface transformObject {
125
125
  export type shapeTypes = SVGPolylineElement | SVGPolygonElement | SVGLineElement | SVGEllipseElement | SVGCircleElement | SVGRectElement;
126
126
  export type shapeOps = lineAttr | polyAttr | ellipseAttr | circleAttr | rectAttr | glyphAttr;
127
127
 
128
- export declare interface lineAttr {
128
+ export interface lineAttr {
129
129
  type: string;
130
130
  x1: number;
131
131
  y1: number;
132
132
  x2: number;
133
133
  y2: number
134
134
  }
135
- export declare interface polyAttr {
135
+ export interface polyAttr {
136
136
  type: string;
137
137
  points : string;
138
138
  }
139
- export declare interface circleAttr {
139
+ export interface circleAttr {
140
140
  type: string;
141
141
  cx: number;
142
142
  cy: number;
143
143
  r: number;
144
144
  }
145
- export declare interface ellipseAttr {
145
+ export interface ellipseAttr {
146
146
  type: string;
147
147
  cx: number;
148
148
  cy: number;
149
149
  rx: number;
150
150
  ry: number;
151
151
  }
152
- export declare interface rectAttr {
152
+ export interface rectAttr {
153
153
  type: string;
154
154
  width : number;
155
155
  height : number;
156
156
  x : number; y : number;
157
157
  rx : number; ry : number;
158
158
  }
159
- export declare interface glyphAttr {
159
+ export interface glyphAttr {
160
160
  type: string;
161
161
  d : string;
162
162
  }
163
163
 
164
- export declare interface pathBBox {
164
+ export interface pathBBox {
165
165
  width: number;
166
166
  height: number;
167
167
  x: number; y: number;
168
168
  x2: number; y2: number;
169
- cx: number; cy: number;
169
+ cx: number; cy: number; cz: number;
170
170
  }
171
- export declare interface segmentLimits {
171
+ export interface segmentLimits {
172
172
  min : {x: number; y: number};
173
173
  max : {x: number; y: number}
174
174
  }
175
175
 
176
- export declare interface parserParams {
176
+ export interface parserParams {
177
177
  x1: number; y1: number;
178
178
  x2: number; y2: number;
179
179
  x: number; y: number;