| 26921 | var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g; |
| 26922 | |
| 26923 | function parseTransformAttribute(xmlNode, node) { |
| 26924 | var transform = xmlNode.getAttribute('transform'); |
| 26925 | if (transform) { |
| 26926 | transform = transform.replace(/,/g, ' '); |
| 26927 | var m = null; |
| 26928 | var transformOps = []; |
| 26929 | transform.replace(transformRegex, function (str, type, value) { |
| 26930 | transformOps.push(type, value); |
| 26931 | }); |
| 26932 | for (var i = transformOps.length - 1; i > 0; i -= 2) { |
| 26933 | var value = transformOps[i]; |
| 26934 | var type = transformOps[i - 1]; |
| 26935 | m = m || create$1(); |
| 26936 | switch (type) { |
| 26937 | case 'translate': |
| 26938 | value = trim(value).split(DILIMITER_REG); |
| 26939 | translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]); |
| 26940 | break; |
| 26941 | case 'scale': |
| 26942 | value = trim(value).split(DILIMITER_REG); |
| 26943 | scale$1(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]); |
| 26944 | break; |
| 26945 | case 'rotate': |
| 26946 | value = trim(value).split(DILIMITER_REG); |
| 26947 | rotate(m, m, parseFloat(value[0])); |
| 26948 | break; |
| 26949 | case 'skew': |
| 26950 | value = trim(value).split(DILIMITER_REG); |
| 26951 | console.warn('Skew transform is not supported yet'); |
| 26952 | break; |
| 26953 | case 'matrix': |
| 26954 | var value = trim(value).split(DILIMITER_REG); |
| 26955 | m[0] = parseFloat(value[0]); |
| 26956 | m[1] = parseFloat(value[1]); |
| 26957 | m[2] = parseFloat(value[2]); |
| 26958 | m[3] = parseFloat(value[3]); |
| 26959 | m[4] = parseFloat(value[4]); |
| 26960 | m[5] = parseFloat(value[5]); |
| 26961 | break; |
| 26962 | } |
| 26963 | } |
| 26964 | node.setLocalTransform(m); |
| 26965 | } |
| 26966 | } |
| 26967 | |
| 26968 | // Value may contain space. |
| 26969 | var styleRegex = /([^\s:;]+)\s*:\s*([^:;]+)/g; |