blob: de82c685da1203bd117a49567d704090835b64f0 [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();