1
0
mirror of https://github.com/ascribe/onion.git synced 2024-11-15 09:35:10 +01:00
onion/js/mixins/table_column_mixin.js

25 lines
879 B
JavaScript
Raw Normal View History

import React from 'react';
2015-05-20 14:48:57 +02:00
2015-06-02 13:42:17 +02:00
import { sumNumList } from '../utils/general_utils';
2015-05-20 16:44:45 +02:00
2015-05-20 14:48:57 +02:00
let TableColumnMixin = {
/**
* Generates the bootstrap grid column declarations automatically using
* the columnMap.
*/
2015-05-26 14:57:32 +02:00
calcColumnClasses(list, i, numOfColumns) {
2015-05-20 14:48:57 +02:00
let bootstrapClasses = ['col-xs-', 'col-sm-', 'col-md-', 'col-lg-'];
let listOfRowValues = list.map((column) => column.rowWidth );
2015-06-02 13:42:17 +02:00
let numOfUsedColumns = sumNumList(listOfRowValues);
2015-05-20 14:48:57 +02:00
2015-05-26 14:57:32 +02:00
if(numOfUsedColumns > numOfColumns) {
throw new Error('This table has only ' + numOfColumns + ' columns to assign. You defined ' + numOfUsedColumns + '. Change this in the columnMap you\'re passing to the table.')
} else {
return bootstrapClasses.join( listOfRowValues[i] + ' ') + listOfRowValues[i];
}
2015-05-20 14:48:57 +02:00
}
};
2015-05-20 16:44:45 +02:00
export default TableColumnMixin;