UNPKG

mongoose-management

Version:
35 lines (34 loc) 1.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sort_1 = require("../helper/sort"); const abstract_1 = __importDefault(require("./abstract")); class AbstractColumnsDataset extends abstract_1.default { getColumns() { return this.columns; } getColumn(name, withSubColumns = false) { const columns = withSubColumns ? this.flatColumns().filter((c) => c.getFullname(false, false) === name) : this.getColumns().filter((c) => c.getName() === name); return columns.length === 1 ? columns[0] : undefined; } addColumn(column) { this.columns.push(column); this.sortColumns(); column.setReference(); return column; } flatColumns() { return this.columns.reduce((p, c) => p.concat(c, c.flatColumns()), []); } removeColumn(column) { this.columns = this.columns.filter((c) => c !== column); } sortColumns() { this.columns.sort(sort_1.sortByName); } } exports.default = AbstractColumnsDataset;