UNPKG

55.3 kBJavaScriptView Raw
1/**
2 * ag-grid - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3 * @version v18.1.2
4 * @link http://www.ag-grid.com/
5 * @license MIT
6 */
7"use strict";
8var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11 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;
12 return c > 3 && r && Object.defineProperty(target, key, r), r;
13};
14var __metadata = (this && this.__metadata) || function (k, v) {
15 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
16};
17var __param = (this && this.__param) || function (paramIndex, decorator) {
18 return function (target, key) { decorator(target, key, paramIndex); }
19};
20Object.defineProperty(exports, "__esModule", { value: true });
21var eventService_1 = require("./eventService");
22var constants_1 = require("./constants");
23var componentUtil_1 = require("./components/componentUtil");
24var gridApi_1 = require("./gridApi");
25var context_1 = require("./context/context");
26var columnApi_1 = require("./columnController/columnApi");
27var columnController_1 = require("./columnController/columnController");
28var utils_1 = require("./utils");
29var environment_1 = require("./environment");
30var propertyKeys_1 = require("./propertyKeys");
31var colDefUtil_1 = require("./components/colDefUtil");
32var eventKeys_1 = require("./eventKeys");
33var autoHeightCalculator_1 = require("./rendering/autoHeightCalculator");
34var DEFAULT_ROW_HEIGHT = 25;
35var DEFAULT_DETAIL_ROW_HEIGHT = 300;
36var DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;
37var DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;
38var legacyThemes = [
39 'ag-fresh',
40 'ag-bootstrap',
41 'ag-blue',
42 'ag-dark',
43 'ag-material'
44];
45function isTrue(value) {
46 return value === true || value === 'true';
47}
48function zeroOrGreater(value, defaultValue) {
49 if (value >= 0) {
50 return value;
51 }
52 else {
53 // zero gets returned if number is missing or the wrong type
54 return defaultValue;
55 }
56}
57function oneOrGreater(value, defaultValue) {
58 if (value > 0) {
59 return value;
60 }
61 else {
62 // zero gets returned if number is missing or the wrong type
63 return defaultValue;
64 }
65}
66var GridOptionsWrapper = (function () {
67 function GridOptionsWrapper() {
68 this.propertyEventService = new eventService_1.EventService();
69 this.domDataKey = '__AG_' + Math.random().toString();
70 this.layoutElements = [];
71 }
72 GridOptionsWrapper_1 = GridOptionsWrapper;
73 GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {
74 this.gridOptions.api = gridApi;
75 this.gridOptions.columnApi = columnApi;
76 this.checkForDeprecated();
77 };
78 GridOptionsWrapper.prototype.destroy = function () {
79 // need to remove these, as we don't own the lifecycle of the gridOptions, we need to
80 // remove the references in case the user keeps the grid options, we want the rest
81 // of the grid to be picked up by the garbage collector
82 this.gridOptions.api = null;
83 this.gridOptions.columnApi = null;
84 };
85 GridOptionsWrapper.prototype.init = function () {
86 if (!(this.gridOptions.suppressPropertyNamesCheck === true)) {
87 this.checkGridOptionsProperties();
88 this.checkColumnDefProperties();
89 }
90 var async = this.useAsyncEvents();
91 this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);
92 if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {
93 console.warn('ag-Grid: groupSelectsChildren does not work wth suppressParentsInRowNodes, this selection method needs the part in rowNode to work');
94 }
95 if (this.isGroupSelectsChildren()) {
96 if (!this.isRowSelectionMulti()) {
97 console.warn("ag-Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense");
98 }
99 if (this.isRowModelServerSide()) {
100 console.warn('ag-Grid: group selects children is NOT support for Server Side Row Model. ' +
101 'This is because the rows are lazy loaded, so selecting a group is not possible as' +
102 'the grid has no way of knowing what the children are.');
103 }
104 }
105 if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {
106 console.warn('ag-Grid: groupRemoveSingleChildren and groupHideOpenParents do not work with each other, you need to pick one. And don\'t ask us how to us these together on our support forum either you will get the same answer!');
107 }
108 this.addEventListener(GridOptionsWrapper_1.PROP_GRID_AUTO_HEIGHT, this.updateLayoutClasses.bind(this));
109 };
110 GridOptionsWrapper.prototype.checkColumnDefProperties = function () {
111 var _this = this;
112 if (this.gridOptions.columnDefs == null)
113 return;
114 this.gridOptions.columnDefs.forEach(function (colDef) {
115 var userProperties = Object.getOwnPropertyNames(colDef);
116 var validProperties = colDefUtil_1.ColDefUtil.ALL_PROPERTIES.concat(colDefUtil_1.ColDefUtil.FRAMEWORK_PROPERTIES);
117 _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');
118 });
119 };
120 GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {
121 var userProperties = Object.getOwnPropertyNames(this.gridOptions);
122 var validProperties = propertyKeys_1.PropertyKeys.ALL_PROPERTIES.concat(propertyKeys_1.PropertyKeys.FRAMEWORK_PROPERTIES);
123 Object.keys(eventKeys_1.Events).forEach(function (it) { return validProperties.push(componentUtil_1.ComponentUtil.getCallbackForEvent(eventKeys_1.Events[it])); });
124 var validPropertiesAndExceptions = validProperties.concat('api', 'columnApi');
125 this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-grid-properties/');
126 };
127 GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {
128 var invalidProperties = utils_1.Utils.fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);
129 var invalidPropertyKeys = Object.keys(invalidProperties);
130 invalidPropertyKeys.forEach(function (invalidPropertyKey) {
131 var fuzzySuggestions = invalidProperties[invalidPropertyKey];
132 console.warn("ag-grid: invalid " + containerName + " property '" + invalidPropertyKey + "' did you mean any of these: " + fuzzySuggestions.slice(0, 8).join(","));
133 });
134 if (invalidPropertyKeys.length > 0) {
135 console.warn("ag-grid: to see all the valid " + containerName + " properties please check: " + docsUrl);
136 }
137 };
138 // returns the dom data, or undefined if not found
139 GridOptionsWrapper.prototype.getDomData = function (element, key) {
140 var domData = element[this.domDataKey];
141 if (domData) {
142 return domData[key];
143 }
144 else {
145 return undefined;
146 }
147 };
148 GridOptionsWrapper.prototype.setDomData = function (element, key, value) {
149 var domData = element[this.domDataKey];
150 if (utils_1.Utils.missing(domData)) {
151 domData = {};
152 element[this.domDataKey] = domData;
153 }
154 domData[key] = value;
155 };
156 GridOptionsWrapper.prototype.isEnterprise = function () { return this.enterprise; };
157 GridOptionsWrapper.prototype.isRowSelection = function () { return this.gridOptions.rowSelection === "single" || this.gridOptions.rowSelection === "multiple"; };
158 GridOptionsWrapper.prototype.isRowDeselection = function () { return isTrue(this.gridOptions.rowDeselection); };
159 GridOptionsWrapper.prototype.isRowSelectionMulti = function () { return this.gridOptions.rowSelection === 'multiple'; };
160 GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () { return isTrue(this.gridOptions.rowMultiSelectWithClick); };
161 GridOptionsWrapper.prototype.getContext = function () { return this.gridOptions.context; };
162 GridOptionsWrapper.prototype.isPivotMode = function () { return isTrue(this.gridOptions.pivotMode); };
163 GridOptionsWrapper.prototype.isPivotTotals = function () { return isTrue(this.gridOptions.pivotTotals); };
164 GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () { return this.gridOptions.pivotColumnGroupTotals; };
165 GridOptionsWrapper.prototype.getPivotRowTotals = function () { return this.gridOptions.pivotRowTotals; };
166 GridOptionsWrapper.prototype.isRowModelInfinite = function () { return this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_INFINITE; };
167 GridOptionsWrapper.prototype.isRowModelViewport = function () { return this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_VIEWPORT; };
168 GridOptionsWrapper.prototype.isRowModelServerSide = function () { return this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_SERVER_SIDE; };
169 GridOptionsWrapper.prototype.isRowModelDefault = function () {
170 return utils_1.Utils.missing(this.gridOptions.rowModelType) ||
171 this.gridOptions.rowModelType === constants_1.Constants.ROW_MODEL_TYPE_CLIENT_SIDE ||
172 this.gridOptions.rowModelType === constants_1.Constants.DEPRECATED_ROW_MODEL_TYPE_NORMAL;
173 };
174 GridOptionsWrapper.prototype.isFullRowEdit = function () { return this.gridOptions.editType === 'fullRow'; };
175 GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () { return isTrue(this.gridOptions.suppressFocusAfterRefresh); };
176 GridOptionsWrapper.prototype.isShowToolPanel = function () { return isTrue(this.gridOptions.showToolPanel); };
177 GridOptionsWrapper.prototype.isToolPanelSuppressValues = function () { return isTrue(this.gridOptions.toolPanelSuppressValues); };
178 GridOptionsWrapper.prototype.isToolPanelSuppressPivots = function () {
179 // we don't allow pivots when doing tree data
180 return isTrue(this.gridOptions.toolPanelSuppressPivots) || this.isTreeData();
181 };
182 GridOptionsWrapper.prototype.isToolPanelSuppressRowGroups = function () {
183 // we don't allow row grouping when doing tree data
184 return isTrue(this.gridOptions.toolPanelSuppressRowGroups) || this.isTreeData();
185 };
186 GridOptionsWrapper.prototype.isToolPanelSuppressSideButtons = function () { return isTrue(this.gridOptions.toolPanelSuppressSideButtons); };
187 GridOptionsWrapper.prototype.isToolPanelSuppressPivotMode = function () { return isTrue(this.gridOptions.toolPanelSuppressPivotMode) || this.isTreeData(); };
188 GridOptionsWrapper.prototype.isContractColumnSelection = function () { return isTrue(this.gridOptions.contractColumnSelection); };
189 GridOptionsWrapper.prototype.isToolPanelSuppressColumnFilter = function () { return isTrue(this.gridOptions.toolPanelSuppressColumnFilter); };
190 GridOptionsWrapper.prototype.isToolPanelSuppressColumnSelectAll = function () { return isTrue(this.gridOptions.toolPanelSuppressColumnSelectAll); };
191 GridOptionsWrapper.prototype.isToolPanelSuppressColumnExpandAll = function () { return isTrue(this.gridOptions.toolPanelSuppressColumnExpandAll); };
192 GridOptionsWrapper.prototype.isSuppressTouch = function () { return isTrue(this.gridOptions.suppressTouch); };
193 GridOptionsWrapper.prototype.isSuppressRowTransform = function () { return isTrue(this.gridOptions.suppressRowTransform); };
194 GridOptionsWrapper.prototype.useAsyncEvents = function () { return !isTrue(this.gridOptions.suppressAsyncEvents); };
195 GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () { return isTrue(this.gridOptions.enableCellChangeFlash); };
196 GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {
197 var result = isTrue(this.gridOptions.groupSelectsChildren);
198 if (result && this.isTreeData()) {
199 console.warn('ag-Grid: groupSelectsChildren does not work with tree data');
200 return false;
201 }
202 else {
203 return result;
204 }
205 };
206 GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () { return isTrue(this.gridOptions.suppressRowHoverHighlight); };
207 GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () { return isTrue(this.gridOptions.groupSelectsFiltered); };
208 GridOptionsWrapper.prototype.isGroupHideOpenParents = function () { return isTrue(this.gridOptions.groupHideOpenParents); };
209 // if we are doing hideOpenParents, then we always have groupMultiAutoColumn, otherwise hideOpenParents would not work
210 GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () { return isTrue(this.gridOptions.groupMultiAutoColumn) || isTrue(this.gridOptions.groupHideOpenParents); };
211 GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () { return isTrue(this.gridOptions.groupRemoveSingleChildren); };
212 GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () { return isTrue(this.gridOptions.groupRemoveLowestSingleChildren); };
213 GridOptionsWrapper.prototype.isGroupIncludeFooter = function () { return isTrue(this.gridOptions.groupIncludeFooter); };
214 GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () { return isTrue(this.gridOptions.groupIncludeTotalFooter); };
215 GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () { return isTrue(this.gridOptions.groupSuppressBlankHeader); };
216 GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () { return isTrue(this.gridOptions.suppressRowClickSelection); };
217 GridOptionsWrapper.prototype.isSuppressCellSelection = function () { return isTrue(this.gridOptions.suppressCellSelection); };
218 GridOptionsWrapper.prototype.isSuppressMultiSort = function () { return isTrue(this.gridOptions.suppressMultiSort); };
219 GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () { return this.gridOptions.multiSortKey === 'ctrl'; };
220 GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () { return isTrue(this.gridOptions.groupSuppressAutoColumn); };
221 GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () { return isTrue(this.gridOptions.suppressDragLeaveHidesColumns); };
222 GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () { return isTrue(this.gridOptions.suppressScrollOnNewData); };
223 GridOptionsWrapper.prototype.isRowDragManaged = function () { return isTrue(this.gridOptions.rowDragManaged); };
224 GridOptionsWrapper.prototype.isSuppressRowDrag = function () { return isTrue(this.gridOptions.suppressRowDrag); };
225 GridOptionsWrapper.prototype.isGridAutoHeight = function () { return isTrue(this.gridOptions.gridAutoHeight); };
226 GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () { return isTrue(this.gridOptions.suppressHorizontalScroll); };
227 GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () { return isTrue(this.gridOptions.suppressLoadingOverlay); };
228 GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () { return isTrue(this.gridOptions.suppressNoRowsOverlay); };
229 GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () { return isTrue(this.gridOptions.suppressFieldDotNotation); };
230 GridOptionsWrapper.prototype.getPinnedTopRowData = function () { return this.gridOptions.pinnedTopRowData; };
231 GridOptionsWrapper.prototype.getPinnedBottomRowData = function () { return this.gridOptions.pinnedBottomRowData; };
232 GridOptionsWrapper.prototype.isFunctionsPassive = function () { return isTrue(this.gridOptions.functionsPassive); };
233 GridOptionsWrapper.prototype.isSuppressTabbing = function () { return isTrue(this.gridOptions.suppressTabbing); };
234 GridOptionsWrapper.prototype.isSuppressChangeDetection = function () { return isTrue(this.gridOptions.suppressChangeDetection); };
235 GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () { return isTrue(this.gridOptions.suppressAnimationFrame); };
236 GridOptionsWrapper.prototype.getQuickFilterText = function () { return this.gridOptions.quickFilterText; };
237 GridOptionsWrapper.prototype.isCacheQuickFilter = function () { return isTrue(this.gridOptions.cacheQuickFilter); };
238 GridOptionsWrapper.prototype.isUnSortIcon = function () { return isTrue(this.gridOptions.unSortIcon); };
239 GridOptionsWrapper.prototype.isSuppressMenuHide = function () { return isTrue(this.gridOptions.suppressMenuHide); };
240 GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () { return isTrue(this.gridOptions.enterMovesDownAfterEdit); };
241 GridOptionsWrapper.prototype.isEnterMovesDown = function () { return isTrue(this.gridOptions.enterMovesDown); };
242 GridOptionsWrapper.prototype.getRowStyle = function () { return this.gridOptions.rowStyle; };
243 GridOptionsWrapper.prototype.getRowClass = function () { return this.gridOptions.rowClass; };
244 GridOptionsWrapper.prototype.getRowStyleFunc = function () { return this.gridOptions.getRowStyle; };
245 GridOptionsWrapper.prototype.getRowClassFunc = function () { return this.gridOptions.getRowClass; };
246 GridOptionsWrapper.prototype.rowClassRules = function () { return this.gridOptions.rowClassRules; };
247 GridOptionsWrapper.prototype.getPopupParent = function () { return this.gridOptions.popupParent; };
248 GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () { return this.gridOptions.postProcessPopup; };
249 GridOptionsWrapper.prototype.getDoesDataFlowerFunc = function () { return this.gridOptions.doesDataFlower; };
250 GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () { return this.gridOptions.paginationNumberFormatter; };
251 GridOptionsWrapper.prototype.getChildCountFunc = function () { return this.gridOptions.getChildCount; };
252 GridOptionsWrapper.prototype.getDefaultGroupSortComparator = function () { return this.gridOptions.defaultGroupSortComparator; };
253 GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () { return this.gridOptions.isFullWidthCell; };
254 GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () { return this.gridOptions.fullWidthCellRendererParams; };
255 GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () { return isTrue(this.gridOptions.embedFullWidthRows); };
256 GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () { return this.gridOptions.getBusinessKeyForNode; };
257 GridOptionsWrapper.prototype.getApi = function () { return this.gridOptions.api; };
258 GridOptionsWrapper.prototype.getColumnApi = function () { return this.gridOptions.columnApi; };
259 GridOptionsWrapper.prototype.isDeltaRowDataMode = function () { return isTrue(this.gridOptions.deltaRowDataMode); };
260 GridOptionsWrapper.prototype.isEnsureDomOrder = function () { return isTrue(this.gridOptions.ensureDomOrder); };
261 GridOptionsWrapper.prototype.isEnableColResize = function () { return isTrue(this.gridOptions.enableColResize); };
262 GridOptionsWrapper.prototype.getColResizeDefault = function () { return this.gridOptions.colResizeDefault; };
263 GridOptionsWrapper.prototype.isSingleClickEdit = function () { return isTrue(this.gridOptions.singleClickEdit); };
264 GridOptionsWrapper.prototype.isSuppressClickEdit = function () { return isTrue(this.gridOptions.suppressClickEdit); };
265 GridOptionsWrapper.prototype.isStopEditingWhenGridLosesFocus = function () { return isTrue(this.gridOptions.stopEditingWhenGridLosesFocus); };
266 GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () { return this.gridOptions.groupDefaultExpanded; };
267 GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () { return this.gridOptions.maxConcurrentDatasourceRequests; };
268 GridOptionsWrapper.prototype.getMaxBlocksInCache = function () { return this.gridOptions.maxBlocksInCache; };
269 GridOptionsWrapper.prototype.getCacheOverflowSize = function () { return this.gridOptions.cacheOverflowSize; };
270 GridOptionsWrapper.prototype.getPaginationPageSize = function () { return this.gridOptions.paginationPageSize; };
271 GridOptionsWrapper.prototype.getCacheBlockSize = function () { return this.gridOptions.cacheBlockSize; };
272 GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () { return this.gridOptions.infiniteInitialRowCount; };
273 GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () { return isTrue(this.gridOptions.purgeClosedRowNodes); };
274 GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () { return isTrue(this.gridOptions.suppressPaginationPanel); };
275 GridOptionsWrapper.prototype.getRowData = function () { return this.gridOptions.rowData; };
276 GridOptionsWrapper.prototype.isGroupUseEntireRow = function () { return isTrue(this.gridOptions.groupUseEntireRow); };
277 GridOptionsWrapper.prototype.isEnableRtl = function () { return isTrue(this.gridOptions.enableRtl); };
278 GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () { return this.gridOptions.autoGroupColumnDef; };
279 GridOptionsWrapper.prototype.isGroupSuppressRow = function () { return isTrue(this.gridOptions.groupSuppressRow); };
280 GridOptionsWrapper.prototype.getRowGroupPanelShow = function () { return this.gridOptions.rowGroupPanelShow; };
281 GridOptionsWrapper.prototype.getPivotPanelShow = function () { return this.gridOptions.pivotPanelShow; };
282 GridOptionsWrapper.prototype.isAngularCompileRows = function () { return isTrue(this.gridOptions.angularCompileRows); };
283 GridOptionsWrapper.prototype.isAngularCompileFilters = function () { return isTrue(this.gridOptions.angularCompileFilters); };
284 GridOptionsWrapper.prototype.isAngularCompileHeaders = function () { return isTrue(this.gridOptions.angularCompileHeaders); };
285 GridOptionsWrapper.prototype.isDebug = function () { return isTrue(this.gridOptions.debug); };
286 GridOptionsWrapper.prototype.getColumnDefs = function () { return this.gridOptions.columnDefs; };
287 GridOptionsWrapper.prototype.getColumnTypes = function () { return this.gridOptions.columnTypes; };
288 GridOptionsWrapper.prototype.getDatasource = function () { return this.gridOptions.datasource; };
289 GridOptionsWrapper.prototype.getViewportDatasource = function () { return this.gridOptions.viewportDatasource; };
290 GridOptionsWrapper.prototype.getServerSideDatasource = function () { return this.gridOptions.serverSideDatasource; };
291 GridOptionsWrapper.prototype.isEnableSorting = function () { return isTrue(this.gridOptions.enableSorting) || isTrue(this.gridOptions.enableServerSideSorting); };
292 GridOptionsWrapper.prototype.isAccentedSort = function () { return isTrue(this.gridOptions.accentedSort); };
293 GridOptionsWrapper.prototype.isEnableCellExpressions = function () { return isTrue(this.gridOptions.enableCellExpressions); };
294 GridOptionsWrapper.prototype.isEnableGroupEdit = function () { return isTrue(this.gridOptions.enableGroupEdit); };
295 GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () { return isTrue(this.gridOptions.suppressMiddleClickScrolls); };
296 GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () { return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel); };
297 GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () { return isTrue(this.gridOptions.suppressColumnVirtualisation); };
298 GridOptionsWrapper.prototype.isSuppressContextMenu = function () { return isTrue(this.gridOptions.suppressContextMenu); };
299 GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () { return isTrue(this.gridOptions.allowContextMenuWithControlKey); };
300 GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () { return isTrue(this.gridOptions.suppressCopyRowsToClipboard); };
301 GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () { return isTrue(this.gridOptions.suppressClipboardPaste); };
302 GridOptionsWrapper.prototype.isEnableFilter = function () { return isTrue(this.gridOptions.enableFilter) || isTrue(this.gridOptions.enableServerSideFilter); };
303 GridOptionsWrapper.prototype.isPagination = function () { return isTrue(this.gridOptions.pagination); };
304 GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () { return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns); };
305 GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () { return this.gridOptions.processDataFromClipboard; };
306 GridOptionsWrapper.prototype.getBatchUpdateWaitMillis = function () {
307 return utils_1.Utils.exists(this.gridOptions.batchUpdateWaitMillis) ? this.gridOptions.batchUpdateWaitMillis : constants_1.Constants.BATCH_WAIT_MILLIS;
308 };
309 // these are deprecated, should remove them when we take out server side pagination
310 GridOptionsWrapper.prototype.isEnableServerSideFilter = function () { return this.gridOptions.enableServerSideFilter; };
311 GridOptionsWrapper.prototype.isEnableServerSideSorting = function () { return isTrue(this.gridOptions.enableServerSideSorting); };
312 GridOptionsWrapper.prototype.isSuppressMovableColumns = function () { return isTrue(this.gridOptions.suppressMovableColumns); };
313 GridOptionsWrapper.prototype.isAnimateRows = function () {
314 // never allow animating if enforcing the row order
315 if (this.isEnsureDomOrder()) {
316 return false;
317 }
318 return isTrue(this.gridOptions.animateRows);
319 };
320 GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () { return isTrue(this.gridOptions.suppressColumnMoveAnimation); };
321 GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () { return isTrue(this.gridOptions.suppressAggFuncInHeader); };
322 GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () { return isTrue(this.gridOptions.suppressAggAtRootLevel); };
323 GridOptionsWrapper.prototype.isEnableRangeSelection = function () { return isTrue(this.gridOptions.enableRangeSelection); };
324 GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () { return isTrue(this.gridOptions.suppressMultiRangeSelection); };
325 GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () { return isTrue(this.gridOptions.paginationAutoPageSize); };
326 GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () { return isTrue(this.gridOptions.rememberGroupStateWhenNewData); };
327 GridOptionsWrapper.prototype.getIcons = function () { return this.gridOptions.icons; };
328 GridOptionsWrapper.prototype.getAggFuncs = function () { return this.gridOptions.aggFuncs; };
329 GridOptionsWrapper.prototype.getSortingOrder = function () { return this.gridOptions.sortingOrder; };
330 GridOptionsWrapper.prototype.getAlignedGrids = function () { return this.gridOptions.alignedGrids; };
331 GridOptionsWrapper.prototype.isMasterDetail = function () {
332 var _this = this;
333 var usingMasterDetail = isTrue(this.gridOptions.masterDetail);
334 utils_1.Utils.doOnce(function () {
335 if (usingMasterDetail && !_this.enterprise) {
336 console.warn('ag-grid: Master Detail is an Enterprise feature of ag-Grid.');
337 }
338 }, 'MasterDetailEnterpriseCheck');
339 return usingMasterDetail && this.enterprise;
340 };
341 GridOptionsWrapper.prototype.getIsRowMasterFunc = function () { return this.gridOptions.isRowMaster; };
342 GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () { return this.gridOptions.isRowSelectable; };
343 GridOptionsWrapper.prototype.getGroupRowRendererParams = function () { return this.gridOptions.groupRowRendererParams; };
344 GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () { return this.gridOptions.overlayLoadingTemplate; };
345 GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () { return this.gridOptions.overlayNoRowsTemplate; };
346 GridOptionsWrapper.prototype.isSuppressAutoSize = function () { return isTrue(this.gridOptions.suppressAutoSize); };
347 GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () { return isTrue(this.gridOptions.suppressParentsInRowNodes); };
348 GridOptionsWrapper.prototype.isEnableStatusBar = function () { return isTrue(this.gridOptions.enableStatusBar); };
349 GridOptionsWrapper.prototype.isAlwaysShowStatusBar = function () { return isTrue(this.gridOptions.alwaysShowStatusBar); };
350 GridOptionsWrapper.prototype.isFunctionsReadOnly = function () { return isTrue(this.gridOptions.functionsReadOnly); };
351 GridOptionsWrapper.prototype.isFloatingFilter = function () { return this.gridOptions.floatingFilter; };
352 GridOptionsWrapper.prototype.isEnableOldSetFilterModel = function () { return isTrue(this.gridOptions.enableOldSetFilterModel); };
353 // public isFloatingFilter(): boolean { return true; }
354 GridOptionsWrapper.prototype.getDefaultColDef = function () { return this.gridOptions.defaultColDef; };
355 GridOptionsWrapper.prototype.getDefaultColGroupDef = function () { return this.gridOptions.defaultColGroupDef; };
356 GridOptionsWrapper.prototype.getDefaultExportParams = function () { return this.gridOptions.defaultExportParams; };
357 GridOptionsWrapper.prototype.isSuppressCsvExport = function () { return isTrue(this.gridOptions.suppressCsvExport); };
358 GridOptionsWrapper.prototype.isSuppressExcelExport = function () { return isTrue(this.gridOptions.suppressExcelExport); };
359 GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () { return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup); };
360 GridOptionsWrapper.prototype.getNodeChildDetailsFunc = function () { return this.gridOptions.getNodeChildDetails; };
361 GridOptionsWrapper.prototype.getDataPathFunc = function () { return this.gridOptions.getDataPath; };
362 // public getIsGroupFunc(): ((dataItem: any) => boolean) { return this.gridOptions.isGroup }
363 GridOptionsWrapper.prototype.getGroupRowAggNodesFunc = function () { return this.gridOptions.groupRowAggNodes; };
364 GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () { return this.gridOptions.getContextMenuItems; };
365 GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () { return this.gridOptions.getMainMenuItems; };
366 GridOptionsWrapper.prototype.getRowNodeIdFunc = function () { return this.gridOptions.getRowNodeId; };
367 GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () { return this.gridOptions.navigateToNextCell; };
368 GridOptionsWrapper.prototype.getTabToNextCellFunc = function () { return this.gridOptions.tabToNextCell; };
369 GridOptionsWrapper.prototype.isTreeData = function () { return isTrue(this.gridOptions.treeData); };
370 GridOptionsWrapper.prototype.isValueCache = function () { return isTrue(this.gridOptions.valueCache); };
371 GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () { return isTrue(this.gridOptions.valueCacheNeverExpires); };
372 GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () { return isTrue(this.gridOptions.aggregateOnlyChangedColumns); };
373 GridOptionsWrapper.prototype.getProcessSecondaryColDefFunc = function () { return this.gridOptions.processSecondaryColDef; };
374 GridOptionsWrapper.prototype.getProcessSecondaryColGroupDefFunc = function () { return this.gridOptions.processSecondaryColGroupDef; };
375 GridOptionsWrapper.prototype.getSendToClipboardFunc = function () { return this.gridOptions.sendToClipboard; };
376 GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () { return this.gridOptions.processRowPostCreate; };
377 GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () { return this.gridOptions.processCellForClipboard; };
378 GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () { return this.gridOptions.processHeaderForClipboard; };
379 GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () { return this.gridOptions.processCellFromClipboard; };
380 GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () { return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE); };
381 GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () { return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE); };
382 // public getCellRenderers(): {[key: string]: {new(): ICellRenderer} | ICellRendererFunc} { return this.gridOptions.cellRenderers; }
383 // public getCellEditors(): {[key: string]: {new(): ICellEditor}} { return this.gridOptions.cellEditors; }
384 GridOptionsWrapper.prototype.isServerSideSortingAlwaysResets = function () { return isTrue(this.gridOptions.serverSideSortingAlwaysResets); };
385 GridOptionsWrapper.prototype.getPostSortFunc = function () { return this.gridOptions.postSort; };
386 GridOptionsWrapper.prototype.getClipboardDeliminator = function () {
387 return utils_1.Utils.exists(this.gridOptions.clipboardDeliminator) ? this.gridOptions.clipboardDeliminator : '\t';
388 };
389 GridOptionsWrapper.prototype.setProperty = function (key, value) {
390 var gridOptionsNoType = this.gridOptions;
391 var previousValue = gridOptionsNoType[key];
392 if (previousValue !== value) {
393 gridOptionsNoType[key] = value;
394 var event_1 = {
395 type: key,
396 currentValue: value,
397 previousValue: previousValue
398 };
399 this.propertyEventService.dispatchEvent(event_1);
400 }
401 };
402 // this logic is repeated in lots of places. any element that had different CSS
403 // dependent on the layout needs to have the layout class added ot it.
404 GridOptionsWrapper.prototype.addLayoutElement = function (element) {
405 this.layoutElements.push(element);
406 this.updateLayoutClasses();
407 };
408 GridOptionsWrapper.prototype.updateLayoutClasses = function () {
409 var autoHeight = this.isGridAutoHeight();
410 this.layoutElements.forEach(function (e) {
411 utils_1.Utils.addOrRemoveCssClass(e, 'ag-layout-auto-height', autoHeight);
412 utils_1.Utils.addOrRemoveCssClass(e, 'ag-layout-normal', !autoHeight);
413 });
414 };
415 GridOptionsWrapper.prototype.addEventListener = function (key, listener) {
416 GridOptionsWrapper_1.checkEventDeprecation(key);
417 this.propertyEventService.addEventListener(key, listener);
418 };
419 GridOptionsWrapper.checkEventDeprecation = function (eventName) {
420 if (eventName === 'floatingRowDataChanged') {
421 console.warn('ag-Grid: floatingRowDataChanged is now called pinnedRowDataChanged');
422 }
423 };
424 GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {
425 this.propertyEventService.removeEventListener(key, listener);
426 };
427 GridOptionsWrapper.prototype.getAutoSizePadding = function () {
428 return this.gridOptions.autoSizePadding > 0 ? this.gridOptions.autoSizePadding : 20;
429 };
430 // properties
431 GridOptionsWrapper.prototype.getHeaderHeight = function () {
432 if (typeof this.gridOptions.headerHeight === 'number') {
433 return this.gridOptions.headerHeight;
434 }
435 else {
436 return this.specialForNewMaterial(25, 'headerHeight');
437 }
438 };
439 GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {
440 if (typeof this.gridOptions.floatingFiltersHeight === 'number') {
441 return this.gridOptions.floatingFiltersHeight;
442 }
443 else {
444 return this.specialForNewMaterial(25, 'headerHeight');
445 }
446 };
447 GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {
448 if (typeof this.gridOptions.groupHeaderHeight === 'number') {
449 return this.gridOptions.groupHeaderHeight;
450 }
451 else {
452 return this.getHeaderHeight();
453 }
454 };
455 GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {
456 if (typeof this.gridOptions.pivotHeaderHeight === 'number') {
457 return this.gridOptions.pivotHeaderHeight;
458 }
459 else {
460 return this.getHeaderHeight();
461 }
462 };
463 GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {
464 if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {
465 return this.gridOptions.pivotGroupHeaderHeight;
466 }
467 else {
468 return this.getGroupHeaderHeight();
469 }
470 };
471 GridOptionsWrapper.prototype.isExternalFilterPresent = function () {
472 if (typeof this.gridOptions.isExternalFilterPresent === 'function') {
473 return this.gridOptions.isExternalFilterPresent();
474 }
475 else {
476 return false;
477 }
478 };
479 GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {
480 if (typeof this.gridOptions.doesExternalFilterPass === 'function') {
481 return this.gridOptions.doesExternalFilterPass(node);
482 }
483 else {
484 return false;
485 }
486 };
487 GridOptionsWrapper.prototype.getDocument = function () {
488 // if user is providing document, we use the users one,
489 // otherwise we use the document on the global namespace.
490 var result;
491 if (utils_1.Utils.exists(this.gridOptions.getDocument)) {
492 result = this.gridOptions.getDocument();
493 }
494 if (utils_1.Utils.exists(result)) {
495 return result;
496 }
497 else {
498 return document;
499 }
500 };
501 GridOptionsWrapper.prototype.getMinColWidth = function () {
502 if (this.gridOptions.minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {
503 return this.gridOptions.minColWidth;
504 }
505 else {
506 return GridOptionsWrapper_1.MIN_COL_WIDTH;
507 }
508 };
509 GridOptionsWrapper.prototype.getMaxColWidth = function () {
510 if (this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {
511 return this.gridOptions.maxColWidth;
512 }
513 else {
514 return null;
515 }
516 };
517 GridOptionsWrapper.prototype.getColWidth = function () {
518 if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {
519 return 200;
520 }
521 else {
522 return this.gridOptions.colWidth;
523 }
524 };
525 GridOptionsWrapper.prototype.getRowBuffer = function () {
526 if (typeof this.gridOptions.rowBuffer === 'number') {
527 if (this.gridOptions.rowBuffer < 0) {
528 console.warn('ag-Grid: rowBuffer should not be negative');
529 }
530 return this.gridOptions.rowBuffer;
531 }
532 else {
533 return constants_1.Constants.ROW_BUFFER_SIZE;
534 }
535 };
536 // the user might be using some non-standard scrollbar, eg a scrollbar that has zero
537 // width and overlays (like the Safari scrollbar, but presented in Chrome). so we
538 // allow the user to provide the scroll width before we work it out.
539 GridOptionsWrapper.prototype.getScrollbarWidth = function () {
540 var scrollbarWidth = this.gridOptions.scrollbarWidth;
541 if (typeof scrollbarWidth !== 'number' || scrollbarWidth < 0) {
542 scrollbarWidth = utils_1.Utils.getScrollbarWidth();
543 }
544 return scrollbarWidth;
545 };
546 GridOptionsWrapper.prototype.checkForDeprecated = function () {
547 // casting to generic object, so typescript compiles even though
548 // we are looking for attributes that don't exist
549 var options = this.gridOptions;
550 if (options.suppressUnSort) {
551 console.warn('ag-grid: as of v1.12.4 suppressUnSort is not used. Please use sortingOrder instead.');
552 }
553 if (options.suppressDescSort) {
554 console.warn('ag-grid: as of v1.12.4 suppressDescSort is not used. Please use sortingOrder instead.');
555 }
556 if (options.groupAggFields) {
557 console.warn('ag-grid: as of v3 groupAggFields is not used. Please add appropriate agg fields to your columns.');
558 }
559 if (options.groupHidePivotColumns) {
560 console.warn('ag-grid: as of v3 groupHidePivotColumns is not used as pivot columns are now called rowGroup columns. Please refer to the documentation');
561 }
562 if (options.groupKeys) {
563 console.warn('ag-grid: as of v3 groupKeys is not used. You need to set rowGroupIndex on the columns to group. Please refer to the documentation');
564 }
565 if (typeof options.groupDefaultExpanded === 'boolean') {
566 console.warn('ag-grid: groupDefaultExpanded can no longer be boolean. for groupDefaultExpanded=true, use groupDefaultExpanded=9999 instead, to expand all the groups');
567 }
568 if (options.onRowDeselected || options.rowDeselected) {
569 console.warn('ag-grid: since version 3.4 event rowDeselected no longer exists, please check the docs');
570 }
571 if (options.rowsAlreadyGrouped) {
572 console.warn('ag-grid: since version 3.4 rowsAlreadyGrouped no longer exists, please use getNodeChildDetails() instead');
573 }
574 if (options.groupAggFunction) {
575 console.warn('ag-grid: since version 4.3.x groupAggFunction is now called groupRowAggNodes');
576 }
577 if (options.checkboxSelection) {
578 console.warn('ag-grid: since version 8.0.x checkboxSelection is not supported as a grid option. ' +
579 'If you want this on all columns, use defaultColDef instead and set it there');
580 }
581 if (options.paginationInitialRowCount) {
582 console.warn('ag-grid: since version 9.0.x paginationInitialRowCount is now called infiniteInitialRowCount');
583 }
584 if (options.infinitePageSize) {
585 console.warn('ag-grid: since version 9.0.x infinitePageSize is now called cacheBlockSize');
586 }
587 if (options.infiniteBlockSize) {
588 console.warn('ag-grid: since version 10.0.x infiniteBlockSize is now called cacheBlockSize');
589 }
590 if (options.maxPagesInCache) {
591 console.warn('ag-grid: since version 10.0.x maxPagesInCache is now called maxBlocksInCache');
592 }
593 if (options.paginationOverflowSize) {
594 console.warn('ag-grid: since version 10.0.x paginationOverflowSize is now called cacheOverflowSize');
595 }
596 if (options.forPrint) {
597 console.warn('ag-grid: since version 10.1.x, use property domLayout="forPrint" instead of forPrint=true');
598 }
599 if (options.suppressMenuFilterPanel) {
600 console.warn("ag-grid: since version 11.0.x, use property colDef.menuTabs=['generalMenuTab','columnsMenuTab'] instead of suppressMenuFilterPanel=true");
601 }
602 if (options.suppressMenuMainPanel) {
603 console.warn("ag-grid: since version 11.0.x, use property colDef.menuTabs=['filterMenuTab','columnsMenuTab'] instead of suppressMenuMainPanel=true");
604 }
605 if (options.suppressMenuColumnPanel) {
606 console.warn("ag-grid: since version 11.0.x, use property colDef.menuTabs=['generalMenuTab','filterMenuTab'] instead of suppressMenuColumnPanel=true");
607 }
608 if (options.suppressUseColIdForGroups) {
609 console.warn("ag-grid: since version 11.0.x, this is not in use anymore. You should be able to remove it from your definition");
610 }
611 if (options.groupColumnDef) {
612 console.warn("ag-grid: since version 11.0.x, groupColumnDef has been renamed, this property is now called autoGroupColumnDef. Please change your configuration accordingly");
613 }
614 if (options.slaveGrids) {
615 console.warn("ag-grid: since version 12.x, slaveGrids has been renamed, this property is now called alignedGrids. Please change your configuration accordingly");
616 }
617 if (options.floatingTopRowData) {
618 console.warn("ag-grid: since version 12.x, floatingTopRowData is now called pinnedTopRowData");
619 }
620 if (options.floatingBottomRowData) {
621 console.warn("ag-grid: since version 12.x, floatingBottomRowData is now called pinnedBottomRowData");
622 }
623 if (options.paginationStartPage) {
624 console.warn("ag-grid: since version 12.x, paginationStartPage is gone, please call api.paginationGoToPage(" + options.paginationStartPage + ") instead.");
625 }
626 if (options.getHeaderCellTemplate) {
627 console.warn("ag-grid: since version 15.x, getHeaderCellTemplate is gone, please check the header documentation on how to set header templates.");
628 }
629 if (options.headerCellTemplate) {
630 console.warn("ag-grid: since version 15.x, headerCellTemplate is gone, please check the header documentation on how to set header templates.");
631 }
632 if (options.headerCellRenderer) {
633 console.warn("ag-grid: since version 15.x, headerCellRenderer is gone, please check the header documentation on how to set header templates.");
634 }
635 if (options.angularCompileHeaders) {
636 console.warn("ag-grid: since version 15.x, angularCompileHeaders is gone, please see the getting started for Angular 1 docs to see how to do headers in Angular 1.x.");
637 }
638 if (options.domLayout === 'forPrint') {
639 console.warn("ag-grid: since version 18.x, forPrint is no longer supported, as same can be achieved using autoHeight (and set the grid width accordingly). please use autoHeight instead.");
640 }
641 if (options.domLayout === 'autoHeight') {
642 console.warn("ag-grid: since version 18.x, domLayout is gone, instead if doing auto-height, set gridAutoHeight=true.");
643 options.gridAutoHeight = true;
644 }
645 if (options.pivotTotals) {
646 console.warn("ag-grid: since version 18.x, pivotTotals has been removed, instead if using pivotTotals, set pivotColumnGroupTotals='before'|'after'.");
647 options.pivotColumnGroupTotals = 'before';
648 }
649 if (options.rowModelType === 'inMemory') {
650 console.warn("ag-grid: since version 18.x, The In Memory Row Model has been renamed to the Client Side Row Model, set rowModelType='clientSide' instead.");
651 options.rowModelType = 'clientSide';
652 }
653 if (options.rowModelType === 'enterprise') {
654 console.warn("ag-grid: since version 18.x, The Enterprise Row Model has been renamed to the Server Side Row Model, set rowModelType='serverSide' instead.");
655 options.rowModelType = 'serverSide';
656 }
657 if (options.layoutInterval) {
658 console.warn("ag-grid: since version 18.x, layoutInterval is no longer a property. This is because the grid now uses CSS Flex for layout.");
659 }
660 };
661 GridOptionsWrapper.prototype.getLocaleTextFunc = function () {
662 if (this.gridOptions.localeTextFunc) {
663 return this.gridOptions.localeTextFunc;
664 }
665 var that = this;
666 return function (key, defaultValue) {
667 var localeText = that.gridOptions.localeText;
668 if (localeText && localeText[key]) {
669 return localeText[key];
670 }
671 else {
672 return defaultValue;
673 }
674 };
675 };
676 // responsible for calling the onXXX functions on gridOptions
677 GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {
678 var callbackMethodName = componentUtil_1.ComponentUtil.getCallbackForEvent(eventName);
679 if (typeof this.gridOptions[callbackMethodName] === 'function') {
680 this.gridOptions[callbackMethodName](event);
681 }
682 };
683 // we don't allow dynamic row height for virtual paging
684 GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {
685 var rowHeight = this.gridOptions.rowHeight;
686 if (utils_1.Utils.missing(rowHeight)) {
687 return this.getDefaultRowHeight();
688 }
689 else if (this.isNumeric(this.gridOptions.rowHeight)) {
690 return this.gridOptions.rowHeight;
691 }
692 else {
693 console.warn('ag-Grid row height must be a number if not using standard row model');
694 return this.getDefaultRowHeight();
695 }
696 };
697 GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode) {
698 // check the function first, in case use set both function and
699 // number, when using virtual pagination then function can be
700 // used for pinned rows and the number for the body rows.
701 if (typeof this.gridOptions.getRowHeight === 'function') {
702 var params = {
703 node: rowNode,
704 data: rowNode.data,
705 api: this.gridOptions.api,
706 context: this.gridOptions.context
707 };
708 return this.gridOptions.getRowHeight(params);
709 }
710 else if (rowNode.detail && this.isMasterDetail()) {
711 if (this.isNumeric(this.gridOptions.detailRowHeight)) {
712 return this.gridOptions.detailRowHeight;
713 }
714 else {
715 return DEFAULT_DETAIL_ROW_HEIGHT;
716 }
717 }
718 else {
719 var defaultHeight = this.isNumeric(this.gridOptions.rowHeight) ?
720 this.gridOptions.rowHeight : this.getDefaultRowHeight();
721 if (this.columnController.isAutoRowHeightActive()) {
722 var autoHeight = this.autoHeightCalculator.getPreferredHeightForRow(rowNode);
723 // never return less than the default row height - covers when auto height
724 // cells are blank.
725 if (autoHeight > defaultHeight) {
726 return autoHeight;
727 }
728 else {
729 return defaultHeight;
730 }
731 }
732 else {
733 return defaultHeight;
734 }
735 }
736 };
737 GridOptionsWrapper.prototype.isDynamicRowHeight = function () {
738 return typeof this.gridOptions.getRowHeight === 'function';
739 };
740 GridOptionsWrapper.prototype.getVirtualItemHeight = function () {
741 return this.specialForNewMaterial(20, 'virtualItemHeight');
742 };
743 GridOptionsWrapper.prototype.isNumeric = function (value) {
744 return !isNaN(value) && typeof value === 'number';
745 };
746 // Material data table has strict guidelines about whitespace, and these values are different than the ones
747 // ag-grid uses by default. We override the default ones for the sake of making it better out of the box
748 GridOptionsWrapper.prototype.specialForNewMaterial = function (defaultValue, sassVariableName) {
749 var theme = this.environment.getTheme();
750 if (theme.indexOf('ag-theme') === 0) {
751 return this.environment.getSassVariable(theme, sassVariableName);
752 }
753 else {
754 return defaultValue;
755 }
756 };
757 GridOptionsWrapper.prototype.getDefaultRowHeight = function () {
758 return this.specialForNewMaterial(DEFAULT_ROW_HEIGHT, 'rowHeight');
759 };
760 GridOptionsWrapper.MIN_COL_WIDTH = 10;
761 GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';
762 GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';
763 GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';
764 GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';
765 GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';
766 GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';
767 GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';
768 GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';
769 GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';
770 GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';
771 GridOptionsWrapper.PROP_GRID_AUTO_HEIGHT = 'gridAutoHeight';
772 __decorate([
773 context_1.Autowired('gridOptions'),
774 __metadata("design:type", Object)
775 ], GridOptionsWrapper.prototype, "gridOptions", void 0);
776 __decorate([
777 context_1.Autowired('columnController'),
778 __metadata("design:type", columnController_1.ColumnController)
779 ], GridOptionsWrapper.prototype, "columnController", void 0);
780 __decorate([
781 context_1.Autowired('eventService'),
782 __metadata("design:type", eventService_1.EventService)
783 ], GridOptionsWrapper.prototype, "eventService", void 0);
784 __decorate([
785 context_1.Autowired('enterprise'),
786 __metadata("design:type", Boolean)
787 ], GridOptionsWrapper.prototype, "enterprise", void 0);
788 __decorate([
789 context_1.Autowired('frameworkFactory'),
790 __metadata("design:type", Object)
791 ], GridOptionsWrapper.prototype, "frameworkFactory", void 0);
792 __decorate([
793 context_1.Autowired('gridApi'),
794 __metadata("design:type", gridApi_1.GridApi)
795 ], GridOptionsWrapper.prototype, "gridApi", void 0);
796 __decorate([
797 context_1.Autowired('columnApi'),
798 __metadata("design:type", columnApi_1.ColumnApi)
799 ], GridOptionsWrapper.prototype, "columnApi", void 0);
800 __decorate([
801 context_1.Autowired('environment'),
802 __metadata("design:type", environment_1.Environment)
803 ], GridOptionsWrapper.prototype, "environment", void 0);
804 __decorate([
805 context_1.Autowired('autoHeightCalculator'),
806 __metadata("design:type", autoHeightCalculator_1.AutoHeightCalculator)
807 ], GridOptionsWrapper.prototype, "autoHeightCalculator", void 0);
808 __decorate([
809 __param(0, context_1.Qualifier('gridApi')), __param(1, context_1.Qualifier('columnApi')),
810 __metadata("design:type", Function),
811 __metadata("design:paramtypes", [gridApi_1.GridApi, columnApi_1.ColumnApi]),
812 __metadata("design:returntype", void 0)
813 ], GridOptionsWrapper.prototype, "agWire", null);
814 __decorate([
815 context_1.PreDestroy,
816 __metadata("design:type", Function),
817 __metadata("design:paramtypes", []),
818 __metadata("design:returntype", void 0)
819 ], GridOptionsWrapper.prototype, "destroy", null);
820 __decorate([
821 context_1.PostConstruct,
822 __metadata("design:type", Function),
823 __metadata("design:paramtypes", []),
824 __metadata("design:returntype", void 0)
825 ], GridOptionsWrapper.prototype, "init", null);
826 GridOptionsWrapper = GridOptionsWrapper_1 = __decorate([
827 context_1.Bean('gridOptionsWrapper')
828 ], GridOptionsWrapper);
829 return GridOptionsWrapper;
830 var GridOptionsWrapper_1;
831}());
832exports.GridOptionsWrapper = GridOptionsWrapper;