@daphneb/phonereporting
Version:
109 lines (88 loc) • 4.2 kB
JavaScript
;
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
var map = require('lodash/map');
var filter = require('lodash/filter');
var find = require('lodash/find');
var sortBy = require('lodash/sortBy');
var difference = require('lodash/difference');
var ColumnProperties = (function () {
function ColumnProperties() {
var allColumns = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
var filteredColumns = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1];
var childrenColumnName = arguments.length <= 2 || arguments[2] === undefined ? "children" : arguments[2];
var columnMetadata = arguments.length <= 3 || arguments[3] === undefined ? [] : arguments[3];
var metadataColumns = arguments.length <= 4 || arguments[4] === undefined ? [] : arguments[4];
_classCallCheck(this, ColumnProperties);
this.allColumns = allColumns;
this.filteredColumns = filteredColumns;
this.childrenColumnName = childrenColumnName;
this.columnMetadata = columnMetadata;
this.metadataColumns = metadataColumns;
}
_createClass(ColumnProperties, [{
key: 'getMetadataColumns',
value: function getMetadataColumns() {
var meta = map(filter(this.columnMetadata, { visible: false }), function (item) {
//console.log("MatVisible",item)
return item.columnName;
});
if (meta.indexOf(this.childrenColumnName) < 0) {
meta.push(this.childrenColumnName);
}
//console.log("MetaBlabla",this.metadataColumns);
this.visibleColumn = meta;
return meta.concat(this.metadataColumns);
}
}, {
key: 'getVisibleColumnCount',
value: function getVisibleColumnCount() {
return this.getColumns().length;
}
}, {
key: 'getColumnMetadataByName',
value: function getColumnMetadataByName(name) {
return find(this.columnMetadata, { columnName: name });
}
}, {
key: 'hasColumnMetadata',
value: function hasColumnMetadata() {
return this.columnMetadata !== null && this.columnMetadata.length > 0;
}
}, {
key: 'getMetadataColumnProperty',
value: function getMetadataColumnProperty(columnName, propertyName, defaultValue) {
var meta = this.getColumnMetadataByName(columnName);
//send back the default value if meta isn't there
if (typeof meta === "undefined" || meta === null) return defaultValue;
return meta.hasOwnProperty(propertyName) ? meta[propertyName] : defaultValue;
}
}, {
key: 'orderColumns',
value: function orderColumns(cols) {
var _this = this;
var ORDER_MAX = 100;
var orderedColumns = sortBy(cols, function (item) {
var metaItem = find(_this.columnMetadata, { columnName: item });
if (typeof metaItem === 'undefined' || metaItem === null || isNaN(metaItem.order)) {
return ORDER_MAX;
}
return metaItem.order;
});
return orderedColumns;
}
}, {
key: 'getColumns',
value: function getColumns() {
//if we didn't set default or filter
//console.log(this.filteredColumns);
var filteredColumns = this.filteredColumns.length === 0 ? this.allColumns : this.filteredColumns;
filteredColumns = difference(filteredColumns, this.metadataColumns);
filteredColumns = this.orderColumns(filteredColumns);
//console.log("getColumns",filteredColumns);
return filteredColumns;
}
}]);
return ColumnProperties;
})();
module.exports = ColumnProperties;