angular2-data-table
Version:
angular2-data-table is a Angular2 component for presenting large and complex data.
72 lines • 2.12 kB
JavaScript
;
var utils_1 = require('../utils');
/**
* Sets the column defaults
*
* @export
* @param {any[]} columns
* @returns
*/
function setColumnDefaults(columns) {
if (!columns)
return;
for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {
var column = columns_1[_i];
if (!column.$$id) {
column.$$id = utils_1.id();
}
// translate name => prop
if (!column.prop && column.name) {
column.prop = utils_1.camelCase(column.name);
}
// format props if no name passed
if (column.prop && !column.name) {
column.name = utils_1.deCamelCase(column.prop);
}
if (!column.hasOwnProperty('resizeable')) {
column.resizeable = true;
}
if (!column.hasOwnProperty('sortable')) {
column.sortable = true;
}
if (!column.hasOwnProperty('draggable')) {
column.draggable = true;
}
if (!column.hasOwnProperty('canAutoResize')) {
column.canAutoResize = true;
}
if (!column.hasOwnProperty('width')) {
column.width = 150;
}
}
}
exports.setColumnDefaults = setColumnDefaults;
/**
* Translates templates definitions to objects
*
* @export
* @param {DataTableColumnDirective[]} templates
* @returns {any[]}
*/
function translateTemplates(templates) {
var result = [];
for (var _i = 0, templates_1 = templates; _i < templates_1.length; _i++) {
var temp = templates_1[_i];
var col = {};
var props = Object.getOwnPropertyNames(temp);
for (var _a = 0, props_1 = props; _a < props_1.length; _a++) {
var prop = props_1[_a];
col[prop] = temp[prop];
}
if (temp.headerTemplate) {
col.headerTemplate = temp.headerTemplate;
}
if (temp.cellTemplate) {
col.cellTemplate = temp.cellTemplate;
}
result.push(col);
}
return result;
}
exports.translateTemplates = translateTemplates;
//# sourceMappingURL=column-helper.js.map