ag-grid
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
178 lines (177 loc) • 9.49 kB
JavaScript
/**
* 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 floatingFilter_1 = require("../../filter/floatingFilter");
var gridOptionsWrapper_1 = require("../../gridOptionsWrapper");
var floatingFilterWrapper_1 = require("../../filter/floatingFilterWrapper");
var filterManager_1 = require("../../filter/filterManager");
var componentResolver_1 = require("./componentResolver");
var utils_1 = require("../../utils");
var overlayWrapperComponent_1 = require("../../rendering/overlays/overlayWrapperComponent");
var gridApi_1 = require("../../gridApi");
var columnApi_1 = require("../../columnController/columnApi");
var ComponentType;
(function (ComponentType) {
ComponentType[ComponentType["AG_GRID"] = 0] = "AG_GRID";
ComponentType[ComponentType["FRAMEWORK"] = 1] = "FRAMEWORK";
})(ComponentType || (ComponentType = {}));
var ComponentRecipes = (function () {
function ComponentRecipes() {
}
ComponentRecipes_1 = ComponentRecipes;
ComponentRecipes.prototype.newDateComponent = function (params) {
return this.componentResolver.createAgGridComponent(this.gridOptions, params, "dateComponent", {
api: this.gridApi,
columnApi: this.columnApi
}, "agDateInput");
};
ComponentRecipes.prototype.newHeaderComponent = function (params) {
return this.componentResolver.createAgGridComponent(params.column.getColDef(), params, "headerComponent", {
api: this.gridApi,
columnApi: this.columnApi,
column: params.column,
colDef: params.column.getColDef()
}, "agColumnHeader");
};
ComponentRecipes.prototype.newHeaderGroupComponent = function (params) {
return this.componentResolver.createAgGridComponent(params.columnGroup.getColGroupDef(), params, "headerGroupComponent", {
api: this.gridApi,
columnApi: this.columnApi
}, "agColumnGroupHeader");
};
ComponentRecipes.prototype.newFloatingFilterWrapperComponent = function (column, params) {
var _this = this;
var colDef = column.getColDef();
if (colDef.suppressFilter) {
return this.newEmptyFloatingFilterWrapperComponent(column);
}
var defaultFloatingFilterType;
if (!colDef.filter) {
defaultFloatingFilterType = this.gridOptionsWrapper.isEnterprise() ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';
}
else if (typeof colDef.filter === 'string' && Object.keys(ComponentRecipes_1.filterToFloatingFilterNames).indexOf(colDef.filter) > -1) {
defaultFloatingFilterType = ComponentRecipes_1.filterToFloatingFilterNames[colDef.filter];
}
var dynamicComponentParams = {
column: column,
colDef: colDef,
api: this.gridApi,
columnApi: this.columnApi
};
var floatingFilter = this.componentResolver.createAgGridComponent(colDef, params, "floatingFilterComponent", dynamicComponentParams, defaultFloatingFilterType, false);
var floatingFilterWrapperComponentParams = {
column: column,
floatingFilterComp: floatingFilter,
suppressFilterButton: this.componentResolver.mergeParams(colDef, 'floatingFilterComponent', dynamicComponentParams, params).suppressFilterButton
};
if (!floatingFilter) {
var filterComponent = this.getFilterComponentPrototype(colDef);
if (filterComponent && !filterComponent.component.prototype.getModelAsString) {
return this.newEmptyFloatingFilterWrapperComponent(column);
}
var rawModelFn_1 = params.currentParentModel;
params.currentParentModel = function () {
var parentPromise = _this.filterManager.getFilterComponent(column);
return parentPromise.resolveNow(null, function (parent) { return parent.getModelAsString ? parent.getModelAsString(rawModelFn_1()) : null; });
};
floatingFilterWrapperComponentParams.floatingFilterComp = utils_1.Promise.resolve(this.componentResolver.createInternalAgGridComponent(floatingFilter_1.ReadModelAsStringFloatingFilterComp, params));
}
return this.componentResolver.createInternalAgGridComponent(floatingFilterWrapper_1.FloatingFilterWrapperComp, floatingFilterWrapperComponentParams);
};
ComponentRecipes.prototype.newFullWidthGroupRowInnerCellRenderer = function (params) {
return this.componentResolver.createAgGridComponent(this.gridOptions, params, "groupRowInnerRenderer", params, null, false);
};
ComponentRecipes.prototype.newCellRenderer = function (target, params) {
return this.componentResolver.createAgGridComponent(target, params, "cellRenderer", params, null, false);
};
ComponentRecipes.prototype.newInnerCellRenderer = function (target, params) {
return this.componentResolver.createAgGridComponent(target, params, "innerRenderer", params, null);
};
ComponentRecipes.prototype.newFullRowGroupRenderer = function (params) {
return this.componentResolver.createAgGridComponent(this.gridOptionsWrapper, params, "fullWidthCellRenderer", params, null);
};
ComponentRecipes.prototype.newOverlayWrapperComponent = function () {
return this.componentResolver.createInternalAgGridComponent(overlayWrapperComponent_1.OverlayWrapperComponent, null);
};
ComponentRecipes.prototype.newLoadingOverlayComponent = function () {
return this.componentResolver.createAgGridComponent(this.gridOptions, null, "loadingOverlayComponent", {
api: this.gridApi,
columnApi: this.columnApi
}, "agLoadingOverlay");
};
ComponentRecipes.prototype.newNoRowsOverlayComponent = function () {
return this.componentResolver.createAgGridComponent(this.gridOptions, null, "noRowsOverlayComponent", {
api: this.gridApi,
columnApi: this.columnApi
}, "agNoRowsOverlay");
};
ComponentRecipes.prototype.getFilterComponentPrototype = function (colDef) {
return this.componentResolver.getComponentToUse(colDef, "filter", {
api: this.gridApi,
columnApi: this.columnApi,
colDef: colDef
});
};
ComponentRecipes.prototype.newEmptyFloatingFilterWrapperComponent = function (column) {
var floatingFilterWrapperComponentParams = {
column: column,
floatingFilterComp: null
};
return this.componentResolver.createInternalAgGridComponent(floatingFilterWrapper_1.EmptyFloatingFilterWrapperComp, floatingFilterWrapperComponentParams);
};
ComponentRecipes.filterToFloatingFilterNames = {
set: 'agSetColumnFloatingFilter',
agSetColumnFilter: 'agSetColumnFloatingFilter',
number: 'agNumberColumnFloatingFilter',
agNumberColumnFilter: 'agNumberColumnFloatingFilter',
date: 'agDateColumnFloatingFilter',
agDateColumnFilter: 'agDateColumnFloatingFilter',
text: 'agTextColumnFloatingFilter',
agTextColumnFilter: 'agTextColumnFloatingFilter'
};
__decorate([
context_1.Autowired("componentResolver"),
__metadata("design:type", componentResolver_1.ComponentResolver)
], ComponentRecipes.prototype, "componentResolver", void 0);
__decorate([
context_1.Autowired("gridOptions"),
__metadata("design:type", Object)
], ComponentRecipes.prototype, "gridOptions", void 0);
__decorate([
context_1.Autowired("gridApi"),
__metadata("design:type", gridApi_1.GridApi)
], ComponentRecipes.prototype, "gridApi", void 0);
__decorate([
context_1.Autowired("columnApi"),
__metadata("design:type", columnApi_1.ColumnApi)
], ComponentRecipes.prototype, "columnApi", void 0);
__decorate([
context_1.Autowired("gridOptionsWrapper"),
__metadata("design:type", gridOptionsWrapper_1.GridOptionsWrapper)
], ComponentRecipes.prototype, "gridOptionsWrapper", void 0);
__decorate([
context_1.Autowired('filterManager'),
__metadata("design:type", filterManager_1.FilterManager)
], ComponentRecipes.prototype, "filterManager", void 0);
ComponentRecipes = ComponentRecipes_1 = __decorate([
context_1.Bean('componentRecipes')
], ComponentRecipes);
return ComponentRecipes;
var ComponentRecipes_1;
}());
exports.ComponentRecipes = ComponentRecipes;