@progress/kendo-charts
Version:
Kendo UI platform-independent Charts library
42 lines (32 loc) • 1.1 kB
JavaScript
import { geometry } from '@progress/kendo-drawing';
var Matrix = geometry.Matrix;
var matrixRegexp = /matrix\((.*)\)/;
function parseMatrix(matrixString) {
var match = matrixString.match(matrixRegexp);
if (match === null || match.length !== 2) {
return Matrix.unit();
}
var members = match[1].split(',').map(function (x) { return parseFloat(x); });
return new (Function.prototype.bind.apply( Matrix, [ null ].concat( members) ));
}
function transformMatrix(element) {
var transform = getComputedStyle(element).transform;
if (transform === 'none') {
return Matrix.unit();
}
return parseMatrix(transform);
}
export default function elementScale(element) {
if (!element) {
return Matrix.unit();
}
var matrix = transformMatrix(element);
var parent = element.parentElement;
while (parent) {
var parentMatrix = transformMatrix(parent);
matrix = matrix.multiplyCopy(parentMatrix);
parent = parent.parentElement;
}
matrix.b = matrix.c = matrix.e = matrix.f = 0;
return matrix;
}