1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | "use strict";
|
8 | Object.defineProperty(exports, "__esModule", { value: true });
|
9 | var gridOptionsWrapper_1 = require("./gridOptionsWrapper");
|
10 | var selectionController_1 = require("./selectionController");
|
11 | var columnApi_1 = require("./columnController/columnApi");
|
12 | var columnController_1 = require("./columnController/columnController");
|
13 | var rowRenderer_1 = require("./rendering/rowRenderer");
|
14 | var headerRootComp_1 = require("./headerRendering/headerRootComp");
|
15 | var filterManager_1 = require("./filter/filterManager");
|
16 | var valueService_1 = require("./valueService/valueService");
|
17 | var eventService_1 = require("./eventService");
|
18 | var gridPanel_1 = require("./gridPanel/gridPanel");
|
19 | var gridApi_1 = require("./gridApi");
|
20 | var balancedColumnTreeBuilder_1 = require("./columnController/balancedColumnTreeBuilder");
|
21 | var displayedGroupCreator_1 = require("./columnController/displayedGroupCreator");
|
22 | var expressionService_1 = require("./valueService/expressionService");
|
23 | var templateService_1 = require("./templateService");
|
24 | var popupService_1 = require("./widgets/popupService");
|
25 | var logger_1 = require("./logger");
|
26 | var columnUtils_1 = require("./columnController/columnUtils");
|
27 | var autoWidthCalculator_1 = require("./rendering/autoWidthCalculator");
|
28 | var horizontalResizeService_1 = require("./headerRendering/horizontalResizeService");
|
29 | var context_1 = require("./context/context");
|
30 | var csvCreator_1 = require("./csvCreator");
|
31 | var gridCore_1 = require("./gridCore");
|
32 | var standardMenu_1 = require("./headerRendering/standardMenu");
|
33 | var dragAndDropService_1 = require("./dragAndDrop/dragAndDropService");
|
34 | var dragService_1 = require("./dragAndDrop/dragService");
|
35 | var sortController_1 = require("./sortController");
|
36 | var focusedCellController_1 = require("./focusedCellController");
|
37 | var mouseEventService_1 = require("./gridPanel/mouseEventService");
|
38 | var cellNavigationService_1 = require("./cellNavigationService");
|
39 | var utils_1 = require("./utils");
|
40 | var filterStage_1 = require("./rowModels/clientSide/filterStage");
|
41 | var sortStage_1 = require("./rowModels/clientSide/sortStage");
|
42 | var flattenStage_1 = require("./rowModels/clientSide/flattenStage");
|
43 | var cellEditorFactory_1 = require("./rendering/cellEditorFactory");
|
44 | var events_1 = require("./events");
|
45 | var infiniteRowModel_1 = require("./rowModels/infinite/infiniteRowModel");
|
46 | var clientSideRowModel_1 = require("./rowModels/clientSide/clientSideRowModel");
|
47 | var cellRendererFactory_1 = require("./rendering/cellRendererFactory");
|
48 | var cellRendererService_1 = require("./rendering/cellRendererService");
|
49 | var valueFormatterService_1 = require("./rendering/valueFormatterService");
|
50 | var agCheckbox_1 = require("./widgets/agCheckbox");
|
51 | var baseFrameworkFactory_1 = require("./baseFrameworkFactory");
|
52 | var scrollVisibleService_1 = require("./gridPanel/scrollVisibleService");
|
53 | var downloader_1 = require("./downloader");
|
54 | var xmlFactory_1 = require("./xmlFactory");
|
55 | var gridSerializer_1 = require("./gridSerializer");
|
56 | var stylingService_1 = require("./styling/stylingService");
|
57 | var columnHoverService_1 = require("./rendering/columnHoverService");
|
58 | var columnAnimationService_1 = require("./rendering/columnAnimationService");
|
59 | var sortService_1 = require("./rowNodes/sortService");
|
60 | var filterService_1 = require("./rowNodes/filterService");
|
61 | var autoGroupColService_1 = require("./columnController/autoGroupColService");
|
62 | var paginationProxy_1 = require("./rowModels/paginationProxy");
|
63 | var immutableService_1 = require("./rowModels/clientSide/immutableService");
|
64 | var constants_1 = require("./constants");
|
65 | var valueCache_1 = require("./valueService/valueCache");
|
66 | var changeDetectionService_1 = require("./valueService/changeDetectionService");
|
67 | var alignedGridsService_1 = require("./alignedGridsService");
|
68 | var pinnedRowModel_1 = require("./rowModels/pinnedRowModel");
|
69 | var componentResolver_1 = require("./components/framework/componentResolver");
|
70 | var componentRecipes_1 = require("./components/framework/componentRecipes");
|
71 | var componentProvider_1 = require("./components/framework/componentProvider");
|
72 | var agComponentUtils_1 = require("./components/framework/agComponentUtils");
|
73 | var componentMetadataProvider_1 = require("./components/framework/componentMetadataProvider");
|
74 | var beans_1 = require("./rendering/beans");
|
75 | var environment_1 = require("./environment");
|
76 | var animationFrameService_1 = require("./misc/animationFrameService");
|
77 | var navigationService_1 = require("./gridPanel/navigationService");
|
78 | var heightScaler_1 = require("./rendering/heightScaler");
|
79 | var selectableService_1 = require("./rowNodes/selectableService");
|
80 | var autoHeightCalculator_1 = require("./rendering/autoHeightCalculator");
|
81 | var paginationComp_1 = require("./rowModels/pagination/paginationComp");
|
82 | var Grid = (function () {
|
83 | function Grid(eGridDiv, gridOptions, params) {
|
84 | if (!eGridDiv) {
|
85 | console.error('ag-Grid: no div element provided to the grid');
|
86 | }
|
87 | if (!gridOptions) {
|
88 | console.error('ag-Grid: no gridOptions provided to the grid');
|
89 | }
|
90 | var rowModelClass = this.getRowModelClass(gridOptions);
|
91 | var enterprise = utils_1.Utils.exists(Grid.enterpriseBeans);
|
92 | var frameworkFactory = params ? params.frameworkFactory : null;
|
93 | if (utils_1.Utils.missing(frameworkFactory)) {
|
94 | frameworkFactory = new baseFrameworkFactory_1.BaseFrameworkFactory();
|
95 | }
|
96 | var overrideBeans = [];
|
97 | if (Grid.enterpriseBeans) {
|
98 | overrideBeans = overrideBeans.concat(Grid.enterpriseBeans);
|
99 | }
|
100 | if (Grid.frameworkBeans) {
|
101 | overrideBeans = overrideBeans.concat(Grid.frameworkBeans);
|
102 | }
|
103 | var seed = {
|
104 | enterprise: enterprise,
|
105 | gridOptions: gridOptions,
|
106 | eGridDiv: eGridDiv,
|
107 | $scope: params ? params.$scope : null,
|
108 | $compile: params ? params.$compile : null,
|
109 | quickFilterOnScope: params ? params.quickFilterOnScope : null,
|
110 | globalEventListener: params ? params.globalEventListener : null,
|
111 | frameworkFactory: frameworkFactory
|
112 | };
|
113 | if (params && params.seedBeanInstances) {
|
114 | utils_1.Utils.assign(seed, params.seedBeanInstances);
|
115 | }
|
116 | var components = [
|
117 | { componentName: 'AgCheckbox', theClass: agCheckbox_1.AgCheckbox },
|
118 | { componentName: 'AgGridComp', theClass: gridPanel_1.GridPanel },
|
119 | { componentName: 'AgHeaderRoot', theClass: headerRootComp_1.HeaderRootComp },
|
120 | { componentName: 'AgPagination', theClass: paginationComp_1.PaginationComp },
|
121 | ];
|
122 | if (Grid.enterpriseComponents) {
|
123 | components = components.concat(Grid.enterpriseComponents);
|
124 | }
|
125 | var contextParams = {
|
126 | overrideBeans: overrideBeans,
|
127 | seed: seed,
|
128 |
|
129 | beans: [rowModelClass, beans_1.Beans, paginationProxy_1.PaginationAutoPageSizeService, gridApi_1.GridApi, componentProvider_1.ComponentProvider, agComponentUtils_1.AgComponentUtils, componentMetadataProvider_1.ComponentMetadataProvider,
|
130 | componentProvider_1.ComponentProvider, componentResolver_1.ComponentResolver, componentRecipes_1.ComponentRecipes, heightScaler_1.HeightScaler, autoHeightCalculator_1.AutoHeightCalculator,
|
131 | cellRendererFactory_1.CellRendererFactory, horizontalResizeService_1.HorizontalResizeService, pinnedRowModel_1.PinnedRowModel, dragService_1.DragService,
|
132 | displayedGroupCreator_1.DisplayedGroupCreator, eventService_1.EventService, gridOptionsWrapper_1.GridOptionsWrapper, selectionController_1.SelectionController,
|
133 | filterManager_1.FilterManager, columnController_1.ColumnController, paginationProxy_1.PaginationProxy, rowRenderer_1.RowRenderer, expressionService_1.ExpressionService,
|
134 | balancedColumnTreeBuilder_1.BalancedColumnTreeBuilder, csvCreator_1.CsvCreator, downloader_1.Downloader, xmlFactory_1.XmlFactory, gridSerializer_1.GridSerializer, templateService_1.TemplateService,
|
135 | navigationService_1.NavigationService, popupService_1.PopupService, valueCache_1.ValueCache, valueService_1.ValueService, alignedGridsService_1.AlignedGridsService,
|
136 | logger_1.LoggerFactory, columnUtils_1.ColumnUtils, autoWidthCalculator_1.AutoWidthCalculator, popupService_1.PopupService, gridCore_1.GridCore, standardMenu_1.StandardMenuFactory,
|
137 | dragAndDropService_1.DragAndDropService, columnApi_1.ColumnApi, focusedCellController_1.FocusedCellController, mouseEventService_1.MouseEventService,
|
138 | cellNavigationService_1.CellNavigationService, filterStage_1.FilterStage, sortStage_1.SortStage, flattenStage_1.FlattenStage, filterService_1.FilterService,
|
139 | cellEditorFactory_1.CellEditorFactory, cellRendererService_1.CellRendererService, valueFormatterService_1.ValueFormatterService, stylingService_1.StylingService, scrollVisibleService_1.ScrollVisibleService,
|
140 | columnHoverService_1.ColumnHoverService, columnAnimationService_1.ColumnAnimationService, sortService_1.SortService, selectableService_1.SelectableService, autoGroupColService_1.AutoGroupColService,
|
141 | immutableService_1.ImmutableService, changeDetectionService_1.ChangeDetectionService, environment_1.Environment, animationFrameService_1.AnimationFrameService, sortController_1.SortController],
|
142 | components: components,
|
143 | debug: !!gridOptions.debug
|
144 | };
|
145 | var isLoggingFunc = function () { return contextParams.debug; };
|
146 | this.context = new context_1.Context(contextParams, new logger_1.Logger('Context', isLoggingFunc));
|
147 | this.setColumnsAndData();
|
148 | this.dispatchGridReadyEvent(gridOptions);
|
149 | if (gridOptions.debug) {
|
150 | console.log('ag-Grid -> initialised successfully, enterprise = ' + enterprise);
|
151 | }
|
152 | }
|
153 | Grid.setEnterpriseBeans = function (enterpriseBeans, rowModelClasses) {
|
154 | this.enterpriseBeans = enterpriseBeans;
|
155 |
|
156 | utils_1.Utils.iterateObject(rowModelClasses, function (key, value) { return Grid.RowModelClasses[key] = value; });
|
157 | };
|
158 | Grid.setEnterpriseComponents = function (components) {
|
159 | this.enterpriseComponents = components;
|
160 | };
|
161 | Grid.setFrameworkBeans = function (frameworkBeans) {
|
162 | this.frameworkBeans = frameworkBeans;
|
163 | };
|
164 | Grid.prototype.setColumnsAndData = function () {
|
165 | var gridOptionsWrapper = this.context.getBean('gridOptionsWrapper');
|
166 | var columnController = this.context.getBean('columnController');
|
167 | var rowModel = this.context.getBean('rowModel');
|
168 | var columnDefs = gridOptionsWrapper.getColumnDefs();
|
169 | var rowData = gridOptionsWrapper.getRowData();
|
170 | var nothingToSet = utils_1.Utils.missing(columnDefs) && utils_1.Utils.missing(rowData);
|
171 | if (nothingToSet) {
|
172 | return;
|
173 | }
|
174 | if (utils_1.Utils.exists(columnDefs)) {
|
175 | columnController.setColumnDefs(columnDefs, "gridInitializing");
|
176 | }
|
177 | if (utils_1.Utils.exists(rowData) && rowModel.getType() === constants_1.Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {
|
178 | var clientSideRowModel = rowModel;
|
179 | clientSideRowModel.setRowData(rowData);
|
180 | }
|
181 | };
|
182 | Grid.prototype.dispatchGridReadyEvent = function (gridOptions) {
|
183 | var eventService = this.context.getBean('eventService');
|
184 | var readyEvent = {
|
185 | type: events_1.Events.EVENT_GRID_READY,
|
186 | api: gridOptions.api,
|
187 | columnApi: gridOptions.columnApi
|
188 | };
|
189 | eventService.dispatchEvent(readyEvent);
|
190 | };
|
191 | Grid.prototype.getRowModelClass = function (gridOptions) {
|
192 | var rowModelType = gridOptions.rowModelType;
|
193 |
|
194 | rowModelType = rowModelType === 'enterprise' ? constants_1.Constants.ROW_MODEL_TYPE_SERVER_SIDE : rowModelType;
|
195 | if (utils_1.Utils.exists(rowModelType)) {
|
196 | var rowModelClass = Grid.RowModelClasses[rowModelType];
|
197 | if (utils_1.Utils.exists(rowModelClass)) {
|
198 | return rowModelClass;
|
199 | }
|
200 | else {
|
201 | if (rowModelType === 'normal') {
|
202 | console.warn("ag-Grid: normal rowModel deprecated. Should now be called client side row model instead.");
|
203 | return clientSideRowModel_1.ClientSideRowModel;
|
204 | }
|
205 | console.error('ag-Grid: could not find matching row model for rowModelType ' + rowModelType);
|
206 | if (rowModelType === constants_1.Constants.ROW_MODEL_TYPE_VIEWPORT) {
|
207 | console.error('ag-Grid: rowModelType viewport is only available in ag-Grid Enterprise');
|
208 | }
|
209 | if (rowModelType === constants_1.Constants.ROW_MODEL_TYPE_SERVER_SIDE) {
|
210 | console.error('ag-Grid: rowModelType server side is only available in ag-Grid Enterprise');
|
211 | }
|
212 | }
|
213 | }
|
214 | return clientSideRowModel_1.ClientSideRowModel;
|
215 | };
|
216 | ;
|
217 | Grid.prototype.destroy = function () {
|
218 | this.context.destroy();
|
219 | };
|
220 |
|
221 |
|
222 | Grid.RowModelClasses = {
|
223 | infinite: infiniteRowModel_1.InfiniteRowModel,
|
224 | clientSide: clientSideRowModel_1.ClientSideRowModel
|
225 | };
|
226 | return Grid;
|
227 | }());
|
228 | exports.Grid = Grid;
|