blob: 05915d6800f49b6d7bc416aa0580bbc524eb036f [file] [log] [blame]
export interface CssMatrix {
a: number;
b: number;
c: number;
d: number;
tx: number;
ty: number;
}
export interface CssTranslate {
x: number;
y: number;
}
class CssHelper {
public matrixSerialization(matrixString: string): CssMatrix {
const matrixArray = matrixString
.replace('matrix(', '')
.replace(')', '')
.split(',');
// const matrixNumberArray = [];
const matrixNumberArray = matrixArray.map((value) => {
return parseFloat(value);
});
return {
a: matrixNumberArray[0],
b: matrixNumberArray[1],
c: matrixNumberArray[2],
d: matrixNumberArray[3],
tx: matrixNumberArray[4],
ty: matrixNumberArray[5],
};
}
public translateDeserialization(translate: CssTranslate) {
let translateString = '';
const translateEntries = Object.entries(translate);
translateEntries.forEach((value) => {
translateString += value[1] + ',';
});
translateString = translateString.slice(0, translateString.length - 1);
return `translate(${translateString})`;
}
public translateSerialization(translateString: string): CssTranslate {
const translateArray = translateString
.replace('translate(', '')
.replace(')', '')
.split(',');
// const translateNumberArray = [];
const translateNumberArray = translateArray.map((value) => {
return parseFloat(value);
});
return {
x: translateNumberArray[0],
y: translateNumberArray[1],
};
}
public matrixDeserialization(cssMatrix: CssMatrix) {
let matrixString = '';
const matrixEntries = Object.entries(cssMatrix);
matrixEntries.forEach((value) => {
matrixString += value[1] + ',';
});
matrixString = matrixString.slice(0, matrixString.length - 1);
return `matrix(${matrixString})`;
}
}
export default new CssHelper();