{"version":3,"file":"transform.min.js","sources":["https:\/\/moodle.sonsbeekmedia.nl\/caie_test\/mod\/teachingtools\/teachingapp\/swipe\/amd\/src\/transform.js"],"sourcesContent":["\/* eslint-disable *\/\n\/*\n * transform: A jQuery cssHooks adding cross-browser 2d transform capabilities to $.fn.css() and $.fn.animate()\n *\n * limitations:\n * - requires jQuery 1.4.3+\n * - Should you use the *translate* property, then your elements need to be absolutely positionned in a relatively positionned wrapper **or it will fail in IE678**.\n * - transformOrigin is not accessible\n *\n * latest version and complete README available on Github:\n * https:\/\/github.com\/louisremi\/jquery.transform.js\n *\n * Copyright 2011 @louis_remi\n * Licensed under the MIT license.\n *\n * This saved you an hour of work?\n * Send me music http:\/\/www.amazon.co.uk\/wishlist\/HNTU0468LQON\n *\n *\/\n\n\ndefine([\"jquery\"], \/\/ Require jquery\n\nfunction($){\n\t\/*\n\t * Feature tests and global variables\n\t *\/\n\tvar div = document.createElement(\"div\"),\n\t\tdivStyle = div.style,\n\t\tsuffix = \"Transform\",\n\t\ttestProperties = [\n\t\t\t\"O\" + suffix,\n\t\t\t\"ms\" + suffix,\n\t\t\t\"Webkit\" + suffix,\n\t\t\t\"Moz\" + suffix\n\t\t],\n\t\ti = testProperties.length,\n\t\tsupportProperty,\n\t\tsupportMatrixFilter,\n\t\tsupportFloat32Array = \"Float32Array\" in window,\n\t\tpropertyHook,\n\t\tpropertyGet,\n\t\trMatrix = \/Matrix([^)]*)\/,\n\t\trAffine = \/^\\s*matrix\\(\\s*1\\s*,\\s*0\\s*,\\s*0\\s*,\\s*1\\s*(?:,\\s*0(?:px)?\\s*){2}\\)\\s*$\/,\n\t\t_transform = \"transform\",\n\t\t_transformOrigin = \"transformOrigin\",\n\t\t_translate = \"translate\",\n\t\t_rotate = \"rotate\",\n\t\t_scale = \"scale\",\n\t\t_skew = \"skew\",\n\t\t_matrix = \"matrix\";\n\n\t\/\/ test different vendor prefixes of these properties\n\twhile ( i-- ) {\n\t\tif ( testProperties[i] in divStyle ) {\n\t\t\t$.support[_transform] = supportProperty = testProperties[i];\n\t\t\t$.support[_transformOrigin] = supportProperty + \"Origin\";\n\t\t\tcontinue;\n\t\t}\n\t}\n\t\/\/ IE678 alternative\n\tif ( !supportProperty ) {\n\t\t$.support.matrixFilter = supportMatrixFilter = divStyle.filter === \"\";\n\t}\n\n\t\/\/ px isn't the default unit of these properties\n\t$.cssNumber[_transform] = $.cssNumber[_transformOrigin] = true;\n\n\t\/*\n\t * fn.css() hooks\n\t *\/\n\tif ( supportProperty && supportProperty != _transform ) {\n\t\t\/\/ Modern browsers can use jQuery.cssProps as a basic hook\n\t\t$.cssProps[_transform] = supportProperty;\n\t\t$.cssProps[_transformOrigin] = supportProperty + \"Origin\";\n\n\t\t\/\/ Firefox needs a complete hook because it stuffs matrix with \"px\"\n\t\tif ( supportProperty == \"Moz\" + suffix ) {\n\t\t\tpropertyHook = {\n\t\t\t\tget: function( elem, computed ) {\n\t\t\t\t\treturn (computed ?\n\t\t\t\t\t\t\/\/ remove \"px\" from the computed matrix\n\t\t\t\t\t\t$.css( elem, supportProperty ).split(\"px\").join(\"\"):\n\t\t\t\t\t\telem.style[supportProperty]\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tset: function( elem, value ) {\n\t\t\t\t\t\/\/ add \"px\" to matrices\n\t\t\t\t\telem.style[supportProperty] = \/matrix\\([^)p]*\\)\/.test(value) ?\n\t\t\t\t\t\tvalue.replace(\/matrix((?:[^,]*,){4})([^,]*),([^)]*)\/, _matrix+\"$1$2px,$3px\"):\n\t\t\t\t\t\tvalue;\n\t\t\t\t}\n\t\t\t};\n\t\t\/* Fix two jQuery bugs still present in 1.5.1\n\t\t * - rupper is incompatible with IE9, see http:\/\/jqbug.com\/8346\n\t\t * - jQuery.css is not really jQuery.cssProps aware, see http:\/\/jqbug.com\/8402\n\t\t *\/\n\t\t} else if ( \/^1\\.[0-5](?:\\.|$)\/.test($.fn.jquery) ) {\n\t\t\tpropertyHook = {\n\t\t\t\tget: function( elem, computed ) {\n\t\t\t\t\treturn (computed ?\n\t\t\t\t\t\t$.css( elem, supportProperty.replace(\/^ms\/, \"Ms\") ):\n\t\t\t\t\t\telem.style[supportProperty]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t\/* TODO: leverage hardware acceleration of 3d transform in Webkit only\n\t\telse if ( supportProperty == \"Webkit\" + suffix && support3dTransform ) {\n\t\t\tpropertyHook = {\n\t\t\t\tset: function( elem, value ) {\n\t\t\t\t\telem.style[supportProperty] =\n\t\t\t\t\t\tvalue.replace();\n\t\t\t\t}\n\t\t\t}\n\t\t}*\/\n\n\t} else if ( supportMatrixFilter ) {\n\t\tpropertyHook = {\n\t\t\tget: function( elem, computed, asArray ) {\n\t\t\t\tvar elemStyle = ( computed && elem.currentStyle ? elem.currentStyle : elem.style ),\n\t\t\t\t\tmatrix, data;\n\n\t\t\t\tif ( elemStyle && rMatrix.test( elemStyle.filter ) ) {\n\t\t\t\t\tmatrix = RegExp.$1.split(\",\");\n\t\t\t\t\tmatrix = [\n\t\t\t\t\t\tmatrix[0].split(\"=\")[1],\n\t\t\t\t\t\tmatrix[2].split(\"=\")[1],\n\t\t\t\t\t\tmatrix[1].split(\"=\")[1],\n\t\t\t\t\t\tmatrix[3].split(\"=\")[1]\n\t\t\t\t\t];\n\t\t\t\t} else {\n\t\t\t\t\tmatrix = [1,0,0,1];\n\t\t\t\t}\n\n\t\t\t\tif ( ! $.cssHooks[_transformOrigin] ) {\n\t\t\t\t\tmatrix[4] = elemStyle ? parseInt(elemStyle.left, 10) || 0 : 0;\n\t\t\t\t\tmatrix[5] = elemStyle ? parseInt(elemStyle.top, 10) || 0 : 0;\n\n\t\t\t\t} else {\n\t\t\t\t\tdata = $._data( elem, \"transformTranslate\", undefined );\n\t\t\t\t\tmatrix[4] = data ? data[0] : 0;\n\t\t\t\t\tmatrix[5] = data ? data[1] : 0;\n\t\t\t\t}\n\n\t\t\t\treturn asArray ? matrix : _matrix+\"(\" + matrix + \")\";\n\t\t\t},\n\t\t\tset: function( elem, value, animate ) {\n\t\t\t\tvar elemStyle = elem.style,\n\t\t\t\t\tcurrentStyle,\n\t\t\t\t\tMatrix,\n\t\t\t\t\tfilter,\n\t\t\t\t\tcenterOrigin;\n\n\t\t\t\tif ( !animate ) {\n\t\t\t\t\telemStyle.zoom = 1;\n\t\t\t\t}\n\n\t\t\t\tvalue = matrix(value);\n\n\t\t\t\t\/\/ rotate, scale and skew\n\t\t\t\tMatrix = [\n\t\t\t\t\t\"Matrix(\"+\n\t\t\t\t\t\t\"M11=\"+value[0],\n\t\t\t\t\t\t\"M12=\"+value[2],\n\t\t\t\t\t\t\"M21=\"+value[1],\n\t\t\t\t\t\t\"M22=\"+value[3],\n\t\t\t\t\t\t\"SizingMethod='auto expand'\"\n\t\t\t\t].join();\n\t\t\t\tfilter = ( currentStyle = elem.currentStyle ) && currentStyle.filter || elemStyle.filter || \"\";\n\n\t\t\t\telemStyle.filter = rMatrix.test(filter) ?\n\t\t\t\t\tfilter.replace(rMatrix, Matrix) :\n\t\t\t\t\tfilter + \" progid:DXImageTransform.Microsoft.\" + Matrix + \")\";\n\n\t\t\t\tif ( ! $.cssHooks[_transformOrigin] ) {\n\n\t\t\t\t\t\/\/ center the transform origin, from pbakaus's Transformie http:\/\/github.com\/pbakaus\/transformie\n\t\t\t\t\tif ( (centerOrigin = $.transform.centerOrigin) ) {\n\t\t\t\t\t\telemStyle[centerOrigin == \"margin\" ? \"marginLeft\" : \"left\"] = -(elem.offsetWidth\/2) + (elem.clientWidth\/2) + \"px\";\n\t\t\t\t\t\telemStyle[centerOrigin == \"margin\" ? \"marginTop\" : \"top\"] = -(elem.offsetHeight\/2) + (elem.clientHeight\/2) + \"px\";\n\t\t\t\t\t}\n\n\t\t\t\t\t\/\/ translate\n\t\t\t\t\t\/\/ We assume that the elements are absolute positionned inside a relative positionned wrapper\n\t\t\t\t\telemStyle.left = value[4] + \"px\";\n\t\t\t\t\telemStyle.top = value[5] + \"px\";\n\n\t\t\t\t} else {\n\t\t\t\t\t$.cssHooks[_transformOrigin].set( elem, value );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\t\/\/ populate jQuery.cssHooks with the appropriate hook if necessary\n\tif ( propertyHook ) {\n\t\t$.cssHooks[_transform] = propertyHook;\n\t}\n\t\/\/ we need a unique setter for the animation logic\n\tpropertyGet = propertyHook && propertyHook.get || $.css;\n\n\t\/*\n\t * fn.animate() hooks\n\t *\/\n\t$.fx.step.transform = function( fx ) {\n\t\tvar elem = fx.elem,\n\t\t\tstart = fx.start,\n\t\t\tend = fx.end,\n\t\t\tpos = fx.pos,\n\t\t\ttransform = \"\",\n\t\t\tprecision = 1E5,\n\t\t\ti, startVal, endVal, unit;\n\n\t\t\/\/ fx.end and fx.start need to be converted to interpolation lists\n\t\tif ( !start || typeof start === \"string\" ) {\n\n\t\t\t\/\/ the following block can be commented out with jQuery 1.5.1+, see #7912\n\t\t\tif ( !start ) {\n\t\t\t\tstart = propertyGet( elem, supportProperty );\n\t\t\t}\n\n\t\t\t\/\/ force layout only once per animation\n\t\t\tif ( supportMatrixFilter ) {\n\t\t\t\telem.style.zoom = 1;\n\t\t\t}\n\n\t\t\t\/\/ replace \"+=\" in relative animations (-= is meaningless with transforms)\n\t\t\tend = end.split(\"+=\").join(start);\n\n\t\t\t\/\/ parse both transform to generate interpolation list of same length\n\t\t\t$.extend( fx, interpolationList( start, end ) );\n\t\t\tstart = fx.start;\n\t\t\tend = fx.end;\n\t\t}\n\n\t\ti = start.length;\n\n\t\t\/\/ interpolate functions of the list one by one\n\t\twhile ( i-- ) {\n\t\t\tstartVal = start[i];\n\t\t\tendVal = end[i];\n\t\t\tunit = +false;\n\n\t\t\tswitch ( startVal[0] ) {\n\n\t\t\t\tcase _translate:\n\t\t\t\t\tunit = \"px\";\n\t\t\t\tcase _scale:\n\t\t\t\t\tunit || ( unit = \"\");\n\n\t\t\t\t\ttransform = startVal[0] + \"(\" +\n\t\t\t\t\t\tMath.round( (startVal[1][0] + (endVal[1][0] - startVal[1][0]) * pos) * precision ) \/ precision + unit +\",\"+\n\t\t\t\t\t\tMath.round( (startVal[1][1] + (endVal[1][1] - startVal[1][1]) * pos) * precision ) \/ precision + unit + \")\"+\n\t\t\t\t\t\ttransform;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _skew + \"X\":\n\t\t\t\tcase _skew + \"Y\":\n\t\t\t\tcase _rotate:\n\t\t\t\t\ttransform = startVal[0] + \"(\" +\n\t\t\t\t\t\tMath.round( (startVal[1] + (endVal[1] - startVal[1]) * pos) * precision ) \/ precision +\"rad)\"+\n\t\t\t\t\t\ttransform;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfx.origin && ( transform = fx.origin + transform );\n\n\t\tpropertyHook && propertyHook.set ?\n\t\t\tpropertyHook.set( elem, transform, +true ):\n\t\t\telem.style[supportProperty] = transform;\n\t};\n\n\t\/*\n\t * Utility functions\n\t *\/\n\n\t\/\/ turns a transform string into its \"matrix(A,B,C,D,X,Y)\" form (as an array, though)\n\tfunction matrix( transform ) {\n\t\ttransform = transform.split(\")\");\n\t\tvar\n\t\t\t\ttrim = $.trim\n\t\t\t, i = -1\n\t\t\t\/\/ last element of the array is an empty string, get rid of it\n\t\t\t, l = transform.length -1\n\t\t\t, split, prop, val\n\t\t\t, prev = supportFloat32Array ? new Float32Array(6) : []\n\t\t\t, curr = supportFloat32Array ? new Float32Array(6) : []\n\t\t\t, rslt = supportFloat32Array ? new Float32Array(6) : [1,0,0,1,0,0]\n\t\t\t;\n\n\t\tprev[0] = prev[3] = rslt[0] = rslt[3] = 1;\n\t\tprev[1] = prev[2] = prev[4] = prev[5] = 0;\n\n\t\t\/\/ Loop through the transform properties, parse and multiply them\n\t\twhile ( ++i < l ) {\n\t\t\tsplit = transform[i].split(\"(\");\n\t\t\tprop = trim(split[0]);\n\t\t\tval = split[1];\n\t\t\tcurr[0] = curr[3] = 1;\n\t\t\tcurr[1] = curr[2] = curr[4] = curr[5] = 0;\n\n\t\t\tswitch (prop) {\n\t\t\t\tcase _translate+\"X\":\n\t\t\t\t\tcurr[4] = parseInt(val, 10);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _translate+\"Y\":\n\t\t\t\t\tcurr[5] = parseInt(val, 10);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _translate:\n\t\t\t\t\tval = val.split(\",\");\n\t\t\t\t\tcurr[4] = parseInt(val[0], 10);\n\t\t\t\t\tcurr[5] = parseInt(val[1] || 0, 10);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _rotate:\n\t\t\t\t\tval = toRadian(val);\n\t\t\t\t\tcurr[0] = Math.cos(val);\n\t\t\t\t\tcurr[1] = Math.sin(val);\n\t\t\t\t\tcurr[2] = -Math.sin(val);\n\t\t\t\t\tcurr[3] = Math.cos(val);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _scale+\"X\":\n\t\t\t\t\tcurr[0] = +val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _scale+\"Y\":\n\t\t\t\t\tcurr[3] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _scale:\n\t\t\t\t\tval = val.split(\",\");\n\t\t\t\t\tcurr[0] = val[0];\n\t\t\t\t\tcurr[3] = val.length>1 ? val[1] : val[0];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _skew+\"X\":\n\t\t\t\t\tcurr[2] = Math.tan(toRadian(val));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _skew+\"Y\":\n\t\t\t\t\tcurr[1] = Math.tan(toRadian(val));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase _matrix:\n\t\t\t\t\tval = val.split(\",\");\n\t\t\t\t\tcurr[0] = val[0];\n\t\t\t\t\tcurr[1] = val[1];\n\t\t\t\t\tcurr[2] = val[2];\n\t\t\t\t\tcurr[3] = val[3];\n\t\t\t\t\tcurr[4] = parseInt(val[4], 10);\n\t\t\t\t\tcurr[5] = parseInt(val[5], 10);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t\/\/ Matrix product (array in column-major order)\n\t\t\trslt[0] = prev[0] * curr[0] + prev[2] * curr[1];\n\t\t\trslt[1] = prev[1] * curr[0] + prev[3] * curr[1];\n\t\t\trslt[2] = prev[0] * curr[2] + prev[2] * curr[3];\n\t\t\trslt[3] = prev[1] * curr[2] + prev[3] * curr[3];\n\t\t\trslt[4] = prev[0] * curr[4] + prev[2] * curr[5] + prev[4];\n\t\t\trslt[5] = prev[1] * curr[4] + prev[3] * curr[5] + prev[5];\n\n\t\t\tprev = [rslt[0],rslt[1],rslt[2],rslt[3],rslt[4],rslt[5]];\n\t\t}\n\t\treturn rslt;\n\t}\n\n\t\/\/ turns a matrix into its rotate, scale and skew components\n\t\/\/ algorithm from http:\/\/hg.mozilla.org\/mozilla-central\/file\/7cb3e9795d04\/layout\/style\/nsStyleAnimation.cpp\n\tfunction unmatrix(matrix) {\n\t\tvar\n\t\t\t\tscaleX\n\t\t\t, scaleY\n\t\t\t, skew\n\t\t\t, A = matrix[0]\n\t\t\t, B = matrix[1]\n\t\t\t, C = matrix[2]\n\t\t\t, D = matrix[3]\n\t\t\t;\n\n\t\t\/\/ Make sure matrix is not singular\n\t\tif ( A * D - B * C ) {\n\t\t\t\/\/ step (3)\n\t\t\tscaleX = Math.sqrt( A * A + B * B );\n\t\t\tA \/= scaleX;\n\t\t\tB \/= scaleX;\n\t\t\t\/\/ step (4)\n\t\t\tskew = A * C + B * D;\n\t\t\tC -= A * skew;\n\t\t\tD -= B * skew;\n\t\t\t\/\/ step (5)\n\t\t\tscaleY = Math.sqrt( C * C + D * D );\n\t\t\tC \/= scaleY;\n\t\t\tD \/= scaleY;\n\t\t\tskew \/= scaleY;\n\t\t\t\/\/ step (6)\n\t\t\tif ( A * D < B * C ) {\n\t\t\t\tA = -A;\n\t\t\t\tB = -B;\n\t\t\t\tskew = -skew;\n\t\t\t\tscaleX = -scaleX;\n\t\t\t}\n\n\t\t\/\/ matrix is singular and cannot be interpolated\n\t\t} else {\n\t\t\t\/\/ In this case the elem shouldn't be rendered, hence scale == 0\n\t\t\tscaleX = scaleY = skew = 0;\n\t\t}\n\n\t\t\/\/ The recomposition order is very important\n\t\t\/\/ see http:\/\/hg.mozilla.org\/mozilla-central\/file\/7cb3e9795d04\/layout\/style\/nsStyleAnimation.cpp#l971\n\t\treturn [\n\t\t\t[_translate, [+matrix[4], +matrix[5]]],\n\t\t\t[_rotate, Math.atan2(B, A)],\n\t\t\t[_skew + \"X\", Math.atan(skew)],\n\t\t\t[_scale, [scaleX, scaleY]]\n\t\t];\n\t}\n\n\t\/\/ build the list of transform functions to interpolate\n\t\/\/ use the algorithm described at http:\/\/dev.w3.org\/csswg\/css3-2d-transforms\/#animation\n\tfunction interpolationList( start, end ) {\n\t\tvar list = {\n\t\t\t\tstart: [],\n\t\t\t\tend: []\n\t\t\t},\n\t\t\ti = -1, l,\n\t\t\tcurrStart, currEnd, currType;\n\n\t\t\/\/ get rid of affine transform matrix\n\t\t( start == \"none\" || isAffine( start ) ) && ( start = \"\" );\n\t\t( end == \"none\" || isAffine( end ) ) && ( end = \"\" );\n\n\t\t\/\/ if end starts with the current computed style, this is a relative animation\n\t\t\/\/ store computed style as the origin, remove it from start and end\n\t\tif ( start && end && !end.indexOf(\"matrix\") && toArray( start ).join() == toArray( end.split(\")\")[0] ).join() ) {\n\t\t\tlist.origin = start;\n\t\t\tstart = \"\";\n\t\t\tend = end.slice( end.indexOf(\")\") +1 );\n\t\t}\n\n\t\tif ( !start && !end ) { return; }\n\n\t\t\/\/ start or end are affine, or list of transform functions are identical\n\t\t\/\/ => functions will be interpolated individually\n\t\tif ( !start || !end || functionList(start) == functionList(end) ) {\n\n\t\t\tstart && ( start = start.split(\")\") ) && ( l = start.length );\n\t\t\tend && ( end = end.split(\")\") ) && ( l = end.length );\n\n\t\t\twhile ( ++i < l-1 ) {\n\t\t\t\tstart[i] && ( currStart = start[i].split(\"(\") );\n\t\t\t\tend[i] && ( currEnd = end[i].split(\"(\") );\n\t\t\t\tcurrType = $.trim( ( currStart || currEnd )[0] );\n\n\t\t\t\tappend( list.start, parseFunction( currType, currStart ? currStart[1] : 0 ) );\n\t\t\t\tappend( list.end, parseFunction( currType, currEnd ? currEnd[1] : 0 ) );\n\t\t\t}\n\n\t\t\/\/ otherwise, functions will be composed to a single matrix\n\t\t} else {\n\t\t\tlist.start = unmatrix(matrix(start));\n\t\t\tlist.end = unmatrix(matrix(end))\n\t\t}\n\n\t\treturn list;\n\t}\n\n\tfunction parseFunction( type, value ) {\n\t\tvar\n\t\t\t\/\/ default value is 1 for scale, 0 otherwise\n\t\t\tdefaultValue = +(!type.indexOf(_scale)),\n\t\t\tscaleX,\n\t\t\t\/\/ remove X\/Y from scaleX\/Y & translateX\/Y, not from skew\n\t\t\tcat = type.replace( \/e[XY]\/, \"e\" );\n\n\t\tswitch ( type ) {\n\t\t\tcase _translate+\"Y\":\n\t\t\tcase _scale+\"Y\":\n\n\t\t\t\tvalue = [\n\t\t\t\t\tdefaultValue,\n\t\t\t\t\tvalue ?\n\t\t\t\t\t\tparseFloat( value ):\n\t\t\t\t\t\tdefaultValue\n\t\t\t\t];\n\t\t\t\tbreak;\n\n\t\t\tcase _translate+\"X\":\n\t\t\tcase _translate:\n\t\t\tcase _scale+\"X\":\n\t\t\t\tscaleX = 1;\n\t\t\tcase _scale:\n\n\t\t\t\tvalue = value ?\n\t\t\t\t\t( value = value.split(\",\") ) &&\t[\n\t\t\t\t\t\tparseFloat( value[0] ),\n\t\t\t\t\t\tparseFloat( value.length>1 ? value[1] : type == _scale ? scaleX || value[0] : defaultValue+\"\" )\n\t\t\t\t\t]:\n\t\t\t\t\t[defaultValue, defaultValue];\n\t\t\t\tbreak;\n\n\t\t\tcase _skew+\"X\":\n\t\t\tcase _skew+\"Y\":\n\t\t\tcase _rotate:\n\t\t\t\tvalue = value ? toRadian( value ) : 0;\n\t\t\t\tbreak;\n\n\t\t\tcase _matrix:\n\t\t\t\treturn unmatrix( value ? toArray(value) : [1,0,0,1,0,0] );\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn [[ cat, value ]];\n\t}\n\n\tfunction isAffine( matrix ) {\n\t\treturn rAffine.test(matrix);\n\t}\n\n\tfunction functionList( transform ) {\n\t\treturn transform.replace(\/(?:\\([^)]*\\))|\\s\/g, \"\");\n\t}\n\n\tfunction append( arr1, arr2, value ) {\n\t\twhile ( value = arr2.shift() ) {\n\t\t\tarr1.push( value );\n\t\t}\n\t}\n\n\t\/\/ converts an angle string in any unit to a radian Float\n\tfunction toRadian(value) {\n\t\treturn ~value.indexOf(\"deg\") ?\n\t\t\tparseInt(value,10) * (Math.PI * 2 \/ 360):\n\t\t\t~value.indexOf(\"grad\") ?\n\t\t\t\tparseInt(value,10) * (Math.PI\/200):\n\t\t\t\tparseFloat(value);\n\t}\n\n\t\/\/ Converts \"matrix(A,B,C,D,X,Y)\" to [A,B,C,D,X,Y]\n\tfunction toArray(matrix) {\n\t\t\/\/ remove the unit of X and Y for Firefox\n\t\tmatrix = \/([^,]*),([^,]*),([^,]*),([^,]*),([^,p]*)(?:px)?,([^)p]*)(?:px)?\/.exec(matrix);\n\t\treturn [matrix[1], matrix[2], matrix[3], matrix[4], matrix[5], matrix[6]];\n\t}\n\n\t$.transform = {\n\t\tcenterOrigin: \"margin\"\n\t};\n});\n\n\/* eslint-enable *\/"],"names":["define","$","supportProperty","supportMatrixFilter","propertyHook","propertyGet","divStyle","document","createElement","style","suffix","testProperties","i","length","supportFloat32Array","window","rMatrix","rAffine","support","matrix","transform","split","prop","val","trim","l","prev","Float32Array","curr","rslt","_translate","parseInt","toRadian","Math","cos","sin","_scale","_skew","tan","unmatrix","scaleX","scaleY","skew","A","B","C","D","sqrt","atan2","atan","parseFunction","type","value","defaultValue","indexOf","cat","replace","parseFloat","toArray","isAffine","test","functionList","append","arr1","arr2","shift","push","PI","exec","matrixFilter","filter","cssNumber","cssProps","get","elem","computed","css","join","set","_matrix","fn","jquery","asArray","data","elemStyle","currentStyle","RegExp","$1","cssHooks","_data","undefined","left","top","animate","Matrix","centerOrigin","zoom","offsetWidth","clientWidth","offsetHeight","clientHeight","fx","step","startVal","endVal","unit","start","end","pos","extend","currStart","currEnd","currType","list","origin","slice","interpolationList","round"],"mappings":"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\/bF,QAkcPY,MAAQA,OACLA,MAAQA,MAAM\/B,MAAM,OAAU,CAC\/BoC,WAAYL,MAAM,IAClBK,WAAYL,MAAMvC,OAAO,EAAIuC,MAAM,GArc9B,SAqcmCD,KAAiBX,QAAUY,MAAM,GAAKC,aAAa,KAE5F,CAACA,aAAcA,wBAGZhB,YACAA,YA5cI,SA8cRe,MAAQA,MAAQpB,SAAUoB,OAAU,YA3c5B,gBA+cDb,SAAUa,MAAQM,QAAQN,OAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAIhD,CAAC,CAAEG,IAAKH,iBAGPO,SAAUxC,eACXF,QAAQ2C,KAAKzC,iBAGZ0C,aAAczC,kBACfA,UAAUoC,QAAQ,oBAAqB,aAGtCM,OAAQC,KAAMC,KAAMZ,YACpBA,MAAQY,KAAKC,SACpBF,KAAKG,KAAMd,gBAKJpB,SAASoB,cACTA,MAAME,QAAQ,OACrBvB,SAASqB,MAAM,KAAiB,EAAVnB,KAAKkC,GAAS,MACnCf,MAAME,QAAQ,QACdvB,SAASqB,MAAM,KAAOnB,KAAKkC,GAAG,KAC9BV,WAAWL,gBAILM,QAAQvC,cAGT,EADPA,OAAS,kEAAkEiD,KAAKjD,SACjE,GAAIA,OAAO,GAAIA,OAAO,GAAIA,OAAO,GAAIA,OAAO,GAAIA,OAAO,IAtejEjB,kBACLD,EAAEiB,QAAQmD,aAAelE,oBAA0C,KAApBG,SAASgE,QAIzDrE,EAAEsE,UAAF,UAA0BtE,EAAEsE,UAAF,iBAAgC,EAKrDrE,iBA3BS,aA2BUA,iBAEvBD,EAAEuE,SAAF,UAAyBtE,gBACzBD,EAAEuE,SAAF,gBAA+BtE,gBAAkB,SAG5CA,iBAAmB,MAAQQ,OAC\/BN,aAAe,CACdqE,IAAK,SAAUC,KAAMC,iBACZA,SAEP1E,EAAE2E,IAAKF,KAAMxE,iBAAkBmB,MAAM,MAAMwD,KAAK,IAChDH,KAAKjE,MAAMP,kBAGb4E,IAAK,SAAUJ,KAAMtB,OAEpBsB,KAAKjE,MAAMP,iBAAmB,mBAAmB0D,KAAKR,OACrDA,MAAMI,QAAQ,uCAAwCuB,qBACtD3B,QAOQ,oBAAoBQ,KAAK3D,EAAE+E,GAAGC,UACzC7E,aAAe,CACdqE,IAAK,SAAUC,KAAMC,iBACZA,SACP1E,EAAE2E,IAAKF,KAAMxE,gBAAgBsD,QAAQ,MAAO,OAC5CkB,KAAKjE,MAAMP,qBAeJC,sBACXC,aAAe,CACdqE,IAAK,SAAUC,KAAMC,SAAUO,aAE7B\/D,OAAQgE,KADLC,UAAcT,UAAYD,KAAKW,aAAeX,KAAKW,aAAeX,KAAKjE,aAK1EU,OAFIiE,WAAapE,QAAQ4C,KAAMwB,UAAUd,QAEhC,EADTnD,OAASmE,OAAOC,GAAGlE,MAAM,MAEjB,GAAGA,MAAM,KAAK,GACrBF,OAAO,GAAGE,MAAM,KAAK,GACrBF,OAAO,GAAGE,MAAM,KAAK,GACrBF,OAAO,GAAGE,MAAM,KAAK,IAGb,CAAC,EAAE,EAAE,EAAE,GAGVpB,EAAEuF,SAAF,iBAKNL,KAAOlF,EAAEwF,MAAOf,KAAM,0BAAsBgB,GAC5CvE,OAAO,GAAKgE,KAAOA,KAAK,GAAK,EAC7BhE,OAAO,GAAKgE,KAAOA,KAAK,GAAK,IAN7BhE,OAAO,GAAKiE,WAAYrD,SAASqD,UAAUO,KAAM,KAAW,EAC5DxE,OAAO,GAAKiE,WAAYrD,SAASqD,UAAUQ,IAAK,KAAW,GAQrDV,QAAU\/D,OAAS4D,UAAc5D,OAAS,KAElD2D,IAAK,SAAUJ,KAAMtB,MAAOyC,aAE1BR,aACAS,OACAxB,OACAyB,aAJGX,UAAYV,KAAKjE,MAMfoF,UACLT,UAAUY,KAAO,GAMlBF,OAAS,CACR,eAJD1C,MAAQjC,OAAOiC,QAKA,GACb,OAAOA,MAAM,GACb,OAAOA,MAAM,GACb,OAAOA,MAAM,GACb,8BACAyB,OACFP,QAAWe,aAAeX,KAAKW,eAAkBA,aAAaf,QAAUc,UAAUd,QAAU,GAE5Fc,UAAUd,OAAStD,QAAQ4C,KAAKU,QAC\/BA,OAAOd,QAAQxC,QAAS8E,QACxBxB,OAAS,sCAAwCwB,OAAS,IAEpD7F,EAAEuF,SAAF,gBAcNvF,EAAEuF,SAAF,gBAA6BV,IAAKJ,KAAMtB,SAXlC2C,aAAe9F,EAAEmB,UAAU2E,gBAChCX,UAA0B,UAAhBW,aAA2B,aAAe,SAAYrB,KAAKuB,YAAY,EAAMvB,KAAKwB,YAAY,EAAK,KAC7Gd,UAA0B,UAAhBW,aAA2B,YAAc,QAAWrB,KAAKyB,aAAa,EAAMzB,KAAK0B,aAAa,EAAK,MAK9GhB,UAAUO,KAAOvC,MAAM,GAAK,KAC5BgC,UAAUQ,IAAMxC,MAAM,GAAK,SAS1BhD,eACJH,EAAEuF,SAAF,UAAyBpF,cAG1BC,YAAcD,cAAgBA,aAAaqE,KAAOxE,EAAE2E,IAKpD3E,EAAEoG,GAAGC,KAAKlF,UAAY,SAAUiF,QAO9BzF,EAAG2F,SAAUC,OAAQC,KANlB\/B,KAAO2B,GAAG3B,KACbgC,MAAQL,GAAGK,MACXC,IAAMN,GAAGM,IACTC,IAAMP,GAAGO,IACTxF,UAAY,OAKPsF,OAA0B,iBAAVA,QAGfA,QACLA,MAAQrG,YAAaqE,KAAMxE,kBAIvBC,sBACJuE,KAAKjE,MAAMuF,KAAO,GAInBW,IAAMA,IAAItF,MAAM,MAAMwD,KAAK6B,OAG3BzG,EAAE4G,OAAQR,YAmMgBK,MAAOC,SAKzBlF,EACRqF,UAAWC,QAASC,SALjBC,KAAO,CACTP,MAAO,GACPC,IAAK,IAEN\/F,GAAK,GAIK,QAAT8F,OAAmB\/C,SAAU+C,UAAeA,MAAQ,KAC7C,QAAPC,KAAiBhD,SAAUgD,QAAaA,IAAM,IAI3CD,OAASC,MAAQA,IAAIrD,QAAQ,WAAaI,QAASgD,OAAQ7B,QAAUnB,QAASiD,IAAItF,MAAM,KAAK,IAAKwD,SACtGoC,KAAKC,OAASR,MACdA,MAAQ,GACRC,IAAMA,IAAIQ,MAAOR,IAAIrD,QAAQ,KAAM,QAG9BoD,QAAUC,cAIVD,OAAUC,KAAO9C,aAAa6C,QAAU7C,aAAa8C,KAgB1DM,KAAKP,MAAQnE,SAASpB,OAAOuF,QAC7BO,KAAKN,IAAMpE,SAASpB,OAAOwF,eAf3BD,QAAWA,MAAQA,MAAMrF,MAAM,QAAYI,EAAIiF,MAAM7F,QACrD8F,MAASA,IAAMA,IAAItF,MAAM,QAAYI,EAAIkF,IAAI9F,UAEnCD,EAAIa,EAAE,GACfiF,MAAM9F,KAAQkG,UAAYJ,MAAM9F,GAAGS,MAAM,MACzCsF,IAAI\/F,KAAQmG,QAAUJ,IAAI\/F,GAAGS,MAAM,MACnC2F,SAAW\/G,EAAEuB,MAAQsF,WAAaC,SAAU,IAE5CjD,OAAQmD,KAAKP,MAAOxD,cAAe8D,SAAUF,UAAYA,UAAU,GAAK,IACxEhD,OAAQmD,KAAKN,IAAKzD,cAAe8D,SAAUD,QAAUA,QAAQ,GAAK,WAS7DE,KA\/OQG,CAAmBV,MAAOC,MACxCD,MAAQL,GAAGK,MACXC,IAAMN,GAAGM,KAGV\/F,EAAI8F,MAAM7F,OAGFD,YACP2F,SAAWG,MAAM9F,GACjB4F,OAASG,IAAI\/F,GACb6F,KAAO,EAEEF,SAAS,QArMN,YAwMVE,KAAO,SAtMD,QAwMNA,OAAUA,KAAO,IAEjBrF,UAAYmF,SAAS,GAAK,IACzBtE,KAAKoF,MAzCI,KAyCId,SAAS,GAAG,IAAMC,OAAO,GAAG,GAAKD,SAAS,GAAG,IAAMK,MAzCvD,IAyCwFH,KAAM,IACvGxE,KAAKoF,MA1CI,KA0CId,SAAS,GAAG,IAAMC,OAAO,GAAG,GAAKD,SAAS,GAAG,IAAMK,MA1CvD,IA0CwFH,KAAO,IACxGrF,oBAGGiB,YACAA,YAlNG,SAoNPjB,UAAYmF,SAAS,GAAK,IACzBtE,KAAKoF,MAlDI,KAkDId,SAAS,IAAMC,OAAO,GAAKD,SAAS,IAAMK,MAlD9C,IAkD8E,OACvFxF,UAKJiF,GAAGa,SAAY9F,UAAYiF,GAAGa,OAAS9F,WAEvChB,cAAgBA,aAAa0E,IAC5B1E,aAAa0E,IAAKJ,KAAMtD,UAAW,GACnCsD,KAAKjE,MAAMP,iBAAmBkB,WAwRhCnB,EAAEmB,UAAY,CACb2E,aAAc"}