Home Reference Source

src/components/EditableTable/dataTransformer.js

class dataTransformer
{
    static get internalFields() {
        return [
            '__editMode',
            '__loading',
            '__name',
            'key'
        ];
    }
    static data2model = (inputData) => {
        let outputData = [], outputRow, key = 0;
        for (const row of inputData) {
            outputRow = Object.assign({__editMode: false, __loading: false}, row);
            for (const cell in row) {
                outputRow[cell] = {
                    __editMode: false,
                    __loading: false,
                    __name: cell,
                    value: row[cell]
                };
            }
            outputRow.key = key++;
            outputData.push(outputRow);
        }
        return outputData;
    };

    static pureRow = (modelRow) => {
        let row = {};
        Object.entries(modelRow).forEach(([columnName, columnValue]) => {
            if(dataTransformer.internalFields.indexOf(columnName) < 0) {
                row[columnName] = columnValue.value;
            }
        });
        return row;
    }
}

export default dataTransformer;