UNPKG

@daphneb/phonereporting

Version:

109 lines (88 loc) 4.2 kB
'use strict'; 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;