UNPKG

ag-grid-enterprise

Version:

ag-Grid Enterprise Features

238 lines (237 loc) 12.3 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 SELECTED_STATE; (function (SELECTED_STATE) { SELECTED_STATE[SELECTED_STATE["CHECKED"] = 0] = "CHECKED"; SELECTED_STATE[SELECTED_STATE["UNCHECKED"] = 1] = "UNCHECKED"; SELECTED_STATE[SELECTED_STATE["INDETERMINIATE"] = 2] = "INDETERMINIATE"; })(SELECTED_STATE = exports.SELECTED_STATE || (exports.SELECTED_STATE = {})); var PrimaryColsHeaderPanel = /** @class */ (function (_super) { __extends(PrimaryColsHeaderPanel, _super); function PrimaryColsHeaderPanel() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.expandState = SELECTED_STATE.CHECKED; _this.selectState = SELECTED_STATE.CHECKED; return _this; } PrimaryColsHeaderPanel.prototype.preConstruct = function () { var translate = this.gridOptionsWrapper.getLocaleTextFunc(); this.setTemplate("<div class=\"ag-primary-cols-header-panel\">\n <a href=\"javascript:void(0)\" (click)=\"onExpandClicked\" ref=\"eExpand\">\n <span class=\"ag-icon ag-icon-tree-open\" ref=\"eExpandChecked\"></span>\n <span class=\"ag-icon ag-icon-tree-closed\" ref=\"eExpandUnchecked\"></span>\n <span class=\"ag-icon ag-icon ag-icon-tree-indeterminate\" ref=\"eExpandIndeterminate\"></span>\n </a>\n <a href=\"javascript:void(0)\" (click)=\"onSelectClicked\" ref=\"eSelect\">\n <span class=\"ag-icon ag-icon-checkbox-checked\" ref=\"eSelectChecked\"></span>\n <span class=\"ag-icon ag-icon-checkbox-unchecked\" ref=\"eSelectUnchecked\"></span>\n <span class=\"ag-icon ag-icon-checkbox-indeterminate\" ref=\"eSelectIndeterminate\"></span>\n </a>\n <div class=\"ag-primary-cols-filter-wrapper\" ref=\"eFilterWrapper\">\n <input class=\"ag-primary-cols-filter\" ref=\"eFilterTextField\" type=\"text\" placeholder=\"" + translate('filterOoo', 'Filter...') + "\" (input)=\"onFilterTextChanged\"> \n </div>\n </div>"); }; PrimaryColsHeaderPanel.prototype.init = function (params) { this.instantiate(this.context); this.addEventListeners(); if (this.columnController.isReady()) { this.setColumnsCheckedState(); this.showOrHideOptions(); } this.setExpandState(SELECTED_STATE.CHECKED); }; // we only show expand / collapse if we are showing columns PrimaryColsHeaderPanel.prototype.showOrHideOptions = function () { var showFilter = !this.props.params.suppressColumnFilter; var showSelect = !this.props.params.suppressColumnSelectAll; var showExpand = !this.props.params.suppressColumnExpandAll; var groupsPresent = this.columnController.isPrimaryColumnGroupsPresent(); main_1._.setVisible(this.eFilterWrapper, showFilter); main_1._.setVisible(this.eSelect, showSelect); main_1._.setVisible(this.eExpand, showExpand && groupsPresent); }; PrimaryColsHeaderPanel.prototype.addEventListeners = function () { var _this = this; var eventsImpactingCheckedState = [ main_1.Events.EVENT_COLUMN_EVERYTHING_CHANGED, main_1.Events.EVENT_COLUMN_PIVOT_CHANGED, main_1.Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, main_1.Events.EVENT_COLUMN_ROW_GROUP_CHANGED, main_1.Events.EVENT_COLUMN_VALUE_CHANGED, main_1.Events.EVENT_COLUMN_VISIBLE, main_1.Events.EVENT_NEW_COLUMNS_LOADED ]; eventsImpactingCheckedState.forEach(function (event) { _this.addDestroyableEventListener(_this.eventService, event, _this.setColumnsCheckedState.bind(_this)); }); this.addDestroyableEventListener(this.eventService, main_1.Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this)); }; PrimaryColsHeaderPanel.prototype.onFilterTextChanged = function () { var _this = this; if (!this.onFilterTextChangedDebounced) { this.onFilterTextChangedDebounced = main_1._.debounce(function () { var filterText = _this.eFilterTextField.value; _this.dispatchEvent({ type: 'filterChanged', filterText: filterText }); }, 400); } this.onFilterTextChangedDebounced(); }; PrimaryColsHeaderPanel.prototype.onSelectClicked = function () { // here we just fire the event. the following happens is the flow of events: // 1. event here fired. // 2. toolpanel updates the columns. // 3. column controller fires events of column updated // 4. update in this panel is updated based on events fired by column controller if (this.selectState === SELECTED_STATE.CHECKED) { this.dispatchEvent({ type: 'unselectAll' }); } else { this.dispatchEvent({ type: 'selectAll' }); } }; PrimaryColsHeaderPanel.prototype.onExpandClicked = function () { if (this.expandState === SELECTED_STATE.CHECKED) { this.dispatchEvent({ type: 'collapseAll' }); } else { this.dispatchEvent({ type: 'expandAll' }); } }; PrimaryColsHeaderPanel.prototype.setExpandState = function (state) { this.expandState = state; main_1._.setVisible(this.eExpandChecked, this.expandState === SELECTED_STATE.CHECKED); main_1._.setVisible(this.eExpandUnchecked, this.expandState === SELECTED_STATE.UNCHECKED); main_1._.setVisible(this.eExpandIndeterminate, this.expandState === SELECTED_STATE.INDETERMINIATE); }; PrimaryColsHeaderPanel.prototype.setColumnsCheckedState = function () { var allPrimaryColumns = this.columnController.getAllPrimaryColumns(); var columns = []; if (allPrimaryColumns !== null) { columns = allPrimaryColumns.filter(function (col) { return !col.isLockVisible(); }); } var pivotMode = this.columnController.isPivotMode(); var checkedCount = 0; var uncheckedCount = 0; columns.forEach(function (col) { // ignore lock visible columns if (col.isLockVisible()) { return; } // not not count columns not in tool panel var colDef = col.getColDef(); if (colDef && colDef.suppressToolPanel) { return; } var checked; if (pivotMode) { var noPivotModeOptionsAllowed = !col.isAllowPivot() && !col.isAllowRowGroup() && !col.isAllowValue(); if (noPivotModeOptionsAllowed) { return; } checked = col.isValueActive() || col.isPivotActive() || col.isRowGroupActive(); } else { checked = col.isVisible(); } if (checked) { checkedCount++; } else { uncheckedCount++; } }); if (checkedCount > 0 && uncheckedCount > 0) { this.selectState = SELECTED_STATE.INDETERMINIATE; } else if (uncheckedCount > 0) { this.selectState = SELECTED_STATE.UNCHECKED; } else { this.selectState = SELECTED_STATE.CHECKED; } main_1._.setVisible(this.eSelectChecked, this.selectState === SELECTED_STATE.CHECKED); main_1._.setVisible(this.eSelectUnchecked, this.selectState === SELECTED_STATE.UNCHECKED); main_1._.setVisible(this.eSelectIndeterminate, this.selectState === SELECTED_STATE.INDETERMINIATE); }; __decorate([ main_1.Autowired('context'), __metadata("design:type", main_1.Context) ], PrimaryColsHeaderPanel.prototype, "context", void 0); __decorate([ main_1.Autowired('gridOptionsWrapper'), __metadata("design:type", main_1.GridOptionsWrapper) ], PrimaryColsHeaderPanel.prototype, "gridOptionsWrapper", void 0); __decorate([ main_1.Autowired('columnController'), __metadata("design:type", main_1.ColumnController) ], PrimaryColsHeaderPanel.prototype, "columnController", void 0); __decorate([ main_1.Autowired('eventService'), __metadata("design:type", main_1.EventService) ], PrimaryColsHeaderPanel.prototype, "eventService", void 0); __decorate([ main_1.RefSelector('eFilterTextField'), __metadata("design:type", HTMLInputElement) ], PrimaryColsHeaderPanel.prototype, "eFilterTextField", void 0); __decorate([ main_1.RefSelector('eSelectChecked'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eSelectChecked", void 0); __decorate([ main_1.RefSelector('eSelectUnchecked'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eSelectUnchecked", void 0); __decorate([ main_1.RefSelector('eSelectIndeterminate'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eSelectIndeterminate", void 0); __decorate([ main_1.RefSelector('eExpandChecked'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eExpandChecked", void 0); __decorate([ main_1.RefSelector('eExpandUnchecked'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eExpandUnchecked", void 0); __decorate([ main_1.RefSelector('eExpandIndeterminate'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eExpandIndeterminate", void 0); __decorate([ main_1.RefSelector('eExpand'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eExpand", void 0); __decorate([ main_1.RefSelector('eSelect'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eSelect", void 0); __decorate([ main_1.RefSelector('eFilterWrapper'), __metadata("design:type", HTMLElement) ], PrimaryColsHeaderPanel.prototype, "eFilterWrapper", void 0); __decorate([ main_1.PreConstruct, __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], PrimaryColsHeaderPanel.prototype, "preConstruct", null); __decorate([ main_1.PostConstruct, __metadata("design:type", Function), __metadata("design:paramtypes", [Object]), __metadata("design:returntype", void 0) ], PrimaryColsHeaderPanel.prototype, "init", null); return PrimaryColsHeaderPanel; }(main_1.Component)); exports.PrimaryColsHeaderPanel = PrimaryColsHeaderPanel;