MCPcopy
hub / github.com/tdewolff/minify / parseTransformAttribute

Function parseTransformAttribute

_benchmarks/sample_echarts.js:28105–28150  ·  view source on GitHub ↗
(xmlNode, node)

Source from the content-addressed store, hash-verified

28103 }
28104 var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.eE,]*)\)/g;
28105 function parseTransformAttribute(xmlNode, node) {
28106 var transform = xmlNode.getAttribute('transform');
28107 if (transform) {
28108 transform = transform.replace(/,/g, ' ');
28109 var transformOps_1 = [];
28110 var mt = null;
28111 transform.replace(transformRegex, function (str, type, value) {
28112 transformOps_1.push(type, value);
28113 return '';
28114 });
28115 for (var i = transformOps_1.length - 1; i > 0; i -= 2) {
28116 var value = transformOps_1[i];
28117 var type = transformOps_1[i - 1];
28118 var valueArr = void 0;
28119 mt = mt || create$1();
28120 switch (type) {
28121 case 'translate':
28122 valueArr = splitNumberSequence(value);
28123 translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);
28124 break;
28125 case 'scale':
28126 valueArr = splitNumberSequence(value);
28127 scale$1(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);
28128 break;
28129 case 'rotate':
28130 valueArr = splitNumberSequence(value);
28131 rotate(mt, mt, -parseFloat(valueArr[0]) / 180 * Math.PI);
28132 break;
28133 case 'skew':
28134 valueArr = splitNumberSequence(value);
28135 console.warn('Skew transform is not supported yet');
28136 break;
28137 case 'matrix':
28138 valueArr = splitNumberSequence(value);
28139 mt[0] = parseFloat(valueArr[0]);
28140 mt[1] = parseFloat(valueArr[1]);
28141 mt[2] = parseFloat(valueArr[2]);
28142 mt[3] = parseFloat(valueArr[3]);
28143 mt[4] = parseFloat(valueArr[4]);
28144 mt[5] = parseFloat(valueArr[5]);
28145 break;
28146 }
28147 }
28148 node.setLocalTransform(mt);
28149 }
28150 }
28151 var styleRegex = /([^\s:;]+)\s*:\s*([^:;]+)/g;
28152 function parseInlineStyle(xmlNode, inheritableStyleResult, selfStyleResult) {
28153 var style = xmlNode.getAttribute('style');

Callers 1

parseAttributesFunction · 0.85

Calls 5

create$1Function · 0.85
splitNumberSequenceFunction · 0.85
scale$1Function · 0.85
translateFunction · 0.70
rotateFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…