ag-grid
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
236 lines (235 loc) • 11.3 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
*/
;
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 textCellEditor_1 = require("../../rendering/cellEditors/textCellEditor");
var context_1 = require("../../context/context");
var dateFilter_1 = require("../../filter/dateFilter");
var headerComp_1 = require("../../headerRendering/header/headerComp");
var headerGroupComp_1 = require("../../headerRendering/headerGroup/headerGroupComp");
var floatingFilter_1 = require("../../filter/floatingFilter");
var componentResolver_1 = require("./componentResolver");
var groupCellRenderer_1 = require("../../rendering/cellRenderers/groupCellRenderer");
var animateShowChangeCellRenderer_1 = require("../../rendering/cellRenderers/animateShowChangeCellRenderer");
var animateSlideCellRenderer_1 = require("../../rendering/cellRenderers/animateSlideCellRenderer");
var rowComp_1 = require("../../rendering/rowComp");
var selectCellEditor_1 = require("../../rendering/cellEditors/selectCellEditor");
var popupTextCellEditor_1 = require("../../rendering/cellEditors/popupTextCellEditor");
var popupSelectCellEditor_1 = require("../../rendering/cellEditors/popupSelectCellEditor");
var largeTextCellEditor_1 = require("../../rendering/cellEditors/largeTextCellEditor");
var textFilter_1 = require("../../filter/textFilter");
var numberFilter_1 = require("../../filter/numberFilter");
var loadingOverlayComponent_1 = require("../../rendering/overlays/loadingOverlayComponent");
var noRowsOverlayComponent_1 = require("../../rendering/overlays/noRowsOverlayComponent");
var utils_1 = require("../../utils");
var RegisteredComponentSource;
(function (RegisteredComponentSource) {
RegisteredComponentSource[RegisteredComponentSource["DEFAULT"] = 0] = "DEFAULT";
RegisteredComponentSource[RegisteredComponentSource["REGISTERED"] = 1] = "REGISTERED";
})(RegisteredComponentSource = exports.RegisteredComponentSource || (exports.RegisteredComponentSource = {}));
var ComponentProvider = (function () {
function ComponentProvider() {
this.agGridDefaults = {
//date
agDateInput: dateFilter_1.DefaultDateComponent,
//header
agColumnHeader: headerComp_1.HeaderComp,
agColumnGroupHeader: headerGroupComp_1.HeaderGroupComp,
//floating filters
agSetColumnFloatingFilter: floatingFilter_1.SetFloatingFilterComp,
agTextColumnFloatingFilter: floatingFilter_1.TextFloatingFilterComp,
agNumberColumnFloatingFilter: floatingFilter_1.NumberFloatingFilterComp,
agDateColumnFloatingFilter: floatingFilter_1.DateFloatingFilterComp,
// renderers
agAnimateShowChangeCellRenderer: animateShowChangeCellRenderer_1.AnimateShowChangeCellRenderer,
agAnimateSlideCellRenderer: animateSlideCellRenderer_1.AnimateSlideCellRenderer,
agGroupCellRenderer: groupCellRenderer_1.GroupCellRenderer,
agGroupRowRenderer: groupCellRenderer_1.GroupCellRenderer,
agLoadingCellRenderer: rowComp_1.LoadingCellRenderer,
//editors
agCellEditor: textCellEditor_1.TextCellEditor,
agTextCellEditor: textCellEditor_1.TextCellEditor,
agSelectCellEditor: selectCellEditor_1.SelectCellEditor,
agPopupTextCellEditor: popupTextCellEditor_1.PopupTextCellEditor,
agPopupSelectCellEditor: popupSelectCellEditor_1.PopupSelectCellEditor,
agLargeTextCellEditor: largeTextCellEditor_1.LargeTextCellEditor,
//filter
agTextColumnFilter: textFilter_1.TextFilter,
agNumberColumnFilter: numberFilter_1.NumberFilter,
agDateColumnFilter: dateFilter_1.DateFilter,
//overlays
agLoadingOverlay: loadingOverlayComponent_1.LoadingOverlayComponent,
agNoRowsOverlay: noRowsOverlayComponent_1.NoRowsOverlayComponent
};
this.agDeprecatedNames = {
set: {
newComponentName: 'agSetColumnFilter',
propertyHolder: 'filter'
},
text: {
newComponentName: 'agTextColumnFilter',
propertyHolder: 'filter'
},
number: {
newComponentName: 'agNumberColumnFilter',
propertyHolder: 'filter'
},
date: {
newComponentName: 'agDateColumnFilter',
propertyHolder: 'filter'
},
group: {
newComponentName: 'agGroupCellRenderer',
propertyHolder: 'cellRenderer'
},
animateShowChange: {
newComponentName: 'agAnimateShowChangeCellRenderer',
propertyHolder: 'cellRenderer'
},
animateSlide: {
newComponentName: 'agAnimateSlideCellRenderer',
propertyHolder: 'cellRenderer'
},
select: {
newComponentName: 'agSelectCellEditor',
propertyHolder: 'cellEditor'
},
largeText: {
newComponentName: 'agLargeTextCellEditor',
propertyHolder: 'cellEditor'
},
popupSelect: {
newComponentName: 'agPopupSelectCellEditor',
propertyHolder: 'cellEditor'
},
popupText: {
newComponentName: 'agPopupTextCellEditor',
propertyHolder: 'cellEditor'
},
richSelect: {
newComponentName: 'agRichSelectCellEditor',
propertyHolder: 'cellEditor'
},
headerComponent: {
newComponentName: 'agColumnHeader',
propertyHolder: 'headerComponent'
}
};
this.jsComponents = {};
this.frameworkComponents = {};
}
ComponentProvider.prototype.init = function () {
var _this = this;
if (this.gridOptions.components != null) {
Object.keys(this.gridOptions.components).forEach(function (it) {
_this.registerComponent(it, _this.gridOptions.components[it]);
});
}
if (this.gridOptions.frameworkComponents != null) {
Object.keys(this.gridOptions.frameworkComponents).forEach(function (it) {
_this.registerFwComponent(it, _this.gridOptions.frameworkComponents[it]);
});
}
};
ComponentProvider.prototype.registerDefaultComponent = function (rawName, component, overridable) {
if (overridable === void 0) { overridable = true; }
var name = this.translateIfDeprecated(rawName);
if (this.agGridDefaults[name]) {
console.error("Trying to overwrite a default component. You should call registerComponent");
return;
}
this.agGridDefaults[name] = component;
};
ComponentProvider.prototype.registerComponent = function (rawName, component) {
var name = this.translateIfDeprecated(rawName);
if (this.frameworkComponents[name]) {
console.error("Trying to register a component that you have already registered for frameworks: " + name);
return;
}
this.jsComponents[name] = component;
};
/**
* B the business interface (ie IHeader)
* A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
*/
ComponentProvider.prototype.registerFwComponent = function (rawName, component) {
var name = this.translateIfDeprecated(rawName);
if (this.jsComponents[name]) {
console.error("Trying to register a component that you have already registered for plain javascript: " + name);
return;
}
this.frameworkComponents[name] = component;
};
/**
* B the business interface (ie IHeader)
* A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
*/
ComponentProvider.prototype.retrieve = function (rawName) {
var name = this.translateIfDeprecated(rawName);
if (this.frameworkComponents[name]) {
return {
type: componentResolver_1.ComponentType.FRAMEWORK,
component: this.frameworkComponents[name],
source: RegisteredComponentSource.REGISTERED
};
}
if (this.jsComponents[name]) {
return {
type: componentResolver_1.ComponentType.AG_GRID,
component: this.jsComponents[name],
source: RegisteredComponentSource.REGISTERED
};
}
if (this.agGridDefaults[name]) {
return this.agGridDefaults[name] ?
{
type: componentResolver_1.ComponentType.AG_GRID,
component: this.agGridDefaults[name],
source: RegisteredComponentSource.DEFAULT
} :
null;
}
if (Object.keys(this.agGridDefaults).indexOf(name) < 0) {
console.warn("ag-grid: Looking for component [" + name + "] but it wasn't found.");
}
return null;
};
ComponentProvider.prototype.translateIfDeprecated = function (raw) {
var deprecatedInfo = this.agDeprecatedNames[raw];
if (deprecatedInfo != null) {
utils_1._.doOnce(function () {
console.warn("ag-grid. Since v15.0 component names have been renamed to be namespaced. You should rename " + deprecatedInfo.propertyHolder + ":" + raw + " to " + deprecatedInfo.propertyHolder + ":" + deprecatedInfo.newComponentName);
}, 'DEPREACTE_COMPONENT_' + raw);
return deprecatedInfo.newComponentName;
}
return raw;
};
__decorate([
context_1.Autowired('gridOptions'),
__metadata("design:type", Object)
], ComponentProvider.prototype, "gridOptions", void 0);
__decorate([
context_1.PostConstruct,
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], ComponentProvider.prototype, "init", null);
ComponentProvider = __decorate([
context_1.Bean('componentProvider')
], ComponentProvider);
return ComponentProvider;
}());
exports.ComponentProvider = ComponentProvider;