UNPKG

6.87 kBJavaScriptView Raw
1/**
2 * ag-grid - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3 * @version v18.1.2
4 * @link http://www.ag-grid.com/
5 * @license MIT
6 */
7"use strict";
8var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11 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;
12 return c > 3 && r && Object.defineProperty(target, key, r), r;
13};
14var __metadata = (this && this.__metadata) || function (k, v) {
15 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16};
17Object.defineProperty(exports, "__esModule", { value: true });
18var context_1 = require("../context/context");
19var column_1 = require("../entities/column");
20var gridOptionsWrapper_1 = require("../gridOptionsWrapper");
21var utils_1 = require("../utils");
22var columnController_1 = require("./columnController");
23var balancedColumnTreeBuilder_1 = require("./balancedColumnTreeBuilder");
24var AutoGroupColService = (function () {
25 function AutoGroupColService() {
26 }
27 AutoGroupColService_1 = AutoGroupColService;
28 AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) {
29 var _this = this;
30 var groupAutoColumns = [];
31 var doingTreeData = this.gridOptionsWrapper.isTreeData();
32 var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();
33 if (doingTreeData && doingMultiAutoColumn) {
34 console.log('ag-Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data');
35 doingMultiAutoColumn = false;
36 }
37 // if doing groupMultiAutoColumn, then we call the method multiple times, once
38 // for each column we are grouping by
39 if (doingMultiAutoColumn) {
40 rowGroupColumns.forEach(function (rowGroupCol, index) {
41 groupAutoColumns.push(_this.createOneAutoGroupColumn(rowGroupCol, index));
42 });
43 }
44 else {
45 groupAutoColumns.push(this.createOneAutoGroupColumn(null));
46 }
47 return groupAutoColumns;
48 };
49 // rowGroupCol and index are missing if groupMultiAutoColumn=false
50 AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) {
51 // if one provided by user, use it, otherwise create one
52 var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);
53 // if doing multi, set the field
54 var colId;
55 if (rowGroupCol) {
56 colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_ID + "-" + rowGroupCol.getId();
57 }
58 else {
59 colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID;
60 }
61 var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();
62 utils_1._.mergeDeep(defaultAutoColDef, userAutoColDef);
63 defaultAutoColDef = this.balancedColumnTreeBuilder.mergeColDefs(defaultAutoColDef);
64 defaultAutoColDef.colId = colId;
65 // For tree data the filter is always allowed
66 if (!this.gridOptionsWrapper.isTreeData()) {
67 // we would only allow filter if the user has provided field or value getter. otherwise the filter
68 // would not be able to work.
69 var noFieldOrValueGetter = utils_1._.missing(defaultAutoColDef.field) && utils_1._.missing(defaultAutoColDef.valueGetter) && utils_1._.missing(defaultAutoColDef.filterValueGetter);
70 if (noFieldOrValueGetter) {
71 defaultAutoColDef.suppressFilter = true;
72 }
73 }
74 // if showing many cols, we don't want to show more than one with a checkbox for selection
75 if (index > 0) {
76 defaultAutoColDef.headerCheckboxSelection = false;
77 }
78 var newCol = new column_1.Column(defaultAutoColDef, colId, true);
79 this.context.wireBean(newCol);
80 return newCol;
81 };
82 AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {
83 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
84 var defaultAutoColDef = {
85 headerName: localeTextFunc('group', 'Group'),
86 cellRenderer: 'agGroupCellRenderer'
87 };
88 // we never allow moving the group column
89 // defaultAutoColDef.suppressMovable = true;
90 if (rowGroupCol) {
91 var rowGroupColDef = rowGroupCol.getColDef();
92 utils_1._.assign(defaultAutoColDef, {
93 // cellRendererParams.groupKey: colDefToCopy.field;
94 headerName: this.columnController.getDisplayNameForColumn(rowGroupCol, 'header'),
95 headerValueGetter: rowGroupColDef.headerValueGetter
96 });
97 if (rowGroupColDef.cellRenderer) {
98 utils_1._.assign(defaultAutoColDef, {
99 cellRendererParams: {
100 innerRenderer: rowGroupColDef.cellRenderer,
101 innerRendererParams: rowGroupColDef.cellRendererParams
102 }
103 });
104 }
105 defaultAutoColDef.showRowGroup = rowGroupCol.getColId();
106 }
107 else {
108 defaultAutoColDef.showRowGroup = true;
109 }
110 return defaultAutoColDef;
111 };
112 AutoGroupColService.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';
113 AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = AutoGroupColService_1.GROUP_AUTO_COLUMN_ID;
114 __decorate([
115 context_1.Autowired('gridOptionsWrapper'),
116 __metadata("design:type", gridOptionsWrapper_1.GridOptionsWrapper)
117 ], AutoGroupColService.prototype, "gridOptionsWrapper", void 0);
118 __decorate([
119 context_1.Autowired('context'),
120 __metadata("design:type", context_1.Context)
121 ], AutoGroupColService.prototype, "context", void 0);
122 __decorate([
123 context_1.Autowired('columnController'),
124 __metadata("design:type", columnController_1.ColumnController)
125 ], AutoGroupColService.prototype, "columnController", void 0);
126 __decorate([
127 context_1.Autowired('balancedColumnTreeBuilder'),
128 __metadata("design:type", balancedColumnTreeBuilder_1.BalancedColumnTreeBuilder)
129 ], AutoGroupColService.prototype, "balancedColumnTreeBuilder", void 0);
130 AutoGroupColService = AutoGroupColService_1 = __decorate([
131 context_1.Bean('autoGroupColService')
132 ], AutoGroupColService);
133 return AutoGroupColService;
134 var AutoGroupColService_1;
135}());
136exports.AutoGroupColService = AutoGroupColService;