UNPKG

ag-grid-enterprise

Version:

ag-Grid Enterprise Features

330 lines (329 loc) 15.5 kB
// ag-grid-enterprise v19.1.4 "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); } return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); 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 main_1 = require("ag-grid-community/main"); var ToolPanelColumnGroupComp = /** @class */ (function (_super) { __extends(ToolPanelColumnGroupComp, _super); function ToolPanelColumnGroupComp(columnGroup, columnDept, expandedCallback, allowDragging, expandByDefault) { var _this = _super.call(this) || this; _this.processingColumnStateChange = false; _this.columnGroup = columnGroup; _this.columnDept = columnDept; _this.expandedCallback = expandedCallback; _this.allowDragging = allowDragging; _this.expanded = expandByDefault; return _this; } ToolPanelColumnGroupComp.prototype.init = function () { this.setTemplate(ToolPanelColumnGroupComp.TEMPLATE); this.instantiate(this.context); var eText = this.queryForHtmlElement('#eText'); // this.displayName = this.columnGroup.getColGroupDef() ? this.columnGroup.getColGroupDef().headerName : null; this.displayName = this.columnController.getDisplayNameForOriginalColumnGroup(null, this.columnGroup, 'toolPanel'); if (main_1.Utils.missing(this.displayName)) { this.displayName = '>>'; } eText.innerHTML = this.displayName; this.setupExpandContract(); this.addCssClass('ag-toolpanel-indent-' + this.columnDept); this.addDestroyableEventListener(this.eventService, main_1.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this)); this.setOpenClosedIcons(); this.setupDragging(); this.onColumnStateChanged(); this.addVisibilityListenersToAllChildren(); main_1.CssClassApplier.addToolPanelClassesFromColDef(this.columnGroup.getColGroupDef(), this.getGui(), this.gridOptionsWrapper, null, this.columnGroup); }; ToolPanelColumnGroupComp.prototype.addVisibilityListenersToAllChildren = function () { var _this = this; this.columnGroup.getLeafColumns().forEach(function (column) { _this.addDestroyableEventListener(column, main_1.Column.EVENT_VISIBLE_CHANGED, _this.onColumnStateChanged.bind(_this)); _this.addDestroyableEventListener(column, main_1.Column.EVENT_VALUE_CHANGED, _this.onColumnStateChanged.bind(_this)); _this.addDestroyableEventListener(column, main_1.Column.EVENT_PIVOT_CHANGED, _this.onColumnStateChanged.bind(_this)); _this.addDestroyableEventListener(column, main_1.Column.EVENT_ROW_GROUP_CHANGED, _this.onColumnStateChanged.bind(_this)); }); }; ToolPanelColumnGroupComp.prototype.setupDragging = function () { var _this = this; if (!this.allowDragging) { main_1._.setVisible(this.eDragHandle, false); return; } var dragSource = { type: main_1.DragSourceType.ToolPanel, eElement: this.eDragHandle, dragItemName: this.displayName, dragItemCallback: function () { return _this.createDragItem(); } }; this.dragAndDropService.addDragSource(dragSource, true); this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); }); }; ToolPanelColumnGroupComp.prototype.createDragItem = function () { var visibleState = {}; this.columnGroup.getLeafColumns().forEach(function (col) { visibleState[col.getId()] = col.isVisible(); }); return { columns: this.columnGroup.getLeafColumns(), visibleState: visibleState }; }; ToolPanelColumnGroupComp.prototype.setupExpandContract = function () { this.eGroupClosedIcon = this.queryForHtmlElement('#eGroupClosedIcon'); this.eGroupOpenedIcon = this.queryForHtmlElement('#eGroupOpenedIcon'); this.eGroupClosedIcon.appendChild(main_1.Utils.createIcon('columnSelectClosed', this.gridOptionsWrapper, null)); this.eGroupOpenedIcon.appendChild(main_1.Utils.createIcon('columnSelectOpen', this.gridOptionsWrapper, null)); this.addDestroyableEventListener(this.eGroupClosedIcon, 'click', this.onExpandOrContractClicked.bind(this)); this.addDestroyableEventListener(this.eGroupOpenedIcon, 'click', this.onExpandOrContractClicked.bind(this)); var eColumnGroupIcons = this.queryForHtmlElement('#eColumnGroupIcons'); var touchListener = new main_1.TouchListener(eColumnGroupIcons, true); this.addDestroyableEventListener(touchListener, main_1.TouchListener.EVENT_TAP, this.onExpandOrContractClicked.bind(this)); this.addDestroyFunc(touchListener.destroy.bind(touchListener)); }; ToolPanelColumnGroupComp.prototype.onLabelClicked = function () { var nextState = !this.cbSelect.isSelected(); this.onChangeCommon(nextState); }; ToolPanelColumnGroupComp.prototype.onCheckboxChanged = function (event) { this.onChangeCommon(event.selected); }; ToolPanelColumnGroupComp.prototype.onChangeCommon = function (nextState) { if (this.processingColumnStateChange) { return; } var childColumns = this.columnGroup.getLeafColumns(); if (this.columnController.isPivotMode()) { if (nextState) { this.actionCheckedReduce(childColumns); } else { this.actionUnCheckedReduce(childColumns); } } else { var allowedColumns = childColumns.filter(function (c) { return !c.isLockVisible(); }); this.columnController.setColumnsVisible(allowedColumns, nextState, "toolPanelUi"); } if (this.selectionCallback) { this.selectionCallback(this.isSelected()); } }; ToolPanelColumnGroupComp.prototype.actionUnCheckedReduce = function (columns) { var columnsToUnPivot = []; var columnsToUnValue = []; var columnsToUnGroup = []; columns.forEach(function (column) { if (column.isPivotActive()) { columnsToUnPivot.push(column); } if (column.isRowGroupActive()) { columnsToUnGroup.push(column); } if (column.isValueActive()) { columnsToUnValue.push(column); } }); if (columnsToUnPivot.length > 0) { this.columnController.removePivotColumns(columnsToUnPivot, "toolPanelUi"); } if (columnsToUnGroup.length > 0) { this.columnController.removeRowGroupColumns(columnsToUnGroup, "toolPanelUi"); } if (columnsToUnValue.length > 0) { this.columnController.removeValueColumns(columnsToUnValue, "toolPanelUi"); } }; ToolPanelColumnGroupComp.prototype.actionCheckedReduce = function (columns) { var columnsToAggregate = []; var columnsToGroup = []; var columnsToPivot = []; columns.forEach(function (column) { // don't change any column that's already got a function active if (column.isAnyFunctionActive()) { return; } if (column.isAllowValue()) { columnsToAggregate.push(column); } else if (column.isAllowRowGroup()) { columnsToGroup.push(column); } else if (column.isAllowRowGroup()) { columnsToPivot.push(column); } }); if (columnsToAggregate.length > 0) { this.columnController.addValueColumns(columnsToAggregate, "toolPanelUi"); } if (columnsToGroup.length > 0) { this.columnController.addRowGroupColumns(columnsToGroup, "toolPanelUi"); } if (columnsToPivot.length > 0) { this.columnController.addPivotColumns(columnsToPivot, "toolPanelUi"); } }; ToolPanelColumnGroupComp.prototype.onColumnStateChanged = function () { var selectedValue = this.workOutSelectedValue(); var readOnlyValue = this.workOutReadOnlyValue(); this.processingColumnStateChange = true; this.cbSelect.setSelected(selectedValue); if (this.selectionCallback) { this.selectionCallback(this.isSelected()); } this.cbSelect.setReadOnly(readOnlyValue); this.processingColumnStateChange = false; }; ToolPanelColumnGroupComp.prototype.workOutReadOnlyValue = function () { var pivotMode = this.columnController.isPivotMode(); var colsThatCanAction = 0; this.columnGroup.getLeafColumns().forEach(function (col) { if (pivotMode) { if (col.isAnyFunctionAllowed()) { colsThatCanAction++; } } else { if (!col.isLockVisible()) { colsThatCanAction++; } } }); return colsThatCanAction === 0; }; ToolPanelColumnGroupComp.prototype.workOutSelectedValue = function () { var _this = this; var pivotMode = this.columnController.isPivotMode(); var visibleChildCount = 0; var hiddenChildCount = 0; this.columnGroup.getLeafColumns().forEach(function (column) { // ignore lock visible columns if (column.isLockVisible()) { return; } if (_this.isColumnVisible(column, pivotMode)) { visibleChildCount++; } else { hiddenChildCount++; } }); var selectedValue; if (visibleChildCount > 0 && hiddenChildCount > 0) { selectedValue = false; } else if (visibleChildCount > 0) { selectedValue = true; } else { selectedValue = false; } return selectedValue; }; ToolPanelColumnGroupComp.prototype.isColumnVisible = function (column, pivotMode) { if (pivotMode) { var pivoted = column.isPivotActive(); var grouped = column.isRowGroupActive(); var aggregated = column.isValueActive(); return pivoted || grouped || aggregated; } else { return column.isVisible(); } }; ToolPanelColumnGroupComp.prototype.onExpandOrContractClicked = function () { this.expanded = !this.expanded; this.setOpenClosedIcons(); this.expandedCallback(); }; ToolPanelColumnGroupComp.prototype.setOpenClosedIcons = function () { var folderOpen = this.expanded; main_1.Utils.setVisible(this.eGroupClosedIcon, !folderOpen); main_1.Utils.setVisible(this.eGroupOpenedIcon, folderOpen); }; ToolPanelColumnGroupComp.prototype.isExpanded = function () { return this.expanded; }; ToolPanelColumnGroupComp.prototype.getDisplayName = function () { return this.displayName; }; ToolPanelColumnGroupComp.prototype.onSelectAllChanged = function (value) { if ((value && !this.cbSelect.isSelected()) || (!value && this.cbSelect.isSelected())) { if (!this.cbSelect.isReadOnly()) { this.cbSelect.toggle(); } } }; ToolPanelColumnGroupComp.prototype.isSelected = function () { return this.cbSelect.isSelected(); }; ToolPanelColumnGroupComp.prototype.isSelectable = function () { return !this.cbSelect.isReadOnly(); }; ToolPanelColumnGroupComp.prototype.isExpandable = function () { return true; }; ToolPanelColumnGroupComp.prototype.setExpanded = function (value) { if (this.expanded !== value) { this.onExpandOrContractClicked(); } }; ToolPanelColumnGroupComp.TEMPLATE = "<div class=\"ag-column-tool-panel-column-group\">\n <span id=\"eColumnGroupIcons\" class=\"ag-column-group-icons\">\n <span id=\"eGroupOpenedIcon\" class=\"ag-column-group-closed-icon\"></span>\n <span id=\"eGroupClosedIcon\" class=\"ag-column-group-opened-icon\"></span>\n </span>\n <ag-checkbox ref=\"cbSelect\" (change)=\"onCheckboxChanged\" class=\"ag-column-select-checkbox\"></ag-checkbox>\n <span class=\"ag-column-drag\" ref=\"eDragHandle\"></span>\n <span id=\"eText\" class=\"ag-column-tool-panel-column-group\" (click)=\"onLabelClicked\"></span>\n </div>"; __decorate([ main_1.Autowired('gridOptionsWrapper'), __metadata("design:type", main_1.GridOptionsWrapper) ], ToolPanelColumnGroupComp.prototype, "gridOptionsWrapper", void 0); __decorate([ main_1.Autowired('columnController'), __metadata("design:type", main_1.ColumnController) ], ToolPanelColumnGroupComp.prototype, "columnController", void 0); __decorate([ main_1.Autowired('context'), __metadata("design:type", main_1.Context) ], ToolPanelColumnGroupComp.prototype, "context", void 0); __decorate([ main_1.Autowired('dragAndDropService'), __metadata("design:type", main_1.DragAndDropService) ], ToolPanelColumnGroupComp.prototype, "dragAndDropService", void 0); __decorate([ main_1.Autowired('eventService'), __metadata("design:type", main_1.EventService) ], ToolPanelColumnGroupComp.prototype, "eventService", void 0); __decorate([ main_1.RefSelector('cbSelect'), __metadata("design:type", main_1.AgCheckbox) ], ToolPanelColumnGroupComp.prototype, "cbSelect", void 0); __decorate([ main_1.RefSelector('eDragHandle'), __metadata("design:type", HTMLElement) ], ToolPanelColumnGroupComp.prototype, "eDragHandle", void 0); __decorate([ main_1.PostConstruct, __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], ToolPanelColumnGroupComp.prototype, "init", null); return ToolPanelColumnGroupComp; }(main_1.Component)); exports.ToolPanelColumnGroupComp = ToolPanelColumnGroupComp;