UNPKG

transformation-matrix

Version:

2d transformation matrix functions written in ES6 syntax. Tree shaking ready!

2 lines 20.2 kB
!function(t,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.TransformationMatrix=r():t.TransformationMatrix=r()}(self,()=>(()=>{"use strict";var t={d:(r,e)=>{for(var n in e)t.o(e,n)&&!t.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:e[n]})},o:(t,r)=>Object.prototype.hasOwnProperty.call(t,r),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},r={};function e(t,r){return Array.isArray(r)?[t.a*r[0]+t.c*r[1]+t.e,t.b*r[0]+t.d*r[1]+t.f]:{x:t.a*r.x+t.c*r.y+t.e,y:t.b*r.x+t.d*r.y+t.f}}function n(t,r){return r.map(function(r){return e(t,r)})}function o(t){return{a:parseFloat(t.a),b:parseFloat(t.b),c:parseFloat(t.c),d:parseFloat(t.d),e:parseFloat(t.e),f:parseFloat(t.f)}}t.r(r),t.d(r,{applyToPoint:()=>e,applyToPoints:()=>n,compose:()=>m,decomposeTSR:()=>V,flipOrigin:()=>J,flipX:()=>z,flipY:()=>H,fromDefinition:()=>N,fromObject:()=>o,fromOneMovingPoint:()=>K,fromString:()=>a,fromStringLegacy:()=>u,fromTransformAttribute:()=>B,fromTriangles:()=>T,fromTwoMovingPoints:()=>Q,identity:()=>c,inverse:()=>f,isAffineMatrix:()=>y,rotate:()=>M,rotateDEG:()=>S,scale:()=>j,shear:()=>E,skew:()=>O,skewDEG:()=>_,smoothMatrix:()=>I,toCSS:()=>F,toSVG:()=>C,toString:()=>R,transform:()=>g,translate:()=>h});var i=/^matrix\(\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*,\s*([0-9_+-.e]+)\s*\)$/i;function a(t){var r=function(r){var e=parseFloat(r);if(Number.isFinite(e))return e;throw new Error("'".concat(t,"' is not a matrix"))},e=t.substring(0,7).toLowerCase(),n=t.substring(t.length-1),o=t.substring(7,t.length-1).split(",");if("matrix("===e&&")"===n&&6===o.length)return{a:r(o[0]),b:r(o[1]),c:r(o[2]),d:r(o[3]),e:r(o[4]),f:r(o[5])};throw new Error("'".concat(t,"' is not a matrix"))}function u(t){var r=t.match(i);if(null===r||r.length<7)throw new Error("'".concat(t,"' is not a matrix"));return{a:parseFloat(r[1]),b:parseFloat(r[2]),c:parseFloat(r[3]),d:parseFloat(r[4]),e:parseFloat(r[5]),f:parseFloat(r[6])}}function c(){return{a:1,c:0,e:0,b:0,d:1,f:0}}function f(t){var r=t.a,e=t.b,n=t.c,o=t.d,i=t.e,a=t.f,u=r*o-e*n;return{a:o/u,b:e/-u,c:n/-u,d:r/u,e:(o*i-n*a)/-u,f:(e*i-r*a)/u}}function l(t){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l(t)}function s(t){return void 0===t}function p(t){return"number"==typeof t&&!Number.isNaN(t)&&Number.isFinite(t)}function y(t){return"object"===l(r=t)&&null!==r&&!Array.isArray(r)&&"a"in t&&p(t.a)&&"b"in t&&p(t.b)&&"c"in t&&p(t.c)&&"d"in t&&p(t.d)&&"e"in t&&p(t.e)&&"f"in t&&p(t.f);var r}function h(t){return{a:1,c:0,e:t,b:0,d:1,f:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0}}function d(t,r){if(t){if("string"==typeof t)return v(t,r);var e={}.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?v(t,r):void 0}}function v(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function b(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function g(){for(var t=arguments.length,r=new Array(t),e=0;e<t;e++)r[e]=arguments[e];var n,o=function(t,r){return{a:t.a*r.a+t.c*r.b,c:t.a*r.c+t.c*r.d,e:t.a*r.e+t.c*r.f+t.e,b:t.b*r.a+t.d*r.b,d:t.b*r.c+t.d*r.d,f:t.b*r.e+t.d*r.f+t.f}};switch((r=Array.isArray(r[0])?r[0]:r).length){case 0:throw new Error("no matrices provided");case 1:return r[0];case 2:return o(r[0],r[1]);default:var i=function(t){if(Array.isArray(t))return t}(n=r)||b(n)||d(n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=i[0],u=i[1],c=i.slice(2),f=o(a,u);return g.apply(void 0,[f].concat(function(t){return function(t){if(Array.isArray(t))return v(t)}(t)||b(t)||d(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(c)))}}function m(){return g.apply(void 0,arguments)}var x=Math.cos,w=Math.sin,A=Math.PI;function M(t,r,e){var n=x(t),o=w(t),i={a:n,c:-o,e:0,b:o,d:n,f:0};return s(r)||s(e)?i:g([h(r,e),i,h(-r,-e)])}function S(t){return M(t*A/180,arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0)}function j(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;s(r)&&(r=t);var o={a:t,c:0,e:0,b:0,d:r,f:0};return s(e)||s(n)?o:g([h(e,n),o,h(-e,-n)])}function E(t,r){return{a:1,c:t,e:0,b:r,d:1,f:0}}var P=Math.tan;function O(t,r){return{a:1,c:P(t),e:0,b:P(r),d:1,f:0}}function _(t,r){return O(t*Math.PI/180,r*Math.PI/180)}function F(t){return R(t)}function C(t){return R(t)}function R(t){return"matrix(".concat(t.a,",").concat(t.b,",").concat(t.c,",").concat(t.d,",").concat(t.e,",").concat(t.f,")")}function I(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e10;return{a:Math.round(t.a*r)/r,b:Math.round(t.b*r)/r,c:Math.round(t.c*r)/r,d:Math.round(t.d*r)/r,e:Math.round(t.e*r)/r,f:Math.round(t.f*r)/r}}function T(t,r){var e=null!=t[0].x?t[0].x:t[0][0],n=null!=t[0].y?t[0].y:t[0][1],o=null!=r[0].x?r[0].x:r[0][0],i=null!=r[0].y?r[0].y:r[0][1],a=null!=t[1].x?t[1].x:t[1][0],u=null!=t[1].y?t[1].y:t[1][1],c=null!=r[1].x?r[1].x:r[1][0],l=null!=r[1].y?r[1].y:r[1][1],s=null!=t[2].x?t[2].x:t[2][0],p=null!=t[2].y?t[2].y:t[2][1],y=null!=r[2].x?r[2].x:r[2][0],h=null!=r[2].y?r[2].y:r[2][1];return I(g([{a:o-y,b:i-h,c:c-y,d:l-h,e:y,f:h},f({a:e-s,b:n-p,c:a-s,d:u-p,e:s,f:p})]))}function N(t){return Array.isArray(t)?t.map(r):r(t);function r(t){switch(t.type){case"matrix":if("a"in t&&"b"in t&&"c"in t&&"d"in t&&"e"in t&&"f"in t)return o(t);throw new Error("MISSING_MANDATORY_PARAM");case"translate":if(!("tx"in t))throw new Error("MISSING_MANDATORY_PARAM");return"ty"in t?h(t.tx,t.ty):h(t.tx);case"scale":if(!("sx"in t))throw new Error("MISSING_MANDATORY_PARAM");return"sy"in t?j(t.sx,t.sy):j(t.sx);case"rotate":if(!("angle"in t))throw new Error("MISSING_MANDATORY_PARAM");return"cx"in t&&"cy"in t?S(t.angle,t.cx,t.cy):S(t.angle);case"skewX":if(!("angle"in t))throw new Error("MISSING_MANDATORY_PARAM");return _(t.angle,0);case"skewY":if(!("angle"in t))throw new Error("MISSING_MANDATORY_PARAM");return _(0,t.angle);case"shear":if(!("shx"in t)||!("shy"in t))throw new Error("MISSING_MANDATORY_PARAM");return E(t.shx,t.shy);default:throw new Error("UNSUPPORTED_DESCRIPTOR")}}}function D(t){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},D(t)}function k(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,$(n.key),n)}}function $(t){var r=function(t){if("object"!=D(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var e=r.call(t,"string");if("object"!=D(e))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==D(r)?r:r+""}function Y(t){var r="function"==typeof Map?new Map:void 0;return Y=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(r){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return function(t,r,e){if(G())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,r);var o=new(t.bind.apply(t,n));return e&&X(o,e.prototype),o}(t,arguments,L(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),X(e,t)},Y(t)}function G(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(G=function(){return!!t})()}function X(t,r){return X=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},X(t,r)}function L(t){return L=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},L(t)}var U=function(t){function r(t,e,n,o){var i;return function(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,r),(i=function(t,r,e){return r=L(r),function(t,r){if(r&&("object"==D(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,G()?Reflect.construct(r,e||[],L(t).constructor):r.apply(t,e))}(this,r,[t])).expected=e,i.found=n,i.location=o,i.name="SyntaxError",i}return function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&X(t,r)}(r,t),e=r,n=[{key:"format",value:function(t){var r=this,e="Error: "+this.message;if(this.location){var n=null,o=t.find(function(t){return t.source===r.location.source});o&&(n=o.text.split(/\r\n|\n|\r/g));var i=this.location.start,a=this.location.source&&"function"==typeof this.location.source.offset?this.location.source.offset(i):i,u=this.location.source+":"+a.line+":"+a.column;if(n){var c=this.location.end,f="".padEnd(a.line.toString().length," "),l=n[i.line-1],s=(i.line===c.line?c.column:l.length+1)-i.column||1;e+="\n --\x3e "+u+"\n"+f+" |\n"+a.line+" | "+l+"\n"+f+" | "+"".padEnd(i.column-1," ")+"".padEnd(s,"^")}else e+="\n at "+u}return e}}],o=[{key:"buildMessage",value:function(t,r){function e(t){return t.codePointAt(0).toString(16).toUpperCase()}var n=Object.prototype.hasOwnProperty.call(RegExp.prototype,"unicode")?new RegExp("[\\p{C}\\p{Mn}\\p{Mc}]","gu"):null;function o(t){return n?t.replace(n,function(t){return"\\u{"+e(t)+"}"}):t}function i(t){return o(t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(t){return"\\x0"+e(t)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(t){return"\\x"+e(t)}))}function a(t){return o(t.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(t){return"\\x0"+e(t)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(t){return"\\x"+e(t)}))}var u={literal:function(t){return'"'+i(t.text)+'"'},class:function(t){var r=t.parts.map(function(t){return Array.isArray(t)?a(t[0])+"-"+a(t[1]):a(t)});return"["+(t.inverted?"^":"")+r.join("")+"]"+(t.unicode?"u":"")},any:function(){return"any character"},end:function(){return"end of input"},other:function(t){return t.description}};function c(t){return u[t.type](t)}return"Expected "+function(t){var r=t.map(c);if(r.sort(),r.length>0){for(var e=1,n=1;n<r.length;n++)r[n-1]!==r[n]&&(r[e]=r[n],e++);r.length=e}switch(r.length){case 1:return r[0];case 2:return r[0]+" or "+r[1];default:return r.slice(0,-1).join(", ")+", or "+r[r.length-1]}}(t)+" but "+function(t){return t?'"'+i(t)+'"':"end of input"}(r)+" found."}}],n&&k(e.prototype,n),o&&k(e,o),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n,o}(Y(SyntaxError));function q(t,r){var e,n={},o=(r=void 0!==r?r:{}).grammarSource,i={transformList:z},a=z,u="matrix",c="(",f=")",l="translate",s="scale",p="rotate",y="skewX",h="skewY",d=",",v=".",b=/^[eE]/,g=/^[+\-]/,m=/^[0-9]/,x=/^[ \t\r\n]/,w=X("matrix",!1),A=X("(",!1),M=X(")",!1),S=X("translate",!1),j=X("scale",!1),E=X("rotate",!1),P=X("skewX",!1),O=X("skewY",!1),_=X(",",!1),F={type:"other",description:"fractionalConstant"},C=X(".",!1),R=L(["e","E"],!1,!1,!1),I=L(["+","-"],!1,!1,!1),T=L([["0","9"]],!1,!1,!1),N=L([" ","\t","\r","\n"],!1,!1,!1),D=0|r.peg$currPos,k=[{line:1,column:1}],$=D,Y=r.peg$maxFailExpected||[],G=0|r.peg$silentFails;if(r.startRule){if(!(r.startRule in i))throw new Error("Can't start parsing from rule \""+r.startRule+'".');a=i[r.startRule]}function X(t,r){return{type:"literal",text:t,ignoreCase:r}}function L(t,r,e,n){return{type:"class",parts:t,inverted:r,ignoreCase:e,unicode:n}}function q(r){var e,n=k[r];if(n)return n;if(r>=k.length)e=k.length-1;else for(e=r;!k[--e];);for(n={line:(n=k[e]).line,column:n.column};e<r;)10===t.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return k[r]=n,n}function B(t,r,e){var n=q(t),i=q(r),a={source:o,start:{offset:t,line:n.line,column:n.column},end:{offset:r,line:i.line,column:i.column}};return e&&o&&"function"==typeof o.offset&&(a.start=o.offset(a.start),a.end=o.offset(a.end)),a}function V(t){D<$||(D>$&&($=D,Y=[]),Y.push(t))}function z(){var t,r,e,o;for(t=[],r=ot();r!==n;)t.push(r),r=ot();for((r=H())===n&&(r=null),e=[],o=ot();o!==n;)e.push(o),o=ot();return r}function H(){var t,r,e,o,i;if(t=D,(r=J())!==n){if(e=[],(o=W())!==n)for(;o!==n;)e.push(o),o=W();else e=n;e!==n&&(o=H())!==n?(i=o,t=r.concat(i)):(D=t,t=n)}else D=t,t=n;return t===n&&(t=J()),t}function J(){var r;return(r=function(){var r,e,o,i,a,l,s,p,y,h,d,v,b;if(r=D,t.substr(D,6)===u?(e=u,D+=6):(e=n,0===G&&V(w)),e!==n){for(o=[],i=ot();i!==n;)o.push(i),i=ot();if(40===t.charCodeAt(D)?(i=c,D++):(i=n,0===G&&V(A)),i!==n){for(a=[],l=ot();l!==n;)a.push(l),l=ot();if((l=K())!==n)if(W()!==n)if((s=K())!==n)if(W()!==n)if((p=K())!==n)if(W()!==n)if((y=K())!==n)if(W()!==n)if((h=K())!==n)if(W()!==n)if((d=K())!==n){for(v=[],b=ot();b!==n;)v.push(b),b=ot();41===t.charCodeAt(D)?(b=f,D++):(b=n,0===G&&V(M)),b!==n?r=[{type:"matrix",a:l,b:s,c:p,d:y,e:h,f:d}]:(D=r,r=n)}else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n;else D=r,r=n}else D=r,r=n}else D=r,r=n;return r}())===n&&(r=function(){var r,e,o,i,a,u,s,p,y,h,d;if(r=D,t.substr(D,9)===l?(e=l,D+=9):(e=n,0===G&&V(S)),e!==n){for(o=[],i=ot();i!==n;)o.push(i),i=ot();if(40===t.charCodeAt(D)?(i=c,D++):(i=n,0===G&&V(A)),i!==n){for(a=[],u=ot();u!==n;)a.push(u),u=ot();if((u=K())!==n){for((s=Q())===n&&(s=null),p=[],y=ot();y!==n;)p.push(y),y=ot();41===t.charCodeAt(D)?(y=f,D++):(y=n,0===G&&V(M)),y!==n?(d={type:"translate",tx:u},(h=s)&&(d.ty=h),r=[d]):(D=r,r=n)}else D=r,r=n}else D=r,r=n}else D=r,r=n;return r}())===n&&(r=function(){var r,e,o,i,a,u,l,p,y,h,d;if(r=D,t.substr(D,5)===s?(e=s,D+=5):(e=n,0===G&&V(j)),e!==n){for(o=[],i=ot();i!==n;)o.push(i),i=ot();if(40===t.charCodeAt(D)?(i=c,D++):(i=n,0===G&&V(A)),i!==n){for(a=[],u=ot();u!==n;)a.push(u),u=ot();if((u=K())!==n){for((l=Q())===n&&(l=null),p=[],y=ot();y!==n;)p.push(y),y=ot();41===t.charCodeAt(D)?(y=f,D++):(y=n,0===G&&V(M)),y!==n?(d={type:"scale",sx:u},(h=l)&&(d.sy=h),r=[d]):(D=r,r=n)}else D=r,r=n}else D=r,r=n}else D=r,r=n;return r}())===n&&(r=function(){var r,e,o,i,a,u,l,s,y,h,d;if(r=D,t.substr(D,6)===p?(e=p,D+=6):(e=n,0===G&&V(E)),e!==n){for(o=[],i=ot();i!==n;)o.push(i),i=ot();if(40===t.charCodeAt(D)?(i=c,D++):(i=n,0===G&&V(A)),i!==n){for(a=[],u=ot();u!==n;)a.push(u),u=ot();if((u=K())!==n){for(l=function(){var t,r,e;return t=D,W()!==n&&(r=K())!==n&&W()!==n&&(e=K())!==n?t=[r,e]:(D=t,t=n),t}(),l===n&&(l=null),s=[],y=ot();y!==n;)s.push(y),y=ot();41===t.charCodeAt(D)?(y=f,D++):(y=n,0===G&&V(M)),y!==n?(d={type:"rotate",angle:u},(h=l)&&(d.cx=h[0],d.cy=h[1]),r=[d]):(D=r,r=n)}else D=r,r=n}else D=r,r=n}else D=r,r=n;return r}())===n&&(r=function(){var r,e,o,i,a,u,l,s;if(r=D,t.substr(D,5)===y?(e=y,D+=5):(e=n,0===G&&V(P)),e!==n){for(o=[],i=ot();i!==n;)o.push(i),i=ot();if(40===t.charCodeAt(D)?(i=c,D++):(i=n,0===G&&V(A)),i!==n){for(a=[],u=ot();u!==n;)a.push(u),u=ot();if((u=K())!==n){for(l=[],s=ot();s!==n;)l.push(s),s=ot();41===t.charCodeAt(D)?(s=f,D++):(s=n,0===G&&V(M)),s!==n?r=[{type:"skewX",angle:u}]:(D=r,r=n)}else D=r,r=n}else D=r,r=n}else D=r,r=n;return r}())===n&&(r=function(){var r,e,o,i,a,u,l,s;if(r=D,t.substr(D,5)===h?(e=h,D+=5):(e=n,0===G&&V(O)),e!==n){for(o=[],i=ot();i!==n;)o.push(i),i=ot();if(40===t.charCodeAt(D)?(i=c,D++):(i=n,0===G&&V(A)),i!==n){for(a=[],u=ot();u!==n;)a.push(u),u=ot();if((u=K())!==n){for(l=[],s=ot();s!==n;)l.push(s),s=ot();41===t.charCodeAt(D)?(s=f,D++):(s=n,0===G&&V(M)),s!==n?r=[{type:"skewY",angle:u}]:(D=r,r=n)}else D=r,r=n}else D=r,r=n}else D=r,r=n;return r}()),r}function K(){var r,e,o,i;return r=D,e=D,(o=rt())===n&&(o=null),i=function(){var r,e,o;return r=D,e=function(){var r,e,o,i,a,u;return G++,r=D,(e=et())===n&&(e=null),46===t.charCodeAt(D)?(o=v,D++):(o=n,0===G&&V(C)),o!==n&&(i=et())!==n?(u=i,r=[(a=e)?a.join(""):null,".",u.join("")].join("")):(D=r,r=n),r===n&&(r=D,(e=et())!==n?(46===t.charCodeAt(D)?(o=v,D++):(o=n,0===G&&V(C)),o!==n?r=e.join(""):(D=r,r=n)):(D=r,r=n)),G--,r===n&&(e=n,0===G&&V(F)),r}(),e!==n?((o=tt())===n&&(o=null),r=[e,o||null].join("")):(D=r,r=n),r===n&&(r=D,(e=et())!==n&&(o=tt())!==n?r=[e,o].join(""):(D=r,r=n)),r}(),i!==n?e=o=[o,i]:(D=e,e=n),e!==n&&(e=parseFloat(e.join(""))),(r=e)===n&&(r=D,e=D,(o=rt())===n&&(o=null),i=function(){var t;return(t=et())!==n&&(t=t.join("")),t}(),i!==n?e=o=[o,i]:(D=e,e=n),e!==n&&(e=parseInt(e.join(""))),r=e),r}function Q(){var t,r;return t=D,W()!==n&&(r=K())!==n?t=r:(D=t,t=n),t}function W(){var t,r,e,o,i;if(t=D,r=[],(e=ot())!==n)for(;e!==n;)r.push(e),e=ot();else r=n;if(r!==n){for((e=Z())===n&&(e=null),o=[],i=ot();i!==n;)o.push(i),i=ot();t=r=[r,e,o]}else D=t,t=n;if(t===n)if(t=D,(r=Z())!==n){for(e=[],o=ot();o!==n;)e.push(o),o=ot();t=r=[r,e]}else D=t,t=n;return t}function Z(){var r;return 44===t.charCodeAt(D)?(r=d,D++):(r=n,0===G&&V(_)),r}function tt(){var r,e,o,i;return r=D,e=t.charAt(D),b.test(e)?D++:(e=n,0===G&&V(R)),e!==n?((o=rt())===n&&(o=null),(i=et())!==n?r=["e",o,i.join("")].join(""):(D=r,r=n)):(D=r,r=n),r}function rt(){var r;return r=t.charAt(D),g.test(r)?D++:(r=n,0===G&&V(I)),r}function et(){var t,r;if(t=[],(r=nt())!==n)for(;r!==n;)t.push(r),r=nt();else t=n;return t}function nt(){var r;return r=t.charAt(D),m.test(r)?D++:(r=n,0===G&&V(T)),r}function ot(){var r;return r=t.charAt(D),x.test(r)?D++:(r=n,0===G&&V(N)),r}var it=(e=a())!==n&&D===t.length;function at(){throw e!==n&&D<t.length&&V({type:"end"}),r=Y,o=$<t.length?function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:D,e=t.codePointAt(r);return void 0===e?"":String.fromCodePoint(e)}($):null,i=$<t.length?B($,$+1):B($,$),new U(U.buildMessage(r,o),r,o,i);var r,o,i}return r.peg$library?{peg$result:e,peg$currPos:D,peg$FAILED:n,peg$maxFailExpected:Y,peg$maxFailPos:$,peg$success:it,peg$throw:it?void 0:at}:it?e:void at()}function B(t){return q(t)}function V(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];r?t=m(t,j(e?-1:1,-1)):e&&(t=m(t,j(-1,1)));var n,o,i,a=t.a,u=t.b,c=t.c,f=t.d;if(0!==a||0!==c){var l=Math.hypot(a,c);n=l,o=(a*f-u*c)/l;var s=Math.acos(a/l);i=c>0?-s:s}else if(0!==u||0!==f){var p=Math.hypot(u,f);n=(a*f-u*c)/p,o=p;var y=Math.acos(u/p);i=Math.PI/2+(f>0?-y:y)}else n=0,o=0,i=0;return e&&(n=-n),r&&(o=-o),{translate:{tx:t.e,ty:t.f},scale:{sx:n,sy:o},rotation:{angle:i}}}function z(){return{a:1,c:0,e:0,b:0,d:-1,f:0}}function H(){return{a:-1,c:0,e:0,b:0,d:1,f:0}}function J(){return{a:-1,c:0,e:0,b:0,d:-1,f:0}}function K(t,r){return h(r.x-t.x,r.y-t.y)}function Q(t,r,n,o){var i=K(t,n),a=e(i,r),u=n,c=o,f=M(Math.atan2(c.y-u.y,c.x-u.x)-Math.atan2(a.y-u.y,a.x-u.x),u.x,u.y),l=Math.sqrt(Math.pow(a.x-u.x,2)+Math.pow(a.y-u.y,2)),s=Math.sqrt(Math.pow(c.x-u.x,2)+Math.pow(c.y-u.y,2))/l;return m([i,j(s,s,u.x,u.y),f])}return r})()); //# sourceMappingURL=transformation-matrix.min.js.map