UNPKG

ag-grid

Version:

Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components

137 lines (136 loc) 6.87 kB
/** * ag-grid - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components * @version v18.1.2 * @link http://www.ag-grid.com/ * @license MIT */ "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); var context_1 = require("../context/context"); var column_1 = require("../entities/column"); var gridOptionsWrapper_1 = require("../gridOptionsWrapper"); var utils_1 = require("../utils"); var columnController_1 = require("./columnController"); var balancedColumnTreeBuilder_1 = require("./balancedColumnTreeBuilder"); var AutoGroupColService = (function () { function AutoGroupColService() { } AutoGroupColService_1 = AutoGroupColService; AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) { var _this = this; var groupAutoColumns = []; var doingTreeData = this.gridOptionsWrapper.isTreeData(); var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn(); if (doingTreeData && doingMultiAutoColumn) { console.log('ag-Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data'); doingMultiAutoColumn = false; } // if doing groupMultiAutoColumn, then we call the method multiple times, once // for each column we are grouping by if (doingMultiAutoColumn) { rowGroupColumns.forEach(function (rowGroupCol, index) { groupAutoColumns.push(_this.createOneAutoGroupColumn(rowGroupCol, index)); }); } else { groupAutoColumns.push(this.createOneAutoGroupColumn(null)); } return groupAutoColumns; }; // rowGroupCol and index are missing if groupMultiAutoColumn=false AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) { // if one provided by user, use it, otherwise create one var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol); // if doing multi, set the field var colId; if (rowGroupCol) { colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_ID + "-" + rowGroupCol.getId(); } else { colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID; } var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef(); utils_1._.mergeDeep(defaultAutoColDef, userAutoColDef); defaultAutoColDef = this.balancedColumnTreeBuilder.mergeColDefs(defaultAutoColDef); defaultAutoColDef.colId = colId; // For tree data the filter is always allowed if (!this.gridOptionsWrapper.isTreeData()) { // we would only allow filter if the user has provided field or value getter. otherwise the filter // would not be able to work. var noFieldOrValueGetter = utils_1._.missing(defaultAutoColDef.field) && utils_1._.missing(defaultAutoColDef.valueGetter) && utils_1._.missing(defaultAutoColDef.filterValueGetter); if (noFieldOrValueGetter) { defaultAutoColDef.suppressFilter = true; } } // if showing many cols, we don't want to show more than one with a checkbox for selection if (index > 0) { defaultAutoColDef.headerCheckboxSelection = false; } var newCol = new column_1.Column(defaultAutoColDef, colId, true); this.context.wireBean(newCol); return newCol; }; AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) { var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc(); var defaultAutoColDef = { headerName: localeTextFunc('group', 'Group'), cellRenderer: 'agGroupCellRenderer' }; // we never allow moving the group column // defaultAutoColDef.suppressMovable = true; if (rowGroupCol) { var rowGroupColDef = rowGroupCol.getColDef(); utils_1._.assign(defaultAutoColDef, { // cellRendererParams.groupKey: colDefToCopy.field; headerName: this.columnController.getDisplayNameForColumn(rowGroupCol, 'header'), headerValueGetter: rowGroupColDef.headerValueGetter }); if (rowGroupColDef.cellRenderer) { utils_1._.assign(defaultAutoColDef, { cellRendererParams: { innerRenderer: rowGroupColDef.cellRenderer, innerRendererParams: rowGroupColDef.cellRendererParams } }); } defaultAutoColDef.showRowGroup = rowGroupCol.getColId(); } else { defaultAutoColDef.showRowGroup = true; } return defaultAutoColDef; }; AutoGroupColService.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn'; AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = AutoGroupColService_1.GROUP_AUTO_COLUMN_ID; __decorate([ context_1.Autowired('gridOptionsWrapper'), __metadata("design:type", gridOptionsWrapper_1.GridOptionsWrapper) ], AutoGroupColService.prototype, "gridOptionsWrapper", void 0); __decorate([ context_1.Autowired('context'), __metadata("design:type", context_1.Context) ], AutoGroupColService.prototype, "context", void 0); __decorate([ context_1.Autowired('columnController'), __metadata("design:type", columnController_1.ColumnController) ], AutoGroupColService.prototype, "columnController", void 0); __decorate([ context_1.Autowired('balancedColumnTreeBuilder'), __metadata("design:type", balancedColumnTreeBuilder_1.BalancedColumnTreeBuilder) ], AutoGroupColService.prototype, "balancedColumnTreeBuilder", void 0); AutoGroupColService = AutoGroupColService_1 = __decorate([ context_1.Bean('autoGroupColService') ], AutoGroupColService); return AutoGroupColService; var AutoGroupColService_1; }()); exports.AutoGroupColService = AutoGroupColService;