UNPKG

2.67 MBJavaScriptView Raw
1/**
2 * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3 * @version v25.3.0
4 * @link http://www.ag-grid.com/
5 * @license MIT
6 */
7// @ag-grid-community/all-modules v25.3.0
8(function webpackUniversalModuleDefinition(root, factory) {
9 if(typeof exports === 'object' && typeof module === 'object')
10 module.exports = factory();
11 else if(typeof define === 'function' && define.amd)
12 define([], factory);
13 else if(typeof exports === 'object')
14 exports["agGrid"] = factory();
15 else
16 root["agGrid"] = factory();
17})(window, function() {
18return /******/ (function(modules) { // webpackBootstrap
19/******/ // The module cache
20/******/ var installedModules = {};
21/******/
22/******/ // The require function
23/******/ function __webpack_require__(moduleId) {
24/******/
25/******/ // Check if module is in cache
26/******/ if(installedModules[moduleId]) {
27/******/ return installedModules[moduleId].exports;
28/******/ }
29/******/ // Create a new module (and put it into the cache)
30/******/ var module = installedModules[moduleId] = {
31/******/ i: moduleId,
32/******/ l: false,
33/******/ exports: {}
34/******/ };
35/******/
36/******/ // Execute the module function
37/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
38/******/
39/******/ // Flag the module as loaded
40/******/ module.l = true;
41/******/
42/******/ // Return the exports of the module
43/******/ return module.exports;
44/******/ }
45/******/
46/******/
47/******/ // expose the modules object (__webpack_modules__)
48/******/ __webpack_require__.m = modules;
49/******/
50/******/ // expose the module cache
51/******/ __webpack_require__.c = installedModules;
52/******/
53/******/ // define getter function for harmony exports
54/******/ __webpack_require__.d = function(exports, name, getter) {
55/******/ if(!__webpack_require__.o(exports, name)) {
56/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
57/******/ }
58/******/ };
59/******/
60/******/ // define __esModule on exports
61/******/ __webpack_require__.r = function(exports) {
62/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
63/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
64/******/ }
65/******/ Object.defineProperty(exports, '__esModule', { value: true });
66/******/ };
67/******/
68/******/ // create a fake namespace object
69/******/ // mode & 1: value is a module id, require it
70/******/ // mode & 2: merge all properties of value into the ns
71/******/ // mode & 4: return value when already ns object
72/******/ // mode & 8|1: behave like require
73/******/ __webpack_require__.t = function(value, mode) {
74/******/ if(mode & 1) value = __webpack_require__(value);
75/******/ if(mode & 8) return value;
76/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
77/******/ var ns = Object.create(null);
78/******/ __webpack_require__.r(ns);
79/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
80/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
81/******/ return ns;
82/******/ };
83/******/
84/******/ // getDefaultExport function for compatibility with non-harmony modules
85/******/ __webpack_require__.n = function(module) {
86/******/ var getter = module && module.__esModule ?
87/******/ function getDefault() { return module['default']; } :
88/******/ function getModuleExports() { return module; };
89/******/ __webpack_require__.d(getter, 'a', getter);
90/******/ return getter;
91/******/ };
92/******/
93/******/ // Object.prototype.hasOwnProperty.call
94/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
95/******/
96/******/ // __webpack_public_path__
97/******/ __webpack_require__.p = "";
98/******/
99/******/
100/******/ // Load entry module and return exports
101/******/ return __webpack_require__(__webpack_require__.s = 0);
102/******/ })
103/************************************************************************/
104/******/ ([
105/* 0 */
106/***/ (function(module, exports, __webpack_require__) {
107
108/**
109 * AUTOMATICALLY GENERATED FILE, DO NOT EDIT MANUALLY!
110 * Update this file by running `lerna run webpack-updater` in the monorepo root folder.
111 */
112var ClientSideRowModelModule = __webpack_require__(1);
113var GridCoreModule = __webpack_require__(3);
114var CsvExportModule = __webpack_require__(241);
115var InfiniteRowModelModule = __webpack_require__(251);
116var agGrid = __webpack_require__(256);
117Object.keys(agGrid).forEach(function(key) {
118 exports[key] = agGrid[key];
119});
120agGrid.ModuleRegistry.register(ClientSideRowModelModule.ClientSideRowModelModule);
121agGrid.ModuleRegistry.register(CsvExportModule.CsvExportModule);
122agGrid.ModuleRegistry.register(InfiniteRowModelModule.InfiniteRowModelModule);
123
124
125/***/ }),
126/* 1 */
127/***/ (function(module, __webpack_exports__, __webpack_require__) {
128
129"use strict";
130__webpack_require__.r(__webpack_exports__);
131/* harmony import */ var _clientSideRowModelModule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
132/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return _clientSideRowModelModule__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"]; });
133
134
135
136
137/***/ }),
138/* 2 */
139/***/ (function(module, __webpack_exports__, __webpack_require__) {
140
141"use strict";
142__webpack_require__.r(__webpack_exports__);
143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return ClientSideRowModelModule; });
144/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
145/* harmony import */ var _clientSideRowModel_clientSideRowModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(233);
146/* harmony import */ var _clientSideRowModel_filterStage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(235);
147/* harmony import */ var _clientSideRowModel_sortStage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(236);
148/* harmony import */ var _clientSideRowModel_flattenStage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(237);
149/* harmony import */ var _clientSideRowModel_sortService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(238);
150/* harmony import */ var _clientSideRowModel_filterService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(239);
151/* harmony import */ var _clientSideRowModel_immutableService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(240);
152
153
154
155
156
157
158
159
160var ClientSideRowModelModule = {
161 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].ClientSideRowModelModule,
162 beans: [_clientSideRowModel_filterStage__WEBPACK_IMPORTED_MODULE_2__["FilterStage"], _clientSideRowModel_sortStage__WEBPACK_IMPORTED_MODULE_3__["SortStage"], _clientSideRowModel_flattenStage__WEBPACK_IMPORTED_MODULE_4__["FlattenStage"], _clientSideRowModel_sortService__WEBPACK_IMPORTED_MODULE_5__["SortService"], _clientSideRowModel_filterService__WEBPACK_IMPORTED_MODULE_6__["FilterService"], _clientSideRowModel_immutableService__WEBPACK_IMPORTED_MODULE_7__["ImmutableService"]],
163 rowModels: { clientSide: _clientSideRowModel_clientSideRowModel__WEBPACK_IMPORTED_MODULE_1__["ClientSideRowModel"] }
164};
165
166
167/***/ }),
168/* 3 */
169/***/ (function(module, __webpack_exports__, __webpack_require__) {
170
171"use strict";
172__webpack_require__.r(__webpack_exports__);
173/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_0__["ColumnFactory"]; });
175
176/* harmony import */ var _columnController_columnController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
177/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnController", function() { return _columnController_columnController__WEBPACK_IMPORTED_MODULE_1__["ColumnController"]; });
178
179/* harmony import */ var _columnController_columnKeyCreator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return _columnController_columnKeyCreator__WEBPACK_IMPORTED_MODULE_2__["ColumnKeyCreator"]; });
181
182/* harmony import */ var _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28);
183/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_3__["ColumnUtils"]; });
184
185/* harmony import */ var _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30);
186/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_4__["DisplayedGroupCreator"]; });
187
188/* harmony import */ var _columnController_groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
189/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return _columnController_groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__["GroupInstanceIdCreator"]; });
190
191/* harmony import */ var _headless_headlessService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31);
192/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeadlessService", function() { return _headless_headlessService__WEBPACK_IMPORTED_MODULE_6__["HeadlessService"]; });
193
194/* harmony import */ var _headless_testHeadless__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(32);
195/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TestHeadless", function() { return _headless_testHeadless__WEBPACK_IMPORTED_MODULE_7__["TestHeadless"]; });
196
197/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(35);
198/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return _components_componentUtil__WEBPACK_IMPORTED_MODULE_8__["ComponentUtil"]; });
199
200/* harmony import */ var _components_colDefUtil__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(37);
201/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return _components_colDefUtil__WEBPACK_IMPORTED_MODULE_9__["ColDefUtil"]; });
202
203/* harmony import */ var _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(38);
204/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_10__["UserComponentRegistry"]; });
205
206/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(75);
207/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_11__["UserComponentFactory"]; });
208
209/* harmony import */ var _components_agGridNg1__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(97);
210/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithAngular1", function() { return _components_agGridNg1__WEBPACK_IMPORTED_MODULE_12__["initialiseAgGridWithAngular1"]; });
211
212/* harmony import */ var _components_agGridWebComponent__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(224);
213/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithWebComponents", function() { return _components_agGridWebComponent__WEBPACK_IMPORTED_MODULE_13__["initialiseAgGridWithWebComponents"]; });
214
215/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(20);
216/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return _context_beanStub__WEBPACK_IMPORTED_MODULE_14__["BeanStub"]; });
217
218/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12);
219/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Context"]; });
220
221/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Autowired"]; });
222
223/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["PostConstruct"]; });
224
225/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["PreConstruct"]; });
226
227/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Optional"]; });
228
229/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Bean"]; });
230
231/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["Qualifier"]; });
232
233/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return _context_context__WEBPACK_IMPORTED_MODULE_15__["PreDestroy"]; });
234
235/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(59);
236/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["QuerySelector"]; });
237
238/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GuiListener", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["GuiListener"]; });
239
240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["RefSelector"]; });
241
242/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridListener", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_16__["GridListener"]; });
243
244/* harmony import */ var _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(149);
245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_17__["ExcelFactoryMode"]; });
246
247/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(78);
248/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["DragAndDropService"]; });
249
250/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["DragSourceType"]; });
251
252/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["HorizontalDirection"]; });
253
254/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_18__["VerticalDirection"]; });
255
256/* harmony import */ var _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(161);
257/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_19__["DragService"]; });
258
259/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(10);
260/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return _entities_column__WEBPACK_IMPORTED_MODULE_20__["Column"]; });
261
262/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(9);
263/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return _entities_columnGroup__WEBPACK_IMPORTED_MODULE_21__["ColumnGroup"]; });
264
265/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(8);
266/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OriginalColumnGroup", function() { return _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_22__["OriginalColumnGroup"]; });
267
268/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(73);
269/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return _entities_rowNode__WEBPACK_IMPORTED_MODULE_23__["RowNode"]; });
270
271/* harmony import */ var _filter_filterManager__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(134);
272/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return _filter_filterManager__WEBPACK_IMPORTED_MODULE_24__["FilterManager"]; });
273
274/* harmony import */ var _filter_provided_providedFilter__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(65);
275/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return _filter_provided_providedFilter__WEBPACK_IMPORTED_MODULE_25__["ProvidedFilter"]; });
276
277/* harmony import */ var _filter_provided_simpleFilter__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(63);
278/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return _filter_provided_simpleFilter__WEBPACK_IMPORTED_MODULE_26__["SimpleFilter"]; });
279
280/* harmony import */ var _filter_provided_scalarFilter__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(68);
281/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return _filter_provided_scalarFilter__WEBPACK_IMPORTED_MODULE_27__["ScalarFilter"]; });
282
283/* harmony import */ var _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(86);
284/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_28__["NumberFilter"]; });
285
286/* harmony import */ var _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(93);
287/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_29__["TextFilter"]; });
288
289/* harmony import */ var _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(61);
290/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_30__["DateFilter"]; });
291
292/* harmony import */ var _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(96);
293/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_31__["TextFloatingFilter"]; });
294
295/* harmony import */ var _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(125);
296/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterWrapper", function() { return _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_32__["FloatingFilterWrapper"]; });
297
298/* harmony import */ var _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(127);
299/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_33__["FloatingFilterMapper"]; });
300
301/* harmony import */ var _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(136);
302/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_34__["GridBodyComp"]; });
303
304/* harmony import */ var _gridBodyComp_gridBodyController__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(138);
305/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyController", function() { return _gridBodyComp_gridBodyController__WEBPACK_IMPORTED_MODULE_35__["GridBodyController"]; });
306
307/* harmony import */ var _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(168);
308/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_36__["ScrollVisibleService"]; });
309
310/* harmony import */ var _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(163);
311/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_37__["MouseEventService"]; });
312
313/* harmony import */ var _headerRendering_bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(130);
314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return _headerRendering_bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_38__["BodyDropPivotTarget"]; });
315
316/* harmony import */ var _headerRendering_bodyDropTarget__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(128);
317/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return _headerRendering_bodyDropTarget__WEBPACK_IMPORTED_MODULE_39__["BodyDropTarget"]; });
318
319/* harmony import */ var _headerRendering_cssClassApplier__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(115);
320/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return _headerRendering_cssClassApplier__WEBPACK_IMPORTED_MODULE_40__["CssClassApplier"]; });
321
322/* harmony import */ var _headerRendering_headerContainer__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(112);
323/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderContainer", function() { return _headerRendering_headerContainer__WEBPACK_IMPORTED_MODULE_41__["HeaderContainer"]; });
324
325/* harmony import */ var _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(111);
326/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRootComp", function() { return _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_42__["HeaderRootComp"]; });
327
328/* harmony import */ var _headerRendering_headerRowComp__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(113);
329/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return _headerRendering_headerRowComp__WEBPACK_IMPORTED_MODULE_43__["HeaderRowComp"]; });
330
331/* harmony import */ var _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(157);
332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_44__["HorizontalResizeService"]; });
333
334/* harmony import */ var _headerRendering_moveColumnController__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(129);
335/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveColumnController", function() { return _headerRendering_moveColumnController__WEBPACK_IMPORTED_MODULE_45__["MoveColumnController"]; });
336
337/* harmony import */ var _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(160);
338/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_46__["StandardMenuFactory"]; });
339
340/* harmony import */ var _layout_tabbedLayout__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(225);
341/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return _layout_tabbedLayout__WEBPACK_IMPORTED_MODULE_47__["TabbedLayout"]; });
342
343/* harmony import */ var _misc_simpleHttpRequest__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(226);
344/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return _misc_simpleHttpRequest__WEBPACK_IMPORTED_MODULE_48__["simpleHttpRequest"]; });
345
346/* harmony import */ var _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(188);
347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_49__["ResizeObserverService"]; });
348
349/* harmony import */ var _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(182);
350/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_50__["AnimationFrameService"]; });
351
352/* harmony import */ var _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(85);
353/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_51__["LargeTextCellEditor"]; });
354
355/* harmony import */ var _rendering_cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(109);
356/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return _rendering_cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_52__["PopupEditorWrapper"]; });
357
358/* harmony import */ var _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(84);
359/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSelectCellEditor", function() { return _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_53__["PopupSelectCellEditor"]; });
360
361/* harmony import */ var _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(83);
362/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupTextCellEditor", function() { return _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_54__["PopupTextCellEditor"]; });
363
364/* harmony import */ var _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(82);
365/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_55__["SelectCellEditor"]; });
366
367/* harmony import */ var _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(39);
368/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_56__["TextCellEditor"]; });
369
370/* harmony import */ var _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(79);
371/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_57__["AnimateShowChangeCellRenderer"]; });
372
373/* harmony import */ var _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(80);
374/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_58__["AnimateSlideCellRenderer"]; });
375
376/* harmony import */ var _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(72);
377/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_59__["GroupCellRenderer"]; });
378
379/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(117);
380/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_60__["SetLeftFeature"]; });
381
382/* harmony import */ var _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(156);
383/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_61__["AutoWidthCalculator"]; });
384
385/* harmony import */ var _rendering_checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(74);
386/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return _rendering_checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_62__["CheckboxSelectionComponent"]; });
387
388/* harmony import */ var _rendering_cellComp__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(107);
389/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return _rendering_cellComp__WEBPACK_IMPORTED_MODULE_63__["CellComp"]; });
390
391/* harmony import */ var _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(105);
392/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowController", function() { return _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_64__["RowController"]; });
393
394/* harmony import */ var _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(104);
395/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_65__["RowRenderer"]; });
396
397/* harmony import */ var _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(165);
398/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_66__["ValueFormatterService"]; });
399
400/* harmony import */ var _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(208);
401/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_67__["PinnedRowModel"]; });
402
403/* harmony import */ var _interfaces_serverSideTransaction__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(227);
404/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return _interfaces_serverSideTransaction__WEBPACK_IMPORTED_MODULE_68__["ServerSideTransactionResultStatus"]; });
405
406/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(102);
407/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return _utils_changedPath__WEBPACK_IMPORTED_MODULE_69__["ChangedPath"]; });
408
409/* harmony import */ var _rowNodeCache_rowNodeBlock__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(216);
410/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return _rowNodeCache_rowNodeBlock__WEBPACK_IMPORTED_MODULE_70__["RowNodeBlock"]; });
411
412/* harmony import */ var _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(215);
413/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_71__["RowNodeBlockLoader"]; });
414
415/* harmony import */ var _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(173);
416/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_72__["PaginationProxy"]; });
417
418/* harmony import */ var _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(150);
419/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_73__["ClientSideRowModelSteps"]; });
420
421/* harmony import */ var _styling_stylingService__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(169);
422/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return _styling_stylingService__WEBPACK_IMPORTED_MODULE_74__["StylingService"]; });
423
424/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(137);
425/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_75__["LayoutCssClasses"]; });
426
427/* harmony import */ var _widgets_agAbstractField__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(121);
428/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return _widgets_agAbstractField__WEBPACK_IMPORTED_MODULE_76__["AgAbstractField"]; });
429
430/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(119);
431/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_77__["AgCheckbox"]; });
432
433/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(166);
434/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_78__["AgRadioButton"]; });
435
436/* harmony import */ var _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(204);
437/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_79__["AgToggleButton"]; });
438
439/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(193);
440/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_80__["AgInputTextField"]; });
441
442/* harmony import */ var _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(194);
443/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_81__["AgInputTextArea"]; });
444
445/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(199);
446/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_82__["AgInputNumberField"]; });
447
448/* harmony import */ var _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(200);
449/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_83__["AgInputRange"]; });
450
451/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(201);
452/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return _widgets_agSelect__WEBPACK_IMPORTED_MODULE_84__["AgSelect"]; });
453
454/* harmony import */ var _widgets_agSlider__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(195);
455/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return _widgets_agSlider__WEBPACK_IMPORTED_MODULE_85__["AgSlider"]; });
456
457/* harmony import */ var _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(203);
458/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAngleSelect", function() { return _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_86__["AgAngleSelect"]; });
459
460/* harmony import */ var _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(196);
461/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgColorPicker", function() { return _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_87__["AgColorPicker"]; });
462
463/* harmony import */ var _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(190);
464/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_88__["AgGroupComponent"]; });
465
466/* harmony import */ var _widgets_agDialog__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(191);
467/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return _widgets_agDialog__WEBPACK_IMPORTED_MODULE_89__["AgDialog"]; });
468
469/* harmony import */ var _widgets_agPanel__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(192);
470/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return _widgets_agPanel__WEBPACK_IMPORTED_MODULE_90__["AgPanel"]; });
471
472/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(41);
473/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _widgets_component__WEBPACK_IMPORTED_MODULE_91__["Component"]; });
474
475/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(67);
476/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusComponent", function() { return _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_92__["ManagedFocusComponent"]; });
477
478/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(40);
479/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_93__["PopupComponent"]; });
480
481/* harmony import */ var _widgets_popupService__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(153);
482/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return _widgets_popupService__WEBPACK_IMPORTED_MODULE_94__["PopupService"]; });
483
484/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(70);
485/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return _widgets_touchListener__WEBPACK_IMPORTED_MODULE_95__["TouchListener"]; });
486
487/* harmony import */ var _widgets_virtualList__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(228);
488/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return _widgets_virtualList__WEBPACK_IMPORTED_MODULE_96__["VirtualList"]; });
489
490/* harmony import */ var _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(108);
491/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_97__["CellRangeType"]; });
492
493/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_97__["SelectionHandleType"]; });
494
495/* harmony import */ var _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(167);
496/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_98__["VanillaFrameworkOverrides"]; });
497
498/* harmony import */ var _cellNavigationService__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(164);
499/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return _cellNavigationService__WEBPACK_IMPORTED_MODULE_99__["CellNavigationService"]; });
500
501/* harmony import */ var _alignedGridsService__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(177);
502/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return _alignedGridsService__WEBPACK_IMPORTED_MODULE_100__["AlignedGridsService"]; });
503
504/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(16);
505/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return _constants_constants__WEBPACK_IMPORTED_MODULE_101__["Constants"]; });
506
507/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(60);
508/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return _constants_keyCode__WEBPACK_IMPORTED_MODULE_102__["KeyCode"]; });
509
510/* harmony import */ var _constants_keyName__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(132);
511/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyName", function() { return _constants_keyName__WEBPACK_IMPORTED_MODULE_103__["KeyName"]; });
512
513/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(98);
514/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _grid__WEBPACK_IMPORTED_MODULE_104__["Grid"]; });
515
516/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return _grid__WEBPACK_IMPORTED_MODULE_104__["GridCoreCreator"]; });
517
518/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(148);
519/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return _gridApi__WEBPACK_IMPORTED_MODULE_105__["GridApi"]; });
520
521/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(24);
522/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _eventKeys__WEBPACK_IMPORTED_MODULE_106__["Events"]; });
523
524/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(154);
525/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusController", function() { return _focusController__WEBPACK_IMPORTED_MODULE_107__["FocusController"]; });
526
527/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(229);
528/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultGroupComparator", function() { return _functions__WEBPACK_IMPORTED_MODULE_108__["defaultGroupComparator"]; });
529
530/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(99);
531/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridOptionsWrapper", function() { return _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_109__["GridOptionsWrapper"]; });
532
533/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(11);
534/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return _eventService__WEBPACK_IMPORTED_MODULE_110__["EventService"]; });
535
536/* harmony import */ var _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(185);
537/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_111__["SelectableService"]; });
538
539/* harmony import */ var _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(217);
540/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_112__["RowNodeSorter"]; });
541
542/* harmony import */ var _controllersService__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(218);
543/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ControllersService", function() { return _controllersService__WEBPACK_IMPORTED_MODULE_113__["ControllersService"]; });
544
545/* harmony import */ var _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(158);
546/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_114__["GridComp"]; });
547
548/* harmony import */ var _gridComp_gridCompController__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(159);
549/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCompController", function() { return _gridComp_gridCompController__WEBPACK_IMPORTED_MODULE_115__["GridCompController"]; });
550
551/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(155);
552/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _logger__WEBPACK_IMPORTED_MODULE_116__["Logger"]; });
553
554/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return _logger__WEBPACK_IMPORTED_MODULE_116__["LoggerFactory"]; });
555
556/* harmony import */ var _selectionController__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(101);
557/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionController", function() { return _selectionController__WEBPACK_IMPORTED_MODULE_117__["SelectionController"]; });
558
559/* harmony import */ var _sortController__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(162);
560/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return _sortController__WEBPACK_IMPORTED_MODULE_118__["SortController"]; });
561
562/* harmony import */ var _templateService__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(152);
563/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _templateService__WEBPACK_IMPORTED_MODULE_119__["TemplateService"]; });
564
565/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(42);
566/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["Color"]; });
567
568/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["stringToArray"]; });
569
570/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["_"]; });
571
572/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["NumberSequence"]; });
573
574/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["AgPromiseStatus"]; });
575
576/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["AgPromise"]; });
577
578/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _utils__WEBPACK_IMPORTED_MODULE_120__["Timer"]; });
579
580/* harmony import */ var _valueService_valueService__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(135);
581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return _valueService_valueService__WEBPACK_IMPORTED_MODULE_121__["ValueService"]; });
582
583/* harmony import */ var _valueService_valueCache__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(175);
584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return _valueService_valueCache__WEBPACK_IMPORTED_MODULE_122__["ValueCache"]; });
585
586/* harmony import */ var _valueService_expressionService__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(151);
587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return _valueService_expressionService__WEBPACK_IMPORTED_MODULE_123__["ExpressionService"]; });
588
589/* harmony import */ var _entities_cellPosition__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(207);
590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return _entities_cellPosition__WEBPACK_IMPORTED_MODULE_124__["CellPositionUtils"]; });
591
592/* harmony import */ var _entities_rowPosition__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(206);
593/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return _entities_rowPosition__WEBPACK_IMPORTED_MODULE_125__["RowPositionUtils"]; });
594
595/* harmony import */ var _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(212);
596/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_126__["HeaderPositionUtils"]; });
597
598/* harmony import */ var _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(131);
599/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_127__["HeaderNavigationService"]; });
600
601/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_127__["HeaderNavigationDirection"]; });
602
603/* harmony import */ var _entities_gridOptions__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(230);
604/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideStoreType", function() { return _entities_gridOptions__WEBPACK_IMPORTED_MODULE_128__["ServerSideStoreType"]; });
605
606/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(36);
607/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return _propertyKeys__WEBPACK_IMPORTED_MODULE_129__["PropertyKeys"]; });
608
609/* harmony import */ var _columnController_columnApi__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(103);
610/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return _columnController_columnApi__WEBPACK_IMPORTED_MODULE_130__["ColumnApi"]; });
611
612/* harmony import */ var _components_framework_frameworkComponentWrapper__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(231);
613/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return _components_framework_frameworkComponentWrapper__WEBPACK_IMPORTED_MODULE_131__["BaseComponentWrapper"]; });
614
615/* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(181);
616/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _environment__WEBPACK_IMPORTED_MODULE_132__["Environment"]; });
617
618/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(58);
619/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_133__["TooltipFeature"]; });
620
621/* harmony import */ var _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(232);
622/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChartType", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_134__["ChartType"]; });
623
624/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LegendPosition", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_134__["LegendPosition"]; });
625
626/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(17);
627/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return _modules_moduleNames__WEBPACK_IMPORTED_MODULE_135__["ModuleNames"]; });
628
629/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(18);
630/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_136__["ModuleRegistry"]; });
631
632/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(23);
633/* empty/unused harmony star reexport *//**
634 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
635 * @version v25.3.0
636 * @link http://www.ag-grid.com/
637 * @license MIT
638 */
639var globalObj = typeof global === 'undefined' ? {} : global;
640globalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;
641globalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;
642globalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;
643globalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;
644globalObj.Node = typeof Node === 'undefined' ? {} : Node;
645globalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;
646// columnController
647
648
649
650
651
652
653// headless
654
655
656// components
657
658
659
660
661
662
663// context
664
665
666
667// excel
668
669// dragAndDrop
670
671
672// entities
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687// gridPanel
688
689
690
691
692// headerRendering
693
694
695
696
697
698
699
700
701
702// layout
703
704// misc
705
706
707
708
709
710
711
712
713
714
715
716
717// features
718
719// rendering
720
721
722
723
724
725
726// row models
727
728
729
730
731
732
733
734//styling
735
736
737// widgets
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759// range
760
761// root
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798// charts
799
800
801
802// events
803
804
805/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)))
806
807/***/ }),
808/* 4 */
809/***/ (function(module, exports) {
810
811var g;
812
813// This works in non-strict mode
814g = (function() {
815 return this;
816})();
817
818try {
819 // This works if eval is allowed (see CSP)
820 g = g || new Function("return this")();
821} catch (e) {
822 // This works if the window reference is available
823 if (typeof window === "object") g = window;
824}
825
826// g can still be undefined, but nothing to do about it...
827// We return undefined, instead of nothing here, so it's
828// easier to handle this case. if(!global) { ...}
829
830module.exports = g;
831
832
833/***/ }),
834/* 5 */
835/***/ (function(module, __webpack_exports__, __webpack_require__) {
836
837"use strict";
838__webpack_require__.r(__webpack_exports__);
839/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return ColumnFactory; });
840/* harmony import */ var _columnKeyCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
841/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
842/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);
843/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
844/* harmony import */ var _entities_defaultColumnTypes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
845/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);
846/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
847/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
848/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
849/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(14);
850/**
851 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
852 * @version v25.3.0
853 * @link http://www.ag-grid.com/
854 * @license MIT
855 */
856var __extends = (undefined && undefined.__extends) || (function () {
857 var extendStatics = function (d, b) {
858 extendStatics = Object.setPrototypeOf ||
859 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
860 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
861 return extendStatics(d, b);
862 };
863 return function (d, b) {
864 extendStatics(d, b);
865 function __() { this.constructor = d; }
866 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
867 };
868})();
869var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
870 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
871 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
872 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;
873 return c > 3 && r && Object.defineProperty(target, key, r), r;
874};
875var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
876 return function (target, key) { decorator(target, key, paramIndex); }
877};
878
879
880
881
882
883
884
885
886
887
888// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups
889var ColumnFactory = /** @class */ (function (_super) {
890 __extends(ColumnFactory, _super);
891 function ColumnFactory() {
892 return _super !== null && _super.apply(this, arguments) || this;
893 }
894 ColumnFactory.prototype.setBeans = function (loggerFactory) {
895 this.logger = loggerFactory.create('ColumnFactory');
896 };
897 ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {
898 // column key creator dishes out unique column id's in a deterministic way,
899 // so if we have two grids (that could be master/slave) with same column definitions,
900 // then this ensures the two grids use identical id's.
901 var columnKeyCreator = new _columnKeyCreator__WEBPACK_IMPORTED_MODULE_0__["ColumnKeyCreator"]();
902 var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;
903 columnKeyCreator.addExistingKeys(existingColKeys);
904 // create am unbalanced tree that maps the provided definitions
905 var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);
906 var treeDept = this.findMaxDept(unbalancedTree, 0);
907 this.logger.log('Number of levels for grouped columns is ' + treeDept);
908 var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);
909 var deptFirstCallback = function (child, parent) {
910 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
911 child.setupExpandable();
912 }
913 // we set the original parents at the end, rather than when we go along, as balancing the tree
914 // adds extra levels into the tree. so we can only set parents when balancing is done.
915 child.setOriginalParent(parent);
916 };
917 this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);
918 return {
919 columnTree: columnTree,
920 treeDept: treeDept
921 };
922 };
923 ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {
924 var existingCols = [];
925 var existingGroups = [];
926 var existingColKeys = [];
927 if (existingTree) {
928 this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {
929 if (item instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
930 var group = item;
931 existingGroups.push(group);
932 }
933 else {
934 var col = item;
935 existingColKeys.push(col.getId());
936 existingCols.push(col);
937 }
938 });
939 }
940 return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };
941 };
942 ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {
943 var _this = this;
944 var autoColBalancedTree = [];
945 autoGroupCols.forEach(function (col) {
946 var fakeTreeItem = _this.createAutoGroupTreeItem(gridBalancedTree, col);
947 autoColBalancedTree.push(fakeTreeItem);
948 });
949 return autoColBalancedTree;
950 };
951 ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {
952 var dept = this.findDepth(balancedColumnTree);
953 // at the end, this will be the top of the tree item.
954 var nextChild = column;
955 for (var i = dept - 1; i >= 0; i--) {
956 var autoGroup = new _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"](null, "FAKE_PATH_" + column.getId() + "}_" + i, true, i);
957 this.context.createBean(autoGroup);
958 autoGroup.setChildren([nextChild]);
959 nextChild.setOriginalParent(autoGroup);
960 nextChild = autoGroup;
961 }
962 // at this point, the nextChild is the top most item in the tree
963 return nextChild;
964 };
965 ColumnFactory.prototype.findDepth = function (balancedColumnTree) {
966 var dept = 0;
967 var pointer = balancedColumnTree;
968 while (pointer && pointer[0] && pointer[0] instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
969 dept++;
970 pointer = pointer[0].getChildren();
971 }
972 return dept;
973 };
974 ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {
975 var result = [];
976 // go through each child, for groups, recurse a level deeper,
977 // for columns we need to pad
978 for (var i = 0; i < unbalancedTree.length; i++) {
979 var child = unbalancedTree[i];
980 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
981 // child is a group, all we do is go to the next level of recursion
982 var originalGroup = child;
983 var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);
984 originalGroup.setChildren(newChildren);
985 result.push(originalGroup);
986 }
987 else {
988 // child is a column - so here we add in the padded column groups if needed
989 var firstPaddedGroup = void 0;
990 var currentPaddedGroup = void 0;
991 // this for loop will NOT run any loops if no padded column groups are needed
992 for (var j = columnDept - 1; j >= currentDept; j--) {
993 var newColId = columnKeyCreator.getUniqueKey(null, null);
994 var colGroupDefMerged = this.createMergedColGroupDef(null);
995 var paddedGroup = new _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"](colGroupDefMerged, newColId, true, currentDept);
996 this.context.createBean(paddedGroup);
997 if (currentPaddedGroup) {
998 currentPaddedGroup.setChildren([paddedGroup]);
999 }
1000 currentPaddedGroup = paddedGroup;
1001 if (!firstPaddedGroup) {
1002 firstPaddedGroup = currentPaddedGroup;
1003 }
1004 }
1005 // likewise this if statement will not run if no padded groups
1006 if (firstPaddedGroup && currentPaddedGroup) {
1007 result.push(firstPaddedGroup);
1008 var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]; });
1009 if (hasGroups) {
1010 currentPaddedGroup.setChildren([child]);
1011 continue;
1012 }
1013 else {
1014 currentPaddedGroup.setChildren(unbalancedTree);
1015 break;
1016 }
1017 }
1018 result.push(child);
1019 }
1020 }
1021 return result;
1022 };
1023 ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {
1024 var maxDeptThisLevel = dept;
1025 for (var i = 0; i < treeChildren.length; i++) {
1026 var abstractColumn = treeChildren[i];
1027 if (abstractColumn instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
1028 var originalGroup = abstractColumn;
1029 var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);
1030 if (maxDeptThisLevel < newDept) {
1031 maxDeptThisLevel = newDept;
1032 }
1033 }
1034 }
1035 return maxDeptThisLevel;
1036 };
1037 ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {
1038 var _this = this;
1039 var result = [];
1040 if (!defs) {
1041 return result;
1042 }
1043 defs.forEach(function (def) {
1044 var newGroupOrColumn;
1045 if (_this.isColumnGroup(def)) {
1046 newGroupOrColumn = _this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);
1047 }
1048 else {
1049 newGroupOrColumn = _this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);
1050 }
1051 result.push(newGroupOrColumn);
1052 });
1053 return result;
1054 };
1055 ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {
1056 var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);
1057 var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);
1058 var originalGroup = new _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"](colGroupDefMerged, groupId, false, level);
1059 this.context.createBean(originalGroup);
1060 var existingGroup = this.findExistingGroup(colGroupDef, existingGroups);
1061 if (existingGroup && existingGroup.isExpanded()) {
1062 originalGroup.setExpanded(true);
1063 }
1064 var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);
1065 originalGroup.setChildren(children);
1066 return originalGroup;
1067 };
1068 ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {
1069 var colGroupDefMerged = {};
1070 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])(colGroupDefMerged, this.gridOptionsWrapper.getDefaultColGroupDef());
1071 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])(colGroupDefMerged, colGroupDef);
1072 this.checkForDeprecatedItems(colGroupDefMerged);
1073 return colGroupDefMerged;
1074 };
1075 ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {
1076 var colDefMerged = this.mergeColDefs(colDef);
1077 this.checkForDeprecatedItems(colDefMerged);
1078 // see if column already exists
1079 var column = this.findExistingColumn(colDef, existingColsCopy);
1080 if (!column) {
1081 // no existing column, need to create one
1082 var colId = columnKeyCreator.getUniqueKey(colDefMerged.colId, colDefMerged.field);
1083 column = new _entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"](colDefMerged, colDef, colId, primaryColumns);
1084 this.context.createBean(column);
1085 }
1086 else {
1087 column.setColDef(colDefMerged, colDef);
1088 this.applyColumnState(column, colDefMerged);
1089 }
1090 return column;
1091 };
1092 ColumnFactory.prototype.applyColumnState = function (column, colDef) {
1093 // flex
1094 var flex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToNumber"])(colDef.flex);
1095 if (flex !== undefined) {
1096 column.setFlex(flex);
1097 }
1098 // width - we only set width if column is not flexing
1099 var noFlexThisCol = column.getFlex() <= 0;
1100 if (noFlexThisCol) {
1101 // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)
1102 var width = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToNumber"])(colDef.width);
1103 if (width != null) {
1104 column.setActualWidth(width);
1105 }
1106 else {
1107 // otherwise set the width again, in case min or max width has changed,
1108 // and width needs to be adjusted.
1109 var widthBeforeUpdate = column.getActualWidth();
1110 column.setActualWidth(widthBeforeUpdate);
1111 }
1112 }
1113 // sort - anything but undefined will set sort, thus null or empty string will clear the sort
1114 if (colDef.sort !== undefined) {
1115 if (colDef.sort == _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].SORT_ASC || colDef.sort == _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].SORT_DESC) {
1116 column.setSort(colDef.sort);
1117 }
1118 else {
1119 column.setSort(undefined);
1120 }
1121 }
1122 // sorted at - anything but undefined, thus null will clear the sortIndex
1123 var sortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToNumber"])(colDef.sortIndex);
1124 if (sortIndex !== undefined) {
1125 column.setSortIndex(sortIndex);
1126 }
1127 // hide - anything but undefined, thus null will clear the hide
1128 var hide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["attrToBoolean"])(colDef.hide);
1129 if (hide !== undefined) {
1130 column.setVisible(!hide);
1131 }
1132 // pinned - anything but undefined, thus null or empty string will remove pinned
1133 if (colDef.pinned !== undefined) {
1134 column.setPinned(colDef.pinned);
1135 }
1136 };
1137 ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {
1138 var res = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["find"])(existingColsCopy, function (existingCol) {
1139 var existingColDef = existingCol.getUserProvidedColDef();
1140 if (!existingColDef) {
1141 return false;
1142 }
1143 var newHasId = newColDef.colId != null;
1144 var newHasField = newColDef.field != null;
1145 if (newHasId) {
1146 return existingCol.getId() === newColDef.colId;
1147 }
1148 if (newHasField) {
1149 return existingColDef.field === newColDef.field;
1150 }
1151 // if no id or field present, then try object equivalence.
1152 if (existingColDef === newColDef) {
1153 return true;
1154 }
1155 return false;
1156 });
1157 // make sure we remove, so if user provided duplicate id, then we don't have more than
1158 // one column instance for colDef with common id
1159 if (existingColsCopy && res) {
1160 Object(_utils_array__WEBPACK_IMPORTED_MODULE_9__["removeFromArray"])(existingColsCopy, res);
1161 }
1162 return res;
1163 };
1164 ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {
1165 var res = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["find"])(existingGroups, function (existingGroup) {
1166 var existingDef = existingGroup.getColGroupDef();
1167 if (!existingDef) {
1168 return false;
1169 }
1170 var newHasId = newGroupDef.groupId != null;
1171 if (newHasId) {
1172 return existingGroup.getId() === newGroupDef.groupId;
1173 }
1174 return false;
1175 });
1176 // make sure we remove, so if user provided duplicate id, then we don't have more than
1177 // one column instance for colDef with common id
1178 if (res) {
1179 Object(_utils_array__WEBPACK_IMPORTED_MODULE_9__["removeFromArray"])(existingGroups, res);
1180 }
1181 return res;
1182 };
1183 ColumnFactory.prototype.mergeColDefs = function (colDef) {
1184 // start with empty merged definition
1185 var colDefMerged = {};
1186 // merge properties from default column definitions
1187 var defaultColDef = this.gridOptionsWrapper.getDefaultColDef();
1188 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(colDefMerged, defaultColDef, true, true);
1189 // merge properties from column type properties
1190 var columnType = colDef.type;
1191 if (!columnType) {
1192 columnType = defaultColDef && defaultColDef.type;
1193 }
1194 // if type of both colDef and defaultColDef, then colDef gets preference
1195 if (columnType) {
1196 this.assignColumnTypes(columnType, colDefMerged);
1197 }
1198 // merge properties from column definitions
1199 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(colDefMerged, colDef, true, true);
1200 return colDefMerged;
1201 };
1202 ColumnFactory.prototype.assignColumnTypes = function (type, colDefMerged) {
1203 var typeKeys = [];
1204 if (type instanceof Array) {
1205 var invalidArray = type.some(function (a) { return typeof a !== 'string'; });
1206 if (invalidArray) {
1207 console.warn("ag-grid: if colDef.type is supplied an array it should be of type 'string[]'");
1208 }
1209 else {
1210 typeKeys = type;
1211 }
1212 }
1213 else if (typeof type === 'string') {
1214 typeKeys = type.split(',');
1215 }
1216 else {
1217 console.warn("ag-grid: colDef.type should be of type 'string' | 'string[]'");
1218 return;
1219 }
1220 // merge user defined with default column types
1221 var allColumnTypes = Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])({}, _entities_defaultColumnTypes__WEBPACK_IMPORTED_MODULE_4__["DefaultColumnTypes"]);
1222 var userTypes = this.gridOptionsWrapper.getColumnTypes() || {};
1223 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["iterateObject"])(userTypes, function (key, value) {
1224 if (key in allColumnTypes) {
1225 console.warn("AG Grid: the column type '" + key + "' is a default column type and cannot be overridden.");
1226 }
1227 else {
1228 allColumnTypes[key] = value;
1229 }
1230 });
1231 typeKeys.forEach(function (t) {
1232 var typeColDef = allColumnTypes[t.trim()];
1233 if (typeColDef) {
1234 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(colDefMerged, typeColDef, true, true);
1235 }
1236 else {
1237 console.warn("ag-grid: colDef.type '" + t + "' does not correspond to defined gridOptions.columnTypes");
1238 }
1239 });
1240 };
1241 ColumnFactory.prototype.checkForDeprecatedItems = function (colDef) {
1242 if (colDef) {
1243 var colDefNoType = colDef; // take out the type, so we can access attributes not defined in the type
1244 if (colDefNoType.group !== undefined) {
1245 console.warn('ag-grid: colDef.group is invalid, please check documentation on how to do grouping as it changed in version 3');
1246 }
1247 if (colDefNoType.headerGroup !== undefined) {
1248 console.warn('ag-grid: colDef.headerGroup is invalid, please check documentation on how to do grouping as it changed in version 3');
1249 }
1250 if (colDefNoType.headerGroupShow !== undefined) {
1251 console.warn('ag-grid: colDef.headerGroupShow is invalid, should be columnGroupShow, please check documentation on how to do grouping as it changed in version 3');
1252 }
1253 if (colDefNoType.suppressRowGroup !== undefined) {
1254 console.warn('ag-grid: colDef.suppressRowGroup is deprecated, please use colDef.type instead');
1255 }
1256 if (colDefNoType.suppressAggregation !== undefined) {
1257 console.warn('ag-grid: colDef.suppressAggregation is deprecated, please use colDef.type instead');
1258 }
1259 if (colDefNoType.suppressRowGroup || colDefNoType.suppressAggregation) {
1260 console.warn('ag-grid: colDef.suppressAggregation and colDef.suppressRowGroup are deprecated, use allowRowGroup, allowPivot and allowValue instead');
1261 }
1262 if (colDefNoType.displayName) {
1263 console.warn("ag-grid: Found displayName " + colDefNoType.displayName + ", please use headerName instead, displayName is deprecated.");
1264 colDefNoType.headerName = colDefNoType.displayName;
1265 }
1266 }
1267 };
1268 // if object has children, we assume it's a group
1269 ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {
1270 return abstractColDef.children !== undefined;
1271 };
1272 __decorate([
1273 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnUtils')
1274 ], ColumnFactory.prototype, "columnUtils", void 0);
1275 __decorate([
1276 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('loggerFactory'))
1277 ], ColumnFactory.prototype, "setBeans", null);
1278 ColumnFactory = __decorate([
1279 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Bean"])('columnFactory')
1280 ], ColumnFactory);
1281 return ColumnFactory;
1282}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
1283
1284
1285
1286/***/ }),
1287/* 6 */
1288/***/ (function(module, __webpack_exports__, __webpack_require__) {
1289
1290"use strict";
1291__webpack_require__.r(__webpack_exports__);
1292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return ColumnKeyCreator; });
1293/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
1294/**
1295 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1296 * @version v25.3.0
1297 * @link http://www.ag-grid.com/
1298 * @license MIT
1299 */
1300// class returns a unique id to use for the column. it checks the existing columns, and if the requested
1301// id is already taken, it will start appending numbers until it gets a unique id.
1302// eg, if the col field is 'name', it will try ids: {name, name_1, name_2...}
1303// if no field or id provided in the col, it will try the ids of natural numbers
1304
1305var ColumnKeyCreator = /** @class */ (function () {
1306 function ColumnKeyCreator() {
1307 this.existingKeys = {};
1308 }
1309 ColumnKeyCreator.prototype.addExistingKeys = function (keys) {
1310 for (var i = 0; i < keys.length; i++) {
1311 this.existingKeys[keys[i]] = true;
1312 }
1313 };
1314 ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {
1315 // in case user passed in number for colId, convert to string
1316 colId = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["toStringOrNull"])(colId);
1317 var count = 0;
1318 while (true) {
1319 var idToTry = void 0;
1320 if (colId) {
1321 idToTry = colId;
1322 if (count !== 0) {
1323 idToTry += '_' + count;
1324 }
1325 }
1326 else if (colField) {
1327 idToTry = colField;
1328 if (count !== 0) {
1329 idToTry += '_' + count;
1330 }
1331 }
1332 else {
1333 idToTry = '' + count;
1334 }
1335 if (!this.existingKeys[idToTry]) {
1336 this.existingKeys[idToTry] = true;
1337 return idToTry;
1338 }
1339 count++;
1340 }
1341 };
1342 return ColumnKeyCreator;
1343}());
1344
1345
1346
1347/***/ }),
1348/* 7 */
1349/***/ (function(module, __webpack_exports__, __webpack_require__) {
1350
1351"use strict";
1352__webpack_require__.r(__webpack_exports__);
1353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeNull", function() { return makeNull; });
1354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exists", function() { return exists; });
1355/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missing", function() { return missing; });
1356/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingOrEmpty", function() { return missingOrEmpty; });
1357/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toStringOrNull", function() { return toStringOrNull; });
1358/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToNumber", function() { return attrToNumber; });
1359/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToBoolean", function() { return attrToBoolean; });
1360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToString", function() { return attrToString; });
1361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "referenceCompare", function() { return referenceCompare; });
1362/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsonEquals", function() { return jsonEquals; });
1363/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultComparator", function() { return defaultComparator; });
1364/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; });
1365/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "values", function() { return values; });
1366/**
1367 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1368 * @version v25.3.0
1369 * @link http://www.ag-grid.com/
1370 * @license MIT
1371 */
1372/**
1373 * If value is undefined, null or blank, returns null, otherwise returns the value
1374 * @param {T} value
1375 * @returns {T | null}
1376 */
1377function makeNull(value) {
1378 if (value == null || value === '') {
1379 return null;
1380 }
1381 return value;
1382}
1383function exists(value, allowEmptyString) {
1384 if (allowEmptyString === void 0) { allowEmptyString = false; }
1385 return value != null && (value !== '' || allowEmptyString);
1386}
1387function missing(value) {
1388 return !exists(value);
1389}
1390function missingOrEmpty(value) {
1391 return value == null || value.length === 0;
1392}
1393function toStringOrNull(value) {
1394 return value != null && typeof value.toString === 'function' ? value.toString() : null;
1395}
1396// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1397function attrToNumber(value) {
1398 if (value === undefined) {
1399 // undefined or empty means ignore the value
1400 return;
1401 }
1402 if (value === null || value === '') {
1403 // null or blank means clear
1404 return null;
1405 }
1406 if (typeof value === 'number') {
1407 return isNaN(value) ? undefined : value;
1408 }
1409 var valueParsed = parseInt(value, 10);
1410 return isNaN(valueParsed) ? undefined : valueParsed;
1411}
1412// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1413function attrToBoolean(value) {
1414 if (value === undefined) {
1415 // undefined or empty means ignore the value
1416 return;
1417 }
1418 if (value === null || value === '') {
1419 // null means clear
1420 return false;
1421 }
1422 if (typeof value === 'boolean') {
1423 // if simple boolean, return the boolean
1424 return value;
1425 }
1426 // if equal to the string 'true' (ignoring case) then return true
1427 return (/true/i).test(value);
1428}
1429// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1430function attrToString(value) {
1431 if (value == null || value === '') {
1432 return;
1433 }
1434 return value;
1435}
1436/** @deprecated */
1437function referenceCompare(left, right) {
1438 if (left == null && right == null) {
1439 return true;
1440 }
1441 if (left == null && right != null) {
1442 return false;
1443 }
1444 if (left != null && right == null) {
1445 return false;
1446 }
1447 return left === right;
1448}
1449function jsonEquals(val1, val2) {
1450 var val1Json = val1 ? JSON.stringify(val1) : null;
1451 var val2Json = val2 ? JSON.stringify(val2) : null;
1452 return val1Json === val2Json;
1453}
1454function defaultComparator(valueA, valueB, accentedCompare) {
1455 if (accentedCompare === void 0) { accentedCompare = false; }
1456 var valueAMissing = valueA == null;
1457 var valueBMissing = valueB == null;
1458 // this is for aggregations sum and avg, where the result can be a number that is wrapped.
1459 // if we didn't do this, then the toString() value would be used, which would result in
1460 // the strings getting used instead of the numbers.
1461 if (valueA && valueA.toNumber) {
1462 valueA = valueA.toNumber();
1463 }
1464 if (valueB && valueB.toNumber) {
1465 valueB = valueB.toNumber();
1466 }
1467 if (valueAMissing && valueBMissing) {
1468 return 0;
1469 }
1470 if (valueAMissing) {
1471 return -1;
1472 }
1473 if (valueBMissing) {
1474 return 1;
1475 }
1476 function doQuickCompare(a, b) {
1477 return (a > b ? 1 : (a < b ? -1 : 0));
1478 }
1479 if (typeof valueA !== 'string') {
1480 return doQuickCompare(valueA, valueB);
1481 }
1482 if (!accentedCompare) {
1483 return doQuickCompare(valueA, valueB);
1484 }
1485 try {
1486 // using local compare also allows chinese comparisons
1487 return valueA.localeCompare(valueB);
1488 }
1489 catch (e) {
1490 // if something wrong with localeCompare, eg not supported
1491 // by browser, then just continue with the quick one
1492 return doQuickCompare(valueA, valueB);
1493 }
1494}
1495function find(collection, predicate, value) {
1496 if (collection === null || collection === undefined) {
1497 return null;
1498 }
1499 if (!Array.isArray(collection)) {
1500 var objToArray = values(collection);
1501 return find(objToArray, predicate, value);
1502 }
1503 var collectionAsArray = collection;
1504 var firstMatchingItem = null;
1505 for (var i = 0; i < collectionAsArray.length; i++) {
1506 var item = collectionAsArray[i];
1507 if (typeof predicate === 'string') {
1508 if (item[predicate] === value) {
1509 firstMatchingItem = item;
1510 break;
1511 }
1512 }
1513 else {
1514 var callback = predicate;
1515 if (callback(item)) {
1516 firstMatchingItem = item;
1517 break;
1518 }
1519 }
1520 }
1521 return firstMatchingItem;
1522}
1523function values(object) {
1524 if (object instanceof Set || object instanceof Map) {
1525 var arr_1 = [];
1526 object.forEach(function (value) { return arr_1.push(value); });
1527 return arr_1;
1528 }
1529 return Object.keys(object).map(function (key) { return object[key]; });
1530}
1531
1532
1533/***/ }),
1534/* 8 */
1535/***/ (function(module, __webpack_exports__, __webpack_require__) {
1536
1537"use strict";
1538__webpack_require__.r(__webpack_exports__);
1539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OriginalColumnGroup", function() { return OriginalColumnGroup; });
1540/* harmony import */ var _columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
1541/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
1542/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
1543/**
1544 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1545 * @version v25.3.0
1546 * @link http://www.ag-grid.com/
1547 * @license MIT
1548 */
1549
1550
1551
1552var OriginalColumnGroup = /** @class */ (function () {
1553 function OriginalColumnGroup(colGroupDef, groupId, padding, level) {
1554 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_2__["EventService"]();
1555 this.expandable = false;
1556 this.colGroupDef = colGroupDef;
1557 this.groupId = groupId;
1558 this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;
1559 this.padding = padding;
1560 this.level = level;
1561 }
1562 OriginalColumnGroup.prototype.setOriginalParent = function (originalParent) {
1563 this.originalParent = originalParent;
1564 };
1565 OriginalColumnGroup.prototype.getOriginalParent = function () {
1566 return this.originalParent;
1567 };
1568 OriginalColumnGroup.prototype.getLevel = function () {
1569 return this.level;
1570 };
1571 OriginalColumnGroup.prototype.isVisible = function () {
1572 // return true if at least one child is visible
1573 if (this.children) {
1574 return this.children.some(function (child) { return child.isVisible(); });
1575 }
1576 return false;
1577 };
1578 OriginalColumnGroup.prototype.isPadding = function () {
1579 return this.padding;
1580 };
1581 OriginalColumnGroup.prototype.setExpanded = function (expanded) {
1582 this.expanded = expanded === undefined ? false : expanded;
1583 var event = {
1584 type: OriginalColumnGroup.EVENT_EXPANDED_CHANGED
1585 };
1586 this.localEventService.dispatchEvent(event);
1587 };
1588 OriginalColumnGroup.prototype.isExpandable = function () {
1589 return this.expandable;
1590 };
1591 OriginalColumnGroup.prototype.isExpanded = function () {
1592 return this.expanded;
1593 };
1594 OriginalColumnGroup.prototype.getGroupId = function () {
1595 return this.groupId;
1596 };
1597 OriginalColumnGroup.prototype.getId = function () {
1598 return this.getGroupId();
1599 };
1600 OriginalColumnGroup.prototype.setChildren = function (children) {
1601 this.children = children;
1602 };
1603 OriginalColumnGroup.prototype.getChildren = function () {
1604 return this.children;
1605 };
1606 OriginalColumnGroup.prototype.getColGroupDef = function () {
1607 return this.colGroupDef;
1608 };
1609 OriginalColumnGroup.prototype.getLeafColumns = function () {
1610 var result = [];
1611 this.addLeafColumns(result);
1612 return result;
1613 };
1614 OriginalColumnGroup.prototype.addLeafColumns = function (leafColumns) {
1615 if (!this.children) {
1616 return;
1617 }
1618 this.children.forEach(function (child) {
1619 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
1620 leafColumns.push(child);
1621 }
1622 else if (child instanceof OriginalColumnGroup) {
1623 child.addLeafColumns(leafColumns);
1624 }
1625 });
1626 };
1627 OriginalColumnGroup.prototype.getColumnGroupShow = function () {
1628 var colGroupDef = this.colGroupDef;
1629 if (!colGroupDef) {
1630 return;
1631 }
1632 return colGroupDef.columnGroupShow;
1633 };
1634 // need to check that this group has at least one col showing when both expanded and contracted.
1635 // if not, then we don't allow expanding and contracting on this group
1636 OriginalColumnGroup.prototype.setupExpandable = function () {
1637 var _this = this;
1638 this.setExpandable();
1639 // note - we should be removing this event listener
1640 this.getLeafColumns().forEach(function (col) { return col.addEventListener(_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_VISIBLE_CHANGED, _this.onColumnVisibilityChanged.bind(_this)); });
1641 };
1642 OriginalColumnGroup.prototype.setExpandable = function () {
1643 if (this.isPadding()) {
1644 return;
1645 }
1646 // want to make sure the group doesn't disappear when it's open
1647 var atLeastOneShowingWhenOpen = false;
1648 // want to make sure the group doesn't disappear when it's closed
1649 var atLeastOneShowingWhenClosed = false;
1650 // want to make sure the group has something to show / hide
1651 var atLeastOneChangeable = false;
1652 var children = this.findChildrenRemovingPadding();
1653 for (var i = 0, j = children.length; i < j; i++) {
1654 var abstractColumn = children[i];
1655 if (!abstractColumn.isVisible()) {
1656 continue;
1657 }
1658 // if the abstractColumn is a grid generated group, there will be no colDef
1659 var headerGroupShow = abstractColumn.getColumnGroupShow();
1660 if (headerGroupShow === _columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].HEADER_GROUP_SHOW_OPEN) {
1661 atLeastOneShowingWhenOpen = true;
1662 atLeastOneChangeable = true;
1663 }
1664 else if (headerGroupShow === _columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].HEADER_GROUP_SHOW_CLOSED) {
1665 atLeastOneShowingWhenClosed = true;
1666 atLeastOneChangeable = true;
1667 }
1668 else {
1669 atLeastOneShowingWhenOpen = true;
1670 atLeastOneShowingWhenClosed = true;
1671 }
1672 }
1673 var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;
1674 if (this.expandable !== expandable) {
1675 this.expandable = expandable;
1676 var event_1 = {
1677 type: OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED
1678 };
1679 this.localEventService.dispatchEvent(event_1);
1680 }
1681 };
1682 OriginalColumnGroup.prototype.findChildrenRemovingPadding = function () {
1683 var res = [];
1684 var process = function (items) {
1685 items.forEach(function (item) {
1686 // if padding, we add this children instead of the padding
1687 var skipBecausePadding = item instanceof OriginalColumnGroup && item.isPadding();
1688 if (skipBecausePadding) {
1689 process(item.children);
1690 }
1691 else {
1692 res.push(item);
1693 }
1694 });
1695 };
1696 process(this.children);
1697 return res;
1698 };
1699 OriginalColumnGroup.prototype.onColumnVisibilityChanged = function () {
1700 this.setExpandable();
1701 };
1702 OriginalColumnGroup.prototype.addEventListener = function (eventType, listener) {
1703 this.localEventService.addEventListener(eventType, listener);
1704 };
1705 OriginalColumnGroup.prototype.removeEventListener = function (eventType, listener) {
1706 this.localEventService.removeEventListener(eventType, listener);
1707 };
1708 OriginalColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';
1709 OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';
1710 return OriginalColumnGroup;
1711}());
1712
1713
1714
1715/***/ }),
1716/* 9 */
1717/***/ (function(module, __webpack_exports__, __webpack_require__) {
1718
1719"use strict";
1720__webpack_require__.r(__webpack_exports__);
1721/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return ColumnGroup; });
1722/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
1723/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
1724/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
1725/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
1726/**
1727 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
1728 * @version v25.3.0
1729 * @link http://www.ag-grid.com/
1730 * @license MIT
1731 */
1732var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1733 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1734 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1735 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;
1736 return c > 3 && r && Object.defineProperty(target, key, r), r;
1737};
1738
1739
1740
1741
1742var ColumnGroup = /** @class */ (function () {
1743 function ColumnGroup(originalColumnGroup, groupId, instanceId, pinned) {
1744 // depends on the open/closed state of the group, only displaying columns are stored here
1745 this.displayedChildren = [];
1746 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_1__["EventService"]();
1747 this.groupId = groupId;
1748 this.instanceId = instanceId;
1749 this.originalColumnGroup = originalColumnGroup;
1750 this.pinned = pinned;
1751 }
1752 // this is static, a it is used outside of this class
1753 ColumnGroup.createUniqueId = function (groupId, instanceId) {
1754 return groupId + '_' + instanceId;
1755 };
1756 // as the user is adding and removing columns, the groups are recalculated.
1757 // this reset clears out all children, ready for children to be added again
1758 ColumnGroup.prototype.reset = function () {
1759 this.parent = null;
1760 this.children = null;
1761 this.displayedChildren = null;
1762 };
1763 ColumnGroup.prototype.getParent = function () {
1764 return this.parent;
1765 };
1766 ColumnGroup.prototype.setParent = function (parent) {
1767 this.parent = parent;
1768 };
1769 ColumnGroup.prototype.getUniqueId = function () {
1770 return ColumnGroup.createUniqueId(this.groupId, this.instanceId);
1771 };
1772 ColumnGroup.prototype.isEmptyGroup = function () {
1773 return this.displayedChildren.length === 0;
1774 };
1775 ColumnGroup.prototype.isMoving = function () {
1776 var allLeafColumns = this.getOriginalColumnGroup().getLeafColumns();
1777 if (!allLeafColumns || allLeafColumns.length === 0) {
1778 return false;
1779 }
1780 return allLeafColumns.every(function (col) { return col.isMoving(); });
1781 };
1782 ColumnGroup.prototype.checkLeft = function () {
1783 // first get all children to setLeft, as it impacts our decision below
1784 this.displayedChildren.forEach(function (child) {
1785 if (child instanceof ColumnGroup) {
1786 child.checkLeft();
1787 }
1788 });
1789 // set our left based on first displayed column
1790 if (this.displayedChildren.length > 0) {
1791 if (this.gridOptionsWrapper.isEnableRtl()) {
1792 var lastChild = Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(this.displayedChildren);
1793 var lastChildLeft = lastChild.getLeft();
1794 this.setLeft(lastChildLeft);
1795 }
1796 else {
1797 var firstChildLeft = this.displayedChildren[0].getLeft();
1798 this.setLeft(firstChildLeft);
1799 }
1800 }
1801 else {
1802 // this should never happen, as if we have no displayed columns, then
1803 // this groups should not even exist.
1804 this.setLeft(null);
1805 }
1806 };
1807 ColumnGroup.prototype.getLeft = function () {
1808 return this.left;
1809 };
1810 ColumnGroup.prototype.getOldLeft = function () {
1811 return this.oldLeft;
1812 };
1813 ColumnGroup.prototype.setLeft = function (left) {
1814 this.oldLeft = left;
1815 if (this.left !== left) {
1816 this.left = left;
1817 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));
1818 }
1819 };
1820 ColumnGroup.prototype.getPinned = function () {
1821 return this.pinned;
1822 };
1823 ColumnGroup.prototype.createAgEvent = function (type) {
1824 return { type: type };
1825 };
1826 ColumnGroup.prototype.addEventListener = function (eventType, listener) {
1827 this.localEventService.addEventListener(eventType, listener);
1828 };
1829 ColumnGroup.prototype.removeEventListener = function (eventType, listener) {
1830 this.localEventService.removeEventListener(eventType, listener);
1831 };
1832 ColumnGroup.prototype.getGroupId = function () {
1833 return this.groupId;
1834 };
1835 ColumnGroup.prototype.getInstanceId = function () {
1836 return this.instanceId;
1837 };
1838 ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {
1839 var result = false;
1840 this.children.forEach(function (foundChild) {
1841 if (wantedChild === foundChild) {
1842 result = true;
1843 }
1844 if (foundChild instanceof ColumnGroup) {
1845 if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {
1846 result = true;
1847 }
1848 }
1849 });
1850 return result;
1851 };
1852 ColumnGroup.prototype.getActualWidth = function () {
1853 var groupActualWidth = 0;
1854 if (this.displayedChildren) {
1855 this.displayedChildren.forEach(function (child) {
1856 groupActualWidth += child.getActualWidth();
1857 });
1858 }
1859 return groupActualWidth;
1860 };
1861 ColumnGroup.prototype.isResizable = function () {
1862 if (!this.displayedChildren) {
1863 return false;
1864 }
1865 // if at least one child is resizable, then the group is resizable
1866 var result = false;
1867 this.displayedChildren.forEach(function (child) {
1868 if (child.isResizable()) {
1869 result = true;
1870 }
1871 });
1872 return result;
1873 };
1874 ColumnGroup.prototype.getMinWidth = function () {
1875 var result = 0;
1876 this.displayedChildren.forEach(function (groupChild) {
1877 result += groupChild.getMinWidth() || 0;
1878 });
1879 return result;
1880 };
1881 ColumnGroup.prototype.addChild = function (child) {
1882 if (!this.children) {
1883 this.children = [];
1884 }
1885 this.children.push(child);
1886 };
1887 ColumnGroup.prototype.getDisplayedChildren = function () {
1888 return this.displayedChildren;
1889 };
1890 ColumnGroup.prototype.getLeafColumns = function () {
1891 var result = [];
1892 this.addLeafColumns(result);
1893 return result;
1894 };
1895 ColumnGroup.prototype.getDisplayedLeafColumns = function () {
1896 var result = [];
1897 this.addDisplayedLeafColumns(result);
1898 return result;
1899 };
1900 // why two methods here doing the same thing?
1901 ColumnGroup.prototype.getDefinition = function () {
1902 return this.originalColumnGroup.getColGroupDef();
1903 };
1904 ColumnGroup.prototype.getColGroupDef = function () {
1905 return this.originalColumnGroup.getColGroupDef();
1906 };
1907 ColumnGroup.prototype.isPadding = function () {
1908 return this.originalColumnGroup.isPadding();
1909 };
1910 ColumnGroup.prototype.isExpandable = function () {
1911 return this.originalColumnGroup.isExpandable();
1912 };
1913 ColumnGroup.prototype.isExpanded = function () {
1914 return this.originalColumnGroup.isExpanded();
1915 };
1916 ColumnGroup.prototype.setExpanded = function (expanded) {
1917 this.originalColumnGroup.setExpanded(expanded);
1918 };
1919 ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {
1920 this.displayedChildren.forEach(function (child) {
1921 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
1922 leafColumns.push(child);
1923 }
1924 else if (child instanceof ColumnGroup) {
1925 child.addDisplayedLeafColumns(leafColumns);
1926 }
1927 });
1928 };
1929 ColumnGroup.prototype.addLeafColumns = function (leafColumns) {
1930 this.children.forEach(function (child) {
1931 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
1932 leafColumns.push(child);
1933 }
1934 else if (child instanceof ColumnGroup) {
1935 child.addLeafColumns(leafColumns);
1936 }
1937 });
1938 };
1939 ColumnGroup.prototype.getChildren = function () {
1940 return this.children;
1941 };
1942 ColumnGroup.prototype.getColumnGroupShow = function () {
1943 return this.originalColumnGroup.getColumnGroupShow();
1944 };
1945 ColumnGroup.prototype.getOriginalColumnGroup = function () {
1946 return this.originalColumnGroup;
1947 };
1948 ColumnGroup.prototype.getPaddingLevel = function () {
1949 var parent = this.getParent();
1950 if (!this.isPadding() || !parent || !parent.isPadding()) {
1951 return 0;
1952 }
1953 return 1 + parent.getPaddingLevel();
1954 };
1955 ColumnGroup.prototype.calculateDisplayedColumns = function () {
1956 var _this = this;
1957 // clear out last time we calculated
1958 this.displayedChildren = [];
1959 // find the column group that is controlling expandable. this is relevant when we have padding (empty)
1960 // groups, where the expandable is actually the first parent that is not a padding group.
1961 var parentWithExpansion = this;
1962 while (parentWithExpansion != null && parentWithExpansion.isPadding()) {
1963 parentWithExpansion = parentWithExpansion.getParent();
1964 }
1965 var isExpandable = parentWithExpansion ? parentWithExpansion.originalColumnGroup.isExpandable() : false;
1966 // it not expandable, everything is visible
1967 if (!isExpandable) {
1968 this.displayedChildren = this.children;
1969 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));
1970 return;
1971 }
1972 // Add cols based on columnGroupShow
1973 // Note - the below also adds padding groups, these are always added because they never have
1974 // colDef.columnGroupShow set.
1975 this.children.forEach(function (child) {
1976 // never add empty groups
1977 var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);
1978 if (emptyGroup) {
1979 return;
1980 }
1981 var headerGroupShow = child.getColumnGroupShow();
1982 switch (headerGroupShow) {
1983 case ColumnGroup.HEADER_GROUP_SHOW_OPEN:
1984 // when set to open, only show col if group is open
1985 if (parentWithExpansion.originalColumnGroup.isExpanded()) {
1986 _this.displayedChildren.push(child);
1987 }
1988 break;
1989 case ColumnGroup.HEADER_GROUP_SHOW_CLOSED:
1990 // when set to open, only show col if group is open
1991 if (!parentWithExpansion.originalColumnGroup.isExpanded()) {
1992 _this.displayedChildren.push(child);
1993 }
1994 break;
1995 default:
1996 _this.displayedChildren.push(child);
1997 break;
1998 }
1999 });
2000 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));
2001 };
2002 ColumnGroup.HEADER_GROUP_SHOW_OPEN = 'open';
2003 ColumnGroup.HEADER_GROUP_SHOW_CLOSED = 'closed';
2004 ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';
2005 ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';
2006 __decorate([
2007 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
2008 ], ColumnGroup.prototype, "gridOptionsWrapper", void 0);
2009 return ColumnGroup;
2010}());
2011
2012
2013
2014/***/ }),
2015/* 10 */
2016/***/ (function(module, __webpack_exports__, __webpack_require__) {
2017
2018"use strict";
2019__webpack_require__.r(__webpack_exports__);
2020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return Column; });
2021/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
2022/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
2023/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
2024/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
2025/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18);
2026/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
2027/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
2028/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
2029/**
2030 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
2031 * @version v25.3.0
2032 * @link http://www.ag-grid.com/
2033 * @license MIT
2034 */
2035var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2036 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2037 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2038 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;
2039 return c > 3 && r && Object.defineProperty(target, key, r), r;
2040};
2041
2042
2043
2044
2045
2046
2047
2048
2049// Wrapper around a user provide column definition. The grid treats the column definition as ready only.
2050// This class contains all the runtime information about a column, plus some logic (the definition has no logic).
2051// This class implements both interfaces ColumnGroupChild and OriginalColumnGroupChild as the class can
2052// appear as a child of either the original tree or the displayed tree. However the relevant group classes
2053// for each type only implements one, as each group can only appear in it's associated tree (eg OriginalColumnGroup
2054// can only appear in OriginalColumn tree).
2055var Column = /** @class */ (function () {
2056 function Column(colDef, userProvidedColDef, colId, primary) {
2057 this.moving = false;
2058 this.menuVisible = false;
2059 this.filterActive = false;
2060 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
2061 this.rowGroupActive = false;
2062 this.pivotActive = false;
2063 this.aggregationActive = false;
2064 this.colDef = colDef;
2065 this.userProvidedColDef = userProvidedColDef;
2066 this.colId = colId;
2067 this.primary = primary;
2068 this.setState(colDef);
2069 }
2070 Column.prototype.setState = function (colDef) {
2071 // sort
2072 if (colDef.sort !== undefined) {
2073 if (colDef.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC || colDef.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC) {
2074 this.sort = colDef.sort;
2075 }
2076 }
2077 else {
2078 if (colDef.initialSort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC || colDef.initialSort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC) {
2079 this.sort = colDef.initialSort;
2080 }
2081 }
2082 // sortIndex
2083 var sortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.sortIndex);
2084 var initialSortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.initialSortIndex);
2085 if (sortIndex !== undefined) {
2086 if (sortIndex !== null) {
2087 this.sortIndex = sortIndex;
2088 }
2089 }
2090 else {
2091 if (initialSortIndex !== null) {
2092 this.sortIndex = initialSortIndex;
2093 }
2094 }
2095 // hide
2096 var hide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToBoolean"])(colDef.hide);
2097 var initialHide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToBoolean"])(colDef.initialHide);
2098 if (hide !== undefined) {
2099 this.visible = !hide;
2100 }
2101 else {
2102 this.visible = !initialHide;
2103 }
2104 // pinned
2105 if (colDef.pinned !== undefined) {
2106 this.setPinned(colDef.pinned);
2107 }
2108 else {
2109 this.setPinned(colDef.initialPinned);
2110 }
2111 // flex
2112 var flex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.flex);
2113 var initialFlex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.initialFlex);
2114 if (flex !== undefined) {
2115 this.flex = flex;
2116 }
2117 else if (initialFlex !== undefined) {
2118 this.flex = initialFlex;
2119 }
2120 };
2121 // gets called when user provides an alternative colDef, eg
2122 Column.prototype.setColDef = function (colDef, userProvidedColDef) {
2123 this.colDef = colDef;
2124 this.userProvidedColDef = userProvidedColDef;
2125 this.initMinAndMaxWidths();
2126 this.initDotNotation();
2127 };
2128 Column.prototype.getUserProvidedColDef = function () {
2129 return this.userProvidedColDef;
2130 };
2131 Column.prototype.setParent = function (parent) {
2132 this.parent = parent;
2133 };
2134 Column.prototype.getParent = function () {
2135 return this.parent;
2136 };
2137 Column.prototype.setOriginalParent = function (originalParent) {
2138 this.originalParent = originalParent;
2139 };
2140 Column.prototype.getOriginalParent = function () {
2141 return this.originalParent;
2142 };
2143 // this is done after constructor as it uses gridOptionsWrapper
2144 Column.prototype.initialise = function () {
2145 this.initMinAndMaxWidths();
2146 this.resetActualWidth('gridInitializing');
2147 this.initDotNotation();
2148 this.validate();
2149 };
2150 Column.prototype.initDotNotation = function () {
2151 var suppressDotNotation = this.gridOptionsWrapper.isSuppressFieldDotNotation();
2152 this.fieldContainsDots = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;
2153 this.tooltipFieldContainsDots = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;
2154 };
2155 Column.prototype.initMinAndMaxWidths = function () {
2156 var minColWidth = this.gridOptionsWrapper.getMinColWidth();
2157 var maxColWidth = this.gridOptionsWrapper.getMaxColWidth();
2158 if (this.colDef.minWidth != null) {
2159 // we force min width to be at least one pixel, otherwise column will disappear
2160 this.minWidth = Math.max(this.colDef.minWidth, 1);
2161 }
2162 else {
2163 this.minWidth = minColWidth;
2164 }
2165 if (this.colDef.maxWidth != null) {
2166 this.maxWidth = this.colDef.maxWidth;
2167 }
2168 else {
2169 this.maxWidth = maxColWidth;
2170 }
2171 };
2172 Column.prototype.resetActualWidth = function (source) {
2173 if (source === void 0) { source = 'api'; }
2174 var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);
2175 this.setActualWidth(initialWidth, source, true);
2176 };
2177 Column.prototype.isEmptyGroup = function () {
2178 return false;
2179 };
2180 Column.prototype.isRowGroupDisplayed = function (colId) {
2181 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef) || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef.showRowGroup)) {
2182 return false;
2183 }
2184 var showingAllGroups = this.colDef.showRowGroup === true;
2185 var showingThisGroup = this.colDef.showRowGroup === colId;
2186 return showingAllGroups || showingThisGroup;
2187 };
2188 Column.prototype.getUniqueId = function () {
2189 return this.getId();
2190 };
2191 Column.prototype.isPrimary = function () {
2192 return this.primary;
2193 };
2194 Column.prototype.isFilterAllowed = function () {
2195 // filter defined means it's a string, class or true.
2196 // if its false, null or undefined then it's false.
2197 var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;
2198 return this.primary && filterDefined;
2199 };
2200 Column.prototype.isFieldContainsDots = function () {
2201 return this.fieldContainsDots;
2202 };
2203 Column.prototype.isTooltipFieldContainsDots = function () {
2204 return this.tooltipFieldContainsDots;
2205 };
2206 Column.prototype.validate = function () {
2207 var colDefAny = this.colDef;
2208 function warnOnce(msg, key, obj) {
2209 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () {
2210 if (obj) {
2211 console.warn(msg, obj);
2212 }
2213 else {
2214 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () { return console.warn(msg); }, key);
2215 }
2216 }, key);
2217 }
2218 var usingCSRM = this.gridOptionsWrapper.isRowModelDefault();
2219 if (usingCSRM && !_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule)) {
2220 var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];
2221 rowGroupingItems.forEach(function (item) {
2222 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(colDefAny[item])) {
2223 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isPackageBased()) {
2224 warnOnce("AG Grid: " + item + " is only valid in ag-grid-enterprise, your column definition should not have " + item, 'ColumnRowGroupingMissing' + item);
2225 }
2226 else {
2227 warnOnce("AG Grid: " + item + " is only valid with AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule + " - your column definition should not have " + item, 'ColumnRowGroupingMissing' + item);
2228 }
2229 }
2230 });
2231 }
2232 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RichSelectModule)) {
2233 if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {
2234 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isPackageBased()) {
2235 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with ag-grid-enterprise", 'ColumnRichSelectMissing');
2236 }
2237 else {
2238 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RichSelectModule, 'ColumnRichSelectMissing');
2239 }
2240 }
2241 }
2242 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].DateTimeCellEditorModule)) {
2243 if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agDateTimeCellEditor') {
2244 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isPackageBased()) {
2245 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with ag-grid-enterprise", 'ColumnDateTimeMissing');
2246 }
2247 else {
2248 warnOnce("AG Grid: " + this.colDef.cellEditor + " can only be used with AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].DateTimeCellEditorModule, 'ColumnDateTimeMissing');
2249 }
2250 }
2251 }
2252 if (this.gridOptionsWrapper.isTreeData()) {
2253 var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];
2254 itemsNotAllowedWithTreeData.forEach(function (item) {
2255 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(colDefAny[item])) {
2256 warnOnce("AG Grid: " + item + " is not possible when doing tree data, your column definition should not have " + item, 'TreeDataCannotRowGroup');
2257 }
2258 });
2259 }
2260 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.colDef.width) && typeof this.colDef.width !== 'number') {
2261 warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck_asdfawef');
2262 }
2263 };
2264 Column.prototype.addEventListener = function (eventType, listener) {
2265 this.eventService.addEventListener(eventType, listener);
2266 };
2267 Column.prototype.removeEventListener = function (eventType, listener) {
2268 this.eventService.removeEventListener(eventType, listener);
2269 };
2270 Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {
2271 return {
2272 node: rowNode,
2273 data: rowNode.data,
2274 column: this,
2275 colDef: this.colDef,
2276 context: this.gridOptionsWrapper.getContext(),
2277 api: this.gridOptionsWrapper.getApi(),
2278 columnApi: this.gridOptionsWrapper.getColumnApi()
2279 };
2280 };
2281 Column.prototype.isSuppressNavigable = function (rowNode) {
2282 // if boolean set, then just use it
2283 if (typeof this.colDef.suppressNavigable === 'boolean') {
2284 return this.colDef.suppressNavigable;
2285 }
2286 // if function, then call the function to find out
2287 if (typeof this.colDef.suppressNavigable === 'function') {
2288 var params = this.createColumnFunctionCallbackParams(rowNode);
2289 var userFunc = this.colDef.suppressNavigable;
2290 return userFunc(params);
2291 }
2292 return false;
2293 };
2294 Column.prototype.isCellEditable = function (rowNode) {
2295 // only allow editing of groups if the user has this option enabled
2296 if (rowNode.group && !this.gridOptionsWrapper.isEnableGroupEdit()) {
2297 return false;
2298 }
2299 return this.isColumnFunc(rowNode, this.colDef.editable);
2300 };
2301 Column.prototype.isRowDrag = function (rowNode) {
2302 return this.isColumnFunc(rowNode, this.colDef.rowDrag);
2303 };
2304 Column.prototype.isDndSource = function (rowNode) {
2305 return this.isColumnFunc(rowNode, this.colDef.dndSource);
2306 };
2307 Column.prototype.isCellCheckboxSelection = function (rowNode) {
2308 return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);
2309 };
2310 Column.prototype.isSuppressPaste = function (rowNode) {
2311 return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);
2312 };
2313 Column.prototype.isResizable = function () {
2314 return this.colDef.resizable === true;
2315 };
2316 Column.prototype.isColumnFunc = function (rowNode, value) {
2317 // if boolean set, then just use it
2318 if (typeof value === 'boolean') {
2319 return value;
2320 }
2321 // if function, then call the function to find out
2322 if (typeof value === 'function') {
2323 var params = this.createColumnFunctionCallbackParams(rowNode);
2324 var editableFunc = value;
2325 return editableFunc(params);
2326 }
2327 return false;
2328 };
2329 Column.prototype.setMoving = function (moving, source) {
2330 if (source === void 0) { source = "api"; }
2331 this.moving = moving;
2332 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MOVING_CHANGED, source));
2333 };
2334 Column.prototype.createColumnEvent = function (type, source) {
2335 return {
2336 api: this.gridApi,
2337 columnApi: this.columnApi,
2338 type: type,
2339 column: this,
2340 columns: [this],
2341 source: source
2342 };
2343 };
2344 Column.prototype.isMoving = function () {
2345 return this.moving;
2346 };
2347 Column.prototype.getSort = function () {
2348 return this.sort;
2349 };
2350 Column.prototype.setSort = function (sort, source) {
2351 if (source === void 0) { source = "api"; }
2352 if (this.sort !== sort) {
2353 this.sort = sort;
2354 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_SORT_CHANGED, source));
2355 }
2356 };
2357 Column.prototype.setMenuVisible = function (visible, source) {
2358 if (source === void 0) { source = "api"; }
2359 if (this.menuVisible !== visible) {
2360 this.menuVisible = visible;
2361 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MENU_VISIBLE_CHANGED, source));
2362 }
2363 };
2364 Column.prototype.isMenuVisible = function () {
2365 return this.menuVisible;
2366 };
2367 Column.prototype.isSortAscending = function () {
2368 return this.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC;
2369 };
2370 Column.prototype.isSortDescending = function () {
2371 return this.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC;
2372 };
2373 Column.prototype.isSortNone = function () {
2374 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.sort);
2375 };
2376 Column.prototype.isSorting = function () {
2377 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.sort);
2378 };
2379 Column.prototype.getSortIndex = function () {
2380 return this.sortIndex;
2381 };
2382 Column.prototype.setSortIndex = function (sortOrder) {
2383 this.sortIndex = sortOrder;
2384 };
2385 Column.prototype.setAggFunc = function (aggFunc) {
2386 this.aggFunc = aggFunc;
2387 };
2388 Column.prototype.getAggFunc = function () {
2389 return this.aggFunc;
2390 };
2391 Column.prototype.getLeft = function () {
2392 return this.left;
2393 };
2394 Column.prototype.getOldLeft = function () {
2395 return this.oldLeft;
2396 };
2397 Column.prototype.getRight = function () {
2398 return this.left + this.actualWidth;
2399 };
2400 Column.prototype.setLeft = function (left, source) {
2401 if (source === void 0) { source = "api"; }
2402 this.oldLeft = this.left;
2403 if (this.left !== left) {
2404 this.left = left;
2405 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LEFT_CHANGED, source));
2406 }
2407 };
2408 Column.prototype.isFilterActive = function () {
2409 return this.filterActive;
2410 };
2411 // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event
2412 Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {
2413 if (source === void 0) { source = "api"; }
2414 if (this.filterActive !== active) {
2415 this.filterActive = active;
2416 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FILTER_ACTIVE_CHANGED, source));
2417 }
2418 var filterChangedEvent = this.createColumnEvent(Column.EVENT_FILTER_CHANGED, source);
2419 if (additionalEventAttributes) {
2420 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["mergeDeep"])(filterChangedEvent, additionalEventAttributes);
2421 }
2422 this.eventService.dispatchEvent(filterChangedEvent);
2423 };
2424 Column.prototype.setPinned = function (pinned) {
2425 if (pinned === true || pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT) {
2426 this.pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT;
2427 }
2428 else if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT) {
2429 this.pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT;
2430 }
2431 else {
2432 this.pinned = null;
2433 }
2434 };
2435 Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {
2436 if (source === void 0) { source = "api"; }
2437 if (this.firstRightPinned !== firstRightPinned) {
2438 this.firstRightPinned = firstRightPinned;
2439 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, source));
2440 }
2441 };
2442 Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {
2443 if (source === void 0) { source = "api"; }
2444 if (this.lastLeftPinned !== lastLeftPinned) {
2445 this.lastLeftPinned = lastLeftPinned;
2446 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LAST_LEFT_PINNED_CHANGED, source));
2447 }
2448 };
2449 Column.prototype.isFirstRightPinned = function () {
2450 return this.firstRightPinned;
2451 };
2452 Column.prototype.isLastLeftPinned = function () {
2453 return this.lastLeftPinned;
2454 };
2455 Column.prototype.isPinned = function () {
2456 return this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT || this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT;
2457 };
2458 Column.prototype.isPinnedLeft = function () {
2459 return this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT;
2460 };
2461 Column.prototype.isPinnedRight = function () {
2462 return this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT;
2463 };
2464 Column.prototype.getPinned = function () {
2465 return this.pinned;
2466 };
2467 Column.prototype.setVisible = function (visible, source) {
2468 if (source === void 0) { source = "api"; }
2469 var newValue = visible === true;
2470 if (this.visible !== newValue) {
2471 this.visible = newValue;
2472 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VISIBLE_CHANGED, source));
2473 }
2474 };
2475 Column.prototype.isVisible = function () {
2476 return this.visible;
2477 };
2478 Column.prototype.getColDef = function () {
2479 return this.colDef;
2480 };
2481 Column.prototype.getColumnGroupShow = function () {
2482 return this.colDef.columnGroupShow;
2483 };
2484 Column.prototype.getColId = function () {
2485 return this.colId;
2486 };
2487 Column.prototype.getId = function () {
2488 return this.getColId();
2489 };
2490 Column.prototype.getDefinition = function () {
2491 return this.colDef;
2492 };
2493 Column.prototype.getActualWidth = function () {
2494 return this.actualWidth;
2495 };
2496 Column.prototype.createBaseColDefParams = function (rowNode) {
2497 var params = {
2498 node: rowNode,
2499 data: rowNode.data,
2500 colDef: this.colDef,
2501 column: this,
2502 api: this.gridOptionsWrapper.getApi(),
2503 columnApi: this.gridOptionsWrapper.getColumnApi(),
2504 context: this.gridOptionsWrapper.getContext()
2505 };
2506 return params;
2507 };
2508 Column.prototype.getColSpan = function (rowNode) {
2509 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef.colSpan)) {
2510 return 1;
2511 }
2512 var params = this.createBaseColDefParams(rowNode);
2513 var colSpan = this.colDef.colSpan(params);
2514 // colSpan must be number equal to or greater than 1
2515 return Math.max(colSpan, 1);
2516 };
2517 Column.prototype.getRowSpan = function (rowNode) {
2518 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.colDef.rowSpan)) {
2519 return 1;
2520 }
2521 var params = this.createBaseColDefParams(rowNode);
2522 var rowSpan = this.colDef.rowSpan(params);
2523 // rowSpan must be number equal to or greater than 1
2524 return Math.max(rowSpan, 1);
2525 };
2526 Column.prototype.setActualWidth = function (actualWidth, source, silent) {
2527 if (source === void 0) { source = "api"; }
2528 if (silent === void 0) { silent = false; }
2529 if (this.minWidth != null) {
2530 actualWidth = Math.max(actualWidth, this.minWidth);
2531 }
2532 if (this.maxWidth != null) {
2533 actualWidth = Math.min(actualWidth, this.maxWidth);
2534 }
2535 if (this.actualWidth !== actualWidth) {
2536 // disable flex for this column if it was manually resized.
2537 this.actualWidth = actualWidth;
2538 if (this.flex && source !== 'flex' && source !== 'gridInitializing') {
2539 this.flex = null;
2540 }
2541 if (!silent) {
2542 this.fireColumnWidthChangedEvent(source);
2543 }
2544 }
2545 };
2546 Column.prototype.fireColumnWidthChangedEvent = function (source) {
2547 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_WIDTH_CHANGED, source));
2548 };
2549 Column.prototype.isGreaterThanMax = function (width) {
2550 if (this.maxWidth != null) {
2551 return width > this.maxWidth;
2552 }
2553 return false;
2554 };
2555 Column.prototype.getMinWidth = function () {
2556 return this.minWidth;
2557 };
2558 Column.prototype.getMaxWidth = function () {
2559 return this.maxWidth;
2560 };
2561 Column.prototype.getFlex = function () {
2562 return this.flex || 0;
2563 };
2564 // this method should only be used by the columnController to
2565 // change flex when required by the setColumnState method.
2566 Column.prototype.setFlex = function (flex) {
2567 if (this.flex !== flex) {
2568 this.flex = flex;
2569 }
2570 };
2571 Column.prototype.setMinimum = function (source) {
2572 if (source === void 0) { source = "api"; }
2573 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.minWidth)) {
2574 this.setActualWidth(this.minWidth, source);
2575 }
2576 };
2577 Column.prototype.setRowGroupActive = function (rowGroup, source) {
2578 if (source === void 0) { source = "api"; }
2579 if (this.rowGroupActive !== rowGroup) {
2580 this.rowGroupActive = rowGroup;
2581 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_ROW_GROUP_CHANGED, source));
2582 }
2583 };
2584 Column.prototype.isRowGroupActive = function () {
2585 return this.rowGroupActive;
2586 };
2587 Column.prototype.setPivotActive = function (pivot, source) {
2588 if (source === void 0) { source = "api"; }
2589 if (this.pivotActive !== pivot) {
2590 this.pivotActive = pivot;
2591 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_PIVOT_CHANGED, source));
2592 }
2593 };
2594 Column.prototype.isPivotActive = function () {
2595 return this.pivotActive;
2596 };
2597 Column.prototype.isAnyFunctionActive = function () {
2598 return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();
2599 };
2600 Column.prototype.isAnyFunctionAllowed = function () {
2601 return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();
2602 };
2603 Column.prototype.setValueActive = function (value, source) {
2604 if (source === void 0) { source = "api"; }
2605 if (this.aggregationActive !== value) {
2606 this.aggregationActive = value;
2607 this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VALUE_CHANGED, source));
2608 }
2609 };
2610 Column.prototype.isValueActive = function () {
2611 return this.aggregationActive;
2612 };
2613 Column.prototype.isAllowPivot = function () {
2614 return this.colDef.enablePivot === true;
2615 };
2616 Column.prototype.isAllowValue = function () {
2617 return this.colDef.enableValue === true;
2618 };
2619 Column.prototype.isAllowRowGroup = function () {
2620 return this.colDef.enableRowGroup === true;
2621 };
2622 Column.prototype.getMenuTabs = function (defaultValues) {
2623 var menuTabs = this.getColDef().menuTabs;
2624 if (menuTabs == null) {
2625 menuTabs = defaultValues;
2626 }
2627 return menuTabs;
2628 };
2629 // this used to be needed, as previous version of ag-grid had lockPosition as column state,
2630 // so couldn't depend on colDef version.
2631 Column.prototype.isLockPosition = function () {
2632 console.warn('AG Grid: since v21, col.isLockPosition() should not be used, please use col.getColDef().lockPosition instead.');
2633 return this.colDef ? !!this.colDef.lockPosition : false;
2634 };
2635 // this used to be needed, as previous version of ag-grid had lockVisible as column state,
2636 // so couldn't depend on colDef version.
2637 Column.prototype.isLockVisible = function () {
2638 console.warn('AG Grid: since v21, col.isLockVisible() should not be used, please use col.getColDef().lockVisible instead.');
2639 return this.colDef ? !!this.colDef.lockVisible : false;
2640 };
2641 // this used to be needed, as previous version of ag-grid had lockPinned as column state,
2642 // so couldn't depend on colDef version.
2643 Column.prototype.isLockPinned = function () {
2644 console.warn('AG Grid: since v21, col.isLockPinned() should not be used, please use col.getColDef().lockPinned instead.');
2645 return this.colDef ? !!this.colDef.lockPinned : false;
2646 };
2647 // + renderedHeaderCell - for making header cell transparent when moving
2648 Column.EVENT_MOVING_CHANGED = 'movingChanged';
2649 // + renderedCell - changing left position
2650 Column.EVENT_LEFT_CHANGED = 'leftChanged';
2651 // + renderedCell - changing width
2652 Column.EVENT_WIDTH_CHANGED = 'widthChanged';
2653 // + renderedCell - for changing pinned classes
2654 Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';
2655 Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';
2656 // + renderedColumn - for changing visibility icon
2657 Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';
2658 // + every time the filter changes, used in the floating filters
2659 Column.EVENT_FILTER_CHANGED = 'filterChanged';
2660 // + renderedHeaderCell - marks the header with filter icon
2661 Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';
2662 // + renderedHeaderCell - marks the header with sort icon
2663 Column.EVENT_SORT_CHANGED = 'sortChanged';
2664 Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';
2665 // + toolpanel, for gui updates
2666 Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';
2667 // + toolpanel, for gui updates
2668 Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';
2669 // + toolpanel, for gui updates
2670 Column.EVENT_VALUE_CHANGED = 'columnValueChanged';
2671 __decorate([
2672 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
2673 ], Column.prototype, "gridOptionsWrapper", void 0);
2674 __decorate([
2675 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnUtils')
2676 ], Column.prototype, "columnUtils", void 0);
2677 __decorate([
2678 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
2679 ], Column.prototype, "columnApi", void 0);
2680 __decorate([
2681 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
2682 ], Column.prototype, "gridApi", void 0);
2683 __decorate([
2684 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('context')
2685 ], Column.prototype, "context", void 0);
2686 __decorate([
2687 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
2688 ], Column.prototype, "initialise", null);
2689 return Column;
2690}());
2691
2692
2693
2694/***/ }),
2695/* 11 */
2696/***/ (function(module, __webpack_exports__, __webpack_require__) {
2697
2698"use strict";
2699__webpack_require__.r(__webpack_exports__);
2700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return EventService; });
2701/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
2702/**
2703 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
2704 * @version v25.3.0
2705 * @link http://www.ag-grid.com/
2706 * @license MIT
2707 */
2708var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2709 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2710 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2711 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;
2712 return c > 3 && r && Object.defineProperty(target, key, r), r;
2713};
2714var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
2715 return function (target, key) { decorator(target, key, paramIndex); }
2716};
2717
2718var EventService = /** @class */ (function () {
2719 function EventService() {
2720 this.allSyncListeners = new Map();
2721 this.allAsyncListeners = new Map();
2722 this.globalSyncListeners = new Set();
2723 this.globalAsyncListeners = new Set();
2724 this.asyncFunctionsQueue = [];
2725 this.scheduled = false;
2726 // using an object performs better than a Set for the number of different events we have
2727 this.firedEvents = {};
2728 }
2729 // because this class is used both inside the context and outside the context, we do not
2730 // use autowired attributes, as that would be confusing, as sometimes the attributes
2731 // would be wired, and sometimes not.
2732 //
2733 // the global event servers used by AG Grid is autowired by the context once, and this
2734 // setBeans method gets called once.
2735 //
2736 // the times when this class is used outside of the context (eg RowNode has an instance of this
2737 // class) then it is not a bean, and this setBeans method is not called.
2738 EventService.prototype.setBeans = function (loggerFactory, gridOptionsWrapper, frameworkOverrides, globalEventListener) {
2739 if (globalEventListener === void 0) { globalEventListener = null; }
2740 this.logger = loggerFactory.create('EventService');
2741 this.frameworkOverrides = frameworkOverrides;
2742 if (globalEventListener) {
2743 var async = gridOptionsWrapper.useAsyncEvents();
2744 this.addGlobalListener(globalEventListener, async);
2745 }
2746 };
2747 EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {
2748 var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
2749 var listeners = listenerMap.get(eventType);
2750 // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance
2751 // getListeners() is also called during event dispatch even though no listeners are added. This measure protects
2752 // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after
2753 // the RowComp is destroyed, see noRegisteredListenersExist() below.
2754 if (!listeners && autoCreateListenerCollection) {
2755 listeners = new Set();
2756 listenerMap.set(eventType, listeners);
2757 }
2758 return listeners;
2759 };
2760 EventService.prototype.noRegisteredListenersExist = function () {
2761 return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&
2762 this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;
2763 };
2764 EventService.prototype.addEventListener = function (eventType, listener, async) {
2765 if (async === void 0) { async = false; }
2766 this.getListeners(eventType, async, true).add(listener);
2767 };
2768 EventService.prototype.removeEventListener = function (eventType, listener, async) {
2769 if (async === void 0) { async = false; }
2770 var listeners = this.getListeners(eventType, async, false);
2771 if (!listeners) {
2772 return;
2773 }
2774 listeners.delete(listener);
2775 if (listeners.size === 0) {
2776 var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
2777 listenerMap.delete(eventType);
2778 }
2779 };
2780 EventService.prototype.addGlobalListener = function (listener, async) {
2781 if (async === void 0) { async = false; }
2782 (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);
2783 };
2784 EventService.prototype.removeGlobalListener = function (listener, async) {
2785 if (async === void 0) { async = false; }
2786 (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);
2787 };
2788 EventService.prototype.dispatchEvent = function (event) {
2789 this.dispatchToListeners(event, true);
2790 this.dispatchToListeners(event, false);
2791 this.firedEvents[event.type] = true;
2792 };
2793 EventService.prototype.dispatchEventOnce = function (event) {
2794 if (!this.firedEvents[event.type]) {
2795 this.dispatchEvent(event);
2796 }
2797 };
2798 EventService.prototype.dispatchToListeners = function (event, async) {
2799 var _this = this;
2800 var eventType = event.type;
2801 var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {
2802 if (async) {
2803 _this.dispatchAsync(function () { return listener(event); });
2804 }
2805 else {
2806 listener(event);
2807 }
2808 }); };
2809 var listeners = this.getListeners(eventType, async, false);
2810 if (listeners) {
2811 processEventListeners(listeners);
2812 }
2813 var globalListeners = async ? this.globalAsyncListeners : this.globalSyncListeners;
2814 globalListeners.forEach(function (listener) {
2815 if (async) {
2816 _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }); });
2817 }
2818 else {
2819 _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); });
2820 }
2821 });
2822 };
2823 // this gets called inside the grid's thread, for each event that it
2824 // wants to set async. the grid then batches the events into one setTimeout()
2825 // because setTimeout() is an expensive operation. ideally we would have
2826 // each event in it's own setTimeout(), but we batch for performance.
2827 EventService.prototype.dispatchAsync = function (func) {
2828 // add to the queue for executing later in the next VM turn
2829 this.asyncFunctionsQueue.push(func);
2830 // check if timeout is already scheduled. the first time the grid calls
2831 // this within it's thread turn, this should be false, so it will schedule
2832 // the 'flush queue' method the first time it comes here. then the flag is
2833 // set to 'true' so it will know it's already scheduled for subsequent calls.
2834 if (!this.scheduled) {
2835 // if not scheduled, schedule one
2836 window.setTimeout(this.flushAsyncQueue.bind(this), 0);
2837 // mark that it is scheduled
2838 this.scheduled = true;
2839 }
2840 };
2841 // this happens in the next VM turn only, and empties the queue of events
2842 EventService.prototype.flushAsyncQueue = function () {
2843 this.scheduled = false;
2844 // we take a copy, because the event listener could be using
2845 // the grid, which would cause more events, which would be potentially
2846 // added to the queue, so safe to take a copy, the new events will
2847 // get executed in a later VM turn rather than risk updating the
2848 // queue as we are flushing it.
2849 var queueCopy = this.asyncFunctionsQueue.slice();
2850 this.asyncFunctionsQueue = [];
2851 // execute the queue
2852 queueCopy.forEach(function (func) { return func(); });
2853 };
2854 __decorate([
2855 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory')),
2856 __param(1, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('gridOptionsWrapper')),
2857 __param(2, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('frameworkOverrides')),
2858 __param(3, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('globalEventListener'))
2859 ], EventService.prototype, "setBeans", null);
2860 EventService = __decorate([
2861 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('eventService')
2862 ], EventService);
2863 return EventService;
2864}());
2865
2866
2867
2868/***/ }),
2869/* 12 */
2870/***/ (function(module, __webpack_exports__, __webpack_require__) {
2871
2872"use strict";
2873__webpack_require__.r(__webpack_exports__);
2874/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return Context; });
2875/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return PreConstruct; });
2876/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return PostConstruct; });
2877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return PreDestroy; });
2878/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return Bean; });
2879/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return Autowired; });
2880/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return Optional; });
2881/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return Qualifier; });
2882/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
2883/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
2884/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
2885/**
2886 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
2887 * @version v25.3.0
2888 * @link http://www.ag-grid.com/
2889 * @license MIT
2890 */
2891
2892
2893
2894var Context = /** @class */ (function () {
2895 function Context(params, logger) {
2896 this.beanWrappers = {};
2897 this.destroyed = false;
2898 if (!params || !params.beanClasses) {
2899 return;
2900 }
2901 this.contextParams = params;
2902 this.logger = logger;
2903 this.logger.log(">> creating ag-Application Context");
2904 this.createBeans();
2905 var beanInstances = this.getBeanInstances();
2906 this.wireBeans(beanInstances);
2907 this.logger.log(">> ag-Application Context ready - component is alive");
2908 }
2909 Context.prototype.getBeanInstances = function () {
2910 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["values"])(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });
2911 };
2912 Context.prototype.createBean = function (bean, afterPreCreateCallback) {
2913 if (!bean) {
2914 throw Error("Can't wire to bean since it is null");
2915 }
2916 this.wireBeans([bean], afterPreCreateCallback);
2917 return bean;
2918 };
2919 Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {
2920 this.autoWireBeans(beanInstances);
2921 this.methodWireBeans(beanInstances);
2922 this.callLifeCycleMethods(beanInstances, 'preConstructMethods');
2923 // the callback sets the attributes, so the component has access to attributes
2924 // before postConstruct methods in the component are executed
2925 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(afterPreCreateCallback)) {
2926 beanInstances.forEach(afterPreCreateCallback);
2927 }
2928 this.callLifeCycleMethods(beanInstances, 'postConstructMethods');
2929 };
2930 Context.prototype.createBeans = function () {
2931 var _this = this;
2932 // register all normal beans
2933 this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));
2934 // register override beans, these will overwrite beans above of same name
2935 // instantiate all beans - overridden beans will be left out
2936 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(this.beanWrappers, function (key, beanEntry) {
2937 var constructorParamsMeta;
2938 if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {
2939 constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;
2940 }
2941 var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);
2942 var newInstance = applyToConstructor(beanEntry.bean, constructorParams);
2943 beanEntry.beanInstance = newInstance;
2944 });
2945 var createdBeanNames = Object.keys(this.beanWrappers).join(', ');
2946 this.logger.log("created beans: " + createdBeanNames);
2947 };
2948 // tslint:disable-next-line
2949 Context.prototype.createBeanWrapper = function (BeanClass) {
2950 var metaData = BeanClass.__agBeanMetaData;
2951 if (!metaData) {
2952 var beanName = void 0;
2953 if (BeanClass.prototype.constructor) {
2954 beanName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["getFunctionName"])(BeanClass.prototype.constructor);
2955 }
2956 else {
2957 beanName = "" + BeanClass;
2958 }
2959 console.error("Context item " + beanName + " is not a bean");
2960 return;
2961 }
2962 var beanEntry = {
2963 bean: BeanClass,
2964 beanInstance: null,
2965 beanName: metaData.beanName
2966 };
2967 this.beanWrappers[metaData.beanName] = beanEntry;
2968 };
2969 Context.prototype.autoWireBeans = function (beanInstances) {
2970 var _this = this;
2971 beanInstances.forEach(function (beanInstance) {
2972 _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {
2973 var attributes = metaData.agClassAttributes;
2974 if (!attributes) {
2975 return;
2976 }
2977 attributes.forEach(function (attribute) {
2978 var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);
2979 beanInstance[attribute.attributeName] = otherBean;
2980 });
2981 });
2982 });
2983 };
2984 Context.prototype.methodWireBeans = function (beanInstances) {
2985 var _this = this;
2986 beanInstances.forEach(function (beanInstance) {
2987 _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {
2988 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(metaData.autowireMethods, function (methodName, wireParams) {
2989 // skip constructor, as this is dealt with elsewhere
2990 if (methodName === "agConstructor") {
2991 return;
2992 }
2993 var initParams = _this.getBeansForParameters(wireParams, beanName);
2994 beanInstance[methodName].apply(beanInstance, initParams);
2995 });
2996 });
2997 });
2998 };
2999 Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {
3000 var prototype = Object.getPrototypeOf(beanInstance);
3001 while (prototype != null) {
3002 var constructor = prototype.constructor;
3003 if (constructor.hasOwnProperty('__agBeanMetaData')) {
3004 var metaData = constructor.__agBeanMetaData;
3005 var beanName = this.getBeanName(constructor);
3006 callback(metaData, beanName);
3007 }
3008 prototype = Object.getPrototypeOf(prototype);
3009 }
3010 };
3011 Context.prototype.getBeanName = function (constructor) {
3012 if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {
3013 return constructor.__agBeanMetaData.beanName;
3014 }
3015 var constructorString = constructor.toString();
3016 var beanName = constructorString.substring(9, constructorString.indexOf("("));
3017 return beanName;
3018 };
3019 Context.prototype.getBeansForParameters = function (parameters, beanName) {
3020 var _this = this;
3021 var beansList = [];
3022 if (parameters) {
3023 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(parameters, function (paramIndex, otherBeanName) {
3024 var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);
3025 beansList[Number(paramIndex)] = otherBean;
3026 });
3027 }
3028 return beansList;
3029 };
3030 Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {
3031 if (optional === void 0) { optional = false; }
3032 if (beanName === "context") {
3033 return this;
3034 }
3035 if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {
3036 return this.contextParams.providedBeanInstances[beanName];
3037 }
3038 var beanEntry = this.beanWrappers[beanName];
3039 if (beanEntry) {
3040 return beanEntry.beanInstance;
3041 }
3042 if (!optional) {
3043 console.error("AG Grid: unable to find bean reference " + beanName + " while initialising " + wiringBean);
3044 }
3045 return null;
3046 };
3047 Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {
3048 var _this = this;
3049 beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });
3050 };
3051 Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {
3052 // putting all methods into a map removes duplicates
3053 var allMethods = {};
3054 // dump methods from each level of the metadata hierarchy
3055 this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {
3056 var methods = metaData[lifeCycleMethod];
3057 if (methods) {
3058 methods.forEach(function (methodName) {
3059 if (methodName != methodToIgnore) {
3060 allMethods[methodName] = true;
3061 }
3062 });
3063 }
3064 });
3065 var allMethodsList = Object.keys(allMethods);
3066 allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });
3067 };
3068 Context.prototype.getBean = function (name) {
3069 return this.lookupBeanInstance("getBean", name, true);
3070 };
3071 Context.prototype.destroy = function () {
3072 if (this.destroyed) {
3073 return;
3074 }
3075 this.logger.log(">> Shutting down ag-Application Context");
3076 var beanInstances = this.getBeanInstances();
3077 this.destroyBeans(beanInstances);
3078 this.contextParams.providedBeanInstances = null;
3079 this.destroyed = true;
3080 this.logger.log(">> ag-Application Context shut down - component is dead");
3081 };
3082 Context.prototype.destroyBean = function (bean) {
3083 if (!bean) {
3084 return;
3085 }
3086 this.destroyBeans([bean]);
3087 };
3088 Context.prototype.destroyBeans = function (beans) {
3089 var _this = this;
3090 if (!beans) {
3091 return [];
3092 }
3093 beans.forEach(function (bean) {
3094 _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');
3095 // call destroy() explicitly if it exists
3096 var beanAny = bean;
3097 if (typeof beanAny.destroy === 'function') {
3098 beanAny.destroy();
3099 }
3100 });
3101 return [];
3102 };
3103 return Context;
3104}());
3105
3106// taken from: http://stackoverflow.com/questions/3362471/how-can-i-call-a-javascript-constructor-using-call-or-apply
3107// allows calling 'apply' on a constructor
3108function applyToConstructor(constructor, argArray) {
3109 var args = [null].concat(argArray);
3110 var factoryFunction = constructor.bind.apply(constructor, args);
3111 return new factoryFunction();
3112}
3113function PreConstruct(target, methodName, descriptor) {
3114 var props = getOrCreateProps(target.constructor);
3115 if (!props.preConstructMethods) {
3116 props.preConstructMethods = [];
3117 }
3118 props.preConstructMethods.push(methodName);
3119}
3120function PostConstruct(target, methodName, descriptor) {
3121 var props = getOrCreateProps(target.constructor);
3122 if (!props.postConstructMethods) {
3123 props.postConstructMethods = [];
3124 }
3125 props.postConstructMethods.push(methodName);
3126}
3127function PreDestroy(target, methodName, descriptor) {
3128 var props = getOrCreateProps(target.constructor);
3129 if (!props.preDestroyMethods) {
3130 props.preDestroyMethods = [];
3131 }
3132 props.preDestroyMethods.push(methodName);
3133}
3134function Bean(beanName) {
3135 return function (classConstructor) {
3136 var props = getOrCreateProps(classConstructor);
3137 props.beanName = beanName;
3138 };
3139}
3140function Autowired(name) {
3141 return function (target, propertyKey, descriptor) {
3142 autowiredFunc(target, name, false, target, propertyKey, null);
3143 };
3144}
3145function Optional(name) {
3146 return function (target, propertyKey, descriptor) {
3147 autowiredFunc(target, name, true, target, propertyKey, null);
3148 };
3149}
3150function autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {
3151 if (name === null) {
3152 console.error("AG Grid: Autowired name should not be null");
3153 return;
3154 }
3155 if (typeof index === "number") {
3156 console.error("AG Grid: Autowired should be on an attribute");
3157 return;
3158 }
3159 // it's an attribute on the class
3160 var props = getOrCreateProps(target.constructor);
3161 if (!props.agClassAttributes) {
3162 props.agClassAttributes = [];
3163 }
3164 props.agClassAttributes.push({
3165 attributeName: methodOrAttributeName,
3166 beanName: name,
3167 optional: optional
3168 });
3169}
3170function Qualifier(name) {
3171 return function (classPrototype, methodOrAttributeName, index) {
3172 var constructor = typeof classPrototype == "function" ? classPrototype : classPrototype.constructor;
3173 var props;
3174 if (typeof index === "number") {
3175 // it's a parameter on a method
3176 var methodName = void 0;
3177 if (methodOrAttributeName) {
3178 props = getOrCreateProps(constructor);
3179 methodName = methodOrAttributeName;
3180 }
3181 else {
3182 props = getOrCreateProps(constructor);
3183 methodName = "agConstructor";
3184 }
3185 if (!props.autowireMethods) {
3186 props.autowireMethods = {};
3187 }
3188 if (!props.autowireMethods[methodName]) {
3189 props.autowireMethods[methodName] = {};
3190 }
3191 props.autowireMethods[methodName][index] = name;
3192 }
3193 };
3194}
3195function getOrCreateProps(target) {
3196 if (!target.hasOwnProperty("__agBeanMetaData")) {
3197 target.__agBeanMetaData = {};
3198 }
3199 return target.__agBeanMetaData;
3200}
3201
3202
3203/***/ }),
3204/* 13 */
3205/***/ (function(module, __webpack_exports__, __webpack_require__) {
3206
3207"use strict";
3208__webpack_require__.r(__webpack_exports__);
3209/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterateObject", function() { return iterateObject; });
3210/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneObject", function() { return cloneObject; });
3211/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCloneObject", function() { return deepCloneObject; });
3212/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCloneDefinition", function() { return deepCloneDefinition; });
3213/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getProperty", function() { return getProperty; });
3214/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setProperty", function() { return setProperty; });
3215/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyPropertiesIfPresent", function() { return copyPropertiesIfPresent; });
3216/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyPropertyIfPresent", function() { return copyPropertyIfPresent; });
3217/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllKeysInObjects", function() { return getAllKeysInObjects; });
3218/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllValuesInObject", function() { return getAllValuesInObject; });
3219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeep", function() { return mergeDeep; });
3220/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "assign", function() { return assign; });
3221/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingOrEmptyObject", function() { return missingOrEmptyObject; });
3222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
3223/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
3224/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepFreeze", function() { return deepFreeze; });
3225/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getValueUsingField", function() { return getValueUsingField; });
3226/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllReferences", function() { return removeAllReferences; });
3227/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNonNullObject", function() { return isNonNullObject; });
3228/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
3229/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
3230/**
3231 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3232 * @version v25.3.0
3233 * @link http://www.ag-grid.com/
3234 * @license MIT
3235 */
3236
3237
3238function iterateObject(object, callback) {
3239 if (object == null) {
3240 return;
3241 }
3242 if (Array.isArray(object)) {
3243 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(object, function (value, index) { return callback("" + index, value); });
3244 }
3245 else {
3246 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(Object.keys(object), function (key) { return callback(key, object[key]); });
3247 }
3248}
3249function cloneObject(object) {
3250 var copy = {};
3251 var keys = Object.keys(object);
3252 for (var i = 0; i < keys.length; i++) {
3253 var key = keys[i];
3254 var value = object[key];
3255 copy[key] = value;
3256 }
3257 return copy;
3258}
3259function deepCloneObject(object) {
3260 return JSON.parse(JSON.stringify(object));
3261}
3262// returns copy of an object, doing a deep clone of any objects with that object.
3263// this is used for eg creating copies of Column Definitions, where we want to
3264// deep copy all objects, but do not want to deep copy functions (eg when user provides
3265// a function or class for colDef.cellRenderer)
3266function deepCloneDefinition(object, keysToSkip) {
3267 if (!object) {
3268 return;
3269 }
3270 var obj = object;
3271 var res = {};
3272 Object.keys(obj).forEach(function (key) {
3273 if (keysToSkip && keysToSkip.indexOf(key) >= 0) {
3274 return;
3275 }
3276 var value = obj[key];
3277 // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does
3278 // NOT include the following:
3279 // 1) arrays
3280 // 2) functions or classes (eg ColumnAPI instance)
3281 var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;
3282 if (sourceIsSimpleObject) {
3283 res[key] = deepCloneDefinition(value);
3284 }
3285 else {
3286 res[key] = value;
3287 }
3288 });
3289 return res;
3290}
3291function getProperty(object, key) {
3292 return object[key];
3293}
3294function setProperty(object, key, value) {
3295 object[key] = value;
3296}
3297/**
3298 * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with
3299 * a value of `undefined`.
3300 */
3301function copyPropertiesIfPresent(source, target) {
3302 var properties = [];
3303 for (var _i = 2; _i < arguments.length; _i++) {
3304 properties[_i - 2] = arguments[_i];
3305 }
3306 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(properties, function (p) { return copyPropertyIfPresent(source, target, p); });
3307}
3308/**
3309 * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a
3310 * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.
3311 */
3312function copyPropertyIfPresent(source, target, property, transform) {
3313 var value = getProperty(source, property);
3314 if (value !== undefined) {
3315 setProperty(target, property, transform ? transform(value) : value);
3316 }
3317}
3318function getAllKeysInObjects(objects) {
3319 var allValues = {};
3320 objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {
3321 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(Object.keys(obj), function (key) { return allValues[key] = null; });
3322 });
3323 return Object.keys(allValues);
3324}
3325function getAllValuesInObject(obj) {
3326 if (!obj) {
3327 return [];
3328 }
3329 var anyObject = Object;
3330 if (typeof anyObject.values === 'function') {
3331 return anyObject.values(obj);
3332 }
3333 var ret = [];
3334 for (var key in obj) {
3335 if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {
3336 ret.push(obj[key]);
3337 }
3338 }
3339 return ret;
3340}
3341function mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {
3342 if (copyUndefined === void 0) { copyUndefined = true; }
3343 if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }
3344 if (!Object(_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(source)) {
3345 return;
3346 }
3347 iterateObject(source, function (key, sourceValue) {
3348 var destValue = dest[key];
3349 if (destValue === sourceValue) {
3350 return;
3351 }
3352 // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef
3353 // and Column Types) would result in params getting shared between objects.
3354 // by putting an empty value into destValue first, it means we end up copying over values from
3355 // the source object, rather than just copying in the source object in it's entirety.
3356 if (makeCopyOfSimpleObjects) {
3357 var objectIsDueToBeCopied = destValue == null && sourceValue != null;
3358 if (objectIsDueToBeCopied) {
3359 // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed
3360 // to a Class instance (such as ColumnAPI instance).
3361 var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;
3362 var dontCopy = sourceIsSimpleObject;
3363 if (dontCopy) {
3364 destValue = {};
3365 dest[key] = destValue;
3366 }
3367 }
3368 }
3369 if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {
3370 mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);
3371 }
3372 else if (copyUndefined || sourceValue !== undefined) {
3373 dest[key] = sourceValue;
3374 }
3375 });
3376}
3377function assign(object) {
3378 var sources = [];
3379 for (var _i = 1; _i < arguments.length; _i++) {
3380 sources[_i - 1] = arguments[_i];
3381 }
3382 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(sources, function (source) { return iterateObject(source, function (key, value) { return object[key] = value; }); });
3383 return object;
3384}
3385function missingOrEmptyObject(value) {
3386 return Object(_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(value) || Object.keys(value).length === 0;
3387}
3388function get(source, expression, defaultValue) {
3389 if (source == null) {
3390 return defaultValue;
3391 }
3392 var keys = expression.split('.');
3393 var objectToRead = source;
3394 while (keys.length > 1) {
3395 objectToRead = objectToRead[keys.shift()];
3396 if (objectToRead == null) {
3397 return defaultValue;
3398 }
3399 }
3400 var value = objectToRead[keys[0]];
3401 return value != null ? value : defaultValue;
3402}
3403function set(target, expression, value) {
3404 if (target == null) {
3405 return;
3406 }
3407 var keys = expression.split('.');
3408 var objectToUpdate = target;
3409 while (keys.length > 1) {
3410 objectToUpdate = objectToUpdate[keys.shift()];
3411 if (objectToUpdate == null) {
3412 return;
3413 }
3414 }
3415 objectToUpdate[keys[0]] = value;
3416}
3417function deepFreeze(object) {
3418 Object.freeze(object);
3419 Object(_array__WEBPACK_IMPORTED_MODULE_1__["forEach"])(Object(_generic__WEBPACK_IMPORTED_MODULE_0__["values"])(object), function (v) {
3420 if (isNonNullObject(v) || typeof v === 'function') {
3421 deepFreeze(v);
3422 }
3423 });
3424 return object;
3425}
3426function getValueUsingField(data, field, fieldContainsDots) {
3427 if (!field || !data) {
3428 return;
3429 }
3430 // if no '.', then it's not a deep value
3431 if (!fieldContainsDots) {
3432 return data[field];
3433 }
3434 // otherwise it is a deep value, so need to dig for it
3435 var fields = field.split('.');
3436 var currentObject = data;
3437 for (var i = 0; i < fields.length; i++) {
3438 if (currentObject == null) {
3439 return undefined;
3440 }
3441 currentObject = currentObject[fields[i]];
3442 }
3443 return currentObject;
3444}
3445// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a
3446// memory leak if user is not disposing of the GridAPI or ColumnApi references
3447function removeAllReferences(obj, objectName) {
3448 Object.keys(obj).forEach(function (key) {
3449 var value = obj[key];
3450 // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)
3451 // we don't care about
3452 if (typeof value === 'object') {
3453 obj[key] = undefined;
3454 }
3455 });
3456 var proto = Object.getPrototypeOf(obj);
3457 var properties = {};
3458 Object.keys(proto).forEach(function (key) {
3459 var value = proto[key];
3460 // leave all basic types - this is needed for GridAPI to leave the "destroyed: boolean" attribute alone
3461 if (typeof value === 'function') {
3462 var func = function () {
3463 console.warn("AG Grid: " + objectName + " function " + key + "() cannot be called as the grid has been destroyed.\n Please don't call grid API functions on destroyed grids - as a matter of fact you shouldn't\n be keeping the API reference, your application has a memory leak! Remove the API reference\n when the grid is destroyed.");
3464 };
3465 properties[key] = { value: func, writable: true };
3466 }
3467 });
3468 Object.defineProperties(obj, properties);
3469}
3470function isNonNullObject(value) {
3471 return typeof value === 'object' && value !== null;
3472}
3473
3474
3475/***/ }),
3476/* 14 */
3477/***/ (function(module, __webpack_exports__, __webpack_require__) {
3478
3479"use strict";
3480__webpack_require__.r(__webpack_exports__);
3481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstExistingValue", function() { return firstExistingValue; });
3482/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "anyExists", function() { return anyExists; });
3483/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "existsAndNotEmpty", function() { return existsAndNotEmpty; });
3484/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; });
3485/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areEqual", function() { return areEqual; });
3486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareArrays", function() { return compareArrays; });
3487/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return shallowCompare; });
3488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortNumerically", function() { return sortNumerically; });
3489/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeRepeatsFromArray", function() { return removeRepeatsFromArray; });
3490/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFromArray", function() { return removeFromArray; });
3491/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllFromArray", function() { return removeAllFromArray; });
3492/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertIntoArray", function() { return insertIntoArray; });
3493/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrayIntoArray", function() { return insertArrayIntoArray; });
3494/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveInArray", function() { return moveInArray; });
3495/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "includes", function() { return includes; });
3496/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return flatten; });
3497/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pushAll", function() { return pushAll; });
3498/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toStrings", function() { return toStrings; });
3499/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; });
3500/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fill", function() { return fill; });
3501/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "every", function() { return every; });
3502/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "some", function() { return some; });
3503/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEach", function() { return forEach; });
3504/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEachReverse", function() { return forEachReverse; });
3505/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; });
3506/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; });
3507/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; });
3508/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEachSnapshotFirst", function() { return forEachSnapshotFirst; });
3509/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
3510/**
3511 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3512 * @version v25.3.0
3513 * @link http://www.ag-grid.com/
3514 * @license MIT
3515 */
3516
3517function firstExistingValue() {
3518 var values = [];
3519 for (var _i = 0; _i < arguments.length; _i++) {
3520 values[_i] = arguments[_i];
3521 }
3522 for (var i = 0; i < values.length; i++) {
3523 var value = values[i];
3524 if (Object(_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(value)) {
3525 return value;
3526 }
3527 }
3528 return null;
3529}
3530/** @deprecated */
3531function anyExists(values) {
3532 return values && firstExistingValue(values) != null;
3533}
3534function existsAndNotEmpty(value) {
3535 return value != null && value.length > 0;
3536}
3537function last(arr) {
3538 if (!arr || !arr.length) {
3539 return;
3540 }
3541 return arr[arr.length - 1];
3542}
3543function areEqual(a, b, comparator) {
3544 if (a == null && b == null) {
3545 return true;
3546 }
3547 return a != null &&
3548 b != null &&
3549 a.length === b.length &&
3550 every(a, function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });
3551}
3552/** @deprecated */
3553function compareArrays(array1, array2) {
3554 return areEqual(array1, array2);
3555}
3556/** @deprecated */
3557function shallowCompare(arr1, arr2) {
3558 return areEqual(arr1, arr2);
3559}
3560function sortNumerically(array) {
3561 return array.sort(function (a, b) { return a - b; });
3562}
3563function removeRepeatsFromArray(array, object) {
3564 if (!array) {
3565 return;
3566 }
3567 for (var index = array.length - 2; index >= 0; index--) {
3568 var thisOneMatches = array[index] === object;
3569 var nextOneMatches = array[index + 1] === object;
3570 if (thisOneMatches && nextOneMatches) {
3571 array.splice(index + 1, 1);
3572 }
3573 }
3574}
3575function removeFromArray(array, object) {
3576 var index = array.indexOf(object);
3577 if (index >= 0) {
3578 array.splice(index, 1);
3579 }
3580}
3581function removeAllFromArray(array, toRemove) {
3582 forEach(toRemove, function (item) { return removeFromArray(array, item); });
3583}
3584function insertIntoArray(array, object, toIndex) {
3585 array.splice(toIndex, 0, object);
3586}
3587function insertArrayIntoArray(dest, src, toIndex) {
3588 if (dest == null || src == null) {
3589 return;
3590 }
3591 // put items in backwards, otherwise inserted items end up in reverse order
3592 for (var i = src.length - 1; i >= 0; i--) {
3593 var item = src[i];
3594 insertIntoArray(dest, item, toIndex);
3595 }
3596}
3597function moveInArray(array, objectsToMove, toIndex) {
3598 // first take out items from the array
3599 removeAllFromArray(array, objectsToMove);
3600 // now add the objects, in same order as provided to us, that means we start at the end
3601 // as the objects will be pushed to the right as they are inserted
3602 forEach(objectsToMove.slice().reverse(), function (obj) { return insertIntoArray(array, obj, toIndex); });
3603}
3604function includes(array, value) {
3605 return array.indexOf(value) > -1;
3606}
3607function flatten(arrayOfArrays) {
3608 return [].concat.apply([], arrayOfArrays);
3609}
3610function pushAll(target, source) {
3611 if (source == null || target == null) {
3612 return;
3613 }
3614 forEach(source, function (value) { return target.push(value); });
3615}
3616function toStrings(array) {
3617 return map(array, _generic__WEBPACK_IMPORTED_MODULE_0__["toStringOrNull"]);
3618}
3619function findIndex(collection, predicate) {
3620 for (var i = 0; i < collection.length; i++) {
3621 if (predicate(collection[i], i, collection)) {
3622 return i;
3623 }
3624 }
3625 return -1;
3626}
3627function fill(collection, value, start, end) {
3628 if (value === void 0) { value = null; }
3629 if (start === void 0) { start = 0; }
3630 if (end === void 0) { end = collection.length; }
3631 for (var i = start; i < end; i++) {
3632 collection[i] = value;
3633 }
3634 return collection;
3635}
3636/**
3637 * The implementation of Array.prototype.every in browsers is always slower than just using a simple for loop, so
3638 * use this for improved performance.
3639 * https://jsbench.me/bek91dtit8/
3640 */
3641function every(list, predicate) {
3642 if (list == null) {
3643 return true;
3644 }
3645 for (var i = 0; i < list.length; i++) {
3646 if (!predicate(list[i], i)) {
3647 return false;
3648 }
3649 }
3650 return true;
3651}
3652/**
3653 * The implementation of Array.prototype.some in browsers is always slower than just using a simple for loop, so
3654 * use this for improved performance.
3655 * https://jsbench.me/5dk91e4tmt/
3656 */
3657function some(list, predicate) {
3658 if (list == null) {
3659 return false;
3660 }
3661 for (var i = 0; i < list.length; i++) {
3662 if (predicate(list[i], i)) {
3663 return true;
3664 }
3665 }
3666 return false;
3667}
3668/**
3669 * The implementation of Array.prototype.forEach in browsers is often slower than just using a simple for loop, so
3670 * use this for improved performance.
3671 * https://jsbench.me/apk91elt8a/
3672 */
3673function forEach(list, action) {
3674 if (list == null) {
3675 return;
3676 }
3677 for (var i = 0; i < list.length; i++) {
3678 action(list[i], i);
3679 }
3680}
3681function forEachReverse(list, action) {
3682 if (list == null) {
3683 return;
3684 }
3685 for (var i = list.length - 1; i >= 0; i--) {
3686 action(list[i], i);
3687 }
3688}
3689/**
3690 * The implementation of Array.prototype.map in browsers is generally the same as just using a simple for loop. However,
3691 * Firefox does exhibit some difference, and this performs no worse in other browsers, so use this if you want improved
3692 * performance.
3693 * https://jsbench.me/njk91ez8pc/
3694 */
3695function map(list, process) {
3696 if (list == null) {
3697 return null;
3698 }
3699 var mapped = [];
3700 for (var i = 0; i < list.length; i++) {
3701 mapped.push(process(list[i], i));
3702 }
3703 return mapped;
3704}
3705/**
3706 * The implementation of Array.prototype.filter in browsers is always slower than just using a simple for loop, so
3707 * use this for improved performance.
3708 * https://jsbench.me/7bk91fk08c/
3709 */
3710function filter(list, predicate) {
3711 if (list == null) {
3712 return null;
3713 }
3714 var filtered = [];
3715 for (var i = 0; i < list.length; i++) {
3716 if (predicate(list[i], i)) {
3717 filtered.push(list[i]);
3718 }
3719 }
3720 return filtered;
3721}
3722/**
3723 * The implementation of Array.prototype.reduce in browsers is generally the same as just using a simple for loop. However,
3724 * Chrome does exhibit some difference, and this performs no worse in other browsers, so use this if you want improved
3725 * performance.
3726 * https://jsbench.me/7vk92n6u1f/
3727 */
3728function reduce(list, step, initial) {
3729 if (list == null || initial == null) {
3730 return null;
3731 }
3732 var result = initial;
3733 for (var i = 0; i < list.length; i++) {
3734 result = step(result, list[i], i);
3735 }
3736 return result;
3737}
3738/** @deprecated */
3739function forEachSnapshotFirst(list, callback) {
3740 if (!list) {
3741 return;
3742 }
3743 var arrayCopy = list.slice(0);
3744 arrayCopy.forEach(callback);
3745}
3746
3747
3748/***/ }),
3749/* 15 */
3750/***/ (function(module, __webpack_exports__, __webpack_require__) {
3751
3752"use strict";
3753__webpack_require__.r(__webpack_exports__);
3754/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doOnce", function() { return doOnce; });
3755/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFunctionName", function() { return getFunctionName; });
3756/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFunctionParameters", function() { return getFunctionParameters; });
3757/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunction", function() { return isFunction; });
3758/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeInAWhile", function() { return executeInAWhile; });
3759/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeNextVMTurn", function() { return executeNextVMTurn; });
3760/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeAfter", function() { return executeAfter; });
3761/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; });
3762/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waitUntil", function() { return waitUntil; });
3763/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return compose; });
3764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "callIfPresent", function() { return callIfPresent; });
3765/**
3766 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3767 * @version v25.3.0
3768 * @link http://www.ag-grid.com/
3769 * @license MIT
3770 */
3771var FUNCTION_STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
3772var FUNCTION_ARGUMENT_NAMES = /([^\s,]+)/g;
3773var doOnceFlags = {};
3774/**
3775 * If the key was passed before, then doesn't execute the func
3776 * @param {Function} func
3777 * @param {string} key
3778 */
3779function doOnce(func, key) {
3780 if (doOnceFlags[key]) {
3781 return;
3782 }
3783 func();
3784 doOnceFlags[key] = true;
3785}
3786function getFunctionName(funcConstructor) {
3787 // for every other browser in the world
3788 if (funcConstructor.name) {
3789 return funcConstructor.name;
3790 }
3791 // for the pestilence that is ie11
3792 var matches = /function\s+([^\(]+)/.exec(funcConstructor.toString());
3793 return matches && matches.length === 2 ? matches[1].trim() : null;
3794}
3795/** @deprecated */
3796function getFunctionParameters(func) {
3797 var fnStr = func.toString().replace(FUNCTION_STRIP_COMMENTS, '');
3798 return fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(FUNCTION_ARGUMENT_NAMES) || [];
3799}
3800function isFunction(val) {
3801 return !!(val && val.constructor && val.call && val.apply);
3802}
3803function executeInAWhile(funcs) {
3804 executeAfter(funcs, 400);
3805}
3806var executeNextVMTurnFuncs = [];
3807var executeNextVMTurnPending = false;
3808function executeNextVMTurn(func) {
3809 executeNextVMTurnFuncs.push(func);
3810 if (executeNextVMTurnPending) {
3811 return;
3812 }
3813 executeNextVMTurnPending = true;
3814 window.setTimeout(function () {
3815 var funcsCopy = executeNextVMTurnFuncs.slice();
3816 executeNextVMTurnFuncs.length = 0;
3817 executeNextVMTurnPending = false;
3818 funcsCopy.forEach(function (func) { return func(); });
3819 }, 0);
3820}
3821function executeAfter(funcs, milliseconds) {
3822 if (milliseconds === void 0) { milliseconds = 0; }
3823 if (funcs.length > 0) {
3824 window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);
3825 }
3826}
3827/**
3828 * from https://stackoverflow.com/questions/24004791/can-someone-explain-the-debounce-function-in-javascript
3829 * @param {Function} func The function to be debounced
3830 * @param {number} wait The time in ms to debounce
3831 * @param {boolean} immediate If it should run immediately or wait for the initial debounce delay
3832 * @return {Function} The debounced function
3833 */
3834function debounce(func, wait, immediate) {
3835 if (immediate === void 0) { immediate = false; }
3836 // 'private' variable for instance
3837 // The returned function will be able to reference this due to closure.
3838 // Each call to the returned function will share this common timer.
3839 var timeout;
3840 // Calling debounce returns a new anonymous function
3841 return function () {
3842 var args = [];
3843 for (var _i = 0; _i < arguments.length; _i++) {
3844 args[_i] = arguments[_i];
3845 }
3846 // reference the context and args for the setTimeout function
3847 var context = this;
3848 // Should the function be called now? If immediate is true
3849 // and not already in a timeout then the answer is: Yes
3850 var callNow = immediate && !timeout;
3851 // This is the basic debounce behaviour where you can call this
3852 // function several times, but it will only execute once
3853 // [before or after imposing a delay].
3854 // Each time the returned function is called, the timer starts over.
3855 window.clearTimeout(timeout);
3856 // Set the new timeout
3857 timeout = window.setTimeout(function () {
3858 // Inside the timeout function, clear the timeout variable
3859 // which will let the next execution run when in 'immediate' mode
3860 timeout = null;
3861 // Check if the function already ran with the immediate flag
3862 if (!immediate) {
3863 // Call the original function with apply
3864 // apply lets you define the 'this' object as well as the arguments
3865 // (both captured before setTimeout)
3866 func.apply(context, args);
3867 }
3868 }, wait);
3869 // Immediate mode and no wait timer? Execute the function..
3870 if (callNow) {
3871 func.apply(context, args);
3872 }
3873 };
3874}
3875function waitUntil(condition, callback, timeout, timeoutMessage) {
3876 if (timeout === void 0) { timeout = 100; }
3877 var timeStamp = new Date().getTime();
3878 var interval = null;
3879 var executed = false;
3880 var internalCallback = function () {
3881 var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;
3882 if (condition() || reachedTimeout) {
3883 callback();
3884 executed = true;
3885 if (interval != null) {
3886 window.clearInterval(interval);
3887 interval = null;
3888 }
3889 if (reachedTimeout && timeoutMessage) {
3890 console.warn(timeoutMessage);
3891 }
3892 }
3893 };
3894 internalCallback();
3895 if (!executed) {
3896 interval = window.setInterval(internalCallback, 10);
3897 }
3898}
3899function compose() {
3900 var fns = [];
3901 for (var _i = 0; _i < arguments.length; _i++) {
3902 fns[_i] = arguments[_i];
3903 }
3904 return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };
3905}
3906function callIfPresent(func) {
3907 if (func) {
3908 func();
3909 }
3910}
3911
3912
3913/***/ }),
3914/* 16 */
3915/***/ (function(module, __webpack_exports__, __webpack_require__) {
3916
3917"use strict";
3918__webpack_require__.r(__webpack_exports__);
3919/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return Constants; });
3920/**
3921 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3922 * @version v25.3.0
3923 * @link http://www.ag-grid.com/
3924 * @license MIT
3925 */
3926var Constants = /** @class */ (function () {
3927 function Constants() {
3928 }
3929 Constants.ROW_BUFFER_SIZE = 10;
3930 Constants.LAYOUT_INTERVAL = 500;
3931 Constants.BATCH_WAIT_MILLIS = 50;
3932 Constants.EXPORT_TYPE_DRAG_COPY = 'dragCopy';
3933 Constants.EXPORT_TYPE_CLIPBOARD = 'clipboard';
3934 Constants.EXPORT_TYPE_EXCEL = 'excel';
3935 Constants.EXPORT_TYPE_CSV = 'csv';
3936 Constants.ROW_MODEL_TYPE_INFINITE = 'infinite';
3937 Constants.ROW_MODEL_TYPE_VIEWPORT = 'viewport';
3938 Constants.ROW_MODEL_TYPE_CLIENT_SIDE = 'clientSide';
3939 Constants.ROW_MODEL_TYPE_SERVER_SIDE = 'serverSide';
3940 Constants.ALWAYS = 'always';
3941 Constants.ONLY_WHEN_GROUPING = 'onlyWhenGrouping';
3942 Constants.PINNED_TOP = 'top';
3943 Constants.PINNED_BOTTOM = 'bottom';
3944 Constants.DOM_LAYOUT_NORMAL = 'normal';
3945 Constants.DOM_LAYOUT_PRINT = 'print';
3946 Constants.DOM_LAYOUT_AUTO_HEIGHT = 'autoHeight';
3947 Constants.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';
3948 Constants.SOURCE_PASTE = 'paste';
3949 Constants.PINNED_RIGHT = 'right';
3950 Constants.PINNED_LEFT = 'left';
3951 Constants.SORT_ASC = 'asc';
3952 Constants.SORT_DESC = 'desc';
3953 Constants.INPUT_SELECTOR = 'input, select, button, textarea';
3954 Constants.FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea';
3955 Constants.FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled, .ag-disabled *';
3956 return Constants;
3957}());
3958
3959
3960
3961/***/ }),
3962/* 17 */
3963/***/ (function(module, __webpack_exports__, __webpack_require__) {
3964
3965"use strict";
3966__webpack_require__.r(__webpack_exports__);
3967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return ModuleNames; });
3968/**
3969 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
3970 * @version v25.3.0
3971 * @link http://www.ag-grid.com/
3972 * @license MIT
3973 */
3974var ModuleNames;
3975(function (ModuleNames) {
3976 // when using modules, user references this
3977 ModuleNames["CommunityCoreModule"] = "@ag-grid-community/core";
3978 // when not using modules, user references this
3979 ModuleNames["CommunityAllModules"] = "@ag-grid-community/all";
3980 // community modules
3981 ModuleNames["InfiniteRowModelModule"] = "@ag-grid-community/infinite-row-model";
3982 ModuleNames["ClientSideRowModelModule"] = "@ag-grid-community/client-side-row-model";
3983 ModuleNames["CsvExportModule"] = "@ag-grid-community/csv-export";
3984 // enterprise core - users never import on this, but other enterprise modules do
3985 ModuleNames["EnterpriseCoreModule"] = "@ag-grid-enterprise/core";
3986 // when not using modules, user references this
3987 ModuleNames["EnterpriseAllModules"] = "@ag-grid-enterprise/all";
3988 // enterprise modules
3989 ModuleNames["RowGroupingModule"] = "@ag-grid-enterprise/row-grouping";
3990 ModuleNames["ColumnToolPanelModule"] = "@ag-grid-enterprise/column-tool-panel";
3991 ModuleNames["FiltersToolPanelModule"] = "@ag-grid-enterprise/filter-tool-panel";
3992 ModuleNames["MenuModule"] = "@ag-grid-enterprise/menu";
3993 ModuleNames["SetFilterModule"] = "@ag-grid-enterprise/set-filter";
3994 ModuleNames["MultiFilterModule"] = "@ag-grid-enterprise/multi-filter";
3995 ModuleNames["StatusBarModule"] = "@ag-grid-enterprise/status-bar";
3996 ModuleNames["SideBarModule"] = "@ag-grid-enterprise/side-bar";
3997 ModuleNames["RangeSelectionModule"] = "@ag-grid-enterprise/range-selection";
3998 ModuleNames["MasterDetailModule"] = "@ag-grid-enterprise/master-detail";
3999 ModuleNames["RichSelectModule"] = "@ag-grid-enterprise/rich-select";
4000 ModuleNames["GridChartsModule"] = "@ag-grid-enterprise/charts";
4001 ModuleNames["ViewportRowModelModule"] = "@ag-grid-enterprise/viewport-row-model";
4002 ModuleNames["ServerSideRowModelModule"] = "@ag-grid-enterprise/server-side-row-model";
4003 ModuleNames["ExcelExportModule"] = "@ag-grid-enterprise/excel-export";
4004 ModuleNames["ClipboardModule"] = "@ag-grid-enterprise/clipboard";
4005 ModuleNames["DateTimeCellEditorModule"] = "@ag-grid-enterprise/date-time-cell-editor";
4006 // framework wrappers currently don't provide beans, comps etc, so no need to be modules,
4007 // however i argue they should be as in theory they 'could' provide beans etc
4008 ModuleNames["AngularModule"] = "@ag-grid-community/angular";
4009 ModuleNames["ReactModule"] = "@ag-grid-community/react";
4010 ModuleNames["VueModule"] = "@ag-grid-community/vue";
4011 ModuleNames["PolymerModule"] = "@ag-grid-community/polymer";
4012 // and then this, which is definitely not a grid module, as it should not have any dependency
4013 // on the grid (ie shouldn't even reference the Module interface)
4014 // ChartsModule = "@ag-grid-community/charts-core",
4015})(ModuleNames || (ModuleNames = {}));
4016
4017
4018/***/ }),
4019/* 18 */
4020/***/ (function(module, __webpack_exports__, __webpack_require__) {
4021
4022"use strict";
4023__webpack_require__.r(__webpack_exports__);
4024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return ModuleRegistry; });
4025/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
4026/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
4027/**
4028 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4029 * @version v25.3.0
4030 * @link http://www.ag-grid.com/
4031 * @license MIT
4032 */
4033
4034
4035var ModuleRegistry = /** @class */ (function () {
4036 function ModuleRegistry() {
4037 }
4038 ModuleRegistry.register = function (module, moduleBased) {
4039 if (moduleBased === void 0) { moduleBased = true; }
4040 ModuleRegistry.modulesMap[module.moduleName] = module;
4041 if (ModuleRegistry.moduleBased === undefined) {
4042 ModuleRegistry.moduleBased = moduleBased;
4043 }
4044 else {
4045 if (ModuleRegistry.moduleBased !== moduleBased) {
4046 Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["doOnce"])(function () {
4047 console.warn("AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms.");
4048 console.warn('Please see https://www.ag-grid.com/javascript-table/packages-modules/ for more information.');
4049 }, 'ModulePackageCheck');
4050 }
4051 }
4052 };
4053 // noinspection JSUnusedGlobalSymbols
4054 ModuleRegistry.registerModules = function (modules, moduleBased) {
4055 if (moduleBased === void 0) { moduleBased = true; }
4056 if (!modules) {
4057 return;
4058 }
4059 modules.forEach(function (module) { return ModuleRegistry.register(module, moduleBased); });
4060 };
4061 ModuleRegistry.assertRegistered = function (moduleName, reason) {
4062 if (this.isRegistered(moduleName)) {
4063 return true;
4064 }
4065 var warningKey = reason + moduleName;
4066 var warningMessage = "AG Grid: unable to use " + reason + " as module " + moduleName + " is not present. Please see: https://www.ag-grid.com/javascript-table/modules/";
4067 Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["doOnce"])(function () {
4068 console.warn(warningMessage);
4069 }, warningKey);
4070 return false;
4071 };
4072 ModuleRegistry.isRegistered = function (moduleName) {
4073 return !!ModuleRegistry.modulesMap[moduleName];
4074 };
4075 ModuleRegistry.getRegisteredModules = function () {
4076 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_1__["values"])(ModuleRegistry.modulesMap);
4077 };
4078 ModuleRegistry.isPackageBased = function () {
4079 return !ModuleRegistry.moduleBased;
4080 };
4081 // having in a map a) removes duplicates and b) allows fast lookup
4082 ModuleRegistry.modulesMap = {};
4083 return ModuleRegistry;
4084}());
4085
4086
4087
4088/***/ }),
4089/* 19 */
4090/***/ (function(module, __webpack_exports__, __webpack_require__) {
4091
4092"use strict";
4093__webpack_require__.r(__webpack_exports__);
4094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultColumnTypes", function() { return DefaultColumnTypes; });
4095/**
4096 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4097 * @version v25.3.0
4098 * @link http://www.ag-grid.com/
4099 * @license MIT
4100 */
4101var DefaultColumnTypes = {
4102 numericColumn: {
4103 headerClass: 'ag-right-aligned-header',
4104 cellClass: 'ag-right-aligned-cell'
4105 },
4106 rightAligned: {
4107 headerClass: 'ag-right-aligned-header',
4108 cellClass: 'ag-right-aligned-cell'
4109 }
4110};
4111
4112
4113/***/ }),
4114/* 20 */
4115/***/ (function(module, __webpack_exports__, __webpack_require__) {
4116
4117"use strict";
4118__webpack_require__.r(__webpack_exports__);
4119/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return BeanStub; });
4120/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
4121/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
4122/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
4123/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21);
4124/**
4125 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4126 * @version v25.3.0
4127 * @link http://www.ag-grid.com/
4128 * @license MIT
4129 */
4130var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4131 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4132 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4133 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;
4134 return c > 3 && r && Object.defineProperty(target, key, r), r;
4135};
4136
4137
4138
4139
4140var BeanStub = /** @class */ (function () {
4141 function BeanStub() {
4142 var _this = this;
4143 this.destroyFunctions = [];
4144 this.destroyed = false;
4145 // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive
4146 // prevents vue from creating proxies for created objects and prevents identity related issues
4147 this.__v_skip = true;
4148 this.getContext = function () { return _this.context; };
4149 this.isAlive = function () { return !_this.destroyed; };
4150 }
4151 // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are
4152 // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed
4153 // points to a bean or component that was not properly disposed of.
4154 // constructor() {
4155 // setTimeout(()=> {
4156 // if (this.isAlive()) {
4157 // let prototype: any = Object.getPrototypeOf(this);
4158 // const constructor: any = prototype.constructor;
4159 // const constructorString = constructor.toString();
4160 // const beanName = constructorString.substring(9, constructorString.indexOf("("));
4161 // console.log('is alive ' + beanName);
4162 // }
4163 // }, 5000);
4164 // }
4165 // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean
4166 BeanStub.prototype.getFrameworkOverrides = function () {
4167 return this.frameworkOverrides;
4168 };
4169 BeanStub.prototype.destroy = function () {
4170 // let prototype: any = Object.getPrototypeOf(this);
4171 // const constructor: any = prototype.constructor;
4172 // const constructorString = constructor.toString();
4173 // const beanName = constructorString.substring(9, constructorString.indexOf("("));
4174 this.destroyFunctions.forEach(function (func) { return func(); });
4175 this.destroyFunctions.length = 0;
4176 this.destroyed = true;
4177 this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });
4178 };
4179 BeanStub.prototype.addEventListener = function (eventType, listener) {
4180 if (!this.localEventService) {
4181 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
4182 }
4183 this.localEventService.addEventListener(eventType, listener);
4184 };
4185 BeanStub.prototype.removeEventListener = function (eventType, listener) {
4186 if (this.localEventService) {
4187 this.localEventService.removeEventListener(eventType, listener);
4188 }
4189 };
4190 BeanStub.prototype.dispatchEventAsync = function (event) {
4191 var _this = this;
4192 window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);
4193 };
4194 BeanStub.prototype.dispatchEvent = function (event) {
4195 if (this.localEventService) {
4196 this.localEventService.dispatchEvent(event);
4197 }
4198 };
4199 BeanStub.prototype.addManagedListener = function (object, event, listener) {
4200 var _this = this;
4201 if (this.destroyed) {
4202 return;
4203 }
4204 if (object instanceof HTMLElement) {
4205 Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["addSafePassiveEventListener"])(this.getFrameworkOverrides(), object, event, listener);
4206 }
4207 else {
4208 object.addEventListener(event, listener);
4209 }
4210 var destroyFunc = function () {
4211 object.removeEventListener(event, listener);
4212 _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });
4213 return null;
4214 };
4215 this.destroyFunctions.push(destroyFunc);
4216 return destroyFunc;
4217 };
4218 BeanStub.prototype.addDestroyFunc = function (func) {
4219 // if we are already destroyed, we execute the func now
4220 if (this.isAlive()) {
4221 this.destroyFunctions.push(func);
4222 }
4223 else {
4224 func();
4225 }
4226 };
4227 BeanStub.prototype.createManagedBean = function (bean, context) {
4228 var res = this.createBean(bean, context);
4229 this.addDestroyFunc(this.destroyBean.bind(this, bean, context));
4230 return res;
4231 };
4232 BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {
4233 return (context || this.getContext()).createBean(bean, afterPreCreateCallback);
4234 };
4235 BeanStub.prototype.destroyBean = function (bean, context) {
4236 return (context || this.getContext()).destroyBean(bean);
4237 };
4238 BeanStub.prototype.destroyBeans = function (beans, context) {
4239 var _this = this;
4240 if (beans) {
4241 Object(_utils_array__WEBPACK_IMPORTED_MODULE_2__["forEach"])(beans, function (bean) { return _this.destroyBean(bean, context); });
4242 }
4243 return [];
4244 };
4245 BeanStub.EVENT_DESTROYED = 'destroyed';
4246 __decorate([
4247 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('frameworkOverrides')
4248 ], BeanStub.prototype, "frameworkOverrides", void 0);
4249 __decorate([
4250 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('context')
4251 ], BeanStub.prototype, "context", void 0);
4252 __decorate([
4253 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('eventService')
4254 ], BeanStub.prototype, "eventService", void 0);
4255 __decorate([
4256 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
4257 ], BeanStub.prototype, "gridOptionsWrapper", void 0);
4258 __decorate([
4259 _context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
4260 ], BeanStub.prototype, "destroy", null);
4261 return BeanStub;
4262}());
4263
4264
4265
4266/***/ }),
4267/* 21 */
4268/***/ (function(module, __webpack_exports__, __webpack_require__) {
4269
4270"use strict";
4271__webpack_require__.r(__webpack_exports__);
4272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopPropagationForAgGrid", function() { return stopPropagationForAgGrid; });
4273/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStopPropagationForAgGrid", function() { return isStopPropagationForAgGrid; });
4274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventSupported", function() { return isEventSupported; });
4275/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getComponentForEvent", function() { return getComponentForEvent; });
4276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addChangeListener", function() { return addChangeListener; });
4277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTarget", function() { return getTarget; });
4278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementInEventPath", function() { return isElementInEventPath; });
4279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createEventPath", function() { return createEventPath; });
4280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addAgGridEventPath", function() { return addAgGridEventPath; });
4281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventPath", function() { return getEventPath; });
4282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSafePassiveEventListener", function() { return addSafePassiveEventListener; });
4283/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
4284/**
4285 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4286 * @version v25.3.0
4287 * @link http://www.ag-grid.com/
4288 * @license MIT
4289 */
4290
4291var AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';
4292var PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];
4293var supports = {};
4294/**
4295 * a user once raised an issue - they said that when you opened a popup (eg context menu)
4296 * and then clicked on a selection checkbox, the popup wasn't closed. this is because the
4297 * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the
4298 * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).
4299 * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,
4300 * but we still let the event pass back to the body.
4301 * @param {Event} event
4302 */
4303function stopPropagationForAgGrid(event) {
4304 event[AG_GRID_STOP_PROPAGATION] = true;
4305}
4306function isStopPropagationForAgGrid(event) {
4307 return event[AG_GRID_STOP_PROPAGATION] === true;
4308}
4309var isEventSupported = (function () {
4310 var tags = {
4311 select: 'input',
4312 change: 'input',
4313 submit: 'form',
4314 reset: 'form',
4315 error: 'img',
4316 load: 'img',
4317 abort: 'img'
4318 };
4319 var eventChecker = function (eventName) {
4320 if (typeof supports[eventName] === 'boolean') {
4321 return supports[eventName];
4322 }
4323 var el = document.createElement(tags[eventName] || 'div');
4324 eventName = 'on' + eventName;
4325 var isSupported = (eventName in el);
4326 if (!isSupported) {
4327 el.setAttribute(eventName, 'return;');
4328 isSupported = typeof el[eventName] == 'function';
4329 }
4330 return supports[eventName] = isSupported;
4331 };
4332 return eventChecker;
4333})();
4334function getComponentForEvent(gridOptionsWrapper, event, type) {
4335 var sourceElement = getTarget(event);
4336 while (sourceElement) {
4337 var renderedComp = gridOptionsWrapper.getDomData(sourceElement, type);
4338 if (renderedComp) {
4339 return renderedComp;
4340 }
4341 sourceElement = sourceElement.parentElement;
4342 }
4343 return null;
4344}
4345/**
4346 * @deprecated
4347 * Adds all type of change listeners to an element, intended to be a text field
4348 * @param {HTMLElement} element
4349 * @param {EventListener} listener
4350 */
4351function addChangeListener(element, listener) {
4352 element.addEventListener('changed', listener);
4353 element.addEventListener('paste', listener);
4354 element.addEventListener('input', listener);
4355 // IE doesn't fire changed for special keys (eg delete, backspace), so need to
4356 // listen for this further ones
4357 element.addEventListener('keydown', listener);
4358 element.addEventListener('keyup', listener);
4359}
4360/**
4361 * srcElement is only available in IE. In all other browsers it is target
4362 * http://stackoverflow.com/questions/5301643/how-can-i-make-event-srcelement-work-in-firefox-and-what-does-it-mean
4363 * @param {Event} event
4364 * @returns {Element}
4365 */
4366function getTarget(event) {
4367 var eventNoType = event;
4368 return eventNoType.target || eventNoType.srcElement;
4369}
4370function isElementInEventPath(element, event) {
4371 if (!event || !element) {
4372 return false;
4373 }
4374 return getEventPath(event).indexOf(element) >= 0;
4375}
4376function createEventPath(event) {
4377 var res = [];
4378 var pointer = getTarget(event);
4379 while (pointer) {
4380 res.push(pointer);
4381 pointer = pointer.parentElement;
4382 }
4383 return res;
4384}
4385/**
4386 * firefox doesn't have event.path set, or any alternative to it, so we hack
4387 * it in. this is needed as it's to late to work out the path when the item is
4388 * removed from the dom. used by MouseEventService, where it works out if a click
4389 * was from the current grid, or a detail grid (master / detail).
4390 * @param {Event} event
4391 */
4392function addAgGridEventPath(event) {
4393 event.__agGridEventPath = getEventPath(event);
4394}
4395/**
4396 * Gets the path for an Event.
4397 * https://stackoverflow.com/questions/39245488/event-path-undefined-with-firefox-and-vue-js
4398 * https://developer.mozilla.org/en-US/docs/Web/API/Event
4399 * @param {Event} event
4400 * @returns {EventTarget[]}
4401 */
4402function getEventPath(event) {
4403 var eventNoType = event;
4404 if (eventNoType.deepPath) {
4405 // IE supports deep path
4406 return eventNoType.deepPath();
4407 }
4408 if (eventNoType.path) {
4409 // Chrome supports path
4410 return eventNoType.path;
4411 }
4412 if (eventNoType.composedPath) {
4413 // Firefox supports composePath
4414 return eventNoType.composedPath();
4415 }
4416 if (eventNoType.__agGridEventPath) {
4417 // Firefox supports composePath
4418 return eventNoType.__agGridEventPath;
4419 }
4420 // and finally, if none of the above worked,
4421 // we create the path ourselves
4422 return createEventPath(event);
4423}
4424function addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {
4425 var isPassive = Object(_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(PASSIVE_EVENTS, event);
4426 var options = isPassive ? { passive: true } : undefined;
4427 // this check is here for certain scenarios where I believe the user must be destroying
4428 // the grid somehow but continuing for it to be used
4429 if (frameworkOverrides && frameworkOverrides.addEventListener) {
4430 frameworkOverrides.addEventListener(eElement, event, listener, options);
4431 }
4432}
4433
4434
4435/***/ }),
4436/* 22 */
4437/***/ (function(module, __webpack_exports__, __webpack_require__) {
4438
4439"use strict";
4440__webpack_require__.r(__webpack_exports__);
4441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnController", function() { return ColumnController; });
4442/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
4443/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
4444/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
4445/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
4446/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
4447/* harmony import */ var _groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(25);
4448/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
4449/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16);
4450/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14);
4451/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
4452/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(26);
4453/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(27);
4454/**
4455 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
4456 * @version v25.3.0
4457 * @link http://www.ag-grid.com/
4458 * @license MIT
4459 */
4460var __extends = (undefined && undefined.__extends) || (function () {
4461 var extendStatics = function (d, b) {
4462 extendStatics = Object.setPrototypeOf ||
4463 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
4464 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
4465 return extendStatics(d, b);
4466 };
4467 return function (d, b) {
4468 extendStatics(d, b);
4469 function __() { this.constructor = d; }
4470 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4471 };
4472})();
4473var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4474 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4475 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4476 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;
4477 return c > 3 && r && Object.defineProperty(target, key, r), r;
4478};
4479var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
4480 return function (target, key) { decorator(target, key, paramIndex); }
4481};
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494var ColumnController = /** @class */ (function (_super) {
4495 __extends(ColumnController, _super);
4496 function ColumnController() {
4497 var _this = _super !== null && _super.apply(this, arguments) || this;
4498 // header row count, based on user provided columns
4499 _this.primaryHeaderRowCount = 0;
4500 _this.secondaryHeaderRowCount = 0;
4501 _this.secondaryColumnsPresent = false;
4502 // header row count, either above, or based on pivoting if we are pivoting
4503 _this.gridHeaderRowCount = 0;
4504 // leave level columns of the displayed trees
4505 _this.displayedColumnsLeft = [];
4506 _this.displayedColumnsRight = [];
4507 _this.displayedColumnsCenter = [];
4508 // all three lists above combined
4509 _this.displayedColumns = [];
4510 // for fast lookup, to see if a column or group is still displayed
4511 _this.displayedColumnsAndGroupsMap = {};
4512 // all columns to be rendered
4513 _this.viewportColumns = [];
4514 // all columns to be rendered in the centre
4515 _this.viewportColumnsCenter = [];
4516 _this.rowGroupColumns = [];
4517 _this.valueColumns = [];
4518 _this.pivotColumns = [];
4519 _this.ready = false;
4520 _this.autoGroupsNeedBuilding = false;
4521 _this.forceRecreateAutoGroups = false;
4522 _this.pivotMode = false;
4523 _this.bodyWidth = 0;
4524 _this.leftWidth = 0;
4525 _this.rightWidth = 0;
4526 _this.bodyWidthDirty = true;
4527 _this.colDefVersion = 0;
4528 _this.flexColsCalculatedAtLestOnce = false;
4529 return _this;
4530 }
4531 ColumnController.prototype.init = function () {
4532 this.suppressColumnVirtualisation = this.gridOptionsWrapper.isSuppressColumnVirtualisation();
4533 var pivotMode = this.gridOptionsWrapper.isPivotMode();
4534 if (this.isPivotSettingAllowed(pivotMode)) {
4535 this.pivotMode = pivotMode;
4536 }
4537 this.usingTreeData = this.gridOptionsWrapper.isTreeData();
4538 this.addManagedListener(this.gridOptionsWrapper, 'autoGroupColumnDef', this.onAutoGroupColumnDefChanged.bind(this));
4539 };
4540 ColumnController.prototype.onAutoGroupColumnDefChanged = function () {
4541 this.autoGroupsNeedBuilding = true;
4542 this.forceRecreateAutoGroups = true;
4543 this.updateGridColumns();
4544 this.updateDisplayedColumns('gridOptionsChanged');
4545 };
4546 ColumnController.prototype.getColDefVersion = function () {
4547 return this.colDefVersion;
4548 };
4549 ColumnController.prototype.setColumnDefs = function (columnDefs, source) {
4550 var _this = this;
4551 if (source === void 0) { source = 'api'; }
4552 var colsPreviouslyExisted = !!this.columnDefs;
4553 this.colDefVersion++;
4554 var raiseEventsFunc = this.compareColumnStatesAndRaiseEvents(source);
4555 this.columnDefs = columnDefs;
4556 // always invalidate cache on changing columns, as the column id's for the new columns
4557 // could overlap with the old id's, so the cache would return old values for new columns.
4558 this.valueCache.expire();
4559 // NOTE ==================
4560 // we should be destroying the existing columns and groups if they exist, for example, the original column
4561 // group adds a listener to the columns, it should be also removing the listeners
4562 this.autoGroupsNeedBuilding = true;
4563 var oldPrimaryColumns = this.primaryColumns;
4564 var oldPrimaryTree = this.primaryColumnTree;
4565 var balancedTreeResult = this.columnFactory.createColumnTree(columnDefs, true, oldPrimaryTree);
4566 this.primaryColumnTree = balancedTreeResult.columnTree;
4567 this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;
4568 this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);
4569 this.primaryColumnsMap = {};
4570 this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });
4571 this.extractRowGroupColumns(source, oldPrimaryColumns);
4572 this.extractPivotColumns(source, oldPrimaryColumns);
4573 this.extractValueColumns(source, oldPrimaryColumns);
4574 this.ready = true;
4575 this.updateGridColumns();
4576 if (colsPreviouslyExisted && this.gridColsArePrimary && this.gridOptionsWrapper.isApplyColumnDefOrder()) {
4577 this.orderGridColumnsLikePrimary();
4578 }
4579 this.updateDisplayedColumns(source);
4580 this.checkViewportColumns();
4581 // this event is not used by AG Grid, but left here for backwards compatibility,
4582 // in case applications use it
4583 this.dispatchEverythingChanged(source);
4584 raiseEventsFunc();
4585 this.dispatchNewColumnsLoaded();
4586 };
4587 ColumnController.prototype.dispatchNewColumnsLoaded = function () {
4588 var newColumnsLoadedEvent = {
4589 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED,
4590 api: this.gridApi,
4591 columnApi: this.columnApi
4592 };
4593 this.eventService.dispatchEvent(newColumnsLoadedEvent);
4594 };
4595 // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded
4596 ColumnController.prototype.dispatchEverythingChanged = function (source) {
4597 if (source === void 0) { source = 'api'; }
4598 var eventEverythingChanged = {
4599 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_EVERYTHING_CHANGED,
4600 api: this.gridApi,
4601 columnApi: this.columnApi,
4602 source: source
4603 };
4604 this.eventService.dispatchEvent(eventEverythingChanged);
4605 };
4606 ColumnController.prototype.orderGridColumnsLikePrimary = function () {
4607 var _this = this;
4608 this.gridColumns.sort(function (colA, colB) {
4609 var primaryIndexA = _this.primaryColumns.indexOf(colA);
4610 var primaryIndexB = _this.primaryColumns.indexOf(colB);
4611 // if both cols are present in primary, then we just return the position,
4612 // so position is maintained.
4613 var indexAPresent = primaryIndexA >= 0;
4614 var indexBPresent = primaryIndexB >= 0;
4615 if (indexAPresent && indexBPresent) {
4616 return primaryIndexA - primaryIndexB;
4617 }
4618 if (indexAPresent) {
4619 // B is auto group column, so put B first
4620 return 1;
4621 }
4622 if (indexBPresent) {
4623 // A is auto group column, so put A first
4624 return -1;
4625 }
4626 // otherwise both A and B are auto-group columns. so we just keep the order
4627 // as they were already in.
4628 var gridIndexA = _this.gridColumns.indexOf(colA);
4629 var gridIndexB = _this.gridColumns.indexOf(colB);
4630 return gridIndexA - gridIndexB;
4631 });
4632 };
4633 ColumnController.prototype.isAutoRowHeightActive = function () {
4634 return this.autoRowHeightColumns && this.autoRowHeightColumns.length > 0;
4635 };
4636 ColumnController.prototype.getAllAutoRowHeightCols = function () {
4637 return this.autoRowHeightColumns;
4638 };
4639 ColumnController.prototype.setViewport = function () {
4640 if (this.gridOptionsWrapper.isEnableRtl()) {
4641 this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;
4642 this.viewportRight = this.bodyWidth - this.scrollPosition;
4643 }
4644 else {
4645 this.viewportLeft = this.scrollPosition;
4646 this.viewportRight = this.scrollWidth + this.scrollPosition;
4647 }
4648 };
4649 // used by clipboard service, to know what columns to paste into
4650 ColumnController.prototype.getDisplayedColumnsStartingAt = function (column) {
4651 var currentColumn = column;
4652 var columns = [];
4653 while (currentColumn != null) {
4654 columns.push(currentColumn);
4655 currentColumn = this.getDisplayedColAfter(currentColumn);
4656 }
4657 return columns;
4658 };
4659 // checks what columns are currently displayed due to column virtualisation. fires an event
4660 // if the list of columns has changed.
4661 // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()
4662 ColumnController.prototype.checkViewportColumns = function () {
4663 // check displayCenterColumnTree exists first, as it won't exist when grid is initialising
4664 if (this.displayedColumnsCenter == null) {
4665 return;
4666 }
4667 var hashBefore = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');
4668 this.extractViewport();
4669 var hashAfter = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');
4670 if (hashBefore !== hashAfter) {
4671 var event_1 = {
4672 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED,
4673 api: this.gridApi,
4674 columnApi: this.columnApi
4675 };
4676 this.eventService.dispatchEvent(event_1);
4677 }
4678 };
4679 ColumnController.prototype.setViewportPosition = function (scrollWidth, scrollPosition) {
4680 if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {
4681 this.scrollWidth = scrollWidth;
4682 this.scrollPosition = scrollPosition;
4683 // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,
4684 // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the
4685 // virtual columns again
4686 this.bodyWidthDirty = true;
4687 this.setViewport();
4688 if (this.ready) {
4689 this.checkViewportColumns();
4690 }
4691 }
4692 };
4693 ColumnController.prototype.isPivotMode = function () {
4694 return this.pivotMode;
4695 };
4696 ColumnController.prototype.isPivotSettingAllowed = function (pivot) {
4697 if (pivot && this.gridOptionsWrapper.isTreeData()) {
4698 console.warn("AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'");
4699 return false;
4700 }
4701 return true;
4702 };
4703 ColumnController.prototype.setPivotMode = function (pivotMode, source) {
4704 if (source === void 0) { source = 'api'; }
4705 if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {
4706 return;
4707 }
4708 this.pivotMode = pivotMode;
4709 // we need to update grid columns to cover the scenario where user has groupSuppressAutoColumn=true, as
4710 // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),
4711 // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed
4712 this.autoGroupsNeedBuilding = true;
4713 this.updateGridColumns();
4714 this.updateDisplayedColumns(source);
4715 var event = {
4716 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED,
4717 api: this.gridApi,
4718 columnApi: this.columnApi
4719 };
4720 this.eventService.dispatchEvent(event);
4721 };
4722 ColumnController.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {
4723 if (!this.secondaryColumnsPresent || !this.secondaryColumns) {
4724 return null;
4725 }
4726 var valueColumnToFind = this.getPrimaryColumn(valueColKey);
4727 var foundColumn = null;
4728 this.secondaryColumns.forEach(function (column) {
4729 var thisPivotKeys = column.getColDef().pivotKeys;
4730 var pivotValueColumn = column.getColDef().pivotValueColumn;
4731 var pivotKeyMatches = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(thisPivotKeys, pivotKeys);
4732 var pivotValueMatches = pivotValueColumn === valueColumnToFind;
4733 if (pivotKeyMatches && pivotValueMatches) {
4734 foundColumn = column;
4735 }
4736 });
4737 return foundColumn;
4738 };
4739 ColumnController.prototype.setBeans = function (loggerFactory) {
4740 this.logger = loggerFactory.create('ColumnController');
4741 };
4742 ColumnController.prototype.setFirstRightAndLastLeftPinned = function (source) {
4743 var lastLeft;
4744 var firstRight;
4745 if (this.gridOptionsWrapper.isEnableRtl()) {
4746 lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;
4747 firstRight = this.displayedColumnsRight ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.displayedColumnsRight) : null;
4748 }
4749 else {
4750 lastLeft = this.displayedColumnsLeft ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.displayedColumnsLeft) : null;
4751 firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;
4752 }
4753 this.gridColumns.forEach(function (column) {
4754 column.setLastLeftPinned(column === lastLeft, source);
4755 column.setFirstRightPinned(column === firstRight, source);
4756 });
4757 };
4758 ColumnController.prototype.autoSizeColumns = function (keys, skipHeader, source) {
4759 // because of column virtualisation, we can only do this function on columns that are
4760 // actually rendered, as non-rendered columns (outside the viewport and not rendered
4761 // due to column virtualisation) are not present. this can result in all rendered columns
4762 // getting narrowed, which in turn introduces more rendered columns on the RHS which
4763 // did not get autosized in the original run, leaving the visible grid with columns on
4764 // the LHS sized, but RHS no. so we keep looping through the visible columns until
4765 // no more cols are available (rendered) to be resized
4766 var _this = this;
4767 if (source === void 0) { source = "api"; }
4768 // we autosize after animation frames finish in case any cell renderers need to complete first. this can
4769 // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid
4770 // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).
4771 this.animationFrameService.flushAllFrames();
4772 // keep track of which cols we have resized in here
4773 var columnsAutosized = [];
4774 // initialise with anything except 0 so that while loop executes at least once
4775 var changesThisTimeAround = -1;
4776 if (skipHeader == null) {
4777 skipHeader = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();
4778 }
4779 while (changesThisTimeAround !== 0) {
4780 changesThisTimeAround = 0;
4781 this.actionOnGridColumns(keys, function (column) {
4782 // if already autosized, skip it
4783 if (columnsAutosized.indexOf(column) >= 0) {
4784 return false;
4785 }
4786 // get how wide this col should be
4787 var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, skipHeader);
4788 // preferredWidth = -1 if this col is not on the screen
4789 if (preferredWidth > 0) {
4790 var newWidth = _this.normaliseColumnWidth(column, preferredWidth);
4791 column.setActualWidth(newWidth, source);
4792 columnsAutosized.push(column);
4793 changesThisTimeAround++;
4794 }
4795 return true;
4796 }, source);
4797 }
4798 this.fireColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');
4799 };
4800 ColumnController.prototype.fireColumnResizedEvent = function (columns, finished, source, flexColumns) {
4801 if (flexColumns === void 0) { flexColumns = null; }
4802 if (columns && columns.length) {
4803 var event_2 = {
4804 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_RESIZED,
4805 columns: columns,
4806 column: columns.length === 1 ? columns[0] : null,
4807 flexColumns: flexColumns,
4808 finished: finished,
4809 api: this.gridApi,
4810 columnApi: this.columnApi,
4811 source: source
4812 };
4813 this.eventService.dispatchEvent(event_2);
4814 }
4815 };
4816 ColumnController.prototype.autoSizeColumn = function (key, skipHeader, source) {
4817 if (source === void 0) { source = "api"; }
4818 if (key) {
4819 this.autoSizeColumns([key], skipHeader, source);
4820 }
4821 };
4822 ColumnController.prototype.autoSizeAllColumns = function (skipHeader, source) {
4823 if (source === void 0) { source = "api"; }
4824 var allDisplayedColumns = this.getAllDisplayedColumns();
4825 this.autoSizeColumns(allDisplayedColumns, skipHeader, source);
4826 };
4827 ColumnController.prototype.getColumnsFromTree = function (rootColumns) {
4828 var result = [];
4829 var recursiveFindColumns = function (childColumns) {
4830 for (var i = 0; i < childColumns.length; i++) {
4831 var child = childColumns[i];
4832 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
4833 result.push(child);
4834 }
4835 else if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
4836 recursiveFindColumns(child.getChildren());
4837 }
4838 }
4839 };
4840 recursiveFindColumns(rootColumns);
4841 return result;
4842 };
4843 ColumnController.prototype.getAllDisplayedTrees = function () {
4844 if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {
4845 return this.displayedTreeLeft
4846 .concat(this.displayedTreeCentre)
4847 .concat(this.displayedTreeRight);
4848 }
4849 return null;
4850 };
4851 // + columnSelectPanel
4852 ColumnController.prototype.getPrimaryColumnTree = function () {
4853 return this.primaryColumnTree;
4854 };
4855 // + gridPanel -> for resizing the body and setting top margin
4856 ColumnController.prototype.getHeaderRowCount = function () {
4857 return this.gridHeaderRowCount;
4858 };
4859 // + headerRenderer -> setting pinned body width
4860 ColumnController.prototype.getDisplayedTreeLeft = function () {
4861 return this.displayedTreeLeft;
4862 };
4863 // + headerRenderer -> setting pinned body width
4864 ColumnController.prototype.getDisplayedTreeRight = function () {
4865 return this.displayedTreeRight;
4866 };
4867 // + headerRenderer -> setting pinned body width
4868 ColumnController.prototype.getDisplayedTreeCentre = function () {
4869 return this.displayedTreeCentre;
4870 };
4871 // gridPanel -> ensureColumnVisible
4872 ColumnController.prototype.isColumnDisplayed = function (column) {
4873 return this.getAllDisplayedColumns().indexOf(column) >= 0;
4874 };
4875 // + csvCreator
4876 ColumnController.prototype.getAllDisplayedColumns = function () {
4877 return this.displayedColumns;
4878 };
4879 ColumnController.prototype.getViewportColumns = function () {
4880 return this.viewportColumns;
4881 };
4882 ColumnController.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {
4883 if (!this.colSpanActive) {
4884 return this.displayedColumnsLeft;
4885 }
4886 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);
4887 };
4888 ColumnController.prototype.getDisplayedRightColumnsForRow = function (rowNode) {
4889 if (!this.colSpanActive) {
4890 return this.displayedColumnsRight;
4891 }
4892 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);
4893 };
4894 ColumnController.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {
4895 var result = [];
4896 var lastConsideredCol = null;
4897 var _loop_1 = function (i) {
4898 var col = displayedColumns[i];
4899 var maxAllowedColSpan = displayedColumns.length - i;
4900 var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);
4901 var columnsToCheckFilter = [col];
4902 if (colSpan > 1) {
4903 var colsToRemove = colSpan - 1;
4904 for (var j = 1; j <= colsToRemove; j++) {
4905 columnsToCheckFilter.push(displayedColumns[i + j]);
4906 }
4907 i += colsToRemove;
4908 }
4909 // see which cols we should take out for column virtualisation
4910 var filterPasses;
4911 if (filterCallback) {
4912 // if user provided a callback, means some columns may not be in the viewport.
4913 // the user will NOT provide a callback if we are talking about pinned areas,
4914 // as pinned areas have no horizontal scroll and do not virtualise the columns.
4915 // if lots of columns, that means column spanning, and we set filterPasses = true
4916 // if one or more of the columns spanned pass the filter.
4917 filterPasses = false;
4918 columnsToCheckFilter.forEach(function (colForFilter) {
4919 if (filterCallback(colForFilter)) {
4920 filterPasses = true;
4921 }
4922 });
4923 }
4924 else {
4925 filterPasses = true;
4926 }
4927 if (filterPasses) {
4928 if (result.length === 0 && lastConsideredCol) {
4929 var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;
4930 if (gapBeforeColumn) {
4931 result.push(lastConsideredCol);
4932 }
4933 }
4934 result.push(col);
4935 }
4936 lastConsideredCol = col;
4937 out_i_1 = i;
4938 };
4939 var out_i_1;
4940 for (var i = 0; i < displayedColumns.length; i++) {
4941 _loop_1(i);
4942 i = out_i_1;
4943 }
4944 return result;
4945 };
4946 // + rowRenderer
4947 // if we are not column spanning, this just returns back the virtual centre columns,
4948 // however if we are column spanning, then different rows can have different virtual
4949 // columns, so we have to work out the list for each individual row.
4950 ColumnController.prototype.getViewportCenterColumnsForRow = function (rowNode) {
4951 var _this = this;
4952 if (!this.colSpanActive) {
4953 return this.viewportColumnsCenter;
4954 }
4955 var emptySpaceBeforeColumn = function (col) {
4956 var left = col.getLeft();
4957 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(left) && left > _this.viewportLeft;
4958 };
4959 // if doing column virtualisation, then we filter based on the viewport.
4960 var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInViewport.bind(this);
4961 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);
4962 };
4963 ColumnController.prototype.getAriaColumnIndex = function (col) {
4964 return this.getAllGridColumns().indexOf(col) + 1;
4965 };
4966 ColumnController.prototype.isColumnInViewport = function (col) {
4967 var columnLeft = col.getLeft() || 0;
4968 var columnRight = columnLeft + col.getActualWidth();
4969 // adding 200 for buffer size, so some cols off viewport are rendered.
4970 // this helps horizontal scrolling so user rarely sees white space (unless
4971 // they scroll horizontally fast). however we are conservative, as the more
4972 // buffer the slower the vertical redraw speed
4973 var leftBounds = this.viewportLeft - 200;
4974 var rightBounds = this.viewportRight + 200;
4975 var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;
4976 var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;
4977 return !columnToMuchLeft && !columnToMuchRight;
4978 };
4979 // used by:
4980 // + angularGrid -> setting pinned body width
4981 // note: this should be cached
4982 ColumnController.prototype.getDisplayedColumnsLeftWidth = function () {
4983 return this.getWidthOfColsInList(this.displayedColumnsLeft);
4984 };
4985 // note: this should be cached
4986 ColumnController.prototype.getDisplayedColumnsRightWidth = function () {
4987 return this.getWidthOfColsInList(this.displayedColumnsRight);
4988 };
4989 ColumnController.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {
4990 var _this = this;
4991 if (source === void 0) { source = "api"; }
4992 if (!keys || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(keys)) {
4993 return;
4994 }
4995 var atLeastOne = false;
4996 keys.forEach(function (key) {
4997 var columnToAdd = _this.getPrimaryColumn(key);
4998 if (!columnToAdd) {
4999 return;
5000 }
5001 if (actionIsAdd) {
5002 if (masterList.indexOf(columnToAdd) >= 0) {
5003 return;
5004 }
5005 masterList.push(columnToAdd);
5006 }
5007 else {
5008 if (masterList.indexOf(columnToAdd) < 0) {
5009 return;
5010 }
5011 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(masterList, columnToAdd);
5012 }
5013 columnCallback(columnToAdd);
5014 atLeastOne = true;
5015 });
5016 if (!atLeastOne) {
5017 return;
5018 }
5019 if (this.autoGroupsNeedBuilding) {
5020 this.updateGridColumns();
5021 }
5022 this.updateDisplayedColumns(source);
5023 var event = {
5024 type: eventType,
5025 columns: masterList,
5026 column: masterList.length === 1 ? masterList[0] : null,
5027 api: this.gridApi,
5028 columnApi: this.columnApi,
5029 source: source
5030 };
5031 this.eventService.dispatchEvent(event);
5032 };
5033 ColumnController.prototype.setRowGroupColumns = function (colKeys, source) {
5034 if (source === void 0) { source = "api"; }
5035 this.autoGroupsNeedBuilding = true;
5036 this.setPrimaryColumnList(colKeys, this.rowGroupColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.setRowGroupActive.bind(this), source);
5037 };
5038 ColumnController.prototype.setRowGroupActive = function (active, column, source) {
5039 if (active === column.isRowGroupActive()) {
5040 return;
5041 }
5042 column.setRowGroupActive(active, source);
5043 if (!active && !this.gridOptionsWrapper.isSuppressMakeColumnVisibleAfterUnGroup()) {
5044 column.setVisible(true, source);
5045 }
5046 };
5047 ColumnController.prototype.addRowGroupColumn = function (key, source) {
5048 if (source === void 0) { source = "api"; }
5049 if (key) {
5050 this.addRowGroupColumns([key], source);
5051 }
5052 };
5053 ColumnController.prototype.addRowGroupColumns = function (keys, source) {
5054 if (source === void 0) { source = "api"; }
5055 this.autoGroupsNeedBuilding = true;
5056 this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, source);
5057 };
5058 ColumnController.prototype.removeRowGroupColumns = function (keys, source) {
5059 if (source === void 0) { source = "api"; }
5060 this.autoGroupsNeedBuilding = true;
5061 this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, source);
5062 };
5063 ColumnController.prototype.removeRowGroupColumn = function (key, source) {
5064 if (source === void 0) { source = "api"; }
5065 if (key) {
5066 this.removeRowGroupColumns([key], source);
5067 }
5068 };
5069 ColumnController.prototype.addPivotColumns = function (keys, source) {
5070 if (source === void 0) { source = "api"; }
5071 this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, source);
5072 };
5073 ColumnController.prototype.setPivotColumns = function (colKeys, source) {
5074 if (source === void 0) { source = "api"; }
5075 this.setPrimaryColumnList(colKeys, this.pivotColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, function (added, column) {
5076 column.setPivotActive(added, source);
5077 }, source);
5078 };
5079 ColumnController.prototype.addPivotColumn = function (key, source) {
5080 if (source === void 0) { source = "api"; }
5081 this.addPivotColumns([key], source);
5082 };
5083 ColumnController.prototype.removePivotColumns = function (keys, source) {
5084 if (source === void 0) { source = "api"; }
5085 this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, source);
5086 };
5087 ColumnController.prototype.removePivotColumn = function (key, source) {
5088 if (source === void 0) { source = "api"; }
5089 this.removePivotColumns([key], source);
5090 };
5091 ColumnController.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, columnCallback, source) {
5092 var _this = this;
5093 masterList.length = 0;
5094 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(colKeys)) {
5095 colKeys.forEach(function (key) {
5096 var column = _this.getPrimaryColumn(key);
5097 if (column) {
5098 masterList.push(column);
5099 }
5100 });
5101 }
5102 this.primaryColumns.forEach(function (column) {
5103 var added = masterList.indexOf(column) >= 0;
5104 columnCallback(added, column);
5105 });
5106 if (this.autoGroupsNeedBuilding) {
5107 this.updateGridColumns();
5108 }
5109 this.updateDisplayedColumns(source);
5110 this.fireColumnEvent(eventName, masterList, source);
5111 };
5112 ColumnController.prototype.setValueColumns = function (colKeys, source) {
5113 if (source === void 0) { source = "api"; }
5114 this.setPrimaryColumnList(colKeys, this.valueColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.setValueActive.bind(this), source);
5115 };
5116 ColumnController.prototype.setValueActive = function (active, column, source) {
5117 if (active === column.isValueActive()) {
5118 return;
5119 }
5120 column.setValueActive(active, source);
5121 if (active && !column.getAggFunc()) {
5122 var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);
5123 column.setAggFunc(initialAggFunc);
5124 }
5125 };
5126 ColumnController.prototype.addValueColumns = function (keys, source) {
5127 if (source === void 0) { source = "api"; }
5128 this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, source);
5129 };
5130 ColumnController.prototype.addValueColumn = function (colKey, source) {
5131 if (source === void 0) { source = "api"; }
5132 if (colKey) {
5133 this.addValueColumns([colKey], source);
5134 }
5135 };
5136 ColumnController.prototype.removeValueColumn = function (colKey, source) {
5137 if (source === void 0) { source = "api"; }
5138 this.removeValueColumns([colKey], source);
5139 };
5140 ColumnController.prototype.removeValueColumns = function (keys, source) {
5141 if (source === void 0) { source = "api"; }
5142 this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, source);
5143 };
5144 // returns the width we can set to this col, taking into consideration min and max widths
5145 ColumnController.prototype.normaliseColumnWidth = function (column, newWidth) {
5146 var minWidth = column.getMinWidth();
5147 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && newWidth < minWidth) {
5148 newWidth = minWidth;
5149 }
5150 var maxWidth = column.getMaxWidth();
5151 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && column.isGreaterThanMax(newWidth)) {
5152 newWidth = maxWidth;
5153 }
5154 return newWidth;
5155 };
5156 ColumnController.prototype.getPrimaryOrGridColumn = function (key) {
5157 var column = this.getPrimaryColumn(key);
5158 return column || this.getGridColumn(key);
5159 };
5160 ColumnController.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column
5161 finished, // @finished - ends up in the event, tells the user if more events are to come
5162 source) {
5163 var _this = this;
5164 if (source === void 0) { source = "api"; }
5165 var sets = [];
5166 columnWidths.forEach(function (columnWidth) {
5167 var col = _this.getPrimaryOrGridColumn(columnWidth.key);
5168 if (!col) {
5169 return;
5170 }
5171 sets.push({
5172 width: columnWidth.newWidth,
5173 ratios: [1],
5174 columns: [col]
5175 });
5176 // if user wants to do shift resize by default, then we invert the shift operation
5177 var defaultIsShift = _this.gridOptionsWrapper.getColResizeDefault() === 'shift';
5178 if (defaultIsShift) {
5179 shiftKey = !shiftKey;
5180 }
5181 if (shiftKey) {
5182 var otherCol = _this.getDisplayedColAfter(col);
5183 if (!otherCol) {
5184 return;
5185 }
5186 var widthDiff = col.getActualWidth() - columnWidth.newWidth;
5187 var otherColWidth = otherCol.getActualWidth() + widthDiff;
5188 sets.push({
5189 width: otherColWidth,
5190 ratios: [1],
5191 columns: [otherCol]
5192 });
5193 }
5194 });
5195 if (sets.length === 0) {
5196 return;
5197 }
5198 this.resizeColumnSets(sets, finished, source);
5199 };
5200 ColumnController.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {
5201 var columns = columnResizeSet.columns, width = columnResizeSet.width;
5202 // every col has a min width, so sum them all up and see if we have enough room
5203 // for all the min widths
5204 var minWidthAccumulated = 0;
5205 var maxWidthAccumulated = 0;
5206 var maxWidthActive = true;
5207 columns.forEach(function (col) {
5208 var minWidth = col.getMinWidth();
5209 minWidthAccumulated += minWidth || 0;
5210 var maxWidth = col.getMaxWidth();
5211 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && maxWidth > 0) {
5212 maxWidthAccumulated += maxWidth;
5213 }
5214 else {
5215 // if at least one columns has no max width, it means the group of columns
5216 // then has no max width, as at least one column can take as much width as possible
5217 maxWidthActive = false;
5218 }
5219 });
5220 var minWidthPasses = width >= minWidthAccumulated;
5221 var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);
5222 return minWidthPasses && maxWidthPasses;
5223 };
5224 // method takes sets of columns and resizes them. either all sets will be resized, or nothing
5225 // be resized. this is used for example when user tries to resize a group and holds shift key,
5226 // then both the current group (grows), and the adjacent group (shrinks), will get resized,
5227 // so that's two sets for this method.
5228 ColumnController.prototype.resizeColumnSets = function (resizeSets, finished, source) {
5229 var passMinMaxCheck = !resizeSets || resizeSets.every(this.checkMinAndMaxWidthsForSet.bind(this));
5230 if (!passMinMaxCheck) {
5231 // even though we are not going to resize beyond min/max size, we still need to raise event when finished
5232 if (finished) {
5233 var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;
5234 this.fireColumnResizedEvent(columns, finished, source);
5235 }
5236 return; // don't resize!
5237 }
5238 var changedCols = [];
5239 var allResizedCols = [];
5240 resizeSets.forEach(function (set) {
5241 var width = set.width, columns = set.columns, ratios = set.ratios;
5242 // keep track of pixels used, and last column gets the remaining,
5243 // to cater for rounding errors, and min width adjustments
5244 var newWidths = {};
5245 var finishedCols = {};
5246 columns.forEach(function (col) { return allResizedCols.push(col); });
5247 // the loop below goes through each col. if a col exceeds it's min/max width,
5248 // it then gets set to its min/max width and the column is removed marked as 'finished'
5249 // and the calculation is done again leaving this column out. take for example columns
5250 // {A, width: 50, maxWidth: 100}
5251 // {B, width: 50}
5252 // {C, width: 50}
5253 // and then the set is set to width 600 - on the first pass the grid tries to set each column
5254 // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked
5255 // as 'finished' and the calculation is done again with the remaining cols B and C, which end up
5256 // splitting the remaining 500 pixels.
5257 var finishedColsGrew = true;
5258 var loopCount = 0;
5259 var _loop_2 = function () {
5260 loopCount++;
5261 if (loopCount > 1000) {
5262 // this should never happen, but in the future, someone might introduce a bug here,
5263 // so we stop the browser from hanging and report bug properly
5264 console.error('AG Grid: infinite loop in resizeColumnSets');
5265 return "break";
5266 }
5267 finishedColsGrew = false;
5268 var subsetCols = [];
5269 var subsetRatioTotal = 0;
5270 var pixelsToDistribute = width;
5271 columns.forEach(function (col, index) {
5272 var thisColFinished = finishedCols[col.getId()];
5273 if (thisColFinished) {
5274 pixelsToDistribute -= newWidths[col.getId()];
5275 }
5276 else {
5277 subsetCols.push(col);
5278 var ratioThisCol = ratios[index];
5279 subsetRatioTotal += ratioThisCol;
5280 }
5281 });
5282 // because we are not using all of the ratios (cols can be missing),
5283 // we scale the ratio. if all columns are included, then subsetRatioTotal=1,
5284 // and so the ratioScale will be 1.
5285 var ratioScale = 1 / subsetRatioTotal;
5286 subsetCols.forEach(function (col, index) {
5287 var lastCol = index === (subsetCols.length - 1);
5288 var colNewWidth;
5289 if (lastCol) {
5290 colNewWidth = pixelsToDistribute;
5291 }
5292 else {
5293 colNewWidth = Math.round(ratios[index] * width * ratioScale);
5294 pixelsToDistribute -= colNewWidth;
5295 }
5296 var minWidth = col.getMinWidth();
5297 var maxWidth = col.getMaxWidth();
5298 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && colNewWidth < minWidth) {
5299 colNewWidth = minWidth;
5300 finishedCols[col.getId()] = true;
5301 finishedColsGrew = true;
5302 }
5303 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {
5304 colNewWidth = maxWidth;
5305 finishedCols[col.getId()] = true;
5306 finishedColsGrew = true;
5307 }
5308 newWidths[col.getId()] = colNewWidth;
5309 });
5310 };
5311 while (finishedColsGrew) {
5312 var state_1 = _loop_2();
5313 if (state_1 === "break")
5314 break;
5315 }
5316 columns.forEach(function (col) {
5317 var newWidth = newWidths[col.getId()];
5318 if (col.getActualWidth() !== newWidth) {
5319 col.setActualWidth(newWidth, source);
5320 changedCols.push(col);
5321 }
5322 });
5323 });
5324 // if no cols changed, then no need to update more or send event.
5325 var atLeastOneColChanged = changedCols.length > 0;
5326 var flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });
5327 if (atLeastOneColChanged) {
5328 this.setLeftValues(source);
5329 this.updateBodyWidths();
5330 this.checkViewportColumns();
5331 }
5332 // check for change first, to avoid unnecessary firing of events
5333 // however we always fire 'finished' events. this is important
5334 // when groups are resized, as if the group is changing slowly,
5335 // eg 1 pixel at a time, then each change will fire change events
5336 // in all the columns in the group, but only one with get the pixel.
5337 var colsForEvent = allResizedCols.concat(flexedCols);
5338 if (atLeastOneColChanged || finished) {
5339 this.fireColumnResizedEvent(colsForEvent, finished, source, flexedCols);
5340 }
5341 };
5342 ColumnController.prototype.setColumnAggFunc = function (key, aggFunc, source) {
5343 if (source === void 0) { source = "api"; }
5344 if (!key) {
5345 return;
5346 }
5347 var column = this.getPrimaryColumn(key);
5348 if (!column) {
5349 return;
5350 }
5351 column.setAggFunc(aggFunc);
5352 this.fireColumnEvent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, [column], source);
5353 };
5354 ColumnController.prototype.fireColumnEvent = function (type, columns, source) {
5355 var event = {
5356 type: type,
5357 columns: columns,
5358 column: (columns && columns.length == 1) ? columns[0] : null,
5359 api: this.gridApi,
5360 columnApi: this.columnApi,
5361 source: source
5362 };
5363 this.eventService.dispatchEvent(event);
5364 };
5365 ColumnController.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {
5366 if (source === void 0) { source = "api"; }
5367 var column = this.rowGroupColumns[fromIndex];
5368 this.rowGroupColumns.splice(fromIndex, 1);
5369 this.rowGroupColumns.splice(toIndex, 0, column);
5370 var event = {
5371 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED,
5372 columns: this.rowGroupColumns,
5373 column: this.rowGroupColumns.length === 1 ? this.rowGroupColumns[0] : null,
5374 api: this.gridApi,
5375 columnApi: this.columnApi,
5376 source: source
5377 };
5378 this.eventService.dispatchEvent(event);
5379 };
5380 ColumnController.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source) {
5381 if (source === void 0) { source = "api"; }
5382 this.columnAnimationService.start();
5383 if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {
5384 console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);
5385 console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');
5386 return;
5387 }
5388 // we want to pull all the columns out first and put them into an ordered list
5389 var columnsToMove = this.getGridColumns(columnsToMoveKeys);
5390 var failedRules = !this.doesMovePassRules(columnsToMove, toIndex);
5391 if (failedRules) {
5392 return;
5393 }
5394 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["moveInArray"])(this.gridColumns, columnsToMove, toIndex);
5395 this.updateDisplayedColumns(source);
5396 var event = {
5397 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_MOVED,
5398 columns: columnsToMove,
5399 column: columnsToMove.length === 1 ? columnsToMove[0] : null,
5400 toIndex: toIndex,
5401 api: this.gridApi,
5402 columnApi: this.columnApi,
5403 source: source
5404 };
5405 this.eventService.dispatchEvent(event);
5406 this.columnAnimationService.finish();
5407 };
5408 ColumnController.prototype.doesMovePassRules = function (columnsToMove, toIndex) {
5409 // make a copy of what the grid columns would look like after the move
5410 var proposedColumnOrder = this.gridColumns.slice();
5411 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["moveInArray"])(proposedColumnOrder, columnsToMove, toIndex);
5412 // then check that the new proposed order of the columns passes all rules
5413 if (!this.doesMovePassMarryChildren(proposedColumnOrder)) {
5414 return false;
5415 }
5416 if (!this.doesMovePassLockedPositions(proposedColumnOrder)) {
5417 return false;
5418 }
5419 return true;
5420 };
5421 // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns
5422 // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]
5423 ColumnController.prototype.sortColumnsLikeGridColumns = function (cols) {
5424 var _this = this;
5425 if (!cols || cols.length <= 1) {
5426 return;
5427 }
5428 var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;
5429 if (notAllColsInGridColumns) {
5430 return;
5431 }
5432 cols.sort(function (a, b) {
5433 var indexA = _this.gridColumns.indexOf(a);
5434 var indexB = _this.gridColumns.indexOf(b);
5435 return indexA - indexB;
5436 });
5437 };
5438 ColumnController.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {
5439 var foundNonLocked = false;
5440 var rulePassed = true;
5441 // go though the cols, see if any non-locked appear before any locked
5442 proposedColumnOrder.forEach(function (col) {
5443 if (col.getColDef().lockPosition) {
5444 if (foundNonLocked) {
5445 rulePassed = false;
5446 }
5447 }
5448 else {
5449 foundNonLocked = true;
5450 }
5451 });
5452 return rulePassed;
5453 };
5454 ColumnController.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {
5455 var rulePassed = true;
5456 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {
5457 if (!(child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"])) {
5458 return;
5459 }
5460 var columnGroup = child;
5461 var colGroupDef = columnGroup.getColGroupDef();
5462 var marryChildren = colGroupDef && colGroupDef.marryChildren;
5463 if (!marryChildren) {
5464 return;
5465 }
5466 var newIndexes = [];
5467 columnGroup.getLeafColumns().forEach(function (col) {
5468 var newColIndex = allColumnsCopy.indexOf(col);
5469 newIndexes.push(newColIndex);
5470 });
5471 var maxIndex = Math.max.apply(Math, newIndexes);
5472 var minIndex = Math.min.apply(Math, newIndexes);
5473 // spread is how far the first column in this group is away from the last column
5474 var spread = maxIndex - minIndex;
5475 var maxSpread = columnGroup.getLeafColumns().length - 1;
5476 // if the columns
5477 if (spread > maxSpread) {
5478 rulePassed = false;
5479 }
5480 // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)
5481 // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));
5482 });
5483 return rulePassed;
5484 };
5485 ColumnController.prototype.moveColumn = function (key, toIndex, source) {
5486 if (source === void 0) { source = "api"; }
5487 this.moveColumns([key], toIndex, source);
5488 };
5489 ColumnController.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {
5490 if (source === void 0) { source = "api"; }
5491 var column = this.gridColumns[fromIndex];
5492 this.moveColumn(column, toIndex, source);
5493 };
5494 ColumnController.prototype.getColumnDefs = function () {
5495 var _this = this;
5496 var cols = this.primaryColumns.slice();
5497 if (this.gridColsArePrimary) {
5498 cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });
5499 }
5500 else if (this.lastPrimaryOrder) {
5501 cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });
5502 }
5503 return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);
5504 };
5505 // used by:
5506 // + angularGrid -> for setting body width
5507 // + rowController -> setting main row widths (when inserting and resizing)
5508 // need to cache this
5509 ColumnController.prototype.getBodyContainerWidth = function () {
5510 return this.bodyWidth;
5511 };
5512 ColumnController.prototype.getContainerWidth = function (pinned) {
5513 switch (pinned) {
5514 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT:
5515 return this.leftWidth;
5516 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT:
5517 return this.rightWidth;
5518 default:
5519 return this.bodyWidth;
5520 }
5521 };
5522 // after setColumnWidth or updateGroupsAndDisplayedColumns
5523 ColumnController.prototype.updateBodyWidths = function () {
5524 var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);
5525 var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);
5526 var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);
5527 // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed
5528 // columns, due to RTL inverting the y coordinates
5529 this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;
5530 var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;
5531 if (atLeastOneChanged) {
5532 this.bodyWidth = newBodyWidth;
5533 this.leftWidth = newLeftWidth;
5534 this.rightWidth = newRightWidth;
5535 // when this fires, it is picked up by the gridPanel, which ends up in
5536 // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()
5537 var event_3 = {
5538 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,
5539 api: this.gridApi,
5540 columnApi: this.columnApi
5541 };
5542 this.eventService.dispatchEvent(event_3);
5543 }
5544 };
5545 // + rowController
5546 ColumnController.prototype.getValueColumns = function () {
5547 return this.valueColumns ? this.valueColumns : [];
5548 };
5549 // + rowController
5550 ColumnController.prototype.getPivotColumns = function () {
5551 return this.pivotColumns ? this.pivotColumns : [];
5552 };
5553 // + clientSideRowModel
5554 ColumnController.prototype.isPivotActive = function () {
5555 return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;
5556 };
5557 // + toolPanel
5558 ColumnController.prototype.getRowGroupColumns = function () {
5559 return this.rowGroupColumns ? this.rowGroupColumns : [];
5560 };
5561 // + rowController -> while inserting rows
5562 ColumnController.prototype.getDisplayedCenterColumns = function () {
5563 return this.displayedColumnsCenter;
5564 };
5565 // + rowController -> while inserting rows
5566 ColumnController.prototype.getDisplayedLeftColumns = function () {
5567 return this.displayedColumnsLeft;
5568 };
5569 ColumnController.prototype.getDisplayedRightColumns = function () {
5570 return this.displayedColumnsRight;
5571 };
5572 ColumnController.prototype.getDisplayedColumns = function (type) {
5573 switch (type) {
5574 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT:
5575 return this.getDisplayedLeftColumns();
5576 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT:
5577 return this.getDisplayedRightColumns();
5578 default:
5579 return this.getDisplayedCenterColumns();
5580 }
5581 };
5582 // used by:
5583 // + clientSideRowController -> sorting, building quick filter text
5584 // + headerRenderer -> sorting (clearing icon)
5585 ColumnController.prototype.getAllPrimaryColumns = function () {
5586 return this.primaryColumns ? this.primaryColumns.slice() : null;
5587 };
5588 ColumnController.prototype.getSecondaryColumns = function () {
5589 return this.secondaryColumns ? this.secondaryColumns.slice() : null;
5590 };
5591 ColumnController.prototype.getAllColumnsForQuickFilter = function () {
5592 return this.columnsForQuickFilter;
5593 };
5594 // + moveColumnController
5595 ColumnController.prototype.getAllGridColumns = function () {
5596 return this.gridColumns;
5597 };
5598 ColumnController.prototype.isEmpty = function () {
5599 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.gridColumns);
5600 };
5601 ColumnController.prototype.isRowGroupEmpty = function () {
5602 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.rowGroupColumns);
5603 };
5604 ColumnController.prototype.setColumnVisible = function (key, visible, source) {
5605 if (source === void 0) { source = "api"; }
5606 this.setColumnsVisible([key], visible, source);
5607 };
5608 ColumnController.prototype.setColumnsVisible = function (keys, visible, source) {
5609 var _this = this;
5610 if (visible === void 0) { visible = false; }
5611 if (source === void 0) { source = "api"; }
5612 this.columnAnimationService.start();
5613 this.actionOnGridColumns(keys, function (column) {
5614 if (column.isVisible() !== visible) {
5615 column.setVisible(visible, source);
5616 return true;
5617 }
5618 return false;
5619 }, source, function () {
5620 var event = {
5621 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VISIBLE,
5622 visible: visible,
5623 column: null,
5624 columns: null,
5625 api: _this.gridApi,
5626 columnApi: _this.columnApi,
5627 source: source
5628 };
5629 return event;
5630 });
5631 this.columnAnimationService.finish();
5632 };
5633 ColumnController.prototype.setColumnPinned = function (key, pinned, source) {
5634 if (source === void 0) { source = "api"; }
5635 if (key) {
5636 this.setColumnsPinned([key], pinned, source);
5637 }
5638 };
5639 ColumnController.prototype.setColumnsPinned = function (keys, pinned, source) {
5640 var _this = this;
5641 if (source === void 0) { source = "api"; }
5642 if (this.gridOptionsWrapper.getDomLayout() === 'print') {
5643 console.warn("Changing the column pinning status is not allowed with domLayout='print'");
5644 return;
5645 }
5646 this.columnAnimationService.start();
5647 var actualPinned;
5648 if (pinned === true || pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT) {
5649 actualPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT;
5650 }
5651 else if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT) {
5652 actualPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT;
5653 }
5654 else {
5655 actualPinned = null;
5656 }
5657 this.actionOnGridColumns(keys, function (col) {
5658 if (col.getPinned() !== actualPinned) {
5659 col.setPinned(actualPinned);
5660 return true;
5661 }
5662 return false;
5663 }, source, function () {
5664 var event = {
5665 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PINNED,
5666 pinned: actualPinned,
5667 column: null,
5668 columns: null,
5669 api: _this.gridApi,
5670 columnApi: _this.columnApi,
5671 source: source
5672 };
5673 return event;
5674 });
5675 this.columnAnimationService.finish();
5676 };
5677 // does an action on a set of columns. provides common functionality for looking up the
5678 // columns based on key, getting a list of effected columns, and then updated the event
5679 // with either one column (if it was just one col) or a list of columns
5680 // used by: autoResize, setVisible, setPinned
5681 ColumnController.prototype.actionOnGridColumns = function (// the column keys this action will be on
5682 keys,
5683 // the action to do - if this returns false, the column was skipped
5684 // and won't be included in the event
5685 action,
5686 // should return back a column event of the right type
5687 source, createEvent) {
5688 var _this = this;
5689 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(keys)) {
5690 return;
5691 }
5692 var updatedColumns = [];
5693 keys.forEach(function (key) {
5694 var column = _this.getGridColumn(key);
5695 if (!column) {
5696 return;
5697 }
5698 // need to check for false with type (ie !== instead of !=)
5699 // as not returning anything (undefined) would also be false
5700 var resultOfAction = action(column);
5701 if (resultOfAction !== false) {
5702 updatedColumns.push(column);
5703 }
5704 });
5705 if (!updatedColumns.length) {
5706 return;
5707 }
5708 this.updateDisplayedColumns(source);
5709 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(createEvent) && createEvent) {
5710 var event_4 = createEvent();
5711 event_4.columns = updatedColumns;
5712 event_4.column = updatedColumns.length === 1 ? updatedColumns[0] : null;
5713 this.eventService.dispatchEvent(event_4);
5714 }
5715 };
5716 ColumnController.prototype.getDisplayedColBefore = function (col) {
5717 var allDisplayedColumns = this.getAllDisplayedColumns();
5718 var oldIndex = allDisplayedColumns.indexOf(col);
5719 if (oldIndex > 0) {
5720 return allDisplayedColumns[oldIndex - 1];
5721 }
5722 return null;
5723 };
5724 // used by:
5725 // + rowRenderer -> for navigation
5726 ColumnController.prototype.getDisplayedColAfter = function (col) {
5727 var allDisplayedColumns = this.getAllDisplayedColumns();
5728 var oldIndex = allDisplayedColumns.indexOf(col);
5729 if (oldIndex < (allDisplayedColumns.length - 1)) {
5730 return allDisplayedColumns[oldIndex + 1];
5731 }
5732 return null;
5733 };
5734 ColumnController.prototype.getDisplayedGroupAfter = function (columnGroup) {
5735 return this.getDisplayedGroupAtDirection(columnGroup, 'After');
5736 };
5737 ColumnController.prototype.getDisplayedGroupBefore = function (columnGroup) {
5738 return this.getDisplayedGroupAtDirection(columnGroup, 'Before');
5739 };
5740 ColumnController.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {
5741 // pick the last displayed column in this group
5742 var requiredLevel = columnGroup.getOriginalColumnGroup().getLevel() + columnGroup.getPaddingLevel();
5743 var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();
5744 var col = direction === 'After' ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(colGroupLeafColumns) : colGroupLeafColumns[0];
5745 var getDisplayColMethod = "getDisplayedCol" + direction;
5746 while (true) {
5747 // keep moving to the next col, until we get to another group
5748 var column = this[getDisplayColMethod](col);
5749 if (!column) {
5750 return null;
5751 }
5752 var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);
5753 if (groupPointer !== columnGroup) {
5754 return groupPointer;
5755 }
5756 }
5757 };
5758 ColumnController.prototype.getColumnGroupAtLevel = function (column, level) {
5759 // get group at same level as the one we are looking for
5760 var groupPointer = column.getParent();
5761 var originalGroupLevel;
5762 var groupPointerLevel;
5763 while (true) {
5764 var groupPointerOriginalColumnGroup = groupPointer.getOriginalColumnGroup();
5765 originalGroupLevel = groupPointerOriginalColumnGroup.getLevel();
5766 groupPointerLevel = groupPointer.getPaddingLevel();
5767 if (originalGroupLevel + groupPointerLevel <= level) {
5768 break;
5769 }
5770 groupPointer = groupPointer.getParent();
5771 }
5772 return groupPointer;
5773 };
5774 ColumnController.prototype.isPinningLeft = function () {
5775 return this.displayedColumnsLeft.length > 0;
5776 };
5777 ColumnController.prototype.isPinningRight = function () {
5778 return this.displayedColumnsRight.length > 0;
5779 };
5780 ColumnController.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {
5781 var result = this.primaryColumns ? this.primaryColumns.slice(0) : [];
5782 if (this.groupAutoColumns && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.groupAutoColumns)) {
5783 this.groupAutoColumns.forEach(function (col) { return result.push(col); });
5784 }
5785 if (this.secondaryColumnsPresent && this.secondaryColumns) {
5786 this.secondaryColumns.forEach(function (column) { return result.push(column); });
5787 }
5788 return result;
5789 };
5790 ColumnController.prototype.createStateItemFromColumn = function (column) {
5791 var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;
5792 var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;
5793 var aggFunc = column.isValueActive() ? column.getAggFunc() : null;
5794 var sort = column.getSort() != null ? column.getSort() : null;
5795 var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;
5796 var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;
5797 var res = {
5798 colId: column.getColId(),
5799 width: column.getActualWidth(),
5800 hide: !column.isVisible(),
5801 pinned: column.getPinned(),
5802 sort: sort,
5803 sortIndex: sortIndex,
5804 aggFunc: aggFunc,
5805 rowGroup: column.isRowGroupActive(),
5806 rowGroupIndex: rowGroupIndex,
5807 pivot: column.isPivotActive(),
5808 pivotIndex: pivotIndex,
5809 flex: flex
5810 };
5811 return res;
5812 };
5813 ColumnController.prototype.getColumnState = function () {
5814 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.primaryColumns) || !this.isAlive()) {
5815 return [];
5816 }
5817 var primaryColumnState = this.primaryColumns.map(this.createStateItemFromColumn.bind(this));
5818 var groupAutoColumnState = this.groupAutoColumns
5819 // if groupAutoCols, then include them
5820 ? this.groupAutoColumns.map(this.createStateItemFromColumn.bind(this))
5821 // otherwise no
5822 : [];
5823 var columnStateList = groupAutoColumnState.concat(primaryColumnState);
5824 if (!this.pivotMode) {
5825 this.orderColumnStateList(columnStateList);
5826 }
5827 return columnStateList;
5828 };
5829 ColumnController.prototype.orderColumnStateList = function (columnStateList) {
5830 // for fast looking, store the index of each column
5831 var gridColumnIdMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));
5832 columnStateList.sort(function (itemA, itemB) {
5833 var posA = gridColumnIdMap.has(itemA.colId) ? gridColumnIdMap.get(itemA.colId) : -1;
5834 var posB = gridColumnIdMap.has(itemB.colId) ? gridColumnIdMap.get(itemB.colId) : -1;
5835 return posA - posB;
5836 });
5837 };
5838 ColumnController.prototype.resetColumnState = function (source) {
5839 // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,
5840 // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.
5841 // As a work around, developers should just put lockPosition columns first in their colDef list.
5842 if (source === void 0) { source = "api"; }
5843 // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list
5844 var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);
5845 var columnStates = [];
5846 // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.
5847 // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,
5848 // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000
5849 var letRowGroupIndex = 1000;
5850 var letPivotIndex = 1000;
5851 var colsToProcess = [];
5852 if (this.groupAutoColumns) {
5853 colsToProcess = colsToProcess.concat(this.groupAutoColumns);
5854 }
5855 if (primaryColumns) {
5856 colsToProcess = colsToProcess.concat(primaryColumns);
5857 }
5858 colsToProcess.forEach(function (column) {
5859 var colDef = column.getColDef();
5860 var sort = colDef.sort != null ? colDef.sort : null;
5861 var sortIndex = colDef.sortIndex;
5862 var hide = colDef.hide ? true : false;
5863 var pinned = colDef.pinned ? colDef.pinned : null;
5864 var width = colDef.width;
5865 var flex = colDef.flex != null ? colDef.flex : null;
5866 var rowGroupIndex = colDef.rowGroupIndex;
5867 var rowGroup = colDef.rowGroup;
5868 if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {
5869 rowGroupIndex = null;
5870 rowGroup = null;
5871 }
5872 var pivotIndex = colDef.pivotIndex;
5873 var pivot = colDef.pivot;
5874 if (pivotIndex == null && (pivot == null || pivot == false)) {
5875 pivotIndex = null;
5876 pivot = null;
5877 }
5878 var aggFunc = colDef.aggFunc != null ? colDef.aggFunc : null;
5879 var stateItem = {
5880 colId: column.getColId(),
5881 sort: sort,
5882 sortIndex: sortIndex,
5883 hide: hide,
5884 pinned: pinned,
5885 width: width,
5886 flex: flex,
5887 rowGroup: rowGroup,
5888 rowGroupIndex: rowGroupIndex,
5889 pivot: pivot,
5890 pivotIndex: pivotIndex,
5891 aggFunc: aggFunc,
5892 };
5893 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(rowGroupIndex) && rowGroup) {
5894 stateItem.rowGroupIndex = letRowGroupIndex++;
5895 }
5896 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(pivotIndex) && pivot) {
5897 stateItem.pivotIndex = letPivotIndex++;
5898 }
5899 columnStates.push(stateItem);
5900 });
5901 this.applyColumnState({ state: columnStates, applyOrder: true }, source);
5902 };
5903 ColumnController.prototype.applyColumnState = function (params, source) {
5904 var _this = this;
5905 if (source === void 0) { source = "api"; }
5906 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.primaryColumns)) {
5907 return false;
5908 }
5909 if (params && params.state && !params.state.forEach) {
5910 console.warn('AG Grid: applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state.');
5911 return false;
5912 }
5913 this.columnAnimationService.start();
5914 var raiseEventsFunc = this.compareColumnStatesAndRaiseEvents(source);
5915 this.autoGroupsNeedBuilding = true;
5916 // at the end below, this list will have all columns we got no state for
5917 var columnsWithNoState = this.primaryColumns.slice();
5918 var success = true;
5919 var rowGroupIndexes = {};
5920 var pivotIndexes = {};
5921 var autoGroupColumnStates = [];
5922 var previousRowGroupCols = this.rowGroupColumns.slice();
5923 var previousPivotCols = this.pivotColumns.slice();
5924 if (params.state) {
5925 params.state.forEach(function (state) {
5926 var groupAutoColumnId = _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].GROUP_AUTO_COLUMN_ID;
5927 var colId = state.colId || '';
5928 // auto group columns are re-created so deferring syncing with ColumnState
5929 var isAutoGroupColumn = Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["startsWith"])(colId, groupAutoColumnId);
5930 if (isAutoGroupColumn) {
5931 autoGroupColumnStates.push(state);
5932 return;
5933 }
5934 var column = _this.getPrimaryColumn(colId);
5935 if (!column) {
5936 // we don't log the failure, as it's possible the user is applying that has extra
5937 // cols in it. for example they could of save while row-grouping (so state includes
5938 // auto-group column) and then applied state when not grouping (so the auto-group
5939 // column would be in the state but no used).
5940 success = false;
5941 }
5942 else {
5943 _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);
5944 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(columnsWithNoState, column);
5945 }
5946 });
5947 }
5948 // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden
5949 var applyDefaultsFunc = function (col) {
5950 return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);
5951 };
5952 columnsWithNoState.forEach(applyDefaultsFunc);
5953 // sort the lists according to the indexes that were provided
5954 var comparator = function (indexes, oldList, colA, colB) {
5955 var indexA = indexes[colA.getId()];
5956 var indexB = indexes[colB.getId()];
5957 var aHasIndex = indexA != null;
5958 var bHasIndex = indexB != null;
5959 if (aHasIndex && bHasIndex) {
5960 // both a and b are new cols with index, so sort on index
5961 return indexA - indexB;
5962 }
5963 if (aHasIndex) {
5964 // a has an index, so it should be before a
5965 return -1;
5966 }
5967 if (bHasIndex) {
5968 // b has an index, so it should be before a
5969 return 1;
5970 }
5971 var oldIndexA = oldList.indexOf(colA);
5972 var oldIndexB = oldList.indexOf(colB);
5973 var aHasOldIndex = oldIndexA >= 0;
5974 var bHasOldIndex = oldIndexB >= 0;
5975 if (aHasOldIndex && bHasOldIndex) {
5976 // both a and b are old cols, so sort based on last order
5977 return oldIndexA - oldIndexB;
5978 }
5979 if (aHasOldIndex) {
5980 // a is old, b is new, so b is first
5981 return -1;
5982 }
5983 // this bit does matter, means both are new cols
5984 // but without index or that b is old and a is new
5985 return 1;
5986 };
5987 this.rowGroupColumns.sort(comparator.bind(this, rowGroupIndexes, previousRowGroupCols));
5988 this.pivotColumns.sort(comparator.bind(this, pivotIndexes, previousPivotCols));
5989 this.updateGridColumns();
5990 // sync newly created auto group columns with ColumnState
5991 var autoGroupColsCopy = this.groupAutoColumns ? this.groupAutoColumns.slice() : [];
5992 autoGroupColumnStates.forEach(function (stateItem) {
5993 var autoCol = _this.getAutoColumn(stateItem.colId);
5994 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(autoGroupColsCopy, autoCol);
5995 _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);
5996 });
5997 // autogroup cols with nothing else, apply the default
5998 autoGroupColsCopy.forEach(applyDefaultsFunc);
5999 this.applyOrderAfterApplyState(params);
6000 this.updateDisplayedColumns(source);
6001 this.dispatchEverythingChanged(source);
6002 raiseEventsFunc();
6003 this.columnAnimationService.finish();
6004 return success;
6005 };
6006 ColumnController.prototype.applyOrderAfterApplyState = function (params) {
6007 if (!this.gridColsArePrimary || !params.applyOrder || !params.state) {
6008 return;
6009 }
6010 var newOrder = [];
6011 var processedColIds = {};
6012 var gridColumnsMap = {};
6013 this.gridColumns.forEach(function (col) { return gridColumnsMap[col.getId()] = col; });
6014 params.state.forEach(function (item) {
6015 if (!item.colId || processedColIds[item.colId]) {
6016 return;
6017 }
6018 var col = gridColumnsMap[item.colId];
6019 if (col) {
6020 newOrder.push(col);
6021 processedColIds[item.colId] = true;
6022 }
6023 });
6024 // add in all other columns
6025 this.gridColumns.forEach(function (col) {
6026 if (!processedColIds[col.getColId()]) {
6027 newOrder.push(col);
6028 }
6029 });
6030 // this is already done in updateGridColumns, however we changed the order above (to match the order of the state
6031 // columns) so we need to do it again. we could of put logic into the order above to take into account fixed
6032 // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here
6033 // is less sexy for the code here, but it keeps consistency.
6034 newOrder = this.putFixedColumnsFirst(newOrder);
6035 if (!this.doesMovePassMarryChildren(newOrder)) {
6036 console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');
6037 return;
6038 }
6039 this.gridColumns = newOrder;
6040 };
6041 ColumnController.prototype.compareColumnStatesAndRaiseEvents = function (source) {
6042 var _this = this;
6043 // if no columns to begin with, then it means we are setting columns for the first time, so
6044 // there should be no events fired to show differences in columns.
6045 var colsPreviouslyExisted = !!this.columnDefs;
6046 if (!colsPreviouslyExisted) {
6047 return function () { };
6048 }
6049 var startState = {
6050 rowGroupColumns: this.rowGroupColumns.slice(),
6051 pivotColumns: this.pivotColumns.slice(),
6052 valueColumns: this.valueColumns.slice()
6053 };
6054 var columnStateBefore = this.getColumnState();
6055 var columnStateBeforeMap = {};
6056 columnStateBefore.forEach(function (col) {
6057 columnStateBeforeMap[col.colId] = col;
6058 });
6059 return function () {
6060 if (_this.gridOptionsWrapper.isSuppressColumnStateEvents()) {
6061 return;
6062 }
6063 // raises generic ColumnEvents where all columns are returned rather than what has changed
6064 var raiseWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {
6065 var beforeList = colsBefore.map(idMapper).sort();
6066 var afterList = colsAfter.map(idMapper).sort();
6067 var unchanged = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(beforeList, afterList);
6068 if (unchanged) {
6069 return;
6070 }
6071 // returning all columns rather than what has changed!
6072 var event = {
6073 type: eventType,
6074 columns: colsAfter,
6075 column: colsAfter.length === 1 ? colsAfter[0] : null,
6076 api: _this.gridApi,
6077 columnApi: _this.columnApi,
6078 source: source
6079 };
6080 _this.eventService.dispatchEvent(event);
6081 };
6082 // determines which columns have changed according to supplied predicate
6083 var getChangedColumns = function (changedPredicate) {
6084 var changedColumns = [];
6085 _this.gridColumns.forEach(function (column) {
6086 var colStateBefore = columnStateBeforeMap[column.getColId()];
6087 if (colStateBefore && changedPredicate(colStateBefore, column)) {
6088 changedColumns.push(column);
6089 }
6090 });
6091 return changedColumns;
6092 };
6093 var columnIdMapper = function (c) { return c.getColId(); };
6094 raiseWhenListsDifferent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);
6095 raiseWhenListsDifferent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);
6096 var valueChangePredicate = function (cs, c) {
6097 var oldActive = cs.aggFunc != null;
6098 var activeChanged = oldActive != c.isValueActive();
6099 // we only check aggFunc if the agg is active
6100 var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();
6101 return activeChanged || aggFuncChanged;
6102 };
6103 var changedValues = getChangedColumns(valueChangePredicate);
6104 if (changedValues.length > 0) {
6105 // we pass all value columns, now the ones that changed. this is the same
6106 // as pivot and rowGroup cols, but different to all other properties below.
6107 // this is more for backwards compatibility, as it's always been this way.
6108 // really it should be the other way, as the order of the cols makes no difference
6109 // for valueColumns (apart from displaying them in the tool panel).
6110 _this.fireColumnEvent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, _this.valueColumns, source);
6111 }
6112 var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };
6113 _this.fireColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);
6114 var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };
6115 _this.raiseColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);
6116 var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };
6117 _this.raiseColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);
6118 var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };
6119 if (getChangedColumns(sortChangePredicate).length > 0) {
6120 _this.sortController.dispatchSortChangedEvents();
6121 }
6122 // special handling for moved column events
6123 _this.raiseColumnMovedEvent(columnStateBefore, source);
6124 };
6125 };
6126 ColumnController.prototype.raiseColumnPinnedEvent = function (changedColumns, source) {
6127 if (!changedColumns.length) {
6128 return;
6129 }
6130 // if just one column, we use this, otherwise we don't include the col
6131 var column = changedColumns.length === 1 ? changedColumns[0] : null;
6132 // only include visible if it's common in all columns
6133 var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });
6134 var event = {
6135 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PINNED,
6136 // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'
6137 pinned: pinned != null ? pinned : null,
6138 columns: changedColumns,
6139 column: column,
6140 api: this.gridApi,
6141 columnApi: this.columnApi,
6142 source: source
6143 };
6144 this.eventService.dispatchEvent(event);
6145 };
6146 ColumnController.prototype.getCommonValue = function (cols, valueGetter) {
6147 if (!cols || cols.length == 0) {
6148 return undefined;
6149 }
6150 // compare each value to the first value. if nothing differs, then value is common so return it.
6151 var firstValue = valueGetter(cols[0]);
6152 for (var i = 1; i < cols.length; i++) {
6153 if (firstValue !== valueGetter(cols[i])) {
6154 // values differ, no common value
6155 return undefined;
6156 }
6157 }
6158 return firstValue;
6159 };
6160 ColumnController.prototype.raiseColumnVisibleEvent = function (changedColumns, source) {
6161 if (!changedColumns.length) {
6162 return;
6163 }
6164 // if just one column, we use this, otherwise we don't include the col
6165 var column = changedColumns.length === 1 ? changedColumns[0] : null;
6166 // only include visible if it's common in all columns
6167 var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });
6168 var event = {
6169 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VISIBLE,
6170 visible: visible,
6171 columns: changedColumns,
6172 column: column,
6173 api: this.gridApi,
6174 columnApi: this.columnApi,
6175 source: source
6176 };
6177 this.eventService.dispatchEvent(event);
6178 };
6179 ColumnController.prototype.raiseColumnMovedEvent = function (colStateBefore, source) {
6180 // we are only interested in columns that were both present and visible before and after
6181 var _this = this;
6182 var colStateAfter = this.getColumnState();
6183 var colStateAfterMapped = {};
6184 colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });
6185 // get id's of cols in both before and after lists
6186 var colsIntersectIds = {};
6187 colStateBefore.forEach(function (s) {
6188 if (colStateAfterMapped[s.colId]) {
6189 colsIntersectIds[s.colId] = true;
6190 }
6191 });
6192 // filter state lists, so we only have cols that were present before and after
6193 var beforeFiltered = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["filter"])(colStateBefore, function (c) { return colsIntersectIds[c.colId]; });
6194 var afterFiltered = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["filter"])(colStateAfter, function (c) { return colsIntersectIds[c.colId]; });
6195 // see if any cols are in a different location
6196 var movedColumns = [];
6197 afterFiltered.forEach(function (csAfter, index) {
6198 var csBefore = beforeFiltered && beforeFiltered[index];
6199 if (csBefore && csBefore.colId !== csAfter.colId) {
6200 var gridCol = _this.getGridColumn(csBefore.colId);
6201 if (gridCol) {
6202 movedColumns.push(gridCol);
6203 }
6204 }
6205 });
6206 if (!movedColumns.length) {
6207 return;
6208 }
6209 var event = {
6210 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_MOVED,
6211 columns: movedColumns,
6212 column: null,
6213 api: this.gridApi,
6214 columnApi: this.columnApi,
6215 source: source
6216 };
6217 this.eventService.dispatchEvent(event);
6218 };
6219 ColumnController.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {
6220 if (!column) {
6221 return;
6222 }
6223 var getValue = function (key1, key2) {
6224 var stateAny = stateItem;
6225 var defaultAny = defaultState;
6226 var obj = { value1: undefined, value2: undefined };
6227 var calculated = false;
6228 if (stateAny) {
6229 if (stateAny[key1] !== undefined) {
6230 obj.value1 = stateAny[key1];
6231 calculated = true;
6232 }
6233 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(key2) && stateAny[key2] !== undefined) {
6234 obj.value2 = stateAny[key2];
6235 calculated = true;
6236 }
6237 }
6238 if (!calculated && defaultAny) {
6239 if (defaultAny[key1] !== undefined) {
6240 obj.value1 = defaultAny[key1];
6241 }
6242 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(key2) && defaultAny[key2] !== undefined) {
6243 obj.value2 = defaultAny[key2];
6244 }
6245 }
6246 return obj;
6247 };
6248 // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true
6249 var hide = getValue('hide').value1;
6250 if (hide !== undefined) {
6251 column.setVisible(!hide, source);
6252 }
6253 // sets pinned to 'left' or 'right'
6254 var pinned = getValue('pinned').value1;
6255 if (pinned !== undefined) {
6256 column.setPinned(pinned);
6257 }
6258 // if width provided and valid, use it, otherwise stick with the old width
6259 var minColWidth = this.gridOptionsWrapper.getMinColWidth();
6260 // flex
6261 var flex = getValue('flex').value1;
6262 if (flex !== undefined) {
6263 column.setFlex(flex);
6264 }
6265 // width - we only set width if column is not flexing
6266 var noFlexThisCol = column.getFlex() <= 0;
6267 if (noFlexThisCol) {
6268 // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)
6269 var width = getValue('width').value1;
6270 if (width != null) {
6271 if (minColWidth &&
6272 (width >= minColWidth)) {
6273 column.setActualWidth(width, source);
6274 }
6275 }
6276 }
6277 var sort = getValue('sort').value1;
6278 if (sort !== undefined) {
6279 if (sort === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].SORT_DESC || sort === _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].SORT_ASC) {
6280 column.setSort(sort);
6281 }
6282 else {
6283 column.setSort(undefined);
6284 }
6285 }
6286 var sortIndex = getValue('sortIndex').value1;
6287 if (sortIndex !== undefined) {
6288 column.setSortIndex(sortIndex);
6289 }
6290 // we do not do aggFunc, rowGroup or pivot for auto cols, as you can't do these with auto col
6291 if (autoCol) {
6292 return;
6293 }
6294 var aggFunc = getValue('aggFunc').value1;
6295 if (aggFunc !== undefined) {
6296 if (typeof aggFunc === 'string') {
6297 column.setAggFunc(aggFunc);
6298 if (!column.isValueActive()) {
6299 column.setValueActive(true, source);
6300 this.valueColumns.push(column);
6301 }
6302 }
6303 else {
6304 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(aggFunc)) {
6305 console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +
6306 'functions, register the functions first before using them in get/set state. This is because it is ' +
6307 'intended for the column state to be stored and retrieved as simple JSON.');
6308 }
6309 column.setAggFunc(null);
6310 if (column.isValueActive()) {
6311 column.setValueActive(false, source);
6312 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.valueColumns, column);
6313 }
6314 }
6315 }
6316 var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;
6317 if (rowGroup !== undefined || rowGroupIndex !== undefined) {
6318 if (typeof rowGroupIndex === 'number' || rowGroup) {
6319 if (!column.isRowGroupActive()) {
6320 column.setRowGroupActive(true, source);
6321 this.rowGroupColumns.push(column);
6322 }
6323 if (rowGroupIndexes && typeof rowGroupIndex === 'number') {
6324 rowGroupIndexes[column.getId()] = rowGroupIndex;
6325 }
6326 }
6327 else {
6328 if (column.isRowGroupActive()) {
6329 column.setRowGroupActive(false, source);
6330 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.rowGroupColumns, column);
6331 }
6332 }
6333 }
6334 var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;
6335 if (pivot !== undefined || pivotIndex !== undefined) {
6336 if (typeof pivotIndex === 'number' || pivot) {
6337 if (!column.isPivotActive()) {
6338 column.setPivotActive(true, source);
6339 this.pivotColumns.push(column);
6340 }
6341 if (pivotIndexes && typeof pivotIndex === 'number') {
6342 pivotIndexes[column.getId()] = pivotIndex;
6343 }
6344 }
6345 else {
6346 if (column.isPivotActive()) {
6347 column.setPivotActive(false, source);
6348 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.pivotColumns, column);
6349 }
6350 }
6351 }
6352 };
6353 ColumnController.prototype.getGridColumns = function (keys) {
6354 return this.getColumns(keys, this.getGridColumn.bind(this));
6355 };
6356 ColumnController.prototype.getColumns = function (keys, columnLookupCallback) {
6357 var foundColumns = [];
6358 if (keys) {
6359 keys.forEach(function (key) {
6360 var column = columnLookupCallback(key);
6361 if (column) {
6362 foundColumns.push(column);
6363 }
6364 });
6365 }
6366 return foundColumns;
6367 };
6368 // used by growGroupPanel
6369 ColumnController.prototype.getColumnWithValidation = function (key) {
6370 if (key == null) {
6371 return null;
6372 }
6373 var column = this.getGridColumn(key);
6374 if (!column) {
6375 console.warn('AG Grid: could not find column ' + key);
6376 }
6377 return column;
6378 };
6379 ColumnController.prototype.getPrimaryColumn = function (key) {
6380 return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);
6381 };
6382 ColumnController.prototype.getGridColumn = function (key) {
6383 return this.getColumn(key, this.gridColumns, this.gridColumnsMap);
6384 };
6385 ColumnController.prototype.getColumn = function (key, columnList, columnMap) {
6386 if (!key) {
6387 return null;
6388 }
6389 // most of the time this method gets called the key is a string, so we put this shortcut in
6390 // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)
6391 if (typeof key == 'string' && columnMap[key]) {
6392 return columnMap[key];
6393 }
6394 for (var i = 0; i < columnList.length; i++) {
6395 if (this.columnsMatch(columnList[i], key)) {
6396 return columnList[i];
6397 }
6398 }
6399 return this.getAutoColumn(key);
6400 };
6401 ColumnController.prototype.getAutoColumn = function (key) {
6402 var _this = this;
6403 if (!this.groupAutoColumns ||
6404 !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.groupAutoColumns) ||
6405 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.groupAutoColumns)) {
6406 return null;
6407 }
6408 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["find"])(this.groupAutoColumns, function (groupCol) { return _this.columnsMatch(groupCol, key); });
6409 };
6410 ColumnController.prototype.columnsMatch = function (column, key) {
6411 var columnMatches = column === key;
6412 var colDefMatches = column.getColDef() === key;
6413 var idMatches = column.getColId() == key;
6414 return columnMatches || colDefMatches || idMatches;
6415 };
6416 ColumnController.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {
6417 if (includeAggFunc === void 0) { includeAggFunc = false; }
6418 if (!column) {
6419 return null;
6420 }
6421 var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);
6422 if (includeAggFunc) {
6423 return this.wrapHeaderNameWithAggFunc(column, headerName);
6424 }
6425 return headerName;
6426 };
6427 ColumnController.prototype.getDisplayNameForOriginalColumnGroup = function (columnGroup, originalColumnGroup, location) {
6428 var colGroupDef = originalColumnGroup ? originalColumnGroup.getColGroupDef() : null;
6429 if (colGroupDef) {
6430 return this.getHeaderName(colGroupDef, null, columnGroup, originalColumnGroup, location);
6431 }
6432 return null;
6433 };
6434 ColumnController.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {
6435 return this.getDisplayNameForOriginalColumnGroup(columnGroup, columnGroup.getOriginalColumnGroup(), location);
6436 };
6437 // location is where the column is going to appear, ie who is calling us
6438 ColumnController.prototype.getHeaderName = function (colDef, column, columnGroup, originalColumnGroup, location) {
6439 var headerValueGetter = colDef.headerValueGetter;
6440 if (headerValueGetter) {
6441 var params = {
6442 colDef: colDef,
6443 column: column,
6444 columnGroup: columnGroup,
6445 originalColumnGroup: originalColumnGroup,
6446 location: location,
6447 api: this.gridOptionsWrapper.getApi(),
6448 context: this.gridOptionsWrapper.getContext()
6449 };
6450 if (typeof headerValueGetter === 'function') {
6451 // valueGetter is a function, so just call it
6452 return headerValueGetter(params);
6453 }
6454 else if (typeof headerValueGetter === 'string') {
6455 // valueGetter is an expression, so execute the expression
6456 return this.expressionService.evaluate(headerValueGetter, params);
6457 }
6458 console.warn('ag-grid: headerValueGetter must be a function or a string');
6459 return '';
6460 }
6461 else if (colDef.headerName != null) {
6462 return colDef.headerName;
6463 }
6464 else if (colDef.field) {
6465 return Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["camelCaseToHumanText"])(colDef.field);
6466 }
6467 return '';
6468 };
6469 /*
6470 private getHeaderGroupName(columnGroup: ColumnGroup): string {
6471 let colGroupDef = columnGroup.getOriginalColumnGroup().getColGroupDef();
6472 let headerValueGetter = colGroupDef.headerValueGetter;
6473
6474 if (headerValueGetter) {
6475 let params = {
6476 columnGroup: columnGroup,
6477 colDef: colGroupDef,
6478 api: this.gridOptionsWrapper.getApi(),
6479 context: this.gridOptionsWrapper.getContext()
6480 };
6481
6482 if (typeof headerValueGetter === 'function') {
6483 // valueGetter is a function, so just call it
6484 return headerValueGetter(params);
6485 } else if (typeof headerValueGetter === 'string') {
6486 // valueGetter is an expression, so execute the expression
6487 return this.expressionService.evaluate(headerValueGetter, params);
6488 } else {
6489 console.warn('ag-grid: headerValueGetter must be a function or a string');
6490 return '';
6491 }
6492 } else {
6493 return colGroupDef.headerName;
6494 }
6495 }
6496 */
6497 ColumnController.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {
6498 if (this.gridOptionsWrapper.isSuppressAggFuncInHeader()) {
6499 return headerName;
6500 }
6501 // only columns with aggregation active can have aggregations
6502 var pivotValueColumn = column.getColDef().pivotValueColumn;
6503 var pivotActiveOnThisColumn = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(pivotValueColumn);
6504 var aggFunc = null;
6505 var aggFuncFound;
6506 // otherwise we have a measure that is active, and we are doing aggregation on it
6507 if (pivotActiveOnThisColumn) {
6508 aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;
6509 aggFuncFound = true;
6510 }
6511 else {
6512 var measureActive = column.isValueActive();
6513 var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();
6514 if (measureActive && aggregationPresent) {
6515 aggFunc = column.getAggFunc();
6516 aggFuncFound = true;
6517 }
6518 else {
6519 aggFuncFound = false;
6520 }
6521 }
6522 if (aggFuncFound) {
6523 var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';
6524 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
6525 var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);
6526 return aggFuncStringTranslated + "(" + headerName + ")";
6527 }
6528 return headerName;
6529 };
6530 // returns the group with matching colId and instanceId. If instanceId is missing,
6531 // matches only on the colId.
6532 ColumnController.prototype.getColumnGroup = function (colId, instanceId) {
6533 if (!colId) {
6534 return null;
6535 }
6536 if (colId instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6537 return colId;
6538 }
6539 var allColumnGroups = this.getAllDisplayedTrees();
6540 var checkInstanceId = typeof instanceId === 'number';
6541 var result = null;
6542 this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {
6543 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6544 var columnGroup = child;
6545 var matched = void 0;
6546 if (checkInstanceId) {
6547 matched = colId === columnGroup.getGroupId() && instanceId === columnGroup.getInstanceId();
6548 }
6549 else {
6550 matched = colId === columnGroup.getGroupId();
6551 }
6552 if (matched) {
6553 result = columnGroup;
6554 }
6555 }
6556 });
6557 return result;
6558 };
6559 ColumnController.prototype.isReady = function () {
6560 return this.ready;
6561 };
6562 ColumnController.prototype.extractValueColumns = function (source, oldPrimaryColumns) {
6563 this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); },
6564 // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null
6565 function () { return undefined; }, function () { return undefined; },
6566 // aggFunc is a string, so return it's existence
6567 function (colDef) {
6568 var aggFunc = colDef.aggFunc;
6569 // null or empty string means clear
6570 if (aggFunc === null || aggFunc === '') {
6571 return null;
6572 }
6573 if (aggFunc === undefined) {
6574 return;
6575 }
6576 return !!aggFunc;
6577 }, function (colDef) {
6578 // return false if any of the following: null, undefined, empty string
6579 return colDef.initialAggFunc != null && colDef.initialAggFunc != '';
6580 });
6581 // all new columns added will have aggFunc missing, so set it to what is in the colDef
6582 this.valueColumns.forEach(function (col) {
6583 var colDef = col.getColDef();
6584 // if aggFunc provided, we always override, as reactive property
6585 if (colDef.aggFunc != null && colDef.aggFunc != '') {
6586 col.setAggFunc(colDef.aggFunc);
6587 }
6588 else {
6589 // otherwise we use initialAggFunc only if no agg func set - which happens when new column only
6590 if (!col.getAggFunc()) {
6591 col.setAggFunc(colDef.initialAggFunc);
6592 }
6593 }
6594 });
6595 };
6596 ColumnController.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {
6597 this.rowGroupColumns = this.extractColumns(oldPrimaryColumns, this.rowGroupColumns, function (col, flag) { return col.setRowGroupActive(flag, source); }, function (colDef) { return colDef.rowGroupIndex; }, function (colDef) { return colDef.initialRowGroupIndex; }, function (colDef) { return colDef.rowGroup; }, function (colDef) { return colDef.initialRowGroup; });
6598 };
6599 ColumnController.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {
6600 if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }
6601 if (previousCols === void 0) { previousCols = []; }
6602 var colsWithIndex = [];
6603 var colsWithValue = [];
6604 // go though all cols.
6605 // if value, change
6606 // if default only, change only if new
6607 this.primaryColumns.forEach(function (col) {
6608 var colIsNew = oldPrimaryColumns.indexOf(col) < 0;
6609 var colDef = col.getColDef();
6610 var value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToBoolean"])(getValueFunc(colDef));
6611 var initialValue = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToBoolean"])(getInitialValueFunc(colDef));
6612 var index = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToNumber"])(getIndexFunc(colDef));
6613 var initialIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToNumber"])(getInitialIndexFunc(colDef));
6614 var include;
6615 if (colIsNew) {
6616 // col is new, use values if present, otherwise use default values if present
6617 var valuePresent = value !== undefined || index !== undefined;
6618 if (valuePresent) {
6619 if (value !== undefined) {
6620 // if boolean value present, we take it's value, even if 'false'
6621 include = value;
6622 }
6623 else {
6624 // otherwise we based on number value. note that 'null' resets, however 'undefined' doesn't
6625 // go through this code path (undefined means 'ignore').
6626 include = index >= 0;
6627 }
6628 }
6629 else {
6630 include = initialValue || initialIndex >= 0;
6631 }
6632 }
6633 else {
6634 // col is not new, we ignore the default values, just use the values if provided
6635 if (value !== undefined) { // value is never null, as attrToBoolean converts null to false
6636 include = value;
6637 }
6638 else if (index !== undefined) {
6639 if (index === null) {
6640 include = false;
6641 }
6642 else {
6643 include = index >= 0;
6644 }
6645 }
6646 else {
6647 // no values provided, we include if it was included last time
6648 include = previousCols.indexOf(col) >= 0;
6649 }
6650 }
6651 if (include) {
6652 var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;
6653 if (useIndex) {
6654 colsWithIndex.push(col);
6655 }
6656 else {
6657 colsWithValue.push(col);
6658 }
6659 }
6660 });
6661 var getIndexForCol = function (col) {
6662 var index = getIndexFunc(col.getColDef());
6663 var defaultIndex = getInitialIndexFunc(col.getColDef());
6664 return index != null ? index : defaultIndex;
6665 };
6666 // sort cols with index, and add these first
6667 colsWithIndex.sort(function (colA, colB) {
6668 var indexA = getIndexForCol(colA);
6669 var indexB = getIndexForCol(colB);
6670 if (indexA === indexB) {
6671 return 0;
6672 }
6673 if (indexA < indexB) {
6674 return -1;
6675 }
6676 return 1;
6677 });
6678 var res = [].concat(colsWithIndex);
6679 // second add columns that were there before and in the same order as they were before,
6680 // so we are preserving order of current grouping of columns that simply have rowGroup=true
6681 previousCols.forEach(function (col) {
6682 if (colsWithValue.indexOf(col) >= 0) {
6683 res.push(col);
6684 }
6685 });
6686 // lastly put in all remaining cols
6687 colsWithValue.forEach(function (col) {
6688 if (res.indexOf(col) < 0) {
6689 res.push(col);
6690 }
6691 });
6692 // set flag=false for removed cols
6693 previousCols.forEach(function (col) {
6694 if (res.indexOf(col) < 0) {
6695 setFlagFunc(col, false);
6696 }
6697 });
6698 // set flag=true for newly added cols
6699 res.forEach(function (col) {
6700 if (previousCols.indexOf(col) < 0) {
6701 setFlagFunc(col, true);
6702 }
6703 });
6704 return res;
6705 };
6706 ColumnController.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {
6707 this.pivotColumns = this.extractColumns(oldPrimaryColumns, this.pivotColumns, function (col, flag) { return col.setPivotActive(flag, source); }, function (colDef) { return colDef.pivotIndex; }, function (colDef) { return colDef.initialPivotIndex; }, function (colDef) { return colDef.pivot; }, function (colDef) { return colDef.initialPivot; });
6708 };
6709 ColumnController.prototype.resetColumnGroupState = function (source) {
6710 if (source === void 0) { source = "api"; }
6711 var stateItems = [];
6712 this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {
6713 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6714 var colGroupDef = child.getColGroupDef();
6715 var groupState = {
6716 groupId: child.getGroupId(),
6717 open: !colGroupDef ? undefined : colGroupDef.openByDefault
6718 };
6719 stateItems.push(groupState);
6720 }
6721 });
6722 this.setColumnGroupState(stateItems, source);
6723 };
6724 ColumnController.prototype.getColumnGroupState = function () {
6725 var columnGroupState = [];
6726 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {
6727 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6728 var originalColumnGroup = node;
6729 columnGroupState.push({
6730 groupId: originalColumnGroup.getGroupId(),
6731 open: originalColumnGroup.isExpanded()
6732 });
6733 }
6734 });
6735 return columnGroupState;
6736 };
6737 ColumnController.prototype.setColumnGroupState = function (stateItems, source) {
6738 var _this = this;
6739 if (source === void 0) { source = "api"; }
6740 this.columnAnimationService.start();
6741 var impactedGroups = [];
6742 stateItems.forEach(function (stateItem) {
6743 var groupKey = stateItem.groupId;
6744 var newValue = stateItem.open;
6745 var originalColumnGroup = _this.getOriginalColumnGroup(groupKey);
6746 if (!originalColumnGroup) {
6747 return;
6748 }
6749 if (originalColumnGroup.isExpanded() === newValue) {
6750 return;
6751 }
6752 _this.logger.log('columnGroupOpened(' + originalColumnGroup.getGroupId() + ',' + newValue + ')');
6753 originalColumnGroup.setExpanded(newValue);
6754 impactedGroups.push(originalColumnGroup);
6755 });
6756 this.updateGroupsAndDisplayedColumns(source);
6757 this.setFirstRightAndLastLeftPinned(source);
6758 impactedGroups.forEach(function (originalColumnGroup) {
6759 var event = {
6760 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_GROUP_OPENED,
6761 columnGroup: originalColumnGroup,
6762 api: _this.gridApi,
6763 columnApi: _this.columnApi
6764 };
6765 _this.eventService.dispatchEvent(event);
6766 });
6767 this.columnAnimationService.finish();
6768 };
6769 // called by headerRenderer - when a header is opened or closed
6770 ColumnController.prototype.setColumnGroupOpened = function (key, newValue, source) {
6771 if (source === void 0) { source = "api"; }
6772 var keyAsString;
6773 if (key instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6774 keyAsString = key.getId();
6775 }
6776 else {
6777 keyAsString = key || '';
6778 }
6779 this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);
6780 };
6781 ColumnController.prototype.getOriginalColumnGroup = function (key) {
6782 if (key instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6783 return key;
6784 }
6785 if (typeof key !== 'string') {
6786 console.error('AG Grid: group key must be a string');
6787 }
6788 // otherwise, search for the column group by id
6789 var res = null;
6790 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {
6791 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"]) {
6792 var originalColumnGroup = node;
6793 if (originalColumnGroup.getId() === key) {
6794 res = originalColumnGroup;
6795 }
6796 }
6797 });
6798 return res;
6799 };
6800 ColumnController.prototype.calculateColumnsForDisplay = function () {
6801 var _this = this;
6802 var columnsForDisplay;
6803 if (this.pivotMode && !this.secondaryColumnsPresent) {
6804 // pivot mode is on, but we are not pivoting, so we only
6805 // show columns we are aggregating on
6806 columnsForDisplay = this.gridColumns.filter(function (column) {
6807 var isAutoGroupCol = _this.groupAutoColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.groupAutoColumns, column);
6808 var isValueCol = _this.valueColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.valueColumns, column);
6809 return isAutoGroupCol || isValueCol;
6810 });
6811 }
6812 else {
6813 // otherwise continue as normal. this can be working on the primary
6814 // or secondary columns, whatever the gridColumns are set to
6815 columnsForDisplay = this.gridColumns.filter(function (column) {
6816 // keep col if a) it's auto-group or b) it's visible
6817 var isAutoGroupCol = _this.groupAutoColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.groupAutoColumns, column);
6818 return isAutoGroupCol || column.isVisible();
6819 });
6820 }
6821 return columnsForDisplay;
6822 };
6823 ColumnController.prototype.checkColSpanActiveInCols = function (columns) {
6824 var result = false;
6825 columns.forEach(function (col) {
6826 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(col.getColDef().colSpan)) {
6827 result = true;
6828 }
6829 });
6830 return result;
6831 };
6832 ColumnController.prototype.calculateColumnsForGroupDisplay = function () {
6833 var _this = this;
6834 this.groupDisplayColumns = [];
6835 var checkFunc = function (col) {
6836 var colDef = col.getColDef();
6837 if (colDef && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(colDef.showRowGroup)) {
6838 _this.groupDisplayColumns.push(col);
6839 }
6840 };
6841 this.gridColumns.forEach(checkFunc);
6842 if (this.groupAutoColumns) {
6843 this.groupAutoColumns.forEach(checkFunc);
6844 }
6845 };
6846 ColumnController.prototype.getGroupDisplayColumns = function () {
6847 return this.groupDisplayColumns;
6848 };
6849 ColumnController.prototype.updateDisplayedColumns = function (source) {
6850 var columnsForDisplay = this.calculateColumnsForDisplay();
6851 this.buildDisplayedTrees(columnsForDisplay);
6852 this.calculateColumnsForGroupDisplay();
6853 // also called when group opened/closed
6854 this.updateGroupsAndDisplayedColumns(source);
6855 // also called when group opened/closed
6856 this.setFirstRightAndLastLeftPinned(source);
6857 };
6858 ColumnController.prototype.isSecondaryColumnsPresent = function () {
6859 return this.secondaryColumnsPresent;
6860 };
6861 ColumnController.prototype.setSecondaryColumns = function (colDefs, source) {
6862 if (source === void 0) { source = "api"; }
6863 var newColsPresent = colDefs && colDefs.length > 0;
6864 // if not cols passed, and we had to cols anyway, then do nothing
6865 if (!newColsPresent && !this.secondaryColumnsPresent) {
6866 return;
6867 }
6868 if (newColsPresent) {
6869 this.processSecondaryColumnDefinitions(colDefs);
6870 var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false);
6871 this.secondaryBalancedTree = balancedTreeResult.columnTree;
6872 this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;
6873 this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);
6874 this.secondaryColumnsPresent = true;
6875 }
6876 else {
6877 this.secondaryBalancedTree = null;
6878 this.secondaryHeaderRowCount = -1;
6879 this.secondaryColumns = null;
6880 this.secondaryColumnsPresent = false;
6881 }
6882 this.updateGridColumns();
6883 this.updateDisplayedColumns(source);
6884 };
6885 ColumnController.prototype.processSecondaryColumnDefinitions = function (colDefs) {
6886 var columnCallback = this.gridOptionsWrapper.getProcessSecondaryColDefFunc();
6887 var groupCallback = this.gridOptionsWrapper.getProcessSecondaryColGroupDefFunc();
6888 if (!columnCallback && !groupCallback) {
6889 return undefined;
6890 }
6891 var searchForColDefs = function (colDefs2) {
6892 colDefs2.forEach(function (abstractColDef) {
6893 var isGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(abstractColDef.children);
6894 if (isGroup) {
6895 var colGroupDef = abstractColDef;
6896 if (groupCallback) {
6897 groupCallback(colGroupDef);
6898 }
6899 searchForColDefs(colGroupDef.children);
6900 }
6901 else {
6902 var colDef = abstractColDef;
6903 if (columnCallback) {
6904 columnCallback(colDef);
6905 }
6906 }
6907 });
6908 };
6909 if (colDefs) {
6910 searchForColDefs(colDefs);
6911 }
6912 };
6913 // called from: setColumnState, setColumnDefs, setSecondaryColumns
6914 ColumnController.prototype.updateGridColumns = function () {
6915 var _this = this;
6916 if (this.gridColsArePrimary) {
6917 this.lastPrimaryOrder = this.gridColumns;
6918 }
6919 if (this.secondaryColumns && this.secondaryBalancedTree) {
6920 this.gridBalancedTree = this.secondaryBalancedTree.slice();
6921 this.gridHeaderRowCount = this.secondaryHeaderRowCount;
6922 this.gridColumns = this.secondaryColumns.slice();
6923 this.gridColsArePrimary = false;
6924 }
6925 else {
6926 this.gridBalancedTree = this.primaryColumnTree.slice();
6927 this.gridHeaderRowCount = this.primaryHeaderRowCount;
6928 this.gridColumns = this.primaryColumns.slice();
6929 this.gridColsArePrimary = true;
6930 // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns
6931 // when this happens (eg if user moved a column) rather than revert back to the original column order.
6932 // likewise if changing in/out of pivot mode, we want to maintain the order of the primary cols
6933 this.orderGridColsLikeLastPrimary();
6934 }
6935 this.addAutoGroupToGridColumns();
6936 this.autoRowHeightColumns = this.gridColumns.filter(function (col) { return col.getColDef().autoHeight; });
6937 this.gridColumns = this.putFixedColumnsFirst(this.gridColumns);
6938 this.setupQuickFilterColumns();
6939 this.clearDisplayedAndViewportColumns();
6940 this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);
6941 this.gridColumnsMap = {};
6942 this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });
6943 var event = {
6944 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_GRID_COLUMNS_CHANGED,
6945 api: this.gridApi,
6946 columnApi: this.columnApi
6947 };
6948 this.eventService.dispatchEvent(event);
6949 };
6950 ColumnController.prototype.orderGridColsLikeLastPrimary = function () {
6951 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.lastPrimaryOrder)) {
6952 return;
6953 }
6954 var lastPrimaryOrderMapped = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.lastPrimaryOrder.map(function (col, index) { return [col, index]; }));
6955 // only do the sort if at least one column is accounted for. columns will be not accounted for
6956 // if changing from secondary to primary columns
6957 var noColsFound = true;
6958 this.gridColumns.forEach(function (col) {
6959 if (lastPrimaryOrderMapped.has(col)) {
6960 noColsFound = false;
6961 }
6962 });
6963 if (noColsFound) {
6964 return;
6965 }
6966 // order cols in the same order as before. we need to make sure that all
6967 // cols still exists, so filter out any that no longer exist.
6968 var gridColsMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.gridColumns.map(function (col) { return [col, true]; }));
6969 var oldColsOrdered = this.lastPrimaryOrder.filter(function (col) { return gridColsMap.has(col); });
6970 var oldColsMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(oldColsOrdered.map(function (col) { return [col, true]; }));
6971 var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });
6972 // add in the new columns, at the end (if no group), or at the end of the group (if a group)
6973 var newGridColumns = oldColsOrdered.slice();
6974 newColsOrdered.forEach(function (newCol) {
6975 var parent = newCol.getOriginalParent();
6976 // if no parent, means we are not grouping, so just add the column to the end
6977 if (!parent) {
6978 newGridColumns.push(newCol);
6979 return;
6980 }
6981 // find the group the column belongs to. if no siblings at the current level (eg col in group on it's
6982 // own) then go up one level and look for siblings there.
6983 var siblings = [];
6984 while (!siblings.length && parent) {
6985 var leafCols = parent.getLeafColumns();
6986 leafCols.forEach(function (leafCol) {
6987 var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;
6988 var noYetInSiblings = siblings.indexOf(leafCol) < 0;
6989 if (presentInNewGriColumns && noYetInSiblings) {
6990 siblings.push(leafCol);
6991 }
6992 });
6993 parent = parent.getOriginalParent();
6994 }
6995 // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own
6996 if (!siblings.length) {
6997 newGridColumns.push(newCol);
6998 return;
6999 }
7000 // find index of last column in the group
7001 var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });
7002 var lastIndex = Math.max.apply(Math, indexes);
7003 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["insertIntoArray"])(newGridColumns, newCol, lastIndex + 1);
7004 });
7005 this.gridColumns = newGridColumns;
7006 };
7007 ColumnController.prototype.isPrimaryColumnGroupsPresent = function () {
7008 return this.primaryHeaderRowCount > 1;
7009 };
7010 // if we are using autoGroupCols, then they should be included for quick filter. this covers the
7011 // following scenarios:
7012 // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on
7013 // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this
7014 // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)
7015 ColumnController.prototype.setupQuickFilterColumns = function () {
7016 if (this.groupAutoColumns) {
7017 this.columnsForQuickFilter = this.primaryColumns.concat(this.groupAutoColumns);
7018 }
7019 else {
7020 this.columnsForQuickFilter = this.primaryColumns;
7021 }
7022 };
7023 ColumnController.prototype.putFixedColumnsFirst = function (cols) {
7024 var locked = cols.filter(function (c) { return c.getColDef().lockPosition; });
7025 var unlocked = cols.filter(function (c) { return !c.getColDef().lockPosition; });
7026 return locked.concat(unlocked);
7027 };
7028 ColumnController.prototype.addAutoGroupToGridColumns = function () {
7029 // add in auto-group here
7030 this.createGroupAutoColumnsIfNeeded();
7031 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.groupAutoColumns)) {
7032 return;
7033 }
7034 this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;
7035 var autoColBalancedTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);
7036 this.gridBalancedTree = autoColBalancedTree.concat(this.gridBalancedTree);
7037 };
7038 // gets called after we copy down grid columns, to make sure any part of the gui
7039 // that tries to draw, eg the header, it will get empty lists of columns rather
7040 // than stale columns. for example, the header will received gridColumnsChanged
7041 // event, so will try and draw, but it will draw successfully when it acts on the
7042 // virtualColumnsChanged event
7043 ColumnController.prototype.clearDisplayedAndViewportColumns = function () {
7044 this.displayedTreeLeft = [];
7045 this.displayedTreeRight = [];
7046 this.displayedTreeCentre = [];
7047 this.viewportRowLeft = {};
7048 this.viewportRowRight = {};
7049 this.viewportRowCenter = {};
7050 this.displayedColumnsLeft = [];
7051 this.displayedColumnsRight = [];
7052 this.displayedColumnsCenter = [];
7053 this.displayedColumns = [];
7054 this.viewportColumns = [];
7055 };
7056 ColumnController.prototype.updateGroupsAndDisplayedColumns = function (source) {
7057 this.updateOpenClosedVisibilityInColumnGroups();
7058 this.deriveDisplayedColumns(source);
7059 this.refreshFlexedColumns();
7060 this.extractViewport();
7061 this.updateBodyWidths();
7062 // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display
7063 var event = {
7064 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED,
7065 api: this.gridApi,
7066 columnApi: this.columnApi
7067 };
7068 this.eventService.dispatchEvent(event);
7069 };
7070 ColumnController.prototype.deriveDisplayedColumns = function (source) {
7071 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);
7072 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);
7073 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);
7074 this.joinDisplayedColumns();
7075 this.setLeftValues(source);
7076 };
7077 ColumnController.prototype.joinDisplayedColumns = function () {
7078 if (this.gridOptionsWrapper.isEnableRtl()) {
7079 this.displayedColumns = this.displayedColumnsRight
7080 .concat(this.displayedColumnsCenter)
7081 .concat(this.displayedColumnsLeft);
7082 }
7083 else {
7084 this.displayedColumns = this.displayedColumnsLeft
7085 .concat(this.displayedColumnsCenter)
7086 .concat(this.displayedColumnsRight);
7087 }
7088 };
7089 // sets the left pixel position of each column
7090 ColumnController.prototype.setLeftValues = function (source) {
7091 this.setLeftValuesOfColumns(source);
7092 this.setLeftValuesOfGroups();
7093 };
7094 ColumnController.prototype.setLeftValuesOfColumns = function (source) {
7095 var _this = this;
7096 // go through each list of displayed columns
7097 var allColumns = this.primaryColumns.slice(0);
7098 // let totalColumnWidth = this.getWidthOfColsInList()
7099 var doingRtl = this.gridOptionsWrapper.isEnableRtl();
7100 [
7101 this.displayedColumnsLeft,
7102 this.displayedColumnsRight,
7103 this.displayedColumnsCenter
7104 ].forEach(function (columns) {
7105 if (doingRtl) {
7106 // when doing RTL, we start at the top most pixel (ie RHS) and work backwards
7107 var left_1 = _this.getWidthOfColsInList(columns);
7108 columns.forEach(function (column) {
7109 left_1 -= column.getActualWidth();
7110 column.setLeft(left_1, source);
7111 });
7112 }
7113 else {
7114 // otherwise normal LTR, we start at zero
7115 var left_2 = 0;
7116 columns.forEach(function (column) {
7117 column.setLeft(left_2, source);
7118 left_2 += column.getActualWidth();
7119 });
7120 }
7121 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeAllFromArray"])(allColumns, columns);
7122 });
7123 // items left in allColumns are columns not displayed, so remove the left position. this is
7124 // important for the rows, as if a col is made visible, then taken out, then made visible again,
7125 // we don't want the animation of the cell floating in from the old position, whatever that was.
7126 allColumns.forEach(function (column) {
7127 column.setLeft(null, source);
7128 });
7129 };
7130 ColumnController.prototype.setLeftValuesOfGroups = function () {
7131 // a groups left value is the lest left value of it's children
7132 [
7133 this.displayedTreeLeft,
7134 this.displayedTreeRight,
7135 this.displayedTreeCentre
7136 ].forEach(function (columns) {
7137 columns.forEach(function (column) {
7138 if (column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
7139 var columnGroup = column;
7140 columnGroup.checkLeft();
7141 }
7142 });
7143 });
7144 };
7145 ColumnController.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {
7146 columns.length = 0;
7147 this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {
7148 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
7149 columns.push(child);
7150 }
7151 });
7152 };
7153 ColumnController.prototype.extractViewportColumns = function () {
7154 if (this.suppressColumnVirtualisation) {
7155 // no virtualisation, so don't filter
7156 this.viewportColumnsCenter = this.displayedColumnsCenter;
7157 }
7158 else {
7159 // filter out what should be visible
7160 this.viewportColumnsCenter = this.filterOutColumnsWithinViewport();
7161 }
7162 this.viewportColumns = this.viewportColumnsCenter
7163 .concat(this.displayedColumnsLeft)
7164 .concat(this.displayedColumnsRight);
7165 };
7166 ColumnController.prototype.getVirtualHeaderGroupRow = function (type, dept) {
7167 var result;
7168 switch (type) {
7169 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT:
7170 result = this.viewportRowLeft[dept];
7171 break;
7172 case _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT:
7173 result = this.viewportRowRight[dept];
7174 break;
7175 default:
7176 result = this.viewportRowCenter[dept];
7177 break;
7178 }
7179 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(result)) {
7180 result = [];
7181 }
7182 return result;
7183 };
7184 ColumnController.prototype.extractViewportRows = function () {
7185 // go through each group, see if any of it's cols are displayed, and if yes,
7186 // then this group is included
7187 this.viewportRowLeft = {};
7188 this.viewportRowRight = {};
7189 this.viewportRowCenter = {};
7190 // for easy lookup when building the groups.
7191 var virtualColIds = {};
7192 this.viewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });
7193 var testGroup = function (children, result, dept) {
7194 var returnValue = false;
7195 for (var i = 0; i < children.length; i++) {
7196 // see if this item is within viewport
7197 var child = children[i];
7198 var addThisItem = false;
7199 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
7200 // for column, test if column is included
7201 addThisItem = virtualColIds[child.getId()] === true;
7202 }
7203 else {
7204 // if group, base decision on children
7205 var columnGroup = child;
7206 var displayedChildren = columnGroup.getDisplayedChildren();
7207 if (displayedChildren) {
7208 addThisItem = testGroup(displayedChildren, result, dept + 1);
7209 }
7210 }
7211 if (addThisItem) {
7212 returnValue = true;
7213 if (!result[dept]) {
7214 result[dept] = [];
7215 }
7216 result[dept].push(child);
7217 }
7218 }
7219 return returnValue;
7220 };
7221 testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);
7222 testGroup(this.displayedTreeRight, this.viewportRowRight, 0);
7223 testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);
7224 };
7225 ColumnController.prototype.extractViewport = function () {
7226 this.extractViewportColumns();
7227 this.extractViewportRows();
7228 };
7229 ColumnController.prototype.filterOutColumnsWithinViewport = function () {
7230 return this.displayedColumnsCenter.filter(this.isColumnInViewport.bind(this));
7231 };
7232 ColumnController.prototype.refreshFlexedColumns = function (params) {
7233 var _this = this;
7234 if (params === void 0) { params = {}; }
7235 var source = params.source ? params.source : 'flex';
7236 if (params.viewportWidth != null) {
7237 this.flexViewportWidth = params.viewportWidth;
7238 }
7239 if (!this.flexViewportWidth) {
7240 return [];
7241 }
7242 // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.
7243 // A "flexing column" is one that has a 'flex' value set and is not currently being constrained by its
7244 // minWidth or maxWidth rules.
7245 var flexAfterDisplayIndex = -1;
7246 if (params.resizingCols) {
7247 params.resizingCols.forEach(function (col) {
7248 var indexOfCol = _this.displayedColumnsCenter.indexOf(col);
7249 if (flexAfterDisplayIndex < indexOfCol) {
7250 flexAfterDisplayIndex = indexOfCol;
7251 }
7252 });
7253 }
7254 var isColFlex = function (col) {
7255 var afterResizingCols = _this.displayedColumnsCenter.indexOf(col) > flexAfterDisplayIndex;
7256 return col.getFlex() && afterResizingCols;
7257 };
7258 var knownWidthColumns = this.displayedColumnsCenter.filter(function (col) { return !isColFlex(col); });
7259 var flexingColumns = this.displayedColumnsCenter.filter(function (col) { return isColFlex(col); });
7260 var changedColumns = [];
7261 if (!flexingColumns.length) {
7262 return [];
7263 }
7264 var flexingColumnSizes = [];
7265 var spaceForFlexingColumns;
7266 outer: while (true) {
7267 var totalFlex = flexingColumns.reduce(function (count, col) { return count + col.getFlex(); }, 0);
7268 spaceForFlexingColumns = this.flexViewportWidth - this.getWidthOfColsInList(knownWidthColumns);
7269 for (var i = 0; i < flexingColumns.length; i++) {
7270 var col = flexingColumns[i];
7271 var widthByFlexRule = spaceForFlexingColumns * col.getFlex() / totalFlex;
7272 var constrainedWidth = 0;
7273 var minWidth = col.getMinWidth();
7274 var maxWidth = col.getMaxWidth();
7275 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && widthByFlexRule < minWidth) {
7276 constrainedWidth = minWidth;
7277 }
7278 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && widthByFlexRule > maxWidth) {
7279 constrainedWidth = maxWidth;
7280 }
7281 if (constrainedWidth) {
7282 // This column is not in fact flexing as it is being constrained to a specific size
7283 // so remove it from the list of flexing columns and start again
7284 col.setActualWidth(constrainedWidth, source);
7285 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(flexingColumns, col);
7286 changedColumns.push(col);
7287 knownWidthColumns.push(col);
7288 continue outer;
7289 }
7290 flexingColumnSizes[i] = Math.round(widthByFlexRule);
7291 }
7292 break;
7293 }
7294 var remainingSpace = spaceForFlexingColumns;
7295 flexingColumns.forEach(function (col, i) {
7296 col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);
7297 changedColumns.push(col);
7298 remainingSpace -= flexingColumnSizes[i];
7299 });
7300 if (!params.skipSetLeft) {
7301 this.setLeftValues(source);
7302 }
7303 if (params.updateBodyWidths) {
7304 this.updateBodyWidths();
7305 }
7306 if (params.fireResizedEvent) {
7307 this.fireColumnResizedEvent(changedColumns, true, source, flexingColumns);
7308 }
7309 // if the user sets rowData directly into GridOptions, then the row data is set before
7310 // grid is attached to the DOM. this means the columns are not flexed, and then the rows
7311 // have the wrong height (as they depend on column widths). so once the columns have
7312 // been flexed for the first time (only happens once grid is attached to DOM, as dependency
7313 // on getting the grid width, which only happens after attached after ResizeObserver fires)
7314 // we get get rows to re-calc their heights.
7315 if (!this.flexColsCalculatedAtLestOnce) {
7316 if (this.gridOptionsWrapper.isRowModelDefault()) {
7317 this.rowModel.resetRowHeights();
7318 }
7319 this.flexColsCalculatedAtLestOnce = true;
7320 }
7321 return flexingColumns;
7322 };
7323 // called from api
7324 ColumnController.prototype.sizeColumnsToFit = function (gridWidth, source, silent) {
7325 if (source === void 0) { source = "sizeColumnsToFit"; }
7326 // avoid divide by zero
7327 var allDisplayedColumns = this.getAllDisplayedColumns();
7328 if (gridWidth <= 0 || !allDisplayedColumns.length) {
7329 return;
7330 }
7331 var colsToSpread = [];
7332 var colsToNotSpread = [];
7333 allDisplayedColumns.forEach(function (column) {
7334 if (column.getColDef().suppressSizeToFit === true) {
7335 colsToNotSpread.push(column);
7336 }
7337 else {
7338 colsToSpread.push(column);
7339 }
7340 });
7341 // make a copy of the cols that are going to be resized
7342 var colsToFireEventFor = colsToSpread.slice(0);
7343 var finishedResizing = false;
7344 var moveToNotSpread = function (column) {
7345 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(colsToSpread, column);
7346 colsToNotSpread.push(column);
7347 };
7348 // resetting cols to their original width makes the sizeColumnsToFit more deterministic,
7349 // rather than depending on the current size of the columns. most users call sizeColumnsToFit
7350 // immediately after grid is created, so will make no difference. however if application is calling
7351 // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want
7352 // the columns to start shrinking / growing over time.
7353 //
7354 // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events
7355 // for this reason we need to manually fire resize events after the resize has been done for each column.
7356 colsToSpread.forEach(function (column) { return column.resetActualWidth(source); });
7357 while (!finishedResizing) {
7358 finishedResizing = true;
7359 var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);
7360 if (availablePixels <= 0) {
7361 // no width, set everything to minimum
7362 colsToSpread.forEach(function (column) {
7363 column.setMinimum(source);
7364 });
7365 }
7366 else {
7367 var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);
7368 // we set the pixels for the last col based on what's left, as otherwise
7369 // we could be a pixel or two short or extra because of rounding errors.
7370 var pixelsForLastCol = availablePixels;
7371 // backwards through loop, as we are removing items as we go
7372 for (var i = colsToSpread.length - 1; i >= 0; i--) {
7373 var column = colsToSpread[i];
7374 var minWidth = column.getMinWidth();
7375 var maxWidth = column.getMaxWidth();
7376 var newWidth = Math.round(column.getActualWidth() * scale);
7377 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && newWidth < minWidth) {
7378 newWidth = minWidth;
7379 moveToNotSpread(column);
7380 finishedResizing = false;
7381 }
7382 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && column.isGreaterThanMax(newWidth)) {
7383 newWidth = maxWidth;
7384 moveToNotSpread(column);
7385 finishedResizing = false;
7386 }
7387 else if (i === 0) { // if this is the last column
7388 newWidth = pixelsForLastCol;
7389 }
7390 column.setActualWidth(newWidth, source, true);
7391 pixelsForLastCol -= newWidth;
7392 }
7393 }
7394 }
7395 // see notes above
7396 colsToFireEventFor.forEach(function (col) {
7397 col.fireColumnWidthChangedEvent(source);
7398 });
7399 this.setLeftValues(source);
7400 this.updateBodyWidths();
7401 if (silent) {
7402 return;
7403 }
7404 this.fireColumnResizedEvent(colsToFireEventFor, true, source);
7405 };
7406 ColumnController.prototype.buildDisplayedTrees = function (visibleColumns) {
7407 var leftVisibleColumns = [];
7408 var rightVisibleColumns = [];
7409 var centerVisibleColumns = [];
7410 visibleColumns.forEach(function (column) {
7411 switch (column.getPinned()) {
7412 case "left":
7413 leftVisibleColumns.push(column);
7414 break;
7415 case "right":
7416 rightVisibleColumns.push(column);
7417 break;
7418 default:
7419 centerVisibleColumns.push(column);
7420 break;
7421 }
7422 });
7423 var groupInstanceIdCreator = new _groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__["GroupInstanceIdCreator"]();
7424 this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_LEFT, this.displayedTreeLeft);
7425 this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, _constants_constants__WEBPACK_IMPORTED_MODULE_7__["Constants"].PINNED_RIGHT, this.displayedTreeRight);
7426 this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, null, this.displayedTreeCentre);
7427 this.updateDisplayedMap();
7428 };
7429 ColumnController.prototype.updateDisplayedMap = function () {
7430 var _this = this;
7431 this.displayedColumnsAndGroupsMap = {};
7432 var func = function (child) {
7433 _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;
7434 };
7435 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);
7436 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);
7437 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);
7438 };
7439 ColumnController.prototype.isDisplayed = function (item) {
7440 var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];
7441 // check for reference, in case new column / group with same id is now present
7442 return fromMap === item;
7443 };
7444 ColumnController.prototype.updateOpenClosedVisibilityInColumnGroups = function () {
7445 var allColumnGroups = this.getAllDisplayedTrees();
7446 this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {
7447 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
7448 var columnGroup = child;
7449 columnGroup.calculateDisplayedColumns();
7450 }
7451 });
7452 };
7453 ColumnController.prototype.getGroupAutoColumns = function () {
7454 return this.groupAutoColumns;
7455 };
7456 ColumnController.prototype.createGroupAutoColumnsIfNeeded = function () {
7457 if (!this.autoGroupsNeedBuilding) {
7458 return;
7459 }
7460 this.autoGroupsNeedBuilding = false;
7461 var groupFullWidthRow = this.gridOptionsWrapper.isGroupUseEntireRow(this.pivotMode);
7462 // we need to allow suppressing auto-column separately for group and pivot as the normal situation
7463 // is CSRM and user provides group column themselves for normal view, but when they go into pivot the
7464 // columns are generated by the grid so no opportunity for user to provide group column. so need a way
7465 // to suppress auto-col for grouping only, and not pivot.
7466 // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control
7467 // of the group column in this instance.
7468 var suppressAutoColumn = this.pivotMode ?
7469 this.gridOptionsWrapper.isPivotSuppressAutoColumn() : this.gridOptionsWrapper.isGroupSuppressAutoColumn();
7470 var groupingActive = this.rowGroupColumns.length > 0 || this.usingTreeData;
7471 var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;
7472 if (needAutoColumns) {
7473 var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(this.rowGroupColumns);
7474 var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);
7475 // we force recreate when suppressColumnStateEvents changes, so new group cols pick up the new
7476 // definitions. otherwise we could ignore the new cols because they appear to be the same.
7477 if (autoColsDifferent || this.forceRecreateAutoGroups) {
7478 this.groupAutoColumns = newAutoGroupCols;
7479 }
7480 }
7481 else {
7482 this.groupAutoColumns = null;
7483 }
7484 };
7485 ColumnController.prototype.autoColsEqual = function (colsA, colsB) {
7486 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });
7487 };
7488 ColumnController.prototype.getWidthOfColsInList = function (columnList) {
7489 return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);
7490 };
7491 ColumnController.prototype.getGridBalancedTree = function () {
7492 return this.gridBalancedTree;
7493 };
7494 ColumnController.prototype.hasFloatingFilters = function () {
7495 if (!this.gridColumns) {
7496 return false;
7497 }
7498 var res = this.gridColumns.some(function (col) { return col.getColDef().floatingFilter; });
7499 return res;
7500 };
7501 ColumnController.prototype.getFirstDisplayedColumn = function () {
7502 var isRtl = this.gridOptionsWrapper.isEnableRtl();
7503 var queryOrder = [
7504 'getDisplayedLeftColumns',
7505 'getDisplayedCenterColumns',
7506 'getDisplayedRightColumns'
7507 ];
7508 if (isRtl) {
7509 queryOrder.reverse();
7510 }
7511 for (var i = 0; i < queryOrder.length; i++) {
7512 var container = this[queryOrder[i]]();
7513 if (container.length) {
7514 return isRtl ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(container) : container[0];
7515 }
7516 }
7517 return null;
7518 };
7519 __decorate([
7520 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('expressionService')
7521 ], ColumnController.prototype, "expressionService", void 0);
7522 __decorate([
7523 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnFactory')
7524 ], ColumnController.prototype, "columnFactory", void 0);
7525 __decorate([
7526 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('displayedGroupCreator')
7527 ], ColumnController.prototype, "displayedGroupCreator", void 0);
7528 __decorate([
7529 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('autoWidthCalculator')
7530 ], ColumnController.prototype, "autoWidthCalculator", void 0);
7531 __decorate([
7532 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnUtils')
7533 ], ColumnController.prototype, "columnUtils", void 0);
7534 __decorate([
7535 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnAnimationService')
7536 ], ColumnController.prototype, "columnAnimationService", void 0);
7537 __decorate([
7538 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('autoGroupColService')
7539 ], ColumnController.prototype, "autoGroupColService", void 0);
7540 __decorate([
7541 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('aggFuncService')
7542 ], ColumnController.prototype, "aggFuncService", void 0);
7543 __decorate([
7544 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('valueCache')
7545 ], ColumnController.prototype, "valueCache", void 0);
7546 __decorate([
7547 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('animationFrameService')
7548 ], ColumnController.prototype, "animationFrameService", void 0);
7549 __decorate([
7550 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('rowModel')
7551 ], ColumnController.prototype, "rowModel", void 0);
7552 __decorate([
7553 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnApi')
7554 ], ColumnController.prototype, "columnApi", void 0);
7555 __decorate([
7556 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('gridApi')
7557 ], ColumnController.prototype, "gridApi", void 0);
7558 __decorate([
7559 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('sortController')
7560 ], ColumnController.prototype, "sortController", void 0);
7561 __decorate([
7562 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnDefFactory')
7563 ], ColumnController.prototype, "columnDefFactory", void 0);
7564 __decorate([
7565 _context_context__WEBPACK_IMPORTED_MODULE_6__["PostConstruct"]
7566 ], ColumnController.prototype, "init", null);
7567 __decorate([
7568 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Qualifier"])('loggerFactory'))
7569 ], ColumnController.prototype, "setBeans", null);
7570 ColumnController = __decorate([
7571 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Bean"])('columnController')
7572 ], ColumnController);
7573 return ColumnController;
7574}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
7575
7576
7577
7578/***/ }),
7579/* 23 */
7580/***/ (function(module, __webpack_exports__, __webpack_require__) {
7581
7582"use strict";
7583__webpack_require__.r(__webpack_exports__);
7584/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24);
7585/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"]; });
7586
7587/**
7588 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7589 * @version v25.3.0
7590 * @link http://www.ag-grid.com/
7591 * @license MIT
7592 */
7593
7594
7595
7596/***/ }),
7597/* 24 */
7598/***/ (function(module, __webpack_exports__, __webpack_require__) {
7599
7600"use strict";
7601__webpack_require__.r(__webpack_exports__);
7602/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return Events; });
7603/**
7604 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7605 * @version v25.3.0
7606 * @link http://www.ag-grid.com/
7607 * @license MIT
7608 */
7609var Events = /** @class */ (function () {
7610 function Events() {
7611 }
7612 /** Everything has changed with the columns. Either complete new set of columns set, or user called setState() */
7613 /** @deprecated - grid no longer uses this, and setSate() also fires individual events */
7614 Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';
7615 /** User has set in new columns. */
7616 Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';
7617 /** The pivot mode flag was changed */
7618 Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';
7619 /** A row group column was added, removed or order changed. */
7620 Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';
7621 /** expandAll / collapseAll was called from the api. */
7622 Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';
7623 /** A pivot column was added, removed or order changed. */
7624 Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';
7625 /** The list of grid columns has changed. */
7626 Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';
7627 /** A value column was added, removed or agg function was changed. */
7628 Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';
7629 /** A column was moved */
7630 Events.EVENT_COLUMN_MOVED = 'columnMoved';
7631 /** One or more columns was shown / hidden */
7632 Events.EVENT_COLUMN_VISIBLE = 'columnVisible';
7633 /** One or more columns was pinned / unpinned*/
7634 Events.EVENT_COLUMN_PINNED = 'columnPinned';
7635 /** A column group was opened / closed */
7636 Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';
7637 /** One or more columns was resized. If just one, the column in the event is set. */
7638 Events.EVENT_COLUMN_RESIZED = 'columnResized';
7639 /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */
7640 Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';
7641 /** The list of virtual columns has changed, results from viewport changing */
7642 Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';
7643 /** Async Transactions Executed */
7644 Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';
7645 /** A row group was opened / closed */
7646 Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';
7647 /** The client has set new data into the grid */
7648 Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';
7649 /** The client has updated data for the grid */
7650 Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';
7651 /** The client has set new floating data into the grid */
7652 Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';
7653 /** Range selection has changed */
7654 Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';
7655 /** Chart was created */
7656 Events.EVENT_CHART_CREATED = 'chartCreated';
7657 /** Chart Range selection has changed */
7658 Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';
7659 /** Chart Options have changed */
7660 Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';
7661 /** Chart was destroyed */
7662 Events.EVENT_CHART_DESTROYED = 'chartDestroyed';
7663 /** For when the tool panel is shown / hidden */
7664 Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';
7665 /** Model was updated - grid updates the drawn rows when this happens */
7666 Events.EVENT_MODEL_UPDATED = 'modelUpdated';
7667 Events.EVENT_PASTE_START = 'pasteStart';
7668 Events.EVENT_PASTE_END = 'pasteEnd';
7669 Events.EVENT_FILL_START = 'fillStart';
7670 Events.EVENT_FILL_END = 'fillEnd';
7671 Events.EVENT_CELL_CLICKED = 'cellClicked';
7672 Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';
7673 Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';
7674 Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';
7675 Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';
7676 Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';
7677 Events.EVENT_CELL_FOCUSED = 'cellFocused';
7678 Events.EVENT_ROW_SELECTED = 'rowSelected';
7679 Events.EVENT_SELECTION_CHANGED = 'selectionChanged';
7680 Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';
7681 Events.EVENT_CELL_KEY_PRESS = 'cellKeyPress';
7682 Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';
7683 Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';
7684 /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */
7685 Events.EVENT_FILTER_CHANGED = 'filterChanged';
7686 /** Filter was change but not applied. Only useful if apply buttons are used in filters. */
7687 Events.EVENT_FILTER_MODIFIED = 'filterModified';
7688 Events.EVENT_FILTER_OPENED = 'filterOpened';
7689 Events.EVENT_SORT_CHANGED = 'sortChanged';
7690 /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */
7691 Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';
7692 Events.EVENT_ROW_CLICKED = 'rowClicked';
7693 Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';
7694 /** Gets called once after the grid has finished initialising. */
7695 Events.EVENT_GRID_READY = 'gridReady';
7696 /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's
7697 * changed, so always filling the space it was given. */
7698 Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';
7699 /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */
7700 Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';
7701 /* The width of the scrollbar has been calculated */
7702 Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';
7703 /** Rows were rendered for the first time (ie on async data load). */
7704 Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';
7705 /** A column drag has started, either resizing a column or moving a column. */
7706 Events.EVENT_DRAG_STARTED = 'dragStarted';
7707 /** A column drag has stopped */
7708 Events.EVENT_DRAG_STOPPED = 'dragStopped';
7709 Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';
7710 Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';
7711 Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';
7712 Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';
7713 Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';
7714 /** Main body of grid has scrolled, either horizontally or vertically */
7715 Events.EVENT_BODY_SCROLL = 'bodyScroll';
7716 Events.EVENT_ANIMATION_QUEUE_EMPTY = 'animationQueueEmpty';
7717 Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';
7718 /** The displayed page for pagination has changed. For example the data was filtered or sorted,
7719 * or the user has moved to a different page. */
7720 Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';
7721 /** Only used by React, Angular 2+, Web Components and VueJS AG Grid components
7722 * (not used if doing plain JavaScript or Angular 1.x). If the grid receives changes due
7723 * to bound properties, this event fires after the grid has finished processing the change. */
7724 Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';
7725 /** All items from here down are used internally by the grid, not intended for external use. */
7726 // not documented, either experimental, or we just don't want users using an depending on them
7727 Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';
7728 Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';
7729 Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';
7730 Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';
7731 Events.EVENT_FLASH_CELLS = 'flashCells';
7732 Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';
7733 Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';
7734 Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';
7735 Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';
7736 Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';
7737 Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';
7738 Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';
7739 Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';
7740 Events.EVENT_ROW_DRAG_END = 'rowDragEnd';
7741 // primarily for charts
7742 Events.EVENT_POPUP_TO_FRONT = 'popupToFront';
7743 // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is
7744 // to design these better around server side functions and then release to general public when fully working with
7745 // all the row models.
7746 Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';
7747 Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';
7748 Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';
7749 Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';
7750 Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';
7751 Events.EVENT_MOUSE_FOCUS = 'mouseFocus';
7752 Events.EVENT_STORE_UPDATED = 'storeUpdated';
7753 return Events;
7754}());
7755
7756
7757
7758/***/ }),
7759/* 25 */
7760/***/ (function(module, __webpack_exports__, __webpack_require__) {
7761
7762"use strict";
7763__webpack_require__.r(__webpack_exports__);
7764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return GroupInstanceIdCreator; });
7765/**
7766 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7767 * @version v25.3.0
7768 * @link http://www.ag-grid.com/
7769 * @license MIT
7770 */
7771// class returns unique instance id's for columns.
7772// eg, the following calls (in this order) will result in:
7773//
7774// getInstanceIdForKey('country') => 0
7775// getInstanceIdForKey('country') => 1
7776// getInstanceIdForKey('country') => 2
7777// getInstanceIdForKey('country') => 3
7778// getInstanceIdForKey('age') => 0
7779// getInstanceIdForKey('age') => 1
7780// getInstanceIdForKey('country') => 4
7781var GroupInstanceIdCreator = /** @class */ (function () {
7782 function GroupInstanceIdCreator() {
7783 // this map contains keys to numbers, so we remember what the last call was
7784 this.existingIds = {};
7785 }
7786 GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {
7787 var lastResult = this.existingIds[key];
7788 var result;
7789 if (typeof lastResult !== 'number') {
7790 // first time this key
7791 result = 0;
7792 }
7793 else {
7794 result = lastResult + 1;
7795 }
7796 this.existingIds[key] = result;
7797 return result;
7798 };
7799 return GroupInstanceIdCreator;
7800}());
7801
7802
7803
7804/***/ }),
7805/* 26 */
7806/***/ (function(module, __webpack_exports__, __webpack_require__) {
7807
7808"use strict";
7809__webpack_require__.r(__webpack_exports__);
7810/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8_encode", function() { return utf8_encode; });
7811/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stringRepeat", function() { return stringRepeat; });
7812/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padStart", function() { return padStart; });
7813/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelCaseToHyphen", function() { return camelCaseToHyphen; });
7814/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hyphenToCamelCase", function() { return hyphenToCamelCase; });
7815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capitalise", function() { return capitalise; });
7816/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeString", function() { return escapeString; });
7817/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelCaseToHumanText", function() { return camelCaseToHumanText; });
7818/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startsWith", function() { return startsWith; });
7819/**
7820 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
7821 * @version v25.3.0
7822 * @link http://www.ag-grid.com/
7823 * @license MIT
7824 */
7825var reUnescapedHtml = /[&<>"']/g;
7826/**
7827 * HTML Escapes.
7828 */
7829var HTML_ESCAPES = {
7830 '&': '&amp;',
7831 '<': '&lt;',
7832 '>': '&gt;',
7833 '"': '&quot;',
7834 "'": '&#39;'
7835};
7836/**
7837 * It encodes any string in UTF-8 format
7838 * taken from https://github.com/mathiasbynens/utf8.js
7839 * @param {string} s
7840 * @returns {string}
7841 */
7842function utf8_encode(s) {
7843 var stringFromCharCode = String.fromCharCode;
7844 function ucs2decode(string) {
7845 var output = [];
7846 if (!string) {
7847 return [];
7848 }
7849 var len = string.length;
7850 var counter = 0;
7851 var value;
7852 var extra;
7853 while (counter < len) {
7854 value = string.charCodeAt(counter++);
7855 if (value >= 0xD800 && value <= 0xDBFF && counter < len) {
7856 // high surrogate, and there is a next character
7857 extra = string.charCodeAt(counter++);
7858 if ((extra & 0xFC00) == 0xDC00) { // low surrogate
7859 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
7860 }
7861 else {
7862 // unmatched surrogate; only append this code unit, in case the next
7863 // code unit is the high surrogate of a surrogate pair
7864 output.push(value);
7865 counter--;
7866 }
7867 }
7868 else {
7869 output.push(value);
7870 }
7871 }
7872 return output;
7873 }
7874 function checkScalarValue(point) {
7875 if (point >= 0xD800 && point <= 0xDFFF) {
7876 throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +
7877 ' is not a scalar value');
7878 }
7879 }
7880 function createByte(point, shift) {
7881 return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);
7882 }
7883 function encodeCodePoint(point) {
7884 if ((point >= 0 && point <= 7) || (point >= 14 && point <= 31)) {
7885 return padStart("_x" + point.toString(16).toUpperCase() + "_", 4, '0');
7886 }
7887 if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence
7888 return stringFromCharCode(point);
7889 }
7890 var symbol = '';
7891 if ((point & 0xFFFFF800) == 0) { // 2-byte sequence
7892 symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);
7893 }
7894 else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence
7895 checkScalarValue(point);
7896 symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);
7897 symbol += createByte(point, 6);
7898 }
7899 else if ((point & 0xFFE00000) == 0) { // 4-byte sequence
7900 symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);
7901 symbol += createByte(point, 12);
7902 symbol += createByte(point, 6);
7903 }
7904 symbol += stringFromCharCode((point & 0x3F) | 0x80);
7905 return symbol;
7906 }
7907 var codePoints = ucs2decode(s);
7908 var length = codePoints.length;
7909 var index = -1;
7910 var codePoint;
7911 var byteString = '';
7912 while (++index < length) {
7913 codePoint = codePoints[index];
7914 byteString += encodeCodePoint(codePoint);
7915 }
7916 return byteString;
7917}
7918/**
7919 * @param str The string to be repeated
7920 * @param len The size of the output string
7921 * @returns A string with size len created from repeated `str`.
7922 */
7923function stringRepeat(str, len) {
7924 len = Math.floor(len);
7925 if (str.length === 0 || len === 0) {
7926 return '';
7927 }
7928 var maxCount = str.length * len;
7929 len = Math.floor(Math.log(len) / Math.log(2));
7930 while (len) {
7931 str += str;
7932 len--;
7933 }
7934 str += str.substring(0, maxCount - str.length);
7935 return str;
7936}
7937/**
7938 * @param str The string to be padded
7939 * @param totalLength The final length needed
7940 * @param padStr The string to generate the padding
7941 * @returns The padded string
7942 */
7943function padStart(str, totalLength, padStr) {
7944 if (str.length > totalLength) {
7945 return str;
7946 }
7947 totalLength -= str.length;
7948 if (totalLength > padStr.length) {
7949 padStr += stringRepeat(padStr, totalLength / padStr.length);
7950 }
7951 return padStr.slice(0, totalLength) + str;
7952}
7953/**
7954 * Converts a camelCase string into hyphenated string
7955 * from https://gist.github.com/youssman/745578062609e8acac9f
7956 * @param {string} str
7957 * @return {string}
7958 */
7959function camelCaseToHyphen(str) {
7960 if (str === null || str === undefined) {
7961 return null;
7962 }
7963 return str.replace(/([A-Z])/g, function (g) { return '-' + g[0].toLowerCase(); });
7964}
7965/**
7966 * Converts a hyphenated string into camelCase string
7967 * from https://stackoverflow.com/questions/6660977/convert-hyphens-to-camel-case-camelcase
7968 * @param {string} str
7969 * @return {string}
7970 */
7971function hyphenToCamelCase(str) {
7972 if (str === null || str === undefined) {
7973 return null;
7974 }
7975 return str.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });
7976}
7977function capitalise(str) {
7978 return str[0].toUpperCase() + str.substr(1).toLowerCase();
7979}
7980function escapeString(toEscape) {
7981 // we call toString() twice, in case value is an object, where user provides
7982 // a toString() method, and first call to toString() returns back something other
7983 // than a string (eg a number to render)
7984 return toEscape == null ? null : toEscape.toString().toString().replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });
7985}
7986/**
7987 * Converts a camelCase string into regular text
7988 * from: https://stackoverflow.com/questions/15369566/putting-space-in-camel-case-string-using-regular-expression
7989 * @param {string} camelCase
7990 * @return {string}
7991 */
7992function camelCaseToHumanText(camelCase) {
7993 if (!camelCase || camelCase == null) {
7994 return null;
7995 }
7996 var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;
7997 var words = camelCase.replace(rex, '$1$4 $2$3$5').replace('.', ' ').split(' ');
7998 return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');
7999}
8000function startsWith(str, matchStart) {
8001 if (str === matchStart) {
8002 return true;
8003 }
8004 return str != null && str.slice(0, matchStart.length) === matchStart;
8005}
8006
8007
8008/***/ }),
8009/* 27 */
8010/***/ (function(module, __webpack_exports__, __webpack_require__) {
8011
8012"use strict";
8013__webpack_require__.r(__webpack_exports__);
8014/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToMap", function() { return convertToMap; });
8015/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return keys; });
8016/**
8017 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8018 * @version v25.3.0
8019 * @link http://www.ag-grid.com/
8020 * @license MIT
8021 */
8022function convertToMap(arr) {
8023 var map = new Map();
8024 arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });
8025 return map;
8026}
8027function keys(map) {
8028 var arr = [];
8029 map.forEach(function (_, key) { return arr.push(key); });
8030 return arr;
8031}
8032
8033
8034/***/ }),
8035/* 28 */
8036/***/ (function(module, __webpack_exports__, __webpack_require__) {
8037
8038"use strict";
8039__webpack_require__.r(__webpack_exports__);
8040/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return ColumnUtils; });
8041/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
8042/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
8043/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
8044/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
8045/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
8046/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
8047/**
8048 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8049 * @version v25.3.0
8050 * @link http://www.ag-grid.com/
8051 * @license MIT
8052 */
8053var __extends = (undefined && undefined.__extends) || (function () {
8054 var extendStatics = function (d, b) {
8055 extendStatics = Object.setPrototypeOf ||
8056 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8057 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8058 return extendStatics(d, b);
8059 };
8060 return function (d, b) {
8061 extendStatics(d, b);
8062 function __() { this.constructor = d; }
8063 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8064 };
8065})();
8066var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8067 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8068 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8069 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;
8070 return c > 3 && r && Object.defineProperty(target, key, r), r;
8071};
8072
8073
8074
8075
8076
8077
8078// takes in a list of columns, as specified by the column definitions, and returns column groups
8079var ColumnUtils = /** @class */ (function (_super) {
8080 __extends(ColumnUtils, _super);
8081 function ColumnUtils() {
8082 return _super !== null && _super.apply(this, arguments) || this;
8083 }
8084 ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {
8085 var optionsWrapper = this.gridOptionsWrapper;
8086 var minColWidth = colDef.minWidth != null ? colDef.minWidth : optionsWrapper.getMinColWidth();
8087 var maxColWidth = colDef.maxWidth != null ? colDef.maxWidth : (optionsWrapper.getMaxColWidth() || Object(_utils_number__WEBPACK_IMPORTED_MODULE_4__["getMaxSafeInteger"])());
8088 var width;
8089 var colDefWidth = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.width);
8090 var colDefInitialWidth = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["attrToNumber"])(colDef.initialWidth);
8091 if (colDefWidth != null) {
8092 width = colDefWidth;
8093 }
8094 else if (colDefInitialWidth != null) {
8095 width = colDefInitialWidth;
8096 }
8097 else {
8098 width = optionsWrapper.getColWidth();
8099 }
8100 return Math.max(Math.min(width, maxColWidth), minColWidth);
8101 };
8102 ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {
8103 var result = [];
8104 var found = false;
8105 var recursePath = function (balancedColumnTree, dept) {
8106 for (var i = 0; i < balancedColumnTree.length; i++) {
8107 if (found) {
8108 return;
8109 }
8110 // quit the search, so 'result' is kept with the found result
8111 var node = balancedColumnTree[i];
8112 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
8113 var nextNode = node;
8114 recursePath(nextNode.getChildren(), dept + 1);
8115 result[dept] = node;
8116 }
8117 else if (node === column) {
8118 found = true;
8119 }
8120 }
8121 };
8122 recursePath(originalBalancedTree, 0);
8123 // we should always find the path, but in case there is a bug somewhere, returning null
8124 // will make it fail rather than provide a 'hard to track down' bug
8125 return found ? result : null;
8126 };
8127 ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {
8128 var _this = this;
8129 if (!tree) {
8130 return;
8131 }
8132 tree.forEach(function (child) {
8133 if (child instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
8134 _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);
8135 }
8136 callback(child, parent);
8137 });
8138 };
8139 ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {
8140 var _this = this;
8141 if (!tree) {
8142 return;
8143 }
8144 tree.forEach(function (child) {
8145 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8146 _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);
8147 }
8148 callback(child);
8149 });
8150 };
8151 ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {
8152 var _this = this;
8153 if (!tree) {
8154 return;
8155 }
8156 tree.forEach(function (child) {
8157 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8158 _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);
8159 }
8160 callback(child);
8161 });
8162 };
8163 ColumnUtils = __decorate([
8164 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('columnUtils')
8165 ], ColumnUtils);
8166 return ColumnUtils;
8167}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
8168
8169
8170
8171/***/ }),
8172/* 29 */
8173/***/ (function(module, __webpack_exports__, __webpack_require__) {
8174
8175"use strict";
8176__webpack_require__.r(__webpack_exports__);
8177/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padStartWidthZeros", function() { return padStartWidthZeros; });
8178/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createArrayOfNumbers", function() { return createArrayOfNumbers; });
8179/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumeric", function() { return isNumeric; });
8180/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxSafeInteger", function() { return getMaxSafeInteger; });
8181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanNumber", function() { return cleanNumber; });
8182/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decToHex", function() { return decToHex; });
8183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatNumberTwoDecimalPlacesAndCommas", function() { return formatNumberTwoDecimalPlacesAndCommas; });
8184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatNumberCommas", function() { return formatNumberCommas; });
8185/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return sum; });
8186/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
8187/**
8188 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8189 * @version v25.3.0
8190 * @link http://www.ag-grid.com/
8191 * @license MIT
8192 */
8193
8194function padStartWidthZeros(value, totalStringSize) {
8195 return Object(_string__WEBPACK_IMPORTED_MODULE_0__["padStart"])(value.toString(), totalStringSize, '0');
8196}
8197function createArrayOfNumbers(first, last) {
8198 var result = [];
8199 for (var i = first; i <= last; i++) {
8200 result.push(i);
8201 }
8202 return result;
8203}
8204/**
8205 * Check if a value is numeric
8206 * from http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers
8207 * @param {any} value
8208 * @return {boolean}
8209 */
8210function isNumeric(value) {
8211 return value !== '' && !isNaN(parseFloat(value)) && isFinite(value);
8212}
8213function getMaxSafeInteger() {
8214 // @ts-ignore
8215 return Number.MAX_SAFE_INTEGER || 9007199254740991;
8216}
8217function cleanNumber(value) {
8218 if (typeof value === 'string') {
8219 value = parseInt(value, 10);
8220 }
8221 if (typeof value === 'number') {
8222 return Math.floor(value);
8223 }
8224 return null;
8225}
8226function decToHex(number, bytes) {
8227 var hex = '';
8228 for (var i = 0; i < bytes; i++) {
8229 hex += String.fromCharCode(number & 0xff);
8230 number >>>= 8;
8231 }
8232 return hex;
8233}
8234function formatNumberTwoDecimalPlacesAndCommas(value) {
8235 if (typeof value !== 'number') {
8236 return '';
8237 }
8238 return formatNumberCommas(Math.round(value * 100) / 100);
8239}
8240/**
8241 * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})
8242 * puts in decimal places in IE, so we use this method instead
8243 * from: http://blog.tompawlak.org/number-currency-formatting-javascript
8244 * @param {number} value
8245 * @returns {string}
8246 */
8247function formatNumberCommas(value) {
8248 if (typeof value !== 'number') {
8249 return '';
8250 }
8251 return value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
8252}
8253function sum(values) {
8254 return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);
8255}
8256
8257
8258/***/ }),
8259/* 30 */
8260/***/ (function(module, __webpack_exports__, __webpack_require__) {
8261
8262"use strict";
8263__webpack_require__.r(__webpack_exports__);
8264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return DisplayedGroupCreator; });
8265/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
8266/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
8267/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
8268/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
8269/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
8270/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
8271/**
8272 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8273 * @version v25.3.0
8274 * @link http://www.ag-grid.com/
8275 * @license MIT
8276 */
8277var __extends = (undefined && undefined.__extends) || (function () {
8278 var extendStatics = function (d, b) {
8279 extendStatics = Object.setPrototypeOf ||
8280 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8281 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8282 return extendStatics(d, b);
8283 };
8284 return function (d, b) {
8285 extendStatics(d, b);
8286 function __() { this.constructor = d; }
8287 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8288 };
8289})();
8290var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8291 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8292 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8293 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;
8294 return c > 3 && r && Object.defineProperty(target, key, r), r;
8295};
8296
8297
8298
8299
8300
8301
8302// takes in a list of columns, as specified by the column definitions, and returns column groups
8303var DisplayedGroupCreator = /** @class */ (function (_super) {
8304 __extends(DisplayedGroupCreator, _super);
8305 function DisplayedGroupCreator() {
8306 return _super !== null && _super.apply(this, arguments) || this;
8307 }
8308 DisplayedGroupCreator.prototype.createDisplayedGroups = function (
8309 // all displayed columns sorted - this is the columns the grid should show
8310 sortedVisibleColumns,
8311 // the tree of columns, as provided by the users, used to know what groups columns roll up into
8312 balancedColumnTree,
8313 // creates unique id's for the group
8314 groupInstanceIdCreator,
8315 // whether it's left, right or center col
8316 pinned,
8317 // we try to reuse old groups if we can, to allow gui to do animation
8318 oldDisplayedGroups) {
8319 var _this = this;
8320 var result = [];
8321 var previousRealPath;
8322 var previousOriginalPath;
8323 var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);
8324 // go through each column, then do a bottom up comparison to the previous column, and start
8325 // to share groups if they converge at any point.
8326 sortedVisibleColumns.forEach(function (currentColumn) {
8327 var currentOriginalPath = _this.getOriginalPathForColumn(balancedColumnTree, currentColumn);
8328 var currentRealPath = [];
8329 var firstColumn = !previousOriginalPath;
8330 for (var i = 0; i < currentOriginalPath.length; i++) {
8331 if (firstColumn || currentOriginalPath[i] !== previousOriginalPath[i]) {
8332 // new group needed
8333 var newGroup = _this.createColumnGroup(currentOriginalPath[i], groupInstanceIdCreator, oldColumnsMapped, pinned);
8334 currentRealPath[i] = newGroup;
8335 // if top level, add to result, otherwise add to parent
8336 if (i == 0) {
8337 result.push(newGroup);
8338 }
8339 else {
8340 currentRealPath[i - 1].addChild(newGroup);
8341 }
8342 }
8343 else {
8344 // reuse old group
8345 currentRealPath[i] = previousRealPath[i];
8346 }
8347 }
8348 var noColumnGroups = currentRealPath.length === 0;
8349 if (noColumnGroups) {
8350 // if we are not grouping, then the result of the above is an empty
8351 // path (no groups), and we just add the column to the root list.
8352 result.push(currentColumn);
8353 }
8354 else {
8355 var leafGroup = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(currentRealPath);
8356 leafGroup.addChild(currentColumn);
8357 }
8358 previousRealPath = currentRealPath;
8359 previousOriginalPath = currentOriginalPath;
8360 });
8361 this.setupParentsIntoColumns(result, null);
8362 return result;
8363 };
8364 DisplayedGroupCreator.prototype.createColumnGroup = function (originalGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {
8365 var groupId = originalGroup.getGroupId();
8366 var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);
8367 var uniqueId = _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].createUniqueId(groupId, instanceId);
8368 var columnGroup = oldColumnsMapped[uniqueId];
8369 // if the user is setting new colDefs, it is possible that the id's overlap, and we
8370 // would have a false match from above. so we double check we are talking about the
8371 // same original column group.
8372 if (columnGroup && columnGroup.getOriginalColumnGroup() !== originalGroup) {
8373 columnGroup = null;
8374 }
8375 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(columnGroup)) {
8376 // clean out the old column group here, as we will be adding children into it again
8377 columnGroup.reset();
8378 }
8379 else {
8380 columnGroup = new _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"](originalGroup, groupId, instanceId, pinned);
8381 this.context.createBean(columnGroup);
8382 }
8383 return columnGroup;
8384 };
8385 // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup
8386 DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {
8387 var result = {};
8388 var recursive = function (columnsOrGroups) {
8389 columnsOrGroups.forEach(function (columnOrGroup) {
8390 if (columnOrGroup instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8391 var columnGroup = columnOrGroup;
8392 result[columnOrGroup.getUniqueId()] = columnGroup;
8393 recursive(columnGroup.getChildren());
8394 }
8395 });
8396 };
8397 if (displayedGroups) {
8398 recursive(displayedGroups);
8399 }
8400 return result;
8401 };
8402 DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {
8403 var _this = this;
8404 columnsOrGroups.forEach(function (columnsOrGroup) {
8405 columnsOrGroup.setParent(parent);
8406 if (columnsOrGroup instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
8407 var columnGroup = columnsOrGroup;
8408 _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);
8409 }
8410 });
8411 };
8412 DisplayedGroupCreator.prototype.getOriginalPathForColumn = function (balancedColumnTree, column) {
8413 var result = [];
8414 var found = false;
8415 var recursePath = function (columnTree, dept) {
8416 for (var i = 0; i < columnTree.length; i++) {
8417 // quit the search, so 'result' is kept with the found result
8418 if (found) {
8419 return;
8420 }
8421 var node = columnTree[i];
8422 if (node instanceof _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_1__["OriginalColumnGroup"]) {
8423 var nextNode = node;
8424 recursePath(nextNode.getChildren(), dept + 1);
8425 result[dept] = node;
8426 }
8427 else if (node === column) {
8428 found = true;
8429 }
8430 }
8431 };
8432 recursePath(balancedColumnTree, 0);
8433 // it's possible we didn't find a path. this happens if the column is generated
8434 // by the grid (auto-group), in that the definition didn't come from the client. in this case,
8435 // we create a fake original path.
8436 if (found) {
8437 return result;
8438 }
8439 console.warn('could not get path');
8440 return null;
8441 };
8442 DisplayedGroupCreator = __decorate([
8443 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('displayedGroupCreator')
8444 ], DisplayedGroupCreator);
8445 return DisplayedGroupCreator;
8446}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
8447
8448
8449
8450/***/ }),
8451/* 31 */
8452/***/ (function(module, __webpack_exports__, __webpack_require__) {
8453
8454"use strict";
8455__webpack_require__.r(__webpack_exports__);
8456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeadlessService", function() { return HeadlessService; });
8457/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
8458/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
8459/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
8460/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
8461/**
8462 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8463 * @version v25.3.0
8464 * @link http://www.ag-grid.com/
8465 * @license MIT
8466 */
8467var __extends = (undefined && undefined.__extends) || (function () {
8468 var extendStatics = function (d, b) {
8469 extendStatics = Object.setPrototypeOf ||
8470 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8471 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
8472 return extendStatics(d, b);
8473 };
8474 return function (d, b) {
8475 extendStatics(d, b);
8476 function __() { this.constructor = d; }
8477 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8478 };
8479})();
8480var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8481 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
8482 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
8483 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;
8484 return c > 3 && r && Object.defineProperty(target, key, r), r;
8485};
8486
8487
8488
8489
8490var HeadlessService = /** @class */ (function (_super) {
8491 __extends(HeadlessService, _super);
8492 function HeadlessService() {
8493 return _super !== null && _super.apply(this, arguments) || this;
8494 }
8495 HeadlessService_1 = HeadlessService;
8496 HeadlessService.prototype.getHeaderRows = function () {
8497 return this.headerRows;
8498 };
8499 HeadlessService.prototype.getRows = function () {
8500 return this.rows;
8501 };
8502 HeadlessService.prototype.getCenterRowContainer = function () {
8503 return this.centerRowContainer;
8504 };
8505 HeadlessService.prototype.postConstruct = function () {
8506 var _this = this;
8507 this.createHeaderRows();
8508 this.onPageLoaded();
8509 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));
8510 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, function () {
8511 _this.createHeaderRows();
8512 _this.onPageLoaded();
8513 });
8514 };
8515 HeadlessService.prototype.createHeaderRows = function () {
8516 this.headerRows = [];
8517 var headerRowCount = this.columnController.getHeaderRowCount();
8518 for (var i = 0; i < headerRowCount; i++) {
8519 var groupLevel = i === (headerRowCount - 1);
8520 this.headerRows.push(this.createHeaderRow(i, groupLevel));
8521 }
8522 this.dispatchEvent({ type: HeadlessService_1.EVENT_HEADERS_UPDATED });
8523 };
8524 HeadlessService.prototype.onPageLoaded = function () {
8525 var _this = this;
8526 this.rows = [];
8527 var firstRow = this.paginationProxy.getPageFirstRow();
8528 var lastRow = this.paginationProxy.getPageLastRow();
8529 // first and last rows are -1 if no rows to display
8530 if (firstRow < 0 || lastRow < 0) {
8531 return;
8532 }
8533 var displayedColumns = this.columnController.getDisplayedColumns(null);
8534 var _loop_1 = function (rowIndex) {
8535 var rowNode = this_1.paginationProxy.getRow(rowIndex);
8536 if (!rowNode) {
8537 return "continue";
8538 }
8539 var cells = [];
8540 var rowVo = {
8541 cells: cells,
8542 index: rowIndex,
8543 id: rowNode.id,
8544 height: rowNode.rowHeight,
8545 top: rowNode.rowTop
8546 };
8547 displayedColumns.forEach(function (col) {
8548 cells.push({
8549 value: _this.valueService.getValue(col, rowNode),
8550 colId: col.getId(),
8551 width: col.getActualWidth(),
8552 left: col.getLeft()
8553 });
8554 });
8555 this_1.rows.push(rowVo);
8556 };
8557 var this_1 = this;
8558 for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {
8559 _loop_1(rowIndex);
8560 }
8561 this.dispatchEvent({ type: HeadlessService_1.EVENT_ROWS_UPDATED });
8562 this.centerRowContainer = {
8563 height: Math.max(this.paginationProxy.getCurrentPageHeight(), 1),
8564 width: this.columnController.getBodyContainerWidth()
8565 };
8566 this.dispatchEvent({ type: HeadlessService_1.EVENT_ROW_CONTAINER_UPDATED });
8567 };
8568 HeadlessService.prototype.createHeaderRow = function (depth, groupLevel) {
8569 var _this = this;
8570 var items = this.columnController.getVirtualHeaderGroupRow(null, depth);
8571 var mapColumn = function (item) {
8572 var isCol = item instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"];
8573 var name = isCol
8574 ? _this.columnController.getDisplayNameForColumn(item, 'header')
8575 : _this.columnController.getDisplayNameForColumnGroup(item, 'header');
8576 var res = {
8577 name: name,
8578 id: item.getUniqueId()
8579 };
8580 return res;
8581 };
8582 var res = {
8583 headerRowIndex: depth,
8584 groupLevel: groupLevel,
8585 columns: items.map(mapColumn)
8586 };
8587 return res;
8588 };
8589 var HeadlessService_1;
8590 HeadlessService.EVENT_ROWS_UPDATED = 'rowsUpdated';
8591 HeadlessService.EVENT_HEADERS_UPDATED = 'headersUpdated';
8592 HeadlessService.EVENT_ROW_CONTAINER_UPDATED = 'rowContainerUpdated';
8593 __decorate([
8594 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
8595 ], HeadlessService.prototype, "columnController", void 0);
8596 __decorate([
8597 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
8598 ], HeadlessService.prototype, "paginationProxy", void 0);
8599 __decorate([
8600 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
8601 ], HeadlessService.prototype, "valueService", void 0);
8602 __decorate([
8603 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
8604 ], HeadlessService.prototype, "postConstruct", null);
8605 HeadlessService = HeadlessService_1 = __decorate([
8606 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('headlessService')
8607 ], HeadlessService);
8608 return HeadlessService;
8609}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
8610
8611
8612
8613/***/ }),
8614/* 32 */
8615/***/ (function(module, __webpack_exports__, __webpack_require__) {
8616
8617"use strict";
8618__webpack_require__.r(__webpack_exports__);
8619/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TestHeadless", function() { return TestHeadless; });
8620/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
8621/**
8622 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8623 * @version v25.3.0
8624 * @link http://www.ag-grid.com/
8625 * @license MIT
8626 */
8627
8628var TestHeadless = /** @class */ (function () {
8629 function TestHeadless() {
8630 }
8631 TestHeadless.prototype.doSomething = function (eDiv, gridOptions) {
8632 var headlessService = gridOptions.api.headlessService;
8633 var headerRows = headlessService.getHeaderRows();
8634 var rows = headlessService.getRows();
8635 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["clearElement"])(eDiv);
8636 var eTable = document.createElement('table');
8637 headerRows.forEach(function (headerRow) {
8638 var eTr = document.createElement('tr');
8639 eTable.appendChild(eTr);
8640 headerRow.columns.forEach(function (col) {
8641 var eTh = document.createElement('th');
8642 eTr.appendChild(eTh);
8643 if (col.name != null) {
8644 eTh.innerText = col.name;
8645 }
8646 });
8647 });
8648 rows.forEach(function (row) {
8649 var eTr = document.createElement('tr');
8650 eTable.appendChild(eTr);
8651 row.cells.forEach(function (cell) {
8652 var eTd = document.createElement('td');
8653 eTr.appendChild(eTd);
8654 if (cell.value != null) {
8655 eTd.innerText = cell.value.toString();
8656 }
8657 });
8658 });
8659 eDiv.append(eTable);
8660 console.warn('TestHeadless.doSomething');
8661 };
8662 return TestHeadless;
8663}());
8664
8665
8666
8667/***/ }),
8668/* 33 */
8669/***/ (function(module, __webpack_exports__, __webpack_require__) {
8670
8671"use strict";
8672__webpack_require__.r(__webpack_exports__);
8673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addCssClass", function() { return addCssClass; });
8674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeCssClass", function() { return removeCssClass; });
8675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addOrRemoveCssClass", function() { return addOrRemoveCssClass; });
8676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radioCssClass", function() { return radioCssClass; });
8677/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "containsClass", function() { return containsClass; });
8678/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFocusableFormField", function() { return isFocusableFormField; });
8679/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDisplayed", function() { return setDisplayed; });
8680/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setVisible", function() { return setVisible; });
8681/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDisabled", function() { return setDisabled; });
8682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementChildOfClass", function() { return isElementChildOfClass; });
8683/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementSize", function() { return getElementSize; });
8684/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInnerHeight", function() { return getInnerHeight; });
8685/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInnerWidth", function() { return getInnerWidth; });
8686/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAbsoluteHeight", function() { return getAbsoluteHeight; });
8687/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAbsoluteWidth", function() { return getAbsoluteWidth; });
8688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRtlNegativeScroll", function() { return isRtlNegativeScroll; });
8689/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollLeft", function() { return getScrollLeft; });
8690/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setScrollLeft", function() { return setScrollLeft; });
8691/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearElement", function() { return clearElement; });
8692/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeElement", function() { return removeElement; });
8693/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFromParent", function() { return removeFromParent; });
8694/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return isVisible; });
8695/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTemplate", function() { return loadTemplate; });
8696/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendHtml", function() { return appendHtml; });
8697/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementAttribute", function() { return getElementAttribute; });
8698/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offsetHeight", function() { return offsetHeight; });
8699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offsetWidth", function() { return offsetWidth; });
8700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ensureDomOrder", function() { return ensureDomOrder; });
8701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDomChildOrder", function() { return setDomChildOrder; });
8702/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertWithDomOrder", function() { return insertWithDomOrder; });
8703/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prependDC", function() { return prependDC; });
8704/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addStylesToElement", function() { return addStylesToElement; });
8705/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHorizontalScrollShowing", function() { return isHorizontalScrollShowing; });
8706/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVerticalScrollShowing", function() { return isVerticalScrollShowing; });
8707/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementWidth", function() { return setElementWidth; });
8708/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFixedWidth", function() { return setFixedWidth; });
8709/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementHeight", function() { return setElementHeight; });
8710/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFixedHeight", function() { return setFixedHeight; });
8711/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatSize", function() { return formatSize; });
8712/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNode", function() { return isNode; });
8713/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElement", function() { return isElement; });
8714/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNodeOrElement", function() { return isNodeOrElement; });
8715/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyNodeList", function() { return copyNodeList; });
8716/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterateNamedNodeMap", function() { return iterateNamedNodeMap; });
8717/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setCheckboxState", function() { return setCheckboxState; });
8718/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addOrRemoveAttribute", function() { return addOrRemoveAttribute; });
8719/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nodeListForEach", function() { return nodeListForEach; });
8720/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34);
8721/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
8722/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
8723/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
8724/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
8725/**
8726 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
8727 * @version v25.3.0
8728 * @link http://www.ag-grid.com/
8729 * @license MIT
8730 */
8731
8732
8733
8734
8735
8736var rtlNegativeScroll;
8737function addCssClass(element, className) {
8738 if (!element || !className || className.length === 0) {
8739 return;
8740 }
8741 if (className.indexOf(' ') >= 0) {
8742 className.split(' ').forEach(function (value) { return addCssClass(element, value); });
8743 return;
8744 }
8745 if (element.classList) {
8746 element.classList.add(className);
8747 }
8748 else if (element.className && element.className.length > 0) {
8749 var cssClasses = element.className.split(' ');
8750 if (cssClasses.indexOf(className) < 0) {
8751 cssClasses.push(className);
8752 element.setAttribute('class', cssClasses.join(' '));
8753 }
8754 }
8755 else {
8756 // do not use element.classList = className here, it will cause
8757 // a read-only assignment error on some browsers (IE/Edge).
8758 element.setAttribute('class', className);
8759 }
8760 return element;
8761}
8762function removeCssClass(element, className) {
8763 if (!element || !className || className.length === 0) {
8764 return;
8765 }
8766 if (className.indexOf(' ') >= 0) {
8767 className.split(' ').forEach(function (value) { return removeCssClass(element, value); });
8768 return;
8769 }
8770 if (element.classList) {
8771 element.classList.remove(className);
8772 }
8773 else if (element.className && element.className.length > 0) {
8774 var newClassName = element.className.split(' ').filter(function (c) { return c !== className; }).join(' ');
8775 element.setAttribute('class', newClassName);
8776 }
8777}
8778function addOrRemoveCssClass(element, className, addOrRemove) {
8779 if (addOrRemove) {
8780 addCssClass(element, className);
8781 }
8782 else {
8783 removeCssClass(element, className);
8784 }
8785}
8786/**
8787 * This method adds a class to an element and remove that class from all siblings.
8788 * Useful for toggling state.
8789 * @param {HTMLElement} element The element to receive the class
8790 * @param {string} elementClass The class to be assigned to the element
8791 * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself
8792 */
8793function radioCssClass(element, elementClass, otherElementClass) {
8794 var parent = element.parentElement;
8795 var sibling = parent && parent.firstChild;
8796 while (sibling) {
8797 if (elementClass) {
8798 addOrRemoveCssClass(sibling, elementClass, sibling === element);
8799 }
8800 if (otherElementClass) {
8801 addOrRemoveCssClass(sibling, otherElementClass, sibling !== element);
8802 }
8803 sibling = sibling.nextSibling;
8804 }
8805}
8806function containsClass(element, className) {
8807 if (element.classList) {
8808 // for modern browsers
8809 return element.classList.contains(className);
8810 }
8811 if (element.className) {
8812 // for older browsers, check against the string of class names
8813 // if only one class, can check for exact match
8814 var onlyClass = element.className === className;
8815 // if many classes, check for class name, we have to pad with ' ' to stop other
8816 // class names that are a substring of this class
8817 var contains = element.className.indexOf(' ' + className + ' ') >= 0;
8818 // the padding above then breaks when it's the first or last class names
8819 var startsWithClass = element.className.indexOf(className + ' ') === 0;
8820 var endsWithClass = element.className.lastIndexOf(' ' + className) === (element.className.length - className.length - 1);
8821 return onlyClass || contains || startsWithClass || endsWithClass;
8822 }
8823 // if item is not a node
8824 return false;
8825}
8826function isFocusableFormField(element) {
8827 var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;
8828 var isFocusable = matches.call(element, _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].INPUT_SELECTOR);
8829 var isNotFocusable = matches.call(element, _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].FOCUSABLE_EXCLUDE);
8830 var isElementVisible = isVisible(element);
8831 var focusable = isFocusable && !isNotFocusable && isElementVisible;
8832 return focusable;
8833}
8834function setDisplayed(element, displayed) {
8835 addOrRemoveCssClass(element, 'ag-hidden', !displayed);
8836}
8837function setVisible(element, visible) {
8838 addOrRemoveCssClass(element, 'ag-invisible', !visible);
8839}
8840function setDisabled(element, disabled) {
8841 var attributeName = 'disabled';
8842 var addOrRemoveDisabledAttribute = disabled ?
8843 function (e) { return e.setAttribute(attributeName, ''); } :
8844 function (e) { return e.removeAttribute(attributeName); };
8845 addOrRemoveDisabledAttribute(element);
8846 nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });
8847}
8848function isElementChildOfClass(element, cls, maxNest) {
8849 var counter = 0;
8850 while (element) {
8851 if (containsClass(element, cls)) {
8852 return true;
8853 }
8854 element = element.parentElement;
8855 if (maxNest && ++counter > maxNest) {
8856 break;
8857 }
8858 }
8859 return false;
8860}
8861// returns back sizes as doubles instead of strings. similar to
8862// getBoundingClientRect, however getBoundingClientRect does not:
8863// a) work with fractions (eg browser is zooming)
8864// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values
8865function getElementSize(el) {
8866 var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, boxSizing = _a.boxSizing;
8867 return {
8868 height: parseFloat(height),
8869 width: parseFloat(width),
8870 paddingTop: parseFloat(paddingTop),
8871 paddingRight: parseFloat(paddingRight),
8872 paddingBottom: parseFloat(paddingBottom),
8873 paddingLeft: parseFloat(paddingLeft),
8874 marginTop: parseFloat(marginTop),
8875 marginRight: parseFloat(marginRight),
8876 marginBottom: parseFloat(marginBottom),
8877 marginLeft: parseFloat(marginLeft),
8878 boxSizing: boxSizing
8879 };
8880}
8881function getInnerHeight(el) {
8882 var size = getElementSize(el);
8883 if (size.boxSizing === 'border-box') {
8884 return size.height - size.paddingTop - size.paddingBottom;
8885 }
8886 return size.height;
8887}
8888function getInnerWidth(el) {
8889 var size = getElementSize(el);
8890 if (size.boxSizing === 'border-box') {
8891 return size.width - size.paddingLeft - size.paddingRight;
8892 }
8893 return size.width;
8894}
8895function getAbsoluteHeight(el) {
8896 var size = getElementSize(el);
8897 var marginRight = size.marginBottom + size.marginTop;
8898 return Math.ceil(el.offsetHeight + marginRight);
8899}
8900function getAbsoluteWidth(el) {
8901 var size = getElementSize(el);
8902 var marginWidth = size.marginLeft + size.marginRight;
8903 return Math.ceil(el.offsetWidth + marginWidth);
8904}
8905function isRtlNegativeScroll() {
8906 if (typeof rtlNegativeScroll === "boolean") {
8907 return rtlNegativeScroll;
8908 }
8909 var template = document.createElement('div');
8910 template.style.direction = 'rtl';
8911 template.style.width = '1px';
8912 template.style.height = '1px';
8913 template.style.position = 'fixed';
8914 template.style.top = '0px';
8915 template.style.overflow = 'hidden';
8916 template.dir = 'rtl';
8917 template.innerHTML = /* html */
8918 "<div style=\"width: 2px\">\n <span style=\"display: inline-block; width: 1px\"></span>\n <span style=\"display: inline-block; width: 1px\"></span>\n </div>";
8919 document.body.appendChild(template);
8920 template.scrollLeft = 1;
8921 rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;
8922 document.body.removeChild(template);
8923 return rtlNegativeScroll;
8924}
8925function getScrollLeft(element, rtl) {
8926 var scrollLeft = element.scrollLeft;
8927 if (rtl) {
8928 // Absolute value - for FF that reports RTL scrolls in negative numbers
8929 scrollLeft = Math.abs(scrollLeft);
8930 if (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserChrome"])() && !isRtlNegativeScroll()) {
8931 scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;
8932 }
8933 }
8934 return scrollLeft;
8935}
8936function setScrollLeft(element, value, rtl) {
8937 if (rtl) {
8938 // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start
8939 if (isRtlNegativeScroll()) {
8940 value *= -1;
8941 }
8942 else if (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserSafari"])() || Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserChrome"])()) {
8943 value = element.scrollWidth - element.clientWidth - value;
8944 }
8945 }
8946 element.scrollLeft = value;
8947}
8948function clearElement(el) {
8949 while (el && el.firstChild) {
8950 el.removeChild(el.firstChild);
8951 }
8952}
8953/** @deprecated */
8954function removeElement(parent, cssSelector) {
8955 removeFromParent(parent.querySelector(cssSelector));
8956}
8957function removeFromParent(node) {
8958 if (node && node.parentNode) {
8959 node.parentNode.removeChild(node);
8960 }
8961}
8962function isVisible(element) {
8963 return element.offsetParent !== null;
8964}
8965/**
8966 * Loads the template and returns it as an element. makes up for no simple way in
8967 * the dom api to load html directly, eg we cannot do this: document.createElement(template)
8968 * @param {string} template
8969 * @returns {HTMLElement}
8970 */
8971function loadTemplate(template) {
8972 var tempDiv = document.createElement('div');
8973 tempDiv.innerHTML = (template || '').trim();
8974 return tempDiv.firstChild;
8975}
8976function appendHtml(eContainer, htmlTemplate) {
8977 if (eContainer.lastChild) {
8978 // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML
8979 // we put the items at the start, so new items appear underneath old items,
8980 // so when expanding/collapsing groups, the new rows don't go on top of the
8981 // rows below that are moving our of the way
8982 eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);
8983 }
8984 else {
8985 eContainer.innerHTML = htmlTemplate;
8986 }
8987}
8988/** @deprecated */
8989function getElementAttribute(element, attributeName) {
8990 if (element.attributes && element.attributes[attributeName]) {
8991 var attribute = element.attributes[attributeName];
8992 return attribute.value;
8993 }
8994 return null;
8995}
8996function offsetHeight(element) {
8997 return element && element.clientHeight ? element.clientHeight : 0;
8998}
8999function offsetWidth(element) {
9000 return element && element.clientWidth ? element.clientWidth : 0;
9001}
9002function ensureDomOrder(eContainer, eChild, eChildBefore) {
9003 // if already in right order, do nothing
9004 if (eChildBefore && eChildBefore.nextSibling === eChild) {
9005 return;
9006 }
9007 if (eChildBefore) {
9008 if (eChildBefore.nextSibling) {
9009 // insert between the eRowBefore and the row after it
9010 eContainer.insertBefore(eChild, eChildBefore.nextSibling);
9011 }
9012 else {
9013 // if nextSibling is missing, means other row is at end, so just append new row at the end
9014 eContainer.appendChild(eChild);
9015 }
9016 }
9017 else {
9018 // otherwise put at start
9019 if (eContainer.firstChild && eContainer.firstChild !== eChild) {
9020 // insert it at the first location
9021 eContainer.insertAdjacentElement('afterbegin', eChild);
9022 }
9023 }
9024}
9025function setDomChildOrder(eContainer, orderedChildren) {
9026 for (var i = 0; i < orderedChildren.length; i++) {
9027 var correctCellAtIndex = orderedChildren[i];
9028 var actualCellAtIndex = eContainer.children[i];
9029 if (actualCellAtIndex !== correctCellAtIndex) {
9030 eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);
9031 }
9032 }
9033}
9034function insertWithDomOrder(eContainer, eToInsert, eChildBefore) {
9035 if (eChildBefore) {
9036 // if previous element exists, just slot in after the previous element
9037 eChildBefore.insertAdjacentElement('afterend', eToInsert);
9038 }
9039 else {
9040 if (eContainer.firstChild) {
9041 // insert it at the first location
9042 eContainer.insertAdjacentElement('afterbegin', eToInsert);
9043 }
9044 else {
9045 // otherwise eContainer is empty, so just append it
9046 eContainer.appendChild(eToInsert);
9047 }
9048 }
9049}
9050/** @deprecated */
9051function prependDC(parent, documentFragment) {
9052 if (Object(_generic__WEBPACK_IMPORTED_MODULE_1__["exists"])(parent.firstChild)) {
9053 parent.insertBefore(documentFragment, parent.firstChild);
9054 }
9055 else {
9056 parent.appendChild(documentFragment);
9057 }
9058}
9059function addStylesToElement(eElement, styles) {
9060 if (!styles) {
9061 return;
9062 }
9063 Object.keys(styles).forEach(function (key) {
9064 var keyCamelCase = Object(_string__WEBPACK_IMPORTED_MODULE_3__["hyphenToCamelCase"])(key);
9065 if (keyCamelCase) {
9066 eElement.style[keyCamelCase] = styles[key];
9067 }
9068 });
9069}
9070function isHorizontalScrollShowing(element) {
9071 return element.clientWidth < element.scrollWidth;
9072}
9073function isVerticalScrollShowing(element) {
9074 return element.clientHeight < element.scrollHeight;
9075}
9076function setElementWidth(element, width) {
9077 if (width === 'flex') {
9078 element.style.removeProperty('width');
9079 element.style.removeProperty('minWidth');
9080 element.style.removeProperty('maxWidth');
9081 element.style.flex = '1 1 auto';
9082 }
9083 else {
9084 setFixedWidth(element, width);
9085 }
9086}
9087function setFixedWidth(element, width) {
9088 width = formatSize(width);
9089 element.style.width = width.toString();
9090 element.style.maxWidth = width.toString();
9091 element.style.minWidth = width.toString();
9092}
9093function setElementHeight(element, height) {
9094 if (height === 'flex') {
9095 element.style.removeProperty('height');
9096 element.style.removeProperty('minHeight');
9097 element.style.removeProperty('maxHeight');
9098 element.style.flex = '1 1 auto';
9099 }
9100 else {
9101 setFixedHeight(element, height);
9102 }
9103}
9104function setFixedHeight(element, height) {
9105 height = formatSize(height);
9106 element.style.height = height.toString();
9107 element.style.maxHeight = height.toString();
9108 element.style.minHeight = height.toString();
9109}
9110function formatSize(size) {
9111 if (typeof size === 'number') {
9112 return size + "px";
9113 }
9114 return size;
9115}
9116/**
9117 * Returns true if it is a DOM node
9118 * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object
9119 * @param {any} o
9120 * @return {boolean}
9121 */
9122function isNode(o) {
9123 return (typeof Node === 'function'
9124 ? o instanceof Node
9125 : o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string');
9126}
9127//
9128/**
9129 * Returns true if it is a DOM element
9130 * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object
9131 * @param {any} o
9132 * @returns {boolean}
9133 */
9134function isElement(o) {
9135 return (typeof HTMLElement === 'function'
9136 ? o instanceof HTMLElement //DOM2
9137 : o && Object(_object__WEBPACK_IMPORTED_MODULE_2__["isNonNullObject"])(o) && o.nodeType === 1 && typeof o.nodeName === 'string');
9138}
9139function isNodeOrElement(o) {
9140 return isNode(o) || isElement(o);
9141}
9142/**
9143 * Makes a copy of a node list into a list
9144 * @param {NodeList} nodeList
9145 * @returns {Node[]}
9146 */
9147function copyNodeList(nodeList) {
9148 if (nodeList == null) {
9149 return [];
9150 }
9151 var result = [];
9152 nodeListForEach(nodeList, function (node) { return result.push(node); });
9153 return result;
9154}
9155function iterateNamedNodeMap(map, callback) {
9156 if (!map) {
9157 return;
9158 }
9159 for (var i = 0; i < map.length; i++) {
9160 var attr = map[i];
9161 callback(attr.name, attr.value);
9162 }
9163}
9164/** @deprecated */
9165function setCheckboxState(eCheckbox, state) {
9166 if (typeof state === 'boolean') {
9167 eCheckbox.checked = state;
9168 eCheckbox.indeterminate = false;
9169 }
9170 else {
9171 // isNodeSelected returns back undefined if it's a group and the children
9172 // are a mix of selected and unselected
9173 eCheckbox.indeterminate = true;
9174 }
9175}
9176function addOrRemoveAttribute(element, name, value) {
9177 if (value == null) {
9178 element.removeAttribute(name);
9179 }
9180 else {
9181 element.setAttribute(name, value.toString());
9182 }
9183}
9184function nodeListForEach(nodeList, action) {
9185 if (nodeList == null) {
9186 return;
9187 }
9188 for (var i = 0; i < nodeList.length; i++) {
9189 action(nodeList[i]);
9190 }
9191}
9192
9193
9194/***/ }),
9195/* 34 */
9196/***/ (function(module, __webpack_exports__, __webpack_require__) {
9197
9198"use strict";
9199__webpack_require__.r(__webpack_exports__);
9200/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserIE", function() { return isBrowserIE; });
9201/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserEdge", function() { return isBrowserEdge; });
9202/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserSafari", function() { return isBrowserSafari; });
9203/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserChrome", function() { return isBrowserChrome; });
9204/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserFirefox", function() { return isBrowserFirefox; });
9205/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIOSUserAgent", function() { return isIOSUserAgent; });
9206/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTabIndex", function() { return getTabIndex; });
9207/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxDivHeight", function() { return getMaxDivHeight; });
9208/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return getScrollbarWidth; });
9209/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInvisibleScrollbar", function() { return isInvisibleScrollbar; });
9210/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasOverflowScrolling", function() { return hasOverflowScrolling; });
9211/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBodyWidth", function() { return getBodyWidth; });
9212/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBodyHeight", function() { return getBodyHeight; });
9213/**
9214 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9215 * @version v25.3.0
9216 * @link http://www.ag-grid.com/
9217 * @license MIT
9218 */
9219/**
9220 * These variables are lazy loaded, as otherwise they try and get initialised when we are loading
9221 * unit tests and we don't have references to window or document in the unit tests
9222 * from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser
9223 */
9224var isSafari;
9225var isIE;
9226var isEdge;
9227var isChrome;
9228var isFirefox;
9229var isIOS;
9230var invisibleScrollbar;
9231var browserScrollbarWidth;
9232function isBrowserIE() {
9233 if (isIE === undefined) {
9234 isIE = /*@cc_on!@*/ false || !!document.documentMode; // At least IE6
9235 }
9236 return isIE;
9237}
9238function isBrowserEdge() {
9239 if (isEdge === undefined) {
9240 isEdge = !isBrowserIE() && !!window.StyleMedia;
9241 }
9242 return isEdge;
9243}
9244function isBrowserSafari() {
9245 if (isSafari === undefined) {
9246 // taken from https://stackoverflow.com/a/23522755/1388233
9247 isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
9248 }
9249 return isSafari;
9250}
9251function isBrowserChrome() {
9252 if (isChrome === undefined) {
9253 var win = window;
9254 isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||
9255 (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));
9256 }
9257 return isChrome;
9258}
9259function isBrowserFirefox() {
9260 if (isFirefox === undefined) {
9261 var win = window;
9262 isFirefox = typeof win.InstallTrigger !== 'undefined';
9263 }
9264 return isFirefox;
9265}
9266function isIOSUserAgent() {
9267 if (isIOS === undefined) {
9268 // taken from https://stackoverflow.com/a/58064481/1388233
9269 isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
9270 // eslint-disable-next-line
9271 (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&
9272 !window.MSStream;
9273 }
9274 return isIOS;
9275}
9276function getTabIndex(el) {
9277 if (!el) {
9278 return null;
9279 }
9280 var numberTabIndex = el.tabIndex;
9281 var tabIndex = el.getAttribute('tabIndex');
9282 if (isBrowserIE() && numberTabIndex === 0 && tabIndex === null) {
9283 var map = {
9284 a: true,
9285 body: true,
9286 button: true,
9287 frame: true,
9288 iframe: true,
9289 img: true,
9290 input: true,
9291 isindex: true,
9292 object: true,
9293 select: true,
9294 textarea: true
9295 };
9296 return map[el.nodeName.toLowerCase()] === true ? '0' : null;
9297 }
9298 if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {
9299 return null;
9300 }
9301 return numberTabIndex.toString();
9302}
9303function getMaxDivHeight() {
9304 if (!document.body) {
9305 return -1;
9306 }
9307 var res = 1000000;
9308 // FF reports the height back but still renders blank after ~6M px
9309 var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;
9310 var div = document.createElement('div');
9311 document.body.appendChild(div);
9312 while (true) {
9313 var test = res * 2;
9314 div.style.height = test + 'px';
9315 if (test > testUpTo || div.clientHeight !== test) {
9316 break;
9317 }
9318 else {
9319 res = test;
9320 }
9321 }
9322 document.body.removeChild(div);
9323 return res;
9324}
9325function getScrollbarWidth() {
9326 if (browserScrollbarWidth == null) {
9327 initScrollbarWidthAndVisibility();
9328 }
9329 return browserScrollbarWidth;
9330}
9331function initScrollbarWidthAndVisibility() {
9332 var body = document.body;
9333 var div = document.createElement('div');
9334 div.style.width = div.style.height = '100px';
9335 div.style.opacity = '0';
9336 div.style.overflow = 'scroll';
9337 div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
9338 div.style.position = 'absolute';
9339 body.appendChild(div);
9340 var width = div.offsetWidth - div.clientWidth;
9341 // if width is 0 and client width is 0, means the DOM isn't ready
9342 if (width === 0 && div.clientWidth === 0) {
9343 width = null;
9344 }
9345 // remove div
9346 if (div.parentNode) {
9347 div.parentNode.removeChild(div);
9348 }
9349 if (width != null) {
9350 browserScrollbarWidth = width;
9351 invisibleScrollbar = width === 0;
9352 }
9353}
9354function isInvisibleScrollbar() {
9355 if (invisibleScrollbar == null) {
9356 initScrollbarWidthAndVisibility();
9357 }
9358 return invisibleScrollbar;
9359}
9360/** @deprecated */
9361function hasOverflowScrolling() {
9362 var prefixes = ['webkit', 'moz', 'o', 'ms'];
9363 var div = document.createElement('div');
9364 var body = document.getElementsByTagName('body')[0];
9365 var found = false;
9366 var p;
9367 body.appendChild(div);
9368 div.setAttribute('style', prefixes.map(function (prefix) { return "-" + prefix + "-overflow-scrolling: touch"; }).concat('overflow-scrolling: touch').join(';'));
9369 var computedStyle = window.getComputedStyle(div);
9370 if (computedStyle.overflowScrolling === 'touch') {
9371 found = true;
9372 }
9373 if (!found) {
9374 for (var _i = 0, prefixes_1 = prefixes; _i < prefixes_1.length; _i++) {
9375 p = prefixes_1[_i];
9376 if (computedStyle[p + "OverflowScrolling"] === 'touch') {
9377 found = true;
9378 break;
9379 }
9380 }
9381 }
9382 if (div.parentNode) {
9383 div.parentNode.removeChild(div);
9384 }
9385 return found;
9386}
9387/**
9388 * Gets the document body width
9389 * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code
9390 * @returns {number}
9391 */
9392function getBodyWidth() {
9393 if (document.body) {
9394 return document.body.clientWidth;
9395 }
9396 if (window.innerHeight) {
9397 return window.innerWidth;
9398 }
9399 if (document.documentElement && document.documentElement.clientWidth) {
9400 return document.documentElement.clientWidth;
9401 }
9402 return -1;
9403}
9404/**
9405 * Gets the body height
9406 * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code
9407 * @returns {number}
9408 */
9409function getBodyHeight() {
9410 if (document.body) {
9411 return document.body.clientHeight;
9412 }
9413 if (window.innerHeight) {
9414 return window.innerHeight;
9415 }
9416 if (document.documentElement && document.documentElement.clientHeight) {
9417 return document.documentElement.clientHeight;
9418 }
9419 return -1;
9420}
9421
9422
9423/***/ }),
9424/* 35 */
9425/***/ (function(module, __webpack_exports__, __webpack_require__) {
9426
9427"use strict";
9428__webpack_require__.r(__webpack_exports__);
9429/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return ComponentUtil; });
9430/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
9431/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36);
9432/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
9433/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
9434/**
9435 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9436 * @version v25.3.0
9437 * @link http://www.ag-grid.com/
9438 * @license MIT
9439 */
9440var __assign = (undefined && undefined.__assign) || function () {
9441 __assign = Object.assign || function(t) {
9442 for (var s, i = 1, n = arguments.length; i < n; i++) {
9443 s = arguments[i];
9444 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9445 t[p] = s[p];
9446 }
9447 return t;
9448 };
9449 return __assign.apply(this, arguments);
9450};
9451var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
9452 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9453 for (var r = Array(s), k = 0, i = 0; i < il; i++)
9454 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9455 r[k] = a[j];
9456 return r;
9457};
9458
9459
9460
9461
9462var ComponentUtil = /** @class */ (function () {
9463 function ComponentUtil() {
9464 }
9465 ComponentUtil.getEventCallbacks = function () {
9466 if (!ComponentUtil.EVENT_CALLBACKS) {
9467 ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });
9468 }
9469 return ComponentUtil.EVENT_CALLBACKS;
9470 };
9471 ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, skipEventDeprecationCheck) {
9472 if (skipEventDeprecationCheck === void 0) { skipEventDeprecationCheck = false; }
9473 // create empty grid options if none were passed
9474 if (typeof gridOptions !== 'object') {
9475 gridOptions = {};
9476 }
9477 // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'
9478 var pGridOptions = gridOptions;
9479 var keyExists = function (key) { return typeof component[key] !== 'undefined'; };
9480 // add in all the simple properties
9481 __spreadArrays(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.FUNCTION_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)
9482 .forEach(function (key) { return pGridOptions[key] = component[key]; });
9483 ComponentUtil.BOOLEAN_PROPERTIES
9484 .filter(keyExists)
9485 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(component[key]); });
9486 ComponentUtil.NUMBER_PROPERTIES
9487 .filter(keyExists)
9488 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(component[key]); });
9489 return gridOptions;
9490 };
9491 ComponentUtil.getCallbackForEvent = function (eventName) {
9492 if (!eventName || eventName.length < 2) {
9493 return eventName;
9494 }
9495 return 'on' + eventName[0].toUpperCase() + eventName.substr(1);
9496 };
9497 ComponentUtil.processOnChange = function (changes, gridOptions, api, columnApi) {
9498 if (!changes) {
9499 return;
9500 }
9501 var changesToApply = __assign({}, changes);
9502 // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'
9503 var pGridOptions = gridOptions;
9504 var keyExists = function (key) { return changesToApply[key]; };
9505 // check if any change for the simple types, and if so, then just copy in the new value
9506 __spreadArrays(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)
9507 .forEach(function (key) { return pGridOptions[key] = changesToApply[key].currentValue; });
9508 ComponentUtil.BOOLEAN_PROPERTIES
9509 .filter(keyExists)
9510 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(changesToApply[key].currentValue); });
9511 ComponentUtil.NUMBER_PROPERTIES
9512 .filter(keyExists)
9513 .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(changesToApply[key].currentValue); });
9514 if (changesToApply.enableCellTextSelection) {
9515 api.setEnableCellTextSelection(ComponentUtil.toBoolean(changesToApply.enableCellTextSelection.currentValue));
9516 delete changesToApply.enableCellTextSelection;
9517 }
9518 if (changesToApply.quickFilterText) {
9519 api.setQuickFilter(changesToApply.quickFilterText.currentValue);
9520 delete changesToApply.quickFilterText;
9521 }
9522 if (changesToApply.autoGroupColumnDef) {
9523 api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, "gridOptionsChanged");
9524 delete changesToApply.autoGroupColumnDef;
9525 }
9526 if (changesToApply.columnDefs) {
9527 api.setColumnDefs(changesToApply.columnDefs.currentValue, "gridOptionsChanged");
9528 delete changesToApply.columnDefs;
9529 }
9530 if (changesToApply.paginationPageSize) {
9531 api.paginationSetPageSize(ComponentUtil.toNumber(changesToApply.paginationPageSize.currentValue));
9532 delete changesToApply.paginationPageSize;
9533 }
9534 if (changesToApply.pivotMode) {
9535 columnApi.setPivotMode(ComponentUtil.toBoolean(changesToApply.pivotMode.currentValue));
9536 delete changesToApply.pivotMode;
9537 }
9538 if (changesToApply.groupRemoveSingleChildren) {
9539 api.setGroupRemoveSingleChildren(ComponentUtil.toBoolean(changesToApply.groupRemoveSingleChildren.currentValue));
9540 delete changesToApply.groupRemoveSingleChildren;
9541 }
9542 if (changesToApply.suppressRowDrag) {
9543 api.setSuppressRowDrag(ComponentUtil.toBoolean(changesToApply.suppressRowDrag.currentValue));
9544 delete changesToApply.suppressRowDrag;
9545 }
9546 if (changesToApply.suppressMoveWhenRowDragging) {
9547 api.setSuppressMoveWhenRowDragging(ComponentUtil.toBoolean(changesToApply.suppressMoveWhenRowDragging.currentValue));
9548 delete changesToApply.suppressMoveWhenRowDragging;
9549 }
9550 if (changesToApply.suppressRowClickSelection) {
9551 api.setSuppressRowClickSelection(ComponentUtil.toBoolean(changesToApply.suppressRowClickSelection.currentValue));
9552 delete changesToApply.suppressRowClickSelection;
9553 }
9554 if (changesToApply.suppressClipboardPaste) {
9555 api.setSuppressClipboardPaste(ComponentUtil.toBoolean(changesToApply.suppressClipboardPaste.currentValue));
9556 delete changesToApply.suppressClipboardPaste;
9557 }
9558 if (changesToApply.headerHeight) {
9559 api.setHeaderHeight(ComponentUtil.toNumber(changesToApply.headerHeight.currentValue));
9560 delete changesToApply.headerHeight;
9561 }
9562 // any remaining properties can be set in a generic way
9563 // ie the setter takes the form of setXXX and the argument requires no formatting/translation first
9564 var dynamicApi = api;
9565 Object.keys(changesToApply)
9566 .forEach(function (property) {
9567 var setterName = "set" + property.charAt(0).toUpperCase() + property.substring(1);
9568 if (dynamicApi[setterName]) {
9569 dynamicApi[setterName](changes[property].currentValue);
9570 }
9571 });
9572 // copy changes into an event for dispatch
9573 var event = {
9574 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COMPONENT_STATE_CHANGED,
9575 api: gridOptions.api,
9576 columnApi: gridOptions.columnApi
9577 };
9578 Object(_utils_object__WEBPACK_IMPORTED_MODULE_2__["iterateObject"])(changes, function (key, value) {
9579 event[key] = value;
9580 });
9581 api.dispatchEvent(event);
9582 };
9583 ComponentUtil.toBoolean = function (value) {
9584 if (typeof value === 'boolean') {
9585 return value;
9586 }
9587 if (typeof value === 'string') {
9588 // for boolean, compare to empty String to allow attributes appearing with
9589 // no value to be treated as 'true'
9590 return value.toUpperCase() === 'TRUE' || value == '';
9591 }
9592 return false;
9593 };
9594 ComponentUtil.toNumber = function (value) {
9595 if (typeof value === 'number') {
9596 return value;
9597 }
9598 if (typeof value === 'string') {
9599 return Number(value);
9600 }
9601 };
9602 // all the events are populated in here AFTER this class (at the bottom of the file).
9603 ComponentUtil.EVENTS = [];
9604 ComponentUtil.STRING_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].STRING_PROPERTIES;
9605 ComponentUtil.OBJECT_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].OBJECT_PROPERTIES;
9606 ComponentUtil.ARRAY_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ARRAY_PROPERTIES;
9607 ComponentUtil.NUMBER_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].NUMBER_PROPERTIES;
9608 ComponentUtil.BOOLEAN_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].BOOLEAN_PROPERTIES;
9609 ComponentUtil.FUNCTION_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].FUNCTION_PROPERTIES;
9610 ComponentUtil.ALL_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ALL_PROPERTIES;
9611 return ComponentUtil;
9612}());
9613
9614ComponentUtil.EVENTS = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["values"])(_events__WEBPACK_IMPORTED_MODULE_0__["Events"]);
9615
9616
9617/***/ }),
9618/* 36 */
9619/***/ (function(module, __webpack_exports__, __webpack_require__) {
9620
9621"use strict";
9622__webpack_require__.r(__webpack_exports__);
9623/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return PropertyKeys; });
9624/**
9625 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9626 * @version v25.3.0
9627 * @link http://www.ag-grid.com/
9628 * @license MIT
9629 */
9630var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
9631 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9632 for (var r = Array(s), k = 0, i = 0; i < il; i++)
9633 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9634 r[k] = a[j];
9635 return r;
9636};
9637/**
9638 * These keys are used for validating properties supplied on a gridOptions object, and for code generation.
9639 * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.
9640 */
9641var PropertyKeys = /** @class */ (function () {
9642 function PropertyKeys() {
9643 }
9644 PropertyKeys.STRING_PROPERTIES = [
9645 'sortingOrder', 'rowClass', 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate',
9646 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDeliminator', 'rowGroupPanelShow',
9647 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',
9648 'serverSideStoreType'
9649 ];
9650 PropertyKeys.OBJECT_PROPERTIES = [
9651 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',
9652 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',
9653 'defaultColGroupDef', 'defaultColDef', 'defaultExportParams', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',
9654 'rowClassRules', 'detailGridOptions', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',
9655 'noRowsOverlayComponentParams', 'popupParent', 'colResizeDefault', 'reduxStore', 'statusBar', 'sideBar', 'chartThemeOverrides',
9656 'customChartThemes'
9657 ];
9658 PropertyKeys.ARRAY_PROPERTIES = [
9659 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes'
9660 ];
9661 PropertyKeys.NUMBER_PROPERTIES = [
9662 'rowHeight', 'detailRowHeight', 'rowBuffer', 'colWidth', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',
9663 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'minColWidth', 'maxColWidth', 'viewportRowModelPageSize',
9664 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',
9665 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'scrollbarWidth',
9666 'batchUpdateWaitMillis', 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',
9667 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'
9668 ];
9669 PropertyKeys.BOOLEAN_PROPERTIES = [
9670 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellSelection', 'suppressHorizontalScroll',
9671 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions',
9672 'angularCompileRows', 'angularCompileFilters', 'groupSuppressAutoColumn', 'groupSelectsChildren', 'groupIncludeFooter',
9673 'groupIncludeTotalFooter', 'groupUseEntireRow', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection',
9674 'unSortIcon', 'suppressMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',
9675 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns',
9676 'suppressFieldDotNotation', 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction',
9677 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey', 'suppressContextMenu',
9678 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns', 'suppressMiddleClickScrolls',
9679 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'pivotMode',
9680 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh',
9681 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',
9682 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragManaged', 'suppressRowDrag',
9683 'suppressMoveWhenRowDragging', 'enableMultiRowDragging', 'enableGroupEdit', 'embedFullWidthRows', 'deprecatedEmbedFullWidthRows',
9684 'suppressPaginationPanel', 'floatingFilter', 'groupHideOpenParents', 'groupMultiAutoColumn', 'pagination',
9685 'stopEditingWhenGridLosesFocus', 'paginationAutoPageSize', 'suppressScrollOnNewData', 'purgeClosedRowNodes', 'cacheQuickFilter',
9686 'deltaRowDataMode', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires',
9687 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData',
9688 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown', 'suppressPropertyNamesCheck',
9689 'rowMultiSelectWithClick', 'suppressEnterpriseResetOnNewColumns', 'enableOldSetFilterModel', 'suppressRowHoverHighlight',
9690 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste', 'serverSideSortingAlwaysResets',
9691 'reactNext', 'suppressSetColumnStateEvents', 'suppressColumnStateEvents', 'enableCharts', 'deltaColumnMode', 'suppressMaintainUnsortedOrder',
9692 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',
9693 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',
9694 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'immutableData', 'immutableColumns', 'pivotSuppressAutoColumn',
9695 'suppressExpandablePivotGroups', 'applyColumnDefOrder', 'debounceVerticalScrollbar', 'detailRowAutoHeight',
9696 'serverSideFilteringAlwaysResets', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi',
9697 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus'
9698 ];
9699 /** You do not need to include event callbacks in this list, as they are generated automatically. */
9700 PropertyKeys.FUNCTION_PROPERTIES = [
9701 'localeTextFunc', 'groupRowInnerRenderer', 'groupRowInnerRendererFramework', 'dateComponent', 'dateComponentFramework', 'groupRowRenderer',
9702 'groupRowRendererFramework', 'isExternalFilterPresent', 'getRowHeight', 'doesExternalFilterPass', 'getRowClass', 'getRowStyle',
9703 'getRowClassRules', 'traverseNode', 'getContextMenuItems', 'getMainMenuItems', 'processRowPostCreate', 'processCellForClipboard',
9704 'groupRowAggNodes', 'getRowNodeId', 'isFullWidthCell', 'fullWidthCellRenderer', 'fullWidthCellRendererFramework', 'processSecondaryColDef',
9705 'processSecondaryColGroupDef', 'getBusinessKeyForNode', 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',
9706 'tabToNextCell', 'getDetailRowData', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath',
9707 'loadingCellRenderer', 'loadingCellRendererFramework', 'loadingOverlayComponent', 'loadingOverlayComponentFramework', 'noRowsOverlayComponent',
9708 'noRowsOverlayComponentFramework', 'detailCellRenderer', 'detailCellRendererFramework', 'defaultGroupSortComparator', 'isRowMaster',
9709 'isRowSelectable', 'postSort', 'processHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey',
9710 'isServerSideGroup', 'suppressKeyboardEvent', 'createChartContainer', 'processChartOptions', 'getChartToolbarItems', 'fillOperation',
9711 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault'
9712 ];
9713 PropertyKeys.ALL_PROPERTIES = __spreadArrays(PropertyKeys.ARRAY_PROPERTIES, PropertyKeys.OBJECT_PROPERTIES, PropertyKeys.STRING_PROPERTIES, PropertyKeys.NUMBER_PROPERTIES, PropertyKeys.FUNCTION_PROPERTIES, PropertyKeys.BOOLEAN_PROPERTIES);
9714 /**
9715 * Used when performing property checks. This avoids noise caused when using frameworks, which can add their own
9716 * framework-specific properties to colDefs, gridOptions etc.
9717 */
9718 PropertyKeys.FRAMEWORK_PROPERTIES = [
9719 '__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns', 'toColDef', 'createColDefFromGridColumn'
9720 ];
9721 return PropertyKeys;
9722}());
9723
9724
9725
9726/***/ }),
9727/* 37 */
9728/***/ (function(module, __webpack_exports__, __webpack_require__) {
9729
9730"use strict";
9731__webpack_require__.r(__webpack_exports__);
9732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return ColDefUtil; });
9733/**
9734 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9735 * @version v25.3.0
9736 * @link http://www.ag-grid.com/
9737 * @license MIT
9738 */
9739var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
9740 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
9741 for (var r = Array(s), k = 0, i = 0; i < il; i++)
9742 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
9743 r[k] = a[j];
9744 return r;
9745};
9746var ColDefUtil = /** @class */ (function () {
9747 function ColDefUtil() {
9748 }
9749 ColDefUtil.STRING_PROPERTIES = [
9750 'headerName',
9751 'columnGroupShow',
9752 'headerClass',
9753 'toolPanelClass',
9754 'headerValueGetter',
9755 'pivotKeys',
9756 'groupId',
9757 'colId',
9758 'sort',
9759 'initialSort',
9760 'field',
9761 'type',
9762 'tooltipComponent',
9763 'tooltipField',
9764 'headerTooltip',
9765 'cellClass',
9766 'showRowGroup',
9767 'template',
9768 'templateUrl',
9769 'filter',
9770 'initialAggFunc',
9771 'aggFunc',
9772 'cellRenderer',
9773 'cellEditor',
9774 'pinned',
9775 'initialPinned',
9776 'chartDataType'
9777 ];
9778 ColDefUtil.OBJECT_PROPERTIES = [
9779 'headerGroupComponent',
9780 'headerGroupComponentFramework',
9781 'headerGroupComponentParams',
9782 'cellStyle',
9783 'cellRendererParams',
9784 'cellEditorFramework',
9785 'cellEditorParams',
9786 'pinnedRowCellRendererFramework',
9787 'pinnedRowCellRendererParams',
9788 'filterFramework',
9789 'filterParams',
9790 'pivotValueColumn',
9791 'headerComponent',
9792 'headerComponentFramework',
9793 'headerComponentParams',
9794 'floatingFilterComponent',
9795 'floatingFilterComponentParams',
9796 'floatingFilterComponentFramework',
9797 'tooltipComponent',
9798 'tooltipComponentParams',
9799 'tooltipComponentFramework',
9800 'refData',
9801 'columnsMenuParams'
9802 ];
9803 ColDefUtil.ARRAY_PROPERTIES = [
9804 'children',
9805 'sortingOrder',
9806 'allowedAggFuncs',
9807 'menuTabs',
9808 'pivotTotalColumnIds',
9809 'cellClassRules',
9810 'icons'
9811 ];
9812 ColDefUtil.NUMBER_PROPERTIES = [
9813 'sortedAt',
9814 'sortIndex',
9815 'initialSortIndex',
9816 'flex',
9817 'initialFlex',
9818 'width',
9819 'initialWidth',
9820 'minWidth',
9821 'maxWidth',
9822 'rowGroupIndex',
9823 'initialRowGroupIndex',
9824 'pivotIndex',
9825 'initialPivotIndex'
9826 ];
9827 ColDefUtil.BOOLEAN_PROPERTIES = [
9828 'suppressCellFlash',
9829 'suppressColumnsToolPanel',
9830 'suppressFiltersToolPanel',
9831 'openByDefault',
9832 'marryChildren',
9833 'hide',
9834 'initialHide',
9835 'rowGroup',
9836 'initialRowGroup',
9837 'pivot',
9838 'initialPivot',
9839 'checkboxSelection',
9840 'headerCheckboxSelection',
9841 'headerCheckboxSelectionFilteredOnly',
9842 'suppressMenu',
9843 'suppressMovable',
9844 'lockPosition',
9845 'lockVisible',
9846 'lockPinned',
9847 'unSortIcon',
9848 'suppressSizeToFit',
9849 'suppressAutoSize',
9850 'enableRowGroup',
9851 'enablePivot',
9852 'enableValue',
9853 'editable',
9854 'suppressPaste',
9855 'suppressNavigable',
9856 'enableCellChangeFlash',
9857 'rowDrag',
9858 'dndSource',
9859 'autoHeight',
9860 'wrapText',
9861 'sortable',
9862 'resizable',
9863 'singleClickEdit',
9864 'floatingFilter',
9865 ];
9866 ColDefUtil.FUNCTION_PROPERTIES = [
9867 'dndSourceOnRowDrag',
9868 'valueGetter',
9869 'valueSetter',
9870 'filterValueGetter',
9871 'keyCreator',
9872 'cellRenderer',
9873 'cellRendererFramework',
9874 'pinnedRowCellRenderer',
9875 'valueFormatter',
9876 'pinnedRowValueFormatter',
9877 'valueParser',
9878 'comparator',
9879 'equals',
9880 'pivotComparator',
9881 'suppressKeyboardEvent',
9882 'suppressHeaderKeyboardEvent',
9883 'colSpan',
9884 'rowSpan',
9885 'getQuickFilterText',
9886 'newValueHandler',
9887 'onCellValueChanged',
9888 'onCellClicked',
9889 'onCellDoubleClicked',
9890 'onCellContextMenu',
9891 'rowDragText',
9892 'tooltipValueGetter',
9893 'tooltipComponent',
9894 'tooltipComponentFramework',
9895 'cellRendererSelector',
9896 'cellEditorSelector'
9897 ];
9898 ColDefUtil.ALL_PROPERTIES = __spreadArrays(ColDefUtil.ARRAY_PROPERTIES, ColDefUtil.OBJECT_PROPERTIES, ColDefUtil.STRING_PROPERTIES, ColDefUtil.NUMBER_PROPERTIES, ColDefUtil.FUNCTION_PROPERTIES, ColDefUtil.BOOLEAN_PROPERTIES);
9899 // used when doing property checks - this causes noise when using frameworks which can add their own fw specific
9900 // properties to colDefs, gridOptions etc
9901 ColDefUtil.FRAMEWORK_PROPERTIES = ['__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns',
9902 'toColDef', 'createColDefFromGridColumn'];
9903 return ColDefUtil;
9904}());
9905
9906
9907
9908/***/ }),
9909/* 38 */
9910/***/ (function(module, __webpack_exports__, __webpack_require__) {
9911
9912"use strict";
9913__webpack_require__.r(__webpack_exports__);
9914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RegisteredComponentSource", function() { return RegisteredComponentSource; });
9915/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return UserComponentRegistry; });
9916/* harmony import */ var _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
9917/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
9918/* harmony import */ var _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61);
9919/* harmony import */ var _headerRendering_header_headerComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69);
9920/* harmony import */ var _headerRendering_headerGroup_headerGroupComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71);
9921/* harmony import */ var _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72);
9922/* harmony import */ var _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(79);
9923/* harmony import */ var _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80);
9924/* harmony import */ var _rendering_cellRenderers_loadingCellRenderer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(81);
9925/* harmony import */ var _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(82);
9926/* harmony import */ var _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(83);
9927/* harmony import */ var _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(84);
9928/* harmony import */ var _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(85);
9929/* harmony import */ var _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(86);
9930/* harmony import */ var _rendering_overlays_loadingOverlayComponent__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(87);
9931/* harmony import */ var _rendering_overlays_noRowsOverlayComponent__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(88);
9932/* harmony import */ var _rendering_tooltipComponent__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(89);
9933/* harmony import */ var _filter_provided_date_defaultDateComponent__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(90);
9934/* harmony import */ var _filter_provided_date_dateFloatingFilter__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(91);
9935/* harmony import */ var _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(93);
9936/* harmony import */ var _filter_provided_number_numberFloatingFilter__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(94);
9937/* harmony import */ var _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(96);
9938/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(20);
9939/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(13);
9940/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(15);
9941/**
9942 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
9943 * @version v25.3.0
9944 * @link http://www.ag-grid.com/
9945 * @license MIT
9946 */
9947var __extends = (undefined && undefined.__extends) || (function () {
9948 var extendStatics = function (d, b) {
9949 extendStatics = Object.setPrototypeOf ||
9950 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9951 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
9952 return extendStatics(d, b);
9953 };
9954 return function (d, b) {
9955 extendStatics(d, b);
9956 function __() { this.constructor = d; }
9957 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9958 };
9959})();
9960var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9961 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9962 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9963 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;
9964 return c > 3 && r && Object.defineProperty(target, key, r), r;
9965};
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991var RegisteredComponentSource;
9992(function (RegisteredComponentSource) {
9993 RegisteredComponentSource[RegisteredComponentSource["DEFAULT"] = 0] = "DEFAULT";
9994 RegisteredComponentSource[RegisteredComponentSource["REGISTERED"] = 1] = "REGISTERED";
9995})(RegisteredComponentSource || (RegisteredComponentSource = {}));
9996var UserComponentRegistry = /** @class */ (function (_super) {
9997 __extends(UserComponentRegistry, _super);
9998 function UserComponentRegistry() {
9999 var _this = _super !== null && _super.apply(this, arguments) || this;
10000 _this.agGridDefaults = {
10001 //date
10002 agDateInput: _filter_provided_date_defaultDateComponent__WEBPACK_IMPORTED_MODULE_17__["DefaultDateComponent"],
10003 //header
10004 agColumnHeader: _headerRendering_header_headerComp__WEBPACK_IMPORTED_MODULE_3__["HeaderComp"],
10005 agColumnGroupHeader: _headerRendering_headerGroup_headerGroupComp__WEBPACK_IMPORTED_MODULE_4__["HeaderGroupComp"],
10006 //floating filters
10007 agTextColumnFloatingFilter: _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_21__["TextFloatingFilter"],
10008 agNumberColumnFloatingFilter: _filter_provided_number_numberFloatingFilter__WEBPACK_IMPORTED_MODULE_20__["NumberFloatingFilter"],
10009 agDateColumnFloatingFilter: _filter_provided_date_dateFloatingFilter__WEBPACK_IMPORTED_MODULE_18__["DateFloatingFilter"],
10010 // renderers
10011 agAnimateShowChangeCellRenderer: _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_6__["AnimateShowChangeCellRenderer"],
10012 agAnimateSlideCellRenderer: _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_7__["AnimateSlideCellRenderer"],
10013 agGroupCellRenderer: _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_5__["GroupCellRenderer"],
10014 agGroupRowRenderer: _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_5__["GroupCellRenderer"],
10015 agLoadingCellRenderer: _rendering_cellRenderers_loadingCellRenderer__WEBPACK_IMPORTED_MODULE_8__["LoadingCellRenderer"],
10016 //editors
10017 agCellEditor: _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_0__["TextCellEditor"],
10018 agTextCellEditor: _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_0__["TextCellEditor"],
10019 agSelectCellEditor: _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_9__["SelectCellEditor"],
10020 agPopupTextCellEditor: _rendering_cellEditors_popupTextCellEditor__WEBPACK_IMPORTED_MODULE_10__["PopupTextCellEditor"],
10021 agPopupSelectCellEditor: _rendering_cellEditors_popupSelectCellEditor__WEBPACK_IMPORTED_MODULE_11__["PopupSelectCellEditor"],
10022 agLargeTextCellEditor: _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_12__["LargeTextCellEditor"],
10023 //filter
10024 agTextColumnFilter: _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_19__["TextFilter"],
10025 agNumberColumnFilter: _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_13__["NumberFilter"],
10026 agDateColumnFilter: _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_2__["DateFilter"],
10027 //overlays
10028 agLoadingOverlay: _rendering_overlays_loadingOverlayComponent__WEBPACK_IMPORTED_MODULE_14__["LoadingOverlayComponent"],
10029 agNoRowsOverlay: _rendering_overlays_noRowsOverlayComponent__WEBPACK_IMPORTED_MODULE_15__["NoRowsOverlayComponent"],
10030 // tooltips
10031 agTooltipComponent: _rendering_tooltipComponent__WEBPACK_IMPORTED_MODULE_16__["TooltipComponent"]
10032 };
10033 _this.agDeprecatedNames = {
10034 set: {
10035 newComponentName: 'agSetColumnFilter',
10036 propertyHolder: 'filter'
10037 },
10038 text: {
10039 newComponentName: 'agTextColumnFilter',
10040 propertyHolder: 'filter'
10041 },
10042 number: {
10043 newComponentName: 'agNumberColumnFilter',
10044 propertyHolder: 'filter'
10045 },
10046 date: {
10047 newComponentName: 'agDateColumnFilter',
10048 propertyHolder: 'filter'
10049 },
10050 group: {
10051 newComponentName: 'agGroupCellRenderer',
10052 propertyHolder: 'cellRenderer'
10053 },
10054 animateShowChange: {
10055 newComponentName: 'agAnimateShowChangeCellRenderer',
10056 propertyHolder: 'cellRenderer'
10057 },
10058 animateSlide: {
10059 newComponentName: 'agAnimateSlideCellRenderer',
10060 propertyHolder: 'cellRenderer'
10061 },
10062 select: {
10063 newComponentName: 'agSelectCellEditor',
10064 propertyHolder: 'cellEditor'
10065 },
10066 largeText: {
10067 newComponentName: 'agLargeTextCellEditor',
10068 propertyHolder: 'cellEditor'
10069 },
10070 popupSelect: {
10071 newComponentName: 'agPopupSelectCellEditor',
10072 propertyHolder: 'cellEditor'
10073 },
10074 popupText: {
10075 newComponentName: 'agPopupTextCellEditor',
10076 propertyHolder: 'cellEditor'
10077 },
10078 richSelect: {
10079 newComponentName: 'agRichSelectCellEditor',
10080 propertyHolder: 'cellEditor'
10081 },
10082 headerComponent: {
10083 newComponentName: 'agColumnHeader',
10084 propertyHolder: 'headerComponent'
10085 }
10086 };
10087 _this.jsComponents = {};
10088 _this.frameworkComponents = {};
10089 return _this;
10090 }
10091 UserComponentRegistry.prototype.init = function () {
10092 var _this = this;
10093 if (this.gridOptions.components != null) {
10094 Object(_utils_object__WEBPACK_IMPORTED_MODULE_23__["iterateObject"])(this.gridOptions.components, function (key, component) { return _this.registerComponent(key, component); });
10095 }
10096 if (this.gridOptions.frameworkComponents != null) {
10097 Object(_utils_object__WEBPACK_IMPORTED_MODULE_23__["iterateObject"])(this.gridOptions.frameworkComponents, function (key, component) { return _this.registerFwComponent(key, component); });
10098 }
10099 };
10100 UserComponentRegistry.prototype.registerDefaultComponent = function (rawName, component) {
10101 var name = this.translateIfDeprecated(rawName);
10102 if (this.agGridDefaults[name]) {
10103 console.error("Trying to overwrite a default component. You should call registerComponent");
10104 return;
10105 }
10106 this.agGridDefaults[name] = component;
10107 };
10108 UserComponentRegistry.prototype.registerComponent = function (rawName, component) {
10109 var name = this.translateIfDeprecated(rawName);
10110 if (this.frameworkComponents[name]) {
10111 console.error("Trying to register a component that you have already registered for frameworks: " + name);
10112 return;
10113 }
10114 this.jsComponents[name] = component;
10115 };
10116 /**
10117 * B the business interface (ie IHeader)
10118 * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
10119 */
10120 UserComponentRegistry.prototype.registerFwComponent = function (rawName, component) {
10121 var name = this.translateIfDeprecated(rawName);
10122 if (this.jsComponents[name]) {
10123 console.error("Trying to register a component that you have already registered for plain javascript: " + name);
10124 return;
10125 }
10126 this.frameworkComponents[name] = component;
10127 };
10128 /**
10129 * B the business interface (ie IHeader)
10130 * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
10131 */
10132 UserComponentRegistry.prototype.retrieve = function (rawName) {
10133 var name = this.translateIfDeprecated(rawName);
10134 var frameworkComponent = this.frameworkComponents[name];
10135 if (frameworkComponent) {
10136 return {
10137 componentFromFramework: true,
10138 component: frameworkComponent,
10139 source: RegisteredComponentSource.REGISTERED
10140 };
10141 }
10142 var jsComponent = this.jsComponents[name];
10143 if (jsComponent) {
10144 return {
10145 componentFromFramework: false,
10146 component: jsComponent,
10147 source: RegisteredComponentSource.REGISTERED
10148 };
10149 }
10150 var defaultComponent = this.agGridDefaults[name];
10151 if (defaultComponent) {
10152 return {
10153 componentFromFramework: false,
10154 component: defaultComponent,
10155 source: RegisteredComponentSource.DEFAULT
10156 };
10157 }
10158 if (Object.keys(this.agGridDefaults).indexOf(name) < 0) {
10159 console.warn("AG Grid: Looking for component [" + name + "] but it wasn't found.");
10160 }
10161 return null;
10162 };
10163 UserComponentRegistry.prototype.translateIfDeprecated = function (raw) {
10164 var deprecatedInfo = this.agDeprecatedNames[raw];
10165 if (deprecatedInfo != null) {
10166 Object(_utils_function__WEBPACK_IMPORTED_MODULE_24__["doOnce"])(function () {
10167 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);
10168 }, 'DEPRECATE_COMPONENT_' + raw);
10169 return deprecatedInfo.newComponentName;
10170 }
10171 return raw;
10172 };
10173 __decorate([
10174 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptions')
10175 ], UserComponentRegistry.prototype, "gridOptions", void 0);
10176 __decorate([
10177 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
10178 ], UserComponentRegistry.prototype, "init", null);
10179 UserComponentRegistry = __decorate([
10180 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('userComponentRegistry')
10181 ], UserComponentRegistry);
10182 return UserComponentRegistry;
10183}(_context_beanStub__WEBPACK_IMPORTED_MODULE_22__["BeanStub"]));
10184
10185
10186
10187/***/ }),
10188/* 39 */
10189/***/ (function(module, __webpack_exports__, __webpack_require__) {
10190
10191"use strict";
10192__webpack_require__.r(__webpack_exports__);
10193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return TextCellEditor; });
10194/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
10195/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
10196/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
10197/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
10198/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60);
10199/**
10200 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10201 * @version v25.3.0
10202 * @link http://www.ag-grid.com/
10203 * @license MIT
10204 */
10205var __extends = (undefined && undefined.__extends) || (function () {
10206 var extendStatics = function (d, b) {
10207 extendStatics = Object.setPrototypeOf ||
10208 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10209 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10210 return extendStatics(d, b);
10211 };
10212 return function (d, b) {
10213 extendStatics(d, b);
10214 function __() { this.constructor = d; }
10215 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10216 };
10217})();
10218var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10219 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10220 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10221 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;
10222 return c > 3 && r && Object.defineProperty(target, key, r), r;
10223};
10224
10225
10226
10227
10228
10229var TextCellEditor = /** @class */ (function (_super) {
10230 __extends(TextCellEditor, _super);
10231 function TextCellEditor() {
10232 return _super.call(this, TextCellEditor.TEMPLATE) || this;
10233 }
10234 TextCellEditor.prototype.init = function (params) {
10235 this.params = params;
10236 var eInput = this.eInput;
10237 var startValue;
10238 // cellStartedEdit is only false if we are doing fullRow editing
10239 if (params.cellStartedEdit) {
10240 this.focusAfterAttached = true;
10241 if (params.keyPress === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].BACKSPACE || params.keyPress === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DELETE) {
10242 startValue = '';
10243 }
10244 else if (params.charPress) {
10245 startValue = params.charPress;
10246 }
10247 else {
10248 startValue = this.getStartValue(params);
10249 if (params.keyPress !== _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].F2) {
10250 this.highlightAllOnFocus = true;
10251 }
10252 }
10253 }
10254 else {
10255 this.focusAfterAttached = false;
10256 startValue = this.getStartValue(params);
10257 }
10258 if (startValue != null) {
10259 eInput.setValue(startValue, true);
10260 }
10261 this.addManagedListener(eInput.getGui(), 'keydown', function (event) {
10262 var keyCode = event.keyCode;
10263 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_UP || keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_DOWN) {
10264 event.preventDefault();
10265 }
10266 });
10267 };
10268 TextCellEditor.prototype.afterGuiAttached = function () {
10269 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
10270 var eInput = this.eInput;
10271 eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));
10272 if (!this.focusAfterAttached) {
10273 return;
10274 }
10275 // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input
10276 // to be focused before setSelectionRange will work. But it triggers a bug in Safari where
10277 // explicitly focusing then blurring an empty field will cause the parent container to scroll.
10278 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserSafari"])()) {
10279 eInput.getFocusableElement().focus();
10280 }
10281 var inputEl = eInput.getInputElement();
10282 if (this.highlightAllOnFocus) {
10283 inputEl.select();
10284 }
10285 else {
10286 // when we started editing, we want the caret at the end, not the start.
10287 // this comes into play in two scenarios: a) when user hits F2 and b)
10288 // when user hits a printable character, then on IE (and only IE) the caret
10289 // was placed after the first character, thus 'apply' would end up as 'pplea'
10290 var value = eInput.getValue();
10291 var len = (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(value) && value.length) || 0;
10292 if (len) {
10293 inputEl.setSelectionRange(len, len);
10294 }
10295 }
10296 };
10297 // gets called when tabbing trough cells and in full row edit mode
10298 TextCellEditor.prototype.focusIn = function () {
10299 var eInput = this.eInput;
10300 var focusEl = eInput.getFocusableElement();
10301 var inputEl = eInput.getInputElement();
10302 focusEl.focus();
10303 inputEl.select();
10304 };
10305 TextCellEditor.prototype.focusOut = function () {
10306 var inputEl = this.eInput.getInputElement();
10307 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserIE"])()) {
10308 inputEl.setSelectionRange(0, 0);
10309 }
10310 };
10311 TextCellEditor.prototype.getValue = function () {
10312 var eInput = this.eInput;
10313 return this.params.parseValue(eInput.getValue());
10314 };
10315 TextCellEditor.prototype.getStartValue = function (params) {
10316 var formatValue = params.useFormatter || params.column.getColDef().refData;
10317 return formatValue ? params.formatValue(params.value) : params.value;
10318 };
10319 TextCellEditor.prototype.isPopup = function () {
10320 return false;
10321 };
10322 TextCellEditor.TEMPLATE = '<div class="ag-cell-edit-wrapper"><ag-input-text-field class="ag-cell-editor" ref="eInput"></ag-input-text-field></div>';
10323 __decorate([
10324 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eInput')
10325 ], TextCellEditor.prototype, "eInput", void 0);
10326 return TextCellEditor;
10327}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
10328
10329
10330
10331/***/ }),
10332/* 40 */
10333/***/ (function(module, __webpack_exports__, __webpack_require__) {
10334
10335"use strict";
10336__webpack_require__.r(__webpack_exports__);
10337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return PopupComponent; });
10338/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
10339/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
10340/**
10341 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10342 * @version v25.3.0
10343 * @link http://www.ag-grid.com/
10344 * @license MIT
10345 */
10346var __extends = (undefined && undefined.__extends) || (function () {
10347 var extendStatics = function (d, b) {
10348 extendStatics = Object.setPrototypeOf ||
10349 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10350 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10351 return extendStatics(d, b);
10352 };
10353 return function (d, b) {
10354 extendStatics(d, b);
10355 function __() { this.constructor = d; }
10356 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10357 };
10358})();
10359
10360
10361var PopupComponent = /** @class */ (function (_super) {
10362 __extends(PopupComponent, _super);
10363 function PopupComponent() {
10364 return _super !== null && _super.apply(this, arguments) || this;
10365 }
10366 PopupComponent.prototype.isPopup = function () {
10367 return true;
10368 };
10369 PopupComponent.prototype.setParentComponent = function (container) {
10370 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(container.getGui(), 'ag-has-popup');
10371 _super.prototype.setParentComponent.call(this, container);
10372 };
10373 PopupComponent.prototype.destroy = function () {
10374 var parentComp = this.parentComponent;
10375 var hasParent = parentComp && parentComp.isAlive();
10376 if (hasParent) {
10377 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["removeCssClass"])(parentComp.getGui(), 'ag-has-popup');
10378 }
10379 _super.prototype.destroy.call(this);
10380 };
10381 return PopupComponent;
10382}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
10383
10384
10385
10386/***/ }),
10387/* 41 */
10388/***/ (function(module, __webpack_exports__, __webpack_require__) {
10389
10390"use strict";
10391__webpack_require__.r(__webpack_exports__);
10392/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementGettingCreated", function() { return elementGettingCreated; });
10393/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return Component; });
10394/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
10395/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
10396/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
10397/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
10398/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
10399/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
10400/* harmony import */ var _tooltipFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(58);
10401/**
10402 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10403 * @version v25.3.0
10404 * @link http://www.ag-grid.com/
10405 * @license MIT
10406 */
10407var __extends = (undefined && undefined.__extends) || (function () {
10408 var extendStatics = function (d, b) {
10409 extendStatics = Object.setPrototypeOf ||
10410 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10411 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
10412 return extendStatics(d, b);
10413 };
10414 return function (d, b) {
10415 extendStatics(d, b);
10416 function __() { this.constructor = d; }
10417 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10418 };
10419})();
10420var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10421 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10422 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10423 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;
10424 return c > 3 && r && Object.defineProperty(target, key, r), r;
10425};
10426
10427
10428
10429
10430
10431
10432
10433var compIdSequence = new _utils__WEBPACK_IMPORTED_MODULE_2__["NumberSequence"]();
10434var elementGettingCreated;
10435var Component = /** @class */ (function (_super) {
10436 __extends(Component, _super);
10437 function Component(template) {
10438 var _this = _super.call(this) || this;
10439 _this.annotatedGuiListeners = [];
10440 // if false, then CSS class "ag-hidden" is applied, which sets "display: none"
10441 _this.displayed = true;
10442 // if false, then CSS class "ag-invisible" is applied, which sets "visibility: hidden"
10443 _this.visible = true;
10444 // unique id for this row component. this is used for getting a reference to the HTML dom.
10445 // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying
10446 // around as we create a new rowComp instance for the same row node).
10447 _this.compId = compIdSequence.next();
10448 // to minimise DOM hits, we only apply CSS classes if they have changed. as addding a CSS class that is already
10449 // there, or removing one that wasn't present, all takes CPU.
10450 _this.cssClassStates = {};
10451 if (template) {
10452 _this.setTemplate(template);
10453 }
10454 return _this;
10455 }
10456 Component.prototype.preConstructOnComponent = function () {
10457 this.usingBrowserTooltips = this.gridOptionsWrapper.isEnableBrowserTooltips();
10458 };
10459 Component.prototype.getCompId = function () {
10460 return this.compId;
10461 };
10462 Component.prototype.getTooltipParams = function () {
10463 return {
10464 value: this.tooltipText,
10465 location: 'UNKNOWN'
10466 };
10467 };
10468 Component.prototype.setTooltip = function (newTooltipText) {
10469 var _this = this;
10470 var removeTooltip = function () {
10471 if (_this.usingBrowserTooltips) {
10472 _this.getGui().removeAttribute('title');
10473 }
10474 else {
10475 _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);
10476 }
10477 };
10478 var addTooltip = function () {
10479 if (_this.usingBrowserTooltips) {
10480 _this.getGui().setAttribute('title', _this.tooltipText);
10481 }
10482 else {
10483 _this.tooltipFeature = _this.createBean(new _tooltipFeature__WEBPACK_IMPORTED_MODULE_6__["TooltipFeature"](_this));
10484 }
10485 };
10486 if (this.tooltipText != newTooltipText) {
10487 if (this.tooltipText) {
10488 removeTooltip();
10489 }
10490 if (newTooltipText != null) {
10491 this.tooltipText = newTooltipText;
10492 if (this.tooltipText) {
10493 addTooltip();
10494 }
10495 }
10496 }
10497 };
10498 // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag
10499 Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {
10500 var _this = this;
10501 // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM
10502 // which messes up the traversal order of the children.
10503 var childNodeList = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["copyNodeList"])(parentNode.childNodes);
10504 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(childNodeList, function (childNode) {
10505 if (!(childNode instanceof HTMLElement)) {
10506 return;
10507 }
10508 var childComp = _this.createComponentFromElement(childNode, function (comp) {
10509 // copy over all attributes, including css classes, so any attributes user put on the tag
10510 // wll be carried across
10511 _this.copyAttributesFromNode(childNode, comp.getGui());
10512 }, paramsMap);
10513 if (childComp) {
10514 if (childComp.addItems && childNode.children.length) {
10515 _this.createChildComponentsFromTags(childNode, paramsMap);
10516 // converting from HTMLCollection to Array
10517 var items = Array.prototype.slice.call(childNode.children);
10518 childComp.addItems(items);
10519 }
10520 // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom
10521 _this.swapComponentForNode(childComp, parentNode, childNode);
10522 }
10523 else if (childNode.childNodes) {
10524 _this.createChildComponentsFromTags(childNode, paramsMap);
10525 }
10526 });
10527 };
10528 Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {
10529 var key = element.nodeName;
10530 var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;
10531 var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);
10532 if (ComponentClass) {
10533 elementGettingCreated = element;
10534 var newComponent = new ComponentClass(componentParams);
10535 newComponent.setParentComponent(this);
10536 this.createBean(newComponent, null, afterPreCreateCallback);
10537 return newComponent;
10538 }
10539 return null;
10540 };
10541 Component.prototype.copyAttributesFromNode = function (source, dest) {
10542 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["iterateNamedNodeMap"])(source.attributes, function (name, value) { return dest.setAttribute(name, value); });
10543 };
10544 Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {
10545 var eComponent = newComponent.getGui();
10546 parentNode.replaceChild(eComponent, childNode);
10547 parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);
10548 this.addDestroyFunc(this.destroyBean.bind(this, newComponent));
10549 this.swapInComponentForQuerySelectors(newComponent, childNode);
10550 };
10551 Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {
10552 var thisNoType = this;
10553 this.iterateOverQuerySelectors(function (querySelector) {
10554 if (thisNoType[querySelector.attributeName] === childNode) {
10555 thisNoType[querySelector.attributeName] = newComponent;
10556 }
10557 });
10558 };
10559 Component.prototype.iterateOverQuerySelectors = function (action) {
10560 var thisPrototype = Object.getPrototypeOf(this);
10561 while (thisPrototype != null) {
10562 var metaData = thisPrototype.__agComponentMetaData;
10563 var currentProtoName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["getFunctionName"])(thisPrototype.constructor);
10564 if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {
10565 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(metaData[currentProtoName].querySelectors, function (querySelector) { return action(querySelector); });
10566 }
10567 thisPrototype = Object.getPrototypeOf(thisPrototype);
10568 }
10569 };
10570 Component.prototype.setTemplate = function (template, paramsMap) {
10571 var eGui = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["loadTemplate"])(template);
10572 this.setTemplateFromElement(eGui, paramsMap);
10573 };
10574 Component.prototype.setTemplateFromElement = function (element, paramsMap) {
10575 this.eGui = element;
10576 this.eGui.__agComponent = this;
10577 this.addAnnotatedGuiEventListeners();
10578 this.wireQuerySelectors();
10579 // context will not be available when user sets template in constructor
10580 if (!!this.getContext()) {
10581 this.createChildComponentsFromTags(this.getGui(), paramsMap);
10582 }
10583 };
10584 Component.prototype.createChildComponentsPreConstruct = function () {
10585 // ui exists if user sets template in constructor. when this happens, we have to wait for the context
10586 // to be autoWired first before we can create child components.
10587 if (!!this.getGui()) {
10588 this.createChildComponentsFromTags(this.getGui());
10589 }
10590 };
10591 Component.prototype.wireQuerySelectors = function () {
10592 var _this = this;
10593 if (!this.eGui) {
10594 return;
10595 }
10596 var thisNoType = this;
10597 this.iterateOverQuerySelectors(function (querySelector) {
10598 var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };
10599 // if it's a ref selector, and match is on top level component, we return
10600 // the element. otherwise no way of components putting ref=xxx on the top
10601 // level element as querySelector only looks at children.
10602 var topLevelRefMatch = querySelector.refSelector
10603 && _this.eGui.getAttribute('ref') === querySelector.refSelector;
10604 if (topLevelRefMatch) {
10605 setResult(_this.eGui);
10606 }
10607 else {
10608 // otherwise use querySelector, which looks at children
10609 var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);
10610 if (resultOfQuery) {
10611 setResult(resultOfQuery.__agComponent || resultOfQuery);
10612 }
10613 }
10614 });
10615 };
10616 Component.prototype.addAnnotatedGuiEventListeners = function () {
10617 var _this = this;
10618 this.removeAnnotatedGuiEventListeners();
10619 if (!this.eGui) {
10620 return;
10621 }
10622 var listenerMethods = this.getAgComponentMetaData('guiListenerMethods');
10623 if (!listenerMethods) {
10624 return;
10625 }
10626 if (!this.annotatedGuiListeners) {
10627 this.annotatedGuiListeners = [];
10628 }
10629 listenerMethods.forEach(function (meta) {
10630 var element = _this.getRefElement(meta.ref);
10631 if (!element) {
10632 return;
10633 }
10634 var listener = _this[meta.methodName].bind(_this);
10635 element.addEventListener(meta.eventName, listener);
10636 _this.annotatedGuiListeners.push({ eventName: meta.eventName, listener: listener, element: element });
10637 });
10638 };
10639 Component.prototype.addAnnotatedGridEventListeners = function () {
10640 var _this = this;
10641 var listenerMetas = this.getAgComponentMetaData('gridListenerMethods');
10642 if (!listenerMetas) {
10643 return;
10644 }
10645 listenerMetas.forEach(function (meta) {
10646 var listener = _this[meta.methodName].bind(_this);
10647 _this.addManagedListener(_this.eventService, meta.eventName, listener);
10648 });
10649 };
10650 Component.prototype.getAgComponentMetaData = function (key) {
10651 var res = [];
10652 var thisProto = Object.getPrototypeOf(this);
10653 while (thisProto != null) {
10654 var metaData = thisProto.__agComponentMetaData;
10655 var currentProtoName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["getFunctionName"])(thisProto.constructor);
10656 if (metaData && metaData[currentProtoName] && metaData[currentProtoName][key]) {
10657 res = res.concat(metaData[currentProtoName][key]);
10658 }
10659 thisProto = Object.getPrototypeOf(thisProto);
10660 }
10661 return res;
10662 };
10663 Component.prototype.removeAnnotatedGuiEventListeners = function () {
10664 if (!this.annotatedGuiListeners) {
10665 return;
10666 }
10667 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(this.annotatedGuiListeners, function (e) {
10668 e.element.removeEventListener(e.eventName, e.listener);
10669 });
10670 this.annotatedGuiListeners = [];
10671 };
10672 Component.prototype.getGui = function () {
10673 return this.eGui;
10674 };
10675 Component.prototype.getFocusableElement = function () {
10676 return this.eGui;
10677 };
10678 Component.prototype.setParentComponent = function (component) {
10679 this.parentComponent = component;
10680 };
10681 Component.prototype.getParentComponent = function () {
10682 return this.parentComponent;
10683 };
10684 // this method is for older code, that wants to provide the gui element,
10685 // it is not intended for this to be in ag-Stack
10686 Component.prototype.setGui = function (eGui) {
10687 this.eGui = eGui;
10688 };
10689 Component.prototype.queryForHtmlElement = function (cssSelector) {
10690 return this.eGui.querySelector(cssSelector);
10691 };
10692 Component.prototype.queryForHtmlInputElement = function (cssSelector) {
10693 return this.eGui.querySelector(cssSelector);
10694 };
10695 Component.prototype.appendChild = function (newChild, container) {
10696 if (!container) {
10697 container = this.eGui;
10698 }
10699 if (newChild == null) {
10700 return;
10701 }
10702 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["isNodeOrElement"])(newChild)) {
10703 container.appendChild(newChild);
10704 }
10705 else {
10706 var childComponent = newChild;
10707 container.appendChild(childComponent.getGui());
10708 this.addDestroyFunc(this.destroyBean.bind(this, childComponent));
10709 }
10710 };
10711 Component.prototype.isDisplayed = function () {
10712 return this.displayed;
10713 };
10714 Component.prototype.setVisible = function (visible) {
10715 if (visible !== this.visible) {
10716 this.visible = visible;
10717 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setVisible"])(this.eGui, visible);
10718 }
10719 };
10720 Component.prototype.setDisplayed = function (displayed) {
10721 if (displayed !== this.displayed) {
10722 this.displayed = displayed;
10723 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eGui, displayed);
10724 var event_1 = {
10725 type: Component.EVENT_DISPLAYED_CHANGED,
10726 visible: this.displayed
10727 };
10728 this.dispatchEvent(event_1);
10729 }
10730 };
10731 Component.prototype.destroy = function () {
10732 this.removeAnnotatedGuiEventListeners();
10733 if (this.tooltipFeature) {
10734 this.tooltipFeature = this.destroyBean(this.tooltipFeature);
10735 }
10736 _super.prototype.destroy.call(this);
10737 };
10738 Component.prototype.addGuiEventListener = function (event, listener) {
10739 var _this = this;
10740 this.eGui.addEventListener(event, listener);
10741 this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });
10742 };
10743 Component.prototype.addCssClass = function (className) {
10744 var updateNeeded = this.cssClassStates[className] !== true;
10745 if (updateNeeded) {
10746 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.eGui, className);
10747 this.cssClassStates[className] = true;
10748 }
10749 };
10750 Component.prototype.removeCssClass = function (className) {
10751 var updateNeeded = this.cssClassStates[className] !== false;
10752 if (updateNeeded) {
10753 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["removeCssClass"])(this.eGui, className);
10754 this.cssClassStates[className] = false;
10755 }
10756 };
10757 Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {
10758 var updateNeeded = this.cssClassStates[className] !== addOrRemove;
10759 if (updateNeeded) {
10760 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eGui, className, addOrRemove);
10761 this.cssClassStates[className] = addOrRemove;
10762 }
10763 };
10764 Component.prototype.getAttribute = function (key) {
10765 var eGui = this.eGui;
10766 return eGui ? eGui.getAttribute(key) : null;
10767 };
10768 Component.prototype.getRefElement = function (refName) {
10769 return this.queryForHtmlElement("[ref=\"" + refName + "\"]");
10770 };
10771 Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';
10772 __decorate([
10773 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('agStackComponentsRegistry')
10774 ], Component.prototype, "agStackComponentsRegistry", void 0);
10775 __decorate([
10776 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreConstruct"]
10777 ], Component.prototype, "preConstructOnComponent", null);
10778 __decorate([
10779 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreConstruct"]
10780 ], Component.prototype, "createChildComponentsPreConstruct", null);
10781 __decorate([
10782 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
10783 ], Component.prototype, "addAnnotatedGridEventListeners", null);
10784 return Component;
10785}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
10786
10787
10788
10789/***/ }),
10790/* 42 */
10791/***/ (function(module, __webpack_exports__, __webpack_require__) {
10792
10793"use strict";
10794__webpack_require__.r(__webpack_exports__);
10795/* harmony import */ var _color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43);
10796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return _color__WEBPACK_IMPORTED_MODULE_0__["Color"]; });
10797
10798/* harmony import */ var _csv__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44);
10799/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return _csv__WEBPACK_IMPORTED_MODULE_1__["stringToArray"]; });
10800
10801/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
10802/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _utils__WEBPACK_IMPORTED_MODULE_2__["_"]; });
10803
10804/* harmony import */ var _numberSequence__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55);
10805/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _numberSequence__WEBPACK_IMPORTED_MODULE_3__["NumberSequence"]; });
10806
10807/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(56);
10808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _promise__WEBPACK_IMPORTED_MODULE_4__["AgPromiseStatus"]; });
10809
10810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _promise__WEBPACK_IMPORTED_MODULE_4__["AgPromise"]; });
10811
10812/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57);
10813/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _timer__WEBPACK_IMPORTED_MODULE_5__["Timer"]; });
10814
10815/**
10816 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10817 * @version v25.3.0
10818 * @link http://www.ag-grid.com/
10819 * @license MIT
10820 */
10821
10822
10823
10824
10825
10826
10827
10828
10829/***/ }),
10830/* 43 */
10831/***/ (function(module, __webpack_exports__, __webpack_require__) {
10832
10833"use strict";
10834__webpack_require__.r(__webpack_exports__);
10835/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return Color; });
10836/**
10837 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
10838 * @version v25.3.0
10839 * @link http://www.ag-grid.com/
10840 * @license MIT
10841 */
10842var Color = /** @class */ (function () {
10843 /**
10844 * Every color component should be in the [0, 1] range.
10845 * Some easing functions (such as elastic easing) can overshoot the target value by some amount.
10846 * So, when animating colors, if the source or target color components are already near
10847 * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color
10848 * component value to end up outside of that range mid-animation. For this reason the constructor
10849 * performs range checking/constraining.
10850 * @param r Red component.
10851 * @param g Green component.
10852 * @param b Blue component.
10853 * @param a Alpha (opacity) component.
10854 */
10855 function Color(r, g, b, a) {
10856 if (a === void 0) { a = 1; }
10857 // NaN is treated as 0.
10858 this.r = Math.min(1, Math.max(0, r || 0));
10859 this.g = Math.min(1, Math.max(0, g || 0));
10860 this.b = Math.min(1, Math.max(0, b || 0));
10861 this.a = Math.min(1, Math.max(0, a || 0));
10862 }
10863 /**
10864 * The given string can be in one of the following formats:
10865 * - #rgb
10866 * - #rrggbb
10867 * - rgb(r, g, b)
10868 * - rgba(r, g, b, a)
10869 * - CSS color name such as 'white', 'orange', 'cyan', etc.
10870 * @param str
10871 */
10872 Color.fromString = function (str) {
10873 // hexadecimal notation
10874 if (str.indexOf('#') >= 0) { // there can be some leading whitespace
10875 return Color.fromHexString(str);
10876 }
10877 // color name
10878 var hex = Color.nameToHex[str];
10879 if (hex) {
10880 return Color.fromHexString(hex);
10881 }
10882 // rgb(a) notation
10883 if (str.indexOf('rgb') >= 0) {
10884 return Color.fromRgbaString(str);
10885 }
10886 throw new Error("Invalid color string: '" + str + "'");
10887 };
10888 // Using separate RegExp for the short hex notation because strings like `#abcd`
10889 // are matched as ['#abcd', 'ab', 'c', 'd', undefined] when the `{1,2}` quantifier is used.
10890 Color.fromHexString = function (str) {
10891 var values = str.match(Color.hexRe);
10892 if (values) {
10893 var r = parseInt(values[1], 16);
10894 var g = parseInt(values[2], 16);
10895 var b = parseInt(values[3], 16);
10896 var a = values[4] !== undefined ? parseInt(values[4], 16) : 255;
10897 return new Color(r / 255, g / 255, b / 255, a / 255);
10898 }
10899 values = str.match(Color.shortHexRe);
10900 if (values) {
10901 var r = parseInt(values[1], 16);
10902 var g = parseInt(values[2], 16);
10903 var b = parseInt(values[3], 16);
10904 var a = values[4] !== undefined ? parseInt(values[4], 16) : 15;
10905 r += r * 16;
10906 g += g * 16;
10907 b += b * 16;
10908 a += a * 16;
10909 return new Color(r / 255, g / 255, b / 255, a / 255);
10910 }
10911 throw new Error("Malformed hexadecimal color string: '" + str + "'");
10912 };
10913 Color.fromRgbaString = function (str) {
10914 var values = str.match(Color.rgbRe);
10915 if (values) {
10916 return new Color(+values[1] / 255, +values[2] / 255, +values[3] / 255);
10917 }
10918 values = str.match(Color.rgbaRe);
10919 if (values) {
10920 return new Color(+values[1] / 255, +values[2] / 255, +values[3] / 255, +values[4]);
10921 }
10922 throw new Error("Malformed rgb/rgba color string: '" + str + "'");
10923 };
10924 Color.fromArray = function (arr) {
10925 if (arr.length === 4) {
10926 return new Color(arr[0], arr[1], arr[2], arr[3]);
10927 }
10928 if (arr.length === 3) {
10929 return new Color(arr[0], arr[1], arr[2]);
10930 }
10931 throw new Error('The given array should contain 3 or 4 color components (numbers).');
10932 };
10933 /**
10934 * Creates an instance of the Color class from the given HSB(A) components.
10935 * @param h Hue in the [0, 360) range.
10936 * @param s Saturation in the [0, 1] range.
10937 * @param b Brightness in the [0, 1] range.
10938 * @param alpha Opacity in the [0, 1] range. Defaults to 1 (completely opaque).
10939 */
10940 Color.fromHSB = function (h, s, b, alpha) {
10941 if (alpha === void 0) { alpha = 1; }
10942 var rgb = Color.HSBtoRGB(h, s, b);
10943 return new Color(rgb[0], rgb[1], rgb[2], alpha);
10944 };
10945 Color.padHex = function (str) {
10946 // Can't use `padStart(2, '0')` here because of IE.
10947 return str.length === 1 ? '0' + str : str;
10948 };
10949 Color.prototype.toHexString = function () {
10950 var hex = '#'
10951 + Color.padHex(Math.round(this.r * 255).toString(16))
10952 + Color.padHex(Math.round(this.g * 255).toString(16))
10953 + Color.padHex(Math.round(this.b * 255).toString(16));
10954 if (this.a < 1) {
10955 hex += Color.padHex(Math.round(this.a * 255).toString(16));
10956 }
10957 return hex;
10958 };
10959 Color.prototype.toRgbaString = function (fractionDigits) {
10960 if (fractionDigits === void 0) { fractionDigits = 3; }
10961 var components = [
10962 Math.round(this.r * 255),
10963 Math.round(this.g * 255),
10964 Math.round(this.b * 255)
10965 ];
10966 var k = Math.pow(10, fractionDigits);
10967 if (this.a !== 1) {
10968 components.push(Math.round(this.a * k) / k);
10969 return "rgba(" + components.join(', ') + ")";
10970 }
10971 return "rgb(" + components.join(', ') + ")";
10972 };
10973 Color.prototype.toString = function () {
10974 if (this.a === 1) {
10975 return this.toHexString();
10976 }
10977 return this.toRgbaString();
10978 };
10979 Color.prototype.toHSB = function () {
10980 return Color.RGBtoHSB(this.r, this.g, this.b);
10981 };
10982 /**
10983 * Converts the given RGB triple to an array of HSB (HSV) components.
10984 * The hue component will be `NaN` for achromatic colors.
10985 */
10986 Color.RGBtoHSB = function (r, g, b) {
10987 var min = Math.min(r, g, b);
10988 var max = Math.max(r, g, b);
10989 var S = max !== 0 ? (max - min) / max : 0;
10990 var H = NaN;
10991 // min == max, means all components are the same
10992 // and the color is a shade of gray with no hue (H is NaN)
10993 if (min !== max) {
10994 var delta = max - min;
10995 var rc = (max - r) / delta;
10996 var gc = (max - g) / delta;
10997 var bc = (max - b) / delta;
10998 if (r === max) {
10999 H = bc - gc;
11000 }
11001 else if (g === max) {
11002 H = 2.0 + rc - bc;
11003 }
11004 else {
11005 H = 4.0 + gc - rc;
11006 }
11007 H /= 6.0;
11008 if (H < 0) {
11009 H = H + 1.0;
11010 }
11011 }
11012 return [H * 360, S, max];
11013 };
11014 /**
11015 * Converts the given HSB (HSV) triple to an array of RGB components.
11016 */
11017 Color.HSBtoRGB = function (H, S, B) {
11018 if (isNaN(H)) {
11019 H = 0;
11020 }
11021 H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]
11022 var r = 0;
11023 var g = 0;
11024 var b = 0;
11025 if (S === 0) {
11026 r = g = b = B;
11027 }
11028 else {
11029 var h = (H - Math.floor(H)) * 6;
11030 var f = h - Math.floor(h);
11031 var p = B * (1 - S);
11032 var q = B * (1 - S * f);
11033 var t = B * (1 - (S * (1 - f)));
11034 switch (h >> 0) { // discard the floating point part of the number
11035 case 0:
11036 r = B;
11037 g = t;
11038 b = p;
11039 break;
11040 case 1:
11041 r = q;
11042 g = B;
11043 b = p;
11044 break;
11045 case 2:
11046 r = p;
11047 g = B;
11048 b = t;
11049 break;
11050 case 3:
11051 r = p;
11052 g = q;
11053 b = B;
11054 break;
11055 case 4:
11056 r = t;
11057 g = p;
11058 b = B;
11059 break;
11060 case 5:
11061 r = B;
11062 g = p;
11063 b = q;
11064 break;
11065 }
11066 }
11067 return [r, g, b];
11068 };
11069 Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {
11070 var hsb = Color.RGBtoHSB(this.r, this.g, this.b);
11071 var b = hsb[2];
11072 if (b == 0 && brightnessFactor > 1.0) {
11073 b = 0.05;
11074 }
11075 var h = (((hsb[0] + hueShift) % 360) + 360) % 360;
11076 var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);
11077 b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);
11078 var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);
11079 var rgba = Color.HSBtoRGB(h, s, b);
11080 rgba.push(a);
11081 return Color.fromArray(rgba);
11082 };
11083 Color.prototype.brighter = function () {
11084 return this.derive(0, 1.0, 1.0 / 0.7, 1.0);
11085 };
11086 Color.prototype.darker = function () {
11087 return this.derive(0, 1.0, 0.7, 1.0);
11088 };
11089 // See https://drafts.csswg.org/css-color/#hex-notation
11090 Color.hexRe = /\s*#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?\s*$/;
11091 Color.shortHexRe = /\s*#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])?\s*$/;
11092 Color.rgbRe = /\s*rgb\((\d+),\s*(\d+),\s*(\d+)\)\s*/;
11093 Color.rgbaRe = /\s*rgba\((\d+),\s*(\d+),\s*(\d+),\s*([.\d]+)\)\s*/;
11094 /**
11095 * CSS Color Module Level 4:
11096 * https://drafts.csswg.org/css-color/#named-colors
11097 */
11098 Color.nameToHex = Object.freeze({
11099 aliceblue: '#F0F8FF',
11100 antiquewhite: '#FAEBD7',
11101 aqua: '#00FFFF',
11102 aquamarine: '#7FFFD4',
11103 azure: '#F0FFFF',
11104 beige: '#F5F5DC',
11105 bisque: '#FFE4C4',
11106 black: '#000000',
11107 blanchedalmond: '#FFEBCD',
11108 blue: '#0000FF',
11109 blueviolet: '#8A2BE2',
11110 brown: '#A52A2A',
11111 burlywood: '#DEB887',
11112 cadetblue: '#5F9EA0',
11113 chartreuse: '#7FFF00',
11114 chocolate: '#D2691E',
11115 coral: '#FF7F50',
11116 cornflowerblue: '#6495ED',
11117 cornsilk: '#FFF8DC',
11118 crimson: '#DC143C',
11119 cyan: '#00FFFF',
11120 darkblue: '#00008B',
11121 darkcyan: '#008B8B',
11122 darkgoldenrod: '#B8860B',
11123 darkgray: '#A9A9A9',
11124 darkgreen: '#006400',
11125 darkgrey: '#A9A9A9',
11126 darkkhaki: '#BDB76B',
11127 darkmagenta: '#8B008B',
11128 darkolivegreen: '#556B2F',
11129 darkorange: '#FF8C00',
11130 darkorchid: '#9932CC',
11131 darkred: '#8B0000',
11132 darksalmon: '#E9967A',
11133 darkseagreen: '#8FBC8F',
11134 darkslateblue: '#483D8B',
11135 darkslategray: '#2F4F4F',
11136 darkslategrey: '#2F4F4F',
11137 darkturquoise: '#00CED1',
11138 darkviolet: '#9400D3',
11139 deeppink: '#FF1493',
11140 deepskyblue: '#00BFFF',
11141 dimgray: '#696969',
11142 dimgrey: '#696969',
11143 dodgerblue: '#1E90FF',
11144 firebrick: '#B22222',
11145 floralwhite: '#FFFAF0',
11146 forestgreen: '#228B22',
11147 fuchsia: '#FF00FF',
11148 gainsboro: '#DCDCDC',
11149 ghostwhite: '#F8F8FF',
11150 gold: '#FFD700',
11151 goldenrod: '#DAA520',
11152 gray: '#808080',
11153 green: '#008000',
11154 greenyellow: '#ADFF2F',
11155 grey: '#808080',
11156 honeydew: '#F0FFF0',
11157 hotpink: '#FF69B4',
11158 indianred: '#CD5C5C',
11159 indigo: '#4B0082',
11160 ivory: '#FFFFF0',
11161 khaki: '#F0E68C',
11162 lavender: '#E6E6FA',
11163 lavenderblush: '#FFF0F5',
11164 lawngreen: '#7CFC00',
11165 lemonchiffon: '#FFFACD',
11166 lightblue: '#ADD8E6',
11167 lightcoral: '#F08080',
11168 lightcyan: '#E0FFFF',
11169 lightgoldenrodyellow: '#FAFAD2',
11170 lightgray: '#D3D3D3',
11171 lightgreen: '#90EE90',
11172 lightgrey: '#D3D3D3',
11173 lightpink: '#FFB6C1',
11174 lightsalmon: '#FFA07A',
11175 lightseagreen: '#20B2AA',
11176 lightskyblue: '#87CEFA',
11177 lightslategray: '#778899',
11178 lightslategrey: '#778899',
11179 lightsteelblue: '#B0C4DE',
11180 lightyellow: '#FFFFE0',
11181 lime: '#00FF00',
11182 limegreen: '#32CD32',
11183 linen: '#FAF0E6',
11184 magenta: '#FF00FF',
11185 maroon: '#800000',
11186 mediumaquamarine: '#66CDAA',
11187 mediumblue: '#0000CD',
11188 mediumorchid: '#BA55D3',
11189 mediumpurple: '#9370DB',
11190 mediumseagreen: '#3CB371',
11191 mediumslateblue: '#7B68EE',
11192 mediumspringgreen: '#00FA9A',
11193 mediumturquoise: '#48D1CC',
11194 mediumvioletred: '#C71585',
11195 midnightblue: '#191970',
11196 mintcream: '#F5FFFA',
11197 mistyrose: '#FFE4E1',
11198 moccasin: '#FFE4B5',
11199 navajowhite: '#FFDEAD',
11200 navy: '#000080',
11201 oldlace: '#FDF5E6',
11202 olive: '#808000',
11203 olivedrab: '#6B8E23',
11204 orange: '#FFA500',
11205 orangered: '#FF4500',
11206 orchid: '#DA70D6',
11207 palegoldenrod: '#EEE8AA',
11208 palegreen: '#98FB98',
11209 paleturquoise: '#AFEEEE',
11210 palevioletred: '#DB7093',
11211 papayawhip: '#FFEFD5',
11212 peachpuff: '#FFDAB9',
11213 peru: '#CD853F',
11214 pink: '#FFC0CB',
11215 plum: '#DDA0DD',
11216 powderblue: '#B0E0E6',
11217 purple: '#800080',
11218 rebeccapurple: '#663399',
11219 red: '#FF0000',
11220 rosybrown: '#BC8F8F',
11221 royalblue: '#4169E1',
11222 saddlebrown: '#8B4513',
11223 salmon: '#FA8072',
11224 sandybrown: '#F4A460',
11225 seagreen: '#2E8B57',
11226 seashell: '#FFF5EE',
11227 sienna: '#A0522D',
11228 silver: '#C0C0C0',
11229 skyblue: '#87CEEB',
11230 slateblue: '#6A5ACD',
11231 slategray: '#708090',
11232 slategrey: '#708090',
11233 snow: '#FFFAFA',
11234 springgreen: '#00FF7F',
11235 steelblue: '#4682B4',
11236 tan: '#D2B48C',
11237 teal: '#008080',
11238 thistle: '#D8BFD8',
11239 tomato: '#FF6347',
11240 turquoise: '#40E0D0',
11241 violet: '#EE82EE',
11242 wheat: '#F5DEB3',
11243 white: '#FFFFFF',
11244 whitesmoke: '#F5F5F5',
11245 yellow: '#FFFF00',
11246 yellowgreen: '#9ACD32'
11247 });
11248 return Color;
11249}());
11250
11251
11252
11253/***/ }),
11254/* 44 */
11255/***/ (function(module, __webpack_exports__, __webpack_require__) {
11256
11257"use strict";
11258__webpack_require__.r(__webpack_exports__);
11259/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return stringToArray; });
11260/**
11261 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11262 * @version v25.3.0
11263 * @link http://www.ag-grid.com/
11264 * @license MIT
11265 */
11266// Based on https://stackoverflow.com/a/14991797
11267// This will parse a delimited string into an array of arrays.
11268function stringToArray(strData, delimiter) {
11269 if (delimiter === void 0) { delimiter = ','; }
11270 var data = [];
11271 var isNewline = function (char) { return char === '\r' || char === '\n'; };
11272 var insideQuotedField = false;
11273 if (strData === '') {
11274 return [['']];
11275 }
11276 var _loop_1 = function (row, column, position) {
11277 var previousChar = strData[position - 1];
11278 var currentChar = strData[position];
11279 var nextChar = strData[position + 1];
11280 var ensureDataExists = function () {
11281 if (!data[row]) {
11282 // create row if it doesn't exist
11283 data[row] = [];
11284 }
11285 if (!data[row][column]) {
11286 // create column if it doesn't exist
11287 data[row][column] = '';
11288 }
11289 };
11290 ensureDataExists();
11291 if (currentChar === '"') {
11292 if (insideQuotedField) {
11293 if (nextChar === '"') {
11294 // unescape double quote
11295 data[row][column] += '"';
11296 position++;
11297 }
11298 else {
11299 // exit quoted field
11300 insideQuotedField = false;
11301 }
11302 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11303 }
11304 else if (previousChar === undefined || previousChar === delimiter || isNewline(previousChar)) {
11305 // enter quoted field
11306 insideQuotedField = true;
11307 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11308 }
11309 }
11310 if (!insideQuotedField) {
11311 if (currentChar === delimiter) {
11312 // move to next column
11313 column++;
11314 ensureDataExists();
11315 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11316 }
11317 else if (isNewline(currentChar)) {
11318 // move to next row
11319 column = 0;
11320 row++;
11321 ensureDataExists();
11322 if (currentChar === '\r' && nextChar === '\n') {
11323 // skip over second newline character if it exists
11324 position++;
11325 }
11326 return out_row_1 = row, out_column_1 = column, out_position_1 = position, "continue";
11327 }
11328 }
11329 // add current character to current column
11330 data[row][column] += currentChar;
11331 out_row_1 = row;
11332 out_column_1 = column;
11333 out_position_1 = position;
11334 };
11335 var out_row_1, out_column_1, out_position_1;
11336 // iterate over each character, keep track of current row and column (of the returned array)
11337 for (var row = 0, column = 0, position = 0; position < strData.length; position++) {
11338 _loop_1(row, column, position);
11339 row = out_row_1;
11340 column = out_column_1;
11341 position = out_position_1;
11342 }
11343 return data;
11344}
11345
11346
11347/***/ }),
11348/* 45 */
11349/***/ (function(module, __webpack_exports__, __webpack_require__) {
11350
11351"use strict";
11352__webpack_require__.r(__webpack_exports__);
11353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _; });
11354/* harmony import */ var _general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46);
11355/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47);
11356/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
11357/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
11358/* harmony import */ var _csv__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44);
11359/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
11360/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
11361/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21);
11362/* harmony import */ var _function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15);
11363/* harmony import */ var _fuzzyMatch__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(49);
11364/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(7);
11365/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50);
11366/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(51);
11367/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(27);
11368/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(52);
11369/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29);
11370/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(13);
11371/* harmony import */ var _rowNode__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53);
11372/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(54);
11373/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(26);
11374/**
11375 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11376 * @version v25.3.0
11377 * @link http://www.ag-grid.com/
11378 * @license MIT
11379 */
11380var __assign = (undefined && undefined.__assign) || function () {
11381 __assign = Object.assign || function(t) {
11382 for (var s, i = 1, n = arguments.length; i < n; i++) {
11383 s = arguments[i];
11384 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11385 t[p] = s[p];
11386 }
11387 return t;
11388 };
11389 return __assign.apply(this, arguments);
11390};
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411var utils = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, _general__WEBPACK_IMPORTED_MODULE_0__), _aria__WEBPACK_IMPORTED_MODULE_1__), _array__WEBPACK_IMPORTED_MODULE_2__), _browser__WEBPACK_IMPORTED_MODULE_3__), _csv__WEBPACK_IMPORTED_MODULE_4__), _date__WEBPACK_IMPORTED_MODULE_5__), _dom__WEBPACK_IMPORTED_MODULE_6__), _event__WEBPACK_IMPORTED_MODULE_7__), _function__WEBPACK_IMPORTED_MODULE_8__), _fuzzyMatch__WEBPACK_IMPORTED_MODULE_9__), _generic__WEBPACK_IMPORTED_MODULE_10__), _icon__WEBPACK_IMPORTED_MODULE_11__), _keyboard__WEBPACK_IMPORTED_MODULE_12__), _map__WEBPACK_IMPORTED_MODULE_13__), _mouse__WEBPACK_IMPORTED_MODULE_14__), _number__WEBPACK_IMPORTED_MODULE_15__), _object__WEBPACK_IMPORTED_MODULE_16__), _rowNode__WEBPACK_IMPORTED_MODULE_17__), _set__WEBPACK_IMPORTED_MODULE_18__), _string__WEBPACK_IMPORTED_MODULE_19__);
11412var _ = utils;
11413
11414
11415/***/ }),
11416/* 46 */
11417/***/ (function(module, __webpack_exports__, __webpack_require__) {
11418
11419"use strict";
11420__webpack_require__.r(__webpack_exports__);
11421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNameOfClass", function() { return getNameOfClass; });
11422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findLineByLeastSquares", function() { return findLineByLeastSquares; });
11423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cssStyleObjectToMarkup", function() { return cssStyleObjectToMarkup; });
11424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "message", function() { return message; });
11425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindCellRendererToHtmlElement", function() { return bindCellRendererToHtmlElement; });
11426/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
11427/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
11428/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
11429/**
11430 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11431 * @version v25.3.0
11432 * @link http://www.ag-grid.com/
11433 * @license MIT
11434 */
11435
11436
11437
11438/** @deprecated */
11439function getNameOfClass(theClass) {
11440 var funcNameRegex = /function (.{1,})\(/;
11441 var funcAsString = theClass.toString();
11442 var results = funcNameRegex.exec(funcAsString);
11443 return results && results.length > 1 ? results[1] : "";
11444}
11445function findLineByLeastSquares(values) {
11446 var len = values.length;
11447 var maxDecimals = 0;
11448 if (len <= 1) {
11449 return values;
11450 }
11451 for (var i = 0; i < values.length; i++) {
11452 var value = values[i];
11453 if (Math.floor(value) === value) {
11454 continue;
11455 }
11456 maxDecimals = Math.max(maxDecimals, value.toString().split('.')[1].length);
11457 }
11458 var sum_x = 0;
11459 var sum_y = 0;
11460 var sum_xy = 0;
11461 var sum_xx = 0;
11462 var y = 0;
11463 for (var x = 0; x < len; x++) {
11464 y = values[x];
11465 sum_x += x;
11466 sum_y += y;
11467 sum_xx += x * x;
11468 sum_xy += x * y;
11469 }
11470 var m = (len * sum_xy - sum_x * sum_y) / (len * sum_xx - sum_x * sum_x);
11471 var b = (sum_y / len) - (m * sum_x) / len;
11472 var result = [];
11473 for (var x = 0; x <= len; x++) {
11474 result.push(parseFloat((x * m + b).toFixed(maxDecimals)));
11475 }
11476 return result;
11477}
11478/**
11479 * Converts a CSS object into string
11480 * @param {Object} stylesToUse an object eg: {color: 'black', top: '25px'}
11481 * @return {string} A string like "color: black; top: 25px;" for html
11482 */
11483function cssStyleObjectToMarkup(stylesToUse) {
11484 if (!stylesToUse) {
11485 return '';
11486 }
11487 var resParts = [];
11488 Object(_object__WEBPACK_IMPORTED_MODULE_2__["iterateObject"])(stylesToUse, function (styleKey, styleValue) {
11489 var styleKeyDashed = Object(_string__WEBPACK_IMPORTED_MODULE_1__["camelCaseToHyphen"])(styleKey);
11490 resParts.push(styleKeyDashed + ": " + styleValue + ";");
11491 });
11492 return resParts.join(' ');
11493}
11494/**
11495 * Displays a message to the browser. this is useful in iPad, where you can't easily see the console.
11496 * so the javascript code can use this to give feedback. this is NOT intended to be called in production.
11497 * it is intended the AG Grid developer calls this to troubleshoot, but then takes out the calls before
11498 * checking in.
11499 * @param {string} msg
11500 */
11501function message(msg) {
11502 var eMessage = document.createElement('div');
11503 var eBox = document.querySelector('#__ag__message');
11504 eMessage.innerHTML = msg;
11505 if (!eBox) {
11506 var template = "<div id=\"__ag__message\" style=\"display: inline-block; position: absolute; top: 0px; left: 0px; color: white; background-color: black; z-index: 20; padding: 2px; border: 1px solid darkred; height: 200px; overflow-y: auto;\"></div>";
11507 eBox = Object(_dom__WEBPACK_IMPORTED_MODULE_0__["loadTemplate"])(template);
11508 if (document.body) {
11509 document.body.appendChild(eBox);
11510 }
11511 }
11512 eBox.insertBefore(eMessage, eBox.children[0]);
11513}
11514/**
11515 * cell renderers are used in a few places. they bind to dom slightly differently to other cell renderes as they
11516 * can return back strings (instead of html elemnt) in the getGui() method. common code placed here to handle that.
11517 * @param {AgPromise<ICellRendererComp>} cellRendererPromise
11518 * @param {HTMLElement} eTarget
11519 */
11520function bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {
11521 cellRendererPromise.then(function (cellRenderer) {
11522 var gui = cellRenderer.getGui();
11523 if (gui != null) {
11524 if (typeof gui === 'object') {
11525 eTarget.appendChild(gui);
11526 }
11527 else {
11528 eTarget.innerHTML = gui;
11529 }
11530 }
11531 });
11532}
11533
11534
11535/***/ }),
11536/* 47 */
11537/***/ (function(module, __webpack_exports__, __webpack_require__) {
11538
11539"use strict";
11540__webpack_require__.r(__webpack_exports__);
11541/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaSortState", function() { return getAriaSortState; });
11542/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaLevel", function() { return getAriaLevel; });
11543/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaPosInSet", function() { return getAriaPosInSet; });
11544/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaDescribedBy", function() { return getAriaDescribedBy; });
11545/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLabel", function() { return setAriaLabel; });
11546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLabelledBy", function() { return setAriaLabelledBy; });
11547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDescribedBy", function() { return setAriaDescribedBy; });
11548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLevel", function() { return setAriaLevel; });
11549/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDisabled", function() { return setAriaDisabled; });
11550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaExpanded", function() { return setAriaExpanded; });
11551/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAriaExpanded", function() { return removeAriaExpanded; });
11552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSetSize", function() { return setAriaSetSize; });
11553/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaPosInSet", function() { return setAriaPosInSet; });
11554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaMultiSelectable", function() { return setAriaMultiSelectable; });
11555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRowCount", function() { return setAriaRowCount; });
11556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRowIndex", function() { return setAriaRowIndex; });
11557/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColCount", function() { return setAriaColCount; });
11558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColIndex", function() { return setAriaColIndex; });
11559/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColSpan", function() { return setAriaColSpan; });
11560/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSort", function() { return setAriaSort; });
11561/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAriaSort", function() { return removeAriaSort; });
11562/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSelected", function() { return setAriaSelected; });
11563/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaChecked", function() { return setAriaChecked; });
11564/**
11565 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11566 * @version v25.3.0
11567 * @link http://www.ag-grid.com/
11568 * @license MIT
11569 */
11570// ARIA HELPER FUNCTIONS
11571function setAriaAttribute(element, attribute, value) {
11572 element.setAttribute(ariaAttributeName(attribute), value.toString());
11573}
11574function removeAriaAttribute(element, attribute) {
11575 element.removeAttribute(ariaAttributeName(attribute));
11576}
11577function ariaAttributeName(attribute) {
11578 return "aria-" + attribute;
11579}
11580function getAriaSortState(column) {
11581 var sort;
11582 if (column.isSortAscending()) {
11583 sort = 'ascending';
11584 }
11585 else if (column.isSortDescending()) {
11586 sort = 'descending';
11587 }
11588 else {
11589 sort = 'none';
11590 }
11591 return sort;
11592}
11593// ARIA ATTRIBUTE GETTERS
11594function getAriaLevel(element) {
11595 return parseInt(element.getAttribute('aria-level'), 10);
11596}
11597function getAriaPosInSet(element) {
11598 return parseInt(element.getAttribute('aria-posinset'), 10);
11599}
11600function getAriaDescribedBy(element) {
11601 return element.getAttribute('aria-describedby') || '';
11602}
11603// ARIA ATTRIBUTE SETTERS
11604function setAriaLabel(element, label) {
11605 setAriaAttribute(element, 'label', label);
11606}
11607function setAriaLabelledBy(element, labelledBy) {
11608 setAriaAttribute(element, 'labelledby', labelledBy);
11609}
11610function setAriaDescribedBy(element, describedby) {
11611 setAriaAttribute(element, 'describedby', describedby);
11612}
11613function setAriaLevel(element, level) {
11614 setAriaAttribute(element, 'level', level);
11615}
11616function setAriaDisabled(element, disabled) {
11617 setAriaAttribute(element, 'disabled', disabled);
11618}
11619function setAriaExpanded(element, expanded) {
11620 setAriaAttribute(element, 'expanded', expanded);
11621}
11622function removeAriaExpanded(element) {
11623 removeAriaAttribute(element, 'expanded');
11624}
11625function setAriaSetSize(element, setsize) {
11626 setAriaAttribute(element, 'setsize', setsize);
11627}
11628function setAriaPosInSet(element, position) {
11629 setAriaAttribute(element, 'posinset', position);
11630}
11631function setAriaMultiSelectable(element, multiSelectable) {
11632 setAriaAttribute(element, 'multiselectable', multiSelectable);
11633}
11634function setAriaRowCount(element, rowCount) {
11635 setAriaAttribute(element, 'rowcount', rowCount);
11636}
11637function setAriaRowIndex(element, rowIndex) {
11638 setAriaAttribute(element, 'rowindex', rowIndex);
11639}
11640function setAriaColCount(element, colCount) {
11641 setAriaAttribute(element, 'colcount', colCount);
11642}
11643function setAriaColIndex(element, colIndex) {
11644 setAriaAttribute(element, 'colindex', colIndex);
11645}
11646function setAriaColSpan(element, colSpan) {
11647 setAriaAttribute(element, 'colspan', colSpan);
11648}
11649function setAriaSort(element, sort) {
11650 setAriaAttribute(element, 'sort', sort);
11651}
11652function removeAriaSort(element) {
11653 removeAriaAttribute(element, 'sort');
11654}
11655function setAriaSelected(element, selected) {
11656 var attributeName = 'selected';
11657 if (selected) {
11658 setAriaAttribute(element, attributeName, selected);
11659 }
11660 else {
11661 removeAriaAttribute(element, attributeName);
11662 }
11663}
11664function setAriaChecked(element, checked) {
11665 setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);
11666}
11667
11668
11669/***/ }),
11670/* 48 */
11671/***/ (function(module, __webpack_exports__, __webpack_require__) {
11672
11673"use strict";
11674__webpack_require__.r(__webpack_exports__);
11675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serialiseDate", function() { return serialiseDate; });
11676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDateTimeFromString", function() { return parseDateTimeFromString; });
11677/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29);
11678/**
11679 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11680 * @version v25.3.0
11681 * @link http://www.ag-grid.com/
11682 * @license MIT
11683 */
11684
11685/**
11686 * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.
11687 * An alternative separator can be provided to be used instead of hyphens.
11688 * @param date The date to serialise
11689 * @param includeTime Whether to include the time in the serialised string
11690 * @param separator The separator to use between date parts
11691 */
11692function serialiseDate(date, includeTime, separator) {
11693 if (includeTime === void 0) { includeTime = true; }
11694 if (separator === void 0) { separator = '-'; }
11695 if (!date) {
11696 return null;
11697 }
11698 var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(part, 2); }).join(separator);
11699 if (includeTime) {
11700 serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(part, 2); }).join(':');
11701 }
11702 return serialised;
11703}
11704/**
11705 * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`
11706 */
11707function parseDateTimeFromString(value) {
11708 if (!value) {
11709 return null;
11710 }
11711 var _a = value.split(' '), dateStr = _a[0], timeStr = _a[1];
11712 if (!dateStr) {
11713 return null;
11714 }
11715 var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });
11716 if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {
11717 return null;
11718 }
11719 var year = fields[0], month = fields[1], day = fields[2];
11720 var date = new Date(year, month - 1, day);
11721 if (date.getFullYear() !== year ||
11722 date.getMonth() !== month - 1 ||
11723 date.getDate() !== day) {
11724 // date was not parsed as expected so must have been invalid
11725 return null;
11726 }
11727 if (!timeStr || timeStr === '00:00:00') {
11728 return date;
11729 }
11730 var _b = timeStr.split(':').map(function (part) { return parseInt(part, 10); }), hours = _b[0], minutes = _b[1], seconds = _b[2];
11731 if (hours >= 0 && hours < 24) {
11732 date.setHours(hours);
11733 }
11734 if (minutes >= 0 && minutes < 60) {
11735 date.setMinutes(minutes);
11736 }
11737 if (seconds >= 0 && seconds < 60) {
11738 date.setSeconds(seconds);
11739 }
11740 return date;
11741}
11742
11743
11744/***/ }),
11745/* 49 */
11746/***/ (function(module, __webpack_exports__, __webpack_require__) {
11747
11748"use strict";
11749__webpack_require__.r(__webpack_exports__);
11750/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fuzzyCheckStrings", function() { return fuzzyCheckStrings; });
11751/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fuzzySuggestions", function() { return fuzzySuggestions; });
11752/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get_bigrams", function() { return get_bigrams; });
11753/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "string_distances", function() { return string_distances; });
11754/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "string_weighted_distances", function() { return string_weighted_distances; });
11755/**
11756 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11757 * @version v25.3.0
11758 * @link http://www.ag-grid.com/
11759 * @license MIT
11760 */
11761function fuzzyCheckStrings(inputValues, validValues, allSuggestions) {
11762 var fuzzyMatches = {};
11763 var invalidInputs = inputValues.filter(function (inputValue) {
11764 return !validValues.some(function (validValue) { return validValue === inputValue; });
11765 });
11766 if (invalidInputs.length > 0) {
11767 invalidInputs.forEach(function (invalidInput) {
11768 return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions);
11769 });
11770 }
11771 return fuzzyMatches;
11772}
11773/**
11774 *
11775 * @param {String} inputValue The value to be compared against a list of strings
11776 * @param allSuggestions The list of strings to be compared against
11777 * @param hideIrrelevant By default, fuzzy suggestions will just sort the allSuggestions list, set this to true
11778 * to filter out the irrelevant values
11779 * @param weighted Set this to true, to make letters matched in the order they were typed have priority in the results.
11780 */
11781function fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, weighted) {
11782 var search = weighted ? string_weighted_distances : string_distances;
11783 var thisSuggestions = allSuggestions.map(function (text) { return ({
11784 value: text,
11785 relevance: search(inputValue.toLowerCase(), text.toLocaleLowerCase())
11786 }); });
11787 thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });
11788 if (hideIrrelevant) {
11789 thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });
11790 }
11791 return thisSuggestions.map(function (suggestion) { return suggestion.value; });
11792}
11793/**
11794 * Algorithm to do fuzzy search
11795 * from https://stackoverflow.com/questions/23305000/javascript-fuzzy-search-that-makes-sense
11796 * @param {string} from
11797 * @return {[]}
11798 */
11799function get_bigrams(from) {
11800 var s = from.toLowerCase();
11801 var v = new Array(s.length - 1);
11802 var i;
11803 var j;
11804 var ref;
11805 for (i = j = 0, ref = v.length; j <= ref; i = j += 1) {
11806 v[i] = s.slice(i, i + 2);
11807 }
11808 return v;
11809}
11810function string_distances(str1, str2) {
11811 if (str1.length === 0 && str2.length === 0) {
11812 return 0;
11813 }
11814 var pairs1 = get_bigrams(str1);
11815 var pairs2 = get_bigrams(str2);
11816 var union = pairs1.length + pairs2.length;
11817 var hit_count = 0;
11818 var j;
11819 var len;
11820 for (j = 0, len = pairs1.length; j < len; j++) {
11821 var x = pairs1[j];
11822 var k = void 0;
11823 var len1 = void 0;
11824 for (k = 0, len1 = pairs2.length; k < len1; k++) {
11825 var y = pairs2[k];
11826 if (x === y) {
11827 hit_count++;
11828 }
11829 }
11830 }
11831 return hit_count > 0 ? (2 * hit_count) / union : 0;
11832}
11833function string_weighted_distances(str1, str2) {
11834 var a = str1.replace(/\s/g, '');
11835 var b = str2.replace(/\s/g, '');
11836 var weight = 0;
11837 var lastIndex = 0;
11838 for (var i = 0; i < a.length; i++) {
11839 var idx = b.indexOf(a[i], lastIndex);
11840 if (idx === -1) {
11841 continue;
11842 }
11843 lastIndex = idx;
11844 weight += (100 - (lastIndex * 100 / 10000) * 100);
11845 }
11846 return weight;
11847}
11848
11849
11850/***/ }),
11851/* 50 */
11852/***/ (function(module, __webpack_exports__, __webpack_require__) {
11853
11854"use strict";
11855__webpack_require__.r(__webpack_exports__);
11856/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iconNameClassMap", function() { return iconNameClassMap; });
11857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIcon", function() { return createIcon; });
11858/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIconNoSpan", function() { return createIconNoSpan; });
11859/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
11860/**
11861 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
11862 * @version v25.3.0
11863 * @link http://www.ag-grid.com/
11864 * @license MIT
11865 */
11866
11867//
11868// IMPORTANT NOTE!
11869//
11870// If you change the list below, copy/paste the new content into the docs page javascript-grid-icons
11871//
11872var iconNameClassMap = {
11873 // header column group shown when expanded (click to contract)
11874 columnGroupOpened: 'expanded',
11875 // header column group shown when contracted (click to expand)
11876 columnGroupClosed: 'contracted',
11877 // tool panel column group contracted (click to expand)
11878 columnSelectClosed: 'tree-closed',
11879 // tool panel column group expanded (click to contract)
11880 columnSelectOpen: 'tree-open',
11881 // column tool panel header expand/collapse all button, shown when some children are expanded and
11882 // others are collapsed
11883 columnSelectIndeterminate: 'tree-indeterminate',
11884 // shown on ghost icon while dragging column to the side of the grid to pin
11885 columnMovePin: 'pin',
11886 // shown on ghost icon while dragging over part of the page that is not a drop zone
11887 columnMoveHide: 'eye-slash',
11888 // shown on ghost icon while dragging columns to reorder
11889 columnMoveMove: 'arrows',
11890 // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling
11891 columnMoveLeft: 'left',
11892 // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling
11893 columnMoveRight: 'right',
11894 // shown on ghost icon while dragging over Row Groups drop zone
11895 columnMoveGroup: 'group',
11896 // shown on ghost icon while dragging over Values drop zone
11897 columnMoveValue: 'aggregation',
11898 // shown on ghost icon while dragging over pivot drop zone
11899 columnMovePivot: 'pivot',
11900 // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.
11901 // string column over aggregation drop zone
11902 dropNotAllowed: 'not-allowed',
11903 // shown on row group when contracted (click to expand)
11904 groupContracted: 'tree-closed',
11905 // shown on row group when expanded (click to contract)
11906 groupExpanded: 'tree-open',
11907 // context menu chart item
11908 chart: 'chart',
11909 // chart window title bar
11910 close: 'cross',
11911 // X (remove) on column 'pill' after adding it to a drop zone list
11912 cancel: 'cancel',
11913 // indicates the currently active pin state in the "Pin column" sub-menu of the column menu
11914 check: 'tick',
11915 // "go to first" button in pagination controls
11916 first: 'first',
11917 // "go to previous" button in pagination controls
11918 previous: 'previous',
11919 // "go to next" button in pagination controls
11920 next: 'next',
11921 // "go to last" button in pagination controls
11922 last: 'last',
11923 // shown on top right of chart when chart is linked to range data (click to unlink)
11924 linked: 'linked',
11925 // shown on top right of chart when chart is not linked to range data (click to link)
11926 unlinked: 'unlinked',
11927 // "Choose colour" button on chart settings tab
11928 colorPicker: 'color-picker',
11929 // rotating spinner shown by the loading cell renderer
11930 groupLoading: 'loading',
11931 // button to launch enterprise column menu
11932 menu: 'menu',
11933 // filter tool panel tab
11934 filter: 'filter',
11935 // column tool panel tab
11936 columns: 'columns',
11937 // button in chart regular size window title bar (click to maximise)
11938 maximize: 'maximize',
11939 // button in chart maximised window title bar (click to make regular size)
11940 minimize: 'minimize',
11941 // "Pin column" item in column header menu
11942 menuPin: 'pin',
11943 // "Value aggregation" column menu item (shown on numeric columns when grouping is active)"
11944 menuValue: 'aggregation',
11945 // "Group by {column-name}" item in column header menu
11946 menuAddRowGroup: 'group',
11947 // "Un-Group by {column-name}" item in column header menu
11948 menuRemoveRowGroup: 'group',
11949 // context menu copy item
11950 clipboardCopy: 'copy',
11951 // context menu paste item
11952 clipboardPaste: 'paste',
11953 // identifies the pivot drop zone
11954 pivotPanel: 'pivot',
11955 // "Row groups" drop zone in column tool panel
11956 rowGroupPanel: 'group',
11957 // columns tool panel Values drop zone
11958 valuePanel: 'aggregation',
11959 // drag handle used to pick up draggable columns
11960 columnDrag: 'grip',
11961 // drag handle used to pick up draggable rows
11962 rowDrag: 'grip',
11963 // context menu export item
11964 save: 'save',
11965 // csv export
11966 csvExport: 'csv',
11967 // excel export,
11968 excelExport: 'excel',
11969 // icon on dropdown editors
11970 smallDown: 'small-down',
11971 // version of small-right used in RTL mode
11972 smallLeft: 'small-left',
11973 // separater between column 'pills' when you add multiple columns to the header drop zone
11974 smallRight: 'small-right',
11975 smallUp: 'small-up',
11976 // show on column header when column is sorted ascending
11977 sortAscending: 'asc',
11978 // show on column header when column is sorted descending
11979 sortDescending: 'desc',
11980 // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true
11981 sortUnSort: 'none'
11982};
11983/**
11984 * If icon provided, use this (either a string, or a function callback).
11985 * if not, then use the default icon from the theme
11986 * @param {string} iconName
11987 * @param {GridOptionsWrapper} gridOptionsWrapper
11988 * @param {Column | null} [column]
11989 * @returns {HTMLElement}
11990 */
11991function createIcon(iconName, gridOptionsWrapper, column) {
11992 var iconContents = createIconNoSpan(iconName, gridOptionsWrapper, column);
11993 if (iconContents && iconContents.className.indexOf('ag-icon') > -1) {
11994 return iconContents;
11995 }
11996 var eResult = document.createElement('span');
11997 eResult.appendChild(iconContents);
11998 return eResult;
11999}
12000function createIconNoSpan(iconName, gridOptionsWrapper, column, forceCreate) {
12001 var userProvidedIcon = null;
12002 // check col for icon first
12003 var icons = column && column.getColDef().icons;
12004 if (icons) {
12005 userProvidedIcon = icons[iconName];
12006 }
12007 // if not in col, try grid options
12008 if (gridOptionsWrapper && !userProvidedIcon) {
12009 var optionsIcons = gridOptionsWrapper.getIcons();
12010 if (optionsIcons) {
12011 userProvidedIcon = optionsIcons[iconName];
12012 }
12013 }
12014 // now if user provided, use it
12015 if (userProvidedIcon) {
12016 var rendererResult = void 0;
12017 if (typeof userProvidedIcon === 'function') {
12018 rendererResult = userProvidedIcon();
12019 }
12020 else if (typeof userProvidedIcon === 'string') {
12021 rendererResult = userProvidedIcon;
12022 }
12023 else {
12024 throw new Error('icon from grid options needs to be a string or a function');
12025 }
12026 if (typeof rendererResult === 'string') {
12027 return Object(_dom__WEBPACK_IMPORTED_MODULE_0__["loadTemplate"])(rendererResult);
12028 }
12029 if (Object(_dom__WEBPACK_IMPORTED_MODULE_0__["isNodeOrElement"])(rendererResult)) {
12030 return rendererResult;
12031 }
12032 console.warn('AG Grid: iconRenderer should return back a string or a dom object');
12033 }
12034 else {
12035 var span = document.createElement('span');
12036 var cssClass = iconNameClassMap[iconName];
12037 if (!cssClass) {
12038 if (!forceCreate) {
12039 console.warn("AG Grid: Did not find icon " + iconName);
12040 cssClass = '';
12041 }
12042 else {
12043 cssClass = iconName;
12044 }
12045 }
12046 span.setAttribute('class', "ag-icon ag-icon-" + cssClass);
12047 span.setAttribute('unselectable', 'on');
12048 span.setAttribute('role', 'presentation');
12049 return span;
12050 }
12051}
12052
12053
12054/***/ }),
12055/* 51 */
12056/***/ (function(module, __webpack_exports__, __webpack_require__) {
12057
12058"use strict";
12059__webpack_require__.r(__webpack_exports__);
12060/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isKeyPressed", function() { return isKeyPressed; });
12061/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventFromPrintableCharacter", function() { return isEventFromPrintableCharacter; });
12062/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUserSuppressingKeyboardEvent", function() { return isUserSuppressingKeyboardEvent; });
12063/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUserSuppressingHeaderKeyboardEvent", function() { return isUserSuppressingHeaderKeyboardEvent; });
12064/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34);
12065/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
12066/**
12067 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12068 * @version v25.3.0
12069 * @link http://www.ag-grid.com/
12070 * @license MIT
12071 */
12072
12073
12074var NUMPAD_DEL_NUMLOCK_ON_KEY = 'Del';
12075var NUMPAD_DEL_NUMLOCK_ON_CHARCODE = 46;
12076function isKeyPressed(event, keyToCheck) {
12077 return (event.which || event.keyCode) === keyToCheck;
12078}
12079function isEventFromPrintableCharacter(event) {
12080 // no allowed printable chars have alt or ctrl key combinations
12081 if (event.altKey || event.ctrlKey || event.metaKey) {
12082 return false;
12083 }
12084 // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.
12085 // non-printable characters have names, eg 'Enter' or 'Backspace'.
12086 var printableCharacter = event.key.length === 1;
12087 // IE11 & Edge treat the numpad del key differently - with numlock on we get "Del" for key,
12088 // so this addition checks if its IE11/Edge and handles that specific case the same was as all other browsers
12089 var numpadDelWithNumlockOnForEdgeOrIe = isNumpadDelWithNumlockOnForEdgeOrIe(event);
12090 return printableCharacter || numpadDelWithNumlockOnForEdgeOrIe;
12091}
12092/**
12093 * Allows user to tell the grid to skip specific keyboard events
12094 * @param {GridOptionsWrapper} gridOptionsWrapper
12095 * @param {KeyboardEvent} keyboardEvent
12096 * @param {RowNode} rowNode
12097 * @param {Column} column
12098 * @param {boolean} editing
12099 * @returns {boolean}
12100 */
12101function isUserSuppressingKeyboardEvent(gridOptionsWrapper, keyboardEvent, rowNode, column, editing) {
12102 var gridOptionsFunc = gridOptionsWrapper.getSuppressKeyboardEventFunc();
12103 var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;
12104 // if no callbacks provided by user, then do nothing
12105 if (!gridOptionsFunc && !colDefFunc) {
12106 return false;
12107 }
12108 var params = {
12109 event: keyboardEvent,
12110 editing: editing,
12111 column: column,
12112 api: gridOptionsWrapper.getApi(),
12113 node: rowNode,
12114 data: rowNode.data,
12115 colDef: column.getColDef(),
12116 context: gridOptionsWrapper.getContext(),
12117 columnApi: gridOptionsWrapper.getColumnApi()
12118 };
12119 // colDef get first preference on suppressing events
12120 if (colDefFunc) {
12121 var colDefFuncResult = colDefFunc(params);
12122 // if colDef func suppressed, then return now, no need to call gridOption func
12123 if (colDefFuncResult) {
12124 return true;
12125 }
12126 }
12127 if (gridOptionsFunc) {
12128 // if gridOption func, return the result
12129 return gridOptionsFunc(params);
12130 }
12131 // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions
12132 return false;
12133}
12134function isUserSuppressingHeaderKeyboardEvent(gridOptionsWrapper, keyboardEvent, headerRowIndex, column) {
12135 var colDef = column.getDefinition();
12136 var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;
12137 if (!Object(_generic__WEBPACK_IMPORTED_MODULE_1__["exists"])(colDefFunc)) {
12138 return false;
12139 }
12140 var params = {
12141 api: gridOptionsWrapper.getApi(),
12142 columnApi: gridOptionsWrapper.getColumnApi(),
12143 context: gridOptionsWrapper.getContext(),
12144 colDef: colDef,
12145 column: column,
12146 headerRowIndex: headerRowIndex,
12147 event: keyboardEvent
12148 };
12149 return !!colDefFunc(params);
12150}
12151function isNumpadDelWithNumlockOnForEdgeOrIe(event) {
12152 return (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserEdge"])() || Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserIE"])()) &&
12153 event.key === NUMPAD_DEL_NUMLOCK_ON_KEY &&
12154 event.charCode === NUMPAD_DEL_NUMLOCK_ON_CHARCODE;
12155}
12156
12157
12158/***/ }),
12159/* 52 */
12160/***/ (function(module, __webpack_exports__, __webpack_require__) {
12161
12162"use strict";
12163__webpack_require__.r(__webpack_exports__);
12164/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normalizeWheel", function() { return normalizeWheel; });
12165/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isLeftClick", function() { return isLeftClick; });
12166/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areEventsNear", function() { return areEventsNear; });
12167/**
12168 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12169 * @version v25.3.0
12170 * @link http://www.ag-grid.com/
12171 * @license MIT
12172 */
12173/**
12174 * @deprecated
12175 * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is
12176 * complicated, thus this doc is long and (hopefully) detailed enough to answer
12177 * your questions.
12178 *
12179 * If you need to react to the mouse wheel in a predictable way, this code is
12180 * like your bestest friend. * hugs *
12181 *
12182 * As of today, there are 4 DOM event types you can listen to:
12183 *
12184 * 'wheel' -- Chrome(31+), FF(17+), IE(9+)
12185 * 'mousewheel' -- Chrome, IE(6+), Opera, Safari
12186 * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!
12187 * 'DOMMouseScroll' -- FF(0.9.7+) since 2003
12188 *
12189 * So what to do? The is the best:
12190 *
12191 * normalizeWheel.getEventType();
12192 *
12193 * In your event callback, use this code to get sane interpretation of the
12194 * deltas. This code will return an object with properties:
12195 *
12196 * spinX -- normalized spin speed (use for zoom) - x plane
12197 * spinY -- " - y plane
12198 * pixelX -- normalized distance (to pixels) - x plane
12199 * pixelY -- " - y plane
12200 *
12201 * Wheel values are provided by the browser assuming you are using the wheel to
12202 * scroll a web page by a number of lines or pixels (or pages). Values can vary
12203 * significantly on different platforms and browsers, forgetting that you can
12204 * scroll at different speeds. Some devices (like trackpads) emit more events
12205 * at smaller increments with fine granularity, and some emit massive jumps with
12206 * linear speed or acceleration.
12207 *
12208 * This code does its best to normalize the deltas for you:
12209 *
12210 * - spin is trying to normalize how far the wheel was spun (or trackpad
12211 * dragged). This is super useful for zoom support where you want to
12212 * throw away the chunky scroll steps on the PC and make those equal to
12213 * the slow and smooth tiny steps on the Mac. Key data: This code tries to
12214 * resolve a single slow step on a wheel to 1.
12215 *
12216 * - pixel is normalizing the desired scroll delta in pixel units. You'll
12217 * get the crazy differences between browsers, but at least it'll be in
12218 * pixels!
12219 *
12220 * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This
12221 * should translate to positive value zooming IN, negative zooming OUT.
12222 * This matches the newer 'wheel' event.
12223 *
12224 * Why are there spinX, spinY (or pixels)?
12225 *
12226 * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn
12227 * with a mouse. It results in side-scrolling in the browser by default.
12228 *
12229 * - spinY is what you expect -- it's the classic axis of a mouse wheel.
12230 *
12231 * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and
12232 * probably is by browsers in conjunction with fancy 3D controllers .. but
12233 * you know.
12234 *
12235 * Implementation info:
12236 *
12237 * Examples of 'wheel' event if you scroll slowly (down) by one step with an
12238 * average mouse:
12239 *
12240 * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)
12241 * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)
12242 * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)
12243 * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)
12244 * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)
12245 *
12246 * On the trackpad:
12247 *
12248 * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)
12249 * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)
12250 *
12251 * On other/older browsers.. it's more complicated as there can be multiple and
12252 * also missing delta values.
12253 *
12254 * The 'wheel' event is more standard:
12255 *
12256 * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
12257 *
12258 * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and
12259 * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain
12260 * backward compatibility with older events. Those other values help us
12261 * better normalize spin speed. Example of what the browsers provide:
12262 *
12263 * | event.wheelDelta | event.detail
12264 * ------------------+------------------+--------------
12265 * Safari v5/OS X | -120 | 0
12266 * Safari v5/Win7 | -120 | 0
12267 * Chrome v17/OS X | -120 | 0
12268 * Chrome v17/Win7 | -120 | 0
12269 * IE9/Win7 | -120 | undefined
12270 * Firefox v4/OS X | undefined | 1
12271 * Firefox v4/Win7 | undefined | 3
12272 *
12273 * from: https://github.com/facebook/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js
12274 * @param {any} event
12275 * @return {any}
12276 */
12277function normalizeWheel(event) {
12278 var PIXEL_STEP = 10;
12279 var LINE_HEIGHT = 40;
12280 var PAGE_HEIGHT = 800;
12281 // spinX, spinY
12282 var sX = 0;
12283 var sY = 0;
12284 // pixelX, pixelY
12285 var pX = 0;
12286 var pY = 0;
12287 // Legacy
12288 if ('detail' in event) {
12289 sY = event.detail;
12290 }
12291 if ('wheelDelta' in event) {
12292 sY = -event.wheelDelta / 120;
12293 }
12294 if ('wheelDeltaY' in event) {
12295 sY = -event.wheelDeltaY / 120;
12296 }
12297 if ('wheelDeltaX' in event) {
12298 sX = -event.wheelDeltaX / 120;
12299 }
12300 // side scrolling on FF with DOMMouseScroll
12301 if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {
12302 sX = sY;
12303 sY = 0;
12304 }
12305 pX = sX * PIXEL_STEP;
12306 pY = sY * PIXEL_STEP;
12307 if ('deltaY' in event) {
12308 pY = event.deltaY;
12309 }
12310 if ('deltaX' in event) {
12311 pX = event.deltaX;
12312 }
12313 if ((pX || pY) && event.deltaMode) {
12314 if (event.deltaMode == 1) { // delta in LINE units
12315 pX *= LINE_HEIGHT;
12316 pY *= LINE_HEIGHT;
12317 }
12318 else { // delta in PAGE units
12319 pX *= PAGE_HEIGHT;
12320 pY *= PAGE_HEIGHT;
12321 }
12322 }
12323 // Fall-back if spin cannot be determined
12324 if (pX && !sX) {
12325 sX = (pX < 1) ? -1 : 1;
12326 }
12327 if (pY && !sY) {
12328 sY = (pY < 1) ? -1 : 1;
12329 }
12330 return {
12331 spinX: sX,
12332 spinY: sY,
12333 pixelX: pX,
12334 pixelY: pY
12335 };
12336}
12337/**
12338 * @deprecated
12339 * Checks if event was issued by a left click
12340 * from https://stackoverflow.com/questions/3944122/detect-left-mouse-button-press
12341 * @param {MouseEvent} mouseEvent
12342 * @returns {boolean}
12343 */
12344function isLeftClick(mouseEvent) {
12345 if ('buttons' in mouseEvent) {
12346 return mouseEvent.buttons == 1;
12347 }
12348 var button = mouseEvent.which || mouseEvent.button;
12349 return button == 1;
12350}
12351/**
12352 * `True` if the event is close to the original event by X pixels either vertically or horizontally.
12353 * we only start dragging after X pixels so this allows us to know if we should start dragging yet.
12354 * @param {MouseEvent | TouchEvent} e1
12355 * @param {MouseEvent | TouchEvent} e2
12356 * @param {number} pixelCount
12357 * @returns {boolean}
12358 */
12359function areEventsNear(e1, e2, pixelCount) {
12360 // by default, we wait 4 pixels before starting the drag
12361 if (pixelCount === 0) {
12362 return false;
12363 }
12364 var diffX = Math.abs(e1.clientX - e2.clientX);
12365 var diffY = Math.abs(e1.clientY - e2.clientY);
12366 return Math.max(diffX, diffY) <= pixelCount;
12367}
12368
12369
12370/***/ }),
12371/* 53 */
12372/***/ (function(module, __webpack_exports__, __webpack_require__) {
12373
12374"use strict";
12375__webpack_require__.r(__webpack_exports__);
12376/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortRowNodesByOrder", function() { return sortRowNodesByOrder; });
12377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "traverseNodesWithKey", function() { return traverseNodesWithKey; });
12378/**
12379 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12380 * @version v25.3.0
12381 * @link http://www.ag-grid.com/
12382 * @license MIT
12383 */
12384/**
12385 * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.
12386 * when in ClientSideNodeManager we always have indexes (as this sorts the items the
12387 * user provided) but when in GroupStage, the nodes can contain filler nodes that
12388 * don't have order id's
12389 * @param {RowNode[]} rowNodes
12390 * @param {Object} rowNodeOrder
12391 */
12392function sortRowNodesByOrder(rowNodes, rowNodeOrder) {
12393 if (!rowNodes) {
12394 return;
12395 }
12396 var comparator = function (nodeA, nodeB) {
12397 var positionA = rowNodeOrder[nodeA.id];
12398 var positionB = rowNodeOrder[nodeB.id];
12399 var aHasIndex = positionA !== undefined;
12400 var bHasIndex = positionB !== undefined;
12401 var bothNodesAreUserNodes = aHasIndex && bHasIndex;
12402 var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;
12403 if (bothNodesAreUserNodes) {
12404 // when comparing two nodes the user has provided, they always
12405 // have indexes
12406 return positionA - positionB;
12407 }
12408 if (bothNodesAreFillerNodes) {
12409 // when comparing two filler nodes, we have no index to compare them
12410 // against, however we want this sorting to be deterministic, so that
12411 // the rows don't jump around as the user does delta updates. so we
12412 // want the same sort result. so we use the __objectId - which doesn't make sense
12413 // from a sorting point of view, but does give consistent behaviour between
12414 // calls. otherwise groups jump around as delta updates are done.
12415 // note: previously here we used nodeId, however this gave a strange order
12416 // as string ordering of numbers is wrong, so using id based on creation order
12417 // as least gives better looking order.
12418 return nodeA.__objectId - nodeB.__objectId;
12419 }
12420 if (aHasIndex) {
12421 return 1;
12422 }
12423 return -1;
12424 };
12425 // check if the list first needs sorting
12426 var rowNodeA;
12427 var rowNodeB;
12428 var atLeastOneOutOfOrder = false;
12429 for (var i = 0; i < rowNodes.length - 1; i++) {
12430 rowNodeA = rowNodes[i];
12431 rowNodeB = rowNodes[i + 1];
12432 if (comparator(rowNodeA, rowNodeB) > 0) {
12433 atLeastOneOutOfOrder = true;
12434 break;
12435 }
12436 }
12437 if (atLeastOneOutOfOrder) {
12438 rowNodes.sort(comparator);
12439 }
12440}
12441function traverseNodesWithKey(nodes, callback) {
12442 var keyParts = [];
12443 recursiveSearchNodes(nodes);
12444 function recursiveSearchNodes(currentNodes) {
12445 if (!currentNodes) {
12446 return;
12447 }
12448 currentNodes.forEach(function (node) {
12449 // also checking for children for tree data
12450 if (node.group || node.hasChildren()) {
12451 keyParts.push(node.key);
12452 var key = keyParts.join('|');
12453 callback(node, key);
12454 recursiveSearchNodes(node.childrenAfterGroup);
12455 keyParts.pop();
12456 }
12457 });
12458 }
12459}
12460
12461
12462/***/ }),
12463/* 54 */
12464/***/ (function(module, __webpack_exports__, __webpack_require__) {
12465
12466"use strict";
12467__webpack_require__.r(__webpack_exports__);
12468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToSet", function() { return convertToSet; });
12469/**
12470 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12471 * @version v25.3.0
12472 * @link http://www.ag-grid.com/
12473 * @license MIT
12474 */
12475function convertToSet(list) {
12476 var set = new Set();
12477 list.forEach(function (x) { return set.add(x); });
12478 return set;
12479}
12480
12481
12482/***/ }),
12483/* 55 */
12484/***/ (function(module, __webpack_exports__, __webpack_require__) {
12485
12486"use strict";
12487__webpack_require__.r(__webpack_exports__);
12488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return NumberSequence; });
12489/**
12490 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12491 * @version v25.3.0
12492 * @link http://www.ag-grid.com/
12493 * @license MIT
12494 */
12495var NumberSequence = /** @class */ (function () {
12496 function NumberSequence(initValue, step) {
12497 if (initValue === void 0) { initValue = 0; }
12498 if (step === void 0) { step = 1; }
12499 this.nextValue = initValue;
12500 this.step = step;
12501 }
12502 NumberSequence.prototype.next = function () {
12503 var valToReturn = this.nextValue;
12504 this.nextValue += this.step;
12505 return valToReturn;
12506 };
12507 NumberSequence.prototype.peek = function () {
12508 return this.nextValue;
12509 };
12510 NumberSequence.prototype.skip = function (count) {
12511 this.nextValue += count;
12512 };
12513 return NumberSequence;
12514}());
12515
12516
12517
12518/***/ }),
12519/* 56 */
12520/***/ (function(module, __webpack_exports__, __webpack_require__) {
12521
12522"use strict";
12523__webpack_require__.r(__webpack_exports__);
12524/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return AgPromiseStatus; });
12525/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return AgPromise; });
12526/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
12527/**
12528 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12529 * @version v25.3.0
12530 * @link http://www.ag-grid.com/
12531 * @license MIT
12532 */
12533
12534var AgPromiseStatus;
12535(function (AgPromiseStatus) {
12536 AgPromiseStatus[AgPromiseStatus["IN_PROGRESS"] = 0] = "IN_PROGRESS";
12537 AgPromiseStatus[AgPromiseStatus["RESOLVED"] = 1] = "RESOLVED";
12538})(AgPromiseStatus || (AgPromiseStatus = {}));
12539var AgPromise = /** @class */ (function () {
12540 function AgPromise(callback) {
12541 var _this = this;
12542 this.status = AgPromiseStatus.IN_PROGRESS;
12543 this.resolution = null;
12544 this.waiters = [];
12545 callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });
12546 }
12547 AgPromise.all = function (promises) {
12548 return new AgPromise(function (resolve) {
12549 var remainingToResolve = promises.length;
12550 var combinedValues = new Array(remainingToResolve);
12551 Object(_array__WEBPACK_IMPORTED_MODULE_0__["forEach"])(promises, function (promise, index) {
12552 promise.then(function (value) {
12553 combinedValues[index] = value;
12554 remainingToResolve--;
12555 if (remainingToResolve === 0) {
12556 resolve(combinedValues);
12557 }
12558 });
12559 });
12560 });
12561 };
12562 AgPromise.resolve = function (value) {
12563 if (value === void 0) { value = null; }
12564 return new AgPromise(function (resolve) { return resolve(value); });
12565 };
12566 AgPromise.prototype.then = function (func) {
12567 var _this = this;
12568 return new AgPromise(function (resolve) {
12569 if (_this.status === AgPromiseStatus.RESOLVED) {
12570 resolve(func(_this.resolution));
12571 }
12572 else {
12573 _this.waiters.push(function (value) { return resolve(func(value)); });
12574 }
12575 });
12576 };
12577 AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {
12578 return this.status === AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;
12579 };
12580 AgPromise.prototype.onDone = function (value) {
12581 this.status = AgPromiseStatus.RESOLVED;
12582 this.resolution = value;
12583 Object(_array__WEBPACK_IMPORTED_MODULE_0__["forEach"])(this.waiters, function (waiter) { return waiter(value); });
12584 };
12585 AgPromise.prototype.onReject = function (params) {
12586 console.warn('TBI');
12587 };
12588 return AgPromise;
12589}());
12590
12591
12592
12593/***/ }),
12594/* 57 */
12595/***/ (function(module, __webpack_exports__, __webpack_require__) {
12596
12597"use strict";
12598__webpack_require__.r(__webpack_exports__);
12599/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return Timer; });
12600/**
12601 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12602 * @version v25.3.0
12603 * @link http://www.ag-grid.com/
12604 * @license MIT
12605 */
12606/**
12607 * A Util Class only used when debugging for printing time to console
12608 */
12609var Timer = /** @class */ (function () {
12610 function Timer() {
12611 this.timestamp = new Date().getTime();
12612 }
12613 Timer.prototype.print = function (msg) {
12614 var duration = (new Date().getTime()) - this.timestamp;
12615 console.info(msg + " = " + duration);
12616 this.timestamp = new Date().getTime();
12617 };
12618 return Timer;
12619}());
12620
12621
12622
12623/***/ }),
12624/* 58 */
12625/***/ (function(module, __webpack_exports__, __webpack_require__) {
12626
12627"use strict";
12628__webpack_require__.r(__webpack_exports__);
12629/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return TooltipFeature; });
12630/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
12631/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
12632/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
12633/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
12634/**
12635 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12636 * @version v25.3.0
12637 * @link http://www.ag-grid.com/
12638 * @license MIT
12639 */
12640var __extends = (undefined && undefined.__extends) || (function () {
12641 var extendStatics = function (d, b) {
12642 extendStatics = Object.setPrototypeOf ||
12643 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
12644 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
12645 return extendStatics(d, b);
12646 };
12647 return function (d, b) {
12648 extendStatics(d, b);
12649 function __() { this.constructor = d; }
12650 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12651 };
12652})();
12653var __assign = (undefined && undefined.__assign) || function () {
12654 __assign = Object.assign || function(t) {
12655 for (var s, i = 1, n = arguments.length; i < n; i++) {
12656 s = arguments[i];
12657 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12658 t[p] = s[p];
12659 }
12660 return t;
12661 };
12662 return __assign.apply(this, arguments);
12663};
12664var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12665 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12666 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12667 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;
12668 return c > 3 && r && Object.defineProperty(target, key, r), r;
12669};
12670
12671
12672
12673
12674var TooltipStates;
12675(function (TooltipStates) {
12676 TooltipStates[TooltipStates["NOTHING"] = 0] = "NOTHING";
12677 TooltipStates[TooltipStates["WAITING_TO_SHOW"] = 1] = "WAITING_TO_SHOW";
12678 TooltipStates[TooltipStates["SHOWING"] = 2] = "SHOWING";
12679})(TooltipStates || (TooltipStates = {}));
12680var TooltipFeature = /** @class */ (function (_super) {
12681 __extends(TooltipFeature, _super);
12682 function TooltipFeature(parentComp) {
12683 var _this = _super.call(this) || this;
12684 _this.DEFAULT_HIDE_TOOLTIP_TIMEOUT = 10000;
12685 _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;
12686 _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;
12687 _this.state = TooltipStates.NOTHING;
12688 // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to
12689 // async we could request two tooltips before the first instance returns, in which case we should
12690 // disregard the second instance.
12691 _this.tooltipInstanceCount = 0;
12692 _this.tooltipMouseTrack = false;
12693 _this.parentComp = parentComp;
12694 return _this;
12695 }
12696 TooltipFeature.prototype.postConstruct = function () {
12697 this.tooltipShowDelay = this.gridOptionsWrapper.getTooltipShowDelay() || 2000;
12698 this.tooltipMouseTrack = this.gridOptionsWrapper.isTooltipMouseTrack();
12699 var el = this.parentComp.getGui();
12700 this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));
12701 this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));
12702 this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));
12703 this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));
12704 this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));
12705 };
12706 TooltipFeature.prototype.destroy = function () {
12707 // if this component gets destroyed while tooltip is showing, need to make sure
12708 // we don't end with no mouseLeave event resulting in zombie tooltip
12709 this.setToDoNothing();
12710 _super.prototype.destroy.call(this);
12711 };
12712 TooltipFeature.prototype.onMouseEnter = function (e) {
12713 // every mouseenter should be following by a mouseleave, however for some unkonwn, it's possible for
12714 // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported
12715 // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if
12716 // state is !=nothing, then we know mouseenter was already received.
12717 if (this.state != TooltipStates.NOTHING) {
12718 return;
12719 }
12720 // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time
12721 var delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;
12722 this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);
12723 this.lastMouseEvent = e;
12724 this.state = TooltipStates.WAITING_TO_SHOW;
12725 };
12726 TooltipFeature.prototype.onMouseLeave = function () {
12727 this.setToDoNothing();
12728 };
12729 TooltipFeature.prototype.onKeyDown = function () {
12730 this.setToDoNothing();
12731 };
12732 TooltipFeature.prototype.setToDoNothing = function () {
12733 if (this.state === TooltipStates.SHOWING) {
12734 this.hideTooltip();
12735 }
12736 this.clearTimeouts();
12737 this.state = TooltipStates.NOTHING;
12738 };
12739 TooltipFeature.prototype.onMouseMove = function (e) {
12740 // there is a delay from the time we mouseOver a component and the time the
12741 // tooltip is displayed, so we need to track mousemove to be able to correctly
12742 // position the tooltip when showTooltip is called.
12743 this.lastMouseEvent = e;
12744 if (this.tooltipMouseTrack &&
12745 this.state === TooltipStates.SHOWING &&
12746 this.tooltipComp) {
12747 this.positionTooltipUnderLastMouseEvent();
12748 }
12749 };
12750 TooltipFeature.prototype.onMouseDown = function () {
12751 this.setToDoNothing();
12752 };
12753 TooltipFeature.prototype.hideTooltip = function () {
12754 // check if comp exists - due to async, although we asked for
12755 // one, the instance may not be back yet
12756 if (this.tooltipComp) {
12757 this.destroyTooltipComp();
12758 TooltipFeature.lastTooltipHideTime = new Date().getTime();
12759 }
12760 this.state = TooltipStates.NOTHING;
12761 };
12762 TooltipFeature.prototype.destroyTooltipComp = function () {
12763 var _this = this;
12764 // add class to fade out the tooltip
12765 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.tooltipComp.getGui(), 'ag-tooltip-hiding');
12766 // make local copies of these variables, as we use them in the async function below,
12767 // and we clear then to 'undefined' later, so need to take a copy before they are undefined.
12768 var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;
12769 var tooltipComp = this.tooltipComp;
12770 window.setTimeout(function () {
12771 tooltipPopupDestroyFunc();
12772 _this.getContext().destroyBean(tooltipComp);
12773 }, this.FADE_OUT_TOOLTIP_TIMEOUT);
12774 this.tooltipPopupDestroyFunc = undefined;
12775 this.tooltipComp = undefined;
12776 };
12777 TooltipFeature.prototype.isLastTooltipHiddenRecently = function () {
12778 // return true if <1000ms since last time we hid a tooltip
12779 var now = new Date().getTime();
12780 var then = TooltipFeature.lastTooltipHideTime;
12781 return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;
12782 };
12783 TooltipFeature.prototype.showTooltip = function () {
12784 var params = __assign({ api: this.gridApi, columnApi: this.columnApi, context: this.gridOptionsWrapper.getContext() }, this.parentComp.getTooltipParams());
12785 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.value)) {
12786 this.setToDoNothing();
12787 return;
12788 }
12789 this.state = TooltipStates.SHOWING;
12790 this.tooltipInstanceCount++;
12791 // we pass in tooltipInstanceCount so the callback knows what the count was when
12792 // we requested the tooltip, so if another tooltip was requested in the mean time
12793 // we disregard it
12794 var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);
12795 this.userComponentFactory.newTooltipComponent(params).then(callback);
12796 };
12797 TooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {
12798 var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;
12799 if (compNoLongerNeeded) {
12800 this.getContext().destroyBean(tooltipComp);
12801 return;
12802 }
12803 var eGui = tooltipComp.getGui();
12804 this.tooltipComp = tooltipComp;
12805 if (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["containsClass"])(eGui, 'ag-tooltip')) {
12806 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eGui, 'ag-tooltip-custom');
12807 }
12808 var addPopupRes = this.popupService.addPopup({
12809 eChild: eGui
12810 });
12811 if (addPopupRes) {
12812 this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;
12813 }
12814 // this.tooltipPopupDestroyFunc = this.popupService.addPopup(false, eGui, false);
12815 this.positionTooltipUnderLastMouseEvent();
12816 this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.DEFAULT_HIDE_TOOLTIP_TIMEOUT);
12817 };
12818 TooltipFeature.prototype.positionTooltipUnderLastMouseEvent = function () {
12819 this.popupService.positionPopupUnderMouseEvent({
12820 type: 'tooltip',
12821 mouseEvent: this.lastMouseEvent,
12822 ePopup: this.tooltipComp.getGui(),
12823 nudgeY: 18
12824 });
12825 };
12826 TooltipFeature.prototype.clearTimeouts = function () {
12827 if (this.showTooltipTimeoutId) {
12828 window.clearTimeout(this.showTooltipTimeoutId);
12829 this.showTooltipTimeoutId = undefined;
12830 }
12831 if (this.hideTooltipTimeoutId) {
12832 window.clearTimeout(this.hideTooltipTimeoutId);
12833 this.hideTooltipTimeoutId = undefined;
12834 }
12835 };
12836 __decorate([
12837 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
12838 ], TooltipFeature.prototype, "popupService", void 0);
12839 __decorate([
12840 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
12841 ], TooltipFeature.prototype, "userComponentFactory", void 0);
12842 __decorate([
12843 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
12844 ], TooltipFeature.prototype, "columnApi", void 0);
12845 __decorate([
12846 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
12847 ], TooltipFeature.prototype, "gridApi", void 0);
12848 __decorate([
12849 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
12850 ], TooltipFeature.prototype, "postConstruct", null);
12851 return TooltipFeature;
12852}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
12853
12854
12855
12856/***/ }),
12857/* 59 */
12858/***/ (function(module, __webpack_exports__, __webpack_require__) {
12859
12860"use strict";
12861__webpack_require__.r(__webpack_exports__);
12862/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return QuerySelector; });
12863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return RefSelector; });
12864/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridListener", function() { return GridListener; });
12865/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GuiListener", function() { return GuiListener; });
12866/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
12867/**
12868 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12869 * @version v25.3.0
12870 * @link http://www.ag-grid.com/
12871 * @license MIT
12872 */
12873
12874function QuerySelector(selector) {
12875 return querySelectorFunc.bind(this, selector, undefined);
12876}
12877function RefSelector(ref) {
12878 return querySelectorFunc.bind(this, "[ref=" + ref + "]", ref);
12879}
12880function querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {
12881 if (selector === null) {
12882 console.error('AG Grid: QuerySelector selector should not be null');
12883 return;
12884 }
12885 if (typeof index === 'number') {
12886 console.error('AG Grid: QuerySelector should be on an attribute');
12887 return;
12888 }
12889 addToObjectProps(classPrototype, 'querySelectors', {
12890 attributeName: methodOrAttributeName,
12891 querySelector: selector,
12892 refSelector: refSelector
12893 });
12894}
12895// think we should take this out, put property bindings on the
12896function GridListener(eventName) {
12897 return gridListenerFunc.bind(this, eventName);
12898}
12899function gridListenerFunc(eventName, target, methodName) {
12900 if (eventName == null) {
12901 console.error('AG Grid: GridListener eventName is missing');
12902 return;
12903 }
12904 addToObjectProps(target, 'gridListenerMethods', {
12905 methodName: methodName,
12906 eventName: eventName
12907 });
12908}
12909// think we should take this out, put property bindings on the
12910function GuiListener(ref, eventName) {
12911 return guiListenerFunc.bind(this, ref, eventName);
12912}
12913function guiListenerFunc(ref, eventName, target, methodName) {
12914 if (eventName == null) {
12915 console.error('AG Grid: GuiListener eventName is missing');
12916 return;
12917 }
12918 addToObjectProps(target, 'guiListenerMethods', {
12919 methodName: methodName,
12920 eventName: eventName,
12921 ref: ref
12922 });
12923}
12924// // think we should take this out, put property bindings on the
12925// export function Method(eventName?: string): Function {
12926// return methodFunc.bind(this, eventName);
12927// }
12928//
12929// function methodFunc(alias: string, target: Object, methodName: string) {
12930// if (alias === null) {
12931// console.error("AG Grid: EventListener eventName should not be null");
12932// return;
12933// }
12934//
12935// addToObjectProps(target, 'methods', {
12936// methodName: methodName,
12937// alias: alias
12938// });
12939// }
12940function addToObjectProps(target, key, value) {
12941 // it's an attribute on the class
12942 var props = getOrCreateProps(target, Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["getFunctionName"])(target.constructor));
12943 if (!props[key]) {
12944 props[key] = [];
12945 }
12946 props[key].push(value);
12947}
12948function getOrCreateProps(target, instanceName) {
12949 if (!target.__agComponentMetaData) {
12950 target.__agComponentMetaData = {};
12951 }
12952 if (!target.__agComponentMetaData[instanceName]) {
12953 target.__agComponentMetaData[instanceName] = {};
12954 }
12955 return target.__agComponentMetaData[instanceName];
12956}
12957
12958
12959/***/ }),
12960/* 60 */
12961/***/ (function(module, __webpack_exports__, __webpack_require__) {
12962
12963"use strict";
12964__webpack_require__.r(__webpack_exports__);
12965/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return KeyCode; });
12966/**
12967 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
12968 * @version v25.3.0
12969 * @link http://www.ag-grid.com/
12970 * @license MIT
12971 */
12972var KeyCode = /** @class */ (function () {
12973 function KeyCode() {
12974 }
12975 KeyCode.BACKSPACE = 8;
12976 KeyCode.TAB = 9;
12977 KeyCode.ENTER = 13;
12978 KeyCode.SHIFT = 16;
12979 KeyCode.ESCAPE = 27;
12980 KeyCode.SPACE = 32;
12981 KeyCode.LEFT = 37;
12982 KeyCode.UP = 38;
12983 KeyCode.RIGHT = 39;
12984 KeyCode.DOWN = 40;
12985 KeyCode.DELETE = 46;
12986 KeyCode.A = 65;
12987 KeyCode.C = 67;
12988 KeyCode.V = 86;
12989 KeyCode.D = 68;
12990 KeyCode.Z = 90;
12991 KeyCode.Y = 89;
12992 KeyCode.F2 = 113;
12993 KeyCode.PAGE_UP = 33;
12994 KeyCode.PAGE_DOWN = 34;
12995 KeyCode.PAGE_HOME = 36;
12996 KeyCode.PAGE_END = 35;
12997 return KeyCode;
12998}());
12999
13000
13001
13002/***/ }),
13003/* 61 */
13004/***/ (function(module, __webpack_exports__, __webpack_require__) {
13005
13006"use strict";
13007__webpack_require__.r(__webpack_exports__);
13008/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return DateFilter; });
13009/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
13010/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
13011/* harmony import */ var _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62);
13012/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63);
13013/* harmony import */ var _scalarFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68);
13014/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
13015/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
13016/**
13017 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13018 * @version v25.3.0
13019 * @link http://www.ag-grid.com/
13020 * @license MIT
13021 */
13022var __extends = (undefined && undefined.__extends) || (function () {
13023 var extendStatics = function (d, b) {
13024 extendStatics = Object.setPrototypeOf ||
13025 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13026 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13027 return extendStatics(d, b);
13028 };
13029 return function (d, b) {
13030 extendStatics(d, b);
13031 function __() { this.constructor = d; }
13032 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13033 };
13034})();
13035var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13036 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13037 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13038 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;
13039 return c > 3 && r && Object.defineProperty(target, key, r), r;
13040};
13041
13042
13043
13044
13045
13046
13047
13048var DateFilter = /** @class */ (function (_super) {
13049 __extends(DateFilter, _super);
13050 function DateFilter() {
13051 return _super.call(this, 'dateFilter') || this;
13052 }
13053 DateFilter.prototype.afterGuiAttached = function (params) {
13054 _super.prototype.afterGuiAttached.call(this, params);
13055 this.dateCondition1FromComp.afterGuiAttached(params);
13056 };
13057 DateFilter.prototype.mapRangeFromModel = function (filterModel) {
13058 // unlike the other filters, we do two things here:
13059 // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'
13060 // are in different locations in Date and Number filter models)
13061 // 2) convert the type (because Date filter uses Dates, however model is 'string')
13062 //
13063 // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks
13064 // a date from the UI, it will have timezone info in it. This is lost when creating
13065 // the model. When we recreate the date again here, it's without a timezone.
13066 return {
13067 from: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(filterModel.dateFrom),
13068 to: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(filterModel.dateTo)
13069 };
13070 };
13071 DateFilter.prototype.setValueFromFloatingFilter = function (value) {
13072 this.dateCondition1FromComp.setDate(value == null ? null : Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(value));
13073 this.dateCondition1ToComp.setDate(null);
13074 this.dateCondition2FromComp.setDate(null);
13075 this.dateCondition2ToComp.setDate(null);
13076 };
13077 DateFilter.prototype.setConditionIntoUi = function (model, position) {
13078 var _a = model ?
13079 [Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(model.dateFrom), Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["parseDateTimeFromString"])(model.dateTo)] :
13080 [null, null], dateFrom = _a[0], dateTo = _a[1];
13081 var _b = this.getFromToComponents(position), compFrom = _b[0], compTo = _b[1];
13082 compFrom.setDate(dateFrom);
13083 compTo.setDate(dateTo);
13084 };
13085 DateFilter.prototype.resetUiToDefaults = function (silent) {
13086 var _this = this;
13087 return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {
13088 _this.dateCondition1FromComp.setDate(null);
13089 _this.dateCondition1ToComp.setDate(null);
13090 _this.dateCondition2FromComp.setDate(null);
13091 _this.dateCondition2ToComp.setDate(null);
13092 });
13093 };
13094 DateFilter.prototype.comparator = function () {
13095 return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);
13096 };
13097 DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {
13098 // The default comparator assumes that the cellValue is a date
13099 var cellAsDate = cellValue;
13100 if (cellValue == null || cellAsDate < filterDate) {
13101 return -1;
13102 }
13103 if (cellAsDate > filterDate) {
13104 return 1;
13105 }
13106 return 0;
13107 };
13108 DateFilter.prototype.setParams = function (params) {
13109 _super.prototype.setParams.call(this, params);
13110 this.dateFilterParams = params;
13111 this.createDateComponents();
13112 };
13113 DateFilter.prototype.createDateComponents = function () {
13114 var _this = this;
13115 var createDateCompWrapper = function (element) {
13116 return new _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__["DateCompWrapper"](_this.getContext(), _this.userComponentFactory, {
13117 onDateChanged: function () { return _this.onUiChanged(); },
13118 filterParams: _this.dateFilterParams
13119 }, element);
13120 };
13121 this.dateCondition1FromComp = createDateCompWrapper(this.eCondition1PanelFrom);
13122 this.dateCondition1ToComp = createDateCompWrapper(this.eCondition1PanelTo);
13123 this.dateCondition2FromComp = createDateCompWrapper(this.eCondition2PanelFrom);
13124 this.dateCondition2ToComp = createDateCompWrapper(this.eCondition2PanelTo);
13125 this.addDestroyFunc(function () {
13126 _this.dateCondition1FromComp.destroy();
13127 _this.dateCondition1ToComp.destroy();
13128 _this.dateCondition2FromComp.destroy();
13129 _this.dateCondition2ToComp.destroy();
13130 });
13131 };
13132 DateFilter.prototype.getDefaultFilterOptions = function () {
13133 return DateFilter.DEFAULT_FILTER_OPTIONS;
13134 };
13135 DateFilter.prototype.createValueTemplate = function (position) {
13136 var pos = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One ? '1' : '2';
13137 return /* html */ "\n <div class=\"ag-filter-body\" ref=\"eCondition" + pos + "Body\">\n <div class=\"ag-filter-from ag-filter-date-from\" ref=\"eCondition" + pos + "PanelFrom\"></div>\n <div class=\"ag-filter-to ag-filter-date-to\" ref=\"eCondition" + pos + "PanelTo\"></div>\n </div>";
13138 };
13139 DateFilter.prototype.isConditionUiComplete = function (position) {
13140 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One;
13141 var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();
13142 if (option === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["SimpleFilter"].EMPTY) {
13143 return false;
13144 }
13145 if (this.doesFilterHaveHiddenInput(option)) {
13146 return true;
13147 }
13148 var _a = this.getFromToComponents(position), compFrom = _a[0], compTo = _a[1];
13149 var minValidYear = this.dateFilterParams.minValidYear == null ? 1000 : this.dateFilterParams.minValidYear;
13150 var isValidDate = function (value) { return value != null && value.getUTCFullYear() > minValidYear; };
13151 return isValidDate(compFrom.getDate()) && (!this.showValueTo(option) || isValidDate(compTo.getDate()));
13152 };
13153 DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
13154 return aSimple.dateFrom === bSimple.dateFrom
13155 && aSimple.dateTo === bSimple.dateTo
13156 && aSimple.type === bSimple.type;
13157 };
13158 DateFilter.prototype.getFilterType = function () {
13159 return 'date';
13160 };
13161 DateFilter.prototype.createCondition = function (position) {
13162 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One;
13163 var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();
13164 var _a = this.getFromToComponents(position), compFrom = _a[0], compTo = _a[1];
13165 return {
13166 dateFrom: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["serialiseDate"])(compFrom.getDate()),
13167 dateTo: Object(_utils_date__WEBPACK_IMPORTED_MODULE_5__["serialiseDate"])(compTo.getDate()),
13168 type: type,
13169 filterType: this.getFilterType()
13170 };
13171 };
13172 DateFilter.prototype.resetPlaceholder = function () {
13173 var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();
13174 var placeholder = this.translate('dateFormatOoo');
13175 var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');
13176 this.dateCondition1FromComp.setInputPlaceholder(placeholder);
13177 this.dateCondition1FromComp.setInputAriaLabel(ariaLabel);
13178 this.dateCondition1ToComp.setInputPlaceholder(placeholder);
13179 this.dateCondition1ToComp.setInputAriaLabel(ariaLabel);
13180 this.dateCondition2FromComp.setInputPlaceholder(placeholder);
13181 this.dateCondition2FromComp.setInputAriaLabel(ariaLabel);
13182 this.dateCondition2ToComp.setInputPlaceholder(placeholder);
13183 this.dateCondition2ToComp.setInputAriaLabel(ariaLabel);
13184 };
13185 DateFilter.prototype.updateUiVisibility = function () {
13186 _super.prototype.updateUiVisibility.call(this);
13187 this.resetPlaceholder();
13188 var condition1Type = this.getCondition1Type();
13189 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition1PanelFrom, this.showValueFrom(condition1Type));
13190 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition1PanelTo, this.showValueTo(condition1Type));
13191 var condition2Type = this.getCondition2Type();
13192 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition2PanelFrom, this.showValueFrom(condition2Type));
13193 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eCondition2PanelTo, this.showValueTo(condition2Type));
13194 };
13195 DateFilter.prototype.getFromToComponents = function (position) {
13196 return position === _simpleFilter__WEBPACK_IMPORTED_MODULE_3__["ConditionPosition"].One ?
13197 [this.dateCondition1FromComp, this.dateCondition1ToComp] :
13198 [this.dateCondition2FromComp, this.dateCondition2ToComp];
13199 };
13200 DateFilter.DEFAULT_FILTER_OPTIONS = [
13201 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].EQUALS,
13202 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].GREATER_THAN,
13203 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].LESS_THAN,
13204 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].NOT_EQUAL,
13205 _scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"].IN_RANGE
13206 ];
13207 __decorate([
13208 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition1PanelFrom')
13209 ], DateFilter.prototype, "eCondition1PanelFrom", void 0);
13210 __decorate([
13211 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition1PanelTo')
13212 ], DateFilter.prototype, "eCondition1PanelTo", void 0);
13213 __decorate([
13214 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition2PanelFrom')
13215 ], DateFilter.prototype, "eCondition2PanelFrom", void 0);
13216 __decorate([
13217 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition2PanelTo')
13218 ], DateFilter.prototype, "eCondition2PanelTo", void 0);
13219 __decorate([
13220 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
13221 ], DateFilter.prototype, "userComponentFactory", void 0);
13222 return DateFilter;
13223}(_scalarFilter__WEBPACK_IMPORTED_MODULE_4__["ScalarFilter"]));
13224
13225
13226
13227/***/ }),
13228/* 62 */
13229/***/ (function(module, __webpack_exports__, __webpack_require__) {
13230
13231"use strict";
13232__webpack_require__.r(__webpack_exports__);
13233/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateCompWrapper", function() { return DateCompWrapper; });
13234/**
13235 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13236 * @version v25.3.0
13237 * @link http://www.ag-grid.com/
13238 * @license MIT
13239 */
13240/** Provides sync access to async component. Date component can be lazy created - this class encapsulates
13241 * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */
13242var DateCompWrapper = /** @class */ (function () {
13243 function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {
13244 var _this = this;
13245 this.alive = true;
13246 this.context = context;
13247 userComponentFactory.newDateComponent(dateComponentParams).then(function (dateComp) {
13248 // because async, check the filter still exists after component comes back
13249 if (!_this.alive) {
13250 context.destroyBean(dateComp);
13251 return;
13252 }
13253 _this.dateComp = dateComp;
13254 if (!dateComp) {
13255 return;
13256 }
13257 eParent.appendChild(dateComp.getGui());
13258 if (dateComp.afterGuiAttached) {
13259 dateComp.afterGuiAttached();
13260 }
13261 if (_this.tempValue) {
13262 dateComp.setDate(_this.tempValue);
13263 }
13264 });
13265 }
13266 DateCompWrapper.prototype.destroy = function () {
13267 this.alive = false;
13268 this.dateComp = this.context.destroyBean(this.dateComp);
13269 };
13270 DateCompWrapper.prototype.getDate = function () {
13271 return this.dateComp ? this.dateComp.getDate() : this.tempValue;
13272 };
13273 DateCompWrapper.prototype.setDate = function (value) {
13274 if (this.dateComp) {
13275 this.dateComp.setDate(value);
13276 }
13277 else {
13278 this.tempValue = value;
13279 }
13280 };
13281 DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {
13282 if (this.dateComp && this.dateComp.setInputPlaceholder) {
13283 this.dateComp.setInputPlaceholder(placeholder);
13284 }
13285 };
13286 DateCompWrapper.prototype.setInputAriaLabel = function (label) {
13287 if (this.dateComp && this.dateComp.setInputAriaLabel) {
13288 this.dateComp.setInputAriaLabel(label);
13289 }
13290 };
13291 DateCompWrapper.prototype.afterGuiAttached = function (params) {
13292 if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {
13293 this.dateComp.afterGuiAttached(params);
13294 }
13295 };
13296 return DateCompWrapper;
13297}());
13298
13299
13300
13301/***/ }),
13302/* 63 */
13303/***/ (function(module, __webpack_exports__, __webpack_require__) {
13304
13305"use strict";
13306__webpack_require__.r(__webpack_exports__);
13307/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConditionPosition", function() { return ConditionPosition; });
13308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return SimpleFilter; });
13309/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
13310/* harmony import */ var _optionsFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64);
13311/* harmony import */ var _providedFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65);
13312/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
13313/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
13314/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
13315/**
13316 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13317 * @version v25.3.0
13318 * @link http://www.ag-grid.com/
13319 * @license MIT
13320 */
13321var __extends = (undefined && undefined.__extends) || (function () {
13322 var extendStatics = function (d, b) {
13323 extendStatics = Object.setPrototypeOf ||
13324 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13325 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13326 return extendStatics(d, b);
13327 };
13328 return function (d, b) {
13329 extendStatics(d, b);
13330 function __() { this.constructor = d; }
13331 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13332 };
13333})();
13334var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13335 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13336 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13337 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;
13338 return c > 3 && r && Object.defineProperty(target, key, r), r;
13339};
13340
13341
13342
13343
13344
13345
13346var ConditionPosition;
13347(function (ConditionPosition) {
13348 ConditionPosition[ConditionPosition["One"] = 0] = "One";
13349 ConditionPosition[ConditionPosition["Two"] = 1] = "Two";
13350})(ConditionPosition || (ConditionPosition = {}));
13351/**
13352 * Every filter with a dropdown where the user can specify a comparing type against the filter values
13353 */
13354var SimpleFilter = /** @class */ (function (_super) {
13355 __extends(SimpleFilter, _super);
13356 function SimpleFilter() {
13357 return _super !== null && _super.apply(this, arguments) || this;
13358 }
13359 // returns true if this type requires a 'from' field, eg any filter that requires at least one text value
13360 SimpleFilter.prototype.showValueFrom = function (type) {
13361 return !this.doesFilterHaveHiddenInput(type) && type !== SimpleFilter.EMPTY;
13362 };
13363 // returns true if this type requires a 'to' field, currently only 'range' returns true
13364 SimpleFilter.prototype.showValueTo = function (type) {
13365 return type === SimpleFilter.IN_RANGE;
13366 };
13367 // floating filter calls this when user applies filter from floating filter
13368 SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {
13369 this.setTypeFromFloatingFilter(type);
13370 this.setValueFromFloatingFilter(value);
13371 this.onUiChanged(true);
13372 };
13373 SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {
13374 this.eType1.setValue(type);
13375 this.eType2.setValue(this.optionsFactory.getDefaultOption());
13376 (this.isDefaultOperator('AND') ? this.eJoinOperatorAnd : this.eJoinOperatorOr).setValue(true);
13377 };
13378 SimpleFilter.prototype.getModelFromUi = function () {
13379 if (!this.isConditionUiComplete(ConditionPosition.One)) {
13380 return null;
13381 }
13382 if (this.isAllowTwoConditions() && this.isConditionUiComplete(ConditionPosition.Two)) {
13383 return {
13384 filterType: this.getFilterType(),
13385 operator: this.getJoinOperator(),
13386 condition1: this.createCondition(ConditionPosition.One),
13387 condition2: this.createCondition(ConditionPosition.Two)
13388 };
13389 }
13390 return this.createCondition(ConditionPosition.One);
13391 };
13392 SimpleFilter.prototype.getCondition1Type = function () {
13393 return this.eType1.getValue();
13394 };
13395 SimpleFilter.prototype.getCondition2Type = function () {
13396 return this.eType2.getValue();
13397 };
13398 SimpleFilter.prototype.getJoinOperator = function () {
13399 return this.eJoinOperatorOr.getValue() === true ? 'OR' : 'AND';
13400 };
13401 SimpleFilter.prototype.areModelsEqual = function (a, b) {
13402 // both are missing
13403 if (!a && !b) {
13404 return true;
13405 }
13406 // one is missing, other present
13407 if ((!a && b) || (a && !b)) {
13408 return false;
13409 }
13410 // one is combined, the other is not
13411 var aIsSimple = !a.operator;
13412 var bIsSimple = !b.operator;
13413 var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);
13414 if (oneSimpleOneCombined) {
13415 return false;
13416 }
13417 var res;
13418 // otherwise both present, so compare
13419 if (aIsSimple) {
13420 var aSimple = a;
13421 var bSimple = b;
13422 res = this.areSimpleModelsEqual(aSimple, bSimple);
13423 }
13424 else {
13425 var aCombined = a;
13426 var bCombined = b;
13427 res = aCombined.operator === bCombined.operator
13428 && this.areSimpleModelsEqual(aCombined.condition1, bCombined.condition1)
13429 && this.areSimpleModelsEqual(aCombined.condition2, bCombined.condition2);
13430 }
13431 return res;
13432 };
13433 SimpleFilter.prototype.setModelIntoUi = function (model) {
13434 var isCombined = model.operator;
13435 if (isCombined) {
13436 var combinedModel = model;
13437 var orChecked = combinedModel.operator === 'OR';
13438 this.eJoinOperatorAnd.setValue(!orChecked);
13439 this.eJoinOperatorOr.setValue(orChecked);
13440 this.eType1.setValue(combinedModel.condition1.type);
13441 this.eType2.setValue(combinedModel.condition2.type);
13442 this.setConditionIntoUi(combinedModel.condition1, ConditionPosition.One);
13443 this.setConditionIntoUi(combinedModel.condition2, ConditionPosition.Two);
13444 }
13445 else {
13446 var simpleModel = model;
13447 this.eJoinOperatorAnd.setValue(this.isDefaultOperator('AND'));
13448 this.eJoinOperatorOr.setValue(this.isDefaultOperator('OR'));
13449 this.eType1.setValue(simpleModel.type);
13450 this.eType2.setValue(this.optionsFactory.getDefaultOption());
13451 this.setConditionIntoUi(simpleModel, ConditionPosition.One);
13452 this.setConditionIntoUi(null, ConditionPosition.Two);
13453 }
13454 return _utils__WEBPACK_IMPORTED_MODULE_3__["AgPromise"].resolve();
13455 };
13456 SimpleFilter.prototype.doesFilterPass = function (params) {
13457 var _this = this;
13458 var model = this.getModel();
13459 if (model == null) {
13460 return true;
13461 }
13462 var operator = model.operator;
13463 var models = [];
13464 if (operator) {
13465 var combinedModel = model;
13466 models.push(combinedModel.condition1, combinedModel.condition2);
13467 }
13468 else {
13469 models.push(model);
13470 }
13471 var combineFunction = operator && operator === 'OR' ? _utils_array__WEBPACK_IMPORTED_MODULE_4__["some"] : _utils_array__WEBPACK_IMPORTED_MODULE_4__["every"];
13472 return combineFunction(models, function (m) { return _this.individualConditionPasses(params, m); });
13473 };
13474 SimpleFilter.prototype.setParams = function (params) {
13475 _super.prototype.setParams.call(this, params);
13476 this.optionsFactory = new _optionsFactory__WEBPACK_IMPORTED_MODULE_1__["OptionsFactory"]();
13477 this.optionsFactory.init(params, this.getDefaultFilterOptions());
13478 this.allowTwoConditions = !params.suppressAndOrCondition;
13479 this.alwaysShowBothConditions = !!params.alwaysShowBothConditions;
13480 this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);
13481 this.putOptionsIntoDropdown();
13482 this.addChangedListeners();
13483 };
13484 SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {
13485 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(['AND', 'OR'], defaultJoinOperator) ? defaultJoinOperator : 'AND';
13486 };
13487 SimpleFilter.prototype.putOptionsIntoDropdown = function () {
13488 var _this = this;
13489 var filterOptions = this.optionsFactory.getFilterOptions();
13490 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(filterOptions, function (option) {
13491 var value;
13492 var text;
13493 if (typeof option === 'string') {
13494 value = option;
13495 text = _this.translate(value);
13496 }
13497 else {
13498 value = option.displayKey;
13499 var customOption = _this.optionsFactory.getCustomOption(value);
13500 text = customOption ?
13501 _this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :
13502 _this.translate(value);
13503 }
13504 var createOption = function () { return ({ value: value, text: text }); };
13505 _this.eType1.addOption(createOption());
13506 _this.eType2.addOption(createOption());
13507 });
13508 var readOnly = filterOptions.length <= 1;
13509 this.eType1.setDisabled(readOnly);
13510 this.eType2.setDisabled(readOnly);
13511 };
13512 SimpleFilter.prototype.isAllowTwoConditions = function () {
13513 return this.allowTwoConditions;
13514 };
13515 SimpleFilter.prototype.createBodyTemplate = function () {
13516 return /* html */ "\n <ag-select class=\"ag-filter-select\" ref=\"eOptions1\"></ag-select>\n " + this.createValueTemplate(ConditionPosition.One) + "\n <div class=\"ag-filter-condition\" ref=\"eJoinOperatorPanel\">\n <ag-radio-button ref=\"eJoinOperatorAnd\" class=\"ag-filter-condition-operator ag-filter-condition-operator-and\"></ag-radio-button>\n <ag-radio-button ref=\"eJoinOperatorOr\" class=\"ag-filter-condition-operator ag-filter-condition-operator-or\"></ag-radio-button>\n </div>\n <ag-select class=\"ag-filter-select\" ref=\"eOptions2\"></ag-select>\n " + this.createValueTemplate(ConditionPosition.Two);
13517 };
13518 SimpleFilter.prototype.getCssIdentifier = function () {
13519 return 'simple-filter';
13520 };
13521 SimpleFilter.prototype.updateUiVisibility = function () {
13522 var isCondition2Enabled = this.isCondition2Enabled();
13523 if (this.alwaysShowBothConditions) {
13524 this.eJoinOperatorAnd.setDisabled(!isCondition2Enabled);
13525 this.eJoinOperatorOr.setDisabled(!isCondition2Enabled);
13526 this.eType2.setDisabled(!isCondition2Enabled);
13527 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisabled"])(this.eCondition2Body, !isCondition2Enabled);
13528 }
13529 else {
13530 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisplayed"])(this.eJoinOperatorPanel, isCondition2Enabled);
13531 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisplayed"])(this.eType2.getGui(), isCondition2Enabled);
13532 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setDisplayed"])(this.eCondition2Body, isCondition2Enabled);
13533 }
13534 };
13535 SimpleFilter.prototype.isCondition2Enabled = function () {
13536 return this.allowTwoConditions && this.isConditionUiComplete(ConditionPosition.One);
13537 };
13538 SimpleFilter.prototype.resetUiToDefaults = function (silent) {
13539 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
13540 var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');
13541 var uniqueGroupId = 'ag-simple-filter-and-or-' + this.getCompId();
13542 var defaultOption = this.optionsFactory.getDefaultOption();
13543 this.eType1.setValue(defaultOption, silent).setAriaLabel(filteringLabel);
13544 this.eType2.setValue(defaultOption, silent).setAriaLabel(filteringLabel);
13545 this.eJoinOperatorAnd
13546 .setValue(this.isDefaultOperator('AND'), silent)
13547 .setName(uniqueGroupId)
13548 .setLabel(this.translate('andCondition'));
13549 this.eJoinOperatorOr
13550 .setValue(this.isDefaultOperator('OR'), silent)
13551 .setName(uniqueGroupId)
13552 .setLabel(this.translate('orCondition'));
13553 return _utils__WEBPACK_IMPORTED_MODULE_3__["AgPromise"].resolve();
13554 };
13555 SimpleFilter.prototype.isDefaultOperator = function (operator) {
13556 return operator === this.defaultJoinOperator;
13557 };
13558 SimpleFilter.prototype.addChangedListeners = function () {
13559 var _this = this;
13560 var listener = function () { return _this.onUiChanged(); };
13561 this.eType1.onValueChange(listener);
13562 this.eType2.onValueChange(listener);
13563 this.eJoinOperatorOr.onValueChange(listener);
13564 this.eJoinOperatorAnd.onValueChange(listener);
13565 };
13566 SimpleFilter.prototype.doesFilterHaveHiddenInput = function (filterType) {
13567 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
13568 return customFilterOption && customFilterOption.hideFilterInput;
13569 };
13570 SimpleFilter.EMPTY = 'empty';
13571 SimpleFilter.EQUALS = 'equals';
13572 SimpleFilter.NOT_EQUAL = 'notEqual';
13573 SimpleFilter.LESS_THAN = 'lessThan';
13574 SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';
13575 SimpleFilter.GREATER_THAN = 'greaterThan';
13576 SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';
13577 SimpleFilter.IN_RANGE = 'inRange';
13578 SimpleFilter.CONTAINS = 'contains';
13579 SimpleFilter.NOT_CONTAINS = 'notContains';
13580 SimpleFilter.STARTS_WITH = 'startsWith';
13581 SimpleFilter.ENDS_WITH = 'endsWith';
13582 __decorate([
13583 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eOptions1')
13584 ], SimpleFilter.prototype, "eType1", void 0);
13585 __decorate([
13586 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eOptions2')
13587 ], SimpleFilter.prototype, "eType2", void 0);
13588 __decorate([
13589 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eJoinOperatorPanel')
13590 ], SimpleFilter.prototype, "eJoinOperatorPanel", void 0);
13591 __decorate([
13592 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eJoinOperatorAnd')
13593 ], SimpleFilter.prototype, "eJoinOperatorAnd", void 0);
13594 __decorate([
13595 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eJoinOperatorOr')
13596 ], SimpleFilter.prototype, "eJoinOperatorOr", void 0);
13597 __decorate([
13598 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition1Body')
13599 ], SimpleFilter.prototype, "eCondition1Body", void 0);
13600 __decorate([
13601 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eCondition2Body')
13602 ], SimpleFilter.prototype, "eCondition2Body", void 0);
13603 return SimpleFilter;
13604}(_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"]));
13605
13606
13607
13608/***/ }),
13609/* 64 */
13610/***/ (function(module, __webpack_exports__, __webpack_require__) {
13611
13612"use strict";
13613__webpack_require__.r(__webpack_exports__);
13614/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OptionsFactory", function() { return OptionsFactory; });
13615/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
13616/**
13617 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13618 * @version v25.3.0
13619 * @link http://www.ag-grid.com/
13620 * @license MIT
13621 */
13622
13623/* Common logic for options, used by both filters and floating filters. */
13624var OptionsFactory = /** @class */ (function () {
13625 function OptionsFactory() {
13626 this.customFilterOptions = {};
13627 }
13628 OptionsFactory.prototype.init = function (params, defaultOptions) {
13629 this.filterOptions = params.filterOptions || defaultOptions;
13630 this.mapCustomOptions();
13631 this.selectDefaultItem(params);
13632 };
13633 OptionsFactory.prototype.getFilterOptions = function () {
13634 return this.filterOptions;
13635 };
13636 OptionsFactory.prototype.mapCustomOptions = function () {
13637 var _this = this;
13638 if (!this.filterOptions) {
13639 return;
13640 }
13641 this.filterOptions.forEach(function (filterOption) {
13642 if (typeof filterOption === 'string') {
13643 return;
13644 }
13645 var requiredProperties = ['displayKey', 'displayName', 'test'];
13646 if (Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["every"])(requiredProperties, function (key) {
13647 if (!filterOption[key]) {
13648 console.warn("AG Grid: ignoring FilterOptionDef as it doesn't contain a '" + key + "'");
13649 return false;
13650 }
13651 return true;
13652 })) {
13653 _this.customFilterOptions[filterOption.displayKey] = filterOption;
13654 }
13655 });
13656 };
13657 OptionsFactory.prototype.selectDefaultItem = function (params) {
13658 if (params.defaultOption) {
13659 this.defaultOption = params.defaultOption;
13660 }
13661 else if (this.filterOptions.length >= 1) {
13662 var firstFilterOption = this.filterOptions[0];
13663 if (typeof firstFilterOption === 'string') {
13664 this.defaultOption = firstFilterOption;
13665 }
13666 else if (firstFilterOption.displayKey) {
13667 this.defaultOption = firstFilterOption.displayKey;
13668 }
13669 else {
13670 console.warn("AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'");
13671 }
13672 }
13673 else {
13674 console.warn('AG Grid: no filter options for filter');
13675 }
13676 };
13677 OptionsFactory.prototype.getDefaultOption = function () {
13678 return this.defaultOption;
13679 };
13680 OptionsFactory.prototype.getCustomOption = function (name) {
13681 return this.customFilterOptions[name];
13682 };
13683 return OptionsFactory;
13684}());
13685
13686
13687
13688/***/ }),
13689/* 65 */
13690/***/ (function(module, __webpack_exports__, __webpack_require__) {
13691
13692"use strict";
13693__webpack_require__.r(__webpack_exports__);
13694/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return ProvidedFilter; });
13695/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
13696/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
13697/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
13698/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
13699/* harmony import */ var _filterLocaleText__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(66);
13700/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67);
13701/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(54);
13702/**
13703 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
13704 * @version v25.3.0
13705 * @link http://www.ag-grid.com/
13706 * @license MIT
13707 */
13708var __extends = (undefined && undefined.__extends) || (function () {
13709 var extendStatics = function (d, b) {
13710 extendStatics = Object.setPrototypeOf ||
13711 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13712 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
13713 return extendStatics(d, b);
13714 };
13715 return function (d, b) {
13716 extendStatics(d, b);
13717 function __() { this.constructor = d; }
13718 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13719 };
13720})();
13721var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13722 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13723 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
13724 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;
13725 return c > 3 && r && Object.defineProperty(target, key, r), r;
13726};
13727
13728
13729
13730
13731
13732
13733
13734/**
13735 * Contains common logic to all provided filters (apply button, clear button, etc).
13736 * All the filters that come with AG Grid extend this class. User filters do not
13737 * extend this class.
13738 */
13739var ProvidedFilter = /** @class */ (function (_super) {
13740 __extends(ProvidedFilter, _super);
13741 function ProvidedFilter(filterNameKey) {
13742 var _this = _super.call(this) || this;
13743 _this.filterNameKey = filterNameKey;
13744 _this.applyActive = false;
13745 _this.hidePopup = null;
13746 // after the user hits 'apply' the model gets copied to here. this is then the model that we use for
13747 // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.
13748 // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is
13749 // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter
13750 // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter
13751 // not active) then this appliedModel will be null/undefined.
13752 _this.appliedModel = null;
13753 return _this;
13754 }
13755 ProvidedFilter.prototype.getFilterTitle = function () {
13756 return this.translate(this.filterNameKey);
13757 };
13758 /** @deprecated */
13759 ProvidedFilter.prototype.onFilterChanged = function () {
13760 console.warn("AG Grid: you should not call onFilterChanged() directly on the filter, please call\n gridApi.onFilterChanged() instead. onFilterChanged is not part of the exposed filter interface (it was\n a method that existed on an old version of the filters that was not intended for public use.");
13761 this.providedFilterParams.filterChangedCallback();
13762 };
13763 ProvidedFilter.prototype.isFilterActive = function () {
13764 // filter is active if we have a valid applied model
13765 return !!this.appliedModel;
13766 };
13767 ProvidedFilter.prototype.postConstruct = function () {
13768 this.resetTemplate(); // do this first to create the DOM
13769 _super.prototype.postConstruct.call(this);
13770 };
13771 ProvidedFilter.prototype.resetTemplate = function (paramsMap) {
13772 var templateString = /* html */ "\n <div class=\"ag-filter-wrapper\">\n <div class=\"ag-filter-body-wrapper ag-" + this.getCssIdentifier() + "-body-wrapper\">\n " + this.createBodyTemplate() + "\n </div>\n </div>";
13773 this.setTemplate(templateString, paramsMap);
13774 };
13775 ProvidedFilter.prototype.init = function (params) {
13776 var _this = this;
13777 this.setParams(params);
13778 this.resetUiToDefaults(true).then(function () {
13779 _this.updateUiVisibility();
13780 _this.setupOnBtApplyDebounce();
13781 });
13782 };
13783 ProvidedFilter.prototype.setParams = function (params) {
13784 ProvidedFilter.checkForDeprecatedParams(params);
13785 this.providedFilterParams = params;
13786 if (params.newRowsAction === 'keep') {
13787 this.newRowsActionKeep = true;
13788 }
13789 else if (params.newRowsAction === 'clear') {
13790 this.newRowsActionKeep = false;
13791 }
13792 else {
13793 // the default for SSRM and IRM is 'keep', for CSRM and VRM the default is 'clear'
13794 var modelsForKeep = [_constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE, _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE];
13795 this.newRowsActionKeep = modelsForKeep.indexOf(this.rowModel.getType()) >= 0;
13796 }
13797 this.applyActive = ProvidedFilter.isUseApplyButton(params);
13798 this.createButtonPanel();
13799 };
13800 ProvidedFilter.prototype.createButtonPanel = function () {
13801 var _this = this;
13802 var buttons = this.providedFilterParams.buttons;
13803 if (!buttons || buttons.length < 1) {
13804 return;
13805 }
13806 var eButtonsPanel = document.createElement('div');
13807 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eButtonsPanel, 'ag-filter-apply-panel');
13808 var addButton = function (type) {
13809 var text;
13810 var clickListener;
13811 switch (type) {
13812 case 'apply':
13813 text = _this.translate('applyFilter');
13814 clickListener = function (e) { return _this.onBtApply(false, false, e); };
13815 break;
13816 case 'clear':
13817 text = _this.translate('clearFilter');
13818 clickListener = function () { return _this.onBtClear(); };
13819 break;
13820 case 'reset':
13821 text = _this.translate('resetFilter');
13822 clickListener = function () { return _this.onBtReset(); };
13823 break;
13824 case 'cancel':
13825 text = _this.translate('cancelFilter');
13826 clickListener = function (e) { _this.onBtCancel(e); };
13827 break;
13828 default:
13829 console.warn('Unknown button type specified');
13830 return;
13831 }
13832 var button = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])(
13833 /* html */
13834 "<button\n type=\"button\"\n ref=\"" + type + "FilterButton\"\n class=\"ag-standard-button ag-filter-apply-panel-button\"\n >" + text + "\n </button>");
13835 eButtonsPanel.appendChild(button);
13836 _this.addManagedListener(button, 'click', clickListener);
13837 };
13838 Object(_utils_set__WEBPACK_IMPORTED_MODULE_6__["convertToSet"])(buttons).forEach(function (type) { return addButton(type); });
13839 this.getGui().appendChild(eButtonsPanel);
13840 };
13841 ProvidedFilter.checkForDeprecatedParams = function (params) {
13842 var buttons = params.buttons || [];
13843 if (buttons.length > 0) {
13844 return;
13845 }
13846 var applyButton = params.applyButton, resetButton = params.resetButton, clearButton = params.clearButton;
13847 if (clearButton) {
13848 console.warn('AG Grid: as of AG Grid v23.2, filterParams.clearButton is deprecated. Please use filterParams.buttons instead');
13849 buttons.push('clear');
13850 }
13851 if (resetButton) {
13852 console.warn('AG Grid: as of AG Grid v23.2, filterParams.resetButton is deprecated. Please use filterParams.buttons instead');
13853 buttons.push('reset');
13854 }
13855 if (applyButton) {
13856 console.warn('AG Grid: as of AG Grid v23.2, filterParams.applyButton is deprecated. Please use filterParams.buttons instead');
13857 buttons.push('apply');
13858 }
13859 if (params.apply) {
13860 console.warn('AG Grid: as of AG Grid v21, filterParams.apply is deprecated. Please use filterParams.buttons instead');
13861 buttons.push('apply');
13862 }
13863 params.buttons = buttons;
13864 };
13865 // subclasses can override this to provide alternative debounce defaults
13866 ProvidedFilter.prototype.getDefaultDebounceMs = function () {
13867 return 0;
13868 };
13869 ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {
13870 var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());
13871 this.onBtApplyDebounce = Object(_utils_function__WEBPACK_IMPORTED_MODULE_3__["debounce"])(this.onBtApply.bind(this), debounceMs);
13872 };
13873 ProvidedFilter.prototype.getModel = function () {
13874 return this.appliedModel;
13875 };
13876 ProvidedFilter.prototype.setModel = function (model) {
13877 var _this = this;
13878 var promise = model ? this.setModelIntoUi(model) : this.resetUiToDefaults();
13879 return promise.then(function () {
13880 _this.updateUiVisibility();
13881 // we set the model from the GUI, rather than the provided model,
13882 // so the model is consistent, e.g. handling of null/undefined will be the same,
13883 // or if model is case insensitive, then casing is removed.
13884 _this.applyModel();
13885 });
13886 };
13887 ProvidedFilter.prototype.onBtCancel = function (e) {
13888 var _this = this;
13889 var currentModel = this.getModel();
13890 var afterAppliedFunc = function () {
13891 _this.onUiChanged(false, 'prevent');
13892 if (_this.providedFilterParams.closeOnApply) {
13893 _this.close(e);
13894 }
13895 };
13896 if (currentModel != null) {
13897 this.setModelIntoUi(currentModel).then(afterAppliedFunc);
13898 }
13899 else {
13900 this.resetUiToDefaults().then(afterAppliedFunc);
13901 }
13902 };
13903 ProvidedFilter.prototype.onBtClear = function () {
13904 var _this = this;
13905 this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });
13906 };
13907 ProvidedFilter.prototype.onBtReset = function () {
13908 this.onBtClear();
13909 this.onBtApply();
13910 };
13911 /**
13912 * Applies changes made in the UI to the filter, and returns true if the model has changed.
13913 */
13914 ProvidedFilter.prototype.applyModel = function () {
13915 var newModel = this.getModelFromUi();
13916 if (!this.isModelValid(newModel)) {
13917 return false;
13918 }
13919 var previousModel = this.appliedModel;
13920 this.appliedModel = newModel;
13921 // models can be same if user pasted same content into text field, or maybe just changed the case
13922 // and it's a case insensitive filter
13923 return !this.areModelsEqual(previousModel, newModel);
13924 };
13925 ProvidedFilter.prototype.isModelValid = function (model) {
13926 return true;
13927 };
13928 ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {
13929 if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }
13930 if (afterDataChange === void 0) { afterDataChange = false; }
13931 if (this.applyModel()) {
13932 // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change
13933 // came from floating filter
13934 this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange });
13935 }
13936 var closeOnApply = this.providedFilterParams.closeOnApply;
13937 // only close if an apply button is visible, otherwise we'd be closing every time a change was made!
13938 if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {
13939 this.close(e);
13940 }
13941 };
13942 ProvidedFilter.prototype.onNewRowsLoaded = function () {
13943 var _this = this;
13944 if (!this.newRowsActionKeep) {
13945 this.resetUiToDefaults().then(function () { return _this.appliedModel = null; });
13946 }
13947 };
13948 ProvidedFilter.prototype.close = function (e) {
13949 if (!this.hidePopup) {
13950 return;
13951 }
13952 var keyboardEvent = e;
13953 var key = keyboardEvent && keyboardEvent.key;
13954 var params;
13955 if (key === 'Enter' || key === 'Space') {
13956 params = { keyboardEvent: keyboardEvent };
13957 }
13958 this.hidePopup(params);
13959 this.hidePopup = null;
13960 };
13961 // called by set filter
13962 ProvidedFilter.prototype.isNewRowsActionKeep = function () {
13963 return this.newRowsActionKeep;
13964 };
13965 /**
13966 * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no
13967 * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can
13968 * be adjusted by using the apply parameter.
13969 */
13970 ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {
13971 if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }
13972 this.updateUiVisibility();
13973 this.providedFilterParams.filterModifiedCallback();
13974 if (this.applyActive) {
13975 var isValid = this.isModelValid(this.getModelFromUi());
13976 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisabled"])(this.getRefElement('applyFilterButton'), !isValid);
13977 }
13978 if ((fromFloatingFilter && !apply) || apply === 'immediately') {
13979 this.onBtApply(fromFloatingFilter);
13980 }
13981 else if ((!this.applyActive && !apply) || apply === 'debounce') {
13982 this.onBtApplyDebounce();
13983 }
13984 };
13985 ProvidedFilter.prototype.afterGuiAttached = function (params) {
13986 if (params == null) {
13987 return;
13988 }
13989 this.hidePopup = params.hidePopup;
13990 };
13991 // static, as used by floating filter also
13992 ProvidedFilter.getDebounceMs = function (params, debounceDefault) {
13993 if (ProvidedFilter.isUseApplyButton(params)) {
13994 if (params.debounceMs != null) {
13995 console.warn('AG Grid: debounceMs is ignored when apply button is present');
13996 }
13997 return 0;
13998 }
13999 return params.debounceMs != null ? params.debounceMs : debounceDefault;
14000 };
14001 // static, as used by floating filter also
14002 ProvidedFilter.isUseApplyButton = function (params) {
14003 ProvidedFilter.checkForDeprecatedParams(params);
14004 return !!params.buttons && params.buttons.indexOf('apply') >= 0;
14005 };
14006 ProvidedFilter.prototype.destroy = function () {
14007 this.hidePopup = null;
14008 _super.prototype.destroy.call(this);
14009 };
14010 ProvidedFilter.prototype.translate = function (key) {
14011 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
14012 return translate(key, _filterLocaleText__WEBPACK_IMPORTED_MODULE_4__["DEFAULT_FILTER_LOCALE_TEXT"][key]);
14013 };
14014 __decorate([
14015 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
14016 ], ProvidedFilter.prototype, "rowModel", void 0);
14017 __decorate([
14018 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
14019 ], ProvidedFilter.prototype, "postConstruct", null);
14020 return ProvidedFilter;
14021}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_5__["ManagedFocusComponent"]));
14022
14023
14024
14025/***/ }),
14026/* 66 */
14027/***/ (function(module, __webpack_exports__, __webpack_require__) {
14028
14029"use strict";
14030__webpack_require__.r(__webpack_exports__);
14031/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_FILTER_LOCALE_TEXT", function() { return DEFAULT_FILTER_LOCALE_TEXT; });
14032/**
14033 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14034 * @version v25.3.0
14035 * @link http://www.ag-grid.com/
14036 * @license MIT
14037 */
14038var DEFAULT_FILTER_LOCALE_TEXT = {
14039 applyFilter: 'Apply',
14040 clearFilter: 'Clear',
14041 resetFilter: 'Reset',
14042 cancelFilter: 'Cancel',
14043 textFilter: 'Text Filter',
14044 numberFilter: 'Number Filter',
14045 dateFilter: 'Date Filter',
14046 setFilter: 'Set Filter',
14047 filterOoo: 'Filter...',
14048 empty: 'Choose One',
14049 equals: 'Equals',
14050 notEqual: 'Not equal',
14051 lessThan: 'Less than',
14052 greaterThan: 'Greater than',
14053 inRange: 'In range',
14054 inRangeStart: 'From',
14055 inRangeEnd: 'To',
14056 lessThanOrEqual: 'Less than or equals',
14057 greaterThanOrEqual: 'Greater than or equals',
14058 contains: 'Contains',
14059 notContains: 'Not contains',
14060 startsWith: 'Starts with',
14061 endsWith: 'Ends with',
14062 andCondition: 'AND',
14063 orCondition: 'OR',
14064 dateFormatOoo: 'yyyy-mm-dd',
14065};
14066
14067
14068/***/ }),
14069/* 67 */
14070/***/ (function(module, __webpack_exports__, __webpack_require__) {
14071
14072"use strict";
14073__webpack_require__.r(__webpack_exports__);
14074/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusComponent", function() { return ManagedFocusComponent; });
14075/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
14076/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
14077/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
14078/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
14079/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21);
14080/**
14081 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14082 * @version v25.3.0
14083 * @link http://www.ag-grid.com/
14084 * @license MIT
14085 */
14086var __extends = (undefined && undefined.__extends) || (function () {
14087 var extendStatics = function (d, b) {
14088 extendStatics = Object.setPrototypeOf ||
14089 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14090 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14091 return extendStatics(d, b);
14092 };
14093 return function (d, b) {
14094 extendStatics(d, b);
14095 function __() { this.constructor = d; }
14096 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14097 };
14098})();
14099var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14100 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14101 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14102 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;
14103 return c > 3 && r && Object.defineProperty(target, key, r), r;
14104};
14105
14106
14107
14108
14109
14110/**
14111 * This provides logic to override the default browser focus logic.
14112 *
14113 * When the component gets focus, it uses the grid logic to find out what should be focused,
14114 * and then focuses that instead.
14115 *
14116 * This is how we ensure when user tabs into the relevant section, we focus the correct item.
14117 * For example GridCore extends ManagedFocusComponent, and it ensures when it receives focus
14118 * that focus goes to the first cell of the first header row.
14119 */
14120var ManagedFocusComponent = /** @class */ (function (_super) {
14121 __extends(ManagedFocusComponent, _super);
14122 /*
14123 * Set isFocusableContainer to true if this component will contain multiple focus-managed
14124 * elements within. When set to true, this component will add tabGuards that will be responsible
14125 * for receiving focus from outside and focusing an internal element using the focusInnerElementMethod
14126 */
14127 function ManagedFocusComponent(template, isFocusableContainer) {
14128 if (isFocusableContainer === void 0) { isFocusableContainer = false; }
14129 var _this = _super.call(this, template) || this;
14130 _this.isFocusableContainer = isFocusableContainer;
14131 _this.skipTabGuardFocus = false;
14132 return _this;
14133 }
14134 ManagedFocusComponent.prototype.postConstruct = function () {
14135 var _this = this;
14136 var focusableElement = this.getFocusableElement();
14137 if (!focusableElement) {
14138 return;
14139 }
14140 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(focusableElement, ManagedFocusComponent.FOCUS_MANAGED_CLASS);
14141 if (this.isFocusableContainer) {
14142 this.topTabGuard = this.createTabGuard('top');
14143 this.bottomTabGuard = this.createTabGuard('bottom');
14144 this.addTabGuards();
14145 this.activateTabGuards();
14146 this.forEachTabGuard(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });
14147 }
14148 this.addKeyDownListeners(focusableElement);
14149 this.addManagedListener(focusableElement, 'focusin', this.onFocusIn.bind(this));
14150 this.addManagedListener(focusableElement, 'focusout', this.onFocusOut.bind(this));
14151 };
14152 /*
14153 * Override this method if focusing the default element requires special logic.
14154 */
14155 ManagedFocusComponent.prototype.focusInnerElement = function (fromBottom) {
14156 if (fromBottom === void 0) { fromBottom = false; }
14157 var focusable = this.focusController.findFocusableElements(this.getFocusableElement());
14158 if (this.isFocusableContainer && this.tabGuardsAreActive()) {
14159 // remove tab guards from this component from list of focusable elements
14160 focusable.splice(0, 1);
14161 focusable.splice(focusable.length - 1, 1);
14162 }
14163 if (!focusable.length) {
14164 return;
14165 }
14166 focusable[fromBottom ? focusable.length - 1 : 0].focus();
14167 };
14168 /**
14169 * By default this will tab though the elements in the default order. Override if you require special logic.
14170 */
14171 ManagedFocusComponent.prototype.onTabKeyDown = function (e) {
14172 var _this = this;
14173 if (e.defaultPrevented) {
14174 return;
14175 }
14176 var tabGuardsAreActive = this.tabGuardsAreActive();
14177 if (this.isFocusableContainer && tabGuardsAreActive) {
14178 this.deactivateTabGuards();
14179 }
14180 var nextRoot = this.focusController.findNextFocusableElement(this.getFocusableElement(), false, e.shiftKey);
14181 if (this.isFocusableContainer && tabGuardsAreActive) {
14182 // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser
14183 // tabbing to the tab guard from inside the component
14184 setTimeout(function () { return _this.activateTabGuards(); }, 0);
14185 }
14186 if (!nextRoot) {
14187 return;
14188 }
14189 nextRoot.focus();
14190 e.preventDefault();
14191 };
14192 ManagedFocusComponent.prototype.onFocusIn = function (e) {
14193 if (this.isFocusableContainer) {
14194 this.deactivateTabGuards();
14195 }
14196 };
14197 ManagedFocusComponent.prototype.onFocusOut = function (e) {
14198 if (this.isFocusableContainer && !this.getFocusableElement().contains(e.relatedTarget)) {
14199 this.activateTabGuards();
14200 }
14201 };
14202 ManagedFocusComponent.prototype.forceFocusOutOfContainer = function (up) {
14203 if (up === void 0) { up = false; }
14204 if (!this.isFocusableContainer) {
14205 return;
14206 }
14207 this.activateTabGuards();
14208 this.skipTabGuardFocus = true;
14209 var tabGuardToFocus = up ? this.topTabGuard : this.bottomTabGuard;
14210 if (tabGuardToFocus) {
14211 tabGuardToFocus.focus();
14212 }
14213 };
14214 ManagedFocusComponent.prototype.appendChild = function (newChild, container) {
14215 if (this.isFocusableContainer) {
14216 if (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isNodeOrElement"])(newChild)) {
14217 newChild = newChild.getGui();
14218 }
14219 var bottomTabGuard = this.bottomTabGuard;
14220 if (bottomTabGuard) {
14221 bottomTabGuard.insertAdjacentElement('beforebegin', newChild);
14222 }
14223 else {
14224 _super.prototype.appendChild.call(this, newChild, container);
14225 }
14226 }
14227 else {
14228 _super.prototype.appendChild.call(this, newChild, container);
14229 }
14230 };
14231 ManagedFocusComponent.prototype.createTabGuard = function (side) {
14232 var tabGuard = document.createElement('div');
14233 tabGuard.classList.add('ag-tab-guard');
14234 tabGuard.classList.add("ag-tab-guard-" + side);
14235 tabGuard.setAttribute('role', 'presentation');
14236 return tabGuard;
14237 };
14238 ManagedFocusComponent.prototype.addTabGuards = function () {
14239 var focusableEl = this.getFocusableElement();
14240 focusableEl.insertAdjacentElement('afterbegin', this.topTabGuard);
14241 focusableEl.insertAdjacentElement('beforeend', this.bottomTabGuard);
14242 };
14243 ManagedFocusComponent.prototype.forEachTabGuard = function (callback) {
14244 if (this.topTabGuard) {
14245 callback(this.topTabGuard);
14246 }
14247 if (this.bottomTabGuard) {
14248 callback(this.bottomTabGuard);
14249 }
14250 };
14251 ManagedFocusComponent.prototype.addKeyDownListeners = function (eGui) {
14252 var _this = this;
14253 this.addManagedListener(eGui, 'keydown', function (e) {
14254 if (e.defaultPrevented || Object(_utils_event__WEBPACK_IMPORTED_MODULE_4__["isStopPropagationForAgGrid"])(e)) {
14255 return;
14256 }
14257 if (_this.shouldStopEventPropagation(e)) {
14258 Object(_utils_event__WEBPACK_IMPORTED_MODULE_4__["stopPropagationForAgGrid"])(e);
14259 return;
14260 }
14261 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].TAB) {
14262 _this.onTabKeyDown(e);
14263 }
14264 else if (_this.handleKeyDown) {
14265 _this.handleKeyDown(e);
14266 }
14267 });
14268 };
14269 ManagedFocusComponent.prototype.shouldStopEventPropagation = function (e) {
14270 return false;
14271 };
14272 ManagedFocusComponent.prototype.onFocus = function (e) {
14273 if (this.skipTabGuardFocus) {
14274 this.skipTabGuardFocus = false;
14275 return;
14276 }
14277 this.focusInnerElement(e.target === this.bottomTabGuard);
14278 };
14279 ManagedFocusComponent.prototype.activateTabGuards = function () {
14280 var _this = this;
14281 this.forEachTabGuard(function (guard) { return guard.setAttribute('tabIndex', _this.gridOptionsWrapper.getGridTabIndex()); });
14282 };
14283 ManagedFocusComponent.prototype.deactivateTabGuards = function () {
14284 this.forEachTabGuard(function (guard) { return guard.removeAttribute('tabIndex'); });
14285 };
14286 ManagedFocusComponent.prototype.tabGuardsAreActive = function () {
14287 return !!this.topTabGuard && this.topTabGuard.hasAttribute('tabIndex');
14288 };
14289 ManagedFocusComponent.prototype.clearGui = function () {
14290 var tabGuardsAreActive = this.tabGuardsAreActive();
14291 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.getFocusableElement());
14292 if (this.isFocusableContainer) {
14293 this.addTabGuards();
14294 if (tabGuardsAreActive) {
14295 this.activateTabGuards();
14296 }
14297 }
14298 };
14299 ManagedFocusComponent.FOCUS_MANAGED_CLASS = 'ag-focus-managed';
14300 __decorate([
14301 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
14302 ], ManagedFocusComponent.prototype, "focusController", void 0);
14303 __decorate([
14304 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
14305 ], ManagedFocusComponent.prototype, "postConstruct", null);
14306 return ManagedFocusComponent;
14307}(_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
14308
14309
14310
14311/***/ }),
14312/* 68 */
14313/***/ (function(module, __webpack_exports__, __webpack_require__) {
14314
14315"use strict";
14316__webpack_require__.r(__webpack_exports__);
14317/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return ScalarFilter; });
14318/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63);
14319/**
14320 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14321 * @version v25.3.0
14322 * @link http://www.ag-grid.com/
14323 * @license MIT
14324 */
14325var __extends = (undefined && undefined.__extends) || (function () {
14326 var extendStatics = function (d, b) {
14327 extendStatics = Object.setPrototypeOf ||
14328 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14329 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14330 return extendStatics(d, b);
14331 };
14332 return function (d, b) {
14333 extendStatics(d, b);
14334 function __() { this.constructor = d; }
14335 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14336 };
14337})();
14338
14339var ScalarFilter = /** @class */ (function (_super) {
14340 __extends(ScalarFilter, _super);
14341 function ScalarFilter() {
14342 return _super !== null && _super.apply(this, arguments) || this;
14343 }
14344 ScalarFilter.prototype.setParams = function (params) {
14345 _super.prototype.setParams.call(this, params);
14346 this.scalarFilterParams = params;
14347 this.checkDeprecatedParams();
14348 };
14349 ScalarFilter.prototype.checkDeprecatedParams = function () {
14350 if (this.scalarFilterParams.nullComparator) {
14351 console.warn('AG Grid: Since v21.0, the property filterParams.nullComparator is deprecated. ' +
14352 'Please use filterParams.includeBlanksInEquals, filterParams.includeBlanksInLessThan and ' +
14353 'filterParams.includeBlanksInGreaterThan instead.');
14354 this.scalarFilterParams.includeBlanksInEquals = this.scalarFilterParams.nullComparator.equals;
14355 this.scalarFilterParams.includeBlanksInLessThan = this.scalarFilterParams.nullComparator.lessThan;
14356 this.scalarFilterParams.includeBlanksInGreaterThan = this.scalarFilterParams.nullComparator.greaterThan;
14357 }
14358 };
14359 ScalarFilter.prototype.individualConditionPasses = function (params, filterModel) {
14360 var cellValue = this.scalarFilterParams.valueGetter(params.node);
14361 var range = this.mapRangeFromModel(filterModel);
14362 var filterValue = range.from;
14363 var filterValueTo = range.to;
14364 var filterType = filterModel.type;
14365 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
14366 if (customFilterOption) {
14367 // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden
14368 if (filterValue != null || customFilterOption.hideFilterInput) {
14369 return customFilterOption.test(filterValue, cellValue);
14370 }
14371 }
14372 if (cellValue == null) {
14373 switch (filterType) {
14374 case ScalarFilter.EQUALS:
14375 case ScalarFilter.NOT_EQUAL:
14376 if (this.scalarFilterParams.includeBlanksInEquals) {
14377 return true;
14378 }
14379 break;
14380 case ScalarFilter.GREATER_THAN:
14381 case ScalarFilter.GREATER_THAN_OR_EQUAL:
14382 if (this.scalarFilterParams.includeBlanksInGreaterThan) {
14383 return true;
14384 }
14385 break;
14386 case ScalarFilter.LESS_THAN:
14387 case ScalarFilter.LESS_THAN_OR_EQUAL:
14388 if (this.scalarFilterParams.includeBlanksInLessThan) {
14389 return true;
14390 }
14391 break;
14392 case ScalarFilter.IN_RANGE:
14393 if (this.scalarFilterParams.includeBlanksInRange) {
14394 return true;
14395 }
14396 break;
14397 }
14398 return false;
14399 }
14400 var comparator = this.comparator();
14401 var compareResult = comparator(filterValue, cellValue);
14402 switch (filterType) {
14403 case ScalarFilter.EQUALS:
14404 return compareResult === 0;
14405 case ScalarFilter.NOT_EQUAL:
14406 return compareResult !== 0;
14407 case ScalarFilter.GREATER_THAN:
14408 return compareResult > 0;
14409 case ScalarFilter.GREATER_THAN_OR_EQUAL:
14410 return compareResult >= 0;
14411 case ScalarFilter.LESS_THAN:
14412 return compareResult < 0;
14413 case ScalarFilter.LESS_THAN_OR_EQUAL:
14414 return compareResult <= 0;
14415 case ScalarFilter.IN_RANGE: {
14416 var compareToResult = comparator(filterValueTo, cellValue);
14417 return this.scalarFilterParams.inRangeInclusive ?
14418 compareResult >= 0 && compareToResult <= 0 :
14419 compareResult > 0 && compareToResult < 0;
14420 }
14421 default:
14422 console.warn('AG Grid: Unexpected type of filter "' + filterType + '", it looks like the filter was configured with incorrect Filter Options');
14423 return true;
14424 }
14425 };
14426 return ScalarFilter;
14427}(_simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"]));
14428
14429
14430
14431/***/ }),
14432/* 69 */
14433/***/ (function(module, __webpack_exports__, __webpack_require__) {
14434
14435"use strict";
14436__webpack_require__.r(__webpack_exports__);
14437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComp", function() { return HeaderComp; });
14438/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
14439/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
14440/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
14441/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70);
14442/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(59);
14443/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
14444/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(26);
14445/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(50);
14446/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
14447/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34);
14448/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
14449/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14);
14450/**
14451 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14452 * @version v25.3.0
14453 * @link http://www.ag-grid.com/
14454 * @license MIT
14455 */
14456var __extends = (undefined && undefined.__extends) || (function () {
14457 var extendStatics = function (d, b) {
14458 extendStatics = Object.setPrototypeOf ||
14459 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14460 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14461 return extendStatics(d, b);
14462 };
14463 return function (d, b) {
14464 extendStatics(d, b);
14465 function __() { this.constructor = d; }
14466 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14467 };
14468})();
14469var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14470 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14471 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14472 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;
14473 return c > 3 && r && Object.defineProperty(target, key, r), r;
14474};
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487var HeaderComp = /** @class */ (function (_super) {
14488 __extends(HeaderComp, _super);
14489 function HeaderComp() {
14490 var _this = _super !== null && _super.apply(this, arguments) || this;
14491 _this.lastMovingChanged = 0;
14492 return _this;
14493 }
14494 // this is a user component, and IComponent has "public destroy()" as part of the interface.
14495 // so we need to override destroy() just to make the method public.
14496 HeaderComp.prototype.destroy = function () {
14497 _super.prototype.destroy.call(this);
14498 };
14499 HeaderComp.prototype.refresh = function (params) {
14500 this.params = params;
14501 // if template changed, then recreate the whole comp, the code required to manage
14502 // a changing template is to difficult for what it's worth.
14503 if (this.workOutTemplate() != this.currentTemplate) {
14504 return false;
14505 }
14506 if (this.workOutShowMenu() != this.currentShowMenu) {
14507 return false;
14508 }
14509 if (this.workOutSort() != this.currentSort) {
14510 return false;
14511 }
14512 this.setDisplayName(params);
14513 return true;
14514 };
14515 HeaderComp.prototype.workOutTemplate = function () {
14516 var template = Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["firstExistingValue"])(this.params.template, HeaderComp.TEMPLATE);
14517 // take account of any newlines & whitespace before/after the actual template
14518 template = template && template.trim ? template.trim() : template;
14519 return template;
14520 };
14521 HeaderComp.prototype.init = function (params) {
14522 this.params = params;
14523 this.currentTemplate = this.workOutTemplate();
14524 this.setTemplate(this.currentTemplate);
14525 this.setupTap();
14526 this.setupIcons(params.column);
14527 this.setMenu();
14528 this.setupSort();
14529 this.setupFilterIcon();
14530 this.setDisplayName(params);
14531 };
14532 HeaderComp.prototype.setDisplayName = function (params) {
14533 if (this.currentDisplayName != params.displayName) {
14534 this.currentDisplayName = params.displayName;
14535 var displayNameSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_6__["escapeString"])(this.currentDisplayName);
14536 if (this.eText) {
14537 this.eText.innerHTML = displayNameSanitised;
14538 }
14539 }
14540 };
14541 HeaderComp.prototype.setupIcons = function (column) {
14542 this.addInIcon('sortAscending', this.eSortAsc, column);
14543 this.addInIcon('sortDescending', this.eSortDesc, column);
14544 this.addInIcon('sortUnSort', this.eSortNone, column);
14545 this.addInIcon('menu', this.eMenu, column);
14546 this.addInIcon('filter', this.eFilter, column);
14547 };
14548 HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {
14549 if (eParent == null) {
14550 return;
14551 }
14552 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_7__["createIconNoSpan"])(iconName, this.gridOptionsWrapper, column);
14553 if (eIcon) {
14554 eParent.appendChild(eIcon);
14555 }
14556 };
14557 HeaderComp.prototype.setupTap = function () {
14558 var _this = this;
14559 var options = this.gridOptionsWrapper;
14560 if (options.isSuppressTouch()) {
14561 return;
14562 }
14563 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"](this.getGui(), true);
14564 var suppressMenuHide = options.isSuppressMenuHide();
14565 var tapMenuButton = suppressMenuHide && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(this.eMenu);
14566 var menuTouchListener = tapMenuButton ? new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"](this.eMenu, true) : touchListener;
14567 if (this.params.enableMenu) {
14568 var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';
14569 var showMenuFn = function (event) {
14570 options.getApi().showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);
14571 };
14572 this.addManagedListener(menuTouchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"][eventType], showMenuFn);
14573 }
14574 if (this.params.enableSorting) {
14575 var tapListener = function (event) {
14576 var target = event.touchStart.target;
14577 // When suppressMenuHide is true, a tap on the menu icon will bubble up
14578 // to the header container, in that case we should not sort
14579 if (suppressMenuHide && _this.eMenu.contains(target)) {
14580 return;
14581 }
14582 _this.sortController.progressSort(_this.params.column, false, "uiColumnSorted");
14583 };
14584 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"].EVENT_TAP, tapListener);
14585 }
14586 // if tapMenuButton is true `touchListener` and `menuTouchListener` are different
14587 // so we need to make sure to destroy both listeners here
14588 this.addDestroyFunc(function () { return touchListener.destroy(); });
14589 if (tapMenuButton) {
14590 this.addDestroyFunc(function () { return menuTouchListener.destroy(); });
14591 }
14592 };
14593 HeaderComp.prototype.workOutShowMenu = function () {
14594 // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/
14595 // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok
14596 // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide
14597 // is false (default) user will need to use longpress to display the menu.
14598 var menuHides = !this.gridOptionsWrapper.isSuppressMenuHide();
14599 var onIpadAndMenuHides = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_9__["isIOSUserAgent"])() && menuHides;
14600 var showMenu = this.params.enableMenu && !onIpadAndMenuHides;
14601 return showMenu;
14602 };
14603 HeaderComp.prototype.setMenu = function () {
14604 var _this = this;
14605 // if no menu provided in template, do nothing
14606 if (!this.eMenu) {
14607 return;
14608 }
14609 this.currentShowMenu = this.workOutShowMenu();
14610 if (!this.currentShowMenu) {
14611 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eMenu);
14612 return;
14613 }
14614 var suppressMenuHide = this.gridOptionsWrapper.isSuppressMenuHide();
14615 this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });
14616 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eMenu, 'ag-header-menu-always-show', suppressMenuHide);
14617 };
14618 HeaderComp.prototype.showMenu = function (eventSource) {
14619 if (!eventSource) {
14620 eventSource = this.eMenu;
14621 }
14622 this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource);
14623 };
14624 HeaderComp.prototype.removeSortIcons = function () {
14625 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortAsc);
14626 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortDesc);
14627 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortNone);
14628 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["removeFromParent"])(this.eSortOrder);
14629 };
14630 HeaderComp.prototype.workOutSort = function () {
14631 return this.params.enableSorting;
14632 };
14633 HeaderComp.prototype.setupSort = function () {
14634 var _this = this;
14635 this.currentSort = this.params.enableSorting;
14636 if (!this.currentSort) {
14637 this.removeSortIcons();
14638 return;
14639 }
14640 var sortUsingCtrl = this.gridOptionsWrapper.isMultiSortKeyCtrl();
14641 // keep track of last time the moving changed flag was set
14642 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MOVING_CHANGED, function () {
14643 _this.lastMovingChanged = new Date().getTime();
14644 });
14645 // add the event on the header, so when clicked, we do sorting
14646 if (this.eLabel) {
14647 this.addManagedListener(this.eLabel, 'click', function (event) {
14648 // sometimes when moving a column via dragging, this was also firing a clicked event.
14649 // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076
14650 // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)
14651 var moving = _this.params.column.isMoving();
14652 var nowTime = new Date().getTime();
14653 // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn
14654 var movedRecently = (nowTime - _this.lastMovingChanged) < 50;
14655 var columnMoving = moving || movedRecently;
14656 if (!columnMoving) {
14657 var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;
14658 _this.params.progressSort(multiSort);
14659 }
14660 });
14661 }
14662 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
14663 this.onSortChanged();
14664 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_SORT_CHANGED, this.setMultiSortOrder.bind(this));
14665 this.setMultiSortOrder();
14666 };
14667 HeaderComp.prototype.onSortChanged = function () {
14668 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-sorted-asc', this.params.column.isSortAscending());
14669 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-sorted-desc', this.params.column.isSortDescending());
14670 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-sorted-none', this.params.column.isSortNone());
14671 if (this.eSortAsc) {
14672 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eSortAsc, 'ag-hidden', !this.params.column.isSortAscending());
14673 }
14674 if (this.eSortDesc) {
14675 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eSortDesc, 'ag-hidden', !this.params.column.isSortDescending());
14676 }
14677 if (this.eSortNone) {
14678 var alwaysHideNoSort = !this.params.column.getColDef().unSortIcon && !this.gridOptionsWrapper.isUnSortIcon();
14679 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eSortNone, 'ag-hidden', alwaysHideNoSort || !this.params.column.isSortNone());
14680 }
14681 };
14682 // we listen here for global sort events, NOT column sort events, as we want to do this
14683 // when sorting has been set on all column (if we listened just for our col (where we
14684 // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.
14685 HeaderComp.prototype.setMultiSortOrder = function () {
14686 if (!this.eSortOrder) {
14687 return;
14688 }
14689 var col = this.params.column;
14690 var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();
14691 var indexThisCol = allColumnsWithSorting.indexOf(col);
14692 var moreThanOneColSorting = allColumnsWithSorting.length > 1;
14693 var showIndex = col.isSorting() && moreThanOneColSorting;
14694 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(this.eSortOrder, showIndex);
14695 if (indexThisCol >= 0) {
14696 this.eSortOrder.innerHTML = (indexThisCol + 1).toString();
14697 }
14698 else {
14699 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["clearElement"])(this.eSortOrder);
14700 }
14701 };
14702 HeaderComp.prototype.setupFilterIcon = function () {
14703 if (!this.eFilter) {
14704 return;
14705 }
14706 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
14707 this.onFilterChanged();
14708 };
14709 HeaderComp.prototype.onFilterChanged = function () {
14710 var filterPresent = this.params.column.isFilterActive();
14711 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eFilter, 'ag-hidden', !filterPresent);
14712 };
14713 HeaderComp.TEMPLATE = "<div class=\"ag-cell-label-container\" role=\"presentation\">\n <span ref=\"eMenu\" class=\"ag-header-icon ag-header-cell-menu-button\" aria-hidden=\"true\"></span>\n <div ref=\"eLabel\" class=\"ag-header-cell-label\" role=\"presentation\" unselectable=\"on\">\n <span ref=\"eText\" class=\"ag-header-cell-text\" unselectable=\"on\"></span>\n <span ref=\"eFilter\" class=\"ag-header-icon ag-header-label-icon ag-filter-icon\" aria-hidden=\"true\"></span>\n <span ref=\"eSortOrder\" class=\"ag-header-icon ag-header-label-icon ag-sort-order\" aria-hidden=\"true\"></span>\n <span ref=\"eSortAsc\" class=\"ag-header-icon ag-header-label-icon ag-sort-ascending-icon\" aria-hidden=\"true\"></span>\n <span ref=\"eSortDesc\" class=\"ag-header-icon ag-header-label-icon ag-sort-descending-icon\" aria-hidden=\"true\"></span>\n <span ref=\"eSortNone\" class=\"ag-header-icon ag-header-label-icon ag-sort-none-icon\" aria-hidden=\"true\"></span>\n </div>\n </div>";
14714 __decorate([
14715 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('sortController')
14716 ], HeaderComp.prototype, "sortController", void 0);
14717 __decorate([
14718 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('menuFactory')
14719 ], HeaderComp.prototype, "menuFactory", void 0);
14720 __decorate([
14721 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eFilter')
14722 ], HeaderComp.prototype, "eFilter", void 0);
14723 __decorate([
14724 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortAsc')
14725 ], HeaderComp.prototype, "eSortAsc", void 0);
14726 __decorate([
14727 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortDesc')
14728 ], HeaderComp.prototype, "eSortDesc", void 0);
14729 __decorate([
14730 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortNone')
14731 ], HeaderComp.prototype, "eSortNone", void 0);
14732 __decorate([
14733 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eSortOrder')
14734 ], HeaderComp.prototype, "eSortOrder", void 0);
14735 __decorate([
14736 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eMenu')
14737 ], HeaderComp.prototype, "eMenu", void 0);
14738 __decorate([
14739 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eLabel')
14740 ], HeaderComp.prototype, "eLabel", void 0);
14741 __decorate([
14742 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eText')
14743 ], HeaderComp.prototype, "eText", void 0);
14744 return HeaderComp;
14745}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
14746
14747
14748
14749/***/ }),
14750/* 70 */
14751/***/ (function(module, __webpack_exports__, __webpack_require__) {
14752
14753"use strict";
14754__webpack_require__.r(__webpack_exports__);
14755/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return TouchListener; });
14756/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
14757/* harmony import */ var _utils_mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);
14758/**
14759 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14760 * @version v25.3.0
14761 * @link http://www.ag-grid.com/
14762 * @license MIT
14763 */
14764
14765
14766var TouchListener = /** @class */ (function () {
14767 function TouchListener(eElement, preventMouseClick) {
14768 var _this = this;
14769 if (preventMouseClick === void 0) { preventMouseClick = false; }
14770 this.destroyFuncs = [];
14771 this.touching = false;
14772 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
14773 this.eElement = eElement;
14774 this.preventMouseClick = preventMouseClick;
14775 var startListener = this.onTouchStart.bind(this);
14776 var moveListener = this.onTouchMove.bind(this);
14777 var endListener = this.onTouchEnd.bind(this);
14778 this.eElement.addEventListener("touchstart", startListener, { passive: true });
14779 this.eElement.addEventListener("touchmove", moveListener, { passive: true });
14780 // we set passive=false, as we want to prevent default on this event
14781 this.eElement.addEventListener("touchend", endListener, { passive: false });
14782 this.destroyFuncs.push(function () {
14783 _this.eElement.removeEventListener("touchstart", startListener, { passive: true });
14784 _this.eElement.removeEventListener("touchmove", moveListener, { passive: true });
14785 _this.eElement.removeEventListener("touchend", endListener, { passive: false });
14786 });
14787 }
14788 TouchListener.prototype.getActiveTouch = function (touchList) {
14789 for (var i = 0; i < touchList.length; i++) {
14790 var matches = touchList[i].identifier === this.touchStart.identifier;
14791 if (matches) {
14792 return touchList[i];
14793 }
14794 }
14795 return null;
14796 };
14797 TouchListener.prototype.addEventListener = function (eventType, listener) {
14798 this.eventService.addEventListener(eventType, listener);
14799 };
14800 TouchListener.prototype.removeEventListener = function (eventType, listener) {
14801 this.eventService.removeEventListener(eventType, listener);
14802 };
14803 TouchListener.prototype.onTouchStart = function (touchEvent) {
14804 var _this = this;
14805 // only looking at one touch point at any time
14806 if (this.touching) {
14807 return;
14808 }
14809 this.touchStart = touchEvent.touches[0];
14810 this.touching = true;
14811 this.moved = false;
14812 var touchStartCopy = this.touchStart;
14813 window.setTimeout(function () {
14814 var touchesMatch = _this.touchStart === touchStartCopy;
14815 if (_this.touching && touchesMatch && !_this.moved) {
14816 _this.moved = true;
14817 var event_1 = {
14818 type: TouchListener.EVENT_LONG_TAP,
14819 touchStart: _this.touchStart,
14820 touchEvent: touchEvent
14821 };
14822 _this.eventService.dispatchEvent(event_1);
14823 }
14824 }, 500);
14825 };
14826 TouchListener.prototype.onTouchMove = function (touchEvent) {
14827 if (!this.touching) {
14828 return;
14829 }
14830 var touch = this.getActiveTouch(touchEvent.touches);
14831 if (!touch) {
14832 return;
14833 }
14834 var eventIsFarAway = !Object(_utils_mouse__WEBPACK_IMPORTED_MODULE_1__["areEventsNear"])(touch, this.touchStart, 4);
14835 if (eventIsFarAway) {
14836 this.moved = true;
14837 }
14838 };
14839 TouchListener.prototype.onTouchEnd = function (touchEvent) {
14840 if (!this.touching) {
14841 return;
14842 }
14843 if (!this.moved) {
14844 var event_2 = {
14845 type: TouchListener.EVENT_TAP,
14846 touchStart: this.touchStart
14847 };
14848 this.eventService.dispatchEvent(event_2);
14849 this.checkForDoubleTap();
14850 }
14851 // stops the tap from also been processed as a mouse click
14852 if (this.preventMouseClick) {
14853 touchEvent.preventDefault();
14854 }
14855 this.touching = false;
14856 };
14857 TouchListener.prototype.checkForDoubleTap = function () {
14858 var now = new Date().getTime();
14859 if (this.lastTapTime && this.lastTapTime > 0) {
14860 // if previous tap, see if duration is short enough to be considered double tap
14861 var interval = now - this.lastTapTime;
14862 if (interval > TouchListener.DOUBLE_TAP_MILLIS) {
14863 // dispatch double tap event
14864 var event_3 = {
14865 type: TouchListener.EVENT_DOUBLE_TAP,
14866 touchStart: this.touchStart
14867 };
14868 this.eventService.dispatchEvent(event_3);
14869 // this stops a tripple tap ending up as two double taps
14870 this.lastTapTime = null;
14871 }
14872 else {
14873 this.lastTapTime = now;
14874 }
14875 }
14876 else {
14877 this.lastTapTime = now;
14878 }
14879 };
14880 TouchListener.prototype.destroy = function () {
14881 this.destroyFuncs.forEach(function (func) { return func(); });
14882 };
14883 TouchListener.EVENT_TAP = "tap";
14884 TouchListener.EVENT_DOUBLE_TAP = "doubleTap";
14885 TouchListener.EVENT_LONG_TAP = "longTap";
14886 TouchListener.DOUBLE_TAP_MILLIS = 500;
14887 return TouchListener;
14888}());
14889
14890
14891
14892/***/ }),
14893/* 71 */
14894/***/ (function(module, __webpack_exports__, __webpack_require__) {
14895
14896"use strict";
14897__webpack_require__.r(__webpack_exports__);
14898/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupComp", function() { return HeaderGroupComp; });
14899/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
14900/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
14901/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70);
14902/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
14903/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
14904/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26);
14905/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21);
14906/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
14907/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(50);
14908/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
14909/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15);
14910/**
14911 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
14912 * @version v25.3.0
14913 * @link http://www.ag-grid.com/
14914 * @license MIT
14915 */
14916var __extends = (undefined && undefined.__extends) || (function () {
14917 var extendStatics = function (d, b) {
14918 extendStatics = Object.setPrototypeOf ||
14919 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14920 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
14921 return extendStatics(d, b);
14922 };
14923 return function (d, b) {
14924 extendStatics(d, b);
14925 function __() { this.constructor = d; }
14926 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14927 };
14928})();
14929var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14930 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14931 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14932 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;
14933 return c > 3 && r && Object.defineProperty(target, key, r), r;
14934};
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946var HeaderGroupComp = /** @class */ (function (_super) {
14947 __extends(HeaderGroupComp, _super);
14948 function HeaderGroupComp() {
14949 return _super.call(this, HeaderGroupComp.TEMPLATE) || this;
14950 }
14951 // this is a user component, and IComponent has "public destroy()" as part of the interface.
14952 // so we need to override destroy() just to make the method public.
14953 HeaderGroupComp.prototype.destroy = function () {
14954 _super.prototype.destroy.call(this);
14955 };
14956 HeaderGroupComp.prototype.init = function (params) {
14957 this.params = params;
14958 this.checkWarnings();
14959 this.setupLabel();
14960 this.addGroupExpandIcon();
14961 this.setupExpandIcons();
14962 };
14963 HeaderGroupComp.prototype.checkWarnings = function () {
14964 var paramsAny = this.params;
14965 if (paramsAny.template) {
14966 var message_1 = "A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)";
14967 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');
14968 }
14969 };
14970 HeaderGroupComp.prototype.setupExpandIcons = function () {
14971 var _this = this;
14972 this.addInIcon("columnGroupOpened", "agOpened");
14973 this.addInIcon("columnGroupClosed", "agClosed");
14974 var expandAction = function (event) {
14975 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(event)) {
14976 return;
14977 }
14978 var newExpandedValue = !_this.params.columnGroup.isExpanded();
14979 _this.columnController.setColumnGroupOpened(_this.params.columnGroup.getOriginalColumnGroup(), newExpandedValue, "uiColumnExpanded");
14980 };
14981 this.addTouchAndClickListeners(this.eCloseIcon, expandAction);
14982 this.addTouchAndClickListeners(this.eOpenIcon, expandAction);
14983 var stopPropagationAction = function (event) {
14984 Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["stopPropagationForAgGrid"])(event);
14985 };
14986 // adding stopPropagation to the double click for the icons prevents double click action happening
14987 // when the icons are clicked. if the icons are double clicked, then the groups should open and
14988 // then close again straight away. if we also listened to double click, then the group would open,
14989 // close, then open, which is not what we want. double click should only action if the user double
14990 // clicks outside of the icons.
14991 this.addManagedListener(this.eCloseIcon, "dblclick", stopPropagationAction);
14992 this.addManagedListener(this.eOpenIcon, "dblclick", stopPropagationAction);
14993 this.addManagedListener(this.getGui(), "dblclick", expandAction);
14994 this.updateIconVisibility();
14995 var originalColumnGroup = this.params.columnGroup.getOriginalColumnGroup();
14996 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"].EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));
14997 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_4__["OriginalColumnGroup"].EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));
14998 };
14999 HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {
15000 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_2__["TouchListener"](eElement, true);
15001 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_2__["TouchListener"].EVENT_TAP, action);
15002 this.addDestroyFunc(function () { return touchListener.destroy(); });
15003 this.addManagedListener(eElement, "click", action);
15004 };
15005 HeaderGroupComp.prototype.updateIconVisibility = function () {
15006 var columnGroup = this.params.columnGroup;
15007 if (columnGroup.isExpandable()) {
15008 var expanded = this.params.columnGroup.isExpanded();
15009 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eOpenIcon, expanded);
15010 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eCloseIcon, !expanded);
15011 }
15012 else {
15013 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eOpenIcon, false);
15014 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eCloseIcon, false);
15015 }
15016 };
15017 HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {
15018 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_8__["createIconNoSpan"])(iconName, this.gridOptionsWrapper, null);
15019 if (eIcon) {
15020 this.getRefElement(refName).appendChild(eIcon);
15021 }
15022 };
15023 HeaderGroupComp.prototype.addGroupExpandIcon = function () {
15024 if (!this.params.columnGroup.isExpandable()) {
15025 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eOpenIcon, false);
15026 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eCloseIcon, false);
15027 return;
15028 }
15029 };
15030 HeaderGroupComp.prototype.setupLabel = function () {
15031 // no renderer, default text render
15032 var displayName = this.params.displayName;
15033 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(displayName)) {
15034 var displayNameSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_5__["escapeString"])(displayName);
15035 this.getRefElement('agLabel').innerHTML = displayNameSanitised;
15036 }
15037 };
15038 HeaderGroupComp.TEMPLATE = "<div class=\"ag-header-group-cell-label\" ref=\"agContainer\" role=\"presentation\">\n <span ref=\"agLabel\" class=\"ag-header-group-text\" role=\"presentation\"></span>\n <span ref=\"agOpened\" class=\"ag-header-icon ag-header-expand-icon ag-header-expand-icon-expanded\"></span>\n <span ref=\"agClosed\" class=\"ag-header-icon ag-header-expand-icon ag-header-expand-icon-collapsed\"></span>\n </div>";
15039 __decorate([
15040 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("columnController")
15041 ], HeaderGroupComp.prototype, "columnController", void 0);
15042 __decorate([
15043 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])("agOpened")
15044 ], HeaderGroupComp.prototype, "eOpenIcon", void 0);
15045 __decorate([
15046 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])("agClosed")
15047 ], HeaderGroupComp.prototype, "eCloseIcon", void 0);
15048 return HeaderGroupComp;
15049}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
15050
15051
15052
15053/***/ }),
15054/* 72 */
15055/***/ (function(module, __webpack_exports__, __webpack_require__) {
15056
15057"use strict";
15058__webpack_require__.r(__webpack_exports__);
15059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return GroupCellRenderer; });
15060/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
15061/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
15062/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
15063/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73);
15064/* harmony import */ var _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(74);
15065/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(59);
15066/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75);
15067/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15);
15068/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);
15069/* harmony import */ var _utils_general__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(46);
15070/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
15071/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50);
15072/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(51);
15073/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(7);
15074/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(21);
15075/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(47);
15076/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(60);
15077/* harmony import */ var _row_rowDragComp__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(77);
15078/**
15079 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
15080 * @version v25.3.0
15081 * @link http://www.ag-grid.com/
15082 * @license MIT
15083 */
15084var __extends = (undefined && undefined.__extends) || (function () {
15085 var extendStatics = function (d, b) {
15086 extendStatics = Object.setPrototypeOf ||
15087 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15088 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
15089 return extendStatics(d, b);
15090 };
15091 return function (d, b) {
15092 extendStatics(d, b);
15093 function __() { this.constructor = d; }
15094 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15095 };
15096})();
15097var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15098 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15099 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15100 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;
15101 return c > 3 && r && Object.defineProperty(target, key, r), r;
15102};
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121var GroupCellRenderer = /** @class */ (function (_super) {
15122 __extends(GroupCellRenderer, _super);
15123 function GroupCellRenderer() {
15124 return _super.call(this, GroupCellRenderer.TEMPLATE) || this;
15125 }
15126 GroupCellRenderer.prototype.isTopLevelFooter = function () {
15127 if (!this.gridOptionsWrapper.isGroupIncludeTotalFooter()) {
15128 return false;
15129 }
15130 if (this.params.value != null || this.params.node.level != -1) {
15131 return false;
15132 }
15133 // at this point, we know it's the root node and there is no value present, so it's a footer cell.
15134 // the only thing to work out is if we are displaying groups across multiple
15135 // columns (groupMultiAutoColumn=true), we only want 'total' to appear in the first column.
15136 var colDef = this.params.colDef;
15137 var doingFullWidth = colDef == null;
15138 if (doingFullWidth) {
15139 return true;
15140 }
15141 if (colDef.showRowGroup === true) {
15142 return true;
15143 }
15144 var rowGroupCols = this.columnController.getRowGroupColumns();
15145 // this is a sanity check, rowGroupCols should always be present
15146 if (!rowGroupCols || rowGroupCols.length === 0) {
15147 return true;
15148 }
15149 var firstRowGroupCol = rowGroupCols[0];
15150 return firstRowGroupCol.getId() === colDef.showRowGroup;
15151 };
15152 GroupCellRenderer.prototype.init = function (params) {
15153 this.params = params;
15154 var topLevelFooter = this.isTopLevelFooter();
15155 var embeddedRowMismatch = this.isEmbeddedRowMismatch();
15156 // This allows for empty strings to appear as groups since
15157 // it will only return for null or undefined.
15158 var nullValue = params.value == null;
15159 var skipCell = false;
15160 // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true
15161 // we should only display the groupCellRenderer if the current column is the rowGroupedColumn
15162 if (this.gridOptionsWrapper.isGroupIncludeFooter() && this.gridOptionsWrapper.isGroupHideOpenParents()) {
15163 var node = params.node;
15164 if (node.footer) {
15165 var showRowGroup = params.colDef && params.colDef.showRowGroup;
15166 var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();
15167 skipCell = showRowGroup !== rowGroupColumnId;
15168 }
15169 }
15170 this.cellIsBlank = topLevelFooter ? false : (embeddedRowMismatch || nullValue || skipCell);
15171 if (this.cellIsBlank) {
15172 return;
15173 }
15174 this.setupDragOpenParents();
15175 this.addFullWidthRowDraggerIfNeeded();
15176 this.addExpandAndContract();
15177 this.addCheckboxIfNeeded();
15178 this.addValueElement();
15179 this.setupIndent();
15180 };
15181 // if we are doing embedded full width rows, we only show the renderer when
15182 // in the body, or if pinning in the pinned section, or if pinning and RTL,
15183 // in the right section. otherwise we would have the cell repeated in each section.
15184 GroupCellRenderer.prototype.isEmbeddedRowMismatch = function () {
15185 if (!this.params.fullWidth || !this.gridOptionsWrapper.isEmbedFullWidthRows()) {
15186 return false;
15187 }
15188 var pinnedLeftCell = this.params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_LEFT;
15189 var pinnedRightCell = this.params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_RIGHT;
15190 var bodyCell = !pinnedLeftCell && !pinnedRightCell;
15191 if (this.gridOptionsWrapper.isEnableRtl()) {
15192 if (this.columnController.isPinningLeft()) {
15193 return !pinnedRightCell;
15194 }
15195 return !bodyCell;
15196 }
15197 if (this.columnController.isPinningLeft()) {
15198 return !pinnedLeftCell;
15199 }
15200 return !bodyCell;
15201 };
15202 GroupCellRenderer.prototype.setIndent = function () {
15203 if (this.gridOptionsWrapper.isGroupHideOpenParents()) {
15204 return;
15205 }
15206 var params = this.params;
15207 var rowNode = params.node;
15208 // if we are only showing one group column, we don't want to be indenting based on level
15209 var fullWithRow = !!params.colDef;
15210 var manyDimensionThisColumn = !fullWithRow || params.colDef.showRowGroup === true;
15211 var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;
15212 var userProvidedPaddingPixelsTheDeprecatedWay = params.padding >= 0;
15213 if (userProvidedPaddingPixelsTheDeprecatedWay) {
15214 this.setPaddingDeprecatedWay(paddingCount, params.padding);
15215 return;
15216 }
15217 if (this.indentClass) {
15218 this.removeCssClass(this.indentClass);
15219 }
15220 this.indentClass = 'ag-row-group-indent-' + paddingCount;
15221 this.addCssClass(this.indentClass);
15222 };
15223 GroupCellRenderer.prototype.setPaddingDeprecatedWay = function (paddingCount, padding) {
15224 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () { return console.warn('AG Grid: since v14.2, configuring padding for groupCellRenderer should be done with Sass variables and themes. Please see the AG Grid documentation page for Themes, in particular the property $row-group-indent-size.'); }, 'groupCellRenderer->doDeprecatedWay');
15225 var paddingPx = paddingCount * padding;
15226 var eGui = this.getGui();
15227 var paddingSide = this.gridOptionsWrapper.isEnableRtl() ? 'paddingRight' : 'paddingLeft';
15228 eGui.style[paddingSide] = paddingPx + "px";
15229 };
15230 GroupCellRenderer.prototype.setupIndent = function () {
15231 // only do this if an indent - as this overwrites the padding that
15232 // the theme set, which will make things look 'not aligned' for the
15233 // first group level.
15234 var node = this.params.node;
15235 var suppressPadding = this.params.suppressPadding;
15236 if (!suppressPadding) {
15237 this.addManagedListener(node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));
15238 this.setIndent();
15239 }
15240 };
15241 GroupCellRenderer.prototype.addValueElement = function () {
15242 if (this.displayedGroup.footer) {
15243 this.addFooterValue();
15244 }
15245 else {
15246 this.addGroupValue();
15247 this.addChildCount();
15248 }
15249 };
15250 GroupCellRenderer.prototype.addFooterValue = function () {
15251 var footerValueGetter = this.params.footerValueGetter;
15252 var footerValue;
15253 if (footerValueGetter) {
15254 // params is same as we were given, except we set the value as the item to display
15255 var paramsClone = Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["cloneObject"])(this.params);
15256 paramsClone.value = this.params.value;
15257 if (typeof footerValueGetter === 'function') {
15258 footerValue = footerValueGetter(paramsClone);
15259 }
15260 else if (typeof footerValueGetter === 'string') {
15261 footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);
15262 }
15263 else {
15264 console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');
15265 }
15266 }
15267 else {
15268 footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');
15269 }
15270 this.eValue.innerHTML = footerValue;
15271 };
15272 GroupCellRenderer.prototype.addGroupValue = function () {
15273 var _this = this;
15274 var params = this.params;
15275 var rowGroupColumn = this.displayedGroup.rowGroupColumn;
15276 // we try and use the cellRenderer of the column used for the grouping if we can
15277 var columnToUse = rowGroupColumn ? rowGroupColumn : params.column;
15278 var groupName = this.params.value;
15279 var valueFormatted = columnToUse ?
15280 this.valueFormatterService.formatValue(columnToUse, params.node, params.scope, groupName) : null;
15281 params.valueFormatted = valueFormatted;
15282 var rendererPromise;
15283 rendererPromise = params.fullWidth
15284 ? this.useFullWidth(params)
15285 : this.useInnerRenderer(this.params.colDef.cellRendererParams, columnToUse.getColDef(), params);
15286 // retain a reference to the created renderer - we'll use this later for cleanup (in destroy)
15287 if (rendererPromise) {
15288 rendererPromise.then(function (value) {
15289 _this.innerCellRenderer = value;
15290 });
15291 }
15292 };
15293 GroupCellRenderer.prototype.useInnerRenderer = function (groupCellRendererParams, groupedColumnDef, // the column this group row is for, eg 'Country'
15294 params) {
15295 var _this = this;
15296 // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country
15297 // and then rating, we will use the country cell renderer for each country group row and likewise the rating
15298 // cell renderer for each rating group row.
15299 //
15300 // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers
15301 // of the grouped columns.
15302 //
15303 // so we check and use in the following order:
15304 //
15305 // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)
15306 // 2) groupedColDef.cellRenderer of the grouped column
15307 // 3) groupedColDef.cellRendererParams.innerRenderer
15308 var cellRendererPromise = null;
15309 // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer
15310 var groupInnerRendererClass = this.userComponentFactory
15311 .lookupComponentClassDef(groupCellRendererParams, "innerRenderer");
15312 if (groupInnerRendererClass && groupInnerRendererClass.component != null
15313 && groupInnerRendererClass.source != _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__["ComponentSource"].DEFAULT) {
15314 // use the renderer defined in cellRendererParams.innerRenderer
15315 cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupCellRendererParams, params);
15316 }
15317 else {
15318 // otherwise see if we can use the cellRenderer of the column we are grouping by
15319 var groupColumnRendererClass = this.userComponentFactory
15320 .lookupComponentClassDef(groupedColumnDef, "cellRenderer");
15321 if (groupColumnRendererClass &&
15322 groupColumnRendererClass.source != _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__["ComponentSource"].DEFAULT) {
15323 // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it
15324 cellRendererPromise = this.userComponentFactory.newCellRenderer(groupedColumnDef, params);
15325 }
15326 else if (groupColumnRendererClass &&
15327 groupColumnRendererClass.source == _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_6__["ComponentSource"].DEFAULT &&
15328 (Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["get"])(groupedColumnDef, 'cellRendererParams.innerRenderer', null))) {
15329 // EDGE CASE - THIS COMES FROM A COLUMN WHICH HAS BEEN GROUPED DYNAMICALLY, THAT HAS AS RENDERER 'group'
15330 // AND HAS A INNER CELL RENDERER
15331 cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupedColumnDef.cellRendererParams, params);
15332 }
15333 else {
15334 // This forces the retrieval of the default plain cellRenderer that just renders the values.
15335 cellRendererPromise = this.userComponentFactory.newCellRenderer({}, params);
15336 }
15337 }
15338 if (cellRendererPromise != null) {
15339 cellRendererPromise.then(function (rendererToUse) {
15340 if (rendererToUse == null) {
15341 _this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;
15342 return;
15343 }
15344 Object(_utils_general__WEBPACK_IMPORTED_MODULE_9__["bindCellRendererToHtmlElement"])(cellRendererPromise, _this.eValue);
15345 });
15346 }
15347 else {
15348 this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;
15349 }
15350 return cellRendererPromise;
15351 };
15352 GroupCellRenderer.prototype.useFullWidth = function (params) {
15353 var cellRendererPromise = this.userComponentFactory.newFullWidthGroupRowInnerCellRenderer(params);
15354 if (cellRendererPromise != null) {
15355 Object(_utils_general__WEBPACK_IMPORTED_MODULE_9__["bindCellRendererToHtmlElement"])(cellRendererPromise, this.eValue);
15356 }
15357 else {
15358 this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;
15359 }
15360 return cellRendererPromise;
15361 };
15362 GroupCellRenderer.prototype.addFullWidthRowDraggerIfNeeded = function () {
15363 var _this = this;
15364 if (!this.params.fullWidth || !this.params.rowDrag) {
15365 return;
15366 }
15367 var rowDragComp = new _row_rowDragComp__WEBPACK_IMPORTED_MODULE_17__["RowDragComp"](function () { return _this.params.value; }, this.params.node);
15368 this.createManagedBean(rowDragComp, this.context);
15369 this.getGui().insertAdjacentElement('afterbegin', rowDragComp.getGui());
15370 };
15371 GroupCellRenderer.prototype.addChildCount = function () {
15372 // only include the child count if it's included, eg if user doing custom aggregation,
15373 // then this could be left out, or set to -1, ie no child count
15374 if (this.params.suppressCount) {
15375 return;
15376 }
15377 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));
15378 // filtering changes the child count, so need to cater for it
15379 this.updateChildCount();
15380 };
15381 GroupCellRenderer.prototype.updateChildCount = function () {
15382 var allChildrenCount = this.displayedGroup.allChildrenCount;
15383 var showingGroupForThisNode = this.isShowRowGroupForThisRow();
15384 var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;
15385 var countString = showCount ? "(" + allChildrenCount + ")" : "";
15386 this.eChildCount.innerHTML = countString;
15387 };
15388 GroupCellRenderer.prototype.isUserWantsSelected = function () {
15389 var paramsCheckbox = this.params.checkbox;
15390 if (typeof paramsCheckbox === 'function') {
15391 return paramsCheckbox(this.params);
15392 }
15393 return paramsCheckbox === true;
15394 };
15395 GroupCellRenderer.prototype.addCheckboxIfNeeded = function () {
15396 var _this = this;
15397 var rowNode = this.displayedGroup;
15398 var checkboxNeeded = this.isUserWantsSelected() &&
15399 // footers cannot be selected
15400 !rowNode.footer &&
15401 // pinned rows cannot be selected
15402 !rowNode.rowPinned &&
15403 // details cannot be selected
15404 !rowNode.detail;
15405 if (checkboxNeeded) {
15406 var cbSelectionComponent_1 = new _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_4__["CheckboxSelectionComponent"]();
15407 this.getContext().createBean(cbSelectionComponent_1);
15408 cbSelectionComponent_1.init({ rowNode: rowNode, column: this.params.column });
15409 this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());
15410 this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });
15411 }
15412 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eCheckbox, 'ag-invisible', !checkboxNeeded);
15413 };
15414 GroupCellRenderer.prototype.addExpandAndContract = function () {
15415 var params = this.params;
15416 var eGroupCell = params.eGridCell;
15417 var eExpandedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_11__["createIconNoSpan"])('groupExpanded', this.gridOptionsWrapper, null);
15418 var eContractedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_11__["createIconNoSpan"])('groupContracted', this.gridOptionsWrapper, null);
15419 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_15__["setAriaExpanded"])(eGroupCell, !!params.node.expanded);
15420 if (eExpandedIcon) {
15421 this.eExpanded.appendChild(eExpandedIcon);
15422 }
15423 if (eContractedIcon) {
15424 this.eContracted.appendChild(eContractedIcon);
15425 }
15426 this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));
15427 this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));
15428 // expand / contract as the user hits enter
15429 this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));
15430 this.addManagedListener(params.node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));
15431 this.showExpandAndContractIcons();
15432 // because we don't show the expand / contract when there are no children, we need to check every time
15433 // the number of children change.
15434 var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);
15435 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);
15436 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_MASTER_CHANGED, expandableChangedListener);
15437 this.addManagedListener(this.displayedGroup, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);
15438 // if editing groups, then double click is to start editing
15439 if (!this.gridOptionsWrapper.isEnableGroupEdit() && this.isExpandable() && !params.suppressDoubleClickExpand) {
15440 this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));
15441 }
15442 };
15443 GroupCellRenderer.prototype.onRowNodeIsExpandableChanged = function () {
15444 // maybe if no children now, we should hide the expand / contract icons
15445 this.showExpandAndContractIcons();
15446 // if we have no children, this impacts the indent
15447 this.setIndent();
15448 };
15449 GroupCellRenderer.prototype.onKeyDown = function (event) {
15450 var enterKeyPressed = Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_12__["isKeyPressed"])(event, _constants_keyCode__WEBPACK_IMPORTED_MODULE_16__["KeyCode"].ENTER);
15451 if (!enterKeyPressed || this.params.suppressEnterExpand) {
15452 return;
15453 }
15454 var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);
15455 if (cellEditable) {
15456 return;
15457 }
15458 this.onExpandOrContract();
15459 };
15460 GroupCellRenderer.prototype.setupDragOpenParents = function () {
15461 var column = this.params.column;
15462 var rowNode = this.params.node;
15463 if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {
15464 this.draggedFromHideOpenParents = false;
15465 }
15466 else if (!rowNode.hasChildren()) {
15467 // if we are here, and we are not a group, then we must of been dragged down,
15468 // as otherwise the cell would be blank, and if cell is blank, this method is never called.
15469 this.draggedFromHideOpenParents = true;
15470 }
15471 else {
15472 var rowGroupColumn = rowNode.rowGroupColumn;
15473 if (rowGroupColumn) {
15474 // if the displayGroup column for this col matches the rowGroupColumn we grouped by for this node,
15475 // then nothing was dragged down
15476 this.draggedFromHideOpenParents = !column.isRowGroupDisplayed(rowGroupColumn.getId());
15477 }
15478 else {
15479 // the only way we can end up here (no column, but a group) is if we are at the root node,
15480 // which only happens when 'groupIncludeTotalFooter' is true. here, we are never dragging
15481 this.draggedFromHideOpenParents = false;
15482 }
15483 }
15484 if (this.draggedFromHideOpenParents) {
15485 var pointer = rowNode.parent;
15486 while (true) {
15487 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_13__["missing"])(pointer)) {
15488 break;
15489 }
15490 if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {
15491 this.displayedGroup = pointer;
15492 break;
15493 }
15494 pointer = pointer.parent;
15495 }
15496 }
15497 // if we didn't find a displayed group, set it to the row node
15498 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_13__["missing"])(this.displayedGroup)) {
15499 this.displayedGroup = rowNode;
15500 }
15501 };
15502 GroupCellRenderer.prototype.onExpandClicked = function (mouseEvent) {
15503 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isStopPropagationForAgGrid"])(mouseEvent)) {
15504 return;
15505 }
15506 // so if we expand a node, it does not also get selected.
15507 Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["stopPropagationForAgGrid"])(mouseEvent);
15508 this.onExpandOrContract();
15509 };
15510 GroupCellRenderer.prototype.onCellDblClicked = function (mouseEvent) {
15511 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isStopPropagationForAgGrid"])(mouseEvent)) {
15512 return;
15513 }
15514 // we want to avoid acting on double click events on the expand / contract icon,
15515 // as that icons already has expand / collapse functionality on it. otherwise if
15516 // the icon was double clicked, we would get 'click', 'click', 'dblclick' which
15517 // is open->close->open, however double click should be open->close only.
15518 var targetIsExpandIcon = Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isElementInEventPath"])(this.eExpanded, mouseEvent)
15519 || Object(_utils_event__WEBPACK_IMPORTED_MODULE_14__["isElementInEventPath"])(this.eContracted, mouseEvent);
15520 if (!targetIsExpandIcon) {
15521 this.onExpandOrContract();
15522 }
15523 };
15524 GroupCellRenderer.prototype.onExpandOrContract = function () {
15525 // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row
15526 var rowNode = this.displayedGroup;
15527 var params = this.params;
15528 var nextExpandState = !rowNode.expanded;
15529 rowNode.setExpanded(nextExpandState);
15530 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_15__["setAriaExpanded"])(params.eGridCell, nextExpandState);
15531 };
15532 GroupCellRenderer.prototype.isShowRowGroupForThisRow = function () {
15533 if (this.gridOptionsWrapper.isTreeData()) {
15534 return true;
15535 }
15536 var rowGroupColumn = this.displayedGroup.rowGroupColumn;
15537 if (!rowGroupColumn) {
15538 return false;
15539 }
15540 // column is null for fullWidthRows
15541 var column = this.params.column;
15542 var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());
15543 return thisColumnIsInterested;
15544 };
15545 GroupCellRenderer.prototype.isExpandable = function () {
15546 if (this.draggedFromHideOpenParents) {
15547 return true;
15548 }
15549 var rowNode = this.displayedGroup;
15550 var reducedLeafNode = this.columnController.isPivotMode() && rowNode.leafGroup;
15551 var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;
15552 if (!expandableGroup) {
15553 return false;
15554 }
15555 // column is null for fullWidthRows
15556 var column = this.params.column;
15557 var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';
15558 if (displayingForOneColumnOnly) {
15559 var showing = this.isShowRowGroupForThisRow();
15560 return showing;
15561 }
15562 return true;
15563 };
15564 GroupCellRenderer.prototype.showExpandAndContractIcons = function () {
15565 var _a = this, eContracted = _a.eContracted, eExpanded = _a.eExpanded, params = _a.params, displayedGroup = _a.displayedGroup, columnController = _a.columnController;
15566 var eGridCell = params.eGridCell, node = params.node;
15567 var isExpandable = this.isExpandable();
15568 if (isExpandable) {
15569 // if expandable, show one based on expand state.
15570 // if we were dragged down, means our parent is always expanded
15571 var expanded = this.draggedFromHideOpenParents ? true : node.expanded;
15572 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eContracted, !expanded);
15573 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eExpanded, expanded);
15574 }
15575 else {
15576 // it not expandable, show neither
15577 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_15__["removeAriaExpanded"])(eGridCell);
15578 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eExpanded, false);
15579 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(eContracted, false);
15580 }
15581 // compensation padding for leaf nodes, so there is blank space instead of the expand icon
15582 var pivotMode = columnController.isPivotMode();
15583 var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;
15584 var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;
15585 var isTotalFooterNode = node.footer && node.level === -1;
15586 this.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);
15587 this.addOrRemoveCssClass('ag-row-group', addExpandableCss);
15588 if (pivotMode) {
15589 this.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);
15590 }
15591 else if (!isTotalFooterNode) {
15592 this.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);
15593 }
15594 };
15595 // this is a user component, and IComponent has "public destroy()" as part of the interface.
15596 // so we need to have public here instead of private or protected
15597 GroupCellRenderer.prototype.destroy = function () {
15598 this.getContext().destroyBean(this.innerCellRenderer);
15599 _super.prototype.destroy.call(this);
15600 };
15601 GroupCellRenderer.prototype.refresh = function () {
15602 return false;
15603 };
15604 GroupCellRenderer.TEMPLATE = "<span class=\"ag-cell-wrapper\">\n <span class=\"ag-group-expanded\" ref=\"eExpanded\"></span>\n <span class=\"ag-group-contracted\" ref=\"eContracted\"></span>\n <span class=\"ag-group-checkbox ag-invisible\" ref=\"eCheckbox\"></span>\n <span class=\"ag-group-value\" ref=\"eValue\"></span>\n <span class=\"ag-group-child-count\" ref=\"eChildCount\"></span>\n </span>";
15605 __decorate([
15606 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
15607 ], GroupCellRenderer.prototype, "rowRenderer", void 0);
15608 __decorate([
15609 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('expressionService')
15610 ], GroupCellRenderer.prototype, "expressionService", void 0);
15611 __decorate([
15612 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('valueFormatterService')
15613 ], GroupCellRenderer.prototype, "valueFormatterService", void 0);
15614 __decorate([
15615 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
15616 ], GroupCellRenderer.prototype, "columnController", void 0);
15617 __decorate([
15618 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
15619 ], GroupCellRenderer.prototype, "userComponentFactory", void 0);
15620 __decorate([
15621 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eExpanded')
15622 ], GroupCellRenderer.prototype, "eExpanded", void 0);
15623 __decorate([
15624 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eContracted')
15625 ], GroupCellRenderer.prototype, "eContracted", void 0);
15626 __decorate([
15627 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eCheckbox')
15628 ], GroupCellRenderer.prototype, "eCheckbox", void 0);
15629 __decorate([
15630 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eValue')
15631 ], GroupCellRenderer.prototype, "eValue", void 0);
15632 __decorate([
15633 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_5__["RefSelector"])('eChildCount')
15634 ], GroupCellRenderer.prototype, "eChildCount", void 0);
15635 return GroupCellRenderer;
15636}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
15637
15638
15639
15640/***/ }),
15641/* 73 */
15642/***/ (function(module, __webpack_exports__, __webpack_require__) {
15643
15644"use strict";
15645__webpack_require__.r(__webpack_exports__);
15646/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return RowNode; });
15647/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
15648/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
15649/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
15650/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
15651/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
15652/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
15653/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(26);
15654/**
15655 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
15656 * @version v25.3.0
15657 * @link http://www.ag-grid.com/
15658 * @license MIT
15659 */
15660var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15661 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15662 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15663 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;
15664 return c > 3 && r && Object.defineProperty(target, key, r), r;
15665};
15666
15667
15668
15669
15670
15671
15672
15673var RowNode = /** @class */ (function () {
15674 function RowNode() {
15675 /** The index of this node in the grid, only valid if node is displayed in the grid, otherwise it should be ignored as old index may be present */
15676 this.rowIndex = null;
15677 /** Groups only - The key for the group eg Ireland, UK, USA */
15678 this.key = null;
15679 /** Children mapped by the pivot columns */
15680 this.childrenMapped = {};
15681 /**
15682 * True if the RowNode is not filtered, or in a collapsed group.
15683 */
15684 this.displayed = false;
15685 /** The top pixel for this row */
15686 this.rowTop = null;
15687 /** The top pixel for this row last time, makes sense if data set was ordered or filtered,
15688 * it is used so new rows can animate in from their old position. */
15689 this.oldRowTop = null;
15690 /** True by default - can be overridden via gridOptions.isRowSelectable(rowNode) */
15691 this.selectable = true;
15692 /** Used by sorting service - to give deterministic sort to groups. Previously we
15693 * just id for this, however id is a string and had slower sorting compared to numbers. */
15694 this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;
15695 /** True when nodes with the same id are being removed and added as part of the same batch transaction */
15696 this.alreadyRendered = false;
15697 this.highlighted = null;
15698 this.selected = false;
15699 }
15700 RowNode.prototype.setData = function (data) {
15701 this.setDataCommon(data, false);
15702 };
15703 // similar to setRowData, however it is expected that the data is the same data item. this
15704 // is intended to be used with Redux type stores, where the whole data can be changed. we are
15705 // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the
15706 // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving
15707 // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).
15708 RowNode.prototype.updateData = function (data) {
15709 this.setDataCommon(data, true);
15710 };
15711 RowNode.prototype.setDataCommon = function (data, update) {
15712 var oldData = this.data;
15713 this.data = data;
15714 this.valueCache.onDataChanged();
15715 this.updateDataOnDetailNode();
15716 this.checkRowSelectable();
15717 var event = this.createDataChangedEvent(data, oldData, update);
15718 this.dispatchLocalEvent(event);
15719 };
15720 // when we are doing master / detail, the detail node is lazy created, but then kept around.
15721 // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data
15722 // in sync, otherwise expand/collapse of the detail would still show the old values.
15723 RowNode.prototype.updateDataOnDetailNode = function () {
15724 if (this.detailNode) {
15725 this.detailNode.data = this.data;
15726 }
15727 };
15728 RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {
15729 return {
15730 type: RowNode.EVENT_DATA_CHANGED,
15731 node: this,
15732 oldData: oldData,
15733 newData: newData,
15734 update: update
15735 };
15736 };
15737 RowNode.prototype.createLocalRowEvent = function (type) {
15738 return {
15739 type: type,
15740 node: this
15741 };
15742 };
15743 RowNode.prototype.getRowIndexString = function () {
15744 if (this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP) {
15745 return 't-' + this.rowIndex;
15746 }
15747 if (this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM) {
15748 return 'b-' + this.rowIndex;
15749 }
15750 return this.rowIndex.toString();
15751 };
15752 RowNode.prototype.createDaemonNode = function () {
15753 var oldNode = new RowNode();
15754 this.context.createBean(oldNode);
15755 // just copy the id and data, this is enough for the node to be used
15756 // in the selection controller (the selection controller is the only
15757 // place where daemon nodes can live).
15758 oldNode.id = this.id;
15759 oldNode.data = this.data;
15760 oldNode.daemon = true;
15761 oldNode.selected = this.selected;
15762 oldNode.level = this.level;
15763 return oldNode;
15764 };
15765 RowNode.prototype.setDataAndId = function (data, id) {
15766 var oldNode = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.id) ? this.createDaemonNode() : null;
15767 var oldData = this.data;
15768 this.data = data;
15769 this.updateDataOnDetailNode();
15770 this.setId(id);
15771 this.selectionController.syncInRowNode(this, oldNode);
15772 this.checkRowSelectable();
15773 var event = this.createDataChangedEvent(data, oldData, false);
15774 this.dispatchLocalEvent(event);
15775 };
15776 RowNode.prototype.checkRowSelectable = function () {
15777 var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();
15778 this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);
15779 };
15780 RowNode.prototype.setRowSelectable = function (newVal) {
15781 if (this.selectable !== newVal) {
15782 this.selectable = newVal;
15783 if (this.eventService) {
15784 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));
15785 }
15786 }
15787 };
15788 RowNode.prototype.setId = function (id) {
15789 // see if user is providing the id's
15790 var getRowNodeId = this.gridOptionsWrapper.getRowNodeIdFunc();
15791 if (getRowNodeId) {
15792 // if user is providing the id's, then we set the id only after the data has been set.
15793 // this is important for virtual pagination and viewport, where empty rows exist.
15794 if (this.data) {
15795 this.id = getRowNodeId(this.data);
15796 // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that
15797 // it has 'startsWith' in case the user provided a number.
15798 if (this.id && typeof this.id === 'string' && Object(_utils_string__WEBPACK_IMPORTED_MODULE_6__["startsWith"])(this.id, RowNode.ID_PREFIX_ROW_GROUP)) {
15799 console.error("AG Grid: Row ID's cannot start with " + RowNode.ID_PREFIX_ROW_GROUP + ", this is a reserved prefix for AG Grid's row grouping feature.");
15800 }
15801 }
15802 else {
15803 // this can happen if user has set blank into the rowNode after the row previously
15804 // having data. this happens in virtual page row model, when data is delete and
15805 // the page is refreshed.
15806 this.id = undefined;
15807 }
15808 }
15809 else {
15810 this.id = id;
15811 }
15812 };
15813 RowNode.prototype.isPixelInRange = function (pixel) {
15814 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.rowTop) || !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.rowHeight)) {
15815 return false;
15816 }
15817 return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);
15818 };
15819 RowNode.prototype.setFirstChild = function (firstChild) {
15820 if (this.firstChild === firstChild) {
15821 return;
15822 }
15823 this.firstChild = firstChild;
15824 if (this.eventService) {
15825 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));
15826 }
15827 };
15828 RowNode.prototype.setLastChild = function (lastChild) {
15829 if (this.lastChild === lastChild) {
15830 return;
15831 }
15832 this.lastChild = lastChild;
15833 if (this.eventService) {
15834 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));
15835 }
15836 };
15837 RowNode.prototype.setChildIndex = function (childIndex) {
15838 if (this.childIndex === childIndex) {
15839 return;
15840 }
15841 this.childIndex = childIndex;
15842 if (this.eventService) {
15843 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));
15844 }
15845 };
15846 RowNode.prototype.setRowTop = function (rowTop) {
15847 this.oldRowTop = this.rowTop;
15848 if (this.rowTop === rowTop) {
15849 return;
15850 }
15851 this.rowTop = rowTop;
15852 if (this.eventService) {
15853 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));
15854 }
15855 this.setDisplayed(rowTop !== null);
15856 };
15857 RowNode.prototype.clearRowTopAndRowIndex = function () {
15858 this.oldRowTop = null;
15859 this.setRowTop(null);
15860 this.setRowIndex(null);
15861 };
15862 RowNode.prototype.setDisplayed = function (displayed) {
15863 if (this.displayed === displayed) {
15864 return;
15865 }
15866 this.displayed = displayed;
15867 if (this.eventService) {
15868 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));
15869 }
15870 };
15871 RowNode.prototype.setDragging = function (dragging) {
15872 if (this.dragging === dragging) {
15873 return;
15874 }
15875 this.dragging = dragging;
15876 if (this.eventService) {
15877 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));
15878 }
15879 };
15880 RowNode.prototype.setHighlighted = function (highlighted) {
15881 if (highlighted === this.highlighted) {
15882 return;
15883 }
15884 this.highlighted = highlighted;
15885 if (this.eventService) {
15886 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));
15887 }
15888 };
15889 RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {
15890 if (this.allChildrenCount === allChildrenCount) {
15891 return;
15892 }
15893 this.allChildrenCount = allChildrenCount;
15894 if (this.eventService) {
15895 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));
15896 }
15897 };
15898 RowNode.prototype.setMaster = function (master) {
15899 if (this.master === master) {
15900 return;
15901 }
15902 // if changing AWAY from master, then unexpand, otherwise
15903 // next time it's shown it is expanded again
15904 if (this.master && !master) {
15905 this.expanded = false;
15906 }
15907 this.master = master;
15908 if (this.eventService) {
15909 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));
15910 }
15911 };
15912 RowNode.prototype.setRowHeight = function (rowHeight, estimated) {
15913 if (estimated === void 0) { estimated = false; }
15914 this.rowHeight = rowHeight;
15915 this.rowHeightEstimated = estimated;
15916 if (this.eventService) {
15917 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));
15918 }
15919 };
15920 RowNode.prototype.setRowIndex = function (rowIndex) {
15921 if (this.rowIndex === rowIndex) {
15922 return;
15923 }
15924 this.rowIndex = rowIndex;
15925 if (this.eventService) {
15926 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));
15927 }
15928 };
15929 RowNode.prototype.setUiLevel = function (uiLevel) {
15930 if (this.uiLevel === uiLevel) {
15931 return;
15932 }
15933 this.uiLevel = uiLevel;
15934 if (this.eventService) {
15935 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));
15936 }
15937 };
15938 RowNode.prototype.setExpanded = function (expanded) {
15939 if (this.expanded === expanded) {
15940 return;
15941 }
15942 this.expanded = expanded;
15943 if (this.eventService) {
15944 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));
15945 }
15946 var event = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["assign"])({}, this.createGlobalRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_GROUP_OPENED), {
15947 expanded: expanded
15948 });
15949 this.mainEventService.dispatchEvent(event);
15950 // when using footers we need to refresh the group row, as the aggregation
15951 // values jump between group and footer
15952 if (this.gridOptionsWrapper.isGroupIncludeFooter()) {
15953 this.rowRenderer.refreshCells({ rowNodes: [this] });
15954 }
15955 };
15956 RowNode.prototype.createGlobalRowEvent = function (type) {
15957 return {
15958 type: type,
15959 node: this,
15960 data: this.data,
15961 rowIndex: this.rowIndex,
15962 rowPinned: this.rowPinned,
15963 context: this.gridOptionsWrapper.getContext(),
15964 api: this.gridOptionsWrapper.getApi(),
15965 columnApi: this.gridOptionsWrapper.getColumnApi()
15966 };
15967 };
15968 RowNode.prototype.dispatchLocalEvent = function (event) {
15969 if (this.eventService) {
15970 this.eventService.dispatchEvent(event);
15971 }
15972 };
15973 // we also allow editing the value via the editors. when it is done via
15974 // the editors, no 'cell changed' event gets fired, as it's assumed that
15975 // the cell knows about the change given it's in charge of the editing.
15976 // this method is for the client to call, so the cell listens for the change
15977 // event, and also flashes the cell when the change occurs.
15978 RowNode.prototype.setDataValue = function (colKey, newValue) {
15979 var column = this.columnController.getPrimaryColumn(colKey);
15980 var oldValue = this.valueService.getValue(column, this);
15981 this.valueService.setValue(this, column, newValue);
15982 this.dispatchCellChangedEvent(column, newValue, oldValue);
15983 };
15984 RowNode.prototype.setGroupValue = function (colKey, newValue) {
15985 var column = this.columnController.getGridColumn(colKey);
15986 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.groupData)) {
15987 this.groupData = {};
15988 }
15989 var columnId = column.getColId();
15990 var oldValue = this.groupData[columnId];
15991 if (oldValue === newValue) {
15992 return;
15993 }
15994 this.groupData[columnId] = newValue;
15995 this.dispatchCellChangedEvent(column, newValue, oldValue);
15996 };
15997 // sets the data for an aggregation
15998 RowNode.prototype.setAggData = function (newAggData) {
15999 var _this = this;
16000 // find out all keys that could potentially change
16001 var colIds = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllKeysInObjects"])([this.aggData, newAggData]);
16002 var oldAggData = this.aggData;
16003 this.aggData = newAggData;
16004 // if no event service, nobody has registered for events, so no need fire event
16005 if (this.eventService) {
16006 colIds.forEach(function (colId) {
16007 var column = _this.columnController.getGridColumn(colId);
16008 var value = _this.aggData ? _this.aggData[colId] : undefined;
16009 var oldValue = oldAggData ? oldAggData[colId] : undefined;
16010 _this.dispatchCellChangedEvent(column, value, oldValue);
16011 });
16012 }
16013 };
16014 RowNode.prototype.updateHasChildren = function () {
16015 // we need to return true when this.group=true, as this is used by server side row model
16016 // (as children are lazy loaded and stored in a cache anyway). otherwise we return true
16017 // if children exist.
16018 var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);
16019 if (newValue !== this.__hasChildren) {
16020 this.__hasChildren = !!newValue;
16021 if (this.eventService) {
16022 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));
16023 }
16024 }
16025 };
16026 RowNode.prototype.hasChildren = function () {
16027 if (this.__hasChildren == null) {
16028 this.updateHasChildren();
16029 }
16030 return this.__hasChildren;
16031 };
16032 RowNode.prototype.isEmptyRowGroupNode = function () {
16033 return this.group && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missingOrEmpty"])(this.childrenAfterGroup);
16034 };
16035 RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {
16036 var cellChangedEvent = {
16037 type: RowNode.EVENT_CELL_CHANGED,
16038 node: this,
16039 column: column,
16040 newValue: newValue,
16041 oldValue: oldValue
16042 };
16043 this.dispatchLocalEvent(cellChangedEvent);
16044 };
16045 RowNode.prototype.resetQuickFilterAggregateText = function () {
16046 this.quickFilterAggregateText = null;
16047 };
16048 RowNode.prototype.isExpandable = function () {
16049 return this.hasChildren() || this.master ? true : false;
16050 };
16051 RowNode.prototype.isSelected = function () {
16052 // for footers, we just return what our sibling selected state is, as cannot select a footer
16053 if (this.footer) {
16054 return this.sibling.isSelected();
16055 }
16056 return this.selected;
16057 };
16058 RowNode.prototype.depthFirstSearch = function (callback) {
16059 if (this.childrenAfterGroup) {
16060 this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });
16061 }
16062 callback(this);
16063 };
16064 // + rowController.updateGroupsInSelection()
16065 // + selectionController.calculatedSelectedForAllGroupNodes()
16066 RowNode.prototype.calculateSelectedFromChildren = function () {
16067 var atLeastOneSelected = false;
16068 var atLeastOneDeSelected = false;
16069 var atLeastOneMixed = false;
16070 var newSelectedValue;
16071 if (this.childrenAfterGroup) {
16072 for (var i = 0; i < this.childrenAfterGroup.length; i++) {
16073 var child = this.childrenAfterGroup[i];
16074 // skip non-selectable nodes to prevent inconsistent selection values
16075 if (!child.selectable) {
16076 continue;
16077 }
16078 var childState = child.isSelected();
16079 switch (childState) {
16080 case true:
16081 atLeastOneSelected = true;
16082 break;
16083 case false:
16084 atLeastOneDeSelected = true;
16085 break;
16086 default:
16087 atLeastOneMixed = true;
16088 break;
16089 }
16090 }
16091 }
16092 if (atLeastOneMixed) {
16093 newSelectedValue = undefined;
16094 }
16095 else if (atLeastOneSelected && !atLeastOneDeSelected) {
16096 newSelectedValue = true;
16097 }
16098 else if (!atLeastOneSelected && atLeastOneDeSelected) {
16099 newSelectedValue = false;
16100 }
16101 else {
16102 newSelectedValue = undefined;
16103 }
16104 this.selectThisNode(newSelectedValue);
16105 };
16106 RowNode.prototype.setSelectedInitialValue = function (selected) {
16107 this.selected = selected;
16108 };
16109 RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions) {
16110 if (clearSelection === void 0) { clearSelection = false; }
16111 if (suppressFinishActions === void 0) { suppressFinishActions = false; }
16112 this.setSelectedParams({
16113 newValue: newValue,
16114 clearSelection: clearSelection,
16115 suppressFinishActions: suppressFinishActions,
16116 rangeSelect: false
16117 });
16118 };
16119 RowNode.prototype.isRowPinned = function () {
16120 return this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP || this.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM;
16121 };
16122 // to make calling code more readable, this is the same method as setSelected except it takes names parameters
16123 RowNode.prototype.setSelectedParams = function (params) {
16124 var groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
16125 var newValue = params.newValue === true;
16126 var clearSelection = params.clearSelection === true;
16127 var suppressFinishActions = params.suppressFinishActions === true;
16128 var rangeSelect = params.rangeSelect === true;
16129 // groupSelectsFiltered only makes sense when group selects children
16130 var groupSelectsFiltered = groupSelectsChildren && (params.groupSelectsFiltered === true);
16131 if (this.id === undefined) {
16132 console.warn('AG Grid: cannot select node until id for node is known');
16133 return 0;
16134 }
16135 if (this.rowPinned) {
16136 console.warn('AG Grid: cannot select pinned rows');
16137 return 0;
16138 }
16139 // if we are a footer, we don't do selection, just pass the info
16140 // to the sibling (the parent of the group)
16141 if (this.footer) {
16142 return this.sibling.setSelectedParams(params);
16143 }
16144 if (rangeSelect && this.selectionController.getLastSelectedNode()) {
16145 var newRowClicked = this.selectionController.getLastSelectedNode() !== this;
16146 var allowMultiSelect = this.gridOptionsWrapper.isRowSelectionMulti();
16147 if (newRowClicked && allowMultiSelect) {
16148 var nodesChanged = this.doRowRangeSelection(params.newValue);
16149 this.selectionController.setLastSelectedNode(this);
16150 return nodesChanged;
16151 }
16152 }
16153 var updatedCount = 0;
16154 // when groupSelectsFiltered, then this node may end up intermediate despite
16155 // trying to set it to true / false. this group will be calculated further on
16156 // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it
16157 // here, otherwise the updatedCount would include it.
16158 var skipThisNode = groupSelectsFiltered && this.group;
16159 if (!skipThisNode) {
16160 var thisNodeWasSelected = this.selectThisNode(newValue);
16161 if (thisNodeWasSelected) {
16162 updatedCount++;
16163 }
16164 }
16165 if (groupSelectsChildren && this.group) {
16166 updatedCount += this.selectChildNodes(newValue, groupSelectsFiltered);
16167 }
16168 // clear other nodes if not doing multi select
16169 if (!suppressFinishActions) {
16170 var clearOtherNodes = newValue && (clearSelection || !this.gridOptionsWrapper.isRowSelectionMulti());
16171 if (clearOtherNodes) {
16172 updatedCount += this.selectionController.clearOtherNodes(this);
16173 }
16174 // only if we selected something, then update groups and fire events
16175 if (updatedCount > 0) {
16176 this.selectionController.updateGroupsFromChildrenSelections();
16177 // this is the very end of the 'action node', so we are finished all the updates,
16178 // include any parent / child changes that this method caused
16179 var event_1 = {
16180 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SELECTION_CHANGED,
16181 api: this.gridApi,
16182 columnApi: this.columnApi
16183 };
16184 this.mainEventService.dispatchEvent(event_1);
16185 }
16186 // so if user next does shift-select, we know where to start the selection from
16187 if (newValue) {
16188 this.selectionController.setLastSelectedNode(this);
16189 }
16190 }
16191 return updatedCount;
16192 };
16193 // selects all rows between this node and the last selected node (or the top if this is the first selection).
16194 // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by
16195 // holding down 'shift'.
16196 RowNode.prototype.doRowRangeSelection = function (value) {
16197 var _this = this;
16198 if (value === void 0) { value = true; }
16199 var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
16200 var lastSelectedNode = this.selectionController.getLastSelectedNode();
16201 var nodesToSelect = this.rowModel.getNodesInRangeForSelection(this, lastSelectedNode);
16202 var updatedCount = 0;
16203 nodesToSelect.forEach(function (rowNode) {
16204 if (rowNode.group && groupsSelectChildren || (value === false && _this === rowNode)) {
16205 return;
16206 }
16207 var nodeWasSelected = rowNode.selectThisNode(value);
16208 if (nodeWasSelected) {
16209 updatedCount++;
16210 }
16211 });
16212 this.selectionController.updateGroupsFromChildrenSelections();
16213 var event = {
16214 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SELECTION_CHANGED,
16215 api: this.gridApi,
16216 columnApi: this.columnApi
16217 };
16218 this.mainEventService.dispatchEvent(event);
16219 return updatedCount;
16220 };
16221 RowNode.prototype.isParentOfNode = function (potentialParent) {
16222 var parentNode = this.parent;
16223 while (parentNode) {
16224 if (parentNode === potentialParent) {
16225 return true;
16226 }
16227 parentNode = parentNode.parent;
16228 }
16229 return false;
16230 };
16231 RowNode.prototype.selectThisNode = function (newValue) {
16232 // we only check selectable when newValue=true (ie selecting) to allow unselecting values,
16233 // as selectable is dynamic, need a way to unselect rows when selectable becomes false.
16234 var selectionNotAllowed = !this.selectable && newValue;
16235 var selectionNotChanged = this.selected === newValue;
16236 if (selectionNotAllowed || selectionNotChanged) {
16237 return false;
16238 }
16239 this.selected = newValue;
16240 if (this.eventService) {
16241 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));
16242 }
16243 var event = this.createGlobalRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_SELECTED);
16244 this.mainEventService.dispatchEvent(event);
16245 return true;
16246 };
16247 RowNode.prototype.selectChildNodes = function (newValue, groupSelectsFiltered) {
16248 var children = groupSelectsFiltered ? this.childrenAfterFilter : this.childrenAfterGroup;
16249 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(children)) {
16250 return 0;
16251 }
16252 var updatedCount = 0;
16253 for (var i = 0; i < children.length; i++) {
16254 updatedCount += children[i].setSelectedParams({
16255 newValue: newValue,
16256 clearSelection: false,
16257 suppressFinishActions: true,
16258 groupSelectsFiltered: groupSelectsFiltered
16259 });
16260 }
16261 return updatedCount;
16262 };
16263 RowNode.prototype.addEventListener = function (eventType, listener) {
16264 if (!this.eventService) {
16265 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
16266 }
16267 this.eventService.addEventListener(eventType, listener);
16268 };
16269 RowNode.prototype.removeEventListener = function (eventType, listener) {
16270 if (!this.eventService) {
16271 return;
16272 }
16273 this.eventService.removeEventListener(eventType, listener);
16274 if (this.eventService.noRegisteredListenersExist()) {
16275 this.eventService = null;
16276 }
16277 };
16278 RowNode.prototype.onMouseEnter = function () {
16279 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));
16280 };
16281 RowNode.prototype.onMouseLeave = function () {
16282 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));
16283 };
16284 RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {
16285 var currentRowNode = this;
16286 var isCandidate = true;
16287 var foundFirstChildPath = false;
16288 var nodeToSwapIn = null;
16289 // if we are hiding groups, then if we are the first child, of the first child,
16290 // all the way up to the column we are interested in, then we show the group cell.
16291 while (isCandidate && !foundFirstChildPath) {
16292 var parentRowNode = currentRowNode.parent;
16293 var firstChild = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(parentRowNode) && currentRowNode.firstChild;
16294 if (firstChild) {
16295 if (parentRowNode.rowGroupColumn === rowGroupColumn) {
16296 foundFirstChildPath = true;
16297 nodeToSwapIn = parentRowNode;
16298 }
16299 }
16300 else {
16301 isCandidate = false;
16302 }
16303 currentRowNode = parentRowNode;
16304 }
16305 return foundFirstChildPath ? nodeToSwapIn : null;
16306 };
16307 RowNode.prototype.isFullWidthCell = function () {
16308 var isFullWidthCellFunc = this.gridOptionsWrapper.getIsFullWidthCellFunc();
16309 return isFullWidthCellFunc ? isFullWidthCellFunc(this) : false;
16310 };
16311 RowNode.prototype.getRoute = function () {
16312 if (this.key == null) {
16313 return;
16314 }
16315 var res = [];
16316 var pointer = this;
16317 while (pointer.key != null) {
16318 res.push(pointer.key);
16319 pointer = pointer.parent;
16320 }
16321 return res.reverse();
16322 };
16323 RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';
16324 RowNode.ID_PREFIX_TOP_PINNED = 't-';
16325 RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';
16326 RowNode.OBJECT_ID_SEQUENCE = 0;
16327 RowNode.EVENT_ROW_SELECTED = 'rowSelected';
16328 RowNode.EVENT_DATA_CHANGED = 'dataChanged';
16329 RowNode.EVENT_CELL_CHANGED = 'cellChanged';
16330 RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';
16331 RowNode.EVENT_MASTER_CHANGED = 'masterChanged';
16332 RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';
16333 RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';
16334 RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';
16335 RowNode.EVENT_TOP_CHANGED = 'topChanged';
16336 RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';
16337 RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';
16338 RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';
16339 RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';
16340 RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';
16341 RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';
16342 RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';
16343 RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';
16344 RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';
16345 RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';
16346 RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';
16347 __decorate([
16348 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('eventService')
16349 ], RowNode.prototype, "mainEventService", void 0);
16350 __decorate([
16351 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowRenderer')
16352 ], RowNode.prototype, "rowRenderer", void 0);
16353 __decorate([
16354 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
16355 ], RowNode.prototype, "gridOptionsWrapper", void 0);
16356 __decorate([
16357 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionController')
16358 ], RowNode.prototype, "selectionController", void 0);
16359 __decorate([
16360 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
16361 ], RowNode.prototype, "columnController", void 0);
16362 __decorate([
16363 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
16364 ], RowNode.prototype, "valueService", void 0);
16365 __decorate([
16366 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
16367 ], RowNode.prototype, "rowModel", void 0);
16368 __decorate([
16369 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('context')
16370 ], RowNode.prototype, "context", void 0);
16371 __decorate([
16372 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueCache')
16373 ], RowNode.prototype, "valueCache", void 0);
16374 __decorate([
16375 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
16376 ], RowNode.prototype, "columnApi", void 0);
16377 __decorate([
16378 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
16379 ], RowNode.prototype, "gridApi", void 0);
16380 return RowNode;
16381}());
16382
16383
16384
16385/***/ }),
16386/* 74 */
16387/***/ (function(module, __webpack_exports__, __webpack_require__) {
16388
16389"use strict";
16390__webpack_require__.r(__webpack_exports__);
16391/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return CheckboxSelectionComponent; });
16392/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
16393/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
16394/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
16395/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
16396/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(73);
16397/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21);
16398/**
16399 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
16400 * @version v25.3.0
16401 * @link http://www.ag-grid.com/
16402 * @license MIT
16403 */
16404var __extends = (undefined && undefined.__extends) || (function () {
16405 var extendStatics = function (d, b) {
16406 extendStatics = Object.setPrototypeOf ||
16407 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16408 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
16409 return extendStatics(d, b);
16410 };
16411 return function (d, b) {
16412 extendStatics(d, b);
16413 function __() { this.constructor = d; }
16414 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16415 };
16416})();
16417var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16418 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16419 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16420 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;
16421 return c > 3 && r && Object.defineProperty(target, key, r), r;
16422};
16423
16424
16425
16426
16427
16428
16429var CheckboxSelectionComponent = /** @class */ (function (_super) {
16430 __extends(CheckboxSelectionComponent, _super);
16431 function CheckboxSelectionComponent() {
16432 return _super.call(this, /* html*/ "\n <div class=\"ag-selection-checkbox\" role=\"presentation\">\n <ag-checkbox role=\"presentation\" ref=\"eCheckbox\"></ag-checkbox>\n </div>") || this;
16433 }
16434 CheckboxSelectionComponent.prototype.postConstruct = function () {
16435 this.eCheckbox.setPassive(true);
16436 };
16437 CheckboxSelectionComponent.prototype.getCheckboxId = function () {
16438 return this.eCheckbox.getInputElement().id;
16439 };
16440 CheckboxSelectionComponent.prototype.onDataChanged = function () {
16441 // when rows are loaded for the second time, this can impact the selection, as a row
16442 // could be loaded as already selected (if user scrolls down, and then up again).
16443 this.onSelectionChanged();
16444 };
16445 CheckboxSelectionComponent.prototype.onSelectableChanged = function () {
16446 this.showOrHideSelect();
16447 };
16448 CheckboxSelectionComponent.prototype.onSelectionChanged = function () {
16449 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
16450 var state = this.rowNode.isSelected();
16451 var stateName = state === undefined
16452 ? translate('ariaIndeterminate', 'indeterminate')
16453 : (state === true
16454 ? translate('ariaChecked', 'checked')
16455 : translate('ariaUnchecked', 'unchecked'));
16456 var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');
16457 this.eCheckbox.setValue(state, true);
16458 this.eCheckbox.setInputAriaLabel(ariaLabel + " (" + stateName + ")");
16459 };
16460 CheckboxSelectionComponent.prototype.onCheckedClicked = function (event) {
16461 var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();
16462 var updatedCount = this.rowNode.setSelectedParams({ newValue: false, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });
16463 return updatedCount;
16464 };
16465 CheckboxSelectionComponent.prototype.onUncheckedClicked = function (event) {
16466 var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();
16467 var updatedCount = this.rowNode.setSelectedParams({ newValue: true, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });
16468 return updatedCount;
16469 };
16470 CheckboxSelectionComponent.prototype.init = function (params) {
16471 var _this = this;
16472 this.rowNode = params.rowNode;
16473 this.column = params.column;
16474 this.onSelectionChanged();
16475 // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row
16476 // would possibly get selected twice
16477 this.addGuiEventListener('click', function (event) { return Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(event); });
16478 // likewise we don't want double click on this icon to open a group
16479 this.addGuiEventListener('dblclick', function (event) { return Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(event); });
16480 this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {
16481 var isSelected = _this.eCheckbox.getValue();
16482 var previousValue = _this.eCheckbox.getPreviousValue();
16483 if (previousValue === undefined) { // indeterminate
16484 var result = _this.onUncheckedClicked(event || {});
16485 if (result === 0) {
16486 _this.onCheckedClicked(event);
16487 }
16488 }
16489 else if (isSelected) {
16490 _this.onCheckedClicked(event);
16491 }
16492 else {
16493 _this.onUncheckedClicked(event || {});
16494 }
16495 });
16496 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));
16497 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_DATA_CHANGED, this.onDataChanged.bind(this));
16498 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));
16499 var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();
16500 var checkboxVisibleIsDynamic = isRowSelectableFunc || this.checkboxCallbackExists();
16501 if (checkboxVisibleIsDynamic) {
16502 var showOrHideSelectListener = this.showOrHideSelect.bind(this);
16503 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);
16504 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_DATA_CHANGED, showOrHideSelectListener);
16505 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_CELL_CHANGED, showOrHideSelectListener);
16506 this.showOrHideSelect();
16507 }
16508 this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');
16509 };
16510 CheckboxSelectionComponent.prototype.showOrHideSelect = function () {
16511 // if the isRowSelectable() is not provided the row node is selectable by default
16512 var selectable = this.rowNode.selectable;
16513 // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.
16514 // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need
16515 // to call the colDef callback.
16516 if (selectable && this.checkboxCallbackExists()) {
16517 selectable = this.column.isCellCheckboxSelection(this.rowNode);
16518 }
16519 // show checkbox if both conditions are true
16520 this.setVisible(selectable);
16521 };
16522 CheckboxSelectionComponent.prototype.checkboxCallbackExists = function () {
16523 // column will be missing if groupUseEntireRow=true
16524 var colDef = this.column ? this.column.getColDef() : null;
16525 return !!colDef && typeof colDef.checkboxSelection === 'function';
16526 };
16527 __decorate([
16528 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eCheckbox')
16529 ], CheckboxSelectionComponent.prototype, "eCheckbox", void 0);
16530 __decorate([
16531 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
16532 ], CheckboxSelectionComponent.prototype, "postConstruct", null);
16533 return CheckboxSelectionComponent;
16534}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
16535
16536
16537
16538/***/ }),
16539/* 75 */
16540/***/ (function(module, __webpack_exports__, __webpack_require__) {
16541
16542"use strict";
16543__webpack_require__.r(__webpack_exports__);
16544/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentSource", function() { return ComponentSource; });
16545/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return UserComponentFactory; });
16546/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
16547/* harmony import */ var _userComponentRegistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
16548/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
16549/* harmony import */ var _componentTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76);
16550/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);
16551/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
16552/**
16553 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
16554 * @version v25.3.0
16555 * @link http://www.ag-grid.com/
16556 * @license MIT
16557 */
16558var __extends = (undefined && undefined.__extends) || (function () {
16559 var extendStatics = function (d, b) {
16560 extendStatics = Object.setPrototypeOf ||
16561 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16562 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
16563 return extendStatics(d, b);
16564 };
16565 return function (d, b) {
16566 extendStatics(d, b);
16567 function __() { this.constructor = d; }
16568 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16569 };
16570})();
16571var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16572 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16573 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16574 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;
16575 return c > 3 && r && Object.defineProperty(target, key, r), r;
16576};
16577
16578
16579
16580
16581
16582
16583var ComponentSource;
16584(function (ComponentSource) {
16585 ComponentSource[ComponentSource["DEFAULT"] = 0] = "DEFAULT";
16586 ComponentSource[ComponentSource["REGISTERED_BY_NAME"] = 1] = "REGISTERED_BY_NAME";
16587 ComponentSource[ComponentSource["HARDCODED"] = 2] = "HARDCODED";
16588})(ComponentSource || (ComponentSource = {}));
16589var UserComponentFactory = /** @class */ (function (_super) {
16590 __extends(UserComponentFactory, _super);
16591 function UserComponentFactory() {
16592 return _super !== null && _super.apply(this, arguments) || this;
16593 }
16594 UserComponentFactory.prototype.newDateComponent = function (params) {
16595 return this.createAndInitUserComponent(this.gridOptions, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["DateComponent"], 'agDateInput');
16596 };
16597 UserComponentFactory.prototype.newHeaderComponent = function (params) {
16598 return this.createAndInitUserComponent(params.column.getColDef(), params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["HeaderComponent"], 'agColumnHeader');
16599 };
16600 UserComponentFactory.prototype.newHeaderGroupComponent = function (params) {
16601 return this.createAndInitUserComponent(params.columnGroup.getColGroupDef(), params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["HeaderGroupComponent"], 'agColumnGroupHeader');
16602 };
16603 UserComponentFactory.prototype.newFullWidthGroupRowInnerCellRenderer = function (params) {
16604 return this.createAndInitUserComponent(this.gridOptions.groupRowRendererParams, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["InnerRendererComponent"], null, true);
16605 };
16606 // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.
16607 // so we have to pass the type in.
16608 UserComponentFactory.prototype.newFullWidthCellRenderer = function (params, cellRendererType, cellRendererName) {
16609 return this.createAndInitUserComponent(null, params, { propertyName: cellRendererType, isCellRenderer: function () { return true; } }, cellRendererName);
16610 };
16611 UserComponentFactory.prototype.newCellRenderer = function (target, params, isPinned) {
16612 if (isPinned === void 0) { isPinned = false; }
16613 return this.createAndInitUserComponent(target, params, isPinned ? _componentTypes__WEBPACK_IMPORTED_MODULE_3__["PinnedRowCellRendererComponent"] : _componentTypes__WEBPACK_IMPORTED_MODULE_3__["CellRendererComponent"], null, true);
16614 };
16615 UserComponentFactory.prototype.newCellEditor = function (colDef, params) {
16616 return this.createAndInitUserComponent(colDef, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["CellEditorComponent"], 'agCellEditor');
16617 };
16618 UserComponentFactory.prototype.newInnerCellRenderer = function (target, params) {
16619 return this.createAndInitUserComponent(target, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["InnerRendererComponent"], null);
16620 };
16621 UserComponentFactory.prototype.newLoadingOverlayComponent = function (params) {
16622 return this.createAndInitUserComponent(this.gridOptions, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["LoadingOverlayComponent"], 'agLoadingOverlay');
16623 };
16624 UserComponentFactory.prototype.newNoRowsOverlayComponent = function (params) {
16625 return this.createAndInitUserComponent(this.gridOptions, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["NoRowsOverlayComponent"], 'agNoRowsOverlay');
16626 };
16627 UserComponentFactory.prototype.newTooltipComponent = function (params) {
16628 return this.createAndInitUserComponent(params.colDef, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["TooltipComponent"], 'agTooltipComponent');
16629 };
16630 UserComponentFactory.prototype.newFilterComponent = function (def, params, defaultFilter) {
16631 return this.createAndInitUserComponent(def, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["FilterComponent"], defaultFilter, false);
16632 };
16633 UserComponentFactory.prototype.newSetFilterCellRenderer = function (target, params) {
16634 return this.createAndInitUserComponent(target, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["CellRendererComponent"], null, true);
16635 };
16636 UserComponentFactory.prototype.newFloatingFilterComponent = function (def, params, defaultFloatingFilter) {
16637 return this.createAndInitUserComponent(def, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterComponent"], defaultFloatingFilter, true);
16638 };
16639 UserComponentFactory.prototype.newToolPanelComponent = function (toolPanelDef, params) {
16640 return this.createAndInitUserComponent(toolPanelDef, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["ToolPanelComponent"]);
16641 };
16642 UserComponentFactory.prototype.newStatusPanelComponent = function (def, params) {
16643 return this.createAndInitUserComponent(def, params, _componentTypes__WEBPACK_IMPORTED_MODULE_3__["StatusPanelComponent"]);
16644 };
16645 /**
16646 * This method creates a component given everything needed to guess what sort of component needs to be instantiated
16647 * It takes
16648 * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions
16649 * (global) or columnDef mostly.
16650 * @param paramsFromGrid: Params to be passed to the component and passed by AG Grid. This will get merged with any params
16651 * specified by the user in the configuration
16652 * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:
16653 * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component
16654 * @param defaultComponentName: The actual name of the component to instantiate, this is usually the same as propertyName, but in
16655 * some cases is not, like floatingFilter, if it is the same is not necessary to specify
16656 * @param optional: Handy method to tell if this should return a component ALWAYS. if that is the case, but there is no
16657 * component found, it throws an error, by default all components are MANDATORY
16658 */
16659 UserComponentFactory.prototype.createAndInitUserComponent = function (definitionObject, paramsFromGrid, componentType, defaultComponentName,
16660 // optional items are: FloatingFilter, CellComp (for cellRenderer)
16661 optional) {
16662 if (optional === void 0) { optional = false; }
16663 if (!definitionObject) {
16664 definitionObject = this.gridOptions;
16665 }
16666 // Create the component instance
16667 var componentAndParams = this.createComponentInstance(definitionObject, componentType, paramsFromGrid, defaultComponentName, optional);
16668 if (!componentAndParams) {
16669 return null;
16670 }
16671 var componentInstance = componentAndParams.componentInstance;
16672 // Wire the component and call the init method with the correct params
16673 var params = this.createFinalParams(definitionObject, componentType.propertyName, paramsFromGrid, componentAndParams.paramsFromSelector);
16674 this.addReactHacks(params);
16675 var deferredInit = this.initComponent(componentInstance, params);
16676 if (deferredInit == null) {
16677 return _utils__WEBPACK_IMPORTED_MODULE_2__["AgPromise"].resolve(componentInstance);
16678 }
16679 return deferredInit.then(function () { return componentInstance; });
16680 };
16681 UserComponentFactory.prototype.addReactHacks = function (params) {
16682 // a temporary fix for AG-1574
16683 // AG-1715 raised to do a wider ranging refactor to improve this
16684 var agGridReact = this.context.getBean('agGridReact');
16685 if (agGridReact) {
16686 params.agGridReact = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["cloneObject"])(agGridReact);
16687 }
16688 // AG-1716 - directly related to AG-1574 and AG-1715
16689 var frameworkComponentWrapper = this.context.getBean('frameworkComponentWrapper');
16690 if (frameworkComponentWrapper) {
16691 params.frameworkComponentWrapper = frameworkComponentWrapper;
16692 }
16693 };
16694 /**
16695 * This method creates a component given everything needed to guess what sort of component needs to be instantiated
16696 * It takes
16697 * @param clazz: The class to instantiate,
16698 * @param agGridParams: Params to be passed to the component and passed by AG Grid. This will get merged with any params
16699 * specified by the user in the configuration
16700 * @param modifyParamsCallback: A chance to customise the params passed to the init method. It receives what the current
16701 * params are and the component that init is about to get called for
16702 */
16703 UserComponentFactory.prototype.createUserComponentFromConcreteClass = function (clazz, agGridParams) {
16704 var internalComponent = new clazz();
16705 this.initComponent(internalComponent, agGridParams);
16706 return internalComponent;
16707 };
16708 /**
16709 * This method returns the underlying representation of the component to be created. ie for Javascript the
16710 * underlying function where we should be calling new into. In case of the frameworks, the framework class
16711 * object that represents the component to be created.
16712 *
16713 * This method is handy for different reasons, for example if you want to check if a component has a particular
16714 * method implemented without having to create the component, just by inspecting the source component
16715 *
16716 * It takes
16717 * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions
16718 * (global) or columnDef mostly.
16719 * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:
16720 * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component
16721 * @param params: Params to be passed to the dynamic component function in case it needs to be
16722 * invoked
16723 * @param defaultComponentName: The name of the component to load if there is no component specified
16724 */
16725 UserComponentFactory.prototype.lookupComponentClassDef = function (definitionObject, propertyName, params, defaultComponentName) {
16726 if (params === void 0) { params = null; }
16727 /**
16728 * There are five things that can happen when resolving a component.
16729 * a) HardcodedFwComponent: That holder[propertyName]Framework has associated a Framework native component
16730 * b) HardcodedJsComponent: That holder[propertyName] has associate a JS component
16731 * c) hardcodedJsFunction: That holder[propertyName] has associate a JS function
16732 * d) hardcodedNameComponent: That holder[propertyName] has associate a string that represents a component to load
16733 * e) That none of the three previous are specified, then we need to use the DefaultRegisteredComponent
16734 */
16735 var hardcodedNameComponent = null;
16736 var HardcodedJsComponent = null;
16737 var hardcodedJsFunction = null;
16738 var HardcodedFwComponent = null;
16739 var componentSelectorFunc = null;
16740 if (definitionObject != null) {
16741 var componentPropertyValue = definitionObject[propertyName];
16742 // for filters only, we allow 'true' for the component, which means default filter to be used
16743 var usingDefaultComponent = componentPropertyValue === true;
16744 if (componentPropertyValue != null && !usingDefaultComponent) {
16745 if (typeof componentPropertyValue === 'string') {
16746 hardcodedNameComponent = componentPropertyValue;
16747 }
16748 else if (typeof componentPropertyValue === 'boolean') {
16749 // never happens, as we test for usingDefaultComponent above,
16750 // however it's needed for the next block to compile
16751 }
16752 else if (this.agComponentUtils.doesImplementIComponent(componentPropertyValue)) {
16753 HardcodedJsComponent = componentPropertyValue;
16754 }
16755 else {
16756 hardcodedJsFunction = componentPropertyValue;
16757 }
16758 }
16759 HardcodedFwComponent = definitionObject[propertyName + "Framework"];
16760 componentSelectorFunc = definitionObject[propertyName + "Selector"];
16761 }
16762 /**
16763 * Since we allow many types of flavors for specifying the components, let's make sure this is not an illegal
16764 * combination
16765 */
16766 if ((HardcodedJsComponent && HardcodedFwComponent) ||
16767 (hardcodedNameComponent && HardcodedFwComponent) ||
16768 (hardcodedJsFunction && HardcodedFwComponent)) {
16769 throw Error("ag-grid: you are trying to specify: " + propertyName + " twice as a component.");
16770 }
16771 if (HardcodedFwComponent && !this.frameworkComponentWrapper) {
16772 throw Error("ag-grid: you are specifying a framework component but you are not using a framework version of ag-grid for : " + propertyName);
16773 }
16774 if (componentSelectorFunc && (hardcodedNameComponent || HardcodedJsComponent || hardcodedJsFunction || HardcodedFwComponent)) {
16775 throw Error("ag-grid: you can't specify both, the selector and the component of ag-grid for : " + propertyName);
16776 }
16777 /**
16778 * At this stage we are guaranteed to either have,
16779 * DEPRECATED
16780 * - A unique HardcodedFwComponent
16781 * - A unique HardcodedJsComponent
16782 * - A unique hardcodedJsFunction
16783 * BY NAME- FAVOURED APPROACH
16784 * - A unique hardcodedNameComponent
16785 * - None of the previous, hence we revert to: RegisteredComponent
16786 */
16787 if (HardcodedFwComponent) {
16788 // console.warn(`ag-grid: Since version 12.1.0 specifying a component directly is deprecated, you should register the component by name`);
16789 // console.warn(`${HardcodedFwComponent}`);
16790 return {
16791 componentFromFramework: true,
16792 component: HardcodedFwComponent,
16793 source: ComponentSource.HARDCODED,
16794 paramsFromSelector: null
16795 };
16796 }
16797 if (HardcodedJsComponent) {
16798 // console.warn(`ag-grid: Since version 12.1.0 specifying a component directly is deprecated, you should register the component by name`);
16799 // console.warn(`${HardcodedJsComponent}`);
16800 return {
16801 componentFromFramework: false,
16802 component: HardcodedJsComponent,
16803 source: ComponentSource.HARDCODED,
16804 paramsFromSelector: null
16805 };
16806 }
16807 if (hardcodedJsFunction) {
16808 // console.warn(`ag-grid: Since version 12.1.0 specifying a function directly is deprecated, you should register the component by name`);
16809 // console.warn(`${hardcodedJsFunction}`);
16810 return this.agComponentUtils.adaptFunction(propertyName, hardcodedJsFunction, false, ComponentSource.HARDCODED);
16811 }
16812 var selectorResult = componentSelectorFunc ? componentSelectorFunc(params) : null;
16813 var componentNameToUse;
16814 if (selectorResult && selectorResult.component) {
16815 componentNameToUse = selectorResult.component;
16816 }
16817 else if (hardcodedNameComponent) {
16818 componentNameToUse = hardcodedNameComponent;
16819 }
16820 else {
16821 componentNameToUse = defaultComponentName;
16822 }
16823 if (!componentNameToUse) {
16824 return null;
16825 }
16826 var registeredCompClassDef = this.lookupFromRegisteredComponents(propertyName, componentNameToUse);
16827 if (!registeredCompClassDef) {
16828 return null;
16829 }
16830 return {
16831 componentFromFramework: registeredCompClassDef.componentFromFramework,
16832 component: registeredCompClassDef.component,
16833 source: registeredCompClassDef.source,
16834 paramsFromSelector: selectorResult ? selectorResult.params : null
16835 };
16836 };
16837 UserComponentFactory.prototype.lookupFromRegisteredComponents = function (propertyName, componentNameOpt) {
16838 var componentName = componentNameOpt != null ? componentNameOpt : propertyName;
16839 var registeredComponent = this.userComponentRegistry.retrieve(componentName);
16840 if (registeredComponent == null) {
16841 return null;
16842 }
16843 //If it is a FW it has to be registered as a component
16844 if (registeredComponent.componentFromFramework) {
16845 return {
16846 component: registeredComponent.component,
16847 componentFromFramework: true,
16848 source: ComponentSource.REGISTERED_BY_NAME,
16849 paramsFromSelector: null
16850 };
16851 }
16852 //If it is JS it may be a function or a component
16853 if (this.agComponentUtils.doesImplementIComponent(registeredComponent.component)) {
16854 return {
16855 component: registeredComponent.component,
16856 componentFromFramework: false,
16857 source: (registeredComponent.source == _userComponentRegistry__WEBPACK_IMPORTED_MODULE_1__["RegisteredComponentSource"].REGISTERED) ? ComponentSource.REGISTERED_BY_NAME : ComponentSource.DEFAULT,
16858 paramsFromSelector: null
16859 };
16860 }
16861 // This is a function
16862 return this.agComponentUtils.adaptFunction(propertyName, registeredComponent.component, registeredComponent.componentFromFramework, (registeredComponent.source == _userComponentRegistry__WEBPACK_IMPORTED_MODULE_1__["RegisteredComponentSource"].REGISTERED) ? ComponentSource.REGISTERED_BY_NAME : ComponentSource.DEFAULT);
16863 };
16864 /**
16865 * Useful to check what would be the resultant params for a given object
16866 * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions
16867 * (global) or columnDef mostly.
16868 * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:
16869 * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component
16870 * @param paramsFromGrid: Params to be passed to the component and passed by AG Grid. This will get merged with any params
16871 * specified by the user in the configuration
16872 * @returns {TParams} It merges the user agGridParams with the actual params specified by the user.
16873 */
16874 UserComponentFactory.prototype.createFinalParams = function (definitionObject, propertyName, paramsFromGrid, paramsFromSelector) {
16875 if (paramsFromSelector === void 0) { paramsFromSelector = null; }
16876 var params = {};
16877 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, paramsFromGrid);
16878 var userParams = definitionObject ? definitionObject[propertyName + "Params"] : null;
16879 if (userParams != null) {
16880 if (typeof userParams === 'function') {
16881 var userParamsFromFunc = userParams(paramsFromGrid);
16882 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, userParamsFromFunc);
16883 }
16884 else if (typeof userParams === 'object') {
16885 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, userParams);
16886 }
16887 }
16888 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["mergeDeep"])(params, paramsFromSelector);
16889 return params;
16890 };
16891 UserComponentFactory.prototype.createComponentInstance = function (holder, componentType, paramsForSelector, defaultComponentName, optional) {
16892 var propertyName = componentType.propertyName;
16893 var componentToUse = this.lookupComponentClassDef(holder, propertyName, paramsForSelector, defaultComponentName);
16894 var missing = !componentToUse || !componentToUse.component;
16895 if (missing) {
16896 // to help the user, we print out the name they are looking for, rather than the default name.
16897 // i don't know why the default name was originally printed out (that doesn't help the user)
16898 var overrideName = holder ? holder[propertyName] : defaultComponentName;
16899 var nameToReport = overrideName ? overrideName : defaultComponentName;
16900 if (!optional) {
16901 console.error("Could not find component " + nameToReport + ", did you forget to configure this component?");
16902 }
16903 return null;
16904 }
16905 var componentInstance;
16906 if (componentToUse.componentFromFramework) {
16907 // Using framework component
16908 var FrameworkComponentRaw = componentToUse.component;
16909 var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);
16910 componentInstance = this.frameworkComponentWrapper.wrap(FrameworkComponentRaw, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, componentType, defaultComponentName);
16911 }
16912 else {
16913 // Using plain JavaScript component
16914 componentInstance = new componentToUse.component();
16915 }
16916 return { componentInstance: componentInstance, paramsFromSelector: componentToUse.paramsFromSelector };
16917 };
16918 UserComponentFactory.prototype.initComponent = function (component, params) {
16919 this.context.createBean(component);
16920 if (component.init == null) {
16921 return;
16922 }
16923 return component.init(params);
16924 };
16925 __decorate([
16926 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptions')
16927 ], UserComponentFactory.prototype, "gridOptions", void 0);
16928 __decorate([
16929 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('agComponentUtils')
16930 ], UserComponentFactory.prototype, "agComponentUtils", void 0);
16931 __decorate([
16932 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('componentMetadataProvider')
16933 ], UserComponentFactory.prototype, "componentMetadataProvider", void 0);
16934 __decorate([
16935 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentRegistry')
16936 ], UserComponentFactory.prototype, "userComponentRegistry", void 0);
16937 __decorate([
16938 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('frameworkComponentWrapper')
16939 ], UserComponentFactory.prototype, "frameworkComponentWrapper", void 0);
16940 UserComponentFactory = __decorate([
16941 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('userComponentFactory')
16942 ], UserComponentFactory);
16943 return UserComponentFactory;
16944}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
16945
16946
16947
16948/***/ }),
16949/* 76 */
16950/***/ (function(module, __webpack_exports__, __webpack_require__) {
16951
16952"use strict";
16953__webpack_require__.r(__webpack_exports__);
16954/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateComponent", function() { return DateComponent; });
16955/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComponent", function() { return HeaderComponent; });
16956/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupComponent", function() { return HeaderGroupComponent; });
16957/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRendererComponent", function() { return CellRendererComponent; });
16958/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedRowCellRendererComponent", function() { return PinnedRowCellRendererComponent; });
16959/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellEditorComponent", function() { return CellEditorComponent; });
16960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerRendererComponent", function() { return InnerRendererComponent; });
16961/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingOverlayComponent", function() { return LoadingOverlayComponent; });
16962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoRowsOverlayComponent", function() { return NoRowsOverlayComponent; });
16963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; });
16964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterComponent", function() { return FilterComponent; });
16965/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterComponent", function() { return FloatingFilterComponent; });
16966/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToolPanelComponent", function() { return ToolPanelComponent; });
16967/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StatusPanelComponent", function() { return StatusPanelComponent; });
16968/**
16969 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
16970 * @version v25.3.0
16971 * @link http://www.ag-grid.com/
16972 * @license MIT
16973 */
16974var DateComponent = {
16975 propertyName: 'dateComponent',
16976 isCellRenderer: function () { return false; }
16977};
16978var HeaderComponent = {
16979 propertyName: 'headerComponent',
16980 isCellRenderer: function () { return false; },
16981};
16982var HeaderGroupComponent = {
16983 propertyName: 'headerGroupComponent',
16984 isCellRenderer: function () { return false; },
16985};
16986var CellRendererComponent = {
16987 propertyName: 'cellRenderer',
16988 isCellRenderer: function () { return true; },
16989};
16990var PinnedRowCellRendererComponent = {
16991 propertyName: 'pinnedRowCellRenderer',
16992 isCellRenderer: function () { return true; },
16993};
16994var CellEditorComponent = {
16995 propertyName: 'cellEditor',
16996 isCellRenderer: function () { return false; },
16997};
16998var InnerRendererComponent = {
16999 propertyName: 'innerRenderer',
17000 isCellRenderer: function () { return true; },
17001};
17002var LoadingOverlayComponent = {
17003 propertyName: 'loadingOverlayComponent',
17004 isCellRenderer: function () { return false; },
17005};
17006var NoRowsOverlayComponent = {
17007 propertyName: 'noRowsOverlayComponent',
17008 isCellRenderer: function () { return false; },
17009};
17010var TooltipComponent = {
17011 propertyName: 'tooltipComponent',
17012 isCellRenderer: function () { return false; },
17013};
17014var FilterComponent = {
17015 propertyName: 'filter',
17016 isCellRenderer: function () { return false; },
17017};
17018var FloatingFilterComponent = {
17019 propertyName: 'floatingFilterComponent',
17020 isCellRenderer: function () { return false; },
17021};
17022var ToolPanelComponent = {
17023 propertyName: 'toolPanel',
17024 isCellRenderer: function () { return false; },
17025};
17026var StatusPanelComponent = {
17027 propertyName: 'statusPanel',
17028 isCellRenderer: function () { return false; },
17029};
17030
17031
17032/***/ }),
17033/* 77 */
17034/***/ (function(module, __webpack_exports__, __webpack_require__) {
17035
17036"use strict";
17037__webpack_require__.r(__webpack_exports__);
17038/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDragComp", function() { return RowDragComp; });
17039/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
17040/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
17041/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73);
17042/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78);
17043/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
17044/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);
17045/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(50);
17046/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15);
17047/**
17048 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17049 * @version v25.3.0
17050 * @link http://www.ag-grid.com/
17051 * @license MIT
17052 */
17053var __extends = (undefined && undefined.__extends) || (function () {
17054 var extendStatics = function (d, b) {
17055 extendStatics = Object.setPrototypeOf ||
17056 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17057 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17058 return extendStatics(d, b);
17059 };
17060 return function (d, b) {
17061 extendStatics(d, b);
17062 function __() { this.constructor = d; }
17063 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17064 };
17065})();
17066var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17067 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17068 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17069 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;
17070 return c > 3 && r && Object.defineProperty(target, key, r), r;
17071};
17072
17073
17074
17075
17076
17077
17078
17079
17080var RowDragComp = /** @class */ (function (_super) {
17081 __extends(RowDragComp, _super);
17082 function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels) {
17083 var _this = _super.call(this) || this;
17084 _this.cellValueFn = cellValueFn;
17085 _this.rowNode = rowNode;
17086 _this.column = column;
17087 _this.customGui = customGui;
17088 _this.dragStartPixels = dragStartPixels;
17089 _this.isCustomGui = false;
17090 _this.dragSource = null;
17091 return _this;
17092 }
17093 RowDragComp.prototype.postConstruct = function () {
17094 if (!this.customGui) {
17095 this.setTemplate(/* html */ "<div class=\"ag-drag-handle ag-row-drag\" aria-hidden=\"true\"></div>");
17096 var eGui = this.getGui();
17097 eGui.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_6__["createIconNoSpan"])('rowDrag', this.beans.gridOptionsWrapper, null));
17098 this.addDragSource();
17099 }
17100 else {
17101 this.isCustomGui = true;
17102 this.setDragElement(this.customGui, this.dragStartPixels);
17103 }
17104 this.checkCompatibility();
17105 var strategy = this.beans.gridOptionsWrapper.isRowDragManaged() ?
17106 new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :
17107 new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);
17108 this.createManagedBean(strategy, this.beans.context);
17109 };
17110 RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {
17111 this.setTemplateFromElement(dragElement);
17112 this.addDragSource(dragStartPixels);
17113 };
17114 RowDragComp.prototype.getSelectedCount = function () {
17115 var multiRowEnabled = this.beans.gridOptionsWrapper.isEnableMultiRowDragging();
17116 if (!multiRowEnabled) {
17117 return 1;
17118 }
17119 var selection = this.beans.selectionController.getSelectedNodes();
17120 return selection.indexOf(this.rowNode) !== -1 ? selection.length : 1;
17121 };
17122 // returns true if all compatibility items work out
17123 RowDragComp.prototype.checkCompatibility = function () {
17124 var managed = this.beans.gridOptionsWrapper.isRowDragManaged();
17125 var treeData = this.beans.gridOptionsWrapper.isTreeData();
17126 if (treeData && managed) {
17127 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () {
17128 return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');
17129 }, 'RowDragComp.managedAndTreeData');
17130 }
17131 };
17132 RowDragComp.prototype.addDragSource = function (dragStartPixels) {
17133 var _this = this;
17134 if (dragStartPixels === void 0) { dragStartPixels = 4; }
17135 // if this is changing the drag element, delete the previous dragSource
17136 if (this.dragSource) {
17137 this.removeDragSource();
17138 }
17139 var dragItem = {
17140 rowNode: this.rowNode,
17141 columns: this.column ? [this.column] : undefined,
17142 defaultTextValue: this.cellValueFn(),
17143 };
17144 var rowDragText = this.column && this.column.getColDef().rowDragText;
17145 this.dragSource = {
17146 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_3__["DragSourceType"].RowDrag,
17147 eElement: this.getGui(),
17148 dragItemName: function () {
17149 var dragItemCount = _this.getSelectedCount();
17150 if (rowDragText) {
17151 return rowDragText(dragItem, dragItemCount);
17152 }
17153 return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + " rows";
17154 },
17155 getDragItem: function () { return dragItem; },
17156 dragStartPixels: dragStartPixels,
17157 dragSourceDomDataKey: this.beans.gridOptionsWrapper.getDomDataKey()
17158 };
17159 this.beans.dragAndDropService.addDragSource(this.dragSource, true);
17160 };
17161 RowDragComp.prototype.removeDragSource = function () {
17162 if (this.dragSource) {
17163 this.beans.dragAndDropService.removeDragSource(this.dragSource);
17164 }
17165 this.dragSource = null;
17166 };
17167 __decorate([
17168 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('beans')
17169 ], RowDragComp.prototype, "beans", void 0);
17170 __decorate([
17171 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17172 ], RowDragComp.prototype, "postConstruct", null);
17173 __decorate([
17174 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
17175 ], RowDragComp.prototype, "removeDragSource", null);
17176 return RowDragComp;
17177}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
17178
17179var VisibilityStrategy = /** @class */ (function (_super) {
17180 __extends(VisibilityStrategy, _super);
17181 function VisibilityStrategy(parent, rowNode, column) {
17182 var _this = _super.call(this) || this;
17183 _this.parent = parent;
17184 _this.column = column;
17185 _this.rowNode = rowNode;
17186 return _this;
17187 }
17188 VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {
17189 if (neverDisplayed) {
17190 this.parent.setDisplayed(false);
17191 }
17192 else {
17193 var shown = true;
17194 var isShownSometimes = false;
17195 if (this.column) {
17196 shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui;
17197 isShownSometimes = Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["isFunction"])(this.column.getColDef().rowDrag);
17198 }
17199 // if shown sometimes, them some rows can have drag handle while other don't,
17200 // so we use setVisible to keep the handles horizontally aligned (as setVisible
17201 // keeps the empty space, whereas setDisplayed looses the space)
17202 if (isShownSometimes) {
17203 this.parent.setDisplayed(true);
17204 this.parent.setVisible(shown);
17205 }
17206 else {
17207 this.parent.setDisplayed(shown);
17208 }
17209 }
17210 };
17211 return VisibilityStrategy;
17212}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
17213// when non managed, the visibility depends on suppressRowDrag property only
17214var NonManagedVisibilityStrategy = /** @class */ (function (_super) {
17215 __extends(NonManagedVisibilityStrategy, _super);
17216 function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {
17217 var _this = _super.call(this, parent, rowNode, column) || this;
17218 _this.beans = beans;
17219 return _this;
17220 }
17221 NonManagedVisibilityStrategy.prototype.postConstruct = function () {
17222 this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));
17223 // in case data changes, then we need to update visibility of drag item
17224 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));
17225 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
17226 this.workOutVisibility();
17227 };
17228 NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {
17229 this.workOutVisibility();
17230 };
17231 NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {
17232 // only show the drag if both sort and filter are not present
17233 var neverDisplayed = this.beans.gridOptionsWrapper.isSuppressRowDrag();
17234 this.setDisplayedOrVisible(neverDisplayed);
17235 };
17236 __decorate([
17237 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17238 ], NonManagedVisibilityStrategy.prototype, "postConstruct", null);
17239 return NonManagedVisibilityStrategy;
17240}(VisibilityStrategy));
17241// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property
17242var ManagedVisibilityStrategy = /** @class */ (function (_super) {
17243 __extends(ManagedVisibilityStrategy, _super);
17244 function ManagedVisibilityStrategy(parent, beans, rowNode, column) {
17245 var _this = _super.call(this, parent, rowNode, column) || this;
17246 _this.beans = beans;
17247 return _this;
17248 }
17249 ManagedVisibilityStrategy.prototype.postConstruct = function () {
17250 // we do not show the component if sort, filter or grouping is active
17251 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));
17252 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));
17253 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));
17254 // in case data changes, then we need to update visibility of drag item
17255 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));
17256 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
17257 this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));
17258 this.workOutVisibility();
17259 };
17260 ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {
17261 this.workOutVisibility();
17262 };
17263 ManagedVisibilityStrategy.prototype.workOutVisibility = function () {
17264 // only show the drag if both sort and filter are not present
17265 var gridBodyCon = this.beans.controllersService.getGridBodyController();
17266 var rowDragFeature = gridBodyCon.getRowDragFeature();
17267 var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();
17268 var suppressRowDrag = this.beans.gridOptionsWrapper.isSuppressRowDrag();
17269 var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();
17270 var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;
17271 this.setDisplayedOrVisible(neverDisplayed);
17272 };
17273 __decorate([
17274 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17275 ], ManagedVisibilityStrategy.prototype, "postConstruct", null);
17276 return ManagedVisibilityStrategy;
17277}(VisibilityStrategy));
17278
17279
17280/***/ }),
17281/* 78 */
17282/***/ (function(module, __webpack_exports__, __webpack_require__) {
17283
17284"use strict";
17285__webpack_require__.r(__webpack_exports__);
17286/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return DragSourceType; });
17287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return VerticalDirection; });
17288/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return HorizontalDirection; });
17289/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return DragAndDropService; });
17290/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
17291/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
17292/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
17293/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50);
17294/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
17295/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
17296/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(34);
17297/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
17298/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(15);
17299/**
17300 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17301 * @version v25.3.0
17302 * @link http://www.ag-grid.com/
17303 * @license MIT
17304 */
17305var __extends = (undefined && undefined.__extends) || (function () {
17306 var extendStatics = function (d, b) {
17307 extendStatics = Object.setPrototypeOf ||
17308 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17309 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17310 return extendStatics(d, b);
17311 };
17312 return function (d, b) {
17313 extendStatics(d, b);
17314 function __() { this.constructor = d; }
17315 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17316 };
17317})();
17318var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17319 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17320 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17321 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;
17322 return c > 3 && r && Object.defineProperty(target, key, r), r;
17323};
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333var DragSourceType;
17334(function (DragSourceType) {
17335 DragSourceType[DragSourceType["ToolPanel"] = 0] = "ToolPanel";
17336 DragSourceType[DragSourceType["HeaderCell"] = 1] = "HeaderCell";
17337 DragSourceType[DragSourceType["RowDrag"] = 2] = "RowDrag";
17338 DragSourceType[DragSourceType["ChartPanel"] = 3] = "ChartPanel";
17339})(DragSourceType || (DragSourceType = {}));
17340var VerticalDirection;
17341(function (VerticalDirection) {
17342 VerticalDirection[VerticalDirection["Up"] = 0] = "Up";
17343 VerticalDirection[VerticalDirection["Down"] = 1] = "Down";
17344})(VerticalDirection || (VerticalDirection = {}));
17345var HorizontalDirection;
17346(function (HorizontalDirection) {
17347 HorizontalDirection[HorizontalDirection["Left"] = 0] = "Left";
17348 HorizontalDirection[HorizontalDirection["Right"] = 1] = "Right";
17349})(HorizontalDirection || (HorizontalDirection = {}));
17350var DragAndDropService = /** @class */ (function (_super) {
17351 __extends(DragAndDropService, _super);
17352 function DragAndDropService() {
17353 var _this = _super !== null && _super.apply(this, arguments) || this;
17354 _this.dragSourceAndParamsList = [];
17355 _this.dropTargets = [];
17356 return _this;
17357 }
17358 DragAndDropService_1 = DragAndDropService;
17359 DragAndDropService.prototype.init = function () {
17360 this.ePinnedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMovePin', this.gridOptionsWrapper, null);
17361 this.eHideIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveHide', this.gridOptionsWrapper, null);
17362 this.eMoveIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveMove', this.gridOptionsWrapper, null);
17363 this.eLeftIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveLeft', this.gridOptionsWrapper, null);
17364 this.eRightIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveRight', this.gridOptionsWrapper, null);
17365 this.eGroupIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveGroup', this.gridOptionsWrapper, null);
17366 this.eAggregateIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveValue', this.gridOptionsWrapper, null);
17367 this.ePivotIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMovePivot', this.gridOptionsWrapper, null);
17368 this.eDropNotAllowedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('dropNotAllowed', this.gridOptionsWrapper, null);
17369 };
17370 DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {
17371 if (allowTouch === void 0) { allowTouch = false; }
17372 var params = {
17373 eElement: dragSource.eElement,
17374 dragStartPixels: dragSource.dragStartPixels,
17375 onDragStart: this.onDragStart.bind(this, dragSource),
17376 onDragStop: this.onDragStop.bind(this),
17377 onDragging: this.onDragging.bind(this)
17378 };
17379 this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });
17380 this.dragService.addDragSource(params, allowTouch);
17381 };
17382 DragAndDropService.prototype.removeDragSource = function (dragSource) {
17383 var sourceAndParams = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(this.dragSourceAndParamsList, function (item) { return item.dragSource === dragSource; });
17384 if (sourceAndParams) {
17385 this.dragService.removeDragSource(sourceAndParams.params);
17386 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["removeFromArray"])(this.dragSourceAndParamsList, sourceAndParams);
17387 }
17388 };
17389 DragAndDropService.prototype.clearDragSourceParamsList = function () {
17390 var _this = this;
17391 this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });
17392 this.dragSourceAndParamsList.length = 0;
17393 };
17394 DragAndDropService.prototype.nudge = function () {
17395 if (this.dragging) {
17396 this.onDragging(this.eventLastTime, true);
17397 }
17398 };
17399 DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {
17400 this.dragging = true;
17401 this.dragSource = dragSource;
17402 this.eventLastTime = mouseEvent;
17403 this.dragItem = this.dragSource.getDragItem();
17404 this.lastDropTarget = this.dragSource.dragSourceDropTarget;
17405 if (this.dragSource.onDragStarted) {
17406 this.dragSource.onDragStarted();
17407 }
17408 this.createGhost();
17409 };
17410 DragAndDropService.prototype.onDragStop = function (mouseEvent) {
17411 this.eventLastTime = null;
17412 this.dragging = false;
17413 if (this.dragSource.onDragStopped) {
17414 this.dragSource.onDragStopped();
17415 }
17416 if (this.lastDropTarget && this.lastDropTarget.onDragStop) {
17417 var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);
17418 this.lastDropTarget.onDragStop(draggingEvent);
17419 }
17420 this.lastDropTarget = null;
17421 this.dragItem = null;
17422 this.removeGhost();
17423 };
17424 DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {
17425 var _this = this;
17426 var hDirection = this.getHorizontalDirection(mouseEvent);
17427 var vDirection = this.getVerticalDirection(mouseEvent);
17428 this.eventLastTime = mouseEvent;
17429 this.positionGhost(mouseEvent);
17430 // check if mouseEvent intersects with any of the drop targets
17431 var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });
17432 var len = validDropTargets.length;
17433 var dropTarget = null;
17434 if (len > 0) {
17435 dropTarget = len === 1
17436 ? validDropTargets[0]
17437 // the current mouse position could intersect with more than 1 element
17438 // if they are nested. In that case we need to get the most specific
17439 // container, which is the one that does not contain any other targets.
17440 : validDropTargets.reduce(function (prevTarget, currTarget) {
17441 if (!prevTarget) {
17442 return currTarget;
17443 }
17444 var prevContainer = prevTarget.getContainer();
17445 var currContainer = currTarget.getContainer();
17446 if (prevContainer.contains(currContainer)) {
17447 return currTarget;
17448 }
17449 return prevTarget;
17450 });
17451 }
17452 if (dropTarget !== this.lastDropTarget) {
17453 this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);
17454 this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17455 this.lastDropTarget = dropTarget;
17456 }
17457 else if (dropTarget && dropTarget.onDragging) {
17458 var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17459 dropTarget.onDragging(draggingEvent);
17460 }
17461 };
17462 DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {
17463 if (!dropTarget) {
17464 return;
17465 }
17466 if (dropTarget.onDragEnter) {
17467 var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17468 dropTarget.onDragEnter(dragEnterEvent);
17469 }
17470 this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);
17471 };
17472 DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {
17473 if (!this.lastDropTarget) {
17474 return;
17475 }
17476 if (this.lastDropTarget.onDragLeave) {
17477 var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);
17478 this.lastDropTarget.onDragLeave(dragLeaveEvent);
17479 }
17480 this.setGhostIcon(null);
17481 };
17482 DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {
17483 var containers = [dropTarget.getContainer()];
17484 var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;
17485 if (secondaryContainers) {
17486 containers = containers.concat(secondaryContainers);
17487 }
17488 return containers;
17489 };
17490 // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers
17491 DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {
17492 var mouseOverTarget = false;
17493 this.getAllContainersFromDropTarget(dropTarget)
17494 .filter(function (eContainer) { return eContainer; }) // secondary can be missing
17495 .forEach(function (eContainer) {
17496 var rect = eContainer.getBoundingClientRect();
17497 // if element is not visible, then width and height are zero
17498 if (rect.width === 0 || rect.height === 0) {
17499 return;
17500 }
17501 var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;
17502 var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;
17503 if (horizontalFit && verticalFit) {
17504 mouseOverTarget = true;
17505 }
17506 });
17507 return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type);
17508 };
17509 DragAndDropService.prototype.addDropTarget = function (dropTarget) {
17510 this.dropTargets.push(dropTarget);
17511 };
17512 DragAndDropService.prototype.removeDropTarget = function (dropTarget) {
17513 this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });
17514 };
17515 DragAndDropService.prototype.hasExternalDropZones = function () {
17516 return this.dropTargets.some(function (zones) { return zones.external; });
17517 };
17518 DragAndDropService.prototype.findExternalZone = function (params) {
17519 var externalTargets = this.dropTargets.filter(function (target) { return target.external; });
17520 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(externalTargets, function (zone) { return zone.getContainer() === params.getContainer(); });
17521 };
17522 DragAndDropService.prototype.getHorizontalDirection = function (event) {
17523 var clientX = this.eventLastTime && this.eventLastTime.clientX;
17524 var eClientX = event.clientX;
17525 if (clientX === eClientX) {
17526 return null;
17527 }
17528 return clientX > eClientX ? HorizontalDirection.Left : HorizontalDirection.Right;
17529 };
17530 DragAndDropService.prototype.getVerticalDirection = function (event) {
17531 var clientY = this.eventLastTime && this.eventLastTime.clientY;
17532 var eClientY = event.clientY;
17533 if (clientY === eClientY) {
17534 return null;
17535 }
17536 return clientY > eClientY ? VerticalDirection.Up : VerticalDirection.Down;
17537 };
17538 DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {
17539 // localise x and y to the target
17540 var dropZoneTarget = dropTarget.getContainer();
17541 var rect = dropZoneTarget.getBoundingClientRect();
17542 var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;
17543 var x = event.clientX - rect.left;
17544 var y = event.clientY - rect.top;
17545 return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };
17546 };
17547 DragAndDropService.prototype.positionGhost = function (event) {
17548 var ghost = this.eGhost;
17549 if (!ghost) {
17550 return;
17551 }
17552 var ghostRect = ghost.getBoundingClientRect();
17553 var ghostHeight = ghostRect.height;
17554 // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which
17555 // then brought in scrollbars to the browser. no idea why, but putting in -2 here
17556 // works around it which is good enough for me.
17557 var browserWidth = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["getBodyWidth"])() - 2;
17558 var browserHeight = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["getBodyHeight"])() - 2;
17559 var top = event.pageY - (ghostHeight / 2);
17560 var left = event.pageX - 10;
17561 var usrDocument = this.gridOptionsWrapper.getDocument();
17562 var windowScrollY = window.pageYOffset || usrDocument.documentElement.scrollTop;
17563 var windowScrollX = window.pageXOffset || usrDocument.documentElement.scrollLeft;
17564 // check ghost is not positioned outside of the browser
17565 if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {
17566 left = browserWidth + windowScrollX - ghost.clientWidth;
17567 }
17568 if (left < 0) {
17569 left = 0;
17570 }
17571 if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {
17572 top = browserHeight + windowScrollY - ghost.clientHeight;
17573 }
17574 if (top < 0) {
17575 top = 0;
17576 }
17577 ghost.style.left = left + "px";
17578 ghost.style.top = top + "px";
17579 };
17580 DragAndDropService.prototype.removeGhost = function () {
17581 if (this.eGhost && this.eGhostParent) {
17582 this.eGhostParent.removeChild(this.eGhost);
17583 }
17584 this.eGhost = null;
17585 };
17586 DragAndDropService.prototype.createGhost = function () {
17587 this.eGhost = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["loadTemplate"])(DragAndDropService_1.GHOST_TEMPLATE);
17588 var theme = this.environment.getTheme().theme;
17589 if (theme) {
17590 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["addCssClass"])(this.eGhost, theme);
17591 }
17592 this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');
17593 this.setGhostIcon(null);
17594 var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');
17595 var dragItemName = this.dragSource.dragItemName;
17596 if (Object(_utils_function__WEBPACK_IMPORTED_MODULE_8__["isFunction"])(dragItemName)) {
17597 dragItemName = dragItemName();
17598 }
17599 eText.innerHTML = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(dragItemName) || '';
17600 this.eGhost.style.height = '25px';
17601 this.eGhost.style.top = '20px';
17602 this.eGhost.style.left = '20px';
17603 var usrDocument = this.gridOptionsWrapper.getDocument();
17604 var targetEl = usrDocument.fullscreenElement || usrDocument.querySelector('body');
17605 this.eGhostParent = targetEl;
17606 if (!this.eGhostParent) {
17607 console.warn('AG Grid: could not find document body, it is needed for dragging columns');
17608 }
17609 else {
17610 this.eGhostParent.appendChild(this.eGhost);
17611 }
17612 };
17613 DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {
17614 if (shake === void 0) { shake = false; }
17615 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["clearElement"])(this.eGhostIcon);
17616 var eIcon = null;
17617 if (!iconName) {
17618 iconName = this.dragSource.defaultIconName || DragAndDropService_1.ICON_NOT_ALLOWED;
17619 }
17620 switch (iconName) {
17621 case DragAndDropService_1.ICON_PINNED:
17622 eIcon = this.ePinnedIcon;
17623 break;
17624 case DragAndDropService_1.ICON_MOVE:
17625 eIcon = this.eMoveIcon;
17626 break;
17627 case DragAndDropService_1.ICON_LEFT:
17628 eIcon = this.eLeftIcon;
17629 break;
17630 case DragAndDropService_1.ICON_RIGHT:
17631 eIcon = this.eRightIcon;
17632 break;
17633 case DragAndDropService_1.ICON_GROUP:
17634 eIcon = this.eGroupIcon;
17635 break;
17636 case DragAndDropService_1.ICON_AGGREGATE:
17637 eIcon = this.eAggregateIcon;
17638 break;
17639 case DragAndDropService_1.ICON_PIVOT:
17640 eIcon = this.ePivotIcon;
17641 break;
17642 case DragAndDropService_1.ICON_NOT_ALLOWED:
17643 eIcon = this.eDropNotAllowedIcon;
17644 break;
17645 case DragAndDropService_1.ICON_HIDE:
17646 eIcon = this.eHideIcon;
17647 break;
17648 }
17649 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["addOrRemoveCssClass"])(this.eGhostIcon, 'ag-shake-left-to-right', shake);
17650 if (eIcon === this.eHideIcon && this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns()) {
17651 return;
17652 }
17653 if (eIcon) {
17654 this.eGhostIcon.appendChild(eIcon);
17655 }
17656 };
17657 var DragAndDropService_1;
17658 DragAndDropService.ICON_PINNED = 'pinned';
17659 DragAndDropService.ICON_MOVE = 'move';
17660 DragAndDropService.ICON_LEFT = 'left';
17661 DragAndDropService.ICON_RIGHT = 'right';
17662 DragAndDropService.ICON_GROUP = 'group';
17663 DragAndDropService.ICON_AGGREGATE = 'aggregate';
17664 DragAndDropService.ICON_PIVOT = 'pivot';
17665 DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';
17666 DragAndDropService.ICON_HIDE = 'hide';
17667 DragAndDropService.GHOST_TEMPLATE = "<div class=\"ag-dnd-ghost ag-unselectable\">\n <span class=\"ag-dnd-ghost-icon ag-shake-left-to-right\"></span>\n <div class=\"ag-dnd-ghost-label\"></div>\n </div>";
17668 __decorate([
17669 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
17670 ], DragAndDropService.prototype, "dragService", void 0);
17671 __decorate([
17672 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('environment')
17673 ], DragAndDropService.prototype, "environment", void 0);
17674 __decorate([
17675 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
17676 ], DragAndDropService.prototype, "columnApi", void 0);
17677 __decorate([
17678 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
17679 ], DragAndDropService.prototype, "gridApi", void 0);
17680 __decorate([
17681 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
17682 ], DragAndDropService.prototype, "init", null);
17683 __decorate([
17684 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
17685 ], DragAndDropService.prototype, "clearDragSourceParamsList", null);
17686 DragAndDropService = DragAndDropService_1 = __decorate([
17687 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('dragAndDropService')
17688 ], DragAndDropService);
17689 return DragAndDropService;
17690}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
17691
17692
17693
17694/***/ }),
17695/* 79 */
17696/***/ (function(module, __webpack_exports__, __webpack_require__) {
17697
17698"use strict";
17699__webpack_require__.r(__webpack_exports__);
17700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return AnimateShowChangeCellRenderer; });
17701/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
17702/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
17703/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
17704/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
17705/**
17706 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17707 * @version v25.3.0
17708 * @link http://www.ag-grid.com/
17709 * @license MIT
17710 */
17711var __extends = (undefined && undefined.__extends) || (function () {
17712 var extendStatics = function (d, b) {
17713 extendStatics = Object.setPrototypeOf ||
17714 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17715 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17716 return extendStatics(d, b);
17717 };
17718 return function (d, b) {
17719 extendStatics(d, b);
17720 function __() { this.constructor = d; }
17721 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17722 };
17723})();
17724var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17725 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17726 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17727 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;
17728 return c > 3 && r && Object.defineProperty(target, key, r), r;
17729};
17730
17731
17732
17733
17734var ARROW_UP = '\u2191';
17735var ARROW_DOWN = '\u2193';
17736var AnimateShowChangeCellRenderer = /** @class */ (function (_super) {
17737 __extends(AnimateShowChangeCellRenderer, _super);
17738 function AnimateShowChangeCellRenderer() {
17739 var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;
17740 _this.refreshCount = 0;
17741 return _this;
17742 }
17743 AnimateShowChangeCellRenderer.prototype.init = function (params) {
17744 // this.params = params;
17745 this.eValue = this.queryForHtmlElement('.ag-value-change-value');
17746 this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');
17747 this.refresh(params);
17748 };
17749 AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {
17750 var absDelta = Math.abs(delta);
17751 var valueFormatted = params.formatValue(absDelta);
17752 var valueToUse = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(valueFormatted) ? valueFormatted : absDelta;
17753 var deltaUp = (delta >= 0);
17754 if (deltaUp) {
17755 this.eDelta.innerHTML = ARROW_UP + valueToUse;
17756 }
17757 else {
17758 // because negative, use ABS to remove sign
17759 this.eDelta.innerHTML = ARROW_DOWN + valueToUse;
17760 }
17761 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eDelta, 'ag-value-change-delta-up', deltaUp);
17762 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eDelta, 'ag-value-change-delta-down', !deltaUp);
17763 };
17764 AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {
17765 var _this = this;
17766 // the refreshCount makes sure that if the value updates again while
17767 // the below timer is waiting, then the below timer will realise it
17768 // is not the most recent and will not try to remove the delta value.
17769 this.refreshCount++;
17770 var refreshCountCopy = this.refreshCount;
17771 window.setTimeout(function () {
17772 if (refreshCountCopy === _this.refreshCount) {
17773 _this.hideDeltaValue();
17774 }
17775 }, 2000);
17776 };
17777 AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {
17778 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["removeCssClass"])(this.eValue, 'ag-value-change-value-highlight');
17779 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eDelta);
17780 };
17781 AnimateShowChangeCellRenderer.prototype.refresh = function (params) {
17782 var value = params.value;
17783 if (value === this.lastValue) {
17784 return false;
17785 }
17786 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.valueFormatted)) {
17787 this.eValue.innerHTML = params.valueFormatted;
17788 }
17789 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value)) {
17790 this.eValue.innerHTML = value;
17791 }
17792 else {
17793 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eValue);
17794 }
17795 // we don't show the delta if we are in the middle of a filter. see comment on FilterManager
17796 // with regards processingFilterChange
17797 if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {
17798 return false;
17799 }
17800 if (typeof value === 'number' && typeof this.lastValue === 'number') {
17801 var delta = value - this.lastValue;
17802 this.showDelta(params, delta);
17803 }
17804 // highlight the current value, but only if it's not new, otherwise it
17805 // would get highlighted first time the value is shown
17806 if (this.lastValue) {
17807 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.eValue, 'ag-value-change-value-highlight');
17808 }
17809 this.setTimerToRemoveDelta();
17810 this.lastValue = value;
17811 return true;
17812 };
17813 AnimateShowChangeCellRenderer.TEMPLATE = '<span>' +
17814 '<span class="ag-value-change-delta"></span>' +
17815 '<span class="ag-value-change-value"></span>' +
17816 '</span>';
17817 __decorate([
17818 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
17819 ], AnimateShowChangeCellRenderer.prototype, "filterManager", void 0);
17820 return AnimateShowChangeCellRenderer;
17821}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
17822
17823
17824
17825/***/ }),
17826/* 80 */
17827/***/ (function(module, __webpack_exports__, __webpack_require__) {
17828
17829"use strict";
17830__webpack_require__.r(__webpack_exports__);
17831/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return AnimateSlideCellRenderer; });
17832/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
17833/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
17834/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
17835/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
17836/**
17837 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17838 * @version v25.3.0
17839 * @link http://www.ag-grid.com/
17840 * @license MIT
17841 */
17842var __extends = (undefined && undefined.__extends) || (function () {
17843 var extendStatics = function (d, b) {
17844 extendStatics = Object.setPrototypeOf ||
17845 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17846 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17847 return extendStatics(d, b);
17848 };
17849 return function (d, b) {
17850 extendStatics(d, b);
17851 function __() { this.constructor = d; }
17852 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17853 };
17854})();
17855var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17856 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17857 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17858 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;
17859 return c > 3 && r && Object.defineProperty(target, key, r), r;
17860};
17861
17862
17863
17864
17865var AnimateSlideCellRenderer = /** @class */ (function (_super) {
17866 __extends(AnimateSlideCellRenderer, _super);
17867 function AnimateSlideCellRenderer() {
17868 var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;
17869 _this.refreshCount = 0;
17870 _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');
17871 return _this;
17872 }
17873 AnimateSlideCellRenderer.prototype.init = function (params) {
17874 this.refresh(params);
17875 };
17876 AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {
17877 var _this = this;
17878 this.refreshCount++;
17879 // below we keep checking this, and stop working on the animation
17880 // if it no longer matches - this means another animation has started
17881 // and this one is stale.
17882 var refreshCountCopy = this.refreshCount;
17883 // if old animation, remove it
17884 if (this.ePrevious) {
17885 this.getGui().removeChild(this.ePrevious);
17886 }
17887 this.ePrevious = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span class="ag-value-slide-previous ag-value-slide-out"></span>');
17888 this.ePrevious.innerHTML = this.eCurrent.innerHTML;
17889 this.getGui().insertBefore(this.ePrevious, this.eCurrent);
17890 // having timeout of 0 allows use to skip to the next css turn,
17891 // so we know the previous css classes have been applied. so the
17892 // complex set of setTimeout below creates the animation
17893 window.setTimeout(function () {
17894 if (refreshCountCopy !== _this.refreshCount) {
17895 return;
17896 }
17897 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(_this.ePrevious, 'ag-value-slide-out-end');
17898 }, 50);
17899 window.setTimeout(function () {
17900 if (refreshCountCopy !== _this.refreshCount) {
17901 return;
17902 }
17903 _this.getGui().removeChild(_this.ePrevious);
17904 _this.ePrevious = null;
17905 }, 3000);
17906 };
17907 AnimateSlideCellRenderer.prototype.refresh = function (params) {
17908 var value = params.value;
17909 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(value)) {
17910 value = '';
17911 }
17912 if (value === this.lastValue) {
17913 return false;
17914 }
17915 // we don't show the delta if we are in the middle of a filter. see comment on FilterManager
17916 // with regards processingFilterChange
17917 if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {
17918 return false;
17919 }
17920 this.addSlideAnimation();
17921 this.lastValue = value;
17922 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.valueFormatted)) {
17923 this.eCurrent.innerHTML = params.valueFormatted;
17924 }
17925 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.value)) {
17926 this.eCurrent.innerHTML = value;
17927 }
17928 else {
17929 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eCurrent);
17930 }
17931 return true;
17932 };
17933 AnimateSlideCellRenderer.TEMPLATE = "<span>\n <span class=\"ag-value-slide-current\"></span>\n </span>";
17934 __decorate([
17935 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
17936 ], AnimateSlideCellRenderer.prototype, "filterManager", void 0);
17937 return AnimateSlideCellRenderer;
17938}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
17939
17940
17941
17942/***/ }),
17943/* 81 */
17944/***/ (function(module, __webpack_exports__, __webpack_require__) {
17945
17946"use strict";
17947__webpack_require__.r(__webpack_exports__);
17948/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingCellRenderer", function() { return LoadingCellRenderer; });
17949/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
17950/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
17951/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50);
17952/**
17953 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
17954 * @version v25.3.0
17955 * @link http://www.ag-grid.com/
17956 * @license MIT
17957 */
17958var __extends = (undefined && undefined.__extends) || (function () {
17959 var extendStatics = function (d, b) {
17960 extendStatics = Object.setPrototypeOf ||
17961 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17962 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
17963 return extendStatics(d, b);
17964 };
17965 return function (d, b) {
17966 extendStatics(d, b);
17967 function __() { this.constructor = d; }
17968 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17969 };
17970})();
17971var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17972 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17973 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17974 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;
17975 return c > 3 && r && Object.defineProperty(target, key, r), r;
17976};
17977
17978
17979
17980var LoadingCellRenderer = /** @class */ (function (_super) {
17981 __extends(LoadingCellRenderer, _super);
17982 function LoadingCellRenderer() {
17983 return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;
17984 }
17985 LoadingCellRenderer.prototype.init = function (params) {
17986 params.node.failedLoad ? this.setupFailed() : this.setupLoading();
17987 };
17988 LoadingCellRenderer.prototype.setupFailed = function () {
17989 this.eLoadingText.innerText = 'ERR';
17990 };
17991 LoadingCellRenderer.prototype.setupLoading = function () {
17992 var eLoadingIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_2__["createIconNoSpan"])('groupLoading', this.gridOptionsWrapper, null);
17993 if (eLoadingIcon) {
17994 this.eLoadingIcon.appendChild(eLoadingIcon);
17995 }
17996 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
17997 this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');
17998 };
17999 LoadingCellRenderer.prototype.refresh = function (params) {
18000 return false;
18001 };
18002 LoadingCellRenderer.TEMPLATE = "<div class=\"ag-loading\">\n <span class=\"ag-loading-icon\" ref=\"eLoadingIcon\"></span>\n <span class=\"ag-loading-text\" ref=\"eLoadingText\"></span>\n </div>";
18003 __decorate([
18004 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLoadingIcon')
18005 ], LoadingCellRenderer.prototype, "eLoadingIcon", void 0);
18006 __decorate([
18007 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLoadingText')
18008 ], LoadingCellRenderer.prototype, "eLoadingText", void 0);
18009 return LoadingCellRenderer;
18010}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18011
18012
18013
18014/***/ }),
18015/* 82 */
18016/***/ (function(module, __webpack_exports__, __webpack_require__) {
18017
18018"use strict";
18019__webpack_require__.r(__webpack_exports__);
18020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return SelectCellEditor; });
18021/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
18022/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(40);
18023/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
18024/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
18025/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60);
18026/**
18027 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18028 * @version v25.3.0
18029 * @link http://www.ag-grid.com/
18030 * @license MIT
18031 */
18032var __extends = (undefined && undefined.__extends) || (function () {
18033 var extendStatics = function (d, b) {
18034 extendStatics = Object.setPrototypeOf ||
18035 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18036 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18037 return extendStatics(d, b);
18038 };
18039 return function (d, b) {
18040 extendStatics(d, b);
18041 function __() { this.constructor = d; }
18042 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18043 };
18044})();
18045var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18046 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18047 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18048 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;
18049 return c > 3 && r && Object.defineProperty(target, key, r), r;
18050};
18051
18052
18053
18054
18055
18056var SelectCellEditor = /** @class */ (function (_super) {
18057 __extends(SelectCellEditor, _super);
18058 function SelectCellEditor() {
18059 var _this = _super.call(this, '<div class="ag-cell-edit-wrapper"><ag-select class="ag-cell-editor" ref="eSelect"></ag-select></div>') || this;
18060 _this.startedByEnter = false;
18061 return _this;
18062 }
18063 SelectCellEditor.prototype.init = function (params) {
18064 var _this = this;
18065 this.focusAfterAttached = params.cellStartedEdit;
18066 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(params.values)) {
18067 console.warn('AG Grid: no values found for select cellEditor');
18068 return;
18069 }
18070 this.startedByEnter = params.keyPress === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].ENTER;
18071 var hasValue = false;
18072 params.values.forEach(function (value) {
18073 var option = { value: value };
18074 var valueFormatted = _this.valueFormatterService.formatValue(params.column, null, null, value);
18075 var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;
18076 option.text = valueFormattedExits ? valueFormatted : value;
18077 _this.eSelect.addOption(option);
18078 hasValue = hasValue || params.value === value;
18079 });
18080 if (hasValue) {
18081 this.eSelect.setValue(params.value, true);
18082 }
18083 else if (params.values.length) {
18084 this.eSelect.setValue(params.values[0], true);
18085 }
18086 // we don't want to add this if full row editing, otherwise selecting will stop the
18087 // full row editing.
18088 if (!this.gridOptionsWrapper.isFullRowEdit()) {
18089 this.eSelect.onValueChange(function () { return params.stopEditing(); });
18090 }
18091 };
18092 SelectCellEditor.prototype.afterGuiAttached = function () {
18093 if (this.focusAfterAttached) {
18094 this.eSelect.getFocusableElement().focus();
18095 }
18096 if (this.startedByEnter) {
18097 this.eSelect.showPicker();
18098 }
18099 };
18100 SelectCellEditor.prototype.focusIn = function () {
18101 this.eSelect.getFocusableElement().focus();
18102 };
18103 SelectCellEditor.prototype.getValue = function () {
18104 return this.eSelect.getValue();
18105 };
18106 SelectCellEditor.prototype.isPopup = function () {
18107 return false;
18108 };
18109 __decorate([
18110 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueFormatterService')
18111 ], SelectCellEditor.prototype, "valueFormatterService", void 0);
18112 __decorate([
18113 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eSelect')
18114 ], SelectCellEditor.prototype, "eSelect", void 0);
18115 return SelectCellEditor;
18116}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_1__["PopupComponent"]));
18117
18118
18119
18120/***/ }),
18121/* 83 */
18122/***/ (function(module, __webpack_exports__, __webpack_require__) {
18123
18124"use strict";
18125__webpack_require__.r(__webpack_exports__);
18126/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupTextCellEditor", function() { return PopupTextCellEditor; });
18127/* harmony import */ var _textCellEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
18128/**
18129 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18130 * @version v25.3.0
18131 * @link http://www.ag-grid.com/
18132 * @license MIT
18133 */
18134var __extends = (undefined && undefined.__extends) || (function () {
18135 var extendStatics = function (d, b) {
18136 extendStatics = Object.setPrototypeOf ||
18137 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18138 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18139 return extendStatics(d, b);
18140 };
18141 return function (d, b) {
18142 extendStatics(d, b);
18143 function __() { this.constructor = d; }
18144 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18145 };
18146})();
18147
18148var PopupTextCellEditor = /** @class */ (function (_super) {
18149 __extends(PopupTextCellEditor, _super);
18150 function PopupTextCellEditor() {
18151 return _super !== null && _super.apply(this, arguments) || this;
18152 }
18153 PopupTextCellEditor.prototype.isPopup = function () {
18154 return true;
18155 };
18156 return PopupTextCellEditor;
18157}(_textCellEditor__WEBPACK_IMPORTED_MODULE_0__["TextCellEditor"]));
18158
18159
18160
18161/***/ }),
18162/* 84 */
18163/***/ (function(module, __webpack_exports__, __webpack_require__) {
18164
18165"use strict";
18166__webpack_require__.r(__webpack_exports__);
18167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupSelectCellEditor", function() { return PopupSelectCellEditor; });
18168/* harmony import */ var _selectCellEditor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82);
18169/**
18170 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18171 * @version v25.3.0
18172 * @link http://www.ag-grid.com/
18173 * @license MIT
18174 */
18175var __extends = (undefined && undefined.__extends) || (function () {
18176 var extendStatics = function (d, b) {
18177 extendStatics = Object.setPrototypeOf ||
18178 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18179 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18180 return extendStatics(d, b);
18181 };
18182 return function (d, b) {
18183 extendStatics(d, b);
18184 function __() { this.constructor = d; }
18185 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18186 };
18187})();
18188
18189var PopupSelectCellEditor = /** @class */ (function (_super) {
18190 __extends(PopupSelectCellEditor, _super);
18191 function PopupSelectCellEditor() {
18192 return _super !== null && _super.apply(this, arguments) || this;
18193 }
18194 PopupSelectCellEditor.prototype.isPopup = function () {
18195 return true;
18196 };
18197 return PopupSelectCellEditor;
18198}(_selectCellEditor__WEBPACK_IMPORTED_MODULE_0__["SelectCellEditor"]));
18199
18200
18201
18202/***/ }),
18203/* 85 */
18204/***/ (function(module, __webpack_exports__, __webpack_require__) {
18205
18206"use strict";
18207__webpack_require__.r(__webpack_exports__);
18208/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return LargeTextCellEditor; });
18209/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
18210/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
18211/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
18212/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
18213/**
18214 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18215 * @version v25.3.0
18216 * @link http://www.ag-grid.com/
18217 * @license MIT
18218 */
18219var __extends = (undefined && undefined.__extends) || (function () {
18220 var extendStatics = function (d, b) {
18221 extendStatics = Object.setPrototypeOf ||
18222 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18223 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18224 return extendStatics(d, b);
18225 };
18226 return function (d, b) {
18227 extendStatics(d, b);
18228 function __() { this.constructor = d; }
18229 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18230 };
18231})();
18232var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18233 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18234 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18235 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;
18236 return c > 3 && r && Object.defineProperty(target, key, r), r;
18237};
18238
18239
18240
18241
18242var LargeTextCellEditor = /** @class */ (function (_super) {
18243 __extends(LargeTextCellEditor, _super);
18244 function LargeTextCellEditor() {
18245 return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;
18246 }
18247 LargeTextCellEditor.prototype.init = function (params) {
18248 this.params = params;
18249 this.focusAfterAttached = params.cellStartedEdit;
18250 this.eTextArea
18251 .setMaxLength(params.maxLength || 200)
18252 .setCols(params.cols || 60)
18253 .setRows(params.rows || 10);
18254 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value)) {
18255 this.eTextArea.setValue(params.value.toString(), true);
18256 }
18257 this.addGuiEventListener('keydown', this.onKeyDown.bind(this));
18258 };
18259 LargeTextCellEditor.prototype.onKeyDown = function (event) {
18260 var key = event.which || event.keyCode;
18261 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].LEFT ||
18262 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP ||
18263 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].RIGHT ||
18264 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].DOWN ||
18265 (event.shiftKey && key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].ENTER)) { // shift+enter allows for newlines
18266 event.stopPropagation();
18267 }
18268 };
18269 LargeTextCellEditor.prototype.afterGuiAttached = function () {
18270 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
18271 this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));
18272 if (this.focusAfterAttached) {
18273 this.eTextArea.getFocusableElement().focus();
18274 }
18275 };
18276 LargeTextCellEditor.prototype.getValue = function () {
18277 return this.params.parseValue(this.eTextArea.getValue());
18278 };
18279 LargeTextCellEditor.TEMPLATE = "<div class=\"ag-large-text\" tabindex=\"0\">\n <ag-input-text-area ref=\"eTextArea\" class=\"ag-large-text-input\"></ag-input-text-area>\n </div>";
18280 __decorate([
18281 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])("eTextArea")
18282 ], LargeTextCellEditor.prototype, "eTextArea", void 0);
18283 return LargeTextCellEditor;
18284}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
18285
18286
18287
18288/***/ }),
18289/* 86 */
18290/***/ (function(module, __webpack_exports__, __webpack_require__) {
18291
18292"use strict";
18293__webpack_require__.r(__webpack_exports__);
18294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return NumberFilter; });
18295/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
18296/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
18297/* harmony import */ var _scalarFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(68);
18298/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
18299/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
18300/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(34);
18301/**
18302 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18303 * @version v25.3.0
18304 * @link http://www.ag-grid.com/
18305 * @license MIT
18306 */
18307var __extends = (undefined && undefined.__extends) || (function () {
18308 var extendStatics = function (d, b) {
18309 extendStatics = Object.setPrototypeOf ||
18310 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18311 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18312 return extendStatics(d, b);
18313 };
18314 return function (d, b) {
18315 extendStatics(d, b);
18316 function __() { this.constructor = d; }
18317 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18318 };
18319})();
18320var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18321 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18322 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18323 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;
18324 return c > 3 && r && Object.defineProperty(target, key, r), r;
18325};
18326
18327
18328
18329
18330
18331
18332var NumberFilter = /** @class */ (function (_super) {
18333 __extends(NumberFilter, _super);
18334 function NumberFilter() {
18335 return _super.call(this, 'numberFilter') || this;
18336 }
18337 NumberFilter.prototype.mapRangeFromModel = function (filterModel) {
18338 return {
18339 from: filterModel.filter,
18340 to: filterModel.filterTo
18341 };
18342 };
18343 NumberFilter.prototype.getDefaultDebounceMs = function () {
18344 return 500;
18345 };
18346 NumberFilter.prototype.resetUiToDefaults = function (silent) {
18347 var _this = this;
18348 return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {
18349 var fields = [_this.eValueFrom1, _this.eValueFrom2, _this.eValueTo1, _this.eValueTo2];
18350 fields.forEach(function (field) { return field.setValue(null, silent); });
18351 _this.resetPlaceholder();
18352 });
18353 };
18354 NumberFilter.prototype.setConditionIntoUi = function (model, position) {
18355 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
18356 var eValueFrom = positionOne ? this.eValueFrom1 : this.eValueFrom2;
18357 var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;
18358 eValueFrom.setValue(model ? ('' + model.filter) : null);
18359 eValueTo.setValue(model ? ('' + model.filterTo) : null);
18360 };
18361 NumberFilter.prototype.setValueFromFloatingFilter = function (value) {
18362 this.eValueFrom1.setValue(value);
18363 this.eValueTo1.setValue(null);
18364 this.eValueFrom2.setValue(null);
18365 this.eValueTo2.setValue(null);
18366 };
18367 NumberFilter.prototype.comparator = function () {
18368 return function (left, right) {
18369 if (left === right) {
18370 return 0;
18371 }
18372 return left < right ? 1 : -1;
18373 };
18374 };
18375 NumberFilter.prototype.setParams = function (params) {
18376 this.numberFilterParams = params;
18377 var allowedCharPattern = this.getAllowedCharPattern();
18378 if (allowedCharPattern) {
18379 var config = { allowedCharPattern: allowedCharPattern };
18380 this.resetTemplate({
18381 eValueFrom1: config,
18382 eValueTo1: config,
18383 eValueFrom2: config,
18384 eValueTo2: config,
18385 });
18386 }
18387 _super.prototype.setParams.call(this, params);
18388 this.addValueChangedListeners();
18389 };
18390 NumberFilter.prototype.addValueChangedListeners = function () {
18391 var _this = this;
18392 var listener = function () { return _this.onUiChanged(); };
18393 this.eValueFrom1.onValueChange(listener);
18394 this.eValueTo1.onValueChange(listener);
18395 this.eValueFrom2.onValueChange(listener);
18396 this.eValueTo2.onValueChange(listener);
18397 };
18398 NumberFilter.prototype.resetPlaceholder = function () {
18399 var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();
18400 var isRange1 = this.showValueTo(this.getCondition1Type());
18401 var isRange2 = this.showValueTo(this.getCondition2Type());
18402 this.eValueFrom1.setInputPlaceholder(this.translate(isRange1 ? 'inRangeStart' : 'filterOoo'));
18403 this.eValueFrom1.setInputAriaLabel(isRange1
18404 ? globalTranslate('ariaFilterFromValue', 'Filter from value')
18405 : globalTranslate('ariaFilterValue', 'Filter Value'));
18406 this.eValueTo1.setInputPlaceholder(this.translate('inRangeEnd'));
18407 this.eValueTo1.setInputAriaLabel(globalTranslate('ariaFilterToValue', 'Filter to Value'));
18408 this.eValueFrom2.setInputPlaceholder(this.translate(isRange2 ? 'inRangeStart' : 'filterOoo'));
18409 this.eValueFrom2.setInputAriaLabel(isRange2
18410 ? globalTranslate('ariaFilterFromValue', 'Filter from value')
18411 : globalTranslate('ariaFilterValue', 'Filter Value'));
18412 this.eValueTo2.setInputPlaceholder(this.translate('inRangeEnd'));
18413 this.eValueTo2.setInputAriaLabel(globalTranslate('ariaFilterToValue', 'Filter to Value'));
18414 };
18415 NumberFilter.prototype.afterGuiAttached = function (params) {
18416 _super.prototype.afterGuiAttached.call(this, params);
18417 this.resetPlaceholder();
18418 if (!params || !params.suppressFocus) {
18419 this.eValueFrom1.getInputElement().focus();
18420 }
18421 };
18422 NumberFilter.prototype.getDefaultFilterOptions = function () {
18423 return NumberFilter.DEFAULT_FILTER_OPTIONS;
18424 };
18425 NumberFilter.prototype.createValueTemplate = function (position) {
18426 var pos = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One ? '1' : '2';
18427 var allowedCharPattern = this.getAllowedCharPattern();
18428 var agElementTag = allowedCharPattern ? 'ag-input-text-field' : 'ag-input-number-field';
18429 return /* html */ "\n <div class=\"ag-filter-body\" ref=\"eCondition" + pos + "Body\" role=\"presentation\">\n <" + agElementTag + " class=\"ag-filter-from ag-filter-filter\" ref=\"eValueFrom" + pos + "\"></" + agElementTag + ">\n <" + agElementTag + " class=\"ag-filter-to ag-filter-filter\" ref=\"eValueTo" + pos + "\"></" + agElementTag + ">\n </div>";
18430 };
18431 NumberFilter.prototype.isConditionUiComplete = function (position) {
18432 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
18433 var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();
18434 if (option === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY) {
18435 return false;
18436 }
18437 if (this.doesFilterHaveHiddenInput(option)) {
18438 return true;
18439 }
18440 var eValue = positionOne ? this.eValueFrom1 : this.eValueFrom2;
18441 var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;
18442 var value = this.stringToFloat(eValue.getValue());
18443 return value != null && (!this.showValueTo(option) || this.stringToFloat(eValueTo.getValue()) != null);
18444 };
18445 NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
18446 return aSimple.filter === bSimple.filter
18447 && aSimple.filterTo === bSimple.filterTo
18448 && aSimple.type === bSimple.type;
18449 };
18450 NumberFilter.prototype.getFilterType = function () {
18451 return 'number';
18452 };
18453 NumberFilter.prototype.stringToFloat = function (value) {
18454 if (typeof value === 'number') {
18455 return value;
18456 }
18457 var filterText = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["makeNull"])(value);
18458 if (filterText != null && filterText.trim() === '') {
18459 filterText = null;
18460 }
18461 if (this.numberFilterParams.numberParser) {
18462 return this.numberFilterParams.numberParser(filterText);
18463 }
18464 return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);
18465 };
18466 NumberFilter.prototype.createCondition = function (position) {
18467 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
18468 var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();
18469 var eValue = positionOne ? this.eValueFrom1 : this.eValueFrom2;
18470 var value = this.stringToFloat(eValue.getValue());
18471 var model = {
18472 filterType: this.getFilterType(),
18473 type: type
18474 };
18475 if (!this.doesFilterHaveHiddenInput(type)) {
18476 model.filter = value;
18477 if (this.showValueTo(type)) {
18478 var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;
18479 var valueTo = this.stringToFloat(eValueTo.getValue());
18480 model.filterTo = valueTo;
18481 }
18482 }
18483 return model;
18484 };
18485 NumberFilter.prototype.updateUiVisibility = function () {
18486 _super.prototype.updateUiVisibility.call(this);
18487 this.resetPlaceholder();
18488 var condition1Type = this.getCondition1Type();
18489 var condition2Type = this.getCondition2Type();
18490 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueFrom1.getGui(), this.showValueFrom(condition1Type));
18491 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueTo1.getGui(), this.showValueTo(condition1Type));
18492 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueFrom2.getGui(), this.showValueFrom(condition2Type));
18493 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eValueTo2.getGui(), this.showValueTo(condition2Type));
18494 };
18495 NumberFilter.prototype.getAllowedCharPattern = function () {
18496 var allowedCharPattern = (this.numberFilterParams || {}).allowedCharPattern;
18497 if (allowedCharPattern) {
18498 return allowedCharPattern;
18499 }
18500 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isBrowserChrome"])() && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isBrowserEdge"])()) {
18501 // only Chrome and Edge support the HTML5 number field, so for other browsers we provide an equivalent
18502 // constraint instead
18503 return '\\d\\-\\.';
18504 }
18505 return null;
18506 };
18507 NumberFilter.DEFAULT_FILTER_OPTIONS = [
18508 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].EQUALS,
18509 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].NOT_EQUAL,
18510 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].LESS_THAN,
18511 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].LESS_THAN_OR_EQUAL,
18512 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].GREATER_THAN,
18513 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].GREATER_THAN_OR_EQUAL,
18514 _scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"].IN_RANGE
18515 ];
18516 __decorate([
18517 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueFrom1')
18518 ], NumberFilter.prototype, "eValueFrom1", void 0);
18519 __decorate([
18520 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueTo1')
18521 ], NumberFilter.prototype, "eValueTo1", void 0);
18522 __decorate([
18523 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueFrom2')
18524 ], NumberFilter.prototype, "eValueFrom2", void 0);
18525 __decorate([
18526 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValueTo2')
18527 ], NumberFilter.prototype, "eValueTo2", void 0);
18528 return NumberFilter;
18529}(_scalarFilter__WEBPACK_IMPORTED_MODULE_2__["ScalarFilter"]));
18530
18531
18532
18533/***/ }),
18534/* 87 */
18535/***/ (function(module, __webpack_exports__, __webpack_require__) {
18536
18537"use strict";
18538__webpack_require__.r(__webpack_exports__);
18539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingOverlayComponent", function() { return LoadingOverlayComponent; });
18540/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18541/**
18542 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18543 * @version v25.3.0
18544 * @link http://www.ag-grid.com/
18545 * @license MIT
18546 */
18547var __extends = (undefined && undefined.__extends) || (function () {
18548 var extendStatics = function (d, b) {
18549 extendStatics = Object.setPrototypeOf ||
18550 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18551 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18552 return extendStatics(d, b);
18553 };
18554 return function (d, b) {
18555 extendStatics(d, b);
18556 function __() { this.constructor = d; }
18557 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18558 };
18559})();
18560
18561var LoadingOverlayComponent = /** @class */ (function (_super) {
18562 __extends(LoadingOverlayComponent, _super);
18563 function LoadingOverlayComponent() {
18564 return _super.call(this) || this;
18565 }
18566 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18567 // so we need to override destroy() just to make the method public.
18568 LoadingOverlayComponent.prototype.destroy = function () {
18569 _super.prototype.destroy.call(this);
18570 };
18571 LoadingOverlayComponent.prototype.init = function (params) {
18572 var template = this.gridOptionsWrapper.getOverlayLoadingTemplate() ?
18573 this.gridOptionsWrapper.getOverlayLoadingTemplate() : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;
18574 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
18575 var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));
18576 this.setTemplate(localisedTemplate);
18577 };
18578 LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '<span class="ag-overlay-loading-center">[LOADING...]</span>';
18579 return LoadingOverlayComponent;
18580}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18581
18582
18583
18584/***/ }),
18585/* 88 */
18586/***/ (function(module, __webpack_exports__, __webpack_require__) {
18587
18588"use strict";
18589__webpack_require__.r(__webpack_exports__);
18590/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoRowsOverlayComponent", function() { return NoRowsOverlayComponent; });
18591/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18592/**
18593 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18594 * @version v25.3.0
18595 * @link http://www.ag-grid.com/
18596 * @license MIT
18597 */
18598var __extends = (undefined && undefined.__extends) || (function () {
18599 var extendStatics = function (d, b) {
18600 extendStatics = Object.setPrototypeOf ||
18601 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18602 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18603 return extendStatics(d, b);
18604 };
18605 return function (d, b) {
18606 extendStatics(d, b);
18607 function __() { this.constructor = d; }
18608 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18609 };
18610})();
18611
18612var NoRowsOverlayComponent = /** @class */ (function (_super) {
18613 __extends(NoRowsOverlayComponent, _super);
18614 function NoRowsOverlayComponent() {
18615 return _super.call(this) || this;
18616 }
18617 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18618 // so we need to override destroy() just to make the method public.
18619 NoRowsOverlayComponent.prototype.destroy = function () {
18620 _super.prototype.destroy.call(this);
18621 };
18622 NoRowsOverlayComponent.prototype.init = function (params) {
18623 var template = this.gridOptionsWrapper.getOverlayNoRowsTemplate() ?
18624 this.gridOptionsWrapper.getOverlayNoRowsTemplate() : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;
18625 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
18626 var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));
18627 this.setTemplate(localisedTemplate);
18628 };
18629 NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '<span class="ag-overlay-no-rows-center">[NO_ROWS_TO_SHOW]</span>';
18630 return NoRowsOverlayComponent;
18631}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18632
18633
18634
18635/***/ }),
18636/* 89 */
18637/***/ (function(module, __webpack_exports__, __webpack_require__) {
18638
18639"use strict";
18640__webpack_require__.r(__webpack_exports__);
18641/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; });
18642/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
18643/**
18644 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18645 * @version v25.3.0
18646 * @link http://www.ag-grid.com/
18647 * @license MIT
18648 */
18649var __extends = (undefined && undefined.__extends) || (function () {
18650 var extendStatics = function (d, b) {
18651 extendStatics = Object.setPrototypeOf ||
18652 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18653 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18654 return extendStatics(d, b);
18655 };
18656 return function (d, b) {
18657 extendStatics(d, b);
18658 function __() { this.constructor = d; }
18659 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18660 };
18661})();
18662
18663var TooltipComponent = /** @class */ (function (_super) {
18664 __extends(TooltipComponent, _super);
18665 function TooltipComponent() {
18666 return _super.call(this, /* html */ "<div class=\"ag-tooltip\"></div>") || this;
18667 }
18668 // will need to type params
18669 TooltipComponent.prototype.init = function (params) {
18670 var value = params.value;
18671 this.getGui().innerHTML = value;
18672 };
18673 return TooltipComponent;
18674}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
18675
18676
18677
18678/***/ }),
18679/* 90 */
18680/***/ (function(module, __webpack_exports__, __webpack_require__) {
18681
18682"use strict";
18683__webpack_require__.r(__webpack_exports__);
18684/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultDateComponent", function() { return DefaultDateComponent; });
18685/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18686/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
18687/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48);
18688/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
18689/**
18690 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18691 * @version v25.3.0
18692 * @link http://www.ag-grid.com/
18693 * @license MIT
18694 */
18695var __extends = (undefined && undefined.__extends) || (function () {
18696 var extendStatics = function (d, b) {
18697 extendStatics = Object.setPrototypeOf ||
18698 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18699 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18700 return extendStatics(d, b);
18701 };
18702 return function (d, b) {
18703 extendStatics(d, b);
18704 function __() { this.constructor = d; }
18705 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18706 };
18707})();
18708var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18709 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18710 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18711 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;
18712 return c > 3 && r && Object.defineProperty(target, key, r), r;
18713};
18714
18715
18716
18717
18718var DefaultDateComponent = /** @class */ (function (_super) {
18719 __extends(DefaultDateComponent, _super);
18720 function DefaultDateComponent() {
18721 return _super.call(this, /* html */ "\n <div class=\"ag-filter-filter\">\n <ag-input-text-field class=\"ag-date-filter\" ref=\"eDateInput\"></ag-input-text-field>\n </div>") || this;
18722 }
18723 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18724 // so we need to override destroy() just to make the method public.
18725 DefaultDateComponent.prototype.destroy = function () {
18726 _super.prototype.destroy.call(this);
18727 };
18728 DefaultDateComponent.prototype.init = function (params) {
18729 var inputElement = this.eDateInput.getInputElement();
18730 if (this.shouldUseBrowserDatePicker(params)) {
18731 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserIE"])()) {
18732 console.warn('ag-grid: browserDatePicker is specified to true, but it is not supported in IE 11; reverting to text date picker');
18733 }
18734 else {
18735 inputElement.type = 'date';
18736 }
18737 }
18738 // ensures that the input element is focussed when a clear button is clicked
18739 this.addManagedListener(inputElement, 'mousedown', function () { return inputElement.focus(); });
18740 this.addManagedListener(this.eDateInput.getInputElement(), 'input', function (e) {
18741 if (e.target !== document.activeElement) {
18742 return;
18743 }
18744 params.onDateChanged();
18745 });
18746 };
18747 DefaultDateComponent.prototype.getDate = function () {
18748 return Object(_utils_date__WEBPACK_IMPORTED_MODULE_2__["parseDateTimeFromString"])(this.eDateInput.getValue());
18749 };
18750 DefaultDateComponent.prototype.setDate = function (date) {
18751 this.eDateInput.setValue(Object(_utils_date__WEBPACK_IMPORTED_MODULE_2__["serialiseDate"])(date, false));
18752 };
18753 DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {
18754 this.eDateInput.setInputPlaceholder(placeholder);
18755 };
18756 DefaultDateComponent.prototype.afterGuiAttached = function (params) {
18757 if (!params || !params.suppressFocus) {
18758 this.eDateInput.getInputElement().focus();
18759 }
18760 };
18761 DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {
18762 if (params.filterParams && params.filterParams.browserDatePicker != null) {
18763 return params.filterParams.browserDatePicker;
18764 }
18765 return Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserChrome"])() || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserFirefox"])();
18766 };
18767 __decorate([
18768 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eDateInput')
18769 ], DefaultDateComponent.prototype, "eDateInput", void 0);
18770 return DefaultDateComponent;
18771}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18772
18773
18774
18775/***/ }),
18776/* 91 */
18777/***/ (function(module, __webpack_exports__, __webpack_require__) {
18778
18779"use strict";
18780__webpack_require__.r(__webpack_exports__);
18781/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFloatingFilter", function() { return DateFloatingFilter; });
18782/* harmony import */ var _dateFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61);
18783/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
18784/* harmony import */ var _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62);
18785/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
18786/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(63);
18787/* harmony import */ var _floating_provided_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(92);
18788/* harmony import */ var _providedFilter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65);
18789/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
18790/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48);
18791/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(15);
18792/**
18793 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18794 * @version v25.3.0
18795 * @link http://www.ag-grid.com/
18796 * @license MIT
18797 */
18798var __extends = (undefined && undefined.__extends) || (function () {
18799 var extendStatics = function (d, b) {
18800 extendStatics = Object.setPrototypeOf ||
18801 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18802 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18803 return extendStatics(d, b);
18804 };
18805 return function (d, b) {
18806 extendStatics(d, b);
18807 function __() { this.constructor = d; }
18808 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18809 };
18810})();
18811var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18812 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18813 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18814 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;
18815 return c > 3 && r && Object.defineProperty(target, key, r), r;
18816};
18817
18818
18819
18820
18821
18822
18823
18824
18825
18826
18827var DateFloatingFilter = /** @class */ (function (_super) {
18828 __extends(DateFloatingFilter, _super);
18829 function DateFloatingFilter() {
18830 return _super.call(this, /* html */ "\n <div class=\"ag-floating-filter-input\" role=\"presentation\">\n <ag-input-text-field ref=\"eReadOnlyText\"></ag-input-text-field>\n <div ref=\"eDateWrapper\" style=\"display: flex;\"></div>\n </div>") || this;
18831 }
18832 DateFloatingFilter.prototype.getDefaultFilterOptions = function () {
18833 return _dateFilter__WEBPACK_IMPORTED_MODULE_0__["DateFilter"].DEFAULT_FILTER_OPTIONS;
18834 };
18835 DateFloatingFilter.prototype.conditionToString = function (condition) {
18836 var type = condition.type;
18837 var dateFrom = Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["parseDateTimeFromString"])(condition.dateFrom);
18838 if (type === _simpleFilter__WEBPACK_IMPORTED_MODULE_4__["SimpleFilter"].IN_RANGE) {
18839 var dateTo = Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["parseDateTimeFromString"])(condition.dateTo);
18840 return Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(dateFrom, false) + "-" + Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(dateTo, false);
18841 }
18842 // cater for when the type doesn't need a value
18843 return dateFrom == null ? "" + type : "" + Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(dateFrom, false);
18844 };
18845 DateFloatingFilter.prototype.init = function (params) {
18846 _super.prototype.init.call(this, params);
18847 this.params = params;
18848 this.createDateComponent();
18849 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
18850 this.eReadOnlyText
18851 .setDisabled(true)
18852 .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));
18853 };
18854 DateFloatingFilter.prototype.setEditable = function (editable) {
18855 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eDateWrapper, editable);
18856 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["setDisplayed"])(this.eReadOnlyText.getGui(), !editable);
18857 };
18858 DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {
18859 // We don't want to update the floating filter if the floating filter caused the change,
18860 // because the UI is already in sync. if we didn't do this, the UI would behave strangely
18861 // as it would be updating as the user is typing
18862 if (this.isEventFromFloatingFilter(event)) {
18863 return;
18864 }
18865 _super.prototype.setLastTypeFromModel.call(this, model);
18866 var allowEditing = this.canWeEditAfterModelFromParentFilter(model);
18867 this.setEditable(allowEditing);
18868 if (allowEditing) {
18869 if (model) {
18870 var dateModel = model;
18871 this.dateComp.setDate(Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["parseDateTimeFromString"])(dateModel.dateFrom));
18872 }
18873 else {
18874 this.dateComp.setDate(null);
18875 }
18876 this.eReadOnlyText.setValue('');
18877 }
18878 else {
18879 this.eReadOnlyText.setValue(this.getTextFromModel(model));
18880 this.dateComp.setDate(null);
18881 }
18882 };
18883 DateFloatingFilter.prototype.onDateChanged = function () {
18884 var _this = this;
18885 var filterValueDate = this.dateComp.getDate();
18886 var filterValueText = Object(_utils_date__WEBPACK_IMPORTED_MODULE_8__["serialiseDate"])(filterValueDate);
18887 this.params.parentFilterInstance(function (filterInstance) {
18888 if (filterInstance) {
18889 var simpleFilter = filterInstance;
18890 simpleFilter.onFloatingFilterChanged(_this.getLastType(), filterValueText);
18891 }
18892 });
18893 };
18894 DateFloatingFilter.prototype.createDateComponent = function () {
18895 var _this = this;
18896 var debounceMs = _providedFilter__WEBPACK_IMPORTED_MODULE_6__["ProvidedFilter"].getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());
18897 var dateComponentParams = {
18898 onDateChanged: Object(_utils_function__WEBPACK_IMPORTED_MODULE_9__["debounce"])(this.onDateChanged.bind(this), debounceMs),
18899 filterParams: this.params.column.getColDef().filterParams
18900 };
18901 this.dateComp = new _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__["DateCompWrapper"](this.getContext(), this.userComponentFactory, dateComponentParams, this.eDateWrapper);
18902 this.addDestroyFunc(function () { return _this.dateComp.destroy(); });
18903 };
18904 __decorate([
18905 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
18906 ], DateFloatingFilter.prototype, "userComponentFactory", void 0);
18907 __decorate([
18908 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eReadOnlyText')
18909 ], DateFloatingFilter.prototype, "eReadOnlyText", void 0);
18910 __decorate([
18911 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eDateWrapper')
18912 ], DateFloatingFilter.prototype, "eDateWrapper", void 0);
18913 return DateFloatingFilter;
18914}(_floating_provided_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_5__["SimpleFloatingFilter"]));
18915
18916
18917
18918/***/ }),
18919/* 92 */
18920/***/ (function(module, __webpack_exports__, __webpack_require__) {
18921
18922"use strict";
18923__webpack_require__.r(__webpack_exports__);
18924/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFloatingFilter", function() { return SimpleFloatingFilter; });
18925/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
18926/* harmony import */ var _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
18927/* harmony import */ var _provided_optionsFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64);
18928/**
18929 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
18930 * @version v25.3.0
18931 * @link http://www.ag-grid.com/
18932 * @license MIT
18933 */
18934var __extends = (undefined && undefined.__extends) || (function () {
18935 var extendStatics = function (d, b) {
18936 extendStatics = Object.setPrototypeOf ||
18937 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18938 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
18939 return extendStatics(d, b);
18940 };
18941 return function (d, b) {
18942 extendStatics(d, b);
18943 function __() { this.constructor = d; }
18944 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18945 };
18946})();
18947
18948
18949
18950var SimpleFloatingFilter = /** @class */ (function (_super) {
18951 __extends(SimpleFloatingFilter, _super);
18952 function SimpleFloatingFilter() {
18953 return _super !== null && _super.apply(this, arguments) || this;
18954 }
18955 SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {
18956 return 0;
18957 };
18958 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18959 // so we need to override destroy() just to make the method public.
18960 SimpleFloatingFilter.prototype.destroy = function () {
18961 _super.prototype.destroy.call(this);
18962 };
18963 // used by:
18964 // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.
18965 // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)
18966 SimpleFloatingFilter.prototype.getTextFromModel = function (model) {
18967 if (!model) {
18968 return null;
18969 }
18970 var isCombined = model.operator;
18971 if (isCombined) {
18972 var combinedModel = model;
18973 var con1Str = this.conditionToString(combinedModel.condition1);
18974 var con2Str = this.conditionToString(combinedModel.condition2);
18975 return con1Str + " " + combinedModel.operator + " " + con2Str;
18976 }
18977 else {
18978 var condition = model;
18979 var customOption = this.optionsFactory.getCustomOption(condition.type);
18980 // For custom filter options we display the Name of the filter instead
18981 // of displaying the `from` value, as it wouldn't be relevant
18982 if (customOption && customOption.hideFilterInput) {
18983 this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName);
18984 return customOption.displayName;
18985 }
18986 return this.conditionToString(condition);
18987 }
18988 };
18989 SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {
18990 return event && event.afterFloatingFilter;
18991 };
18992 SimpleFloatingFilter.prototype.getLastType = function () {
18993 return this.lastType;
18994 };
18995 SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {
18996 // if no model provided by the parent filter use default
18997 if (!model) {
18998 this.lastType = this.optionsFactory.getDefaultOption();
18999 return;
19000 }
19001 var isCombined = model.operator;
19002 var condition;
19003 if (isCombined) {
19004 var combinedModel = model;
19005 condition = combinedModel.condition1;
19006 }
19007 else {
19008 condition = model;
19009 }
19010 this.lastType = condition.type;
19011 };
19012 SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {
19013 if (!model) {
19014 // if no model, then we can edit as long as the lastType is something we can edit, as this
19015 // is the type we will provide to the parent filter if the user decides to use the floating filter.
19016 return this.isTypeEditable(this.lastType);
19017 }
19018 // never allow editing if the filter is combined (ie has two parts)
19019 var isCombined = model.operator;
19020 if (isCombined) {
19021 return false;
19022 }
19023 var simpleModel = model;
19024 return this.isTypeEditable(simpleModel.type);
19025 };
19026 SimpleFloatingFilter.prototype.init = function (params) {
19027 this.optionsFactory = new _provided_optionsFactory__WEBPACK_IMPORTED_MODULE_2__["OptionsFactory"]();
19028 this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());
19029 this.lastType = this.optionsFactory.getDefaultOption();
19030 // we are editable if:
19031 // 1) there is a type (user has configured filter wrong if not type)
19032 // AND
19033 // 2) the default type is not 'in range'
19034 var editable = this.isTypeEditable(this.lastType);
19035 this.setEditable(editable);
19036 };
19037 SimpleFloatingFilter.prototype.doesFilterHaveHiddenInput = function (filterType) {
19038 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
19039 return customFilterOption && customFilterOption.hideFilterInput;
19040 };
19041 SimpleFloatingFilter.prototype.isTypeEditable = function (type) {
19042 return !!type && !this.doesFilterHaveHiddenInput(type) &&
19043 type !== _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].IN_RANGE
19044 && type !== _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY;
19045 };
19046 return SimpleFloatingFilter;
19047}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
19048
19049
19050
19051/***/ }),
19052/* 93 */
19053/***/ (function(module, __webpack_exports__, __webpack_require__) {
19054
19055"use strict";
19056__webpack_require__.r(__webpack_exports__);
19057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return TextFilter; });
19058/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
19059/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
19060/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
19061/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
19062/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
19063/**
19064 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19065 * @version v25.3.0
19066 * @link http://www.ag-grid.com/
19067 * @license MIT
19068 */
19069var __extends = (undefined && undefined.__extends) || (function () {
19070 var extendStatics = function (d, b) {
19071 extendStatics = Object.setPrototypeOf ||
19072 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19073 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19074 return extendStatics(d, b);
19075 };
19076 return function (d, b) {
19077 extendStatics(d, b);
19078 function __() { this.constructor = d; }
19079 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19080 };
19081})();
19082var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19083 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19084 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19085 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;
19086 return c > 3 && r && Object.defineProperty(target, key, r), r;
19087};
19088
19089
19090
19091
19092
19093var TextFilter = /** @class */ (function (_super) {
19094 __extends(TextFilter, _super);
19095 function TextFilter() {
19096 return _super.call(this, 'textFilter') || this;
19097 }
19098 TextFilter.trimInput = function (value) {
19099 var trimmedInput = value && value.trim();
19100 // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)
19101 return trimmedInput === '' ? value : trimmedInput;
19102 };
19103 TextFilter.prototype.getDefaultDebounceMs = function () {
19104 return 500;
19105 };
19106 TextFilter.prototype.getCleanValue = function (inputField) {
19107 var value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["makeNull"])(inputField.getValue());
19108 return this.textFilterParams.trimInput ? TextFilter.trimInput(value) : value;
19109 };
19110 TextFilter.prototype.addValueChangedListeners = function () {
19111 var _this = this;
19112 var listener = function () { return _this.onUiChanged(); };
19113 this.eValue1.onValueChange(listener);
19114 this.eValue2.onValueChange(listener);
19115 };
19116 TextFilter.prototype.setParams = function (params) {
19117 _super.prototype.setParams.call(this, params);
19118 this.textFilterParams = params;
19119 this.comparator = this.textFilterParams.textCustomComparator || TextFilter.DEFAULT_COMPARATOR;
19120 this.formatter = this.textFilterParams.textFormatter ||
19121 (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);
19122 this.addValueChangedListeners();
19123 };
19124 TextFilter.prototype.setConditionIntoUi = function (model, position) {
19125 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
19126 var eValue = positionOne ? this.eValue1 : this.eValue2;
19127 eValue.setValue(model ? model.filter : null);
19128 };
19129 TextFilter.prototype.createCondition = function (position) {
19130 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
19131 var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();
19132 var eValue = positionOne ? this.eValue1 : this.eValue2;
19133 var value = this.getCleanValue(eValue);
19134 eValue.setValue(value, true); // ensure clean value is visible
19135 var model = {
19136 filterType: this.getFilterType(),
19137 type: type
19138 };
19139 if (!this.doesFilterHaveHiddenInput(type)) {
19140 model.filter = value;
19141 }
19142 return model;
19143 };
19144 TextFilter.prototype.getFilterType = function () {
19145 return 'text';
19146 };
19147 TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
19148 return aSimple.filter === bSimple.filter && aSimple.type === bSimple.type;
19149 };
19150 TextFilter.prototype.resetUiToDefaults = function (silent) {
19151 var _this = this;
19152 return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {
19153 _this.forEachInput(function (field) { return field.setValue(null, silent); });
19154 _this.resetPlaceholder();
19155 });
19156 };
19157 TextFilter.prototype.resetPlaceholder = function () {
19158 var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();
19159 var placeholder = this.translate('filterOoo');
19160 this.forEachInput(function (field) {
19161 field.setInputPlaceholder(placeholder);
19162 field.setInputAriaLabel(globalTranslate('ariaFilterValue', 'Filter Value'));
19163 });
19164 };
19165 TextFilter.prototype.forEachInput = function (action) {
19166 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])([this.eValue1, this.eValue2], action);
19167 };
19168 TextFilter.prototype.setValueFromFloatingFilter = function (value) {
19169 this.eValue1.setValue(value);
19170 this.eValue2.setValue(null);
19171 };
19172 TextFilter.prototype.getDefaultFilterOptions = function () {
19173 return TextFilter.DEFAULT_FILTER_OPTIONS;
19174 };
19175 TextFilter.prototype.createValueTemplate = function (position) {
19176 var pos = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One ? '1' : '2';
19177 return /* html */ "\n <div class=\"ag-filter-body\" ref=\"eCondition" + pos + "Body\" role=\"presentation\">\n <ag-input-text-field class=\"ag-filter-filter\" ref=\"eValue" + pos + "\"></ag-input-text-field>\n </div>";
19178 };
19179 TextFilter.prototype.updateUiVisibility = function () {
19180 _super.prototype.updateUiVisibility.call(this);
19181 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eCondition1Body, this.showValueFrom(this.getCondition1Type()));
19182 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eCondition2Body, this.isCondition2Enabled() && this.showValueFrom(this.getCondition2Type()));
19183 };
19184 TextFilter.prototype.afterGuiAttached = function (params) {
19185 _super.prototype.afterGuiAttached.call(this, params);
19186 this.resetPlaceholder();
19187 if (!params || !params.suppressFocus) {
19188 this.eValue1.getInputElement().focus();
19189 }
19190 };
19191 TextFilter.prototype.isConditionUiComplete = function (position) {
19192 var positionOne = position === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["ConditionPosition"].One;
19193 var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();
19194 if (option === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY) {
19195 return false;
19196 }
19197 if (this.doesFilterHaveHiddenInput(option)) {
19198 return true;
19199 }
19200 return this.getCleanValue(positionOne ? this.eValue1 : this.eValue2) != null;
19201 };
19202 TextFilter.prototype.individualConditionPasses = function (params, filterModel) {
19203 var filterText = filterModel.filter;
19204 var filterOption = filterModel.type;
19205 var cellValue = this.textFilterParams.valueGetter(params.node);
19206 var cellValueFormatted = this.formatter(cellValue);
19207 var customFilterOption = this.optionsFactory.getCustomOption(filterOption);
19208 if (customFilterOption) {
19209 // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden
19210 if (filterText != null || customFilterOption.hideFilterInput) {
19211 return customFilterOption.test(filterText, cellValueFormatted);
19212 }
19213 }
19214 if (cellValue == null) {
19215 return filterOption === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_EQUAL || filterOption === _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_CONTAINS;
19216 }
19217 var filterTextFormatted = this.formatter(filterText);
19218 return this.comparator(filterOption, cellValueFormatted, filterTextFormatted);
19219 };
19220 TextFilter.DEFAULT_FILTER_OPTIONS = [
19221 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].CONTAINS,
19222 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_CONTAINS,
19223 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EQUALS,
19224 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_EQUAL,
19225 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].STARTS_WITH,
19226 _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].ENDS_WITH
19227 ];
19228 TextFilter.DEFAULT_FORMATTER = function (from) { return from; };
19229 TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };
19230 TextFilter.DEFAULT_COMPARATOR = function (filter, value, filterText) {
19231 switch (filter) {
19232 case TextFilter.CONTAINS:
19233 return value.indexOf(filterText) >= 0;
19234 case TextFilter.NOT_CONTAINS:
19235 return value.indexOf(filterText) < 0;
19236 case TextFilter.EQUALS:
19237 return value === filterText;
19238 case TextFilter.NOT_EQUAL:
19239 return value != filterText;
19240 case TextFilter.STARTS_WITH:
19241 return value.indexOf(filterText) === 0;
19242 case TextFilter.ENDS_WITH:
19243 var index = value.lastIndexOf(filterText);
19244 return index >= 0 && index === (value.length - filterText.length);
19245 default:
19246 // should never happen
19247 console.warn('AG Grid: Unexpected type of filter "' + filter + '", it looks like the filter was configured with incorrect Filter Options');
19248 return false;
19249 }
19250 };
19251 __decorate([
19252 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValue1')
19253 ], TextFilter.prototype, "eValue1", void 0);
19254 __decorate([
19255 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eValue2')
19256 ], TextFilter.prototype, "eValue2", void 0);
19257 return TextFilter;
19258}(_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"]));
19259
19260
19261
19262/***/ }),
19263/* 94 */
19264/***/ (function(module, __webpack_exports__, __webpack_require__) {
19265
19266"use strict";
19267__webpack_require__.r(__webpack_exports__);
19268/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFloatingFilter", function() { return NumberFloatingFilter; });
19269/* harmony import */ var _numberFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86);
19270/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63);
19271/* harmony import */ var _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95);
19272/**
19273 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19274 * @version v25.3.0
19275 * @link http://www.ag-grid.com/
19276 * @license MIT
19277 */
19278var __extends = (undefined && undefined.__extends) || (function () {
19279 var extendStatics = function (d, b) {
19280 extendStatics = Object.setPrototypeOf ||
19281 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19282 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19283 return extendStatics(d, b);
19284 };
19285 return function (d, b) {
19286 extendStatics(d, b);
19287 function __() { this.constructor = d; }
19288 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19289 };
19290})();
19291
19292
19293
19294var NumberFloatingFilter = /** @class */ (function (_super) {
19295 __extends(NumberFloatingFilter, _super);
19296 function NumberFloatingFilter() {
19297 return _super !== null && _super.apply(this, arguments) || this;
19298 }
19299 NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {
19300 return _numberFilter__WEBPACK_IMPORTED_MODULE_0__["NumberFilter"].DEFAULT_FILTER_OPTIONS;
19301 };
19302 NumberFloatingFilter.prototype.conditionToString = function (condition) {
19303 var isRange = condition.type == _simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].IN_RANGE;
19304 if (isRange) {
19305 return condition.filter + "-" + condition.filterTo;
19306 }
19307 // cater for when the type doesn't need a value
19308 if (condition.filter != null) {
19309 return "" + condition.filter;
19310 }
19311 return "" + condition.type;
19312 };
19313 return NumberFloatingFilter;
19314}(_floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_2__["TextInputFloatingFilter"]));
19315
19316
19317
19318/***/ }),
19319/* 95 */
19320/***/ (function(module, __webpack_exports__, __webpack_require__) {
19321
19322"use strict";
19323__webpack_require__.r(__webpack_exports__);
19324/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextInputFloatingFilter", function() { return TextInputFloatingFilter; });
19325/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
19326/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15);
19327/* harmony import */ var _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65);
19328/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
19329/* harmony import */ var _simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92);
19330/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51);
19331/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
19332/* harmony import */ var _provided_text_textFilter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(93);
19333/**
19334 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19335 * @version v25.3.0
19336 * @link http://www.ag-grid.com/
19337 * @license MIT
19338 */
19339var __extends = (undefined && undefined.__extends) || (function () {
19340 var extendStatics = function (d, b) {
19341 extendStatics = Object.setPrototypeOf ||
19342 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19343 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19344 return extendStatics(d, b);
19345 };
19346 return function (d, b) {
19347 extendStatics(d, b);
19348 function __() { this.constructor = d; }
19349 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19350 };
19351})();
19352var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19353 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19354 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19355 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;
19356 return c > 3 && r && Object.defineProperty(target, key, r), r;
19357};
19358
19359
19360
19361
19362
19363
19364
19365
19366var TextInputFloatingFilter = /** @class */ (function (_super) {
19367 __extends(TextInputFloatingFilter, _super);
19368 function TextInputFloatingFilter() {
19369 return _super !== null && _super.apply(this, arguments) || this;
19370 }
19371 TextInputFloatingFilter.prototype.postConstruct = function () {
19372 this.setTemplate(/* html */ "\n <div class=\"ag-floating-filter-input\" role=\"presentation\">\n <ag-input-text-field ref=\"eFloatingFilterInput\"></ag-input-text-field>\n </div>");
19373 };
19374 TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {
19375 return 500;
19376 };
19377 TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {
19378 if (this.isEventFromFloatingFilter(event)) {
19379 // if the floating filter triggered the change, it is already in sync
19380 return;
19381 }
19382 this.setLastTypeFromModel(model);
19383 this.eFloatingFilterInput.setValue(this.getTextFromModel(model));
19384 this.setEditable(this.canWeEditAfterModelFromParentFilter(model));
19385 };
19386 TextInputFloatingFilter.prototype.init = function (params) {
19387 _super.prototype.init.call(this, params);
19388 this.params = params;
19389 this.applyActive = _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"].isUseApplyButton(this.params.filterParams);
19390 var debounceMs = _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"].getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());
19391 var toDebounce = Object(_utils_function__WEBPACK_IMPORTED_MODULE_1__["debounce"])(this.syncUpWithParentFilter.bind(this), debounceMs);
19392 var filterGui = this.eFloatingFilterInput.getGui();
19393 this.addManagedListener(filterGui, 'input', toDebounce);
19394 this.addManagedListener(filterGui, 'keypress', toDebounce);
19395 this.addManagedListener(filterGui, 'keydown', toDebounce);
19396 var columnDef = params.column.getDefinition();
19397 if (columnDef.filterParams &&
19398 columnDef.filterParams.filterOptions &&
19399 columnDef.filterParams.filterOptions.length === 1 &&
19400 columnDef.filterParams.filterOptions[0] === 'inRange') {
19401 this.eFloatingFilterInput.setDisabled(true);
19402 }
19403 var displayName = this.columnController.getDisplayNameForColumn(params.column, 'header', true);
19404 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
19405 this.eFloatingFilterInput.setInputAriaLabel(displayName + " " + translate('ariaFilterInput', 'Filter Input'));
19406 };
19407 TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {
19408 var _this = this;
19409 var enterKeyPressed = Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_5__["isKeyPressed"])(e, _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER);
19410 if (this.applyActive && !enterKeyPressed) {
19411 return;
19412 }
19413 var value = this.eFloatingFilterInput.getValue();
19414 if (this.params.filterParams.trimInput) {
19415 value = _provided_text_textFilter__WEBPACK_IMPORTED_MODULE_7__["TextFilter"].trimInput(value);
19416 this.eFloatingFilterInput.setValue(value, true); // ensure visible value is trimmed
19417 }
19418 this.params.parentFilterInstance(function (filterInstance) {
19419 if (filterInstance) {
19420 var simpleFilter = filterInstance;
19421 simpleFilter.onFloatingFilterChanged(_this.getLastType(), value);
19422 }
19423 });
19424 };
19425 TextInputFloatingFilter.prototype.setEditable = function (editable) {
19426 this.eFloatingFilterInput.setDisabled(!editable);
19427 };
19428 __decorate([
19429 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnController')
19430 ], TextInputFloatingFilter.prototype, "columnController", void 0);
19431 __decorate([
19432 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eFloatingFilterInput')
19433 ], TextInputFloatingFilter.prototype, "eFloatingFilterInput", void 0);
19434 __decorate([
19435 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
19436 ], TextInputFloatingFilter.prototype, "postConstruct", null);
19437 return TextInputFloatingFilter;
19438}(_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__["SimpleFloatingFilter"]));
19439
19440
19441
19442/***/ }),
19443/* 96 */
19444/***/ (function(module, __webpack_exports__, __webpack_require__) {
19445
19446"use strict";
19447__webpack_require__.r(__webpack_exports__);
19448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return TextFloatingFilter; });
19449/* harmony import */ var _textFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93);
19450/* harmony import */ var _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95);
19451/**
19452 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19453 * @version v25.3.0
19454 * @link http://www.ag-grid.com/
19455 * @license MIT
19456 */
19457var __extends = (undefined && undefined.__extends) || (function () {
19458 var extendStatics = function (d, b) {
19459 extendStatics = Object.setPrototypeOf ||
19460 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19461 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
19462 return extendStatics(d, b);
19463 };
19464 return function (d, b) {
19465 extendStatics(d, b);
19466 function __() { this.constructor = d; }
19467 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19468 };
19469})();
19470
19471
19472var TextFloatingFilter = /** @class */ (function (_super) {
19473 __extends(TextFloatingFilter, _super);
19474 function TextFloatingFilter() {
19475 return _super !== null && _super.apply(this, arguments) || this;
19476 }
19477 TextFloatingFilter.prototype.conditionToString = function (condition) {
19478 // it's not possible to have 'in range' for string, so no need to check for it.
19479 // also cater for when the type doesn't need a value
19480 if (condition.filter != null) {
19481 return "" + condition.filter;
19482 }
19483 else {
19484 return "" + condition.type;
19485 }
19486 };
19487 TextFloatingFilter.prototype.getDefaultFilterOptions = function () {
19488 return _textFilter__WEBPACK_IMPORTED_MODULE_0__["TextFilter"].DEFAULT_FILTER_OPTIONS;
19489 };
19490 return TextFloatingFilter;
19491}(_floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__["TextInputFloatingFilter"]));
19492
19493
19494
19495/***/ }),
19496/* 97 */
19497/***/ (function(module, __webpack_exports__, __webpack_require__) {
19498
19499"use strict";
19500__webpack_require__.r(__webpack_exports__);
19501/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithAngular1", function() { return initialiseAgGridWithAngular1; });
19502/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(98);
19503/**
19504 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19505 * @version v25.3.0
19506 * @link http://www.ag-grid.com/
19507 * @license MIT
19508 */
19509
19510function initialiseAgGridWithAngular1(angular) {
19511 var angularModule = angular.module("agGrid", []);
19512 angularModule.directive("agGrid", function () {
19513 return {
19514 restrict: "A",
19515 controller: ['$element', '$scope', '$compile', '$attrs', AngularDirectiveController],
19516 scope: true
19517 };
19518 });
19519}
19520function AngularDirectiveController($element, $scope, $compile, $attrs) {
19521 var gridOptions;
19522 var keyOfGridInScope = $attrs.agGrid;
19523 gridOptions = $scope.$eval(keyOfGridInScope);
19524 if (!gridOptions) {
19525 console.warn("WARNING - grid options for AG Grid not found. Please ensure the attribute ag-grid points to a valid object on the scope");
19526 return;
19527 }
19528 var eGridDiv = $element[0];
19529 var gridParams = {
19530 $scope: $scope,
19531 $compile: $compile
19532 };
19533 var grid = new _grid__WEBPACK_IMPORTED_MODULE_0__["Grid"](eGridDiv, gridOptions, gridParams);
19534 var quickFilterOnScope = keyOfGridInScope + '.quickFilterText';
19535 var quickFilterUnregisterFn = $scope.$watch(quickFilterOnScope, function (newFilter) {
19536 gridOptions.api.setQuickFilter(newFilter);
19537 });
19538 $scope.$on("$destroy", function () {
19539 quickFilterUnregisterFn();
19540 if (grid) {
19541 grid.destroy();
19542 }
19543 grid = null;
19544 });
19545}
19546
19547
19548/***/ }),
19549/* 98 */
19550/***/ (function(module, __webpack_exports__, __webpack_require__) {
19551
19552"use strict";
19553__webpack_require__.r(__webpack_exports__);
19554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return Grid; });
19555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return GridCoreCreator; });
19556/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
19557/* harmony import */ var _selectionController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(101);
19558/* harmony import */ var _columnController_columnApi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(103);
19559/* harmony import */ var _columnController_columnController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22);
19560/* harmony import */ var _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(104);
19561/* harmony import */ var _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(111);
19562/* harmony import */ var _filter_filterManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(134);
19563/* harmony import */ var _valueService_valueService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(135);
19564/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(11);
19565/* harmony import */ var _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(136);
19566/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(148);
19567/* harmony import */ var _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5);
19568/* harmony import */ var _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(30);
19569/* harmony import */ var _valueService_expressionService__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(151);
19570/* harmony import */ var _templateService__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(152);
19571/* harmony import */ var _widgets_popupService__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(153);
19572/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(155);
19573/* harmony import */ var _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(28);
19574/* harmony import */ var _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(156);
19575/* harmony import */ var _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(157);
19576/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(12);
19577/* harmony import */ var _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(158);
19578/* harmony import */ var _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(160);
19579/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(78);
19580/* harmony import */ var _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(161);
19581/* harmony import */ var _sortController__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(162);
19582/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(154);
19583/* harmony import */ var _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(163);
19584/* harmony import */ var _cellNavigationService__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(164);
19585/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(23);
19586/* harmony import */ var _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(165);
19587/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(119);
19588/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(166);
19589/* harmony import */ var _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(167);
19590/* harmony import */ var _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(168);
19591/* harmony import */ var _styling_stylingService__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(169);
19592/* harmony import */ var _rendering_columnHoverService__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(170);
19593/* harmony import */ var _rendering_columnAnimationService__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(171);
19594/* harmony import */ var _columnController_autoGroupColService__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(172);
19595/* harmony import */ var _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(173);
19596/* harmony import */ var _pagination_paginationAutoPageSizeService__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(174);
19597/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(16);
19598/* harmony import */ var _valueService_valueCache__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(175);
19599/* harmony import */ var _valueService_changeDetectionService__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(176);
19600/* harmony import */ var _alignedGridsService__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(177);
19601/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(75);
19602/* harmony import */ var _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(38);
19603/* harmony import */ var _components_framework_agComponentUtils__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(178);
19604/* harmony import */ var _components_framework_componentMetadataProvider__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(179);
19605/* harmony import */ var _rendering_beans__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(180);
19606/* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(181);
19607/* harmony import */ var _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(182);
19608/* harmony import */ var _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(183);
19609/* harmony import */ var _rendering_rowContainerHeightService__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(184);
19610/* harmony import */ var _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(185);
19611/* harmony import */ var _rendering_row_autoHeightCalculator__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(186);
19612/* harmony import */ var _pagination_paginationComp__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(187);
19613/* harmony import */ var _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(188);
19614/* harmony import */ var _rendering_overlays_overlayWrapperComponent__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(189);
19615/* harmony import */ var _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(190);
19616/* harmony import */ var _widgets_agDialog__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(191);
19617/* harmony import */ var _widgets_agPanel__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(192);
19618/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(193);
19619/* harmony import */ var _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(194);
19620/* harmony import */ var _widgets_agSlider__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(195);
19621/* harmony import */ var _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(196);
19622/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(199);
19623/* harmony import */ var _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(200);
19624/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(201);
19625/* harmony import */ var _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(203);
19626/* harmony import */ var _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(204);
19627/* harmony import */ var _rendering_row_detailRowCompCache__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(205);
19628/* harmony import */ var _entities_rowPosition__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(206);
19629/* harmony import */ var _entities_cellPosition__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(207);
19630/* harmony import */ var _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(208);
19631/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(18);
19632/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(17);
19633/* harmony import */ var _undoRedo_undoRedoService__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(209);
19634/* harmony import */ var _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(211);
19635/* harmony import */ var _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(212);
19636/* harmony import */ var _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(131);
19637/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(7);
19638/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(13);
19639/* harmony import */ var _columnController_columnDefFactory__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(213);
19640/* harmony import */ var _rendering_row_rowCssClassCalculator__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(214);
19641/* harmony import */ var _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(215);
19642/* harmony import */ var _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(217);
19643/* harmony import */ var _controllersService__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(218);
19644/* harmony import */ var _gridBodyComp_fakeHorizontalScrollComp__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(219);
19645/* harmony import */ var _gridBodyComp_pinnedWidthService__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(221);
19646/* harmony import */ var _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(222);
19647/**
19648 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19649 * @version v25.3.0
19650 * @link http://www.ag-grid.com/
19651 * @license MIT
19652 */
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
19692
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can
19745// be wrapped by the framework wrappers
19746var Grid = /** @class */ (function () {
19747 function Grid(eGridDiv, gridOptions, params) {
19748 if (!gridOptions) {
19749 console.error('AG Grid: no gridOptions provided to the grid');
19750 return;
19751 }
19752 this.gridOptions = gridOptions;
19753 new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {
19754 var gridComp = new _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_21__["GridComp"](eGridDiv);
19755 context.createBean(gridComp);
19756 }, params);
19757 }
19758 Grid.prototype.destroy = function () {
19759 if (this.gridOptions && this.gridOptions.api) {
19760 this.gridOptions.api.destroy();
19761 }
19762 };
19763 return Grid;
19764}());
19765
19766// created services of grid only, no UI, so frameworks can use this if providing
19767// their own UI
19768var GridCoreCreator = /** @class */ (function () {
19769 function GridCoreCreator() {
19770 }
19771 GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, uiCallback, params) {
19772 var debug = !!gridOptions.debug;
19773 var registeredModules = this.getRegisteredModules(params);
19774 var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules);
19775 var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);
19776 if (!beanClasses) {
19777 return;
19778 } // happens when no row model found
19779 var contextParams = {
19780 providedBeanInstances: providedBeanInstances,
19781 beanClasses: beanClasses,
19782 debug: debug
19783 };
19784 var logger = new _logger__WEBPACK_IMPORTED_MODULE_16__["Logger"]('AG Grid', function () { return gridOptions.debug; });
19785 var contextLogger = new _logger__WEBPACK_IMPORTED_MODULE_16__["Logger"]('Context', function () { return contextParams.debug; });
19786 var context = new _context_context__WEBPACK_IMPORTED_MODULE_20__["Context"](contextParams, contextLogger);
19787 this.registerModuleUserComponents(context, registeredModules);
19788 this.registerStackComponents(context, registeredModules);
19789 uiCallback(context);
19790 this.setColumnsAndData(context);
19791 this.dispatchGridReadyEvent(context, gridOptions);
19792 var isEnterprise = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].EnterpriseCoreModule);
19793 logger.log("initialised successfully, enterprise = " + isEnterprise);
19794 };
19795 GridCoreCreator.prototype.registerStackComponents = function (context, registeredModules) {
19796 var agStackComponents = this.createAgStackComponentsList(registeredModules);
19797 var agStackComponentsRegistry = context.getBean('agStackComponentsRegistry');
19798 agStackComponentsRegistry.setupComponents(agStackComponents);
19799 };
19800 GridCoreCreator.prototype.getRegisteredModules = function (params) {
19801 var passedViaConstructor = params ? params.modules : null;
19802 var registered = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].getRegisteredModules();
19803 var allModules = [];
19804 var mapNames = {};
19805 // adds to list and removes duplicates
19806 function addModule(moduleBased, mod) {
19807 function addIndividualModule(currentModule) {
19808 if (!mapNames[currentModule.moduleName]) {
19809 mapNames[currentModule.moduleName] = true;
19810 allModules.push(currentModule);
19811 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].register(currentModule, moduleBased);
19812 }
19813 }
19814 addIndividualModule(mod);
19815 if (mod.dependantModules) {
19816 mod.dependantModules.forEach(addModule.bind(null, moduleBased));
19817 }
19818 }
19819 if (passedViaConstructor) {
19820 passedViaConstructor.forEach(addModule.bind(null, true));
19821 }
19822 if (registered) {
19823 registered.forEach(addModule.bind(null, !_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_75__["ModuleRegistry"].isPackageBased()));
19824 }
19825 return allModules;
19826 };
19827 GridCoreCreator.prototype.registerModuleUserComponents = function (context, registeredModules) {
19828 var userComponentRegistry = context.getBean('userComponentRegistry');
19829 var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });
19830 moduleUserComps.forEach(function (compMeta) {
19831 userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);
19832 });
19833 };
19834 GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {
19835 var frameworkOverrides = params ? params.frameworkOverrides : null;
19836 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_81__["missing"])(frameworkOverrides)) {
19837 frameworkOverrides = new _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_33__["VanillaFrameworkOverrides"]();
19838 }
19839 var seed = {
19840 gridOptions: gridOptions,
19841 eGridDiv: eGridDiv,
19842 $scope: params ? params.$scope : null,
19843 $compile: params ? params.$compile : null,
19844 globalEventListener: params ? params.globalEventListener : null,
19845 frameworkOverrides: frameworkOverrides
19846 };
19847 if (params && params.providedBeanInstances) {
19848 Object(_utils_object__WEBPACK_IMPORTED_MODULE_82__["assign"])(seed, params.providedBeanInstances);
19849 }
19850 return seed;
19851 };
19852 GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {
19853 var components = [
19854 { componentName: 'AgCheckbox', componentClass: _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_31__["AgCheckbox"] },
19855 { componentName: 'AgRadioButton', componentClass: _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_32__["AgRadioButton"] },
19856 { componentName: 'AgToggleButton', componentClass: _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_70__["AgToggleButton"] },
19857 { componentName: 'AgInputTextField', componentClass: _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_62__["AgInputTextField"] },
19858 { componentName: 'AgInputTextArea', componentClass: _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_63__["AgInputTextArea"] },
19859 { componentName: 'AgInputNumberField', componentClass: _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_66__["AgInputNumberField"] },
19860 { componentName: 'AgInputRange', componentClass: _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_67__["AgInputRange"] },
19861 { componentName: 'AgSelect', componentClass: _widgets_agSelect__WEBPACK_IMPORTED_MODULE_68__["AgSelect"] },
19862 { componentName: 'AgSlider', componentClass: _widgets_agSlider__WEBPACK_IMPORTED_MODULE_64__["AgSlider"] },
19863 { componentName: 'AgAngleSelect', componentClass: _widgets_agAngleSelect__WEBPACK_IMPORTED_MODULE_69__["AgAngleSelect"] },
19864 { componentName: 'AgColorPicker', componentClass: _widgets_agColorPicker__WEBPACK_IMPORTED_MODULE_65__["AgColorPicker"] },
19865 { componentName: 'AgGridBody', componentClass: _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_9__["GridBodyComp"] },
19866 { componentName: 'AgHeaderRoot', componentClass: _headerRendering_headerRootComp__WEBPACK_IMPORTED_MODULE_5__["HeaderRootComp"] },
19867 { componentName: 'AgPagination', componentClass: _pagination_paginationComp__WEBPACK_IMPORTED_MODULE_56__["PaginationComp"] },
19868 { componentName: 'AgOverlayWrapper', componentClass: _rendering_overlays_overlayWrapperComponent__WEBPACK_IMPORTED_MODULE_58__["OverlayWrapperComponent"] },
19869 { componentName: 'AgGroupComponent', componentClass: _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_59__["AgGroupComponent"] },
19870 { componentName: 'AgPanel', componentClass: _widgets_agPanel__WEBPACK_IMPORTED_MODULE_61__["AgPanel"] },
19871 { componentName: 'AgDialog', componentClass: _widgets_agDialog__WEBPACK_IMPORTED_MODULE_60__["AgDialog"] },
19872 { componentName: 'AgRowContainer', componentClass: _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_90__["RowContainerComp"] },
19873 { componentName: 'AgFakeHorizontalScroll', componentClass: _gridBodyComp_fakeHorizontalScrollComp__WEBPACK_IMPORTED_MODULE_88__["FakeHorizontalScrollComp"] }
19874 ];
19875 var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });
19876 components = components.concat(moduleAgStackComps);
19877 return components;
19878 };
19879 GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules) {
19880 var rowModelClass = this.getRowModelClass(rowModelType, registeredModules);
19881 if (!rowModelClass) {
19882 return;
19883 }
19884 // beans should only contain SERVICES, it should NEVER contain COMPONENTS
19885 var beans = [
19886 rowModelClass, _rendering_beans__WEBPACK_IMPORTED_MODULE_49__["Beans"], _entities_rowPosition__WEBPACK_IMPORTED_MODULE_72__["RowPositionUtils"], _entities_cellPosition__WEBPACK_IMPORTED_MODULE_73__["CellPositionUtils"], _headerRendering_header_headerPosition__WEBPACK_IMPORTED_MODULE_79__["HeaderPositionUtils"],
19887 _pagination_paginationAutoPageSizeService__WEBPACK_IMPORTED_MODULE_40__["PaginationAutoPageSizeService"], _gridApi__WEBPACK_IMPORTED_MODULE_10__["GridApi"], _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_46__["UserComponentRegistry"], _components_framework_agComponentUtils__WEBPACK_IMPORTED_MODULE_47__["AgComponentUtils"],
19888 _components_framework_componentMetadataProvider__WEBPACK_IMPORTED_MODULE_48__["ComponentMetadataProvider"], _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_57__["ResizeObserverService"], _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_45__["UserComponentFactory"],
19889 _rendering_rowContainerHeightService__WEBPACK_IMPORTED_MODULE_53__["RowContainerHeightService"], _rendering_row_autoHeightCalculator__WEBPACK_IMPORTED_MODULE_55__["AutoHeightCalculator"], _headerRendering_horizontalResizeService__WEBPACK_IMPORTED_MODULE_19__["HorizontalResizeService"],
19890 _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_74__["PinnedRowModel"], _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_24__["DragService"], _columnController_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_12__["DisplayedGroupCreator"], _eventService__WEBPACK_IMPORTED_MODULE_8__["EventService"], _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"],
19891 _widgets_popupService__WEBPACK_IMPORTED_MODULE_15__["PopupService"], _selectionController__WEBPACK_IMPORTED_MODULE_1__["SelectionController"], _filter_filterManager__WEBPACK_IMPORTED_MODULE_6__["FilterManager"], _columnController_columnController__WEBPACK_IMPORTED_MODULE_3__["ColumnController"], _headerRendering_header_headerNavigationService__WEBPACK_IMPORTED_MODULE_80__["HeaderNavigationService"],
19892 _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_39__["PaginationProxy"], _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_4__["RowRenderer"], _valueService_expressionService__WEBPACK_IMPORTED_MODULE_13__["ExpressionService"], _columnController_columnFactory__WEBPACK_IMPORTED_MODULE_11__["ColumnFactory"], _templateService__WEBPACK_IMPORTED_MODULE_14__["TemplateService"],
19893 _alignedGridsService__WEBPACK_IMPORTED_MODULE_44__["AlignedGridsService"], _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_52__["NavigationService"], _valueService_valueCache__WEBPACK_IMPORTED_MODULE_42__["ValueCache"], _valueService_valueService__WEBPACK_IMPORTED_MODULE_7__["ValueService"], _logger__WEBPACK_IMPORTED_MODULE_16__["LoggerFactory"],
19894 _columnController_columnUtils__WEBPACK_IMPORTED_MODULE_17__["ColumnUtils"], _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_18__["AutoWidthCalculator"], _headerRendering_standardMenu__WEBPACK_IMPORTED_MODULE_22__["StandardMenuFactory"], _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_23__["DragAndDropService"], _columnController_columnApi__WEBPACK_IMPORTED_MODULE_2__["ColumnApi"],
19895 _focusController__WEBPACK_IMPORTED_MODULE_26__["FocusController"], _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_27__["MouseEventService"], _environment__WEBPACK_IMPORTED_MODULE_50__["Environment"], _cellNavigationService__WEBPACK_IMPORTED_MODULE_28__["CellNavigationService"], _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_30__["ValueFormatterService"],
19896 _styling_stylingService__WEBPACK_IMPORTED_MODULE_35__["StylingService"], _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_34__["ScrollVisibleService"], _sortController__WEBPACK_IMPORTED_MODULE_25__["SortController"], _rendering_columnHoverService__WEBPACK_IMPORTED_MODULE_36__["ColumnHoverService"], _rendering_columnAnimationService__WEBPACK_IMPORTED_MODULE_37__["ColumnAnimationService"],
19897 _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_54__["SelectableService"], _columnController_autoGroupColService__WEBPACK_IMPORTED_MODULE_38__["AutoGroupColService"], _valueService_changeDetectionService__WEBPACK_IMPORTED_MODULE_43__["ChangeDetectionService"], _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_51__["AnimationFrameService"],
19898 _rendering_row_detailRowCompCache__WEBPACK_IMPORTED_MODULE_71__["DetailRowCompCache"], _undoRedo_undoRedoService__WEBPACK_IMPORTED_MODULE_77__["UndoRedoService"], _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_78__["AgStackComponentsRegistry"], _columnController_columnDefFactory__WEBPACK_IMPORTED_MODULE_83__["ColumnDefFactory"],
19899 _rendering_row_rowCssClassCalculator__WEBPACK_IMPORTED_MODULE_84__["RowCssClassCalculator"], _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_85__["RowNodeBlockLoader"], _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_86__["RowNodeSorter"], _controllersService__WEBPACK_IMPORTED_MODULE_87__["ControllersService"],
19900 _gridBodyComp_pinnedWidthService__WEBPACK_IMPORTED_MODULE_89__["PinnedWidthService"]
19901 ];
19902 var moduleBeans = this.extractModuleEntity(registeredModules, function (module) { return module.beans ? module.beans : []; });
19903 beans.push.apply(beans, moduleBeans);
19904 // check for duplicates, as different modules could include the same beans that
19905 // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community
19906 var beansNoDuplicates = [];
19907 beans.forEach(function (bean) {
19908 if (beansNoDuplicates.indexOf(bean) < 0) {
19909 beansNoDuplicates.push(bean);
19910 }
19911 });
19912 return beansNoDuplicates;
19913 };
19914 GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {
19915 return [].concat.apply([], moduleEntities.map(extractor));
19916 };
19917 GridCoreCreator.prototype.setColumnsAndData = function (context) {
19918 var gridOptionsWrapper = context.getBean('gridOptionsWrapper');
19919 var columnController = context.getBean('columnController');
19920 var columnDefs = gridOptionsWrapper.getColumnDefs();
19921 columnController.setColumnDefs(columnDefs || [], "gridInitializing");
19922 var rowModel = context.getBean('rowModel');
19923 rowModel.start();
19924 };
19925 GridCoreCreator.prototype.dispatchGridReadyEvent = function (context, gridOptions) {
19926 var eventService = context.getBean('eventService');
19927 var readyEvent = {
19928 type: _events__WEBPACK_IMPORTED_MODULE_29__["Events"].EVENT_GRID_READY,
19929 api: gridOptions.api,
19930 columnApi: gridOptions.columnApi
19931 };
19932 eventService.dispatchEvent(readyEvent);
19933 };
19934 GridCoreCreator.prototype.getRowModelClass = function (rowModelType, registeredModules) {
19935 // default to client side
19936 if (!rowModelType) {
19937 rowModelType = _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
19938 }
19939 var rowModelClasses = {};
19940 registeredModules.forEach(function (module) {
19941 Object(_utils_object__WEBPACK_IMPORTED_MODULE_82__["iterateObject"])(module.rowModels, function (key, value) {
19942 rowModelClasses[key] = value;
19943 });
19944 });
19945 var rowModelClass = rowModelClasses[rowModelType];
19946 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_81__["exists"])(rowModelClass)) {
19947 return rowModelClass;
19948 }
19949 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_INFINITE) {
19950 console.error("AG Grid: Row Model \"Infinite\" not found. Please ensure the " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].InfiniteRowModelModule + " is registered.';");
19951 }
19952 console.error('AG Grid: could not find matching row model for rowModelType ' + rowModelType);
19953 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_VIEWPORT) {
19954 console.error("AG Grid: Row Model \"Viewport\" not found. Please ensure the AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].ViewportRowModelModule + " is registered.';");
19955 }
19956 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE) {
19957 console.error("AG Grid: Row Model \"Server Side\" not found. Please ensure the AG Grid Enterprise Module " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].ServerSideRowModelModule + " is registered.';");
19958 }
19959 if (rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_41__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
19960 console.error("AG Grid: Row Model \"Client Side\" not found. Please ensure the " + _modules_moduleNames__WEBPACK_IMPORTED_MODULE_76__["ModuleNames"].ClientSideRowModelModule + " is registered.';");
19961 }
19962 };
19963 return GridCoreCreator;
19964}());
19965
19966
19967
19968/***/ }),
19969/* 99 */
19970/***/ (function(module, __webpack_exports__, __webpack_require__) {
19971
19972"use strict";
19973__webpack_require__.r(__webpack_exports__);
19974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridOptionsWrapper", function() { return GridOptionsWrapper; });
19975/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
19976/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
19977/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35);
19978/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
19979/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36);
19980/* harmony import */ var _components_colDefUtil__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37);
19981/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24);
19982/* harmony import */ var _entities_sideBar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(100);
19983/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
19984/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
19985/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(18);
19986/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(29);
19987/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7);
19988/* harmony import */ var _utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(49);
19989/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(15);
19990/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(34);
19991/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(26);
19992/**
19993 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
19994 * @version v25.3.0
19995 * @link http://www.ag-grid.com/
19996 * @license MIT
19997 */
19998var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19999 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20000 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20001 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;
20002 return c > 3 && r && Object.defineProperty(target, key, r), r;
20003};
20004var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
20005 return function (target, key) { decorator(target, key, paramIndex); }
20006};
20007var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
20008 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
20009 for (var r = Array(s), k = 0, i = 0; i < il; i++)
20010 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
20011 r[k] = a[j];
20012 return r;
20013};
20014
20015
20016
20017
20018
20019
20020
20021
20022
20023
20024
20025
20026
20027
20028
20029
20030
20031var DEFAULT_ROW_HEIGHT = 25;
20032var DEFAULT_DETAIL_ROW_HEIGHT = 300;
20033var DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;
20034var DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;
20035var DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;
20036function isTrue(value) {
20037 return value === true || value === 'true';
20038}
20039function toNumber(value) {
20040 if (typeof value == 'number') {
20041 return value;
20042 }
20043 if (typeof value == 'string') {
20044 return parseInt(value, 10);
20045 }
20046}
20047function zeroOrGreater(value, defaultValue) {
20048 if (value >= 0) {
20049 return value;
20050 }
20051 // zero gets returned if number is missing or the wrong type
20052 return defaultValue;
20053}
20054function oneOrGreater(value, defaultValue) {
20055 var valueNumber = parseInt(value, 10);
20056 if (Object(_utils_number__WEBPACK_IMPORTED_MODULE_11__["isNumeric"])(valueNumber) && valueNumber > 0) {
20057 return valueNumber;
20058 }
20059 return defaultValue;
20060}
20061var GridOptionsWrapper = /** @class */ (function () {
20062 function GridOptionsWrapper() {
20063 this.propertyEventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
20064 this.domDataKey = '__AG_' + Math.random().toString();
20065 this.destroyed = false;
20066 }
20067 GridOptionsWrapper_1 = GridOptionsWrapper;
20068 GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {
20069 this.gridOptions.api = gridApi;
20070 this.gridOptions.columnApi = columnApi;
20071 this.checkForDeprecated();
20072 this.checkForViolations();
20073 };
20074 GridOptionsWrapper.prototype.destroy = function () {
20075 // need to remove these, as we don't own the lifecycle of the gridOptions, we need to
20076 // remove the references in case the user keeps the grid options, we want the rest
20077 // of the grid to be picked up by the garbage collector
20078 this.gridOptions.api = null;
20079 this.gridOptions.columnApi = null;
20080 this.removeEventListener(GridOptionsWrapper_1.PROP_DOM_LAYOUT, this.updateLayoutClassesListener);
20081 this.destroyed = true;
20082 };
20083 GridOptionsWrapper.prototype.init = function () {
20084 var _this = this;
20085 if (this.gridOptions.suppressPropertyNamesCheck !== true) {
20086 this.checkGridOptionsProperties();
20087 this.checkColumnDefProperties();
20088 }
20089 // parse side bar options into correct format
20090 if (this.gridOptions.sideBar != null) {
20091 this.gridOptions.sideBar = _entities_sideBar__WEBPACK_IMPORTED_MODULE_7__["SideBarDefParser"].parse(this.gridOptions.sideBar);
20092 }
20093 var async = this.useAsyncEvents();
20094 this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);
20095 if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {
20096 console.warn("AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work");
20097 }
20098 if (this.isGroupSelectsChildren()) {
20099 if (!this.isRowSelectionMulti()) {
20100 console.warn("AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense");
20101 }
20102 if (this.isRowModelServerSide()) {
20103 console.warn('AG Grid: group selects children is NOT support for Server Side Row Model. ' +
20104 'This is because the rows are lazy loaded, so selecting a group is not possible as' +
20105 'the grid has no way of knowing what the children are.');
20106 }
20107 }
20108 if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {
20109 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!");
20110 }
20111 if (this.isRowModelServerSide()) {
20112 var msg = function (prop) { return "AG Grid: '" + prop + "' is not supported on the Server-Side Row Model"; };
20113 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.groupDefaultExpanded)) {
20114 console.warn(msg('groupDefaultExpanded'));
20115 }
20116 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.groupDefaultExpanded)) {
20117 console.warn(msg('groupIncludeFooter'));
20118 }
20119 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.groupDefaultExpanded)) {
20120 console.warn(msg('groupIncludeTotalFooter'));
20121 }
20122 }
20123 if (this.isEnableRangeSelection()) {
20124 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RangeSelectionModule, 'enableRangeSelection');
20125 }
20126 if (!this.isEnableRangeSelection() && (this.isEnableRangeHandle() || this.isEnableFillHandle())) {
20127 console.warn("AG Grid: 'enableRangeHandle' and 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true");
20128 }
20129 var warnOfDeprecaredIcon = function (name) {
20130 if (_this.gridOptions.icons && _this.gridOptions.icons[name]) {
20131 console.warn("gridOptions.icons." + name + " is no longer supported. For information on how to style checkboxes and radio buttons, see https://www.ag-grid.com/javascript-grid-icons/");
20132 }
20133 };
20134 warnOfDeprecaredIcon('radioButtonOff');
20135 warnOfDeprecaredIcon('radioButtonOn');
20136 warnOfDeprecaredIcon('checkboxChecked');
20137 warnOfDeprecaredIcon('checkboxUnchecked');
20138 warnOfDeprecaredIcon('checkboxIndeterminate');
20139 // sets an initial calculation for the scrollbar width
20140 this.getScrollbarWidth();
20141 };
20142 GridOptionsWrapper.prototype.checkColumnDefProperties = function () {
20143 var _this = this;
20144 if (this.gridOptions.columnDefs == null) {
20145 return;
20146 }
20147 this.gridOptions.columnDefs.forEach(function (colDef) {
20148 var userProperties = Object.getOwnPropertyNames(colDef);
20149 var validProperties = __spreadArrays(_components_colDefUtil__WEBPACK_IMPORTED_MODULE_5__["ColDefUtil"].ALL_PROPERTIES, _components_colDefUtil__WEBPACK_IMPORTED_MODULE_5__["ColDefUtil"].FRAMEWORK_PROPERTIES);
20150 _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');
20151 });
20152 };
20153 GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {
20154 var userProperties = Object.getOwnPropertyNames(this.gridOptions);
20155 var validProperties = __spreadArrays(_propertyKeys__WEBPACK_IMPORTED_MODULE_4__["PropertyKeys"].ALL_PROPERTIES, _propertyKeys__WEBPACK_IMPORTED_MODULE_4__["PropertyKeys"].FRAMEWORK_PROPERTIES, Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["values"])(_eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"]).map(function (event) { return _components_componentUtil__WEBPACK_IMPORTED_MODULE_2__["ComponentUtil"].getCallbackForEvent(event); }));
20156 var validPropertiesAndExceptions = __spreadArrays(validProperties, ['api', 'columnApi']);
20157 this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-grid-properties/');
20158 };
20159 GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {
20160 var invalidProperties = Object(_utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_13__["fuzzyCheckStrings"])(userProperties, validPropertiesAndExceptions, validProperties);
20161 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(invalidProperties, function (key, value) {
20162 console.warn("ag-grid: invalid " + containerName + " property '" + key + "' did you mean any of these: " + value.slice(0, 8).join(", "));
20163 });
20164 if (Object.keys(invalidProperties).length > 0) {
20165 console.warn("ag-grid: to see all the valid " + containerName + " properties please check: " + docsUrl);
20166 }
20167 };
20168 GridOptionsWrapper.prototype.getDomDataKey = function () {
20169 return this.domDataKey;
20170 };
20171 // returns the dom data, or undefined if not found
20172 GridOptionsWrapper.prototype.getDomData = function (element, key) {
20173 var domData = element[this.getDomDataKey()];
20174 return domData ? domData[key] : undefined;
20175 };
20176 GridOptionsWrapper.prototype.setDomData = function (element, key, value) {
20177 var domDataKey = this.getDomDataKey();
20178 var domData = element[domDataKey];
20179 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(domData)) {
20180 domData = {};
20181 element[domDataKey] = domData;
20182 }
20183 domData[key] = value;
20184 };
20185 GridOptionsWrapper.prototype.isRowSelection = function () {
20186 return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';
20187 };
20188 GridOptionsWrapper.prototype.isSuppressRowDeselection = function () {
20189 return isTrue(this.gridOptions.suppressRowDeselection);
20190 };
20191 GridOptionsWrapper.prototype.isRowSelectionMulti = function () {
20192 return this.gridOptions.rowSelection === 'multiple';
20193 };
20194 GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () {
20195 return isTrue(this.gridOptions.rowMultiSelectWithClick);
20196 };
20197 GridOptionsWrapper.prototype.getContext = function () {
20198 return this.gridOptions.context;
20199 };
20200 GridOptionsWrapper.prototype.isPivotMode = function () {
20201 return isTrue(this.gridOptions.pivotMode);
20202 };
20203 GridOptionsWrapper.prototype.isSuppressExpandablePivotGroups = function () {
20204 return isTrue(this.gridOptions.suppressExpandablePivotGroups);
20205 };
20206 GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () {
20207 return this.gridOptions.pivotColumnGroupTotals;
20208 };
20209 GridOptionsWrapper.prototype.getPivotRowTotals = function () {
20210 return this.gridOptions.pivotRowTotals;
20211 };
20212 GridOptionsWrapper.prototype.isRowModelInfinite = function () {
20213 return this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE;
20214 };
20215 GridOptionsWrapper.prototype.isRowModelViewport = function () {
20216 return this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_VIEWPORT;
20217 };
20218 GridOptionsWrapper.prototype.isRowModelServerSide = function () {
20219 return this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE;
20220 };
20221 GridOptionsWrapper.prototype.isRowModelDefault = function () {
20222 return (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.gridOptions.rowModelType) ||
20223 this.gridOptions.rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE);
20224 };
20225 GridOptionsWrapper.prototype.isFullRowEdit = function () {
20226 return this.gridOptions.editType === 'fullRow';
20227 };
20228 GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () {
20229 return isTrue(this.gridOptions.suppressFocusAfterRefresh);
20230 };
20231 GridOptionsWrapper.prototype.isSuppressBrowserResizeObserver = function () {
20232 return isTrue(this.gridOptions.suppressBrowserResizeObserver);
20233 };
20234 GridOptionsWrapper.prototype.isSuppressMaintainUnsortedOrder = function () {
20235 return isTrue(this.gridOptions.suppressMaintainUnsortedOrder);
20236 };
20237 GridOptionsWrapper.prototype.isSuppressClearOnFillReduction = function () {
20238 return isTrue(this.gridOptions.suppressClearOnFillReduction);
20239 };
20240 GridOptionsWrapper.prototype.isShowToolPanel = function () {
20241 return isTrue(this.gridOptions.sideBar && Array.isArray(this.getSideBar().toolPanels));
20242 };
20243 GridOptionsWrapper.prototype.getSideBar = function () {
20244 return this.gridOptions.sideBar;
20245 };
20246 GridOptionsWrapper.prototype.isSuppressTouch = function () {
20247 return isTrue(this.gridOptions.suppressTouch);
20248 };
20249 GridOptionsWrapper.prototype.isApplyColumnDefOrder = function () {
20250 return isTrue(this.gridOptions.applyColumnDefOrder);
20251 };
20252 GridOptionsWrapper.prototype.isSuppressRowTransform = function () {
20253 return isTrue(this.gridOptions.suppressRowTransform);
20254 };
20255 GridOptionsWrapper.prototype.isSuppressColumnStateEvents = function () {
20256 return isTrue(this.gridOptions.suppressColumnStateEvents);
20257 };
20258 GridOptionsWrapper.prototype.isAllowDragFromColumnsToolPanel = function () {
20259 return isTrue(this.gridOptions.allowDragFromColumnsToolPanel);
20260 };
20261 GridOptionsWrapper.prototype.useAsyncEvents = function () {
20262 return !isTrue(this.gridOptions.suppressAsyncEvents);
20263 };
20264 GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () {
20265 return isTrue(this.gridOptions.enableCellChangeFlash);
20266 };
20267 GridOptionsWrapper.prototype.getCellFlashDelay = function () {
20268 return this.gridOptions.cellFlashDelay || 500;
20269 };
20270 GridOptionsWrapper.prototype.getCellFadeDelay = function () {
20271 return this.gridOptions.cellFadeDelay || 1000;
20272 };
20273 GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {
20274 var result = isTrue(this.gridOptions.groupSelectsChildren);
20275 if (result && this.isTreeData()) {
20276 console.warn('AG Grid: groupSelectsChildren does not work with tree data');
20277 return false;
20278 }
20279 return result;
20280 };
20281 GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () {
20282 return isTrue(this.gridOptions.suppressRowHoverHighlight);
20283 };
20284 GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () {
20285 return isTrue(this.gridOptions.groupSelectsFiltered);
20286 };
20287 GridOptionsWrapper.prototype.isGroupHideOpenParents = function () {
20288 return isTrue(this.gridOptions.groupHideOpenParents);
20289 };
20290 // if we are doing hideOpenParents, then we always have groupMultiAutoColumn, otherwise hideOpenParents would not work
20291 GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () {
20292 return isTrue(this.gridOptions.groupMultiAutoColumn) || isTrue(this.gridOptions.groupHideOpenParents);
20293 };
20294 GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () {
20295 return isTrue(this.gridOptions.groupRemoveSingleChildren);
20296 };
20297 GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () {
20298 return isTrue(this.gridOptions.groupRemoveLowestSingleChildren);
20299 };
20300 GridOptionsWrapper.prototype.isGroupIncludeFooter = function () {
20301 return isTrue(this.gridOptions.groupIncludeFooter);
20302 };
20303 GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () {
20304 return isTrue(this.gridOptions.groupIncludeTotalFooter);
20305 };
20306 GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () {
20307 return isTrue(this.gridOptions.groupSuppressBlankHeader);
20308 };
20309 GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () {
20310 return isTrue(this.gridOptions.suppressRowClickSelection);
20311 };
20312 GridOptionsWrapper.prototype.isSuppressCellSelection = function () {
20313 return isTrue(this.gridOptions.suppressCellSelection);
20314 };
20315 GridOptionsWrapper.prototype.isSuppressMultiSort = function () {
20316 return isTrue(this.gridOptions.suppressMultiSort);
20317 };
20318 GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () {
20319 return this.gridOptions.multiSortKey === 'ctrl';
20320 };
20321 GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () {
20322 return isTrue(this.gridOptions.groupSuppressAutoColumn);
20323 };
20324 GridOptionsWrapper.prototype.isPivotSuppressAutoColumn = function () {
20325 return isTrue(this.gridOptions.pivotSuppressAutoColumn);
20326 };
20327 GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () {
20328 return isTrue(this.gridOptions.suppressDragLeaveHidesColumns);
20329 };
20330 GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () {
20331 return isTrue(this.gridOptions.suppressScrollOnNewData);
20332 };
20333 GridOptionsWrapper.prototype.isRowDragManaged = function () {
20334 return isTrue(this.gridOptions.rowDragManaged);
20335 };
20336 GridOptionsWrapper.prototype.isSuppressRowDrag = function () {
20337 return isTrue(this.gridOptions.suppressRowDrag);
20338 };
20339 GridOptionsWrapper.prototype.isSuppressMoveWhenRowDragging = function () {
20340 return isTrue(this.gridOptions.suppressMoveWhenRowDragging);
20341 };
20342 GridOptionsWrapper.prototype.isEnableMultiRowDragging = function () {
20343 return isTrue(this.gridOptions.enableMultiRowDragging);
20344 };
20345 // returns either 'print', 'autoHeight' or 'normal' (normal is the default)
20346 GridOptionsWrapper.prototype.getDomLayout = function () {
20347 var domLayout = this.gridOptions.domLayout || _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL;
20348 var validLayouts = [
20349 _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_PRINT,
20350 _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_AUTO_HEIGHT,
20351 _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL
20352 ];
20353 if (validLayouts.indexOf(domLayout) === -1) {
20354 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () {
20355 return console.warn("AG Grid: " + domLayout + " is not valid for DOM Layout, valid values are " + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL + ", " + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_AUTO_HEIGHT + " and " + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_PRINT);
20356 }, 'warn about dom layout values');
20357 return _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].DOM_LAYOUT_NORMAL;
20358 }
20359 return domLayout;
20360 };
20361 GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () {
20362 return isTrue(this.gridOptions.suppressHorizontalScroll);
20363 };
20364 GridOptionsWrapper.prototype.isSuppressMaxRenderedRowRestriction = function () {
20365 return isTrue(this.gridOptions.suppressMaxRenderedRowRestriction);
20366 };
20367 GridOptionsWrapper.prototype.isExcludeChildrenWhenTreeDataFiltering = function () {
20368 return isTrue(this.gridOptions.excludeChildrenWhenTreeDataFiltering);
20369 };
20370 GridOptionsWrapper.prototype.isAlwaysShowHorizontalScroll = function () {
20371 return isTrue(this.gridOptions.alwaysShowHorizontalScroll);
20372 };
20373 GridOptionsWrapper.prototype.isAlwaysShowVerticalScroll = function () {
20374 return isTrue(this.gridOptions.alwaysShowVerticalScroll);
20375 };
20376 GridOptionsWrapper.prototype.isDebounceVerticalScrollbar = function () {
20377 return isTrue(this.gridOptions.debounceVerticalScrollbar);
20378 };
20379 GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () {
20380 return isTrue(this.gridOptions.suppressLoadingOverlay);
20381 };
20382 GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () {
20383 return isTrue(this.gridOptions.suppressNoRowsOverlay);
20384 };
20385 GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () {
20386 return isTrue(this.gridOptions.suppressFieldDotNotation);
20387 };
20388 GridOptionsWrapper.prototype.getPinnedTopRowData = function () {
20389 return this.gridOptions.pinnedTopRowData;
20390 };
20391 GridOptionsWrapper.prototype.getPinnedBottomRowData = function () {
20392 return this.gridOptions.pinnedBottomRowData;
20393 };
20394 GridOptionsWrapper.prototype.isFunctionsPassive = function () {
20395 return isTrue(this.gridOptions.functionsPassive);
20396 };
20397 GridOptionsWrapper.prototype.isSuppressChangeDetection = function () {
20398 return isTrue(this.gridOptions.suppressChangeDetection);
20399 };
20400 GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () {
20401 return isTrue(this.gridOptions.suppressAnimationFrame);
20402 };
20403 GridOptionsWrapper.prototype.getQuickFilterText = function () {
20404 return this.gridOptions.quickFilterText;
20405 };
20406 GridOptionsWrapper.prototype.isCacheQuickFilter = function () {
20407 return isTrue(this.gridOptions.cacheQuickFilter);
20408 };
20409 GridOptionsWrapper.prototype.isUnSortIcon = function () {
20410 return isTrue(this.gridOptions.unSortIcon);
20411 };
20412 GridOptionsWrapper.prototype.isSuppressMenuHide = function () {
20413 return isTrue(this.gridOptions.suppressMenuHide);
20414 };
20415 GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () {
20416 return isTrue(this.gridOptions.enterMovesDownAfterEdit);
20417 };
20418 GridOptionsWrapper.prototype.isEnterMovesDown = function () {
20419 return isTrue(this.gridOptions.enterMovesDown);
20420 };
20421 GridOptionsWrapper.prototype.isUndoRedoCellEditing = function () {
20422 return isTrue(this.gridOptions.undoRedoCellEditing);
20423 };
20424 GridOptionsWrapper.prototype.getUndoRedoCellEditingLimit = function () {
20425 return this.gridOptions.undoRedoCellEditingLimit;
20426 };
20427 GridOptionsWrapper.prototype.getRowStyle = function () {
20428 return this.gridOptions.rowStyle;
20429 };
20430 GridOptionsWrapper.prototype.getRowClass = function () {
20431 return this.gridOptions.rowClass;
20432 };
20433 GridOptionsWrapper.prototype.getRowStyleFunc = function () {
20434 return this.gridOptions.getRowStyle;
20435 };
20436 GridOptionsWrapper.prototype.getRowClassFunc = function () {
20437 return this.gridOptions.getRowClass;
20438 };
20439 GridOptionsWrapper.prototype.rowClassRules = function () {
20440 return this.gridOptions.rowClassRules;
20441 };
20442 GridOptionsWrapper.prototype.getServerSideStoreType = function () {
20443 return this.gridOptions.serverSideStoreType;
20444 };
20445 GridOptionsWrapper.prototype.getServerSideStoreParamsFunc = function () {
20446 return this.gridOptions.getServerSideStoreParams;
20447 };
20448 GridOptionsWrapper.prototype.getCreateChartContainerFunc = function () {
20449 return this.gridOptions.createChartContainer;
20450 };
20451 GridOptionsWrapper.prototype.getPopupParent = function () {
20452 return this.gridOptions.popupParent;
20453 };
20454 GridOptionsWrapper.prototype.getBlockLoadDebounceMillis = function () {
20455 return this.gridOptions.blockLoadDebounceMillis;
20456 };
20457 GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () {
20458 return this.gridOptions.postProcessPopup;
20459 };
20460 GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () {
20461 return this.gridOptions.paginationNumberFormatter;
20462 };
20463 GridOptionsWrapper.prototype.getChildCountFunc = function () {
20464 return this.gridOptions.getChildCount;
20465 };
20466 GridOptionsWrapper.prototype.getIsApplyServerSideTransactionFunc = function () {
20467 return this.gridOptions.isApplyServerSideTransaction;
20468 };
20469 GridOptionsWrapper.prototype.getDefaultGroupSortComparator = function () {
20470 return this.gridOptions.defaultGroupSortComparator;
20471 };
20472 GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () {
20473 return this.gridOptions.isFullWidthCell;
20474 };
20475 GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () {
20476 return this.gridOptions.fullWidthCellRendererParams;
20477 };
20478 GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () {
20479 return isTrue(this.gridOptions.embedFullWidthRows) || isTrue(this.gridOptions.deprecatedEmbedFullWidthRows);
20480 };
20481 GridOptionsWrapper.prototype.isDetailRowAutoHeight = function () {
20482 return isTrue(this.gridOptions.detailRowAutoHeight);
20483 };
20484 GridOptionsWrapper.prototype.getSuppressKeyboardEventFunc = function () {
20485 return this.gridOptions.suppressKeyboardEvent;
20486 };
20487 GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () {
20488 return this.gridOptions.getBusinessKeyForNode;
20489 };
20490 GridOptionsWrapper.prototype.getApi = function () {
20491 return this.gridOptions.api;
20492 };
20493 GridOptionsWrapper.prototype.getColumnApi = function () {
20494 return this.gridOptions.columnApi;
20495 };
20496 GridOptionsWrapper.prototype.isImmutableData = function () {
20497 return isTrue(this.gridOptions.immutableData);
20498 };
20499 GridOptionsWrapper.prototype.isEnsureDomOrder = function () {
20500 return isTrue(this.gridOptions.ensureDomOrder);
20501 };
20502 GridOptionsWrapper.prototype.isEnableCharts = function () {
20503 if (isTrue(this.gridOptions.enableCharts)) {
20504 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].GridChartsModule, 'enableCharts');
20505 }
20506 return false;
20507 };
20508 GridOptionsWrapper.prototype.getColResizeDefault = function () {
20509 return this.gridOptions.colResizeDefault;
20510 };
20511 GridOptionsWrapper.prototype.isSingleClickEdit = function () {
20512 return isTrue(this.gridOptions.singleClickEdit);
20513 };
20514 GridOptionsWrapper.prototype.isSuppressClickEdit = function () {
20515 return isTrue(this.gridOptions.suppressClickEdit);
20516 };
20517 GridOptionsWrapper.prototype.isStopEditingWhenCellsLoseFocus = function () {
20518 return isTrue(this.gridOptions.stopEditingWhenCellsLoseFocus);
20519 };
20520 GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () {
20521 return this.gridOptions.groupDefaultExpanded;
20522 };
20523 GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () {
20524 return this.gridOptions.maxConcurrentDatasourceRequests;
20525 };
20526 GridOptionsWrapper.prototype.getMaxBlocksInCache = function () {
20527 return this.gridOptions.maxBlocksInCache;
20528 };
20529 GridOptionsWrapper.prototype.getCacheOverflowSize = function () {
20530 return this.gridOptions.cacheOverflowSize;
20531 };
20532 GridOptionsWrapper.prototype.getPaginationPageSize = function () {
20533 return toNumber(this.gridOptions.paginationPageSize);
20534 };
20535 GridOptionsWrapper.prototype.isPaginateChildRows = function () {
20536 var shouldPaginate = this.isGroupRemoveSingleChildren() || this.isGroupRemoveLowestSingleChildren();
20537 if (shouldPaginate) {
20538 return true;
20539 }
20540 return isTrue(this.gridOptions.paginateChildRows);
20541 };
20542 GridOptionsWrapper.prototype.getCacheBlockSize = function () {
20543 return oneOrGreater(this.gridOptions.cacheBlockSize);
20544 };
20545 GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () {
20546 return this.gridOptions.infiniteInitialRowCount;
20547 };
20548 GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () {
20549 return isTrue(this.gridOptions.purgeClosedRowNodes);
20550 };
20551 GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () {
20552 return isTrue(this.gridOptions.suppressPaginationPanel);
20553 };
20554 GridOptionsWrapper.prototype.getRowData = function () {
20555 return this.gridOptions.rowData;
20556 };
20557 // this property is different - we never allow groupUseEntireRow if in pivot mode,
20558 // as otherwise we don't see the pivot values.
20559 GridOptionsWrapper.prototype.isGroupUseEntireRow = function (pivotMode) {
20560 return pivotMode ? false : isTrue(this.gridOptions.groupUseEntireRow);
20561 };
20562 GridOptionsWrapper.prototype.isEnableRtl = function () {
20563 return isTrue(this.gridOptions.enableRtl);
20564 };
20565 GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () {
20566 return this.gridOptions.autoGroupColumnDef;
20567 };
20568 GridOptionsWrapper.prototype.getRowGroupPanelShow = function () {
20569 return this.gridOptions.rowGroupPanelShow;
20570 };
20571 GridOptionsWrapper.prototype.getPivotPanelShow = function () {
20572 return this.gridOptions.pivotPanelShow;
20573 };
20574 GridOptionsWrapper.prototype.isAngularCompileRows = function () {
20575 return isTrue(this.gridOptions.angularCompileRows);
20576 };
20577 GridOptionsWrapper.prototype.isAngularCompileFilters = function () {
20578 return isTrue(this.gridOptions.angularCompileFilters);
20579 };
20580 GridOptionsWrapper.prototype.isDebug = function () {
20581 return isTrue(this.gridOptions.debug);
20582 };
20583 GridOptionsWrapper.prototype.getColumnDefs = function () {
20584 return this.gridOptions.columnDefs;
20585 };
20586 GridOptionsWrapper.prototype.getColumnTypes = function () {
20587 return this.gridOptions.columnTypes;
20588 };
20589 GridOptionsWrapper.prototype.getDatasource = function () {
20590 return this.gridOptions.datasource;
20591 };
20592 GridOptionsWrapper.prototype.getViewportDatasource = function () {
20593 return this.gridOptions.viewportDatasource;
20594 };
20595 GridOptionsWrapper.prototype.getServerSideDatasource = function () {
20596 return this.gridOptions.serverSideDatasource;
20597 };
20598 GridOptionsWrapper.prototype.isAccentedSort = function () {
20599 return isTrue(this.gridOptions.accentedSort);
20600 };
20601 GridOptionsWrapper.prototype.isEnableBrowserTooltips = function () {
20602 return isTrue(this.gridOptions.enableBrowserTooltips);
20603 };
20604 GridOptionsWrapper.prototype.isEnableCellExpressions = function () {
20605 return isTrue(this.gridOptions.enableCellExpressions);
20606 };
20607 GridOptionsWrapper.prototype.isEnableGroupEdit = function () {
20608 return isTrue(this.gridOptions.enableGroupEdit);
20609 };
20610 GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () {
20611 return isTrue(this.gridOptions.suppressMiddleClickScrolls);
20612 };
20613 GridOptionsWrapper.prototype.isPreventDefaultOnContextMenu = function () {
20614 return isTrue(this.gridOptions.preventDefaultOnContextMenu);
20615 };
20616 GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () {
20617 return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel);
20618 };
20619 GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () {
20620 return isTrue(this.gridOptions.suppressColumnVirtualisation);
20621 };
20622 GridOptionsWrapper.prototype.isSuppressContextMenu = function () {
20623 return isTrue(this.gridOptions.suppressContextMenu);
20624 };
20625 GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () {
20626 return isTrue(this.gridOptions.allowContextMenuWithControlKey);
20627 };
20628 GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () {
20629 return isTrue(this.gridOptions.suppressCopyRowsToClipboard);
20630 };
20631 GridOptionsWrapper.prototype.isCopyHeadersToClipboard = function () {
20632 return isTrue(this.gridOptions.copyHeadersToClipboard);
20633 };
20634 GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () {
20635 return isTrue(this.gridOptions.suppressClipboardPaste);
20636 };
20637 GridOptionsWrapper.prototype.isSuppressLastEmptyLineOnPaste = function () {
20638 return isTrue(this.gridOptions.suppressLastEmptyLineOnPaste);
20639 };
20640 GridOptionsWrapper.prototype.isPagination = function () {
20641 return isTrue(this.gridOptions.pagination);
20642 };
20643 GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () {
20644 return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns);
20645 };
20646 GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () {
20647 return this.gridOptions.processDataFromClipboard;
20648 };
20649 GridOptionsWrapper.prototype.getAsyncTransactionWaitMillis = function () {
20650 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].BATCH_WAIT_MILLIS;
20651 };
20652 GridOptionsWrapper.prototype.isSuppressMovableColumns = function () {
20653 return isTrue(this.gridOptions.suppressMovableColumns);
20654 };
20655 GridOptionsWrapper.prototype.isAnimateRows = function () {
20656 // never allow animating if enforcing the row order
20657 if (this.isEnsureDomOrder()) {
20658 return false;
20659 }
20660 return isTrue(this.gridOptions.animateRows);
20661 };
20662 GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () {
20663 return isTrue(this.gridOptions.suppressColumnMoveAnimation);
20664 };
20665 GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () {
20666 return isTrue(this.gridOptions.suppressAggFuncInHeader);
20667 };
20668 GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () {
20669 return isTrue(this.gridOptions.suppressAggAtRootLevel);
20670 };
20671 GridOptionsWrapper.prototype.isSuppressAggFilteredOnly = function () {
20672 return isTrue(this.gridOptions.suppressAggFilteredOnly);
20673 };
20674 GridOptionsWrapper.prototype.isShowOpenedGroup = function () {
20675 return isTrue(this.gridOptions.showOpenedGroup);
20676 };
20677 GridOptionsWrapper.prototype.isEnableRangeSelection = function () {
20678 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RangeSelectionModule) && isTrue(this.gridOptions.enableRangeSelection);
20679 };
20680 GridOptionsWrapper.prototype.isEnableRangeHandle = function () {
20681 return isTrue(this.gridOptions.enableRangeHandle);
20682 };
20683 GridOptionsWrapper.prototype.isEnableFillHandle = function () {
20684 return isTrue(this.gridOptions.enableFillHandle);
20685 };
20686 GridOptionsWrapper.prototype.getFillHandleDirection = function () {
20687 var direction = this.gridOptions.fillHandleDirection;
20688 if (!direction) {
20689 return 'xy';
20690 }
20691 if (direction !== 'x' && direction !== 'y' && direction !== 'xy') {
20692 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () { return console.warn("AG Grid: valid values for fillHandleDirection are 'x', 'y' and 'xy'. Default to 'xy'."); }, 'warn invalid fill direction');
20693 return 'xy';
20694 }
20695 return direction;
20696 };
20697 GridOptionsWrapper.prototype.getFillOperation = function () {
20698 return this.gridOptions.fillOperation;
20699 };
20700 GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () {
20701 return isTrue(this.gridOptions.suppressMultiRangeSelection);
20702 };
20703 GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () {
20704 return isTrue(this.gridOptions.paginationAutoPageSize);
20705 };
20706 GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () {
20707 return isTrue(this.gridOptions.rememberGroupStateWhenNewData);
20708 };
20709 GridOptionsWrapper.prototype.getIcons = function () {
20710 return this.gridOptions.icons;
20711 };
20712 GridOptionsWrapper.prototype.getAggFuncs = function () {
20713 return this.gridOptions.aggFuncs;
20714 };
20715 GridOptionsWrapper.prototype.getSortingOrder = function () {
20716 return this.gridOptions.sortingOrder;
20717 };
20718 GridOptionsWrapper.prototype.getAlignedGrids = function () {
20719 return this.gridOptions.alignedGrids;
20720 };
20721 GridOptionsWrapper.prototype.isMasterDetail = function () {
20722 var masterDetail = isTrue(this.gridOptions.masterDetail);
20723 if (masterDetail) {
20724 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].MasterDetailModule, 'masterDetail');
20725 }
20726 else {
20727 return false;
20728 }
20729 };
20730 GridOptionsWrapper.prototype.isKeepDetailRows = function () {
20731 return isTrue(this.gridOptions.keepDetailRows);
20732 };
20733 GridOptionsWrapper.prototype.getKeepDetailRowsCount = function () {
20734 var keepDetailRowsCount = this.gridOptions.keepDetailRowsCount;
20735 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(keepDetailRowsCount) && keepDetailRowsCount > 0) {
20736 return this.gridOptions.keepDetailRowsCount;
20737 }
20738 return DEFAULT_KEEP_DETAIL_ROW_COUNT;
20739 };
20740 GridOptionsWrapper.prototype.getIsRowMasterFunc = function () {
20741 return this.gridOptions.isRowMaster;
20742 };
20743 GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () {
20744 return this.gridOptions.isRowSelectable;
20745 };
20746 GridOptionsWrapper.prototype.getGroupRowRendererParams = function () {
20747 return this.gridOptions.groupRowRendererParams;
20748 };
20749 GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () {
20750 return this.gridOptions.overlayLoadingTemplate;
20751 };
20752 GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () {
20753 return this.gridOptions.overlayNoRowsTemplate;
20754 };
20755 GridOptionsWrapper.prototype.isSuppressAutoSize = function () {
20756 return isTrue(this.gridOptions.suppressAutoSize);
20757 };
20758 GridOptionsWrapper.prototype.isEnableCellTextSelection = function () {
20759 return isTrue(this.gridOptions.enableCellTextSelection);
20760 };
20761 GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () {
20762 return isTrue(this.gridOptions.suppressParentsInRowNodes);
20763 };
20764 GridOptionsWrapper.prototype.isSuppressClipboardApi = function () {
20765 return isTrue(this.gridOptions.suppressClipboardApi);
20766 };
20767 GridOptionsWrapper.prototype.isFunctionsReadOnly = function () {
20768 return isTrue(this.gridOptions.functionsReadOnly);
20769 };
20770 GridOptionsWrapper.prototype.isFloatingFilter = function () {
20771 return this.gridOptions.floatingFilter;
20772 };
20773 GridOptionsWrapper.prototype.isEnableCellTextSelect = function () {
20774 return isTrue(this.gridOptions.enableCellTextSelection);
20775 };
20776 GridOptionsWrapper.prototype.isEnableOldSetFilterModel = function () {
20777 return isTrue(this.gridOptions.enableOldSetFilterModel);
20778 };
20779 GridOptionsWrapper.prototype.getDefaultColDef = function () {
20780 return this.gridOptions.defaultColDef;
20781 };
20782 GridOptionsWrapper.prototype.getDefaultColGroupDef = function () {
20783 return this.gridOptions.defaultColGroupDef;
20784 };
20785 GridOptionsWrapper.prototype.getDefaultExportParams = function (type) {
20786 if (this.gridOptions.defaultExportParams) {
20787 console.warn("AG Grid: Since v25.2 `defaultExportParams` has been replaced by `default" + Object(_utils_string__WEBPACK_IMPORTED_MODULE_16__["capitalise"])(type) + "ExportParams`'");
20788 if (type === 'csv') {
20789 return this.gridOptions.defaultExportParams;
20790 }
20791 return this.gridOptions.defaultExportParams;
20792 }
20793 if (type === 'csv' && this.gridOptions.defaultCsvExportParams) {
20794 return this.gridOptions.defaultCsvExportParams;
20795 }
20796 if (type === 'excel' && this.gridOptions.defaultExcelExportParams) {
20797 return this.gridOptions.defaultExcelExportParams;
20798 }
20799 };
20800 GridOptionsWrapper.prototype.isSuppressCsvExport = function () {
20801 return isTrue(this.gridOptions.suppressCsvExport);
20802 };
20803 GridOptionsWrapper.prototype.isAllowShowChangeAfterFilter = function () {
20804 return isTrue(this.gridOptions.allowShowChangeAfterFilter);
20805 };
20806 GridOptionsWrapper.prototype.isSuppressExcelExport = function () {
20807 return isTrue(this.gridOptions.suppressExcelExport);
20808 };
20809 GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () {
20810 return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup);
20811 };
20812 GridOptionsWrapper.prototype.getDataPathFunc = function () {
20813 return this.gridOptions.getDataPath;
20814 };
20815 GridOptionsWrapper.prototype.getIsServerSideGroupFunc = function () {
20816 return this.gridOptions.isServerSideGroup;
20817 };
20818 GridOptionsWrapper.prototype.getIsServerSideGroupOpenByDefaultFunc = function () {
20819 return this.gridOptions.isServerSideGroupOpenByDefault;
20820 };
20821 GridOptionsWrapper.prototype.getIsGroupOpenByDefaultFunc = function () {
20822 return this.gridOptions.isGroupOpenByDefault;
20823 };
20824 GridOptionsWrapper.prototype.getServerSideGroupKeyFunc = function () {
20825 return this.gridOptions.getServerSideGroupKey;
20826 };
20827 GridOptionsWrapper.prototype.getGroupRowAggNodesFunc = function () {
20828 return this.gridOptions.groupRowAggNodes;
20829 };
20830 GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () {
20831 return this.gridOptions.getContextMenuItems;
20832 };
20833 GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () {
20834 return this.gridOptions.getMainMenuItems;
20835 };
20836 GridOptionsWrapper.prototype.getRowNodeIdFunc = function () {
20837 return this.gridOptions.getRowNodeId;
20838 };
20839 GridOptionsWrapper.prototype.getNavigateToNextHeaderFunc = function () {
20840 return this.gridOptions.navigateToNextHeader;
20841 };
20842 GridOptionsWrapper.prototype.getTabToNextHeaderFunc = function () {
20843 return this.gridOptions.tabToNextHeader;
20844 };
20845 GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () {
20846 return this.gridOptions.navigateToNextCell;
20847 };
20848 GridOptionsWrapper.prototype.getTabToNextCellFunc = function () {
20849 return this.gridOptions.tabToNextCell;
20850 };
20851 GridOptionsWrapper.prototype.getGridTabIndex = function () {
20852 return (this.gridOptions.tabIndex || 0).toString();
20853 };
20854 GridOptionsWrapper.prototype.isTreeData = function () {
20855 var usingTreeData = isTrue(this.gridOptions.treeData);
20856 if (usingTreeData) {
20857 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_10__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RowGroupingModule, 'Tree Data');
20858 }
20859 return false;
20860 };
20861 GridOptionsWrapper.prototype.isValueCache = function () {
20862 return isTrue(this.gridOptions.valueCache);
20863 };
20864 GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () {
20865 return isTrue(this.gridOptions.valueCacheNeverExpires);
20866 };
20867 GridOptionsWrapper.prototype.isDeltaSort = function () {
20868 return isTrue(this.gridOptions.deltaSort);
20869 };
20870 GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () {
20871 return isTrue(this.gridOptions.aggregateOnlyChangedColumns);
20872 };
20873 GridOptionsWrapper.prototype.getProcessSecondaryColDefFunc = function () {
20874 return this.gridOptions.processSecondaryColDef;
20875 };
20876 GridOptionsWrapper.prototype.getProcessSecondaryColGroupDefFunc = function () {
20877 return this.gridOptions.processSecondaryColGroupDef;
20878 };
20879 GridOptionsWrapper.prototype.getSendToClipboardFunc = function () {
20880 return this.gridOptions.sendToClipboard;
20881 };
20882 GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () {
20883 return this.gridOptions.processRowPostCreate;
20884 };
20885 GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () {
20886 return this.gridOptions.processCellForClipboard;
20887 };
20888 GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () {
20889 return this.gridOptions.processHeaderForClipboard;
20890 };
20891 GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () {
20892 return this.gridOptions.processCellFromClipboard;
20893 };
20894 GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () {
20895 return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);
20896 };
20897 GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () {
20898 return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);
20899 };
20900 GridOptionsWrapper.prototype.isServerSideSortingAlwaysResets = function () {
20901 return isTrue(this.gridOptions.serverSideSortingAlwaysResets);
20902 };
20903 GridOptionsWrapper.prototype.isServerSideFilteringAlwaysResets = function () {
20904 return isTrue(this.gridOptions.serverSideFilteringAlwaysResets);
20905 };
20906 GridOptionsWrapper.prototype.getPostSortFunc = function () {
20907 return this.gridOptions.postSort;
20908 };
20909 GridOptionsWrapper.prototype.getChartToolbarItemsFunc = function () {
20910 return this.gridOptions.getChartToolbarItems;
20911 };
20912 GridOptionsWrapper.prototype.getChartThemeOverrides = function () {
20913 return this.gridOptions.chartThemeOverrides;
20914 };
20915 GridOptionsWrapper.prototype.getCustomChartThemes = function () {
20916 return this.gridOptions.customChartThemes;
20917 };
20918 GridOptionsWrapper.prototype.getChartThemes = function () {
20919 // return default themes if user hasn't supplied any
20920 return this.gridOptions.chartThemes || ['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar'];
20921 };
20922 GridOptionsWrapper.prototype.getProcessChartOptionsFunc = function () {
20923 return this.gridOptions.processChartOptions;
20924 };
20925 GridOptionsWrapper.prototype.getClipboardDeliminator = function () {
20926 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.clipboardDeliminator) ? this.gridOptions.clipboardDeliminator : '\t';
20927 };
20928 GridOptionsWrapper.prototype.setProperty = function (key, value, force) {
20929 if (force === void 0) { force = false; }
20930 var gridOptionsNoType = this.gridOptions;
20931 var previousValue = gridOptionsNoType[key];
20932 if (force || previousValue !== value) {
20933 gridOptionsNoType[key] = value;
20934 var event_1 = {
20935 type: key,
20936 currentValue: value,
20937 previousValue: previousValue
20938 };
20939 this.propertyEventService.dispatchEvent(event_1);
20940 }
20941 };
20942 GridOptionsWrapper.prototype.addEventListener = function (key, listener) {
20943 this.propertyEventService.addEventListener(key, listener);
20944 };
20945 GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {
20946 this.propertyEventService.removeEventListener(key, listener);
20947 };
20948 GridOptionsWrapper.prototype.isSkipHeaderOnAutoSize = function () {
20949 return !!this.gridOptions.skipHeaderOnAutoSize;
20950 };
20951 GridOptionsWrapper.prototype.getAutoSizePadding = function () {
20952 var value = this.gridOptions.autoSizePadding;
20953 return value != null && value >= 0 ? value : 20;
20954 };
20955 // properties
20956 GridOptionsWrapper.prototype.getHeaderHeight = function () {
20957 if (typeof this.gridOptions.headerHeight === 'number') {
20958 return this.gridOptions.headerHeight;
20959 }
20960 return this.getFromTheme(25, 'headerHeight');
20961 };
20962 GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {
20963 if (typeof this.gridOptions.floatingFiltersHeight === 'number') {
20964 return this.gridOptions.floatingFiltersHeight;
20965 }
20966 return this.getFromTheme(25, 'headerHeight');
20967 };
20968 GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {
20969 if (typeof this.gridOptions.groupHeaderHeight === 'number') {
20970 return this.gridOptions.groupHeaderHeight;
20971 }
20972 return this.getHeaderHeight();
20973 };
20974 GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {
20975 if (typeof this.gridOptions.pivotHeaderHeight === 'number') {
20976 return this.gridOptions.pivotHeaderHeight;
20977 }
20978 return this.getHeaderHeight();
20979 };
20980 GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {
20981 if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {
20982 return this.gridOptions.pivotGroupHeaderHeight;
20983 }
20984 return this.getGroupHeaderHeight();
20985 };
20986 GridOptionsWrapper.prototype.isExternalFilterPresent = function () {
20987 if (typeof this.gridOptions.isExternalFilterPresent === 'function') {
20988 return this.gridOptions.isExternalFilterPresent();
20989 }
20990 return false;
20991 };
20992 GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {
20993 if (typeof this.gridOptions.doesExternalFilterPass === 'function') {
20994 return this.gridOptions.doesExternalFilterPass(node);
20995 }
20996 return false;
20997 };
20998 GridOptionsWrapper.prototype.getTooltipShowDelay = function () {
20999 var tooltipShowDelay = this.gridOptions.tooltipShowDelay;
21000 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(tooltipShowDelay)) {
21001 if (tooltipShowDelay < 0) {
21002 console.warn('ag-grid: tooltipShowDelay should not be lower than 0');
21003 }
21004 return Math.max(200, tooltipShowDelay);
21005 }
21006 return null;
21007 };
21008 GridOptionsWrapper.prototype.isTooltipMouseTrack = function () {
21009 return isTrue(this.gridOptions.tooltipMouseTrack);
21010 };
21011 GridOptionsWrapper.prototype.isSuppressModelUpdateAfterUpdateTransaction = function () {
21012 return isTrue(this.gridOptions.suppressModelUpdateAfterUpdateTransaction);
21013 };
21014 GridOptionsWrapper.prototype.getDocument = function () {
21015 // if user is providing document, we use the users one,
21016 // otherwise we use the document on the global namespace.
21017 var result = null;
21018 if (this.gridOptions.getDocument && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.gridOptions.getDocument)) {
21019 result = this.gridOptions.getDocument();
21020 }
21021 if (result && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(result)) {
21022 return result;
21023 }
21024 return document;
21025 };
21026 GridOptionsWrapper.prototype.getMinColWidth = function () {
21027 var minColWidth = this.gridOptions.minColWidth;
21028 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(minColWidth) && minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {
21029 return this.gridOptions.minColWidth;
21030 }
21031 var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');
21032 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(measuredMin) ? Math.max(measuredMin, GridOptionsWrapper_1.MIN_COL_WIDTH) : GridOptionsWrapper_1.MIN_COL_WIDTH;
21033 };
21034 GridOptionsWrapper.prototype.getMaxColWidth = function () {
21035 if (this.gridOptions.maxColWidth && this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {
21036 return this.gridOptions.maxColWidth;
21037 }
21038 return null;
21039 };
21040 GridOptionsWrapper.prototype.getColWidth = function () {
21041 if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {
21042 return 200;
21043 }
21044 return this.gridOptions.colWidth;
21045 };
21046 GridOptionsWrapper.prototype.getRowBuffer = function () {
21047 var rowBuffer = this.gridOptions.rowBuffer;
21048 if (typeof rowBuffer === 'number') {
21049 if (rowBuffer < 0) {
21050 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () { return console.warn("AG Grid: rowBuffer should not be negative"); }, 'warn rowBuffer negative');
21051 this.gridOptions.rowBuffer = rowBuffer = 0;
21052 }
21053 }
21054 else {
21055 rowBuffer = _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_BUFFER_SIZE;
21056 }
21057 return rowBuffer;
21058 };
21059 GridOptionsWrapper.prototype.getRowBufferInPixels = function () {
21060 var rowsToBuffer = this.getRowBuffer();
21061 var defaultRowHeight = this.getRowHeightAsNumber();
21062 return rowsToBuffer * defaultRowHeight;
21063 };
21064 // the user might be using some non-standard scrollbar, eg a scrollbar that has zero
21065 // width and overlays (like the Safari scrollbar, but presented in Chrome). so we
21066 // allow the user to provide the scroll width before we work it out.
21067 GridOptionsWrapper.prototype.getScrollbarWidth = function () {
21068 if (this.scrollbarWidth == null) {
21069 var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;
21070 var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : Object(_utils_browser__WEBPACK_IMPORTED_MODULE_15__["getScrollbarWidth"])();
21071 if (scrollbarWidth != null) {
21072 this.scrollbarWidth = scrollbarWidth;
21073 this.eventService.dispatchEvent({
21074 type: _eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED
21075 });
21076 }
21077 }
21078 return this.scrollbarWidth;
21079 };
21080 GridOptionsWrapper.prototype.checkForDeprecated = function () {
21081 // casting to generic object, so typescript compiles even though
21082 // we are looking for attributes that don't exist
21083 var options = this.gridOptions;
21084 if (options.deprecatedEmbedFullWidthRows) {
21085 console.warn("AG Grid: since v21.2, deprecatedEmbedFullWidthRows has been replaced with embedFullWidthRows.");
21086 }
21087 if (options.enableOldSetFilterModel) {
21088 console.warn('AG Grid: since v22.x, enableOldSetFilterModel is deprecated. Please move to the new Set Filter Model as the old one may not be supported in v23 onwards.');
21089 }
21090 if (options.floatingFilter) {
21091 console.warn('AG Grid: since v23.1, floatingFilter on the gridOptions is deprecated. Please use floatingFilter on the colDef instead.');
21092 if (!options.defaultColDef) {
21093 options.defaultColDef = {};
21094 }
21095 if (options.defaultColDef.floatingFilter == null) {
21096 options.defaultColDef.floatingFilter = true;
21097 }
21098 }
21099 if (options.rowDeselection) {
21100 console.warn('AG Grid: since v24.x, rowDeselection is deprecated and the behaviour is true by default. Please use `suppressRowDeselection` to prevent rows from being deselected.');
21101 }
21102 var checkRenamedProperty = function (oldProp, newProp, version) {
21103 if (options[oldProp] != null) {
21104 console.warn("ag-grid: since version " + version + ", '" + oldProp + "' is deprecated / renamed, please use the new property name '" + newProp + "' instead.");
21105 if (options[newProp] == null) {
21106 options[newProp] = options[oldProp];
21107 }
21108 }
21109 };
21110 checkRenamedProperty('batchUpdateWaitMillis', 'asyncTransactionWaitMillis', '23.1.x');
21111 checkRenamedProperty('deltaRowDataMode', 'immutableData', '23.1.x');
21112 if (options.immutableColumns || options.deltaColumnMode) {
21113 console.warn('AG Grid: since v24.0, immutableColumns and deltaColumnMode properties are gone. The grid now works like this as default. To keep column order maintained, set grid property applyColumnDefOrder=true');
21114 }
21115 checkRenamedProperty('suppressSetColumnStateEvents', 'suppressColumnStateEvents', '24.0.x');
21116 if (options.groupRowInnerRenderer || options.groupRowInnerRendererParams || options.groupRowInnerRendererFramework) {
21117 console.warn('AG Grid: since v24.0, grid properties groupRowInnerRenderer, groupRowInnerRendererFramework and groupRowInnerRendererParams are no longer used.');
21118 console.warn(' Instead use the grid properties groupRowRendererParams.innerRenderer, groupRowRendererParams.innerRendererFramework and groupRowRendererParams.innerRendererParams.');
21119 console.warn(' For example instead of this:');
21120 console.warn(' groupRowInnerRenderer: "myRenderer"');
21121 console.warn(' groupRowInnerRendererParams: {x: a}');
21122 console.warn(' Replace with this:');
21123 console.warn(' groupRowRendererParams: {');
21124 console.warn(' innerRenderer: "myRenderer",');
21125 console.warn(' innerRendererParams: {x: a}');
21126 console.warn(' }');
21127 console.warn(' We have copied the properties over for you. However to stop this error message, please change your application code.');
21128 if (!options.groupRowRendererParams) {
21129 options.groupRowRendererParams = {};
21130 }
21131 var params = options.groupRowRendererParams;
21132 if (options.groupRowInnerRenderer) {
21133 params.innerRenderer = options.groupRowInnerRenderer;
21134 }
21135 if (options.groupRowInnerRendererParams) {
21136 params.innerRendererParams = options.groupRowInnerRendererParams;
21137 }
21138 if (options.groupRowInnerRendererFramework) {
21139 params.innerRendererFramework = options.groupRowInnerRendererFramework;
21140 }
21141 }
21142 if (options.rememberGroupStateWhenNewData) {
21143 console.warn('AG Grid: since v24.0, grid property rememberGroupStateWhenNewData is deprecated. This feature was provided before Transaction Updates worked (which keep group state). Now that transaction updates are possible and they keep group state, this feature is no longer needed.');
21144 }
21145 if (options.detailCellRendererParams && options.detailCellRendererParams.autoHeight) {
21146 console.warn('AG Grid: since v24.1, grid property detailCellRendererParams.autoHeight is replaced with grid property detailRowAutoHeight. This allows this feature to work when you provide a custom DetailCellRenderer');
21147 options.detailRowAutoHeight = true;
21148 }
21149 if (options.suppressKeyboardEvent) {
21150 console.warn("AG Grid: since v24.1 suppressKeyboardEvent in the gridOptions has been deprecated and will be removed in\n future versions of AG Grid. If you need this to be set for every column use the defaultColDef property.");
21151 }
21152 if (options.suppressEnterpriseResetOnNewColumns) {
21153 console.warn('AG Grid: since v25, grid property suppressEnterpriseResetOnNewColumns is deprecated. This was a temporary property to allow changing columns in Server Side Row Model without triggering a reload. Now that it is possible to dynamically change columns in the grid, this is no longer needed.');
21154 options.detailRowAutoHeight = true;
21155 }
21156 if (options.suppressColumnStateEvents) {
21157 console.warn('AG Grid: since v25, grid property suppressColumnStateEvents no longer works due to a refactor that we did. It should be possible to achieve similar using event.source, which would be "api" if the event was due to setting column state via the API');
21158 options.detailRowAutoHeight = true;
21159 }
21160 if (options.defaultExportParams) {
21161 console.warn('AG Grid: since v25.2, the grid property `defaultExportParams` has been replaced by `defaultCsvExportParams` and `defaultExcelExportParams`.');
21162 }
21163 if (options.stopEditingWhenGridLosesFocus) {
21164 console.warn('AG Grid: since v25.2.2, the grid property `stopEditingWhenGridLosesFocus`.');
21165 options.stopEditingWhenCellsLoseFocus = true;
21166 }
21167 };
21168 GridOptionsWrapper.prototype.checkForViolations = function () {
21169 if (this.isTreeData()) {
21170 this.treeDataViolations();
21171 }
21172 };
21173 GridOptionsWrapper.prototype.treeDataViolations = function () {
21174 if (this.isRowModelDefault()) {
21175 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getDataPathFunc())) {
21176 console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +
21177 'provide getDataPath function, please provide getDataPath function if using tree data.');
21178 }
21179 }
21180 if (this.isRowModelServerSide()) {
21181 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getIsServerSideGroupFunc())) {
21182 console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +
21183 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');
21184 }
21185 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getServerSideGroupKeyFunc())) {
21186 console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +
21187 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');
21188 }
21189 }
21190 };
21191 GridOptionsWrapper.prototype.getLocaleTextFunc = function () {
21192 if (this.gridOptions.localeTextFunc) {
21193 return this.gridOptions.localeTextFunc;
21194 }
21195 var localeText = this.gridOptions.localeText;
21196 return function (key, defaultValue) {
21197 return localeText && localeText[key] ? localeText[key] : defaultValue;
21198 };
21199 };
21200 // responsible for calling the onXXX functions on gridOptions
21201 GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {
21202 // prevent events from being fired _after_ the grid has been destroyed
21203 if (this.destroyed) {
21204 return;
21205 }
21206 var callbackMethodName = _components_componentUtil__WEBPACK_IMPORTED_MODULE_2__["ComponentUtil"].getCallbackForEvent(eventName);
21207 if (typeof this.gridOptions[callbackMethodName] === 'function') {
21208 this.gridOptions[callbackMethodName](event);
21209 }
21210 };
21211 // we don't allow dynamic row height for virtual paging
21212 GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {
21213 if (!this.gridOptions.rowHeight || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.gridOptions.rowHeight)) {
21214 return this.getDefaultRowHeight();
21215 }
21216 if (this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight)) {
21217 return this.gridOptions.rowHeight;
21218 }
21219 console.warn('AG Grid row height must be a number if not using standard row model');
21220 return this.getDefaultRowHeight();
21221 };
21222 GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode, allowEstimate) {
21223 // check the function first, in case use set both function and
21224 // number, when using virtual pagination then function can be
21225 // used for pinned rows and the number for the body rows.
21226 if (allowEstimate === void 0) { allowEstimate = false; }
21227 if (typeof this.gridOptions.getRowHeight === 'function') {
21228 if (allowEstimate) {
21229 return { height: this.getDefaultRowHeight(), estimated: true };
21230 }
21231 var params = {
21232 node: rowNode,
21233 data: rowNode.data,
21234 api: this.gridOptions.api,
21235 context: this.gridOptions.context
21236 };
21237 var height = this.gridOptions.getRowHeight(params);
21238 if (this.isNumeric(height)) {
21239 if (height === 0) {
21240 Object(_utils_function__WEBPACK_IMPORTED_MODULE_14__["doOnce"])(function () { return console.warn('AG Grid: The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.'); }, 'invalidRowHeight');
21241 }
21242 return { height: Math.max(1, height), estimated: false };
21243 }
21244 }
21245 if (rowNode.detail && this.isMasterDetail()) {
21246 if (this.isNumeric(this.gridOptions.detailRowHeight)) {
21247 return { height: this.gridOptions.detailRowHeight, estimated: false };
21248 }
21249 return { height: DEFAULT_DETAIL_ROW_HEIGHT, estimated: false };
21250 }
21251 var defaultRowHeight = this.getDefaultRowHeight();
21252 var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;
21253 var minRowHeight = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(rowHeight) ? Math.min(defaultRowHeight, rowHeight) : defaultRowHeight;
21254 if (this.columnController.isAutoRowHeightActive()) {
21255 if (allowEstimate) {
21256 return { height: rowHeight, estimated: true };
21257 }
21258 var autoHeight = this.autoHeightCalculator.getPreferredHeightForRow(rowNode);
21259 // never return less than the default row height - covers when auto height
21260 // cells are blank.
21261 return { height: Math.max(autoHeight, minRowHeight), estimated: false };
21262 }
21263 return { height: rowHeight, estimated: false };
21264 };
21265 GridOptionsWrapper.prototype.isDynamicRowHeight = function () {
21266 return typeof this.gridOptions.getRowHeight === 'function';
21267 };
21268 GridOptionsWrapper.prototype.getListItemHeight = function () {
21269 return this.getFromTheme(20, 'listItemHeight');
21270 };
21271 GridOptionsWrapper.prototype.chartMenuPanelWidth = function () {
21272 return this.environment.chartMenuPanelWidth();
21273 };
21274 GridOptionsWrapper.prototype.isNumeric = function (value) {
21275 return !isNaN(value) && typeof value === 'number' && isFinite(value);
21276 };
21277 GridOptionsWrapper.prototype.getFromTheme = function (defaultValue, sassVariableName) {
21278 var theme = this.environment.getTheme().theme;
21279 if (theme && theme.indexOf('ag-theme') === 0) {
21280 return this.environment.getSassVariable(theme, sassVariableName);
21281 }
21282 return defaultValue;
21283 };
21284 GridOptionsWrapper.prototype.getDefaultRowHeight = function () {
21285 return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');
21286 };
21287 var GridOptionsWrapper_1;
21288 GridOptionsWrapper.MIN_COL_WIDTH = 10;
21289 GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';
21290 GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';
21291 GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';
21292 GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';
21293 GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';
21294 GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';
21295 GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';
21296 GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL = 'navigateToNextCell';
21297 GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL = 'tabToNextCell';
21298 GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER = 'navigateToNextHeader';
21299 GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER = 'tabToNextHeader';
21300 GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT = 'isExternalFilterPresentFunc';
21301 GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS = 'doesExternalFilterPass';
21302 GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';
21303 GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION = 'suppressRowClickSelection';
21304 GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';
21305 GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG = 'suppressMoveWhenRowDragging';
21306 GridOptionsWrapper.PROP_GET_ROW_CLASS = 'getRowClass';
21307 GridOptionsWrapper.PROP_GET_ROW_STYLE = 'getRowStyle';
21308 GridOptionsWrapper.PROP_GET_ROW_HEIGHT = 'getRowHeight';
21309 GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';
21310 GridOptionsWrapper.PROP_DOM_LAYOUT = 'domLayout';
21311 GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION = 'fillHandleDirection';
21312 GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES = 'groupRowAggNodes';
21313 GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE = 'getBusinessKeyForNode';
21314 GridOptionsWrapper.PROP_GET_CHILD_COUNT = 'getChildCount';
21315 GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE = 'processRowPostCreate';
21316 GridOptionsWrapper.PROP_GET_ROW_NODE_ID = 'getRowNodeId';
21317 GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL = 'isFullWidthCell';
21318 GridOptionsWrapper.PROP_IS_ROW_SELECTABLE = 'isRowSelectable';
21319 GridOptionsWrapper.PROP_IS_ROW_MASTER = 'isRowMaster';
21320 GridOptionsWrapper.PROP_POST_SORT = 'postSort';
21321 GridOptionsWrapper.PROP_GET_DOCUMENT = 'getDocument';
21322 GridOptionsWrapper.PROP_POST_PROCESS_POPUP = 'postProcessPopup';
21323 GridOptionsWrapper.PROP_DEFAULT_GROUP_SORT_COMPARATOR = 'defaultGroupSortComparator';
21324 GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER = 'paginationNumberFormatter';
21325 GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS = 'getContextMenuItems';
21326 GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS = 'getMainMenuItems';
21327 GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD = 'processCellForClipboard';
21328 GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD = 'processCellFromClipboard';
21329 GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD = 'sendToClipboard';
21330 GridOptionsWrapper.PROP_PROCESS_TO_SECONDARY_COLDEF = 'processSecondaryColDef';
21331 GridOptionsWrapper.PROP_PROCESS_SECONDARY_COL_GROUP_DEF = 'processSecondaryColGroupDef';
21332 GridOptionsWrapper.PROP_PROCESS_CHART_OPTIONS = 'processChartOptions';
21333 GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS = 'getChartToolbarItems';
21334 GridOptionsWrapper.PROP_GET_SERVER_SIDE_STORE_PARAMS = 'getServerSideStoreParams';
21335 GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT = 'isServerSideGroupOpenByDefault';
21336 GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION = 'isApplyServerSideTransaction';
21337 GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP = 'isServerSideGroup';
21338 GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY = 'getServerSideGroupKey';
21339 __decorate([
21340 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('gridOptions')
21341 ], GridOptionsWrapper.prototype, "gridOptions", void 0);
21342 __decorate([
21343 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnController')
21344 ], GridOptionsWrapper.prototype, "columnController", void 0);
21345 __decorate([
21346 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('eventService')
21347 ], GridOptionsWrapper.prototype, "eventService", void 0);
21348 __decorate([
21349 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('environment')
21350 ], GridOptionsWrapper.prototype, "environment", void 0);
21351 __decorate([
21352 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('autoHeightCalculator')
21353 ], GridOptionsWrapper.prototype, "autoHeightCalculator", void 0);
21354 __decorate([
21355 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('gridApi')), __param(1, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('columnApi'))
21356 ], GridOptionsWrapper.prototype, "agWire", null);
21357 __decorate([
21358 _context_context__WEBPACK_IMPORTED_MODULE_3__["PreDestroy"]
21359 ], GridOptionsWrapper.prototype, "destroy", null);
21360 __decorate([
21361 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
21362 ], GridOptionsWrapper.prototype, "init", null);
21363 GridOptionsWrapper = GridOptionsWrapper_1 = __decorate([
21364 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Bean"])('gridOptionsWrapper')
21365 ], GridOptionsWrapper);
21366 return GridOptionsWrapper;
21367}());
21368
21369
21370
21371/***/ }),
21372/* 100 */
21373/***/ (function(module, __webpack_exports__, __webpack_require__) {
21374
21375"use strict";
21376__webpack_require__.r(__webpack_exports__);
21377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SideBarDefParser", function() { return SideBarDefParser; });
21378/**
21379 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
21380 * @version v25.3.0
21381 * @link http://www.ag-grid.com/
21382 * @license MIT
21383 */
21384var SideBarDefParser = /** @class */ (function () {
21385 function SideBarDefParser() {
21386 }
21387 SideBarDefParser.parse = function (toParse) {
21388 if (!toParse) {
21389 return null;
21390 }
21391 if (toParse === true) {
21392 return {
21393 toolPanels: [
21394 SideBarDefParser.DEFAULT_COLUMN_COMP,
21395 SideBarDefParser.DEFAULT_FILTER_COMP,
21396 ],
21397 defaultToolPanel: 'columns'
21398 };
21399 }
21400 if (typeof toParse === 'string') {
21401 return SideBarDefParser.parse([toParse]);
21402 }
21403 if (Array.isArray(toParse)) {
21404 var comps_1 = [];
21405 toParse.forEach(function (key) {
21406 var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];
21407 if (!lookupResult) {
21408 console.warn("ag-grid: the key " + key + " is not a valid key for specifying a tool panel, valid keys are: " + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));
21409 return;
21410 }
21411 comps_1.push(lookupResult);
21412 });
21413 if (comps_1.length === 0) {
21414 return null;
21415 }
21416 return {
21417 toolPanels: comps_1,
21418 defaultToolPanel: comps_1[0].id
21419 };
21420 }
21421 var result = {
21422 toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),
21423 defaultToolPanel: toParse.defaultToolPanel,
21424 hiddenByDefault: toParse.hiddenByDefault,
21425 position: toParse.position
21426 };
21427 return result;
21428 };
21429 SideBarDefParser.parseComponents = function (from) {
21430 var result = [];
21431 if (!from) {
21432 return result;
21433 }
21434 from.forEach(function (it) {
21435 var toAdd = null;
21436 if (typeof it === 'string') {
21437 var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];
21438 if (!lookupResult) {
21439 console.warn("ag-grid: the key " + it + " is not a valid key for specifying a tool panel, valid keys are: " + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));
21440 return;
21441 }
21442 toAdd = lookupResult;
21443 }
21444 else {
21445 toAdd = it;
21446 }
21447 result.push(toAdd);
21448 });
21449 return result;
21450 };
21451 SideBarDefParser.DEFAULT_COLUMN_COMP = {
21452 id: 'columns',
21453 labelDefault: 'Columns',
21454 labelKey: 'columns',
21455 iconKey: 'columns',
21456 toolPanel: 'agColumnsToolPanel',
21457 };
21458 SideBarDefParser.DEFAULT_FILTER_COMP = {
21459 id: 'filters',
21460 labelDefault: 'Filters',
21461 labelKey: 'filters',
21462 iconKey: 'filter',
21463 toolPanel: 'agFiltersToolPanel',
21464 };
21465 SideBarDefParser.DEFAULT_BY_KEY = {
21466 columns: SideBarDefParser.DEFAULT_COLUMN_COMP,
21467 filters: SideBarDefParser.DEFAULT_FILTER_COMP
21468 };
21469 return SideBarDefParser;
21470}());
21471
21472
21473
21474/***/ }),
21475/* 101 */
21476/***/ (function(module, __webpack_exports__, __webpack_require__) {
21477
21478"use strict";
21479__webpack_require__.r(__webpack_exports__);
21480/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionController", function() { return SelectionController; });
21481/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
21482/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
21483/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
21484/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
21485/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(102);
21486/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
21487/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
21488/**
21489 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
21490 * @version v25.3.0
21491 * @link http://www.ag-grid.com/
21492 * @license MIT
21493 */
21494var __extends = (undefined && undefined.__extends) || (function () {
21495 var extendStatics = function (d, b) {
21496 extendStatics = Object.setPrototypeOf ||
21497 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21498 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
21499 return extendStatics(d, b);
21500 };
21501 return function (d, b) {
21502 extendStatics(d, b);
21503 function __() { this.constructor = d; }
21504 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21505 };
21506})();
21507var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21508 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21509 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21510 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;
21511 return c > 3 && r && Object.defineProperty(target, key, r), r;
21512};
21513var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
21514 return function (target, key) { decorator(target, key, paramIndex); }
21515};
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526var SelectionController = /** @class */ (function (_super) {
21527 __extends(SelectionController, _super);
21528 function SelectionController() {
21529 return _super !== null && _super.apply(this, arguments) || this;
21530 }
21531 SelectionController.prototype.setBeans = function (loggerFactory) {
21532 this.logger = loggerFactory.create('SelectionController');
21533 this.reset();
21534 if (this.gridOptionsWrapper.isRowModelDefault()) {
21535 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DATA_CHANGED, this.reset.bind(this));
21536 }
21537 };
21538 SelectionController.prototype.init = function () {
21539 this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
21540 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_SELECTED, this.onRowSelected.bind(this));
21541 };
21542 SelectionController.prototype.setLastSelectedNode = function (rowNode) {
21543 this.lastSelectedNode = rowNode;
21544 };
21545 SelectionController.prototype.getLastSelectedNode = function () {
21546 return this.lastSelectedNode;
21547 };
21548 SelectionController.prototype.getSelectedNodes = function () {
21549 var selectedNodes = [];
21550 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
21551 if (rowNode) {
21552 selectedNodes.push(rowNode);
21553 }
21554 });
21555 return selectedNodes;
21556 };
21557 SelectionController.prototype.getSelectedRows = function () {
21558 var selectedRows = [];
21559 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
21560 if (rowNode && rowNode.data) {
21561 selectedRows.push(rowNode.data);
21562 }
21563 });
21564 return selectedRows;
21565 };
21566 SelectionController.prototype.removeGroupsFromSelection = function () {
21567 var _this = this;
21568 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
21569 if (rowNode && rowNode.group) {
21570 _this.selectedNodes[rowNode.id] = undefined;
21571 }
21572 });
21573 };
21574 // should only be called if groupSelectsChildren=true
21575 SelectionController.prototype.updateGroupsFromChildrenSelections = function (changedPath) {
21576 // we only do this when group selection state depends on selected children
21577 if (!this.gridOptionsWrapper.isGroupSelectsChildren()) {
21578 return;
21579 }
21580 // also only do it if CSRM (code should never allow this anyway)
21581 if (this.rowModel.getType() !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
21582 return;
21583 }
21584 var clientSideRowModel = this.rowModel;
21585 var rootNode = clientSideRowModel.getRootNode();
21586 if (!changedPath) {
21587 changedPath = new _utils_changedPath__WEBPACK_IMPORTED_MODULE_4__["ChangedPath"](true, rootNode);
21588 changedPath.setInactive();
21589 }
21590 changedPath.forEachChangedNodeDepthFirst(function (rowNode) {
21591 if (rowNode !== rootNode) {
21592 rowNode.calculateSelectedFromChildren();
21593 }
21594 });
21595 // clientSideRowModel.getTopLevelNodes()!.forEach((rowNode: RowNode) => {
21596 // rowNode.depthFirstSearch((node) => {
21597 // if (node.group) {
21598 // }
21599 // });
21600 // });
21601 };
21602 SelectionController.prototype.getNodeForIdIfSelected = function (id) {
21603 return this.selectedNodes[id];
21604 };
21605 SelectionController.prototype.clearOtherNodes = function (rowNodeToKeepSelected) {
21606 var _this = this;
21607 var groupsToRefresh = {};
21608 var updatedCount = 0;
21609 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (key, otherRowNode) {
21610 if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {
21611 var rowNode = _this.selectedNodes[otherRowNode.id];
21612 updatedCount += rowNode.setSelectedParams({
21613 newValue: false,
21614 clearSelection: false,
21615 suppressFinishActions: true
21616 });
21617 if (_this.groupSelectsChildren && otherRowNode.parent) {
21618 groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;
21619 }
21620 }
21621 });
21622 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(groupsToRefresh, function (key, group) {
21623 group.calculateSelectedFromChildren();
21624 });
21625 return updatedCount;
21626 };
21627 SelectionController.prototype.onRowSelected = function (event) {
21628 var rowNode = event.node;
21629 // we do not store the group rows when the groups select children
21630 if (this.groupSelectsChildren && rowNode.group) {
21631 return;
21632 }
21633 if (rowNode.isSelected()) {
21634 this.selectedNodes[rowNode.id] = rowNode;
21635 }
21636 else {
21637 this.selectedNodes[rowNode.id] = undefined;
21638 }
21639 };
21640 SelectionController.prototype.syncInRowNode = function (rowNode, oldNode) {
21641 this.syncInOldRowNode(rowNode, oldNode);
21642 this.syncInNewRowNode(rowNode);
21643 };
21644 // if the id has changed for the node, then this means the rowNode
21645 // is getting used for a different data item, which breaks
21646 // our selectedNodes, as the node now is mapped by the old id
21647 // which is inconsistent. so to keep the old node as selected,
21648 // we swap in the clone (with the old id and old data). this means
21649 // the oldNode is effectively a daemon we keep a reference to,
21650 // so if client calls api.getSelectedNodes(), it gets the daemon
21651 // in the result. when the client un-selects, the reference to the
21652 // daemon is removed. the daemon, because it's an oldNode, is not
21653 // used by the grid for rendering, it's a copy of what the node used
21654 // to be like before the id was changed.
21655 SelectionController.prototype.syncInOldRowNode = function (rowNode, oldNode) {
21656 var oldNodeHasDifferentId = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(oldNode) && (rowNode.id !== oldNode.id);
21657 if (oldNodeHasDifferentId && oldNode) {
21658 var oldNodeSelected = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.selectedNodes[oldNode.id]);
21659 if (oldNodeSelected) {
21660 this.selectedNodes[oldNode.id] = oldNode;
21661 }
21662 }
21663 };
21664 SelectionController.prototype.syncInNewRowNode = function (rowNode) {
21665 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.selectedNodes[rowNode.id])) {
21666 rowNode.setSelectedInitialValue(true);
21667 this.selectedNodes[rowNode.id] = rowNode;
21668 }
21669 else {
21670 rowNode.setSelectedInitialValue(false);
21671 }
21672 };
21673 SelectionController.prototype.reset = function () {
21674 this.logger.log('reset');
21675 this.selectedNodes = {};
21676 this.lastSelectedNode = null;
21677 };
21678 // returns a list of all nodes at 'best cost' - a feature to be used
21679 // with groups / trees. if a group has all it's children selected,
21680 // then the group appears in the result, but not the children.
21681 // Designed for use with 'children' as the group selection type,
21682 // where groups don't actually appear in the selection normally.
21683 SelectionController.prototype.getBestCostNodeSelection = function () {
21684 if (this.rowModel.getType() !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
21685 console.warn('getBestCostNodeSelection is only available when using normal row model');
21686 return;
21687 }
21688 var clientSideRowModel = this.rowModel;
21689 var topLevelNodes = clientSideRowModel.getTopLevelNodes();
21690 if (topLevelNodes === null) {
21691 console.warn('selectAll not available doing rowModel=virtual');
21692 return;
21693 }
21694 var result = [];
21695 // recursive function, to find the selected nodes
21696 function traverse(nodes) {
21697 for (var i = 0, l = nodes.length; i < l; i++) {
21698 var node = nodes[i];
21699 if (node.isSelected()) {
21700 result.push(node);
21701 }
21702 else {
21703 // if not selected, then if it's a group, and the group
21704 // has children, continue to search for selections
21705 if (node.group && node.children) {
21706 traverse(node.children);
21707 }
21708 }
21709 }
21710 }
21711 traverse(topLevelNodes);
21712 return result;
21713 };
21714 SelectionController.prototype.setRowModel = function (rowModel) {
21715 this.rowModel = rowModel;
21716 };
21717 SelectionController.prototype.isEmpty = function () {
21718 var count = 0;
21719 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (nodeId, rowNode) {
21720 if (rowNode) {
21721 count++;
21722 }
21723 });
21724 return count === 0;
21725 };
21726 SelectionController.prototype.deselectAllRowNodes = function (justFiltered) {
21727 if (justFiltered === void 0) { justFiltered = false; }
21728 var callback = function (rowNode) { return rowNode.selectThisNode(false); };
21729 var rowModelClientSide = this.rowModel.getType() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
21730 if (justFiltered) {
21731 if (!rowModelClientSide) {
21732 console.error('AG Grid: selecting just filtered only works with In Memory Row Model');
21733 return;
21734 }
21735 var clientSideRowModel = this.rowModel;
21736 clientSideRowModel.forEachNodeAfterFilter(callback);
21737 }
21738 else {
21739 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.selectedNodes, function (id, rowNode) {
21740 // remember the reference can be to null, as we never 'delete' from the map
21741 if (rowNode) {
21742 callback(rowNode);
21743 }
21744 });
21745 // this clears down the map (whereas above only sets the items in map to 'undefined')
21746 this.reset();
21747 }
21748 // the above does not clean up the parent rows if they are selected
21749 if (rowModelClientSide && this.groupSelectsChildren) {
21750 this.updateGroupsFromChildrenSelections();
21751 }
21752 var event = {
21753 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
21754 api: this.gridApi,
21755 columnApi: this.columnApi
21756 };
21757 this.eventService.dispatchEvent(event);
21758 };
21759 SelectionController.prototype.selectAllRowNodes = function (justFiltered) {
21760 if (justFiltered === void 0) { justFiltered = false; }
21761 if (this.rowModel.getType() !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
21762 throw new Error("selectAll only available with normal row model, ie not " + this.rowModel.getType());
21763 }
21764 var clientSideRowModel = this.rowModel;
21765 var callback = function (rowNode) { return rowNode.selectThisNode(true); };
21766 if (justFiltered) {
21767 clientSideRowModel.forEachNodeAfterFilter(callback);
21768 }
21769 else {
21770 clientSideRowModel.forEachNode(callback);
21771 }
21772 // the above does not clean up the parent rows if they are selected
21773 if (this.rowModel.getType() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE && this.groupSelectsChildren) {
21774 this.updateGroupsFromChildrenSelections();
21775 }
21776 var event = {
21777 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
21778 api: this.gridApi,
21779 columnApi: this.columnApi
21780 };
21781 this.eventService.dispatchEvent(event);
21782 };
21783 /**
21784 * @method
21785 * @deprecated
21786 */
21787 SelectionController.prototype.selectNode = function (rowNode, tryMulti) {
21788 if (rowNode) {
21789 rowNode.setSelectedParams({ newValue: true, clearSelection: !tryMulti });
21790 }
21791 };
21792 /**
21793 * @method
21794 * @deprecated
21795 */
21796 SelectionController.prototype.deselectIndex = function (rowIndex) {
21797 var node = this.rowModel.getRow(rowIndex);
21798 this.deselectNode(node);
21799 };
21800 /**
21801 * @method
21802 * @deprecated
21803 */
21804 SelectionController.prototype.deselectNode = function (rowNode) {
21805 if (rowNode) {
21806 rowNode.setSelectedParams({ newValue: false, clearSelection: false });
21807 }
21808 };
21809 /**
21810 * @method
21811 * @deprecated
21812 */
21813 SelectionController.prototype.selectIndex = function (index, tryMulti) {
21814 var node = this.rowModel.getRow(index);
21815 this.selectNode(node, tryMulti);
21816 };
21817 __decorate([
21818 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
21819 ], SelectionController.prototype, "rowModel", void 0);
21820 __decorate([
21821 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
21822 ], SelectionController.prototype, "columnApi", void 0);
21823 __decorate([
21824 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
21825 ], SelectionController.prototype, "gridApi", void 0);
21826 __decorate([
21827 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
21828 ], SelectionController.prototype, "setBeans", null);
21829 __decorate([
21830 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
21831 ], SelectionController.prototype, "init", null);
21832 SelectionController = __decorate([
21833 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('selectionController')
21834 ], SelectionController);
21835 return SelectionController;
21836}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
21837
21838
21839
21840/***/ }),
21841/* 102 */
21842/***/ (function(module, __webpack_exports__, __webpack_require__) {
21843
21844"use strict";
21845__webpack_require__.r(__webpack_exports__);
21846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return ChangedPath; });
21847/**
21848 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
21849 * @version v25.3.0
21850 * @link http://www.ag-grid.com/
21851 * @license MIT
21852 */
21853// when doing transactions, or change detection, and grouping is present
21854// in the data, there is no need for the ClientSideRowModel to update each
21855// group after an update, ony parts that were impacted by the change.
21856// this class keeps track of all groups that were impacted by a transaction.
21857// the the different CSRM operations (filter, sort etc) use the forEach method
21858// to visit each group that was changed.
21859var ChangedPath = /** @class */ (function () {
21860 function ChangedPath(keepingColumns, rootNode) {
21861 // whether changed path is active of not. it is active when a) doing
21862 // a transaction update or b) doing change detection. if we are doing
21863 // a CSRM refresh for other reasons (after sort or filter, or user calling
21864 // setRowData() without delta mode) then we are not active. we are also
21865 // marked as not active if secondary columns change in pivot (as this impacts
21866 // aggregations)
21867 this.active = true;
21868 // for each node in the change path, we also store which columns need
21869 // to be re-aggregated.
21870 this.nodeIdsToColumns = {};
21871 // for quick lookup, all items in the change path are mapped by nodeId
21872 this.mapToItems = {};
21873 this.keepingColumns = keepingColumns;
21874 this.pathRoot = {
21875 rowNode: rootNode,
21876 children: null
21877 };
21878 this.mapToItems[rootNode.id] = this.pathRoot;
21879 }
21880 // can be set inactive by:
21881 // a) ClientSideRowModel, if no transactions or
21882 // b) PivotService, if secondary columns changed
21883 ChangedPath.prototype.setInactive = function () {
21884 this.active = false;
21885 };
21886 ChangedPath.prototype.isActive = function () {
21887 return this.active;
21888 };
21889 ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {
21890 if (pathItem.children) {
21891 for (var i = 0; i < pathItem.children.length; i++) {
21892 this.depthFirstSearchChangedPath(pathItem.children[i], callback);
21893 }
21894 }
21895 callback(pathItem.rowNode);
21896 };
21897 ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {
21898 if (rowNode.childrenAfterGroup) {
21899 for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {
21900 var childNode = rowNode.childrenAfterGroup[i];
21901 if (childNode.childrenAfterGroup) {
21902 this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);
21903 }
21904 else if (traverseEverything) {
21905 callback(childNode);
21906 }
21907 }
21908 }
21909 callback(rowNode);
21910 };
21911 // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback
21912 // will be called for child nodes in addition to parent nodes.
21913 ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes) {
21914 if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }
21915 if (this.active) {
21916 // if we are active, then use the change path to callback
21917 // only for updated groups
21918 this.depthFirstSearchChangedPath(this.pathRoot, callback);
21919 }
21920 else {
21921 // we are not active, so callback for everything, walk the entire path
21922 this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);
21923 }
21924 };
21925 ChangedPath.prototype.executeFromRootNode = function (callback) {
21926 callback(this.pathRoot.rowNode);
21927 };
21928 ChangedPath.prototype.createPathItems = function (rowNode) {
21929 var pointer = rowNode;
21930 var newEntryCount = 0;
21931 while (!this.mapToItems[pointer.id]) {
21932 var newEntry = {
21933 rowNode: pointer,
21934 children: null
21935 };
21936 this.mapToItems[pointer.id] = newEntry;
21937 newEntryCount++;
21938 pointer = pointer.parent;
21939 }
21940 return newEntryCount;
21941 };
21942 ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {
21943 var _this = this;
21944 if (!this.keepingColumns || !columns) {
21945 return;
21946 }
21947 var pointer = rowNode;
21948 while (pointer) {
21949 // if columns, add the columns in all the way to parent, merging
21950 // in any other columns that might be there already
21951 if (!this.nodeIdsToColumns[pointer.id]) {
21952 this.nodeIdsToColumns[pointer.id] = {};
21953 }
21954 columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });
21955 pointer = pointer.parent;
21956 }
21957 };
21958 ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {
21959 var pointer = rowNode;
21960 for (var i = 0; i < newEntryCount; i++) {
21961 var thisItem = this.mapToItems[pointer.id];
21962 var parentItem = this.mapToItems[pointer.parent.id];
21963 if (!parentItem.children) {
21964 parentItem.children = [];
21965 }
21966 parentItem.children.push(thisItem);
21967 pointer = pointer.parent;
21968 }
21969 };
21970 // called by
21971 // 1) change detection (provides cols) and
21972 // 2) groupStage if doing transaction update (doesn't provide cols)
21973 ChangedPath.prototype.addParentNode = function (rowNode, columns) {
21974 if (!rowNode || rowNode.isRowPinned()) {
21975 return;
21976 }
21977 // we cannot do both steps below in the same loop as
21978 // the second loop has a dependency on the first loop.
21979 // ie the hierarchy cannot be stitched up yet because
21980 // we don't have it built yet
21981 // create the new PathItem objects.
21982 var newEntryCount = this.createPathItems(rowNode);
21983 // link in the node items
21984 this.linkPathItems(rowNode, newEntryCount);
21985 // update columns
21986 this.populateColumnsMap(rowNode, columns);
21987 };
21988 ChangedPath.prototype.canSkip = function (rowNode) {
21989 return this.active && !this.mapToItems[rowNode.id];
21990 };
21991 ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {
21992 if (!this.keepingColumns) {
21993 return valueColumns;
21994 }
21995 var colsForThisNode = this.nodeIdsToColumns[rowNode.id];
21996 var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });
21997 return result;
21998 };
21999 ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {
22000 if (!this.keepingColumns) {
22001 return null;
22002 }
22003 var colsForThisNode = this.nodeIdsToColumns[rowNode.id];
22004 var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });
22005 return result;
22006 };
22007 return ChangedPath;
22008}());
22009
22010
22011
22012/***/ }),
22013/* 103 */
22014/***/ (function(module, __webpack_exports__, __webpack_require__) {
22015
22016"use strict";
22017__webpack_require__.r(__webpack_exports__);
22018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return ColumnApi; });
22019/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
22020/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
22021/**
22022 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
22023 * @version v25.3.0
22024 * @link http://www.ag-grid.com/
22025 * @license MIT
22026 */
22027var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
22028 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22029 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22030 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;
22031 return c > 3 && r && Object.defineProperty(target, key, r), r;
22032};
22033
22034
22035var ColumnApi = /** @class */ (function () {
22036 function ColumnApi() {
22037 }
22038 ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {
22039 // AG-3403 validate that gridWidth is provided because this method has the same name as
22040 // a method on the grid API that takes no arguments, and it's easy to confuse the two
22041 if (typeof gridWidth === "undefined") {
22042 console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');
22043 }
22044 this.columnController.sizeColumnsToFit(gridWidth, 'api');
22045 };
22046 ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnController.setColumnGroupOpened(group, newValue, 'api'); };
22047 ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnController.getColumnGroup(name, instanceId); };
22048 ColumnApi.prototype.getOriginalColumnGroup = function (name) { return this.columnController.getOriginalColumnGroup(name); };
22049 ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnController.getDisplayNameForColumn(column, location) || ''; };
22050 ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnController.getDisplayNameForColumnGroup(columnGroup, location) || ''; };
22051 ColumnApi.prototype.getColumn = function (key) { return this.columnController.getPrimaryColumn(key); };
22052 ColumnApi.prototype.applyColumnState = function (params) { return this.columnController.applyColumnState(params, 'api'); };
22053 ColumnApi.prototype.getColumnState = function () { return this.columnController.getColumnState(); };
22054 ColumnApi.prototype.resetColumnState = function () { this.columnController.resetColumnState('api'); };
22055 ColumnApi.prototype.getColumnGroupState = function () { return this.columnController.getColumnGroupState(); };
22056 ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnController.setColumnGroupState(stateItems, 'api'); };
22057 ColumnApi.prototype.resetColumnGroupState = function () { this.columnController.resetColumnGroupState('api'); };
22058 ColumnApi.prototype.isPinning = function () { return this.columnController.isPinningLeft() || this.columnController.isPinningRight(); };
22059 ColumnApi.prototype.isPinningLeft = function () { return this.columnController.isPinningLeft(); };
22060 ColumnApi.prototype.isPinningRight = function () { return this.columnController.isPinningRight(); };
22061 ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnController.getDisplayedColAfter(col); };
22062 ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnController.getDisplayedColBefore(col); };
22063 ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnController.setColumnVisible(key, visible, 'api'); };
22064 ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnController.setColumnsVisible(keys, visible, 'api'); };
22065 ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnController.setColumnPinned(key, pinned, 'api'); };
22066 ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnController.setColumnsPinned(keys, pinned, 'api'); };
22067 ColumnApi.prototype.getAllColumns = function () { return this.columnController.getAllPrimaryColumns(); };
22068 ColumnApi.prototype.getAllGridColumns = function () { return this.columnController.getAllGridColumns(); };
22069 ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnController.getDisplayedLeftColumns(); };
22070 ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnController.getDisplayedCenterColumns(); };
22071 ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnController.getDisplayedRightColumns(); };
22072 ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnController.getAllDisplayedColumns(); };
22073 ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnController.getViewportColumns(); };
22074 ColumnApi.prototype.moveColumn = function (key, toIndex) {
22075 if (typeof key === 'number') {
22076 // moveColumn used to take indexes, so this is advising user who hasn't moved to new method name
22077 console.warn('AG Grid: you are using moveColumn(fromIndex, toIndex) - moveColumn takes a column key and a destination index, not two indexes, to move with indexes use moveColumnByIndex(from,to) instead');
22078 this.columnController.moveColumnByIndex(key, toIndex, 'api');
22079 }
22080 else {
22081 this.columnController.moveColumn(key, toIndex, 'api');
22082 }
22083 };
22084 ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnController.moveColumnByIndex(fromIndex, toIndex, 'api'); };
22085 ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnController.moveColumns(columnsToMoveKeys, toIndex, 'api'); };
22086 ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnController.moveRowGroupColumn(fromIndex, toIndex); };
22087 ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnController.setColumnAggFunc(key, aggFunc); };
22088 ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished) {
22089 if (finished === void 0) { finished = true; }
22090 this.columnController.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished);
22091 };
22092 ColumnApi.prototype.setColumnWidths = function (columnWidths, finished) {
22093 if (finished === void 0) { finished = true; }
22094 this.columnController.setColumnWidths(columnWidths, false, finished);
22095 };
22096 ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnController.setPivotMode(pivotMode); };
22097 ColumnApi.prototype.isPivotMode = function () { return this.columnController.isPivotMode(); };
22098 ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) { return this.columnController.getSecondaryPivotColumn(pivotKeys, valueColKey); };
22099 ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnController.setValueColumns(colKeys, 'api'); };
22100 ColumnApi.prototype.getValueColumns = function () { return this.columnController.getValueColumns(); };
22101 ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnController.removeValueColumn(colKey, 'api'); };
22102 ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnController.removeValueColumns(colKeys, 'api'); };
22103 ColumnApi.prototype.addValueColumn = function (colKey) { this.columnController.addValueColumn(colKey, 'api'); };
22104 ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnController.addValueColumns(colKeys, 'api'); };
22105 ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnController.setRowGroupColumns(colKeys, 'api'); };
22106 ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnController.removeRowGroupColumn(colKey, 'api'); };
22107 ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnController.removeRowGroupColumns(colKeys, 'api'); };
22108 ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnController.addRowGroupColumn(colKey, 'api'); };
22109 ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnController.addRowGroupColumns(colKeys, 'api'); };
22110 ColumnApi.prototype.getRowGroupColumns = function () { return this.columnController.getRowGroupColumns(); };
22111 ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnController.setPivotColumns(colKeys, 'api'); };
22112 ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnController.removePivotColumn(colKey, 'api'); };
22113 ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnController.removePivotColumns(colKeys, 'api'); };
22114 ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnController.addPivotColumn(colKey, 'api'); };
22115 ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnController.addPivotColumns(colKeys, 'api'); };
22116 ColumnApi.prototype.getPivotColumns = function () { return this.columnController.getPivotColumns(); };
22117 ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeLeft(); };
22118 ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeCentre(); };
22119 ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeRight(); };
22120 ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnController.getAllDisplayedTrees(); };
22121 ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnController.autoSizeColumn(key, skipHeader, 'api'); };
22122 ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) { return this.columnController.autoSizeColumns(keys, skipHeader, 'api'); };
22123 ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnController.autoSizeAllColumns(skipHeader, 'api'); };
22124 ColumnApi.prototype.setSecondaryColumns = function (colDefs) { this.columnController.setSecondaryColumns(colDefs, 'api'); };
22125 ColumnApi.prototype.getSecondaryColumns = function () { return this.columnController.getSecondaryColumns(); };
22126 ColumnApi.prototype.getPrimaryColumns = function () { return this.columnController.getAllPrimaryColumns(); };
22127 ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {
22128 // some users were raising support issues with regards memory leaks. the problem was the customers applications
22129 // were keeping references to the API. trying to educate them all would be difficult, easier to just remove
22130 // all references in teh API so at least the core grid can be garbage collected.
22131 //
22132 // wait about 100ms before clearing down the references, in case user has some cleanup to do,
22133 // and needs to deference the API first
22134 setTimeout(_utils__WEBPACK_IMPORTED_MODULE_1__["_"].removeAllReferences.bind(window, this, 'Column API'), 100);
22135 };
22136 // below goes through deprecated items, prints message to user, then calls the new version of the same method
22137 // public getColumnDefs(): (ColDef | ColGroupDef)[] {
22138 // this.setColumnGroupOpened(group, newValue);
22139 // return null;
22140 // }
22141 ColumnApi.prototype.columnGroupOpened = function (group, newValue) {
22142 console.error('AG Grid: columnGroupOpened no longer exists, use setColumnGroupOpened');
22143 this.setColumnGroupOpened(group, newValue);
22144 };
22145 ColumnApi.prototype.hideColumns = function (colIds, hide) {
22146 console.error('AG Grid: hideColumns is deprecated, use setColumnsVisible');
22147 this.columnController.setColumnsVisible(colIds, !hide, 'api');
22148 };
22149 ColumnApi.prototype.hideColumn = function (colId, hide) {
22150 console.error('AG Grid: hideColumn is deprecated, use setColumnVisible');
22151 this.columnController.setColumnVisible(colId, !hide, 'api');
22152 };
22153 ColumnApi.prototype.setState = function (columnState) {
22154 console.error('AG Grid: setState is deprecated, use setColumnState');
22155 return this.setColumnState(columnState);
22156 };
22157 ColumnApi.prototype.getState = function () {
22158 console.error('AG Grid: getState is deprecated, use getColumnState');
22159 return this.getColumnState();
22160 };
22161 ColumnApi.prototype.resetState = function () {
22162 console.error('AG Grid: resetState is deprecated, use resetColumnState');
22163 this.resetColumnState();
22164 };
22165 ColumnApi.prototype.getAggregationColumns = function () {
22166 console.error('AG Grid: getAggregationColumns is deprecated, use getValueColumns');
22167 return this.columnController.getValueColumns();
22168 };
22169 ColumnApi.prototype.removeAggregationColumn = function (colKey) {
22170 console.error('AG Grid: removeAggregationColumn is deprecated, use removeValueColumn');
22171 this.columnController.removeValueColumn(colKey, 'api');
22172 };
22173 ColumnApi.prototype.removeAggregationColumns = function (colKeys) {
22174 console.error('AG Grid: removeAggregationColumns is deprecated, use removeValueColumns');
22175 this.columnController.removeValueColumns(colKeys, 'api');
22176 };
22177 ColumnApi.prototype.addAggregationColumn = function (colKey) {
22178 console.error('AG Grid: addAggregationColumn is deprecated, use addValueColumn');
22179 this.columnController.addValueColumn(colKey, 'api');
22180 };
22181 ColumnApi.prototype.addAggregationColumns = function (colKeys) {
22182 console.error('AG Grid: addAggregationColumns is deprecated, use addValueColumns');
22183 this.columnController.addValueColumns(colKeys, 'api');
22184 };
22185 ColumnApi.prototype.setColumnAggFunction = function (column, aggFunc) {
22186 console.error('AG Grid: setColumnAggFunction is deprecated, use setColumnAggFunc');
22187 this.columnController.setColumnAggFunc(column, aggFunc, 'api');
22188 };
22189 ColumnApi.prototype.getDisplayNameForCol = function (column) {
22190 console.error('AG Grid: getDisplayNameForCol is deprecated, use getDisplayNameForColumn');
22191 return this.getDisplayNameForColumn(column, null);
22192 };
22193 ColumnApi.prototype.setColumnState = function (columnState) {
22194 return this.columnController.applyColumnState({ state: columnState, applyOrder: true }, 'api');
22195 };
22196 __decorate([
22197 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
22198 ], ColumnApi.prototype, "columnController", void 0);
22199 __decorate([
22200 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
22201 ], ColumnApi.prototype, "cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid", null);
22202 ColumnApi = __decorate([
22203 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnApi')
22204 ], ColumnApi);
22205 return ColumnApi;
22206}());
22207
22208
22209
22210/***/ }),
22211/* 104 */
22212/***/ (function(module, __webpack_exports__, __webpack_require__) {
22213
22214"use strict";
22215__webpack_require__.r(__webpack_exports__);
22216/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return RowRenderer; });
22217/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
22218/* harmony import */ var _row_rowController__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(105);
22219/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10);
22220/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
22221/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
22222/* harmony import */ var _cellComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(107);
22223/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
22224/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(20);
22225/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
22226/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
22227/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(29);
22228/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14);
22229/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(15);
22230/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60);
22231/**
22232 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
22233 * @version v25.3.0
22234 * @link http://www.ag-grid.com/
22235 * @license MIT
22236 */
22237var __extends = (undefined && undefined.__extends) || (function () {
22238 var extendStatics = function (d, b) {
22239 extendStatics = Object.setPrototypeOf ||
22240 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
22241 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
22242 return extendStatics(d, b);
22243 };
22244 return function (d, b) {
22245 extendStatics(d, b);
22246 function __() { this.constructor = d; }
22247 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
22248 };
22249})();
22250var __assign = (undefined && undefined.__assign) || function () {
22251 __assign = Object.assign || function(t) {
22252 for (var s, i = 1, n = arguments.length; i < n; i++) {
22253 s = arguments[i];
22254 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22255 t[p] = s[p];
22256 }
22257 return t;
22258 };
22259 return __assign.apply(this, arguments);
22260};
22261var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
22262 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22263 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22264 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;
22265 return c > 3 && r && Object.defineProperty(target, key, r), r;
22266};
22267var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
22268 return function (target, key) { decorator(target, key, paramIndex); }
22269};
22270var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
22271 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
22272 for (var r = Array(s), k = 0, i = 0; i < il; i++)
22273 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
22274 r[k] = a[j];
22275 return r;
22276};
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291var RowRenderer = /** @class */ (function (_super) {
22292 __extends(RowRenderer, _super);
22293 function RowRenderer() {
22294 var _this = _super !== null && _super.apply(this, arguments) || this;
22295 _this.destroyFuncsForColumnListeners = [];
22296 // map of row ids to row objects. keeps track of which elements
22297 // are rendered for which rows in the dom.
22298 _this.rowConsByRowIndex = {};
22299 _this.zombieRowCons = {};
22300 _this.allRowCons = [];
22301 _this.topRowCons = [];
22302 _this.bottomRowCons = [];
22303 // we only allow one refresh at a time, otherwise the internal memory structure here
22304 // will get messed up. this can happen if the user has a cellRenderer, and inside the
22305 // renderer they call an API method that results in another pass of the refresh,
22306 // then it will be trying to draw rows in the middle of a refresh.
22307 _this.refreshInProgress = false;
22308 return _this;
22309 }
22310 RowRenderer.prototype.agWire = function (loggerFactory) {
22311 this.logger = loggerFactory.create("RowRenderer");
22312 };
22313 RowRenderer.prototype.postConstruct = function () {
22314 var _this = this;
22315 this.controllersService.whenReady(function () {
22316 _this.gridBodyCon = _this.controllersService.getGridBodyController();
22317 _this.initialise();
22318 });
22319 };
22320 RowRenderer.prototype.initialise = function () {
22321 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));
22322 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));
22323 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
22324 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL, this.redrawAfterScroll.bind(this));
22325 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));
22326 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));
22327 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
22328 this.registerCellEventListeners();
22329 this.printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_PRINT;
22330 this.embedFullWidthRows = this.printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();
22331 this.redrawAfterModelUpdate();
22332 };
22333 RowRenderer.prototype.getRowCons = function () {
22334 return this.allRowCons;
22335 };
22336 RowRenderer.prototype.updateAllRowCons = function () {
22337 this.allRowCons = __spreadArrays(Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["getAllValuesInObject"])(this.rowConsByRowIndex), Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["getAllValuesInObject"])(this.zombieRowCons));
22338 };
22339 // in a clean design, each cell would register for each of these events. however when scrolling, all the cells
22340 // registering and de-registering for events is a performance bottleneck. so we register here once and inform
22341 // all active cells.
22342 RowRenderer.prototype.registerCellEventListeners = function () {
22343 var _this = this;
22344 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_CELL_FOCUSED, function (event) {
22345 _this.forEachCellComp(function (cellComp) { return cellComp.onCellFocused(event); });
22346 _this.forEachRowComp(function (key, rowComp) {
22347 if (rowComp.isFullWidth()) {
22348 rowComp.onFullWidthRowFocused(event);
22349 }
22350 });
22351 });
22352 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_FLASH_CELLS, function (event) {
22353 _this.forEachCellComp(function (cellComp) { return cellComp.onFlashCells(event); });
22354 });
22355 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_HOVER_CHANGED, function () {
22356 _this.forEachCellComp(function (cellComp) { return cellComp.onColumnHover(); });
22357 });
22358 // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,
22359 // then changing the width of the containers will impact left position. eg the center cols all have their
22360 // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,
22361 // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are
22362 // in different containers so doesn't impact.
22363 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {
22364 if (_this.printLayout) {
22365 _this.forEachCellComp(function (cellComp) { return cellComp.onLeftChanged(); });
22366 }
22367 });
22368 var rangeSelectionEnabled = this.gridOptionsWrapper.isEnableRangeSelection();
22369 if (rangeSelectionEnabled) {
22370 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RANGE_SELECTION_CHANGED, function () {
22371 _this.forEachCellComp(function (cellComp) { return cellComp.onRangeSelectionChanged(); });
22372 });
22373 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_MOVED, function () {
22374 _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });
22375 });
22376 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_PINNED, function () {
22377 _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });
22378 });
22379 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_VISIBLE, function () {
22380 _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });
22381 });
22382 }
22383 // add listeners to the grid columns
22384 this.refreshListenersToColumnsForCellComps();
22385 // if the grid columns change, then refresh the listeners again
22386 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));
22387 this.addDestroyFunc(this.removeGridColumnListeners.bind(this));
22388 };
22389 // executes all functions in destroyFuncsForColumnListeners and then clears the list
22390 RowRenderer.prototype.removeGridColumnListeners = function () {
22391 this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });
22392 this.destroyFuncsForColumnListeners.length = 0;
22393 };
22394 // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.
22395 // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to
22396 // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here
22397 // once instead.
22398 RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {
22399 var _this = this;
22400 this.removeGridColumnListeners();
22401 var cols = this.columnController.getAllGridColumns();
22402 if (!cols) {
22403 return;
22404 }
22405 cols.forEach(function (col) {
22406 var forEachCellWithThisCol = function (callback) {
22407 _this.forEachCellComp(function (cellComp) {
22408 if (cellComp.getColumn() === col) {
22409 callback(cellComp);
22410 }
22411 });
22412 };
22413 var leftChangedListener = function () {
22414 forEachCellWithThisCol(function (cellComp) { return cellComp.onLeftChanged(); });
22415 };
22416 var widthChangedListener = function () {
22417 forEachCellWithThisCol(function (cellComp) { return cellComp.onWidthChanged(); });
22418 };
22419 var firstRightPinnedChangedListener = function () {
22420 forEachCellWithThisCol(function (cellComp) { return cellComp.onFirstRightPinnedChanged(); });
22421 };
22422 var lastLeftPinnedChangedListener = function () {
22423 forEachCellWithThisCol(function (cellComp) { return cellComp.onLastLeftPinnedChanged(); });
22424 };
22425 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LEFT_CHANGED, leftChangedListener);
22426 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
22427 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);
22428 col.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);
22429 _this.destroyFuncsForColumnListeners.push(function () {
22430 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LEFT_CHANGED, leftChangedListener);
22431 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
22432 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);
22433 col.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"].EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);
22434 });
22435 });
22436 };
22437 RowRenderer.prototype.onDomLayoutChanged = function () {
22438 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_PRINT;
22439 var embedFullWidthRows = printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();
22440 // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid
22441 // out using absolute positioning when doing print layout
22442 var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;
22443 this.printLayout = printLayout;
22444 this.embedFullWidthRows = embedFullWidthRows;
22445 if (destroyRows) {
22446 this.redrawAfterModelUpdate();
22447 }
22448 };
22449 // for row models that have datasources, when we update the datasource, we need to force the rowRenderer
22450 // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.
22451 RowRenderer.prototype.datasourceChanged = function () {
22452 this.firstRenderedRow = 0;
22453 this.lastRenderedRow = -1;
22454 var rowIndexesToRemove = Object.keys(this.rowConsByRowIndex);
22455 this.removeRowComps(rowIndexesToRemove);
22456 };
22457 RowRenderer.prototype.onPageLoaded = function (event) {
22458 var params = {
22459 recycleRows: event.keepRenderedRows,
22460 animate: event.animate,
22461 newData: event.newData,
22462 newPage: event.newPage,
22463 // because this is a model updated event (not pinned rows), we
22464 // can skip updating the pinned rows. this is needed so that if user
22465 // is doing transaction updates, the pinned rows are not getting constantly
22466 // trashed - or editing cells in pinned rows are not refreshed and put into read mode
22467 onlyBody: true
22468 };
22469 this.redrawAfterModelUpdate(params);
22470 };
22471 RowRenderer.prototype.getAllCellsForColumn = function (column) {
22472 var eCells = [];
22473 function callback(key, rowComp) {
22474 var eCell = rowComp.getCellForCol(column);
22475 if (eCell) {
22476 eCells.push(eCell);
22477 }
22478 }
22479 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, callback);
22480 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.bottomRowCons, callback);
22481 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.topRowCons, callback);
22482 return eCells;
22483 };
22484 RowRenderer.prototype.refreshFloatingRowComps = function () {
22485 this.refreshFloatingRows(this.topRowCons, this.pinnedRowModel.getPinnedTopRowData());
22486 this.refreshFloatingRows(this.bottomRowCons, this.pinnedRowModel.getPinnedBottomRowData());
22487 };
22488 RowRenderer.prototype.getTopRowCons = function () {
22489 return this.topRowCons;
22490 };
22491 RowRenderer.prototype.getBottomRowCons = function () {
22492 return this.bottomRowCons;
22493 };
22494 RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {
22495 var _this = this;
22496 rowComps.forEach(function (row) {
22497 row.destroyFirstPass();
22498 row.destroySecondPass();
22499 });
22500 rowComps.length = 0;
22501 if (!rowNodes) {
22502 return;
22503 }
22504 rowNodes.forEach(function (rowNode) {
22505 var rowCon = new _row_rowController__WEBPACK_IMPORTED_MODULE_1__["RowController"](_this.$scope, rowNode, _this.beans, false, false, _this.printLayout);
22506 rowComps.push(rowCon);
22507 });
22508 };
22509 RowRenderer.prototype.onPinnedRowDataChanged = function () {
22510 // recycling rows in order to ensure cell editing is not cancelled
22511 var params = {
22512 recycleRows: true
22513 };
22514 this.redrawAfterModelUpdate(params);
22515 };
22516 // if the row nodes are not rendered, no index is returned
22517 RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {
22518 var result = [];
22519 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(rowNodes)) {
22520 return result;
22521 }
22522 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, renderedRow) {
22523 var rowNode = renderedRow.getRowNode();
22524 if (rowNodes.indexOf(rowNode) >= 0) {
22525 result.push(index);
22526 }
22527 });
22528 return result;
22529 };
22530 RowRenderer.prototype.redrawRows = function (rowNodes) {
22531 // if no row nodes provided, then refresh everything
22532 var partialRefresh = rowNodes != null && rowNodes.length > 0;
22533 if (partialRefresh) {
22534 var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);
22535 // remove the rows
22536 this.removeRowComps(indexesToRemove);
22537 }
22538 // add draw them again
22539 this.redrawAfterModelUpdate({
22540 recycleRows: partialRefresh
22541 });
22542 };
22543 RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {
22544 var focusedCell = params.suppressKeepFocus ? null : this.focusController.getFocusCellToUseAfterRefresh();
22545 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(focusedCell)) {
22546 return null;
22547 }
22548 // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this
22549 // solves is with editing - if the user is editing, eg focus is on a text field, and not on the
22550 // cell itself, then the cell can be registered as having focus, however it's the text field that
22551 // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus
22552 // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,
22553 // the focus is lost from the text field. we do not want this.
22554 var activeElement = document.activeElement;
22555 var domData = this.gridOptionsWrapper.getDomData(activeElement, _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"].DOM_DATA_KEY_CELL_COMP);
22556 var elementIsNotACellDev = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(domData);
22557 return elementIsNotACellDev ? null : focusedCell;
22558 };
22559 // gets called from:
22560 // +) initialisation (in registerGridComp) params = null
22561 // +) onDomLayoutChanged, params = null
22562 // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true
22563 // +) onPinnedRowDataChanged, recycleRows = true
22564 // +) redrawRows (from Grid API), recycleRows = true/false
22565 RowRenderer.prototype.redrawAfterModelUpdate = function (params) {
22566 if (params === void 0) { params = {}; }
22567 this.getLockOnRefresh();
22568 var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);
22569 this.updateContainerHeights();
22570 this.scrollToTopIfNewData(params);
22571 // never recycle rows when print layout, we draw each row again from scratch. this is because print layout
22572 // uses normal dom layout to put cells into dom - it doesn't allow reordering rows.
22573 var recycleRows = !this.printLayout && !!params.recycleRows;
22574 var animate = params.animate && this.gridOptionsWrapper.isAnimateRows();
22575 // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,
22576 // however we can reuse the rows, so we keep them but index by rowNode.id
22577 var rowsToRecycle = recycleRows ? this.recycleRows() : null;
22578 if (!recycleRows) {
22579 this.removeAllRowComps();
22580 }
22581 var isFocusedCellGettingRecycled = function () {
22582 if (focusedCell == null || rowsToRecycle == null) {
22583 return false;
22584 }
22585 var res = false;
22586 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(rowsToRecycle, function (key, rowComp) {
22587 var rowNode = rowComp.getRowNode();
22588 var rowIndexEqual = rowNode.rowIndex == focusedCell.rowIndex;
22589 var pinnedEqual = rowNode.rowPinned == focusedCell.rowPinned;
22590 if (rowIndexEqual && pinnedEqual) {
22591 res = true;
22592 }
22593 });
22594 return res;
22595 };
22596 var focusedCellRecycled = isFocusedCellGettingRecycled();
22597 this.redraw(rowsToRecycle, animate);
22598 if (!params.onlyBody) {
22599 this.refreshFloatingRowComps();
22600 }
22601 this.dispatchDisplayedRowsChanged();
22602 // if we focus a cell that's already focused, then we get an unnecessary 'cellFocused' event fired.
22603 // this was happening when user clicked 'expand' on a rowGroup, then cellFocused was getting fired twice.
22604 if (!focusedCellRecycled) {
22605 this.restoreFocusedCell(focusedCell);
22606 }
22607 this.releaseLockOnRefresh();
22608 };
22609 RowRenderer.prototype.scrollToTopIfNewData = function (params) {
22610 var scrollToTop = params.newData || params.newPage;
22611 var suppressScrollToTop = this.gridOptionsWrapper.isSuppressScrollOnNewData();
22612 if (scrollToTop && !suppressScrollToTop) {
22613 this.gridBodyCon.getScrollFeature().scrollToTop();
22614 }
22615 };
22616 RowRenderer.prototype.updateContainerHeights = function () {
22617 // when doing print layout, we don't explicitly set height on the containers
22618 if (this.printLayout) {
22619 this.rowContainerHeightService.setModelHeight(null);
22620 return;
22621 }
22622 var containerHeight = this.paginationProxy.getCurrentPageHeight();
22623 // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,
22624 // we still want the scroll to be present, otherwise there would be no way to scroll the header
22625 // which might be needed us user wants to access columns
22626 // on the RHS - and if that was where the filter was that cause no rows to be presented, there
22627 // is no way to remove the filter.
22628 if (containerHeight === 0) {
22629 containerHeight = 1;
22630 }
22631 this.rowContainerHeightService.setModelHeight(containerHeight);
22632 };
22633 RowRenderer.prototype.getLockOnRefresh = function () {
22634 if (this.refreshInProgress) {
22635 throw new Error("AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. " +
22636 "Your code probably called a grid API method while the grid was in the render stage. To overcome " +
22637 "this, put the API call into a timeout, e.g. instead of api.refreshView(), " +
22638 "call setTimeout(function() { api.refreshView(); }, 0). To see what part of your code " +
22639 "that caused the refresh check this stacktrace.");
22640 }
22641 this.refreshInProgress = true;
22642 };
22643 RowRenderer.prototype.releaseLockOnRefresh = function () {
22644 this.refreshInProgress = false;
22645 };
22646 // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without
22647 // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits
22648 // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the
22649 // edited cell).
22650 RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {
22651 if (cellPosition) {
22652 this.focusController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);
22653 }
22654 };
22655 RowRenderer.prototype.stopEditing = function (cancel) {
22656 if (cancel === void 0) { cancel = false; }
22657 this.forEachRowComp(function (key, rowComp) {
22658 rowComp.stopEditing(cancel);
22659 });
22660 };
22661 RowRenderer.prototype.onNewColumnsLoaded = function () {
22662 // we don't want each cellComp to register for events, as would increase rendering time.
22663 // so for newColumnsLoaded, we register once here (in rowRenderer) and then inform
22664 // each cell if / when event was fired.
22665 this.forEachCellComp(function (cellComp) { return cellComp.onNewColumnsLoaded(); });
22666 };
22667 RowRenderer.prototype.forEachCellComp = function (callback) {
22668 this.forEachRowComp(function (key, rowComp) { return rowComp.forEachCellComp(callback); });
22669 };
22670 RowRenderer.prototype.forEachRowComp = function (callback) {
22671 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, callback);
22672 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.topRowCons, callback);
22673 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.bottomRowCons, callback);
22674 };
22675 RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {
22676 var rowComp = this.rowConsByRowIndex[rowIndex];
22677 if (rowComp) {
22678 rowComp.addEventListener(eventName, callback);
22679 }
22680 };
22681 RowRenderer.prototype.flashCells = function (params) {
22682 if (params === void 0) { params = {}; }
22683 var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;
22684 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) { return cellComp.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });
22685 };
22686 RowRenderer.prototype.refreshCells = function (params) {
22687 if (params === void 0) { params = {}; }
22688 var refreshCellParams = {
22689 forceRefresh: params.force,
22690 newData: false,
22691 suppressFlash: params.suppressFlash
22692 };
22693 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {
22694 if (cellComp.refreshShouldDestroy()) {
22695 var rowComp = cellComp.getRenderedRow();
22696 if (rowComp) {
22697 rowComp.refreshCell(cellComp);
22698 }
22699 }
22700 else {
22701 cellComp.refreshCell(refreshCellParams);
22702 }
22703 });
22704 };
22705 RowRenderer.prototype.getCellRendererInstances = function (params) {
22706 var res = [];
22707 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {
22708 var cellRenderer = cellComp.getCellRenderer();
22709 if (cellRenderer) {
22710 res.push(cellRenderer);
22711 }
22712 });
22713 return res;
22714 };
22715 RowRenderer.prototype.getCellEditorInstances = function (params) {
22716 var res = [];
22717 this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {
22718 var cellEditor = cellComp.getCellEditor();
22719 if (cellEditor) {
22720 res.push(cellEditor);
22721 }
22722 });
22723 return res;
22724 };
22725 RowRenderer.prototype.getEditingCells = function () {
22726 var res = [];
22727 this.forEachCellComp(function (cellComp) {
22728 if (cellComp.isEditing()) {
22729 var cellPosition = cellComp.getCellPosition();
22730 res.push(cellPosition);
22731 }
22732 });
22733 return res;
22734 };
22735 // calls the callback for each cellComp that match the provided rowNodes and columns. eg if one row node
22736 // and two columns provided, that identifies 4 cells, so callback gets called 4 times, once for each cell.
22737 RowRenderer.prototype.forEachCellCompFiltered = function (rowNodes, columns, callback) {
22738 var _this = this;
22739 var rowIdsMap;
22740 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowNodes)) {
22741 rowIdsMap = {
22742 top: {},
22743 bottom: {},
22744 normal: {}
22745 };
22746 rowNodes.forEach(function (rowNode) {
22747 var id = rowNode.id;
22748 if (rowNode.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP) {
22749 rowIdsMap.top[id] = true;
22750 }
22751 else if (rowNode.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM) {
22752 rowIdsMap.bottom[id] = true;
22753 }
22754 else {
22755 rowIdsMap.normal[id] = true;
22756 }
22757 });
22758 }
22759 var colIdsMap;
22760 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(columns)) {
22761 colIdsMap = {};
22762 columns.forEach(function (colKey) {
22763 var column = _this.columnController.getGridColumn(colKey);
22764 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(column)) {
22765 colIdsMap[column.getId()] = true;
22766 }
22767 });
22768 }
22769 var processRow = function (rowComp) {
22770 var rowNode = rowComp.getRowNode();
22771 var id = rowNode.id;
22772 var floating = rowNode.rowPinned;
22773 // skip this row if it is missing from the provided list
22774 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowIdsMap)) {
22775 if (floating === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM) {
22776 if (!rowIdsMap.bottom[id]) {
22777 return;
22778 }
22779 }
22780 else if (floating === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP) {
22781 if (!rowIdsMap.top[id]) {
22782 return;
22783 }
22784 }
22785 else {
22786 if (!rowIdsMap.normal[id]) {
22787 return;
22788 }
22789 }
22790 }
22791 rowComp.forEachCellComp(function (cellComp) {
22792 var colId = cellComp.getColumn().getId();
22793 var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];
22794 if (excludeColFromRefresh) {
22795 return;
22796 }
22797 if (callback) {
22798 callback(cellComp);
22799 }
22800 });
22801 };
22802 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, rowComp) {
22803 processRow(rowComp);
22804 });
22805 if (this.topRowCons) {
22806 this.topRowCons.forEach(processRow);
22807 }
22808 if (this.bottomRowCons) {
22809 this.bottomRowCons.forEach(processRow);
22810 }
22811 };
22812 RowRenderer.prototype.destroy = function () {
22813 this.removeAllRowComps();
22814 _super.prototype.destroy.call(this);
22815 };
22816 RowRenderer.prototype.removeAllRowComps = function () {
22817 var rowIndexesToRemove = Object.keys(this.rowConsByRowIndex);
22818 this.removeRowComps(rowIndexesToRemove);
22819 };
22820 RowRenderer.prototype.recycleRows = function () {
22821 // remove all stub nodes, they can't be reused, as no rowNode id
22822 var stubNodeIndexes = [];
22823 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, rowComp) {
22824 var stubNode = rowComp.getRowNode().id == null;
22825 if (stubNode) {
22826 stubNodeIndexes.push(index);
22827 }
22828 });
22829 this.removeRowComps(stubNodeIndexes);
22830 // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex
22831 var nodesByIdMap = {};
22832 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (index, rowComp) {
22833 var rowNode = rowComp.getRowNode();
22834 nodesByIdMap[rowNode.id] = rowComp;
22835 });
22836 this.rowConsByRowIndex = {};
22837 return nodesByIdMap;
22838 };
22839 // takes array of row indexes
22840 RowRenderer.prototype.removeRowComps = function (rowsToRemove) {
22841 var _this = this;
22842 // if no fromIndex then set to -1, which will refresh everything
22843 // let realFromIndex = -1;
22844 rowsToRemove.forEach(function (indexToRemove) {
22845 var rowComp = _this.rowConsByRowIndex[indexToRemove];
22846 if (rowComp) {
22847 rowComp.destroyFirstPass();
22848 rowComp.destroySecondPass();
22849 }
22850 delete _this.rowConsByRowIndex[indexToRemove];
22851 });
22852 };
22853 // gets called when rows don't change, but viewport does, so after:
22854 // 1) height of grid body changes, ie number of displayed rows has changed
22855 // 2) grid scrolled to new position
22856 // 3) ensure index visible (which is a scroll)
22857 RowRenderer.prototype.redrawAfterScroll = function () {
22858 this.getLockOnRefresh();
22859 this.redraw(null, false, true);
22860 this.releaseLockOnRefresh();
22861 this.dispatchDisplayedRowsChanged();
22862 };
22863 RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {
22864 // for speedy lookup, dump into map
22865 var indexesToDrawMap = {};
22866 indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });
22867 var existingIndexes = Object.keys(this.rowConsByRowIndex);
22868 var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });
22869 this.removeRowComps(indexesNotToDraw);
22870 };
22871 RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {
22872 var _this = this;
22873 // all in all indexes in the viewport
22874 var indexesToDraw = Object(_utils_number__WEBPACK_IMPORTED_MODULE_10__["createArrayOfNumbers"])(this.firstRenderedRow, this.lastRenderedRow);
22875 var checkRowToDraw = function (indexStr, rowComp) {
22876 var index = rowComp.getRowNode().rowIndex;
22877 if (index == null) {
22878 return;
22879 }
22880 if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {
22881 if (_this.doNotUnVirtualiseRow(rowComp)) {
22882 indexesToDraw.push(index);
22883 }
22884 }
22885 };
22886 // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex
22887 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, checkRowToDraw);
22888 // if we are redrawing due to model update, then old rows are in rowsToRecycle
22889 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(rowsToRecycle, checkRowToDraw);
22890 indexesToDraw.sort(function (a, b) { return a - b; });
22891 return indexesToDraw;
22892 };
22893 RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {
22894 var _this = this;
22895 if (animate === void 0) { animate = false; }
22896 if (afterScroll === void 0) { afterScroll = false; }
22897 this.rowContainerHeightService.updateOffset();
22898 this.workOutFirstAndLastRowsToRender();
22899 // the row can already exist and be in the following:
22900 // rowsToRecycle -> if model change, then the index may be different, however row may
22901 // exist here from previous time (mapped by id).
22902 // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport
22903 // this is all the indexes we want, including those that already exist, so this method
22904 // will end up going through each index and drawing only if the row doesn't already exist
22905 var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);
22906 this.removeRowCompsNotToDraw(indexesToDraw);
22907 // never animate when doing print layout - as we want to get things ready to print as quickly as possible,
22908 // otherwise we risk the printer printing a row that's half faded (half way through fading in)
22909 if (this.printLayout) {
22910 animate = false;
22911 }
22912 // add in new rows
22913 var rowComps = [];
22914 indexesToDraw.forEach(function (rowIndex) {
22915 var rowComp = _this.createOrUpdateRowCon(rowIndex, rowsToRecycle, animate, afterScroll);
22916 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowComp)) {
22917 rowComps.push(rowComp);
22918 }
22919 });
22920 if (rowsToRecycle) {
22921 var useAnimationFrame = afterScroll && !this.gridOptionsWrapper.isSuppressAnimationFrame() && !this.printLayout;
22922 if (useAnimationFrame) {
22923 this.beans.taskQueue.addDestroyTask(function () {
22924 _this.destroyRowCons(rowsToRecycle, animate);
22925 _this.updateAllRowCons();
22926 _this.dispatchDisplayedRowsChanged();
22927 });
22928 }
22929 else {
22930 this.destroyRowCons(rowsToRecycle, animate);
22931 }
22932 }
22933 this.updateAllRowCons();
22934 this.checkAngularCompile();
22935 this.gridBodyCon.updateRowCount();
22936 };
22937 RowRenderer.prototype.dispatchDisplayedRowsChanged = function () {
22938 var event = { type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_ROWS_CHANGED };
22939 this.eventService.dispatchEvent(event);
22940 };
22941 RowRenderer.prototype.onDisplayedColumnsChanged = function () {
22942 var pinningLeft = this.columnController.isPinningLeft();
22943 var pinningRight = this.columnController.isPinningRight();
22944 var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;
22945 if (atLeastOneChanged) {
22946 this.pinningLeft = pinningLeft;
22947 this.pinningRight = pinningRight;
22948 if (this.embedFullWidthRows) {
22949 this.redrawFullWidthEmbeddedRows();
22950 }
22951 }
22952 };
22953 // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,
22954 // then it should go into the pinned left area if pinning left, or the center area if not pinning.
22955 RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {
22956 // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when
22957 // embedded, as what appears in each section depends on whether we are pinned or not
22958 var rowsToRemove = [];
22959 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (id, rowComp) {
22960 if (rowComp.isFullWidth()) {
22961 var rowIndex = rowComp.getRowNode().rowIndex;
22962 rowsToRemove.push(rowIndex.toString());
22963 }
22964 });
22965 this.refreshFloatingRowComps();
22966 this.removeRowComps(rowsToRemove);
22967 this.redrawAfterScroll();
22968 };
22969 RowRenderer.prototype.refreshFullWidthRows = function (rowNodesToRefresh) {
22970 var rowsToRemove = [];
22971 var selectivelyRefreshing = !!rowNodesToRefresh;
22972 var idsToRefresh = selectivelyRefreshing ? {} : undefined;
22973 if (selectivelyRefreshing && idsToRefresh) {
22974 rowNodesToRefresh.forEach(function (r) { return idsToRefresh[r.id] = true; });
22975 }
22976 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(this.rowConsByRowIndex, function (id, rowComp) {
22977 if (!rowComp.isFullWidth()) {
22978 return;
22979 }
22980 var rowNode = rowComp.getRowNode();
22981 if (selectivelyRefreshing && idsToRefresh) {
22982 // we refresh if a) this node is present or b) this parents nodes is present. checking parent
22983 // node is important for master/detail, as we want detail to refresh on changes to parent node.
22984 // it's also possible, if user is provider their own fullWidth, that details panels contain
22985 // some info on the parent, eg if in tree data and child row shows some data from parent row also.
22986 var parentId = (rowNode.level > 0 && rowNode.parent) ? rowNode.parent.id : undefined;
22987 var skipThisNode = !idsToRefresh[rowNode.id] && !idsToRefresh[parentId];
22988 if (skipThisNode) {
22989 return;
22990 }
22991 }
22992 var fullWidthRowsRefreshed = rowComp.refreshFullWidth();
22993 if (!fullWidthRowsRefreshed) {
22994 var rowIndex = rowComp.getRowNode().rowIndex;
22995 rowsToRemove.push(rowIndex.toString());
22996 }
22997 });
22998 this.removeRowComps(rowsToRemove);
22999 this.redrawAfterScroll();
23000 };
23001 RowRenderer.prototype.createOrUpdateRowCon = function (rowIndex, rowsToRecycle, animate, afterScroll) {
23002 var rowNode = null;
23003 var rowCon = this.rowConsByRowIndex[rowIndex];
23004 // if no row comp, see if we can get it from the previous rowComps
23005 if (!rowCon) {
23006 rowNode = this.paginationProxy.getRow(rowIndex);
23007 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowNode) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {
23008 rowCon = rowsToRecycle[rowNode.id];
23009 rowsToRecycle[rowNode.id] = null;
23010 }
23011 }
23012 var creatingNewRowCon = !rowCon;
23013 if (creatingNewRowCon) {
23014 // create a new one
23015 if (!rowNode) {
23016 rowNode = this.paginationProxy.getRow(rowIndex);
23017 }
23018 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(rowNode)) {
23019 rowCon = this.createRowCon(rowNode, animate, afterScroll);
23020 }
23021 else {
23022 // this should never happen - if somehow we are trying to create
23023 // a row for a rowNode that does not exist.
23024 return;
23025 }
23026 }
23027 if (rowNode) {
23028 // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures
23029 // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.
23030 rowNode.alreadyRendered = true;
23031 }
23032 this.rowConsByRowIndex[rowIndex] = rowCon;
23033 return rowCon;
23034 };
23035 RowRenderer.prototype.destroyRowCons = function (rowConsMap, animate) {
23036 var _this = this;
23037 var executeInAWhileFuncs = [];
23038 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["iterateObject"])(rowConsMap, function (nodeId, rowCon) {
23039 // if row was used, then it's null
23040 if (!rowCon) {
23041 return;
23042 }
23043 rowCon.destroyFirstPass();
23044 if (animate) {
23045 _this.zombieRowCons[rowCon.getInstanceId()] = rowCon;
23046 executeInAWhileFuncs.push(function () {
23047 rowCon.destroySecondPass();
23048 delete _this.zombieRowCons[rowCon.getInstanceId()];
23049 });
23050 }
23051 else {
23052 rowCon.destroySecondPass();
23053 }
23054 });
23055 if (animate) {
23056 // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get
23057 // executed, as we added it to the end of the list.
23058 executeInAWhileFuncs.push(function () {
23059 _this.updateAllRowCons();
23060 _this.dispatchDisplayedRowsChanged();
23061 });
23062 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["executeInAWhile"])(executeInAWhileFuncs);
23063 }
23064 };
23065 RowRenderer.prototype.checkAngularCompile = function () {
23066 var _this = this;
23067 // if we are doing angular compiling, then do digest the scope here
23068 if (this.gridOptionsWrapper.isAngularCompileRows()) {
23069 // we do it in a timeout, in case we are already in an apply
23070 window.setTimeout(function () {
23071 _this.$scope.$apply();
23072 }, 0);
23073 }
23074 };
23075 RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {
23076 var _this = this;
23077 var newFirst;
23078 var newLast;
23079 if (!this.paginationProxy.isRowsToRender()) {
23080 newFirst = 0;
23081 newLast = -1; // setting to -1 means nothing in range
23082 }
23083 else if (this.printLayout) {
23084 newFirst = this.paginationProxy.getPageFirstRow();
23085 newLast = this.paginationProxy.getPageLastRow();
23086 }
23087 else {
23088 var bufferPixels = this.gridOptionsWrapper.getRowBufferInPixels();
23089 var gridBodyCon = this.controllersService.getGridBodyController();
23090 var rowHeightsChanged = false;
23091 var firstPixel = void 0;
23092 var lastPixel = void 0;
23093 do {
23094 var paginationOffset = this.paginationProxy.getPixelOffset();
23095 var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;
23096 var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();
23097 var bodyVRange = gridBodyCon.getScrollFeature().getVScrollPosition();
23098 var bodyTopPixel = bodyVRange.top;
23099 var bodyBottomPixel = bodyVRange.bottom;
23100 firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;
23101 lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;
23102 // if the rows we are about to display get their heights changed, then that upsets the calcs from above.
23103 rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);
23104 } while (rowHeightsChanged);
23105 var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);
23106 var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);
23107 var pageFirstRow = this.paginationProxy.getPageFirstRow();
23108 var pageLastRow = this.paginationProxy.getPageLastRow();
23109 // adjust, in case buffer extended actual size
23110 if (firstRowIndex < pageFirstRow) {
23111 firstRowIndex = pageFirstRow;
23112 }
23113 if (lastRowIndex > pageLastRow) {
23114 lastRowIndex = pageLastRow;
23115 }
23116 newFirst = firstRowIndex;
23117 newLast = lastRowIndex;
23118 }
23119 // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up
23120 // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of
23121 // killing the browser, we limit the number of rows. just in case some use case we didn't think
23122 // of, we also have a property to not do this operation.
23123 var rowLayoutNormal = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_NORMAL;
23124 var suppressRowCountRestriction = this.gridOptionsWrapper.isSuppressMaxRenderedRowRestriction();
23125 var rowBufferMaxSize = Math.max(this.gridOptionsWrapper.getRowBuffer(), 500);
23126 if (rowLayoutNormal && !suppressRowCountRestriction) {
23127 if (newLast - newFirst > rowBufferMaxSize) {
23128 newLast = newFirst + rowBufferMaxSize;
23129 }
23130 }
23131 var firstDiffers = newFirst !== this.firstRenderedRow;
23132 var lastDiffers = newLast !== this.lastRenderedRow;
23133 if (firstDiffers || lastDiffers) {
23134 this.firstRenderedRow = newFirst;
23135 this.lastRenderedRow = newLast;
23136 var event_1 = {
23137 type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_VIEWPORT_CHANGED,
23138 firstRow: newFirst,
23139 lastRow: newLast,
23140 api: this.gridApi,
23141 columnApi: this.columnApi
23142 };
23143 this.eventService.dispatchEvent(event_1);
23144 }
23145 // only dispatch firstDataRendered if we have actually rendered some data
23146 if (this.paginationProxy.isRowsToRender()) {
23147 var event_2 = {
23148 type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_FIRST_DATA_RENDERED,
23149 firstRow: newFirst,
23150 lastRow: newLast,
23151 api: this.gridApi,
23152 columnApi: this.columnApi
23153 };
23154 // added a small delay here because in some scenarios this can be fired
23155 // before the grid is actually rendered, causing component creation
23156 // on EVENT_FIRST_DATA_RENDERED to fail.
23157 window.setTimeout(function () { return _this.eventService.dispatchEventOnce(event_2); }, 50);
23158 }
23159 };
23160 RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {
23161 // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.
23162 // all the other row models just hard code so the method just returns back false
23163 var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);
23164 if (res) {
23165 this.updateContainerHeights();
23166 }
23167 return res;
23168 };
23169 RowRenderer.prototype.getFirstVirtualRenderedRow = function () {
23170 return this.firstRenderedRow;
23171 };
23172 RowRenderer.prototype.getLastVirtualRenderedRow = function () {
23173 return this.lastRenderedRow;
23174 };
23175 // check that none of the rows to remove are editing or focused as:
23176 // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,
23177 // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered
23178 // the edit is reset - so we want to keep it rendered.
23179 // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,
23180 // otherwise the user can range select and drag (with focus cell going out of the viewport)
23181 // and then ctrl+c, nothing will happen if cell is removed from dom.
23182 // c) if detail record of master detail, as users complained that the context of detail rows
23183 // was getting lost when detail row out of view. eg user expands to show detail row,
23184 // then manipulates the detail panel (eg sorts the detail grid), then context is lost
23185 // after detail panel is scrolled out of / into view.
23186 RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {
23187 var REMOVE_ROW = false;
23188 var KEEP_ROW = true;
23189 var rowNode = rowComp.getRowNode();
23190 var rowHasFocus = this.focusController.isRowNodeFocused(rowNode);
23191 var rowIsEditing = rowComp.isEditing();
23192 var rowIsDetail = rowNode.detail;
23193 var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;
23194 // if we deffo don't want to keep it,
23195 if (!mightWantToKeepRow) {
23196 return REMOVE_ROW;
23197 }
23198 // editing row, only remove if it is no longer rendered, eg filtered out or new data set.
23199 // the reason we want to keep is if user is scrolling up and down, we don't want to loose
23200 // the context of the editing in process.
23201 var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);
23202 return rowNodePresent ? KEEP_ROW : REMOVE_ROW;
23203 };
23204 RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {
23205 var suppressAnimationFrame = this.gridOptionsWrapper.isSuppressAnimationFrame();
23206 // we don't use animations frames for printing, so the user can put the grid into print mode
23207 // and immediately print - otherwise the user would have to wait for the rows to draw in the background
23208 // (via the animation frames) which is awkward to do from code.
23209 // we only do the animation frames after scrolling, as this is where we want the smooth user experience.
23210 // having animation frames for other times makes the grid look 'jumpy'.
23211 var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;
23212 var res = new _row_rowController__WEBPACK_IMPORTED_MODULE_1__["RowController"](this.$scope, rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);
23213 return res;
23214 };
23215 RowRenderer.prototype.getRenderedNodes = function () {
23216 var renderedRows = this.rowConsByRowIndex;
23217 return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });
23218 };
23219 // we use index for rows, but column object for columns, as the next column (by index) might not
23220 // be visible (header grouping) so it's not reliable, so using the column object instead.
23221 RowRenderer.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {
23222 // we keep searching for a next cell until we find one. this is how the group rows get skipped
23223 var nextCell = currentCell;
23224 var hitEdgeOfGrid = false;
23225 while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {
23226 // if the current cell is spanning across multiple columns, we need to move
23227 // our current position to be the last cell on the right before finding the
23228 // the next target.
23229 if (this.gridOptionsWrapper.isEnableRtl()) {
23230 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].LEFT) {
23231 nextCell = this.getLastCellOfColSpan(nextCell);
23232 }
23233 }
23234 else if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].RIGHT) {
23235 nextCell = this.getLastCellOfColSpan(nextCell);
23236 }
23237 nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);
23238 // eg if going down, and nextCell=undefined, means we are gone past the last row
23239 hitEdgeOfGrid = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(nextCell);
23240 }
23241 if (hitEdgeOfGrid && event && event.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].UP) {
23242 nextCell = {
23243 rowIndex: -1,
23244 rowPinned: null,
23245 column: currentCell.column
23246 };
23247 }
23248 // allow user to override what cell to go to next. when doing normal cell navigation (with keys)
23249 // we allow this, however if processing 'enter after edit' we don't allow override
23250 if (allowUserOverride) {
23251 var userFunc = this.gridOptionsWrapper.getNavigateToNextCellFunc();
23252 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userFunc)) {
23253 var params = {
23254 key: key,
23255 previousCellPosition: currentCell,
23256 nextCellPosition: nextCell ? nextCell : null,
23257 event: event
23258 };
23259 var userCell = userFunc(params);
23260 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userCell)) {
23261 if (userCell.floating) {
23262 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["doOnce"])(function () { console.warn("AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?"); }, 'no floating in userCell');
23263 userCell.rowPinned = userCell.floating;
23264 }
23265 nextCell = {
23266 rowPinned: userCell.rowPinned,
23267 rowIndex: userCell.rowIndex,
23268 column: userCell.column
23269 };
23270 }
23271 else {
23272 nextCell = null;
23273 }
23274 }
23275 }
23276 // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid
23277 if (!nextCell) {
23278 return;
23279 }
23280 if (nextCell.rowIndex < 0) {
23281 var headerLen = this.beans.headerNavigationService.getHeaderRowCount();
23282 this.focusController.focusHeaderPosition({ headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column });
23283 return;
23284 }
23285 // in case we have col spanning we get the cellComp and use it to get the
23286 // position. This was we always focus the first cell inside the spanning.
23287 var normalisedPosition = this.getNormalisedPosition(nextCell);
23288 if (normalisedPosition) {
23289 this.focusPosition(normalisedPosition);
23290 }
23291 else {
23292 this.tryToFocusFullWidthRow(nextCell);
23293 }
23294 };
23295 RowRenderer.prototype.getNormalisedPosition = function (cellPosition) {
23296 // ensureCellVisible first, to make sure cell at position is rendered.
23297 this.ensureCellVisible(cellPosition);
23298 var cellComp = this.getComponentForCell(cellPosition);
23299 // not guaranteed to have a cellComp when using the SSRM as blocks are loading.
23300 if (!cellComp) {
23301 return null;
23302 }
23303 cellPosition = cellComp.getCellPosition();
23304 // we call this again, as nextCell can be different to it's previous value due to Column Spanning
23305 // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the
23306 // last column in the group, however now it's the first column in the group). if we didn't do
23307 // ensureCellVisible again, then we could only be showing the last portion (last column) of the
23308 // merged cells.
23309 this.ensureCellVisible(cellPosition);
23310 return cellPosition;
23311 };
23312 RowRenderer.prototype.tryToFocusFullWidthRow = function (position, backwards) {
23313 if (backwards === void 0) { backwards = false; }
23314 var displayedColumns = this.columnController.getAllDisplayedColumns();
23315 var rowComp = this.getRowConByPosition(position);
23316 if (!rowComp || !rowComp.isFullWidth()) {
23317 return false;
23318 }
23319 var cellPosition = {
23320 rowIndex: position.rowIndex,
23321 rowPinned: position.rowPinned,
23322 column: position.column || (backwards ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(displayedColumns) : displayedColumns[0])
23323 };
23324 this.focusPosition(cellPosition);
23325 return true;
23326 };
23327 RowRenderer.prototype.focusPosition = function (cellPosition) {
23328 this.focusController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);
23329 if (this.rangeController) {
23330 this.rangeController.setRangeToCell(cellPosition);
23331 }
23332 };
23333 RowRenderer.prototype.isValidNavigateCell = function (cell) {
23334 var rowNode = this.rowPositionUtils.getRowNode(cell);
23335 // we do not allow focusing on detail rows and full width rows
23336 return !!rowNode;
23337 };
23338 RowRenderer.prototype.getLastCellOfColSpan = function (cell) {
23339 var cellComp = this.getComponentForCell(cell);
23340 if (!cellComp) {
23341 return cell;
23342 }
23343 var colSpanningList = cellComp.getColSpanningList();
23344 if (colSpanningList.length === 1) {
23345 return cell;
23346 }
23347 return {
23348 rowIndex: cell.rowIndex,
23349 column: Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(colSpanningList),
23350 rowPinned: cell.rowPinned
23351 };
23352 };
23353 RowRenderer.prototype.ensureCellVisible = function (gridCell) {
23354 // this scrolls the row into view
23355 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["missing"])(gridCell.rowPinned)) {
23356 this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);
23357 }
23358 if (!gridCell.column.isPinned()) {
23359 this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);
23360 }
23361 // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible
23362 // floating cell, the scrolls get out of sync
23363 this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();
23364 // need to flush frames, to make sure the correct cells are rendered
23365 this.animationFrameService.flushAllFrames();
23366 };
23367 RowRenderer.prototype.startEditingCell = function (gridCell, keyPress, charPress) {
23368 var cell = this.getComponentForCell(gridCell);
23369 if (cell) {
23370 cell.startRowOrCellEdit(keyPress, charPress);
23371 }
23372 };
23373 RowRenderer.prototype.getRowConByPosition = function (rowPosition) {
23374 var rowComponent;
23375 switch (rowPosition.rowPinned) {
23376 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP:
23377 rowComponent = this.topRowCons[rowPosition.rowIndex];
23378 break;
23379 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM:
23380 rowComponent = this.bottomRowCons[rowPosition.rowIndex];
23381 break;
23382 default:
23383 rowComponent = this.rowConsByRowIndex[rowPosition.rowIndex];
23384 break;
23385 }
23386 return rowComponent;
23387 };
23388 RowRenderer.prototype.getComponentForCell = function (cellPosition) {
23389 var rowComp = this.getRowConByPosition(cellPosition);
23390 if (!rowComp) {
23391 return null;
23392 }
23393 var cellComponent = rowComp.getRenderedCellForColumn(cellPosition.column);
23394 return cellComponent;
23395 };
23396 RowRenderer.prototype.getRowNode = function (gridRow) {
23397 switch (gridRow.rowPinned) {
23398 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP:
23399 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
23400 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM:
23401 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
23402 default:
23403 return this.rowModel.getRow(gridRow.rowIndex);
23404 }
23405 };
23406 // result of keyboard event
23407 RowRenderer.prototype.onTabKeyDown = function (previousRenderedCell, keyboardEvent) {
23408 var backwards = keyboardEvent.shiftKey;
23409 var movedToNextCell = this.tabToNextCellCommon(previousRenderedCell, backwards);
23410 if (movedToNextCell) {
23411 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
23412 // to the normal tabbing so user can exit the grid.
23413 keyboardEvent.preventDefault();
23414 return;
23415 }
23416 // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going
23417 // backwards)
23418 if (backwards) {
23419 var _a = previousRenderedCell.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;
23420 var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();
23421 if (firstRow) {
23422 keyboardEvent.preventDefault();
23423 var headerRowIndex = this.beans.headerNavigationService.getHeaderRowCount() - 1;
23424 var column = Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(this.columnController.getAllDisplayedColumns());
23425 this.focusController.focusHeaderPosition({ headerRowIndex: headerRowIndex, column: column });
23426 }
23427 }
23428 else {
23429 // if the case it's a popup editor, the focus is on the editor and not the previous cell.
23430 // in order for the tab navigation to work, we need to focus the browser back onto the
23431 // previous cell.
23432 if (previousRenderedCell instanceof _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"]) {
23433 previousRenderedCell.focusCell(true);
23434 }
23435 if (this.focusController.focusNextGridCoreContainer(false)) {
23436 keyboardEvent.preventDefault();
23437 }
23438 }
23439 };
23440 // comes from API
23441 RowRenderer.prototype.tabToNextCell = function (backwards) {
23442 var focusedCell = this.focusController.getFocusedCell();
23443 // if no focus, then cannot navigate
23444 if (!focusedCell) {
23445 return false;
23446 }
23447 var cellOrRowComp = this.getComponentForCell(focusedCell);
23448 // if cell is not rendered, means user has scrolled away from the cell
23449 // or that the focusedCell is a Full Width Row
23450 if (!cellOrRowComp) {
23451 cellOrRowComp = this.getRowConByPosition(focusedCell);
23452 if (!cellOrRowComp || !cellOrRowComp.isFullWidth()) {
23453 return false;
23454 }
23455 }
23456 return this.tabToNextCellCommon(cellOrRowComp, backwards);
23457 };
23458 RowRenderer.prototype.tabToNextCellCommon = function (previousCellOrRow, backwards) {
23459 var editing = previousCellOrRow.isEditing();
23460 // if cell is not editing, there is still chance row is editing if it's Full Row Editing
23461 if (!editing && previousCellOrRow instanceof _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"]) {
23462 var cellComp = previousCellOrRow;
23463 var rowCon = cellComp.getRenderedRow();
23464 if (rowCon) {
23465 editing = rowCon.isEditing();
23466 }
23467 }
23468 var res;
23469 if (editing) {
23470 // if we are editing, we know it's not a Full Width Row (RowComp)
23471 if (this.gridOptionsWrapper.isFullRowEdit()) {
23472 res = this.moveToNextEditingRow(previousCellOrRow, backwards);
23473 }
23474 else {
23475 res = this.moveToNextEditingCell(previousCellOrRow, backwards);
23476 }
23477 }
23478 else {
23479 res = this.moveToNextCellNotEditing(previousCellOrRow, backwards);
23480 }
23481 // if a cell wasn't found, it's possible that focus was moved to the header
23482 return res || !!this.focusController.getFocusedHeader();
23483 };
23484 RowRenderer.prototype.moveToNextEditingCell = function (previousRenderedCell, backwards) {
23485 var gridCell = previousRenderedCell.getCellPosition();
23486 // need to do this before getting next cell to edit, in case the next cell
23487 // has editable function (eg colDef.editable=func() ) and it depends on the
23488 // result of this cell, so need to save updates from the first edit, in case
23489 // the value is referenced in the function.
23490 previousRenderedCell.stopEditing();
23491 // find the next cell to start editing
23492 var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, true);
23493 var foundCell = nextRenderedCell != null;
23494 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
23495 // to the normal tabbing so user can exit the grid.
23496 if (foundCell) {
23497 nextRenderedCell.startEditingIfEnabled(null, null, true);
23498 nextRenderedCell.focusCell(false);
23499 }
23500 return foundCell;
23501 };
23502 RowRenderer.prototype.moveToNextEditingRow = function (previousCellComp, backwards) {
23503 var cellPos = previousCellComp.getCellPosition();
23504 // find the next cell to start editing
23505 var nextCellComp = this.findNextCellToFocusOn(cellPos, backwards, true);
23506 if (nextCellComp == null) {
23507 return false;
23508 }
23509 var previousPos = previousCellComp.getCellPosition();
23510 var nextPos = nextCellComp.getCellPosition();
23511 var previousEditable = this.isCellEditable(previousPos);
23512 var nextEditable = this.isCellEditable(nextPos);
23513 var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;
23514 if (previousEditable) {
23515 previousCellComp.setFocusOutOnEditor();
23516 }
23517 if (!rowsMatch) {
23518 var pRow = previousCellComp.getRenderedRow();
23519 pRow.stopEditing();
23520 var nRow = nextCellComp.getRenderedRow();
23521 nRow.startRowEditing();
23522 }
23523 if (nextEditable) {
23524 nextCellComp.setFocusInOnEditor();
23525 nextCellComp.focusCell();
23526 }
23527 else {
23528 nextCellComp.focusCell(true);
23529 }
23530 return true;
23531 };
23532 RowRenderer.prototype.moveToNextCellNotEditing = function (previousRenderedCell, backwards) {
23533 var displayedColumns = this.columnController.getAllDisplayedColumns();
23534 var gridCell;
23535 if (previousRenderedCell instanceof _row_rowController__WEBPACK_IMPORTED_MODULE_1__["RowController"]) {
23536 gridCell = __assign(__assign({}, previousRenderedCell.getRowPosition()), { column: backwards ? displayedColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["last"])(displayedColumns) });
23537 }
23538 else {
23539 gridCell = previousRenderedCell.getCellPosition();
23540 }
23541 // find the next cell to start editing
23542 var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, false);
23543 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
23544 // to the normal tabbing so user can exit the grid.
23545 if (nextRenderedCell instanceof _cellComp__WEBPACK_IMPORTED_MODULE_5__["CellComp"]) {
23546 nextRenderedCell.focusCell(true);
23547 }
23548 else if (nextRenderedCell) {
23549 return this.tryToFocusFullWidthRow(nextRenderedCell.getRowPosition(), backwards);
23550 }
23551 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(nextRenderedCell);
23552 };
23553 // called by the cell, when tab is pressed while editing.
23554 // @return: RenderedCell when navigation successful, otherwise null
23555 RowRenderer.prototype.findNextCellToFocusOn = function (gridCell, backwards, startEditing) {
23556 var nextCell = gridCell;
23557 while (true) {
23558 if (!backwards) {
23559 nextCell = this.getLastCellOfColSpan(nextCell);
23560 }
23561 nextCell = this.cellNavigationService.getNextTabbedCell(nextCell, backwards);
23562 // allow user to override what cell to go to next
23563 var userFunc = this.gridOptionsWrapper.getTabToNextCellFunc();
23564 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userFunc)) {
23565 var params = {
23566 backwards: backwards,
23567 editing: startEditing,
23568 previousCellPosition: gridCell,
23569 nextCellPosition: nextCell ? nextCell : null
23570 };
23571 var userCell = userFunc(params);
23572 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(userCell)) {
23573 if (userCell.floating) {
23574 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["doOnce"])(function () { console.warn("AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?"); }, 'no floating in userCell');
23575 userCell.rowPinned = userCell.floating;
23576 }
23577 nextCell = {
23578 rowIndex: userCell.rowIndex,
23579 column: userCell.column,
23580 rowPinned: userCell.rowPinned
23581 };
23582 }
23583 else {
23584 nextCell = null;
23585 }
23586 }
23587 // if no 'next cell', means we have got to last cell of grid, so nothing to move to,
23588 // so bottom right cell going forwards, or top left going backwards
23589 if (!nextCell) {
23590 return null;
23591 }
23592 if (nextCell.rowIndex < 0) {
23593 var headerLen = this.beans.headerNavigationService.getHeaderRowCount();
23594 this.focusController.focusHeaderPosition({ headerRowIndex: headerLen + (nextCell.rowIndex), column: nextCell.column });
23595 return null;
23596 }
23597 // if editing, but cell not editable, skip cell. we do this before we do all of
23598 // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping
23599 // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless
23600 // (except for the last one) which causes grid to stall for a while.
23601 // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.
23602 var fullRowEdit = this.gridOptionsWrapper.isFullRowEdit();
23603 if (startEditing && !fullRowEdit) {
23604 var cellIsEditable = this.isCellEditable(nextCell);
23605 if (!cellIsEditable) {
23606 continue;
23607 }
23608 }
23609 this.ensureCellVisible(nextCell);
23610 // we have to call this after ensureColumnVisible - otherwise it could be a virtual column
23611 // or row that is not currently in view, hence the renderedCell would not exist
23612 var nextCellComp = this.getComponentForCell(nextCell);
23613 // if next cell is fullWidth row, then no rendered cell,
23614 // as fullWidth rows have no cells, so we skip it
23615 if (!nextCellComp) {
23616 var rowComp = this.getRowConByPosition(nextCell);
23617 if (!rowComp || !rowComp.isFullWidth()) {
23618 continue;
23619 }
23620 else {
23621 return rowComp;
23622 }
23623 }
23624 if (nextCellComp.isSuppressNavigable()) {
23625 continue;
23626 }
23627 // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation
23628 // consistent, we set into range here also.
23629 if (this.rangeController) {
23630 this.rangeController.setRangeToCell(nextCell);
23631 }
23632 // we successfully tabbed onto a grid cell, so return true
23633 return nextCellComp;
23634 }
23635 };
23636 RowRenderer.prototype.isCellEditable = function (cell) {
23637 var rowNode = this.lookupRowNodeForCell(cell);
23638 if (rowNode) {
23639 return cell.column.isCellEditable(rowNode);
23640 }
23641 return false;
23642 };
23643 RowRenderer.prototype.lookupRowNodeForCell = function (cell) {
23644 if (cell.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_TOP) {
23645 return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);
23646 }
23647 if (cell.rowPinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_BOTTOM) {
23648 return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);
23649 }
23650 return this.paginationProxy.getRow(cell.rowIndex);
23651 };
23652 // returns true if any row between startIndex and endIndex is rendered. used by
23653 // SSRM or IRM, as they don't want to purge visible blocks from cache.
23654 RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {
23655 // parent closed means the parent node is not expanded, thus these blocks are not visible
23656 var parentClosed = startIndex == null || endIndex == null;
23657 if (parentClosed) {
23658 return false;
23659 }
23660 var blockAfterViewport = startIndex > this.lastRenderedRow;
23661 var blockBeforeViewport = endIndex < this.firstRenderedRow;
23662 var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;
23663 return blockInsideViewport;
23664 };
23665 __decorate([
23666 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("paginationProxy")
23667 ], RowRenderer.prototype, "paginationProxy", void 0);
23668 __decorate([
23669 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("columnController")
23670 ], RowRenderer.prototype, "columnController", void 0);
23671 __decorate([
23672 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("$scope")
23673 ], RowRenderer.prototype, "$scope", void 0);
23674 __decorate([
23675 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("pinnedRowModel")
23676 ], RowRenderer.prototype, "pinnedRowModel", void 0);
23677 __decorate([
23678 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("rowModel")
23679 ], RowRenderer.prototype, "rowModel", void 0);
23680 __decorate([
23681 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("focusController")
23682 ], RowRenderer.prototype, "focusController", void 0);
23683 __decorate([
23684 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("cellNavigationService")
23685 ], RowRenderer.prototype, "cellNavigationService", void 0);
23686 __decorate([
23687 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("columnApi")
23688 ], RowRenderer.prototype, "columnApi", void 0);
23689 __decorate([
23690 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("gridApi")
23691 ], RowRenderer.prototype, "gridApi", void 0);
23692 __decorate([
23693 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("beans")
23694 ], RowRenderer.prototype, "beans", void 0);
23695 __decorate([
23696 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("rowContainerHeightService")
23697 ], RowRenderer.prototype, "rowContainerHeightService", void 0);
23698 __decorate([
23699 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("animationFrameService")
23700 ], RowRenderer.prototype, "animationFrameService", void 0);
23701 __decorate([
23702 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])("rowPositionUtils")
23703 ], RowRenderer.prototype, "rowPositionUtils", void 0);
23704 __decorate([
23705 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])("rangeController")
23706 ], RowRenderer.prototype, "rangeController", void 0);
23707 __decorate([
23708 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])("controllersService")
23709 ], RowRenderer.prototype, "controllersService", void 0);
23710 __decorate([
23711 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Qualifier"])("loggerFactory"))
23712 ], RowRenderer.prototype, "agWire", null);
23713 __decorate([
23714 _context_context__WEBPACK_IMPORTED_MODULE_6__["PostConstruct"]
23715 ], RowRenderer.prototype, "postConstruct", null);
23716 RowRenderer = __decorate([
23717 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Bean"])("rowRenderer")
23718 ], RowRenderer);
23719 return RowRenderer;
23720}(_context_beanStub__WEBPACK_IMPORTED_MODULE_7__["BeanStub"]));
23721
23722
23723
23724/***/ }),
23725/* 105 */
23726/***/ (function(module, __webpack_exports__, __webpack_require__) {
23727
23728"use strict";
23729__webpack_require__.r(__webpack_exports__);
23730/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return RowType; });
23731/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthRenderers", function() { return FullWidthRenderers; });
23732/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthKeys", function() { return FullWidthKeys; });
23733/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowController", function() { return RowController; });
23734/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
23735/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
23736/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
23737/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47);
23738/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
23739/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
23740/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21);
23741/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
23742/* harmony import */ var _utils_general__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(46);
23743/* harmony import */ var _angularRowUtils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(106);
23744/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15);
23745/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20);
23746/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(27);
23747/* harmony import */ var _rowDragComp__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(77);
23748/**
23749 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
23750 * @version v25.3.0
23751 * @link http://www.ag-grid.com/
23752 * @license MIT
23753 */
23754var __extends = (undefined && undefined.__extends) || (function () {
23755 var extendStatics = function (d, b) {
23756 extendStatics = Object.setPrototypeOf ||
23757 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
23758 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
23759 return extendStatics(d, b);
23760 };
23761 return function (d, b) {
23762 extendStatics(d, b);
23763 function __() { this.constructor = d; }
23764 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
23765 };
23766})();
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
23780
23781var RowType;
23782(function (RowType) {
23783 RowType["Normal"] = "Normal";
23784 RowType["FullWidth"] = "FullWidth";
23785 RowType["FullWidthLoading"] = "FullWidthLoading";
23786 RowType["FullWidthGroup"] = "FullWidthGroup";
23787 RowType["FullWidthDetail"] = "FullWidthDetail";
23788})(RowType || (RowType = {}));
23789var FullWidthRenderers = Object(_utils_map__WEBPACK_IMPORTED_MODULE_12__["convertToMap"])([
23790 [RowType.FullWidthLoading, 'agLoadingCellRenderer'],
23791 [RowType.FullWidthGroup, 'agGroupRowRenderer'],
23792 [RowType.FullWidthDetail, 'agDetailCellRenderer']
23793]);
23794var FullWidthKeys = Object(_utils_map__WEBPACK_IMPORTED_MODULE_12__["convertToMap"])([
23795 [RowType.FullWidth, 'fullWidthCellRenderer'],
23796 [RowType.FullWidthLoading, 'loadingCellRenderer'],
23797 [RowType.FullWidthGroup, 'groupRowRenderer'],
23798 [RowType.FullWidthDetail, 'detailCellRenderer']
23799]);
23800var instanceIdSequence = 0;
23801var RowController = /** @class */ (function (_super) {
23802 __extends(RowController, _super);
23803 function RowController(parentScope, rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {
23804 var _this = _super.call(this) || this;
23805 _this.instanceId = instanceIdSequence++;
23806 _this.allRowComps = [];
23807 _this.active = true;
23808 _this.centerCols = [];
23809 _this.leftCols = [];
23810 _this.rightCols = [];
23811 _this.lastMouseDownOnDragger = false;
23812 _this.updateColumnListsPending = false;
23813 _this.parentScope = parentScope;
23814 _this.beans = beans;
23815 _this.rowNode = rowNode;
23816 _this.rowIsEven = _this.rowNode.rowIndex % 2 === 0;
23817 _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();
23818 _this.useAnimationFrameForCreate = useAnimationFrameForCreate;
23819 _this.printLayout = printLayout;
23820 _this.setAnimateFlags(animateIn);
23821 _this.rowFocused = _this.beans.focusController.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);
23822 _this.setupAngular1Scope();
23823 _this.rowLevel = _this.beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);
23824 _this.setRowType();
23825 _this.updateColumnLists(!_this.useAnimationFrameForCreate);
23826 _this.addListeners();
23827 if (_this.slideRowIn) {
23828 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["executeNextVMTurn"])(_this.onTopChanged.bind(_this));
23829 }
23830 if (_this.fadeRowIn) {
23831 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["executeNextVMTurn"])(function () {
23832 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(rowComp.getGui(), 'ag-opacity-zero'); });
23833 });
23834 }
23835 return _this;
23836 }
23837 RowController.prototype.getInstanceId = function () {
23838 return this.instanceId;
23839 };
23840 RowController.prototype.setLeftRowComp = function (rowComp) {
23841 if (this.leftRowComp) {
23842 console.error('AG Grid - should not set leftRowComp twice');
23843 }
23844 this.leftRowComp = rowComp;
23845 this.allRowComps.push(rowComp);
23846 };
23847 RowController.prototype.setRightRowComp = function (rowComp) {
23848 if (this.rightRowComp) {
23849 console.error('AG Grid - should not set rightRowComp twice');
23850 }
23851 this.rightRowComp = rowComp;
23852 this.allRowComps.push(rowComp);
23853 };
23854 RowController.prototype.setCenterRowComp = function (rowComp) {
23855 if (this.centerRowComp) {
23856 console.error('AG Grid - should not set centerRowComp twice');
23857 }
23858 this.centerRowComp = rowComp;
23859 this.allRowComps.push(rowComp);
23860 };
23861 RowController.prototype.setFullWidthRowComp = function (rowComp) {
23862 if (this.fullWidthRowComp) {
23863 console.error('AG Grid - should not set fullWidthRowComp twice');
23864 }
23865 this.fullWidthRowComp = rowComp;
23866 this.allRowComps.push(rowComp);
23867 };
23868 RowController.prototype.getColsForRowComp = function (pinned) {
23869 switch (pinned) {
23870 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT: return this.rightCols;
23871 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT: return this.leftCols;
23872 default: return this.centerCols;
23873 }
23874 };
23875 RowController.prototype.getScope = function () {
23876 return this.scope;
23877 };
23878 RowController.prototype.isPrintLayout = function () {
23879 return this.printLayout;
23880 };
23881 RowController.prototype.setupAngular1Scope = function () {
23882 var scopeResult = _angularRowUtils__WEBPACK_IMPORTED_MODULE_9__["AngularRowUtils"].createChildScopeOrNull(this.rowNode, this.parentScope, this.beans.gridOptionsWrapper);
23883 if (scopeResult) {
23884 this.scope = scopeResult.scope;
23885 this.addDestroyFunc(scopeResult.scopeDestroyFunc);
23886 }
23887 };
23888 RowController.prototype.getCellForCol = function (column) {
23889 var cellComp = this.getRenderedCellForColumn(column);
23890 return cellComp ? cellComp.getGui() : null;
23891 };
23892 RowController.prototype.executeProcessRowPostCreateFunc = function () {
23893 var func = this.beans.gridOptionsWrapper.getProcessRowPostCreateFunc();
23894 if (!func) {
23895 return;
23896 }
23897 var params = {
23898 eRow: this.centerRowComp ? this.centerRowComp.getGui() : undefined,
23899 ePinnedLeftRow: this.leftRowComp ? this.leftRowComp.getGui() : undefined,
23900 ePinnedRightRow: this.rightRowComp ? this.rightRowComp.getGui() : undefined,
23901 node: this.rowNode,
23902 api: this.beans.gridOptionsWrapper.getApi(),
23903 rowIndex: this.rowNode.rowIndex,
23904 addRenderedRowListener: this.addEventListener.bind(this),
23905 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
23906 context: this.beans.gridOptionsWrapper.getContext()
23907 };
23908 func(params);
23909 };
23910 RowController.prototype.setRowType = function () {
23911 var isStub = this.rowNode.stub;
23912 var isFullWidthCell = this.rowNode.isFullWidthCell();
23913 var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;
23914 var pivotMode = this.beans.columnController.isPivotMode();
23915 // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking
23916 // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'
23917 // so each can be set independently (as a customer complained about footers getting full width, hence
23918 // introducing this logic)
23919 var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;
23920 var isFullWidthGroup = isGroupRow && this.beans.gridOptionsWrapper.isGroupUseEntireRow(pivotMode);
23921 if (isStub) {
23922 this.rowType = RowType.FullWidthLoading;
23923 }
23924 else if (isDetailCell) {
23925 this.rowType = RowType.FullWidthDetail;
23926 }
23927 else if (isFullWidthCell) {
23928 this.rowType = RowType.FullWidth;
23929 }
23930 else if (isFullWidthGroup) {
23931 this.rowType = RowType.FullWidthGroup;
23932 }
23933 else {
23934 this.rowType = RowType.Normal;
23935 }
23936 };
23937 RowController.prototype.updateColumnLists = function (suppressAnimationFrame) {
23938 var _this = this;
23939 if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }
23940 if (this.isFullWidth()) {
23941 return;
23942 }
23943 var noAnimation = suppressAnimationFrame
23944 || this.beans.gridOptionsWrapper.isSuppressAnimationFrame()
23945 || this.printLayout;
23946 if (noAnimation) {
23947 this.updateColumnListsImpl();
23948 return;
23949 }
23950 if (this.updateColumnListsPending) {
23951 return;
23952 }
23953 this.beans.taskQueue.createTask(function () {
23954 if (!_this.active) {
23955 return;
23956 }
23957 _this.updateColumnListsImpl();
23958 }, this.rowNode.rowIndex, 'createTasksP1');
23959 this.updateColumnListsPending = true;
23960 };
23961 RowController.prototype.updateColumnListsImpl = function () {
23962 this.updateColumnListsPending = false;
23963 if (this.printLayout) {
23964 this.centerCols = this.beans.columnController.getAllDisplayedColumns();
23965 this.leftCols = [];
23966 this.rightCols = [];
23967 }
23968 else {
23969 this.centerCols = this.beans.columnController.getViewportCenterColumnsForRow(this.rowNode);
23970 this.leftCols = this.beans.columnController.getDisplayedLeftColumnsForRow(this.rowNode);
23971 this.rightCols = this.beans.columnController.getDisplayedRightColumnsForRow(this.rowNode);
23972 }
23973 this.allRowComps.forEach(function (rc) { return rc.onColumnChanged(); });
23974 };
23975 RowController.prototype.setAnimateFlags = function (animateIn) {
23976 if (animateIn) {
23977 var oldRowTopExists = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.rowNode.oldRowTop);
23978 // if the row had a previous position, we slide it in (animate row top)
23979 this.slideRowIn = oldRowTopExists;
23980 // if the row had no previous position, we fade it in (animate
23981 this.fadeRowIn = !oldRowTopExists;
23982 }
23983 else {
23984 this.slideRowIn = false;
23985 this.fadeRowIn = false;
23986 }
23987 };
23988 RowController.prototype.isEditing = function () {
23989 return this.editingRow;
23990 };
23991 RowController.prototype.stopRowEditing = function (cancel) {
23992 this.stopEditing(cancel);
23993 };
23994 RowController.prototype.isFullWidth = function () {
23995 return this.rowType !== RowType.Normal;
23996 };
23997 RowController.prototype.getRowType = function () {
23998 return this.rowType;
23999 };
24000 RowController.prototype.refreshFullWidth = function () {
24001 var _this = this;
24002 // returns 'true' if refresh succeeded
24003 var tryRefresh = function (rowComp, pinned) {
24004 if (!rowComp) {
24005 return true;
24006 } // no refresh needed
24007 var cellComp = rowComp.getFullWidthRowComp();
24008 if (!cellComp) {
24009 return true;
24010 } // no refresh needed
24011 // no refresh method present, so can't refresh, hard refresh needed
24012 if (!cellComp.refresh) {
24013 return false;
24014 }
24015 var params = _this.createFullWidthParams(rowComp.getGui(), pinned);
24016 var refreshSucceeded = cellComp.refresh(params);
24017 return refreshSucceeded;
24018 };
24019 var normalSuccess = tryRefresh(this.fullWidthRowComp, null);
24020 var bodySuccess = tryRefresh(this.centerRowComp, null);
24021 var leftSuccess = tryRefresh(this.leftRowComp, _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT);
24022 var rightSuccess = tryRefresh(this.rightRowComp, _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT);
24023 var allFullWidthRowsRefreshed = normalSuccess && bodySuccess && leftSuccess && rightSuccess;
24024 return allFullWidthRowsRefreshed;
24025 };
24026 RowController.prototype.addListeners = function () {
24027 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));
24028 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_ROW_SELECTED, this.onRowSelected.bind(this));
24029 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));
24030 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_TOP_CHANGED, this.onTopChanged.bind(this));
24031 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));
24032 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));
24033 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));
24034 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));
24035 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));
24036 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));
24037 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));
24038 var eventService = this.beans.eventService;
24039 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));
24040 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));
24041 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
24042 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));
24043 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_FOCUSED, this.onCellFocusChanged.bind(this));
24044 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));
24045 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));
24046 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));
24047 this.addListenersForCellComps();
24048 };
24049 RowController.prototype.onColumnMoved = function () {
24050 this.updateColumnLists();
24051 };
24052 RowController.prototype.addListenersForCellComps = function () {
24053 var _this = this;
24054 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_ROW_INDEX_CHANGED, function () {
24055 _this.forEachCellComp(function (cellComp) { return cellComp.onRowIndexChanged(); });
24056 });
24057 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_CELL_CHANGED, function (event) {
24058 _this.forEachCellComp(function (cellComp) { return cellComp.onCellChanged(event); });
24059 });
24060 };
24061 RowController.prototype.onRowNodeDataChanged = function (event) {
24062 // if this is an update, we want to refresh, as this will allow the user to put in a transition
24063 // into the cellRenderer refresh method. otherwise this might be completely new data, in which case
24064 // we will want to completely replace the cells
24065 this.forEachCellComp(function (cellComp) {
24066 return cellComp.refreshCell({
24067 suppressFlash: !event.update,
24068 newData: !event.update
24069 });
24070 });
24071 // check for selected also, as this could be after lazy loading of the row data, in which case
24072 // the id might of just gotten set inside the row and the row selected state may of changed
24073 // as a result. this is what happens when selected rows are loaded in virtual pagination.
24074 // - niall note - since moving to the stub component, this may no longer be true, as replacing
24075 // the stub component now replaces the entire row
24076 this.onRowSelected();
24077 // as data has changed, then the style and class needs to be recomputed
24078 this.postProcessCss();
24079 };
24080 RowController.prototype.onRowNodeCellChanged = function () {
24081 // as data has changed, then the style and class needs to be recomputed
24082 this.postProcessCss();
24083 };
24084 RowController.prototype.postProcessCss = function () {
24085 this.postProcessStylesFromGridOptions();
24086 this.postProcessClassesFromGridOptions();
24087 this.postProcessRowClassRules();
24088 this.postProcessRowDragging();
24089 };
24090 RowController.prototype.onRowNodeHighlightChanged = function () {
24091 var highlighted = this.rowNode.highlighted;
24092 this.allRowComps.forEach(function (rowComp) {
24093 var eGui = rowComp.getGui();
24094 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, 'ag-row-highlight-above');
24095 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, 'ag-row-highlight-below');
24096 if (highlighted) {
24097 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eGui, 'ag-row-highlight-' + highlighted);
24098 }
24099 });
24100 };
24101 RowController.prototype.onRowNodeDraggingChanged = function () {
24102 this.postProcessRowDragging();
24103 };
24104 RowController.prototype.postProcessRowDragging = function () {
24105 var dragging = this.rowNode.dragging;
24106 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-dragging', dragging); });
24107 };
24108 RowController.prototype.updateExpandedCss = function () {
24109 var expandable = this.rowNode.isExpandable();
24110 var expanded = this.rowNode.expanded == true;
24111 this.allRowComps.forEach(function (rowComp) {
24112 var eRow = rowComp.getGui();
24113 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-group', expandable);
24114 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-group-expanded', expandable && expanded);
24115 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-group-contracted', expandable && !expanded);
24116 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaExpanded"])(eRow, expandable && expanded);
24117 });
24118 };
24119 RowController.prototype.onDisplayedColumnsChanged = function () {
24120 // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and
24121 // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.
24122 this.updateColumnLists(true);
24123 };
24124 RowController.prototype.onVirtualColumnsChanged = function () {
24125 this.updateColumnLists();
24126 };
24127 RowController.prototype.getRowPosition = function () {
24128 return {
24129 rowPinned: this.rowNode.rowPinned,
24130 rowIndex: this.rowNode.rowIndex
24131 };
24132 };
24133 RowController.prototype.onKeyboardNavigate = function (keyboardEvent) {
24134 var currentFullWidthComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(this.allRowComps, function (rowComp) { return rowComp.getGui().contains(keyboardEvent.target); });
24135 var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.getGui() : null;
24136 var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;
24137 if (!isFullWidthContainerFocused) {
24138 return;
24139 }
24140 var node = this.rowNode;
24141 var lastFocusedCell = this.beans.focusController.getFocusedCell();
24142 var cellPosition = {
24143 rowIndex: node.rowIndex,
24144 rowPinned: node.rowPinned,
24145 column: (lastFocusedCell && lastFocusedCell.column)
24146 };
24147 this.beans.rowRenderer.navigateToNextCell(keyboardEvent, keyboardEvent.keyCode, cellPosition, true);
24148 keyboardEvent.preventDefault();
24149 };
24150 RowController.prototype.onTabKeyDown = function (keyboardEvent) {
24151 if (keyboardEvent.defaultPrevented || Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(keyboardEvent)) {
24152 return;
24153 }
24154 var currentFullWidthComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(this.allRowComps, function (rowComp) { return rowComp.getGui().contains(keyboardEvent.target); });
24155 var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.getGui() : null;
24156 var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;
24157 var nextEl = null;
24158 if (!isFullWidthContainerFocused) {
24159 nextEl = this.beans.focusController.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);
24160 }
24161 if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {
24162 this.beans.rowRenderer.onTabKeyDown(this, keyboardEvent);
24163 }
24164 };
24165 RowController.prototype.onFullWidthRowFocused = function (event) {
24166 var node = this.rowNode;
24167 var isFocused = this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;
24168 var element = this.fullWidthRowComp ? this.fullWidthRowComp.getGui() : this.centerRowComp.getGui();
24169 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(element, 'ag-full-width-focus', isFocused);
24170 if (isFocused) {
24171 // we don't scroll normal rows into view when we focus them, so we don't want
24172 // to scroll Full Width rows either.
24173 element.focus({ preventScroll: true });
24174 }
24175 };
24176 RowController.prototype.refreshCell = function (cellComp) {
24177 this.allRowComps.forEach(function (rc) { return rc.destroyCells([cellComp]); });
24178 this.updateColumnLists();
24179 };
24180 RowController.prototype.onMouseEvent = function (eventName, mouseEvent) {
24181 switch (eventName) {
24182 case 'dblclick':
24183 this.onRowDblClick(mouseEvent);
24184 break;
24185 case 'click':
24186 this.onRowClick(mouseEvent);
24187 break;
24188 case 'mousedown':
24189 this.onRowMouseDown(mouseEvent);
24190 break;
24191 }
24192 };
24193 RowController.prototype.createRowEvent = function (type, domEvent) {
24194 return {
24195 type: type,
24196 node: this.rowNode,
24197 data: this.rowNode.data,
24198 rowIndex: this.rowNode.rowIndex,
24199 rowPinned: this.rowNode.rowPinned,
24200 context: this.beans.gridOptionsWrapper.getContext(),
24201 api: this.beans.gridOptionsWrapper.getApi(),
24202 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
24203 event: domEvent
24204 };
24205 };
24206 RowController.prototype.createRowEventWithSource = function (type, domEvent) {
24207 var event = this.createRowEvent(type, domEvent);
24208 // when first developing this, we included the rowComp in the event.
24209 // this seems very weird. so when introducing the event types, i left the 'source'
24210 // out of the type, and just include the source in the two places where this event
24211 // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any
24212 // users to be using this, as the rowComp isn't an object we expose, so would be
24213 // very surprising if a user was using it.
24214 event.source = this;
24215 return event;
24216 };
24217 RowController.prototype.onRowDblClick = function (mouseEvent) {
24218 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(mouseEvent)) {
24219 return;
24220 }
24221 var agEvent = this.createRowEventWithSource(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_DOUBLE_CLICKED, mouseEvent);
24222 this.beans.eventService.dispatchEvent(agEvent);
24223 };
24224 RowController.prototype.onRowMouseDown = function (mouseEvent) {
24225 this.lastMouseDownOnDragger = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isElementChildOfClass"])(mouseEvent.target, 'ag-row-drag', 3);
24226 if (!this.isFullWidth()) {
24227 return;
24228 }
24229 var node = this.rowNode;
24230 var columnController = this.beans.columnController;
24231 this.beans.focusController.setFocusedCell(node.rowIndex, columnController.getAllDisplayedColumns()[0], node.rowPinned, true);
24232 };
24233 RowController.prototype.onRowClick = function (mouseEvent) {
24234 var stop = Object(_utils_event__WEBPACK_IMPORTED_MODULE_6__["isStopPropagationForAgGrid"])(mouseEvent) || this.lastMouseDownOnDragger;
24235 if (stop) {
24236 return;
24237 }
24238 var agEvent = this.createRowEventWithSource(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_CLICKED, mouseEvent);
24239 this.beans.eventService.dispatchEvent(agEvent);
24240 // ctrlKey for windows, metaKey for Apple
24241 var multiSelectKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;
24242 var shiftKeyPressed = mouseEvent.shiftKey;
24243 // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to
24244 // handle this is broken. to observe, change the logic below and allow groups to be selected.
24245 // you will see the group gets selected, then all children get selected, then the grid unselects
24246 // the children (as the default behaviour when clicking is to unselect other rows) which results
24247 // in the group getting unselected (as all children are unselected). the correct thing would be
24248 // to change this, so that children of the selected group are not then subsequenly un-selected.
24249 var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();
24250 if (
24251 // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,
24252 // so return if it's a group row
24253 (groupSelectsChildren && this.rowNode.group) ||
24254 // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,
24255 // and we click it, the selection should not change (ie any currently selected row should stay selected)
24256 !this.rowNode.selectable ||
24257 // we also don't allow selection of pinned rows
24258 this.rowNode.rowPinned ||
24259 // if no selection method enabled, do nothing
24260 !this.beans.gridOptionsWrapper.isRowSelection() ||
24261 // if click selection suppressed, do nothing
24262 this.beans.gridOptionsWrapper.isSuppressRowClickSelection()) {
24263 return;
24264 }
24265 var multiSelectOnClick = this.beans.gridOptionsWrapper.isRowMultiSelectWithClick();
24266 var rowDeselectionWithCtrl = !this.beans.gridOptionsWrapper.isSuppressRowDeselection();
24267 if (this.rowNode.isSelected()) {
24268 if (multiSelectOnClick) {
24269 this.rowNode.setSelectedParams({ newValue: false });
24270 }
24271 else if (multiSelectKeyPressed) {
24272 if (rowDeselectionWithCtrl) {
24273 this.rowNode.setSelectedParams({ newValue: false });
24274 }
24275 }
24276 else {
24277 // selected with no multi key, must make sure anything else is unselected
24278 this.rowNode.setSelectedParams({ newValue: !shiftKeyPressed, clearSelection: !shiftKeyPressed, rangeSelect: shiftKeyPressed });
24279 }
24280 }
24281 else {
24282 var clearSelection = multiSelectOnClick ? false : !multiSelectKeyPressed;
24283 this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: shiftKeyPressed });
24284 }
24285 };
24286 RowController.prototype.setupDetailRowAutoHeight = function (eDetailGui) {
24287 var _this = this;
24288 if (!this.beans.gridOptionsWrapper.isDetailRowAutoHeight()) {
24289 return;
24290 }
24291 var checkRowSizeFunc = function () {
24292 var clientHeight = eDetailGui.clientHeight;
24293 // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur
24294 // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means
24295 // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an
24296 // empty detail grid would still have some styling around it giving at least a few pixels.
24297 if (clientHeight != null && clientHeight > 0) {
24298 // we do the update in a timeout, to make sure we are not calling from inside the grid
24299 // doing another update
24300 var updateRowHeightFunc = function () {
24301 _this.rowNode.setRowHeight(clientHeight);
24302 if (_this.beans.clientSideRowModel) {
24303 _this.beans.clientSideRowModel.onRowHeightChanged();
24304 }
24305 else if (_this.beans.serverSideRowModel) {
24306 _this.beans.serverSideRowModel.onRowHeightChanged();
24307 }
24308 };
24309 _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);
24310 }
24311 };
24312 var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);
24313 this.addDestroyFunc(resizeObserverDestroyFunc);
24314 checkRowSizeFunc();
24315 };
24316 RowController.prototype.createFullWidthParams = function (eRow, pinned) {
24317 var _this = this;
24318 var params = {
24319 fullWidth: true,
24320 data: this.rowNode.data,
24321 node: this.rowNode,
24322 value: this.rowNode.key,
24323 valueFormatted: this.rowNode.key,
24324 $scope: this.scope ? this.scope : this.parentScope,
24325 $compile: this.beans.$compile,
24326 rowIndex: this.rowNode.rowIndex,
24327 api: this.beans.gridOptionsWrapper.getApi(),
24328 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
24329 context: this.beans.gridOptionsWrapper.getContext(),
24330 // these need to be taken out, as part of 'afterAttached' now
24331 eGridCell: eRow,
24332 eParentOfValue: eRow,
24333 pinned: pinned,
24334 addRenderedRowListener: this.addEventListener.bind(this),
24335 registerRowDragger: function (rowDraggerElement, dragStartPixels, value) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value); }
24336 };
24337 return params;
24338 };
24339 RowController.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value) {
24340 if (value === void 0) { value = ''; }
24341 if (!this.isFullWidth()) {
24342 return;
24343 }
24344 var rowDragComp = new _rowDragComp__WEBPACK_IMPORTED_MODULE_13__["RowDragComp"](function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels);
24345 this.createManagedBean(rowDragComp, this.beans.context);
24346 };
24347 RowController.prototype.onUiLevelChanged = function () {
24348 var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);
24349 if (this.rowLevel != newLevel) {
24350 var classToAdd_1 = 'ag-row-level-' + newLevel;
24351 var classToRemove_1 = 'ag-row-level-' + this.rowLevel;
24352 this.allRowComps.forEach(function (rowComp) {
24353 var eGui = rowComp.getGui();
24354 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eGui, classToAdd_1);
24355 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, classToRemove_1);
24356 });
24357 }
24358 this.rowLevel = newLevel;
24359 };
24360 RowController.prototype.isFirstRowOnPage = function () {
24361 return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();
24362 };
24363 RowController.prototype.isLastRowOnPage = function () {
24364 return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();
24365 };
24366 RowController.prototype.onModelUpdated = function () {
24367 var newFirst = this.isFirstRowOnPage();
24368 var newLast = this.isLastRowOnPage();
24369 if (this.firstRowOnPage !== newFirst) {
24370 this.firstRowOnPage = newFirst;
24371 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-first', newFirst); });
24372 }
24373 if (this.lastRowOnPage !== newLast) {
24374 this.lastRowOnPage = newLast;
24375 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-last', newLast); });
24376 }
24377 };
24378 RowController.prototype.stopEditing = function (cancel) {
24379 if (cancel === void 0) { cancel = false; }
24380 this.forEachCellComp(function (renderedCell) {
24381 renderedCell.stopEditing(cancel);
24382 });
24383 if (!this.editingRow) {
24384 return;
24385 }
24386 if (!cancel) {
24387 var event_1 = this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_VALUE_CHANGED);
24388 this.beans.eventService.dispatchEvent(event_1);
24389 }
24390 this.setEditingRow(false);
24391 };
24392 RowController.prototype.setEditingRow = function (value) {
24393 this.editingRow = value;
24394 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(rowComp.getGui(), 'ag-row-editing', value); });
24395 var event = value ?
24396 this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STARTED)
24397 : this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STOPPED);
24398 this.beans.eventService.dispatchEvent(event);
24399 };
24400 RowController.prototype.startRowEditing = function (keyPress, charPress, sourceRenderedCell) {
24401 if (keyPress === void 0) { keyPress = null; }
24402 if (charPress === void 0) { charPress = null; }
24403 if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }
24404 // don't do it if already editing
24405 if (this.editingRow) {
24406 return;
24407 }
24408 this.forEachCellComp(function (renderedCell) {
24409 var cellStartedEdit = renderedCell === sourceRenderedCell;
24410 if (cellStartedEdit) {
24411 renderedCell.startEditingIfEnabled(keyPress, charPress, cellStartedEdit);
24412 }
24413 else {
24414 renderedCell.startEditingIfEnabled(null, null, cellStartedEdit);
24415 }
24416 });
24417 this.setEditingRow(true);
24418 };
24419 RowController.prototype.forEachCellComp = function (callback) {
24420 this.allRowComps.forEach(function (rc) { return rc.forEachCellComp(callback); });
24421 };
24422 RowController.prototype.postProcessClassesFromGridOptions = function () {
24423 var _this = this;
24424 var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode, this.scope);
24425 if (!cssClasses || !cssClasses.length) {
24426 return;
24427 }
24428 cssClasses.forEach(function (classStr) {
24429 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(rowComp.getGui(), classStr); });
24430 });
24431 };
24432 RowController.prototype.postProcessRowClassRules = function () {
24433 var _this = this;
24434 this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, this.scope, function (className) {
24435 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(rowComp.getGui(), className); });
24436 }, function (className) {
24437 _this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(rowComp.getGui(), className); });
24438 });
24439 };
24440 RowController.prototype.postProcessStylesFromGridOptions = function () {
24441 var rowStyles = this.processStylesFromGridOptions();
24442 this.allRowComps.forEach(function (rowComp) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addStylesToElement"])(rowComp.getGui(), rowStyles); });
24443 };
24444 RowController.prototype.getInitialRowTopStyle = function () {
24445 // print layout uses normal flow layout for row positioning
24446 if (this.printLayout) {
24447 return '';
24448 }
24449 // if sliding in, we take the old row top. otherwise we just set the current row top.
24450 var pixels = this.slideRowIn ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;
24451 var afterPaginationPixels = this.applyPaginationOffset(pixels);
24452 // we don't apply scaling if row is pinned
24453 var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);
24454 var isSuppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();
24455 return isSuppressRowTransform ? "top: " + afterScalingPixels + "px; " : "transform: translateY(" + afterScalingPixels + "px);";
24456 };
24457 RowController.prototype.getRowBusinessKey = function () {
24458 var businessKeyForNodeFunc = this.beans.gridOptionsWrapper.getBusinessKeyForNodeFunc();
24459 if (typeof businessKeyForNodeFunc !== 'function') {
24460 return;
24461 }
24462 return businessKeyForNodeFunc(this.rowNode);
24463 };
24464 RowController.prototype.getInitialRowClasses = function (pinned) {
24465 var params = {
24466 rowNode: this.rowNode,
24467 rowFocused: this.rowFocused,
24468 fadeRowIn: this.fadeRowIn,
24469 rowIsEven: this.rowIsEven,
24470 rowLevel: this.rowLevel,
24471 fullWidthRow: this.isFullWidth(),
24472 firstRowOnPage: this.isFirstRowOnPage(),
24473 lastRowOnPage: this.isLastRowOnPage(),
24474 printLayout: this.printLayout,
24475 expandable: this.rowNode.isExpandable(),
24476 scope: this.scope,
24477 pinned: pinned
24478 };
24479 return this.beans.rowCssClassCalculator.getInitialRowClasses(params);
24480 };
24481 RowController.prototype.preProcessStylesFromGridOptions = function () {
24482 var rowStyles = this.processStylesFromGridOptions();
24483 return Object(_utils_general__WEBPACK_IMPORTED_MODULE_8__["cssStyleObjectToMarkup"])(rowStyles);
24484 };
24485 RowController.prototype.processStylesFromGridOptions = function () {
24486 // part 1 - rowStyle
24487 var rowStyle = this.beans.gridOptionsWrapper.getRowStyle();
24488 if (rowStyle && typeof rowStyle === 'function') {
24489 console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');
24490 return;
24491 }
24492 // part 1 - rowStyleFunc
24493 var rowStyleFunc = this.beans.gridOptionsWrapper.getRowStyleFunc();
24494 var rowStyleFuncResult;
24495 if (rowStyleFunc) {
24496 var params = {
24497 data: this.rowNode.data,
24498 node: this.rowNode,
24499 rowIndex: this.rowNode.rowIndex,
24500 $scope: this.scope,
24501 api: this.beans.gridOptionsWrapper.getApi(),
24502 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
24503 context: this.beans.gridOptionsWrapper.getContext()
24504 };
24505 rowStyleFuncResult = rowStyleFunc(params);
24506 }
24507 return Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["assign"])({}, rowStyle, rowStyleFuncResult);
24508 };
24509 RowController.prototype.onRowSelected = function () {
24510 var _this = this;
24511 var selected = this.rowNode.isSelected();
24512 this.allRowComps.forEach(function (rowComp) {
24513 var eGui = rowComp.getGui();
24514 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaSelected"])(eGui, selected);
24515 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eGui, 'ag-row-selected', selected);
24516 _this.refreshAriaLabel(eGui, selected);
24517 });
24518 };
24519 RowController.prototype.refreshAriaLabel = function (node, selected) {
24520 if (selected && this.beans.gridOptionsWrapper.isSuppressRowDeselection()) {
24521 node.removeAttribute('aria-label');
24522 return;
24523 }
24524 var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();
24525 var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', "Press SPACE to " + (selected ? 'deselect' : 'select') + " this row.");
24526 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(node, label);
24527 };
24528 RowController.prototype.isUseAnimationFrameForCreate = function () {
24529 return this.useAnimationFrameForCreate;
24530 };
24531 RowController.prototype.addHoverFunctionality = function (eRow) {
24532 var _this = this;
24533 // because we use animation frames to do this, it's possible the row no longer exists
24534 // by the time we get to add it
24535 if (!this.active) {
24536 return;
24537 }
24538 // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel
24539 // like we do for all the other mouse events.
24540 // because of the pinning, we cannot simply add / remove the class based on the eRow. we
24541 // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a
24542 // mouse hover, it sets such in the rowNode, and then all three reflect the change as
24543 // all are listening for event on the row node.
24544 // step 1 - add listener, to set flag on row node
24545 this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });
24546 this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });
24547 // step 2 - listen for changes on row node (which any eRow can trigger)
24548 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_MOUSE_ENTER, function () {
24549 // if hover turned off, we don't add the class. we do this here so that if the application
24550 // toggles this property mid way, we remove the hover form the last row, but we stop
24551 // adding hovers from that point onwards.
24552 if (!_this.beans.gridOptionsWrapper.isSuppressRowHoverHighlight()) {
24553 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eRow, 'ag-row-hover');
24554 }
24555 });
24556 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].EVENT_MOUSE_LEAVE, function () {
24557 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eRow, 'ag-row-hover');
24558 });
24559 };
24560 // for animation, we don't want to animate entry or exit to a very far away pixel,
24561 // otherwise the row would move so fast, it would appear to disappear. so this method
24562 // moves the row closer to the viewport if it is far away, so the row slide in / out
24563 // at a speed the user can see.
24564 RowController.prototype.roundRowTopToBounds = function (rowTop) {
24565 var gridBodyCon = this.beans.controllersService.getGridBodyController();
24566 var range = gridBodyCon.getScrollFeature().getVScrollPosition();
24567 var minPixel = this.applyPaginationOffset(range.top, true) - 100;
24568 var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;
24569 return Math.min(Math.max(minPixel, rowTop), maxPixel);
24570 };
24571 RowController.prototype.getFrameworkOverrides = function () {
24572 return this.beans.frameworkOverrides;
24573 };
24574 RowController.prototype.onRowHeightChanged = function () {
24575 // check for exists first - if the user is resetting the row height, then
24576 // it will be null (or undefined) momentarily until the next time the flatten
24577 // stage is called where the row will then update again with a new height
24578 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.rowNode.rowHeight)) {
24579 var heightPx_1 = this.rowNode.rowHeight + "px";
24580 this.allRowComps.forEach(function (rowComp) { return rowComp.getGui().style.height = heightPx_1; });
24581 }
24582 };
24583 RowController.prototype.addEventListener = function (eventType, listener) {
24584 if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {
24585 eventType = _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED;
24586 console.warn('AG Grid: Since version 11, event renderedRowRemoved is now called ' + _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
24587 }
24588 _super.prototype.addEventListener.call(this, eventType, listener);
24589 };
24590 RowController.prototype.removeEventListener = function (eventType, listener) {
24591 if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {
24592 eventType = _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED;
24593 console.warn('AG Grid: Since version 11, event renderedRowRemoved and rowRemoved is now called ' + _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
24594 }
24595 _super.prototype.removeEventListener.call(this, eventType, listener);
24596 };
24597 // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.
24598 RowController.prototype.destroyFirstPass = function () {
24599 this.active = false;
24600 // why do we have this method? shouldn't everything below be added as a destroy func beside
24601 // the corresponding create logic?
24602 this.setupRemoveAnimation();
24603 var event = this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
24604 this.dispatchEvent(event);
24605 this.beans.eventService.dispatchEvent(event);
24606 _super.prototype.destroy.call(this);
24607 };
24608 RowController.prototype.setupRemoveAnimation = function () {
24609 var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;
24610 if (rowStillVisibleJustNotInViewport) {
24611 // if the row is not rendered, but in viewport, it means it has moved,
24612 // so we animate the row out. if the new location is very far away,
24613 // the animation will be so fast the row will look like it's just disappeared,
24614 // so instead we animate to a position just outside the viewport.
24615 var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);
24616 this.setRowTop(rowTop);
24617 }
24618 else {
24619 this.allRowComps.forEach(function (rowComp) {
24620 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(rowComp.getGui(), 'ag-opacity-zero');
24621 });
24622 }
24623 };
24624 RowController.prototype.destroySecondPass = function () {
24625 this.allRowComps.forEach(function (c) { return c.destroy(); });
24626 this.allRowComps.length = 0;
24627 };
24628 RowController.prototype.onCellFocusChanged = function () {
24629 var rowFocused = this.beans.focusController.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);
24630 if (rowFocused !== this.rowFocused) {
24631 this.allRowComps.forEach(function (rowComp) {
24632 var eRow = rowComp.getGui();
24633 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-focus', rowFocused);
24634 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-no-focus', !rowFocused);
24635 });
24636 this.rowFocused = rowFocused;
24637 }
24638 // if we are editing, then moving the focus out of a row will stop editing
24639 if (!rowFocused && this.editingRow) {
24640 this.stopEditing(false);
24641 }
24642 };
24643 RowController.prototype.onPaginationChanged = function () {
24644 var currentPage = this.beans.paginationProxy.getCurrentPage();
24645 // it is possible this row is in the new page, but the page number has changed, which means
24646 // it needs to reposition itself relative to the new page
24647 if (this.paginationPage !== currentPage) {
24648 this.paginationPage = currentPage;
24649 this.onTopChanged();
24650 }
24651 };
24652 RowController.prototype.onTopChanged = function () {
24653 this.setRowTop(this.rowNode.rowTop);
24654 };
24655 RowController.prototype.onPaginationPixelOffsetChanged = function () {
24656 // the pixel offset is used when calculating rowTop to set on the row DIV
24657 this.onTopChanged();
24658 };
24659 // applies pagination offset, eg if on second page, and page height is 500px, then removes
24660 // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.
24661 // reverse will take the offset away rather than add.
24662 RowController.prototype.applyPaginationOffset = function (topPx, reverse) {
24663 if (reverse === void 0) { reverse = false; }
24664 if (this.rowNode.isRowPinned()) {
24665 return topPx;
24666 }
24667 var pixelOffset = this.beans.paginationProxy.getPixelOffset();
24668 var multiplier = reverse ? 1 : -1;
24669 return topPx + (pixelOffset * multiplier);
24670 };
24671 RowController.prototype.setRowTop = function (pixels) {
24672 // print layout uses normal flow layout for row positioning
24673 if (this.printLayout) {
24674 return;
24675 }
24676 // need to make sure rowTop is not null, as this can happen if the node was once
24677 // visible (ie parent group was expanded) but is now not visible
24678 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(pixels)) {
24679 var afterPaginationPixels = this.applyPaginationOffset(pixels);
24680 var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);
24681 var topPx_1 = afterScalingPixels + "px";
24682 var suppressRowTransform_1 = this.beans.gridOptionsWrapper.isSuppressRowTransform();
24683 this.allRowComps.forEach(function (rowComp) {
24684 var eGui = rowComp.getGui();
24685 if (suppressRowTransform_1) {
24686 eGui.style.top = topPx_1;
24687 }
24688 else {
24689 eGui.style.transform = "translateY(" + topPx_1 + ")";
24690 }
24691 });
24692 }
24693 };
24694 RowController.prototype.getRowNode = function () {
24695 return this.rowNode;
24696 };
24697 RowController.prototype.getRenderedCellForColumn = function (column) {
24698 var cellComps = this.allRowComps.map(function (rc) { return rc.getCellComp(column.getColId()); });
24699 var cellComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(cellComps, function (c) { return !!c; });
24700 if (cellComp) {
24701 return cellComp;
24702 }
24703 var spannedCellComps = this.allRowComps.map(function (rc) { return rc.getCellCompSpanned(column); });
24704 cellComp = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["find"])(spannedCellComps, function (c) { return !!c; });
24705 return cellComp || null;
24706 };
24707 RowController.prototype.onRowIndexChanged = function () {
24708 // we only bother updating if the rowIndex is present. if it is not present, it means this row
24709 // is child of a group node, and the group node was closed, it's the only way to have no row index.
24710 // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!
24711 if (this.rowNode.rowIndex != null) {
24712 this.onCellFocusChanged();
24713 this.updateRowIndexes();
24714 }
24715 };
24716 RowController.prototype.updateRowIndexes = function () {
24717 var _this = this;
24718 var rowIndexStr = this.rowNode.getRowIndexString();
24719 var rowIsEven = this.rowNode.rowIndex % 2 === 0;
24720 var rowIsEvenChanged = this.rowIsEven !== rowIsEven;
24721 var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();
24722 if (rowIsEvenChanged) {
24723 this.rowIsEven = rowIsEven;
24724 }
24725 this.allRowComps.forEach(function (rowComp) {
24726 var eRow = rowComp.getGui();
24727 eRow.setAttribute('row-index', rowIndexStr);
24728 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaRowIndex"])(eRow, headerRowCount + _this.rowNode.rowIndex + 1);
24729 if (!rowIsEvenChanged) {
24730 return;
24731 }
24732 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-even', rowIsEven);
24733 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(eRow, 'ag-row-odd', !rowIsEven);
24734 });
24735 };
24736 // returns the pinned left container, either the normal one, or the embedded full with one if exists
24737 RowController.prototype.getPinnedLeftRowElement = function () {
24738 return this.leftRowComp ? this.leftRowComp.getGui() : undefined;
24739 };
24740 // returns the pinned right container, either the normal one, or the embedded full with one if exists
24741 RowController.prototype.getPinnedRightRowElement = function () {
24742 return this.rightRowComp ? this.rightRowComp.getGui() : undefined;
24743 };
24744 // returns the body container, either the normal one, or the embedded full with one if exists
24745 RowController.prototype.getBodyRowElement = function () {
24746 return this.centerRowComp ? this.centerRowComp.getGui() : undefined;
24747 };
24748 // returns the full width container
24749 RowController.prototype.getFullWidthRowElement = function () {
24750 return this.fullWidthRowComp ? this.fullWidthRowComp.getGui() : undefined;
24751 };
24752 RowController.DOM_DATA_KEY_RENDERED_ROW = 'renderedRow';
24753 return RowController;
24754}(_context_beanStub__WEBPACK_IMPORTED_MODULE_11__["BeanStub"]));
24755
24756
24757
24758/***/ }),
24759/* 106 */
24760/***/ (function(module, __webpack_exports__, __webpack_require__) {
24761
24762"use strict";
24763__webpack_require__.r(__webpack_exports__);
24764/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AngularRowUtils", function() { return AngularRowUtils; });
24765/**
24766 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
24767 * @version v25.3.0
24768 * @link http://www.ag-grid.com/
24769 * @license MIT
24770 */
24771var __assign = (undefined && undefined.__assign) || function () {
24772 __assign = Object.assign || function(t) {
24773 for (var s, i = 1, n = arguments.length; i < n; i++) {
24774 s = arguments[i];
24775 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24776 t[p] = s[p];
24777 }
24778 return t;
24779 };
24780 return __assign.apply(this, arguments);
24781};
24782var AngularRowUtils = /** @class */ (function () {
24783 function AngularRowUtils() {
24784 }
24785 AngularRowUtils.createChildScopeOrNull = function (rowNode, parentScope, gridOptionsWrapper) {
24786 var isAngularCompileRows = gridOptionsWrapper.isAngularCompileRows();
24787 if (!isAngularCompileRows) {
24788 return null;
24789 }
24790 var newChildScope = parentScope.$new();
24791 newChildScope.data = __assign({}, rowNode.data);
24792 newChildScope.rowNode = rowNode;
24793 newChildScope.context = gridOptionsWrapper.getContext();
24794 var destroyFunc = function () {
24795 newChildScope.$destroy();
24796 newChildScope.data = null;
24797 newChildScope.rowNode = null;
24798 newChildScope.context = null;
24799 };
24800 return {
24801 scope: newChildScope,
24802 scopeDestroyFunc: destroyFunc
24803 };
24804 };
24805 return AngularRowUtils;
24806}());
24807
24808
24809
24810/***/ }),
24811/* 107 */
24812/***/ (function(module, __webpack_exports__, __webpack_require__) {
24813
24814"use strict";
24815__webpack_require__.r(__webpack_exports__);
24816/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return CellComp; });
24817/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
24818/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
24819/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
24820/* harmony import */ var _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74);
24821/* harmony import */ var _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(108);
24822/* harmony import */ var _row_rowDragComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77);
24823/* harmony import */ var _cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(109);
24824/* harmony import */ var _dndSourceComp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(110);
24825/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(58);
24826/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(47);
24827/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13);
24828/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(26);
24829/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(7);
24830/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(33);
24831/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(14);
24832/* harmony import */ var _utils_general__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(46);
24833/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(21);
24834/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(51);
24835/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(34);
24836/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(15);
24837/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(60);
24838/**
24839 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
24840 * @version v25.3.0
24841 * @link http://www.ag-grid.com/
24842 * @license MIT
24843 */
24844var __extends = (undefined && undefined.__extends) || (function () {
24845 var extendStatics = function (d, b) {
24846 extendStatics = Object.setPrototypeOf ||
24847 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
24848 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
24849 return extendStatics(d, b);
24850 };
24851 return function (d, b) {
24852 extendStatics(d, b);
24853 function __() { this.constructor = d; }
24854 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
24855 };
24856})();
24857var __assign = (undefined && undefined.__assign) || function () {
24858 __assign = Object.assign || function(t) {
24859 for (var s, i = 1, n = arguments.length; i < n; i++) {
24860 s = arguments[i];
24861 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
24862 t[p] = s[p];
24863 }
24864 return t;
24865 };
24866 return __assign.apply(this, arguments);
24867};
24868
24869
24870
24871
24872
24873
24874
24875
24876
24877
24878
24879
24880
24881
24882
24883
24884
24885
24886
24887
24888
24889var CSS_CELL = 'ag-cell';
24890var CSS_CELL_VALUE = 'ag-cell-value';
24891var CSS_AUTO_HEIGHT = 'ag-cell-auto-height';
24892var CSS_RANGE_TOP = 'ag-cell-range-top';
24893var CSS_RANGE_RIGHT = 'ag-cell-range-right';
24894var CSS_RANGE_BOTTOM = 'ag-cell-range-bottom';
24895var CSS_RANGE_LEFT = 'ag-cell-range-left';
24896var CSS_CELL_FOCUS = 'ag-cell-focus';
24897var CSS_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';
24898var CSS_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';
24899var CSS_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';
24900var CSS_INLINE_EDITING = 'ag-cell-inline-editing';
24901var CSS_POPUP_EDITING = 'ag-cell-popup-editing';
24902var CSS_RANGE_SELECTED = 'ag-cell-range-selected';
24903var CSS_COLUMN_HOVER = 'ag-column-hover';
24904var CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';
24905var CSS_RANGE_CHART = 'ag-cell-range-chart';
24906var CSS_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';
24907var CSS_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';
24908var CSS_RANGE_HANDLE = 'ag-cell-range-handle';
24909var CellComp = /** @class */ (function (_super) {
24910 __extends(CellComp, _super);
24911 function CellComp(scope, beans, column, rowNode, rowComp, autoHeightCell, printLayout, eRow, editingRow) {
24912 var _this = _super.call(this) || this;
24913 _this.hasChartRange = false;
24914 _this.editingCell = false;
24915 _this.suppressRefreshCell = false;
24916 _this.tooltipFeatureEnabled = false;
24917 _this.scope = null;
24918 // every time we go into edit mode, or back again, this gets incremented.
24919 // it's the components way of dealing with the async nature of framework components,
24920 // so if a framework component takes a while to be created, we know if the object
24921 // is still relevant when creating is finished. eg we could click edit / un-edit 20
24922 // times before the first React edit component comes back - we should discard
24923 // the first 19.
24924 _this.cellEditorVersion = 0;
24925 _this.cellRendererVersion = 0;
24926 _this.scope = scope;
24927 _this.beans = beans;
24928 _this.column = column;
24929 _this.rowNode = rowNode;
24930 _this.rowComp = rowComp;
24931 _this.autoHeightCell = autoHeightCell;
24932 _this.printLayout = printLayout;
24933 _this.eRow = eRow;
24934 _this.createGridCellVo();
24935 _this.rangeSelectionEnabled = _this.beans.rangeController && beans.gridOptionsWrapper.isEnableRangeSelection();
24936 _this.cellFocused = _this.beans.focusController.isCellFocused(_this.cellPosition);
24937 _this.firstRightPinned = _this.column.isFirstRightPinned();
24938 _this.lastLeftPinned = _this.column.isLastLeftPinned();
24939 if (_this.rangeSelectionEnabled && _this.beans.rangeController) {
24940 var rangeController = _this.beans.rangeController;
24941 _this.rangeCount = rangeController.getCellRangeCount(_this.cellPosition);
24942 _this.hasChartRange = _this.getHasChartRange();
24943 }
24944 _this.getValueAndFormat();
24945 _this.setUsingWrapper();
24946 _this.chooseCellRenderer();
24947 _this.setupColSpan();
24948 _this.rowSpan = _this.column.getRowSpan(_this.rowNode);
24949 _this.setTemplate(_this.getCreateTemplate());
24950 _this.afterAttached();
24951 // if we are editing the row, then the cell needs to turn
24952 // into edit mode
24953 if (editingRow) {
24954 _this.startEditingIfEnabled();
24955 }
24956 return _this;
24957 }
24958 CellComp.prototype.getCreateTemplate = function () {
24959 var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? ' unselectable="on"' : '';
24960 var templateParts = [];
24961 var col = this.column;
24962 var width = this.getCellWidth();
24963 var left = this.modifyLeftForPrintLayout(this.getCellLeft());
24964 var valueToRender = this.getInitialValueToRender();
24965 var valueSanitised = Object(_utils_object__WEBPACK_IMPORTED_MODULE_10__["get"])(this.column, 'colDef.template', null) ? valueToRender : Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(valueToRender);
24966 this.tooltip = this.getToolTip();
24967 var tooltipSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(this.tooltip);
24968 var colIdSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(col.getId());
24969 var stylesFromColDef = this.preProcessStylesFromColDef();
24970 var cssClasses = this.getInitialCssClasses();
24971 var stylesForRowSpanning = this.getStylesForRowSpanning();
24972 var colIdxSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(this.beans.columnController.getAriaColumnIndex(this.column).toString());
24973 templateParts.push("<div");
24974 templateParts.push(" tabindex=\"-1\"");
24975 templateParts.push("" + unselectable); // THIS IS FOR IE ONLY so text selection doesn't bubble outside of the grid
24976 templateParts.push(" role=\"gridcell\"");
24977 templateParts.push(" aria-colindex=\"" + colIdxSanitised + "\"");
24978 templateParts.push(" comp-id=\"" + this.getCompId() + "\" ");
24979 templateParts.push(" col-id=\"" + colIdSanitised + "\"");
24980 templateParts.push(" class=\"" + Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(cssClasses.join(' ')) + "\"");
24981 if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips() && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(tooltipSanitised)) {
24982 templateParts.push(" title=\"" + tooltipSanitised + "\"");
24983 }
24984 if (this.rangeSelectionEnabled) {
24985 templateParts.push(" aria-selected=\"" + (this.rangeCount ? 'true' : 'false') + "\"");
24986 }
24987 templateParts.push(" style=\"width: " + Number(width) + "px; left: " + Number(left) + "px; " + Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(stylesFromColDef) + " " + Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(stylesForRowSpanning) + "\">");
24988 if (this.usingWrapper) {
24989 templateParts.push(this.getCellWrapperString(valueSanitised));
24990 }
24991 else if (valueSanitised != null) {
24992 templateParts.push(valueSanitised);
24993 }
24994 templateParts.push("</div>");
24995 return templateParts.join('');
24996 };
24997 CellComp.prototype.getCellWrapperString = function (value) {
24998 if (value === void 0) { value = ''; }
24999 var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? ' unselectable="on"' : '';
25000 var wrapper = /* html */ "<div ref=\"eCellWrapper\" class=\"ag-cell-wrapper\" role=\"presentation\">\n <span ref=\"eCellValue\" role=\"presentation\" class=\"" + CSS_CELL_VALUE + "\"" + unselectable + ">\n " + (value != null ? value : '') + "\n </span>\n </div>";
25001 return wrapper;
25002 };
25003 CellComp.prototype.getStylesForRowSpanning = function () {
25004 if (this.rowSpan === 1) {
25005 return '';
25006 }
25007 var singleRowHeight = this.beans.gridOptionsWrapper.getRowHeightAsNumber();
25008 var totalRowHeight = singleRowHeight * this.rowSpan;
25009 return "height: " + totalRowHeight + "px; z-index: 1;";
25010 };
25011 CellComp.prototype.afterAttached = function () {
25012 // all of these have dependencies on the eGui, so only do them after eGui is set
25013 this.addDomData();
25014 this.populateTemplate();
25015 this.createCellRendererInstance(true);
25016 this.angular1Compile();
25017 this.refreshHandle();
25018 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(this.tooltip)) {
25019 this.createTooltipFeatureIfNeeded();
25020 }
25021 };
25022 CellComp.prototype.createTooltipFeatureIfNeeded = function () {
25023 if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips() ||
25024 this.tooltipFeatureEnabled) {
25025 return;
25026 }
25027 this.createManagedBean(new _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__["TooltipFeature"](this), this.beans.context);
25028 this.tooltipFeatureEnabled = true;
25029 };
25030 CellComp.prototype.onColumnHover = function () {
25031 var isHovered = this.beans.columnHoverService.isHovered(this.column);
25032 this.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);
25033 };
25034 CellComp.prototype.onCellChanged = function (event) {
25035 var eventImpactsThisCell = event.column === this.column;
25036 if (eventImpactsThisCell) {
25037 this.refreshCell({});
25038 }
25039 };
25040 CellComp.prototype.getCellLeft = function () {
25041 var mostLeftCol;
25042 if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {
25043 mostLeftCol = Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["last"])(this.colsSpanning);
25044 }
25045 else {
25046 mostLeftCol = this.column;
25047 }
25048 return mostLeftCol.getLeft();
25049 };
25050 CellComp.prototype.getCellWidth = function () {
25051 if (!this.colsSpanning) {
25052 return this.column.getActualWidth();
25053 }
25054 return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);
25055 };
25056 CellComp.prototype.onFlashCells = function (event) {
25057 var cellId = this.beans.cellPositionUtils.createId(this.cellPosition);
25058 var shouldFlash = event.cells[cellId];
25059 if (shouldFlash) {
25060 this.animateCell('highlight');
25061 }
25062 };
25063 CellComp.prototype.setupColSpan = function () {
25064 // if no col span is active, then we don't set it up, as it would be wasteful of CPU
25065 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.getComponentHolder().colSpan)) {
25066 return;
25067 }
25068 // because we are col spanning, a reorder of the cols can change what cols we are spanning over
25069 this.addManagedListener(this.beans.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));
25070 // because we are spanning over multiple cols, we check for width any time any cols width changes.
25071 // this is expensive - really we should be explicitly checking only the cols we are spanning over
25072 // instead of every col, however it would be tricky code to track the cols we are spanning over, so
25073 // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.
25074 this.addManagedListener(this.beans.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));
25075 this.colsSpanning = this.getColSpanningList();
25076 };
25077 CellComp.prototype.getColSpanningList = function () {
25078 var colSpan = this.column.getColSpan(this.rowNode);
25079 var colsSpanning = [];
25080 // if just one col, the col span is just the column we are in
25081 if (colSpan === 1) {
25082 colsSpanning.push(this.column);
25083 }
25084 else {
25085 var pointer = this.column;
25086 var pinned = this.column.getPinned();
25087 for (var i = 0; pointer && i < colSpan; i++) {
25088 colsSpanning.push(pointer);
25089 pointer = this.beans.columnController.getDisplayedColAfter(pointer);
25090 if (!pointer || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(pointer)) {
25091 break;
25092 }
25093 // we do not allow col spanning to span outside of pinned areas
25094 if (pinned !== pointer.getPinned()) {
25095 break;
25096 }
25097 }
25098 }
25099 return colsSpanning;
25100 };
25101 CellComp.prototype.onDisplayColumnsChanged = function () {
25102 var colsSpanning = this.getColSpanningList();
25103 if (!Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["areEqual"])(this.colsSpanning, colsSpanning)) {
25104 this.colsSpanning = colsSpanning;
25105 this.onWidthChanged();
25106 this.onLeftChanged(); // left changes when doing RTL
25107 }
25108 };
25109 CellComp.prototype.refreshAriaIndex = function () {
25110 var colIdx = this.beans.columnController.getAriaColumnIndex(this.column);
25111 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaColIndex"])(this.getGui(), colIdx);
25112 };
25113 CellComp.prototype.getInitialCssClasses = function () {
25114 var cssClasses = [CSS_CELL, CSS_NOT_INLINE_EDITING];
25115 // if we are putting the cell into a dummy container, to work out it's height,
25116 // then we don't put the height css in, as we want cell to fit height in that case.
25117 if (!this.autoHeightCell) {
25118 cssClasses.push(CSS_AUTO_HEIGHT);
25119 }
25120 var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();
25121 if (doingFocusCss && this.cellFocused) {
25122 // otherwise the class depends on the focus state
25123 cssClasses.push(CSS_CELL_FOCUS);
25124 }
25125 if (this.firstRightPinned) {
25126 cssClasses.push(CSS_FIRST_RIGHT_PINNED);
25127 }
25128 if (this.lastLeftPinned) {
25129 cssClasses.push(CSS_LAST_LEFT_PINNED);
25130 }
25131 if (this.beans.columnHoverService.isHovered(this.column)) {
25132 cssClasses.push(CSS_COLUMN_HOVER);
25133 }
25134 Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["pushAll"])(cssClasses, this.preProcessClassesFromColDef());
25135 Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["pushAll"])(cssClasses, this.preProcessCellClassRules());
25136 Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["pushAll"])(cssClasses, this.getInitialRangeClasses());
25137 // if using the wrapper, this class goes on the wrapper instead
25138 if (!this.usingWrapper) {
25139 cssClasses.push(CSS_CELL_VALUE);
25140 }
25141 this.wrapText = this.column.getColDef().wrapText == true;
25142 if (this.wrapText) {
25143 cssClasses.push(CSS_CELL_WRAP_TEXT);
25144 }
25145 return cssClasses;
25146 };
25147 CellComp.prototype.getInitialValueToRender = function () {
25148 // if using a cellRenderer, then render the html from the cell renderer if it exists
25149 if (this.usingCellRenderer) {
25150 if (typeof this.cellRendererGui === 'string') {
25151 return this.cellRendererGui;
25152 }
25153 return '';
25154 }
25155 var colDef = this.getComponentHolder();
25156 if (colDef.template) {
25157 // template is really only used for angular 1 - as people using ng1 are used to providing templates with
25158 // bindings in it. in ng2, people will hopefully want to provide components, not templates.
25159 return colDef.template;
25160 }
25161 if (colDef.templateUrl) {
25162 // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.
25163 // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would
25164 // not do these, but would follow a pattern that was friendly towards components, not templates.
25165 var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));
25166 return template || '';
25167 }
25168 return this.getValueToUse();
25169 };
25170 CellComp.prototype.getRenderedRow = function () {
25171 return this.rowComp;
25172 };
25173 CellComp.prototype.isSuppressNavigable = function () {
25174 return this.column.isSuppressNavigable(this.rowNode);
25175 };
25176 CellComp.prototype.getCellRenderer = function () {
25177 return this.cellRenderer;
25178 };
25179 CellComp.prototype.getCellEditor = function () {
25180 return this.cellEditor;
25181 };
25182 CellComp.prototype.onNewColumnsLoaded = function () {
25183 this.postProcessWrapText();
25184 this.postProcessCellClassRules();
25185 };
25186 CellComp.prototype.postProcessWrapText = function () {
25187 var newValue = this.column.getColDef().wrapText == true;
25188 if (newValue !== this.wrapText) {
25189 this.wrapText = newValue;
25190 this.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, this.wrapText);
25191 }
25192 };
25193 // + stop editing {forceRefresh: true, suppressFlash: true}
25194 // + event cellChanged {}
25195 // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything
25196 // + rowComp: event dataChanged {animate: update, newData: !update}
25197 // + rowComp: api refreshCells() {animate: true/false}
25198 // + rowRenderer: api softRefreshView() {}
25199 CellComp.prototype.refreshCell = function (params) {
25200 // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly
25201 if (this.suppressRefreshCell || this.editingCell) {
25202 return;
25203 }
25204 var colDef = this.getComponentHolder();
25205 var newData = params && params.newData;
25206 var suppressFlash = (params && params.suppressFlash) || colDef.suppressCellFlash;
25207 // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the
25208 // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe
25209 // printing the current time (which would be silly)???. Generally speaking
25210 // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's
25211 // best always refresh and take the performance hit rather than never refresh and users complaining in support
25212 // that cells are not updating.
25213 var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;
25214 var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;
25215 var oldValue = this.value;
25216 // get latest value without invoking the value formatter as we may not be updating the cell
25217 this.value = this.getValue();
25218 // for simple values only (not objects), see if the value is the same, and if it is, skip the refresh.
25219 // when never allow skipping after an edit, as after editing, we need to put the GUI back to the way
25220 // if was before the edit.
25221 var valuesDifferent = !this.valuesAreEqual(oldValue, this.value);
25222 var dataNeedsUpdating = forceRefresh || valuesDifferent;
25223 if (dataNeedsUpdating) {
25224 // now invoke the value formatter as we are going to update cell
25225 this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);
25226 // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.
25227 // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')
25228 // then we are not showing a movement in the stock price, rather we are showing different stock.
25229 var cellRendererRefreshed = newData ? false : this.attemptCellRendererRefresh();
25230 // we do the replace if not doing refresh, or if refresh was unsuccessful.
25231 // the refresh can be unsuccessful if we are using a framework (eg ng2 or react) and the framework
25232 // wrapper has the refresh method, but the underlying component doesn't
25233 if (!cellRendererRefreshed) {
25234 this.replaceContentsAfterRefresh();
25235 }
25236 // we don't want to flash the cells when processing a filter change, as otherwise the UI would
25237 // be to busy. see comment in FilterManager with regards processingFilterChange
25238 var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();
25239 var flashCell = !suppressFlash && !processingFilterChange &&
25240 (this.beans.gridOptionsWrapper.isEnableCellChangeFlash() || colDef.enableCellChangeFlash);
25241 if (flashCell) {
25242 this.flashCell();
25243 }
25244 // need to check rules. note, we ignore colDef classes and styles, these are assumed to be static
25245 this.postProcessStylesFromColDef();
25246 this.postProcessClassesFromColDef();
25247 }
25248 // we can't readily determine if the data in an angularjs template has changed, so here we just update
25249 // and recompile (if applicable)
25250 this.updateAngular1ScopeAndCompile();
25251 this.refreshToolTip();
25252 // we do cellClassRules even if the value has not changed, so that users who have rules that
25253 // look at other parts of the row (where the other part of the row might of changed) will work.
25254 this.postProcessCellClassRules();
25255 };
25256 // user can also call this via API
25257 CellComp.prototype.flashCell = function (delays) {
25258 var flashDelay = delays && delays.flashDelay;
25259 var fadeDelay = delays && delays.fadeDelay;
25260 this.animateCell('data-changed', flashDelay, fadeDelay);
25261 };
25262 CellComp.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {
25263 var _this = this;
25264 var fullName = "ag-cell-" + cssName;
25265 var animationFullName = "ag-cell-" + cssName + "-animation";
25266 var element = this.getGui();
25267 var gridOptionsWrapper = this.beans.gridOptionsWrapper;
25268 if (!flashDelay) {
25269 flashDelay = gridOptionsWrapper.getCellFlashDelay();
25270 }
25271 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(fadeDelay)) {
25272 fadeDelay = gridOptionsWrapper.getCellFadeDelay();
25273 }
25274 // we want to highlight the cells, without any animation
25275 this.addCssClass(fullName);
25276 this.removeCssClass(animationFullName);
25277 // then once that is applied, we remove the highlight with animation
25278 window.setTimeout(function () {
25279 _this.removeCssClass(fullName);
25280 _this.addCssClass(animationFullName);
25281 element.style.transition = "background-color " + fadeDelay + "ms";
25282 window.setTimeout(function () {
25283 // and then to leave things as we got them, we remove the animation
25284 _this.removeCssClass(animationFullName);
25285 element.style.removeProperty('transition');
25286 }, fadeDelay);
25287 }, flashDelay);
25288 };
25289 CellComp.prototype.replaceContentsAfterRefresh = function () {
25290 this.setUsingWrapper();
25291 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["clearElement"])(this.eCellValue);
25292 // remove old renderer component if it exists
25293 this.cellRenderer = this.beans.context.destroyBean(this.cellRenderer);
25294 this.cellRendererGui = null;
25295 // populate
25296 this.putDataIntoCellAfterRefresh();
25297 this.updateAngular1ScopeAndCompile();
25298 };
25299 CellComp.prototype.updateAngular1ScopeAndCompile = function () {
25300 if (this.beans.gridOptionsWrapper.isAngularCompileRows() && this.scope) {
25301 this.scope.data = __assign({}, this.rowNode.data);
25302 this.angular1Compile();
25303 }
25304 };
25305 CellComp.prototype.angular1Compile = function () {
25306 // if angular compiling, then need to also compile the cell again (angular compiling sucks, please wait...)
25307 if (this.beans.gridOptionsWrapper.isAngularCompileRows()) {
25308 var eGui = this.getGui();
25309 // only compile the node if it hasn't already been done
25310 // this prevents "orphaned" node leaks
25311 if (!eGui.classList.contains('ng-scope') || eGui.childElementCount === 0) {
25312 var compiledElement_1 = this.beans.$compile(eGui)(this.scope);
25313 this.addDestroyFunc(function () { return compiledElement_1.remove(); });
25314 }
25315 }
25316 };
25317 CellComp.prototype.postProcessStylesFromColDef = function () {
25318 var stylesToUse = this.processStylesFromColDef();
25319 if (stylesToUse) {
25320 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addStylesToElement"])(this.getGui(), stylesToUse);
25321 }
25322 };
25323 CellComp.prototype.preProcessStylesFromColDef = function () {
25324 return Object(_utils_general__WEBPACK_IMPORTED_MODULE_15__["cssStyleObjectToMarkup"])(this.processStylesFromColDef());
25325 };
25326 CellComp.prototype.processStylesFromColDef = function () {
25327 var colDef = this.getComponentHolder();
25328 if (colDef.cellStyle) {
25329 var cssToUse = void 0;
25330 if (typeof colDef.cellStyle === 'function') {
25331 var cellStyleParams = {
25332 column: this.column,
25333 value: this.value,
25334 colDef: colDef,
25335 data: this.rowNode.data,
25336 node: this.rowNode,
25337 rowIndex: this.rowNode.rowIndex,
25338 $scope: this.scope,
25339 api: this.beans.gridOptionsWrapper.getApi(),
25340 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25341 context: this.beans.gridOptionsWrapper.getContext(),
25342 };
25343 var cellStyleFunc = colDef.cellStyle;
25344 cssToUse = cellStyleFunc(cellStyleParams);
25345 }
25346 else {
25347 cssToUse = colDef.cellStyle;
25348 }
25349 return cssToUse;
25350 }
25351 };
25352 CellComp.prototype.postProcessClassesFromColDef = function () {
25353 var _this = this;
25354 this.processClassesFromColDef(function (className) { return _this.addCssClass(className); });
25355 };
25356 CellComp.prototype.preProcessClassesFromColDef = function () {
25357 var res = [];
25358 this.processClassesFromColDef(function (className) { return res.push(className); });
25359 return res;
25360 };
25361 CellComp.prototype.processClassesFromColDef = function (onApplicableClass) {
25362 var colDef = this.getComponentHolder();
25363 var cellClassParams = {
25364 value: this.value,
25365 data: this.rowNode.data,
25366 node: this.rowNode,
25367 colDef: colDef,
25368 rowIndex: this.rowNode.rowIndex,
25369 $scope: this.scope,
25370 api: this.beans.gridOptionsWrapper.getApi(),
25371 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25372 context: this.beans.gridOptionsWrapper.getContext()
25373 };
25374 this.beans.stylingService.processStaticCellClasses(colDef, cellClassParams, onApplicableClass);
25375 };
25376 CellComp.prototype.putDataIntoCellAfterRefresh = function () {
25377 // template gets preference, then cellRenderer, then do it ourselves
25378 var colDef = this.getComponentHolder();
25379 if (colDef.template) {
25380 // template is really only used for angular 1 - as people using ng1 are used to providing templates with
25381 // bindings in it. in ng2, people will hopefully want to provide components, not templates.
25382 this.eCellValue.innerHTML = colDef.template;
25383 }
25384 else if (colDef.templateUrl) {
25385 // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.
25386 // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would
25387 // not do these, but would follow a pattern that was friendly towards components, not templates.
25388 var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));
25389 if (template) {
25390 this.eCellValue.innerHTML = template;
25391 }
25392 }
25393 else {
25394 // we can switch from using a cell renderer back to the default if a user
25395 // is using cellRendererSelect
25396 this.chooseCellRenderer();
25397 if (this.usingCellRenderer) {
25398 this.createCellRendererInstance();
25399 }
25400 else {
25401 var valueToUse = this.getValueToUse();
25402 if (valueToUse != null) {
25403 this.eCellValue.innerHTML = Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(valueToUse) || '';
25404 }
25405 }
25406 }
25407 };
25408 CellComp.prototype.attemptCellRendererRefresh = function () {
25409 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellRenderer) || !this.cellRenderer || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellRenderer.refresh)) {
25410 return false;
25411 }
25412 // if the cell renderer has a refresh method, we call this instead of doing a refresh
25413 var params = this.createCellRendererParams();
25414 // take any custom params off of the user
25415 var finalParams = this.beans.userComponentFactory.createFinalParams(this.getComponentHolder(), this.cellRendererType, params);
25416 var result = this.cellRenderer.refresh(finalParams);
25417 // NOTE on undefined: previous version of the cellRenderer.refresh() interface
25418 // returned nothing, if the method existed, we assumed it refreshed. so for
25419 // backwards compatibility, we assume if method exists and returns nothing,
25420 // that it was successful.
25421 return result === true || result === undefined;
25422 };
25423 CellComp.prototype.refreshToolTip = function () {
25424 var newTooltip = this.getToolTip();
25425 if (this.tooltip === newTooltip) {
25426 return;
25427 }
25428 this.createTooltipFeatureIfNeeded();
25429 var hasNewTooltip = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(newTooltip);
25430 if (hasNewTooltip && this.tooltip === newTooltip.toString()) {
25431 return;
25432 }
25433 this.tooltip = newTooltip;
25434 if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips()) {
25435 if (hasNewTooltip) {
25436 this.eCellValue.setAttribute('title', this.tooltip);
25437 }
25438 else {
25439 this.eCellValue.removeAttribute('title');
25440 }
25441 }
25442 };
25443 CellComp.prototype.valuesAreEqual = function (val1, val2) {
25444 // if the user provided an equals method, use that, otherwise do simple comparison
25445 var colDef = this.getComponentHolder();
25446 var equalsMethod = colDef ? colDef.equals : null;
25447 return equalsMethod ? equalsMethod(val1, val2) : val1 === val2;
25448 };
25449 CellComp.prototype.getToolTip = function () {
25450 var colDef = this.getComponentHolder();
25451 var data = this.rowNode.data;
25452 if (colDef.tooltipField && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(data)) {
25453 return Object(_utils_object__WEBPACK_IMPORTED_MODULE_10__["getValueUsingField"])(data, colDef.tooltipField, this.column.isTooltipFieldContainsDots());
25454 }
25455 var valueGetter = colDef.tooltipValueGetter;
25456 if (valueGetter) {
25457 return valueGetter(__assign(__assign({ api: this.beans.gridOptionsWrapper.getApi(), columnApi: this.beans.gridOptionsWrapper.getColumnApi(), context: this.beans.gridOptionsWrapper.getContext() }, this.getTooltipParams()), { value: this.value }));
25458 }
25459 return null;
25460 };
25461 CellComp.prototype.getTooltipParams = function () {
25462 return {
25463 location: 'cell',
25464 colDef: this.getComponentHolder(),
25465 column: this.getColumn(),
25466 rowIndex: this.cellPosition.rowIndex,
25467 node: this.rowNode,
25468 data: this.rowNode.data,
25469 value: this.getTooltipText(),
25470 valueFormatted: this.valueFormatted,
25471 };
25472 };
25473 CellComp.prototype.getTooltipText = function (escape) {
25474 if (escape === void 0) { escape = true; }
25475 return escape ? Object(_utils_string__WEBPACK_IMPORTED_MODULE_11__["escapeString"])(this.tooltip) : this.tooltip;
25476 };
25477 CellComp.prototype.processCellClassRules = function (onApplicableClass, onNotApplicableClass) {
25478 var colDef = this.getComponentHolder();
25479 var cellClassParams = {
25480 value: this.value,
25481 data: this.rowNode.data,
25482 node: this.rowNode,
25483 colDef: colDef,
25484 rowIndex: this.cellPosition.rowIndex,
25485 api: this.beans.gridOptionsWrapper.getApi(),
25486 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25487 $scope: this.scope,
25488 context: this.beans.gridOptionsWrapper.getContext()
25489 };
25490 this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, onApplicableClass, onNotApplicableClass);
25491 };
25492 CellComp.prototype.postProcessCellClassRules = function () {
25493 var _this = this;
25494 this.processCellClassRules(function (className) { return _this.addCssClass(className); }, function (className) { return _this.removeCssClass(className); });
25495 };
25496 CellComp.prototype.preProcessCellClassRules = function () {
25497 var res = [];
25498 this.processCellClassRules(function (className) { return res.push(className); }, function (_) {
25499 // not catered for, if creating, no need
25500 // to remove class as it was never there
25501 });
25502 return res;
25503 };
25504 // a wrapper is used when we are putting a selection checkbox in the cell with the value
25505 CellComp.prototype.setUsingWrapper = function () {
25506 var colDef = this.getComponentHolder();
25507 // never allow selection or dragging on pinned rows
25508 if (this.rowNode.rowPinned) {
25509 this.usingWrapper = false;
25510 this.includeSelectionComponent = false;
25511 this.includeRowDraggingComponent = false;
25512 this.includeDndSourceComponent = false;
25513 return;
25514 }
25515 var cbSelectionIsFunc = typeof colDef.checkboxSelection === 'function';
25516 var rowDraggableIsFunc = typeof colDef.rowDrag === 'function';
25517 var dndSourceIsFunc = typeof colDef.dndSource === 'function';
25518 this.includeSelectionComponent = cbSelectionIsFunc || colDef.checkboxSelection === true;
25519 this.includeRowDraggingComponent = rowDraggableIsFunc || colDef.rowDrag === true;
25520 this.includeDndSourceComponent = dndSourceIsFunc || colDef.dndSource === true;
25521 var enableTextSelection = this.beans.gridOptionsWrapper.isEnableCellTextSelection();
25522 this.usingWrapper = enableTextSelection || this.includeRowDraggingComponent || this.includeSelectionComponent || this.includeDndSourceComponent;
25523 };
25524 CellComp.prototype.chooseCellRenderer = function () {
25525 // template gets preference, then cellRenderer, then do it ourselves
25526 var colDef = this.getComponentHolder();
25527 // templates are for ng1, ideally we wouldn't have these, they are ng1 support
25528 // inside the core which is bad
25529 if (colDef.template || colDef.templateUrl) {
25530 this.usingCellRenderer = false;
25531 return;
25532 }
25533 var params = this.createCellRendererParams();
25534 if (this.rowNode.rowPinned &&
25535 this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'pinnedRowCellRenderer', params)) {
25536 this.cellRendererType = CellComp.CELL_RENDERER_TYPE_PINNED;
25537 this.usingCellRenderer = true;
25538 }
25539 else if (this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'cellRenderer', params)) {
25540 this.cellRendererType = CellComp.CELL_RENDERER_TYPE_NORMAL;
25541 this.usingCellRenderer = true;
25542 }
25543 else {
25544 this.usingCellRenderer = false;
25545 }
25546 };
25547 CellComp.prototype.createCellRendererInstance = function (useTaskService) {
25548 var _this = this;
25549 if (useTaskService === void 0) { useTaskService = false; }
25550 if (!this.usingCellRenderer) {
25551 return;
25552 }
25553 // never use task service if angularCompileRows=true, as that assume the cell renderers
25554 // are finished when the row is created. also we never use it if animation frame service
25555 // is turned off.
25556 // and lastly we never use it if doing auto-height, as the auto-height service checks the
25557 // row height directly after the cell is created, it doesn't wait around for the tasks to complete
25558 var angularCompileRows = this.beans.gridOptionsWrapper.isAngularCompileRows();
25559 var suppressAnimationFrame = this.beans.gridOptionsWrapper.isSuppressAnimationFrame();
25560 if (angularCompileRows || suppressAnimationFrame || this.autoHeightCell) {
25561 useTaskService = false;
25562 }
25563 var params = this.createCellRendererParams();
25564 this.cellRendererVersion++;
25565 var callback = this.afterCellRendererCreated.bind(this, this.cellRendererVersion);
25566 var cellRendererTypeNormal = this.cellRendererType === CellComp.CELL_RENDERER_TYPE_NORMAL;
25567 this.createCellRendererFunc = function () {
25568 _this.createCellRendererFunc = null;
25569 // this can return null in the event that the user has switched from a renderer component to nothing, for example
25570 // when using a cellRendererSelect to return a component or null depending on row data etc
25571 var componentPromise = _this.beans.userComponentFactory.newCellRenderer(_this.getComponentHolder(), params, !cellRendererTypeNormal);
25572 if (componentPromise) {
25573 componentPromise.then(callback);
25574 }
25575 };
25576 if (useTaskService) {
25577 this.beans.taskQueue.createTask(this.createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');
25578 }
25579 else {
25580 this.createCellRendererFunc();
25581 }
25582 };
25583 CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRenderer) {
25584 var cellRendererNotRequired = !this.isAlive() || cellRendererVersion !== this.cellRendererVersion;
25585 if (cellRendererNotRequired) {
25586 this.beans.context.destroyBean(cellRenderer);
25587 return;
25588 }
25589 this.cellRenderer = cellRenderer;
25590 this.cellRendererGui = this.cellRenderer.getGui();
25591 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellRendererGui)) {
25592 return;
25593 }
25594 // if async components, then it's possible the user started editing since this call was made
25595 if (!this.editingCell) {
25596 this.eCellValue.appendChild(this.cellRendererGui);
25597 }
25598 };
25599 CellComp.prototype.createCellRendererParams = function () {
25600 var _this = this;
25601 return {
25602 value: this.value,
25603 valueFormatted: this.valueFormatted,
25604 getValue: this.getValue.bind(this),
25605 setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },
25606 formatValue: this.formatValue.bind(this),
25607 data: this.rowNode.data,
25608 node: this.rowNode,
25609 colDef: this.getComponentHolder(),
25610 column: this.column,
25611 $scope: this.scope,
25612 rowIndex: this.cellPosition.rowIndex,
25613 api: this.beans.gridOptionsWrapper.getApi(),
25614 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25615 context: this.beans.gridOptionsWrapper.getContext(),
25616 refreshCell: this.refreshCell.bind(this),
25617 eGridCell: this.getGui(),
25618 eParentOfValue: this.eCellValue,
25619 registerRowDragger: function (rowDraggerElement, dragStartPixels) { return _this.addRowDragging(rowDraggerElement, dragStartPixels); },
25620 // these bits are not documented anywhere, so we could drop them?
25621 // it was in the olden days to allow user to register for when rendered
25622 // row was removed (the row comp was removed), however now that the user
25623 // can provide components for cells, the destroy method gets call when this
25624 // happens so no longer need to fire event.
25625 addRowCompListener: this.rowComp ? this.rowComp.addEventListener.bind(this.rowComp) : null,
25626 addRenderedRowListener: function (eventType, listener) {
25627 console.warn('AG Grid: since AG Grid .v11, params.addRenderedRowListener() is now params.addRowCompListener()');
25628 if (_this.rowComp) {
25629 _this.rowComp.addEventListener(eventType, listener);
25630 }
25631 }
25632 };
25633 };
25634 CellComp.prototype.formatValue = function (value) {
25635 var valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, value);
25636 return valueFormatted != null ? valueFormatted : value;
25637 };
25638 CellComp.prototype.getValueToUse = function () {
25639 return this.valueFormatted != null ? this.valueFormatted : this.value;
25640 };
25641 CellComp.prototype.getValueAndFormat = function () {
25642 this.value = this.getValue();
25643 this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);
25644 };
25645 CellComp.prototype.getValue = function () {
25646 // if we don't check this, then the grid will render leaf groups as open even if we are not
25647 // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow
25648 // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded
25649 // them via the API, or user user expanded them in the UI before turning on pivot mode
25650 var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnController.isPivotMode();
25651 var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;
25652 // are we showing group footers
25653 var groupFootersEnabled = this.beans.gridOptionsWrapper.isGroupIncludeFooter();
25654 // if doing footers, we normally don't show agg data at group level when group is open
25655 var groupAlwaysShowAggData = this.beans.gridOptionsWrapper.isGroupSuppressBlankHeader();
25656 // if doing grouping and footers, we don't want to include the agg value
25657 // in the header when the group is open
25658 var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;
25659 var value = this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);
25660 return value;
25661 };
25662 CellComp.prototype.onMouseEvent = function (eventName, mouseEvent) {
25663 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_16__["isStopPropagationForAgGrid"])(mouseEvent)) {
25664 return;
25665 }
25666 switch (eventName) {
25667 case 'click':
25668 this.onCellClicked(mouseEvent);
25669 break;
25670 case 'mousedown':
25671 this.onMouseDown(mouseEvent);
25672 break;
25673 case 'dblclick':
25674 this.onCellDoubleClicked(mouseEvent);
25675 break;
25676 case 'mouseout':
25677 this.onMouseOut(mouseEvent);
25678 break;
25679 case 'mouseover':
25680 this.onMouseOver(mouseEvent);
25681 break;
25682 }
25683 };
25684 CellComp.prototype.dispatchCellContextMenuEvent = function (event) {
25685 var colDef = this.getComponentHolder();
25686 var cellContextMenuEvent = this.createEvent(event, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_CONTEXT_MENU);
25687 this.beans.eventService.dispatchEvent(cellContextMenuEvent);
25688 if (colDef.onCellContextMenu) {
25689 // to make the callback async, do in a timeout
25690 window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);
25691 }
25692 };
25693 CellComp.prototype.createEvent = function (domEvent, eventType) {
25694 var event = {
25695 type: eventType,
25696 node: this.rowNode,
25697 data: this.rowNode.data,
25698 value: this.value,
25699 column: this.column,
25700 colDef: this.getComponentHolder(),
25701 context: this.beans.gridOptionsWrapper.getContext(),
25702 api: this.beans.gridApi,
25703 columnApi: this.beans.columnApi,
25704 rowPinned: this.rowNode.rowPinned,
25705 event: domEvent,
25706 rowIndex: this.rowNode.rowIndex
25707 };
25708 // because we are hacking in $scope for angular 1, we have to de-reference
25709 if (this.scope) {
25710 event.$scope = this.scope;
25711 }
25712 return event;
25713 };
25714 CellComp.prototype.onMouseOut = function (mouseEvent) {
25715 var cellMouseOutEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_MOUSE_OUT);
25716 this.beans.eventService.dispatchEvent(cellMouseOutEvent);
25717 this.beans.columnHoverService.clearMouseOver();
25718 };
25719 CellComp.prototype.onMouseOver = function (mouseEvent) {
25720 var cellMouseOverEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_MOUSE_OVER);
25721 this.beans.eventService.dispatchEvent(cellMouseOverEvent);
25722 this.beans.columnHoverService.setMouseOver([this.column]);
25723 };
25724 CellComp.prototype.onCellDoubleClicked = function (mouseEvent) {
25725 var colDef = this.getComponentHolder();
25726 // always dispatch event to eventService
25727 var cellDoubleClickedEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_DOUBLE_CLICKED);
25728 this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);
25729 // check if colDef also wants to handle event
25730 if (typeof colDef.onCellDoubleClicked === 'function') {
25731 // to make the callback async, do in a timeout
25732 window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);
25733 }
25734 var editOnDoubleClick = !this.beans.gridOptionsWrapper.isSingleClickEdit()
25735 && !this.beans.gridOptionsWrapper.isSuppressClickEdit();
25736 if (editOnDoubleClick) {
25737 this.startRowOrCellEdit();
25738 }
25739 };
25740 // called by rowRenderer when user navigates via tab key
25741 CellComp.prototype.startRowOrCellEdit = function (keyPress, charPress) {
25742 if (this.beans.gridOptionsWrapper.isFullRowEdit()) {
25743 this.rowComp.startRowEditing(keyPress, charPress, this);
25744 }
25745 else {
25746 this.startEditingIfEnabled(keyPress, charPress, true);
25747 }
25748 };
25749 CellComp.prototype.isCellEditable = function () {
25750 return this.column.isCellEditable(this.rowNode);
25751 };
25752 // either called internally if single cell editing, or called by rowRenderer if row editing
25753 CellComp.prototype.startEditingIfEnabled = function (keyPress, charPress, cellStartedEdit) {
25754 if (keyPress === void 0) { keyPress = null; }
25755 if (charPress === void 0) { charPress = null; }
25756 if (cellStartedEdit === void 0) { cellStartedEdit = false; }
25757 // don't do it if not editable
25758 if (!this.isCellEditable()) {
25759 return;
25760 }
25761 // don't do it if already editing
25762 if (this.editingCell) {
25763 return;
25764 }
25765 this.editingCell = true;
25766 this.cellEditorVersion++;
25767 var callback = this.afterCellEditorCreated.bind(this, this.cellEditorVersion);
25768 var params = this.createCellEditorParams(keyPress, charPress, cellStartedEdit);
25769 this.createCellEditor(params).then(callback);
25770 // if we don't do this, and editor component is async, then there will be a period
25771 // when the component isn't present and keyboard navigation won't work - so example
25772 // of user hitting tab quickly (more quickly than renderers getting created) won't work
25773 var cellEditorAsync = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(this.cellEditor);
25774 if (cellEditorAsync && cellStartedEdit) {
25775 this.focusCell(true);
25776 }
25777 };
25778 CellComp.prototype.createCellEditor = function (params) {
25779 var _this = this;
25780 var cellEditorPromise = this.beans.userComponentFactory.newCellEditor(this.column.getColDef(), params);
25781 return cellEditorPromise.then(function (cellEditor) {
25782 var cellEditorComp = cellEditor;
25783 var isPopup = cellEditorComp.isPopup && cellEditorComp.isPopup();
25784 if (!isPopup) {
25785 return cellEditorComp;
25786 }
25787 if (_this.beans.gridOptionsWrapper.isFullRowEdit()) {
25788 console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +
25789 '- either turn off fullRowEdit, or stop using popup editors.');
25790 }
25791 // if a popup, then we wrap in a popup editor and return the popup
25792 var popupEditorWrapper = new _cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_6__["PopupEditorWrapper"](cellEditorComp);
25793 _this.beans.context.createBean(popupEditorWrapper);
25794 popupEditorWrapper.init(params);
25795 return popupEditorWrapper;
25796 });
25797 };
25798 CellComp.prototype.afterCellEditorCreated = function (cellEditorVersion, cellEditor) {
25799 // if editingCell=false, means user cancelled the editor before component was ready.
25800 // if versionMismatch, then user cancelled the edit, then started the edit again, and this
25801 // is the first editor which is now stale.
25802 var versionMismatch = cellEditorVersion !== this.cellEditorVersion;
25803 var cellEditorNotNeeded = versionMismatch || !this.editingCell;
25804 if (cellEditorNotNeeded) {
25805 this.beans.context.destroyBean(cellEditor);
25806 return;
25807 }
25808 var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();
25809 if (editingCancelledByUserComp) {
25810 this.beans.context.destroyBean(cellEditor);
25811 this.editingCell = false;
25812 return;
25813 }
25814 if (!cellEditor.getGui) {
25815 console.warn("AG Grid: cellEditor for column " + this.column.getId() + " is missing getGui() method");
25816 // no getGui, for React guys, see if they attached a react component directly
25817 if (cellEditor.render) {
25818 console.warn("AG Grid: we found 'render' on the component, are you trying to set a React renderer but added it as colDef.cellEditor instead of colDef.cellEditorFmk?");
25819 }
25820 this.beans.context.destroyBean(cellEditor);
25821 this.editingCell = false;
25822 return;
25823 }
25824 this.cellEditor = cellEditor;
25825 this.cellEditorInPopup = cellEditor.isPopup !== undefined && cellEditor.isPopup();
25826 this.setInlineEditingClass();
25827 if (this.cellEditorInPopup) {
25828 this.addPopupCellEditor();
25829 }
25830 else {
25831 this.addInCellEditor();
25832 }
25833 if (cellEditor.afterGuiAttached) {
25834 cellEditor.afterGuiAttached();
25835 }
25836 var event = this.createEvent(null, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STARTED);
25837 this.beans.eventService.dispatchEvent(event);
25838 };
25839 CellComp.prototype.addInCellEditor = function () {
25840 var eGui = this.getGui();
25841 // if focus is inside the cell, we move focus to the cell itself
25842 // before removing it's contents, otherwise errors could be thrown.
25843 if (eGui.contains(document.activeElement)) {
25844 eGui.focus();
25845 }
25846 this.clearCellElement();
25847 if (this.cellEditor) {
25848 eGui.appendChild(this.cellEditor.getGui());
25849 }
25850 this.angular1Compile();
25851 };
25852 CellComp.prototype.addPopupCellEditor = function () {
25853 var _this = this;
25854 var ePopupGui = this.cellEditor && this.cellEditor.getGui();
25855 if (!ePopupGui) {
25856 return;
25857 }
25858 var popupService = this.beans.popupService;
25859 var useModelPopup = this.beans.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus();
25860 var position = this.cellEditor && this.cellEditor.getPopupPosition ? this.cellEditor.getPopupPosition() : 'over';
25861 var params = {
25862 column: this.column,
25863 rowNode: this.rowNode,
25864 type: 'popupCellEditor',
25865 eventSource: this.getGui(),
25866 ePopup: ePopupGui,
25867 keepWithinBounds: true
25868 };
25869 var positionCallback = position === 'under' ?
25870 popupService.positionPopupUnderComponent.bind(popupService, params)
25871 : popupService.positionPopupOverComponent.bind(popupService, params);
25872 var addPopupRes = popupService.addPopup({
25873 modal: useModelPopup,
25874 eChild: ePopupGui,
25875 closeOnEsc: true,
25876 closedCallback: function () { _this.onPopupEditorClosed(); },
25877 anchorToElement: this.getGui(),
25878 positionCallback: positionCallback
25879 });
25880 if (addPopupRes) {
25881 this.hideEditorPopup = addPopupRes.hideFunc;
25882 }
25883 this.angular1Compile();
25884 };
25885 CellComp.prototype.onPopupEditorClosed = function () {
25886 // we only call stopEditing if we are editing, as
25887 // it's possible the popup called 'stop editing'
25888 // before this, eg if 'enter key' was pressed on
25889 // the editor.
25890 if (!this.editingCell) {
25891 return;
25892 }
25893 // note: this only happens when use clicks outside of the grid. if use clicks on another
25894 // cell, then the editing will have already stopped on this cell
25895 this.stopRowOrCellEdit();
25896 };
25897 // if we are editing inline, then we don't have the padding in the cell (set in the themes)
25898 // to allow the text editor full access to the entire cell
25899 CellComp.prototype.setInlineEditingClass = function () {
25900 if (!this.isAlive()) {
25901 return;
25902 }
25903 // ag-cell-inline-editing - appears when user is inline editing
25904 // ag-cell-not-inline-editing - appears when user is no inline editing
25905 // ag-cell-popup-editing - appears when user is editing cell in popup (appears on the cell, not on the popup)
25906 // note: one of {ag-cell-inline-editing, ag-cell-not-inline-editing} is always present, they toggle.
25907 // however {ag-cell-popup-editing} shows when popup, so you have both {ag-cell-popup-editing}
25908 // and {ag-cell-not-inline-editing} showing at the same time.
25909 var editingInline = this.editingCell && !this.cellEditorInPopup;
25910 var popupEditorShowing = this.editingCell && this.cellEditorInPopup;
25911 this.addOrRemoveCssClass(CSS_INLINE_EDITING, editingInline);
25912 this.addOrRemoveCssClass(CSS_NOT_INLINE_EDITING, !editingInline);
25913 this.addOrRemoveCssClass(CSS_POPUP_EDITING, popupEditorShowing);
25914 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui().parentNode, "ag-row-inline-editing", editingInline);
25915 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui().parentNode, "ag-row-not-inline-editing", !editingInline);
25916 };
25917 CellComp.prototype.createCellEditorParams = function (keyPress, charPress, cellStartedEdit) {
25918 return {
25919 value: this.getValue(),
25920 keyPress: keyPress,
25921 charPress: charPress,
25922 column: this.column,
25923 colDef: this.column.getColDef(),
25924 rowIndex: this.cellPosition.rowIndex,
25925 node: this.rowNode,
25926 data: this.rowNode.data,
25927 api: this.beans.gridOptionsWrapper.getApi(),
25928 cellStartedEdit: cellStartedEdit,
25929 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25930 context: this.beans.gridOptionsWrapper.getContext(),
25931 $scope: this.scope,
25932 onKeyDown: this.onKeyDown.bind(this),
25933 stopEditing: this.stopEditingAndFocus.bind(this),
25934 eGridCell: this.getGui(),
25935 parseValue: this.parseValue.bind(this),
25936 formatValue: this.formatValue.bind(this)
25937 };
25938 };
25939 // cell editors call this, when they want to stop for reasons other
25940 // than what we pick up on. eg selecting from a dropdown ends editing.
25941 CellComp.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {
25942 if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }
25943 this.stopRowOrCellEdit();
25944 this.focusCell(true);
25945 if (!suppressNavigateAfterEdit) {
25946 this.navigateAfterEdit();
25947 }
25948 };
25949 CellComp.prototype.parseValue = function (newValue) {
25950 var colDef = this.getComponentHolder();
25951 var params = {
25952 node: this.rowNode,
25953 data: this.rowNode.data,
25954 oldValue: this.value,
25955 newValue: newValue,
25956 colDef: colDef,
25957 column: this.column,
25958 api: this.beans.gridOptionsWrapper.getApi(),
25959 columnApi: this.beans.gridOptionsWrapper.getColumnApi(),
25960 context: this.beans.gridOptionsWrapper.getContext()
25961 };
25962 var valueParser = colDef.valueParser;
25963 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["exists"])(valueParser) ? this.beans.expressionService.evaluate(valueParser, params) : newValue;
25964 };
25965 CellComp.prototype.focusCell = function (forceBrowserFocus) {
25966 if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }
25967 this.beans.focusController.setFocusedCell(this.cellPosition.rowIndex, this.column, this.rowNode.rowPinned, forceBrowserFocus);
25968 };
25969 CellComp.prototype.setFocusInOnEditor = function () {
25970 if (this.editingCell) {
25971 if (this.cellEditor && this.cellEditor.focusIn) {
25972 // if the editor is present, then we just focus it
25973 this.cellEditor.focusIn();
25974 }
25975 else {
25976 // if the editor is not present, it means async cell editor (eg React fibre)
25977 // and we are trying to set focus before the cell editor is present, so we
25978 // focus the cell instead
25979 this.focusCell(true);
25980 }
25981 }
25982 };
25983 CellComp.prototype.isEditing = function () {
25984 return this.editingCell;
25985 };
25986 CellComp.prototype.onKeyDown = function (event) {
25987 var key = event.which || event.keyCode;
25988 switch (key) {
25989 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].ENTER:
25990 this.onEnterKeyDown(event);
25991 break;
25992 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].F2:
25993 this.onF2KeyDown();
25994 break;
25995 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].ESCAPE:
25996 this.onEscapeKeyDown();
25997 break;
25998 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].TAB:
25999 this.onTabKeyDown(event);
26000 break;
26001 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].BACKSPACE:
26002 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DELETE:
26003 this.onBackspaceOrDeleteKeyPressed(key);
26004 break;
26005 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DOWN:
26006 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].UP:
26007 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].RIGHT:
26008 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].LEFT:
26009 this.onNavigationKeyPressed(event, key);
26010 break;
26011 }
26012 };
26013 CellComp.prototype.setFocusOutOnEditor = function () {
26014 if (this.editingCell && this.cellEditor && this.cellEditor.focusOut) {
26015 this.cellEditor.focusOut();
26016 }
26017 };
26018 CellComp.prototype.onNavigationKeyPressed = function (event, key) {
26019 if (this.editingCell) {
26020 return;
26021 }
26022 if (event.shiftKey && this.rangeSelectionEnabled) {
26023 this.onShiftRangeSelect(key);
26024 }
26025 else {
26026 this.beans.rowRenderer.navigateToNextCell(event, key, this.cellPosition, true);
26027 }
26028 // if we don't prevent default, the grid will scroll with the navigation keys
26029 event.preventDefault();
26030 };
26031 CellComp.prototype.onShiftRangeSelect = function (key) {
26032 if (!this.beans.rangeController) {
26033 return;
26034 }
26035 var endCell = this.beans.rangeController.extendLatestRangeInDirection(key);
26036 if (endCell) {
26037 this.beans.rowRenderer.ensureCellVisible(endCell);
26038 }
26039 };
26040 CellComp.prototype.onTabKeyDown = function (event) {
26041 this.beans.rowRenderer.onTabKeyDown(this, event);
26042 };
26043 CellComp.prototype.onBackspaceOrDeleteKeyPressed = function (key) {
26044 if (!this.editingCell) {
26045 this.startRowOrCellEdit(key);
26046 }
26047 };
26048 CellComp.prototype.onEnterKeyDown = function (e) {
26049 if (this.editingCell || this.rowComp.isEditing()) {
26050 this.stopEditingAndFocus();
26051 }
26052 else {
26053 if (this.beans.gridOptionsWrapper.isEnterMovesDown()) {
26054 this.beans.rowRenderer.navigateToNextCell(null, _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DOWN, this.cellPosition, false);
26055 }
26056 else {
26057 this.startRowOrCellEdit(_constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].ENTER);
26058 if (this.editingCell) {
26059 // if we started editing, then we need to prevent default, otherwise the Enter action can get
26060 // applied to the cell editor. this happened, for example, with largeTextCellEditor where not
26061 // preventing default results in a 'new line' character getting inserted in the text area
26062 // when the editing was started
26063 e.preventDefault();
26064 }
26065 }
26066 }
26067 };
26068 CellComp.prototype.navigateAfterEdit = function () {
26069 var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();
26070 if (fullRowEdit) {
26071 return;
26072 }
26073 var enterMovesDownAfterEdit = this.beans.gridOptionsWrapper.isEnterMovesDownAfterEdit();
26074 if (enterMovesDownAfterEdit) {
26075 this.beans.rowRenderer.navigateToNextCell(null, _constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].DOWN, this.cellPosition, false);
26076 }
26077 };
26078 CellComp.prototype.onF2KeyDown = function () {
26079 if (!this.editingCell) {
26080 this.startRowOrCellEdit(_constants_keyCode__WEBPACK_IMPORTED_MODULE_20__["KeyCode"].F2);
26081 }
26082 };
26083 CellComp.prototype.onEscapeKeyDown = function () {
26084 if (this.editingCell) {
26085 this.stopRowOrCellEdit(true);
26086 this.focusCell(true);
26087 }
26088 };
26089 CellComp.prototype.onKeyPress = function (event) {
26090 // check this, in case focus is on a (for example) a text field inside the cell,
26091 // in which cse we should not be listening for these key pressed
26092 var eventTarget = Object(_utils_event__WEBPACK_IMPORTED_MODULE_16__["getTarget"])(event);
26093 var eventOnChildComponent = eventTarget !== this.getGui();
26094 if (eventOnChildComponent || this.editingCell) {
26095 return;
26096 }
26097 var pressedChar = String.fromCharCode(event.charCode);
26098 if (pressedChar === ' ') {
26099 this.onSpaceKeyPressed(event);
26100 }
26101 else if (Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_17__["isEventFromPrintableCharacter"])(event)) {
26102 this.startRowOrCellEdit(null, pressedChar);
26103 // if we don't prevent default, then the keypress also gets applied to the text field
26104 // (at least when doing the default editor), but we need to allow the editor to decide
26105 // what it wants to do. we only do this IF editing was started - otherwise it messes
26106 // up when the use is not doing editing, but using rendering with text fields in cellRenderer
26107 // (as it would block the the user from typing into text fields).
26108 event.preventDefault();
26109 }
26110 };
26111 CellComp.prototype.onSpaceKeyPressed = function (event) {
26112 var gridOptionsWrapper = this.beans.gridOptionsWrapper;
26113 if (!this.editingCell && gridOptionsWrapper.isRowSelection()) {
26114 var currentSelection = this.rowNode.isSelected();
26115 var newSelection = !currentSelection;
26116 if (newSelection || !gridOptionsWrapper.isSuppressRowDeselection()) {
26117 var groupSelectsFiltered = this.beans.gridOptionsWrapper.isGroupSelectsFiltered();
26118 var updatedCount = this.rowNode.setSelectedParams({
26119 newValue: newSelection,
26120 rangeSelect: event.shiftKey,
26121 groupSelectsFiltered: groupSelectsFiltered
26122 });
26123 if (currentSelection === undefined && updatedCount === 0) {
26124 this.rowNode.setSelectedParams({
26125 newValue: false,
26126 rangeSelect: event.shiftKey,
26127 groupSelectsFiltered: groupSelectsFiltered
26128 });
26129 }
26130 }
26131 }
26132 // prevent default as space key, by default, moves browser scroll down
26133 event.preventDefault();
26134 };
26135 CellComp.prototype.onMouseDown = function (mouseEvent) {
26136 var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;
26137 var target = mouseEvent.target;
26138 var _a = this.beans, eventService = _a.eventService, rangeController = _a.rangeController;
26139 // do not change the range for right-clicks inside an existing range
26140 if (this.isRightClickInExistingRange(mouseEvent)) {
26141 return;
26142 }
26143 if (!shiftKey || (rangeController && !rangeController.getCellRanges().length)) {
26144 // We only need to pass true to focusCell when the browser is IE/Edge and we are trying
26145 // to focus the cell itself. This should never be true if the mousedown was triggered
26146 // due to a click on a cell editor for example.
26147 var forceBrowserFocus = (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isBrowserIE"])() || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isBrowserEdge"])()) && !this.editingCell && !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["isFocusableFormField"])(target);
26148 this.focusCell(forceBrowserFocus);
26149 }
26150 else if (rangeController) {
26151 // if a range is being changed, we need to make sure the focused cell does not change.
26152 mouseEvent.preventDefault();
26153 }
26154 // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox
26155 // is focused but we don't want to change the range selection, so return here.
26156 if (this.containsWidget(target)) {
26157 return;
26158 }
26159 if (rangeController) {
26160 var thisCell = this.cellPosition;
26161 if (shiftKey) {
26162 rangeController.extendLatestRangeToCell(thisCell);
26163 }
26164 else {
26165 var ctrlKeyPressed = ctrlKey || metaKey;
26166 rangeController.setRangeToCell(thisCell, ctrlKeyPressed);
26167 }
26168 }
26169 eventService.dispatchEvent(this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_MOUSE_DOWN));
26170 };
26171 CellComp.prototype.isRightClickInExistingRange = function (mouseEvent) {
26172 var rangeController = this.beans.rangeController;
26173 if (rangeController) {
26174 var cellInRange = rangeController.isCellInAnyRange(this.getCellPosition());
26175 if (cellInRange && mouseEvent.button === 2) {
26176 return true;
26177 }
26178 }
26179 return false;
26180 };
26181 CellComp.prototype.containsWidget = function (target) {
26182 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["isElementChildOfClass"])(target, 'ag-selection-checkbox', 3);
26183 };
26184 // returns true if on iPad and this is second 'click' event in 200ms
26185 CellComp.prototype.isDoubleClickOnIPad = function () {
26186 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isIOSUserAgent"])() || Object(_utils_event__WEBPACK_IMPORTED_MODULE_16__["isEventSupported"])('dblclick')) {
26187 return false;
26188 }
26189 var nowMillis = new Date().getTime();
26190 var res = nowMillis - this.lastIPadMouseClickEvent < 200;
26191 this.lastIPadMouseClickEvent = nowMillis;
26192 return res;
26193 };
26194 CellComp.prototype.onCellClicked = function (mouseEvent) {
26195 // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.
26196 if (this.isDoubleClickOnIPad()) {
26197 this.onCellDoubleClicked(mouseEvent);
26198 mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in
26199 return;
26200 }
26201 var _a = this.beans, eventService = _a.eventService, gridOptionsWrapper = _a.gridOptionsWrapper;
26202 var cellClickedEvent = this.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_CLICKED);
26203 eventService.dispatchEvent(cellClickedEvent);
26204 var colDef = this.getComponentHolder();
26205 if (colDef.onCellClicked) {
26206 // to make callback async, do in a timeout
26207 window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);
26208 }
26209 var editOnSingleClick = (gridOptionsWrapper.isSingleClickEdit() || colDef.singleClickEdit)
26210 && !gridOptionsWrapper.isSuppressClickEdit();
26211 if (editOnSingleClick) {
26212 this.startRowOrCellEdit();
26213 }
26214 };
26215 CellComp.prototype.createGridCellVo = function () {
26216 this.cellPosition = {
26217 rowIndex: this.rowNode.rowIndex,
26218 rowPinned: this.rowNode.rowPinned,
26219 column: this.column
26220 };
26221 };
26222 CellComp.prototype.getRowPosition = function () {
26223 return {
26224 rowIndex: this.cellPosition.rowIndex,
26225 rowPinned: this.cellPosition.rowPinned
26226 };
26227 };
26228 CellComp.prototype.getCellPosition = function () {
26229 return this.cellPosition;
26230 };
26231 CellComp.prototype.getParentRow = function () {
26232 return this.eRow;
26233 };
26234 CellComp.prototype.setParentRow = function (eParentRow) {
26235 this.eRow = eParentRow;
26236 };
26237 CellComp.prototype.getColumn = function () {
26238 return this.column;
26239 };
26240 CellComp.prototype.getComponentHolder = function () {
26241 return this.column.getColDef();
26242 };
26243 CellComp.prototype.detach = function () {
26244 this.eRow.removeChild(this.getGui());
26245 };
26246 // if the row is also getting destroyed, then we don't need to remove from dom,
26247 // as the row will also get removed, so no need to take out the cells from the row
26248 // if the row is going (removing is an expensive operation, so only need to remove
26249 // the top part)
26250 //
26251 // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.
26252 CellComp.prototype.destroy = function () {
26253 if (this.createCellRendererFunc) {
26254 this.beans.taskQueue.cancelTask(this.createCellRendererFunc);
26255 }
26256 this.stopEditing();
26257 this.cellRenderer = this.beans.context.destroyBean(this.cellRenderer);
26258 this.beans.context.destroyBean(this.selectionHandle);
26259 _super.prototype.destroy.call(this);
26260 };
26261 CellComp.prototype.onLeftChanged = function () {
26262 var left = this.modifyLeftForPrintLayout(this.getCellLeft());
26263 this.getGui().style.left = left + 'px';
26264 this.refreshAriaIndex();
26265 };
26266 CellComp.prototype.modifyLeftForPrintLayout = function (leftPosition) {
26267 if (!this.printLayout || this.column.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_LEFT) {
26268 return leftPosition;
26269 }
26270 var leftWidth = this.beans.columnController.getDisplayedColumnsLeftWidth();
26271 if (this.column.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].PINNED_RIGHT) {
26272 var bodyWidth = this.beans.columnController.getBodyContainerWidth();
26273 return leftWidth + bodyWidth + (leftPosition || 0);
26274 }
26275 // is in body
26276 return leftWidth + (leftPosition || 0);
26277 };
26278 CellComp.prototype.onWidthChanged = function () {
26279 var width = this.getCellWidth();
26280 this.getGui().style.width = width + "px";
26281 };
26282 CellComp.prototype.getRangeBorders = function () {
26283 var _this = this;
26284 var isRtl = this.beans.gridOptionsWrapper.isEnableRtl();
26285 var top = false;
26286 var right = false;
26287 var bottom = false;
26288 var left = false;
26289 var thisCol = this.cellPosition.column;
26290 var _a = this.beans, rangeController = _a.rangeController, columnController = _a.columnController;
26291 var leftCol;
26292 var rightCol;
26293 if (isRtl) {
26294 leftCol = columnController.getDisplayedColAfter(thisCol);
26295 rightCol = columnController.getDisplayedColBefore(thisCol);
26296 }
26297 else {
26298 leftCol = columnController.getDisplayedColBefore(thisCol);
26299 rightCol = columnController.getDisplayedColAfter(thisCol);
26300 }
26301 var ranges = rangeController.getCellRanges().filter(function (range) { return rangeController.isCellInSpecificRange(_this.cellPosition, range); });
26302 // this means we are the first column in the grid
26303 if (!leftCol) {
26304 left = true;
26305 }
26306 // this means we are the last column in the grid
26307 if (!rightCol) {
26308 right = true;
26309 }
26310 for (var i = 0; i < ranges.length; i++) {
26311 if (top && right && bottom && left) {
26312 break;
26313 }
26314 var range = ranges[i];
26315 var startRow = rangeController.getRangeStartRow(range);
26316 var endRow = rangeController.getRangeEndRow(range);
26317 if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellPosition)) {
26318 top = true;
26319 }
26320 if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellPosition)) {
26321 bottom = true;
26322 }
26323 if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {
26324 left = true;
26325 }
26326 if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {
26327 right = true;
26328 }
26329 }
26330 return { top: top, right: right, bottom: bottom, left: left };
26331 };
26332 CellComp.prototype.getInitialRangeClasses = function () {
26333 var classes = [];
26334 if (!this.rangeSelectionEnabled || !this.rangeCount) {
26335 return classes;
26336 }
26337 classes.push(CSS_RANGE_SELECTED);
26338 if (this.hasChartRange) {
26339 classes.push(CSS_RANGE_CHART);
26340 }
26341 var count = Math.min(this.rangeCount, 4);
26342 classes.push(CSS_RANGE_SELECTED + "-" + count);
26343 if (this.isSingleCell()) {
26344 classes.push(CSS_RANGE_SINGLE_CELL);
26345 }
26346 if (this.rangeCount > 0) {
26347 var borders = this.getRangeBorders();
26348 if (borders.top) {
26349 classes.push(CSS_RANGE_TOP);
26350 }
26351 if (borders.right) {
26352 classes.push(CSS_RANGE_RIGHT);
26353 }
26354 if (borders.bottom) {
26355 classes.push(CSS_RANGE_BOTTOM);
26356 }
26357 if (borders.left) {
26358 classes.push(CSS_RANGE_LEFT);
26359 }
26360 }
26361 if (!!this.selectionHandle) {
26362 classes.push(CSS_RANGE_HANDLE);
26363 }
26364 return classes;
26365 };
26366 CellComp.prototype.onRowIndexChanged = function () {
26367 // when index changes, this influences items that need the index, so we update the
26368 // grid cell so they are working off the new index.
26369 this.createGridCellVo();
26370 // when the index of the row changes, ie means the cell may have lost or gained focus
26371 this.onCellFocused();
26372 // check range selection
26373 this.onRangeSelectionChanged();
26374 };
26375 CellComp.prototype.onRangeSelectionChanged = function () {
26376 var rangeController = this.beans.rangeController;
26377 if (!rangeController) {
26378 return;
26379 }
26380 var _a = this, cellPosition = _a.cellPosition, rangeCount = _a.rangeCount;
26381 var newRangeCount = rangeController.getCellRangeCount(cellPosition);
26382 var element = this.getGui();
26383 if (rangeCount !== newRangeCount) {
26384 this.addOrRemoveCssClass(CSS_RANGE_SELECTED, newRangeCount !== 0);
26385 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-1", newRangeCount === 1);
26386 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-2", newRangeCount === 2);
26387 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-3", newRangeCount === 3);
26388 this.addOrRemoveCssClass(CSS_RANGE_SELECTED + "-4", newRangeCount >= 4);
26389 this.rangeCount = newRangeCount;
26390 }
26391 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaSelected"])(element, this.rangeCount > 0);
26392 var hasChartRange = this.getHasChartRange();
26393 if (hasChartRange !== this.hasChartRange) {
26394 this.hasChartRange = hasChartRange;
26395 this.addOrRemoveCssClass(CSS_RANGE_CHART, this.hasChartRange);
26396 }
26397 this.updateRangeBorders();
26398 this.addOrRemoveCssClass(CSS_RANGE_SINGLE_CELL, this.isSingleCell());
26399 this.refreshHandle();
26400 };
26401 CellComp.prototype.getHasChartRange = function () {
26402 var rangeController = this.beans.rangeController;
26403 if (!this.rangeCount || !rangeController) {
26404 return false;
26405 }
26406 var cellRanges = rangeController.getCellRanges();
26407 return cellRanges.length > 0 && cellRanges.every(function (range) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["includes"])([_interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].DIMENSION, _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].VALUE], range.type); });
26408 };
26409 CellComp.prototype.shouldHaveSelectionHandle = function () {
26410 var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;
26411 var cellRanges = rangeController.getCellRanges();
26412 var rangesLen = cellRanges.length;
26413 if (this.rangeCount < 1 || rangesLen < 1) {
26414 return false;
26415 }
26416 var cellRange = Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["last"])(cellRanges);
26417 var cellPosition = this.getCellPosition();
26418 var fillHandleIsAvailable = rangesLen === 1 &&
26419 (gridOptionsWrapper.isEnableFillHandle() || gridOptionsWrapper.isEnableRangeHandle()) &&
26420 !this.editingCell;
26421 if (this.hasChartRange) {
26422 var hasCategoryRange = cellRanges[0].type === _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].DIMENSION;
26423 var isCategoryCell = hasCategoryRange && rangeController.isCellInSpecificRange(cellPosition, cellRanges[0]);
26424 this.addOrRemoveCssClass(CSS_RANGE_CHART_CATEGORY, isCategoryCell);
26425 fillHandleIsAvailable = cellRange.type === _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["CellRangeType"].VALUE;
26426 }
26427 return fillHandleIsAvailable &&
26428 cellRange.endRow != null &&
26429 rangeController.isContiguousRange(cellRange) &&
26430 rangeController.isBottomRightCell(cellRange, cellPosition);
26431 };
26432 CellComp.prototype.addSelectionHandle = function () {
26433 var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;
26434 var cellRangeType = Object(_utils_array__WEBPACK_IMPORTED_MODULE_14__["last"])(rangeController.getCellRanges()).type;
26435 var selectionHandleFill = gridOptionsWrapper.isEnableFillHandle() && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_12__["missing"])(cellRangeType);
26436 var type = selectionHandleFill ? _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["SelectionHandleType"].FILL : _interfaces_iRangeController__WEBPACK_IMPORTED_MODULE_4__["SelectionHandleType"].RANGE;
26437 if (this.selectionHandle && this.selectionHandle.getType() !== type) {
26438 this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);
26439 }
26440 if (!this.selectionHandle) {
26441 this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);
26442 }
26443 this.selectionHandle.refresh(this);
26444 };
26445 CellComp.prototype.updateRangeBordersIfRangeCount = function () {
26446 // we only need to update range borders if we are in a range
26447 if (this.rangeCount > 0) {
26448 this.updateRangeBorders();
26449 this.refreshHandle();
26450 }
26451 };
26452 CellComp.prototype.refreshHandle = function () {
26453 if (!this.beans.rangeController) {
26454 return;
26455 }
26456 var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();
26457 if (this.selectionHandle && !shouldHaveSelectionHandle) {
26458 this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);
26459 }
26460 if (shouldHaveSelectionHandle) {
26461 this.addSelectionHandle();
26462 }
26463 this.addOrRemoveCssClass(CSS_RANGE_HANDLE, !!this.selectionHandle);
26464 };
26465 CellComp.prototype.updateRangeBorders = function () {
26466 var rangeBorders = this.getRangeBorders();
26467 var isSingleCell = this.isSingleCell();
26468 var isTop = !isSingleCell && rangeBorders.top;
26469 var isRight = !isSingleCell && rangeBorders.right;
26470 var isBottom = !isSingleCell && rangeBorders.bottom;
26471 var isLeft = !isSingleCell && rangeBorders.left;
26472 this.addOrRemoveCssClass(CSS_RANGE_TOP, isTop);
26473 this.addOrRemoveCssClass(CSS_RANGE_RIGHT, isRight);
26474 this.addOrRemoveCssClass(CSS_RANGE_BOTTOM, isBottom);
26475 this.addOrRemoveCssClass(CSS_RANGE_LEFT, isLeft);
26476 };
26477 CellComp.prototype.onFirstRightPinnedChanged = function () {
26478 var firstRightPinned = this.column.isFirstRightPinned();
26479 if (this.firstRightPinned !== firstRightPinned) {
26480 this.firstRightPinned = firstRightPinned;
26481 this.addOrRemoveCssClass(CSS_FIRST_RIGHT_PINNED, firstRightPinned);
26482 }
26483 };
26484 CellComp.prototype.onLastLeftPinnedChanged = function () {
26485 var lastLeftPinned = this.column.isLastLeftPinned();
26486 if (this.lastLeftPinned !== lastLeftPinned) {
26487 this.lastLeftPinned = lastLeftPinned;
26488 this.addOrRemoveCssClass(CSS_LAST_LEFT_PINNED, lastLeftPinned);
26489 }
26490 };
26491 CellComp.prototype.refreshShouldDestroy = function () {
26492 var isUsingWrapper = this.usingWrapper;
26493 var isIncludingRowDragging = this.includeRowDraggingComponent;
26494 var isIncludingDndSource = this.includeDndSourceComponent;
26495 var isIncludingSelection = this.includeSelectionComponent;
26496 this.setUsingWrapper();
26497 return isUsingWrapper !== this.usingWrapper ||
26498 isIncludingRowDragging !== this.includeRowDraggingComponent ||
26499 isIncludingDndSource !== this.includeDndSourceComponent ||
26500 isIncludingSelection !== this.includeSelectionComponent;
26501 };
26502 CellComp.prototype.populateTemplate = function () {
26503 if (this.usingWrapper) {
26504 this.eCellValue = this.getRefElement('eCellValue');
26505 this.eCellWrapper = this.getRefElement('eCellWrapper');
26506 this.eCellValue.id = "cell-" + this.getCompId();
26507 var describedByIds = '';
26508 if (this.includeRowDraggingComponent) {
26509 this.addRowDragging();
26510 }
26511 if (this.includeDndSourceComponent) {
26512 this.addDndSource();
26513 }
26514 if (this.includeSelectionComponent) {
26515 describedByIds += this.addSelectionCheckbox().getCheckboxId();
26516 }
26517 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaDescribedBy"])(this.getGui(), (describedByIds + " " + this.eCellValue.id).trim());
26518 }
26519 else {
26520 this.eCellValue = this.getGui();
26521 this.eCellWrapper = this.eCellValue;
26522 }
26523 };
26524 CellComp.prototype.getFrameworkOverrides = function () {
26525 return this.beans.frameworkOverrides;
26526 };
26527 CellComp.prototype.addRowDragging = function (customElement, dragStartPixels) {
26528 var _this = this;
26529 var pagination = this.beans.gridOptionsWrapper.isPagination();
26530 var rowDragManaged = this.beans.gridOptionsWrapper.isRowDragManaged();
26531 var clientSideRowModelActive = this.beans.gridOptionsWrapper.isRowModelDefault();
26532 if (rowDragManaged) {
26533 // row dragging only available in default row model
26534 if (!clientSideRowModelActive) {
26535 Object(_utils_function__WEBPACK_IMPORTED_MODULE_19__["doOnce"])(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');
26536 return;
26537 }
26538 if (pagination) {
26539 Object(_utils_function__WEBPACK_IMPORTED_MODULE_19__["doOnce"])(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');
26540 return;
26541 }
26542 }
26543 if (!this.rowDraggingComp) {
26544 this.rowDraggingComp = new _row_rowDragComp__WEBPACK_IMPORTED_MODULE_5__["RowDragComp"](function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels);
26545 this.createManagedBean(this.rowDraggingComp, this.beans.context);
26546 }
26547 else if (customElement) {
26548 // if the rowDraggingComp is already present, means we should only set the drag element
26549 this.rowDraggingComp.setDragElement(customElement, dragStartPixels);
26550 }
26551 // If there is a custom element, the Cell Renderer is responsible for displaying it.
26552 if (!customElement) {
26553 // put the checkbox in before the value
26554 this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);
26555 }
26556 };
26557 CellComp.prototype.addDndSource = function () {
26558 var dndSourceComp = new _dndSourceComp__WEBPACK_IMPORTED_MODULE_7__["DndSourceComp"](this.rowNode, this.column, this.beans, this.getGui());
26559 this.createManagedBean(dndSourceComp, this.beans.context);
26560 // put the checkbox in before the value
26561 this.eCellWrapper.insertBefore(dndSourceComp.getGui(), this.eCellValue);
26562 };
26563 CellComp.prototype.addSelectionCheckbox = function () {
26564 var _this = this;
26565 var cbSelectionComponent = new _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_3__["CheckboxSelectionComponent"]();
26566 this.beans.context.createBean(cbSelectionComponent);
26567 var visibleFunc = this.getComponentHolder().checkboxSelection;
26568 if (typeof visibleFunc !== 'function') {
26569 visibleFunc = undefined;
26570 }
26571 cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });
26572 this.addDestroyFunc(function () { return _this.beans.context.destroyBean(cbSelectionComponent); });
26573 // put the checkbox in before the value
26574 this.eCellWrapper.insertBefore(cbSelectionComponent.getGui(), this.eCellValue);
26575 return cbSelectionComponent;
26576 };
26577 CellComp.prototype.addDomData = function () {
26578 var _this = this;
26579 var element = this.getGui();
26580 this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, this);
26581 this.addDestroyFunc(function () { return _this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, null); });
26582 };
26583 CellComp.prototype.isSingleCell = function () {
26584 var rangeController = this.beans.rangeController;
26585 return this.rangeCount === 1 && rangeController && !rangeController.isMoreThanOneCell();
26586 };
26587 CellComp.prototype.onCellFocused = function (event) {
26588 var cellFocused = this.beans.focusController.isCellFocused(this.cellPosition);
26589 // see if we need to change the classes on this cell
26590 if (cellFocused !== this.cellFocused) {
26591 // if we are not doing cell selection, then the focus class does not change
26592 var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();
26593 if (doingFocusCss) {
26594 this.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);
26595 }
26596 this.cellFocused = cellFocused;
26597 }
26598 // see if we need to force browser focus - this can happen if focus is programmatically set
26599 if (cellFocused && event && event.forceBrowserFocus) {
26600 var focusEl = this.getFocusableElement();
26601 focusEl.focus();
26602 // Fix for AG-3465 "IE11 - After editing cell's content, selection doesn't go one cell below on enter"
26603 // IE can fail to focus the cell after the first call to focus(), and needs a second call
26604 if (!document.activeElement || document.activeElement === document.body) {
26605 focusEl.focus();
26606 }
26607 }
26608 // if another cell was focused, and we are editing, then stop editing
26609 var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();
26610 if (!cellFocused && !fullRowEdit && this.editingCell) {
26611 this.stopRowOrCellEdit();
26612 }
26613 };
26614 // pass in 'true' to cancel the editing.
26615 CellComp.prototype.stopRowOrCellEdit = function (cancel) {
26616 if (cancel === void 0) { cancel = false; }
26617 if (this.beans.gridOptionsWrapper.isFullRowEdit()) {
26618 this.rowComp.stopRowEditing(cancel);
26619 }
26620 else {
26621 this.stopEditing(cancel);
26622 }
26623 };
26624 CellComp.prototype.stopEditing = function (cancel) {
26625 if (cancel === void 0) { cancel = false; }
26626 if (!this.editingCell) {
26627 return;
26628 }
26629 // if no cell editor, this means due to async, that the cell editor never got initialised,
26630 // so we just carry on regardless as if the editing was never started.
26631 if (!this.cellEditor) {
26632 this.editingCell = false;
26633 return;
26634 }
26635 var oldValue = this.getValue();
26636 var newValueExists = false;
26637 var newValue;
26638 if (!cancel) {
26639 // also have another option here to cancel after editing, so for example user could have a popup editor and
26640 // it is closed by user clicking outside the editor. then the editor will close automatically (with false
26641 // passed above) and we need to see if the editor wants to accept the new value.
26642 var userWantsToCancel = this.cellEditor.isCancelAfterEnd && this.cellEditor.isCancelAfterEnd();
26643 if (!userWantsToCancel) {
26644 newValue = this.cellEditor.getValue();
26645 newValueExists = true;
26646 }
26647 }
26648 // it is important we set this after setValue() above, as otherwise the cell will flash
26649 // when editing stops. the 'refresh' method checks editing, and doesn't refresh editing cells.
26650 // thus it will skip the refresh on this cell until the end of this method where we call
26651 // refresh directly and we suppress the flash.
26652 this.editingCell = false;
26653 // important to clear this out - as parts of the code will check for
26654 // this to see if an async cellEditor has yet to be created
26655 this.beans.context.destroyBean(this.cellEditor);
26656 this.cellEditor = null;
26657 if (this.cellEditorInPopup && this.hideEditorPopup) {
26658 this.hideEditorPopup();
26659 this.hideEditorPopup = null;
26660 }
26661 else {
26662 this.clearCellElement();
26663 var eGui = this.getGui();
26664 // put the cell back the way it was before editing
26665 if (this.usingWrapper) {
26666 // if wrapper, then put the wrapper back
26667 eGui.appendChild(this.eCellWrapper);
26668 }
26669 else if (this.cellRenderer) {
26670 // if cellRenderer, then put the gui back in. if the renderer has
26671 // a refresh, it will be called. however if it doesn't, then later
26672 // the renderer will be destroyed and a new one will be created.
26673 // we know it's a dom element (not a string) because we converted
26674 // it after the gui was attached if it was a string.
26675 var eCell = this.cellRendererGui;
26676 // can be null if cell was previously null / contained empty string,
26677 // this will result in new value not being rendered.
26678 if (eCell) {
26679 eGui.appendChild(eCell);
26680 }
26681 }
26682 }
26683 this.setInlineEditingClass();
26684 this.refreshHandle();
26685 if (newValueExists && newValue !== oldValue) {
26686 // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection
26687 // getting triggered, which results in all cells getting refreshed. we do not want this refresh
26688 // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.
26689 // if we only did this refresh (and not the one below) then the cell would flash and not be forced.
26690 this.suppressRefreshCell = true;
26691 this.rowNode.setDataValue(this.column, newValue);
26692 this.suppressRefreshCell = false;
26693 }
26694 // we suppress the flash, as it is not correct to flash the cell the user has finished editing,
26695 // the user doesn't need to flash as they were the one who did the edit, the flash is pointless
26696 // (as the flash is meant to draw the user to a change that they didn't manually do themselves).
26697 this.refreshCell({ forceRefresh: true, suppressFlash: true });
26698 var editingStoppedEvent = __assign(__assign({}, this.createEvent(null, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue,
26699 newValue: newValue });
26700 this.beans.eventService.dispatchEvent(editingStoppedEvent);
26701 };
26702 CellComp.prototype.clearCellElement = function () {
26703 var eGui = this.getGui();
26704 // if focus is inside the cell, we move focus to the cell itself
26705 // before removing it's contents, otherwise errors could be thrown.
26706 if (eGui.contains(document.activeElement) && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_18__["isBrowserIE"])()) {
26707 eGui.focus({
26708 preventScroll: true
26709 });
26710 }
26711 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["clearElement"])(eGui);
26712 };
26713 CellComp.DOM_DATA_KEY_CELL_COMP = 'cellComp';
26714 CellComp.CELL_RENDERER_TYPE_NORMAL = 'cellRenderer';
26715 CellComp.CELL_RENDERER_TYPE_PINNED = 'pinnedRowCellRenderer';
26716 return CellComp;
26717}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
26718
26719
26720
26721/***/ }),
26722/* 108 */
26723/***/ (function(module, __webpack_exports__, __webpack_require__) {
26724
26725"use strict";
26726__webpack_require__.r(__webpack_exports__);
26727/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return SelectionHandleType; });
26728/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return CellRangeType; });
26729/**
26730 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26731 * @version v25.3.0
26732 * @link http://www.ag-grid.com/
26733 * @license MIT
26734 */
26735var SelectionHandleType;
26736(function (SelectionHandleType) {
26737 SelectionHandleType[SelectionHandleType["FILL"] = 0] = "FILL";
26738 SelectionHandleType[SelectionHandleType["RANGE"] = 1] = "RANGE";
26739})(SelectionHandleType || (SelectionHandleType = {}));
26740var CellRangeType;
26741(function (CellRangeType) {
26742 CellRangeType[CellRangeType["VALUE"] = 0] = "VALUE";
26743 CellRangeType[CellRangeType["DIMENSION"] = 1] = "DIMENSION";
26744})(CellRangeType || (CellRangeType = {}));
26745
26746
26747/***/ }),
26748/* 109 */
26749/***/ (function(module, __webpack_exports__, __webpack_require__) {
26750
26751"use strict";
26752__webpack_require__.r(__webpack_exports__);
26753/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return PopupEditorWrapper; });
26754/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
26755/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
26756/**
26757 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26758 * @version v25.3.0
26759 * @link http://www.ag-grid.com/
26760 * @license MIT
26761 */
26762var __extends = (undefined && undefined.__extends) || (function () {
26763 var extendStatics = function (d, b) {
26764 extendStatics = Object.setPrototypeOf ||
26765 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26766 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26767 return extendStatics(d, b);
26768 };
26769 return function (d, b) {
26770 extendStatics(d, b);
26771 function __() { this.constructor = d; }
26772 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26773 };
26774})();
26775
26776
26777var PopupEditorWrapper = /** @class */ (function (_super) {
26778 __extends(PopupEditorWrapper, _super);
26779 function PopupEditorWrapper(cellEditor) {
26780 var _this = _super.call(this, "<div class=\"ag-popup-editor\" tabindex=\"-1\"/>") || this;
26781 _this.getGuiCalledOnChild = false;
26782 _this.cellEditor = cellEditor;
26783 return _this;
26784 }
26785 PopupEditorWrapper.prototype.onKeyDown = function (event) {
26786 if (!Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_1__["isUserSuppressingKeyboardEvent"])(this.gridOptionsWrapper, event, this.params.node, this.params.column, true)) {
26787 this.params.onKeyDown(event);
26788 }
26789 };
26790 PopupEditorWrapper.prototype.getGui = function () {
26791 // we call getGui() on child here (rather than in the constructor)
26792 // as we should wait for 'init' to be called on child first.
26793 if (!this.getGuiCalledOnChild) {
26794 this.appendChild(this.cellEditor.getGui());
26795 this.getGuiCalledOnChild = true;
26796 }
26797 return _super.prototype.getGui.call(this);
26798 };
26799 PopupEditorWrapper.prototype.init = function (params) {
26800 var _this = this;
26801 this.params = params;
26802 this.gridOptionsWrapper.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);
26803 this.addDestroyFunc(function () { return _this.destroyBean(_this.cellEditor); });
26804 this.addManagedListener(
26805 // this needs to be 'super' and not 'this' as if we call 'this',
26806 // it ends up called 'getGui()' on the child before 'init' was called,
26807 // which is not good
26808 _super.prototype.getGui.call(this), 'keydown', this.onKeyDown.bind(this));
26809 };
26810 PopupEditorWrapper.prototype.afterGuiAttached = function () {
26811 if (this.cellEditor.afterGuiAttached) {
26812 this.cellEditor.afterGuiAttached();
26813 }
26814 };
26815 PopupEditorWrapper.prototype.getValue = function () {
26816 return this.cellEditor.getValue();
26817 };
26818 PopupEditorWrapper.prototype.isCancelBeforeStart = function () {
26819 if (this.cellEditor.isCancelBeforeStart) {
26820 return this.cellEditor.isCancelBeforeStart();
26821 }
26822 return false;
26823 };
26824 PopupEditorWrapper.prototype.isCancelAfterEnd = function () {
26825 if (this.cellEditor.isCancelAfterEnd) {
26826 return this.cellEditor.isCancelAfterEnd();
26827 }
26828 return false;
26829 };
26830 PopupEditorWrapper.prototype.getPopupPosition = function () {
26831 if (this.cellEditor.getPopupPosition) {
26832 return this.cellEditor.getPopupPosition();
26833 }
26834 };
26835 PopupEditorWrapper.prototype.focusIn = function () {
26836 if (this.cellEditor.focusIn) {
26837 this.cellEditor.focusIn();
26838 }
26839 };
26840 PopupEditorWrapper.prototype.focusOut = function () {
26841 if (this.cellEditor.focusOut) {
26842 this.cellEditor.focusOut();
26843 }
26844 };
26845 PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';
26846 return PopupEditorWrapper;
26847}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
26848
26849
26850
26851/***/ }),
26852/* 110 */
26853/***/ (function(module, __webpack_exports__, __webpack_require__) {
26854
26855"use strict";
26856__webpack_require__.r(__webpack_exports__);
26857/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DndSourceComp", function() { return DndSourceComp; });
26858/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
26859/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
26860/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50);
26861/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
26862/**
26863 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26864 * @version v25.3.0
26865 * @link http://www.ag-grid.com/
26866 * @license MIT
26867 */
26868var __extends = (undefined && undefined.__extends) || (function () {
26869 var extendStatics = function (d, b) {
26870 extendStatics = Object.setPrototypeOf ||
26871 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26872 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26873 return extendStatics(d, b);
26874 };
26875 return function (d, b) {
26876 extendStatics(d, b);
26877 function __() { this.constructor = d; }
26878 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26879 };
26880})();
26881var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
26882 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26883 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26884 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;
26885 return c > 3 && r && Object.defineProperty(target, key, r), r;
26886};
26887
26888
26889
26890
26891var DndSourceComp = /** @class */ (function (_super) {
26892 __extends(DndSourceComp, _super);
26893 function DndSourceComp(rowNode, column, beans, eCell) {
26894 var _this = _super.call(this, "<div class=\"ag-drag-handle ag-row-drag\" draggable=\"true\"></div>") || this;
26895 _this.rowNode = rowNode;
26896 _this.column = column;
26897 _this.beans = beans;
26898 _this.eCell = eCell;
26899 return _this;
26900 }
26901 DndSourceComp.prototype.postConstruct = function () {
26902 var eGui = this.getGui();
26903 eGui.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_2__["createIconNoSpan"])('rowDrag', this.beans.gridOptionsWrapper, null));
26904 // we need to stop the event propagation here to avoid starting a range selection while dragging
26905 this.addGuiEventListener('mousedown', function (e) {
26906 e.stopPropagation();
26907 });
26908 this.addDragSource();
26909 this.checkVisibility();
26910 };
26911 DndSourceComp.prototype.addDragSource = function () {
26912 this.addGuiEventListener('dragstart', this.onDragStart.bind(this));
26913 };
26914 DndSourceComp.prototype.onDragStart = function (dragEvent) {
26915 var _this = this;
26916 var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;
26917 var isIE = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserIE"])();
26918 if (!isIE) {
26919 dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);
26920 }
26921 // default behaviour is to convert data to json and set into drag component
26922 var defaultOnRowDrag = function () {
26923 try {
26924 var jsonData = JSON.stringify(_this.rowNode.data);
26925 if (isIE) {
26926 dragEvent.dataTransfer.setData('text', jsonData);
26927 }
26928 else {
26929 dragEvent.dataTransfer.setData('application/json', jsonData);
26930 dragEvent.dataTransfer.setData('text/plain', jsonData);
26931 }
26932 }
26933 catch (e) {
26934 // if we cannot convert the data to json, then we do not set the type
26935 }
26936 };
26937 if (providedOnRowDrag) {
26938 providedOnRowDrag({ rowNode: this.rowNode, dragEvent: dragEvent });
26939 }
26940 else {
26941 defaultOnRowDrag();
26942 }
26943 };
26944 DndSourceComp.prototype.checkVisibility = function () {
26945 var visible = this.column.isDndSource(this.rowNode);
26946 this.setDisplayed(visible);
26947 };
26948 __decorate([
26949 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
26950 ], DndSourceComp.prototype, "postConstruct", null);
26951 return DndSourceComp;
26952}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
26953
26954
26955
26956/***/ }),
26957/* 111 */
26958/***/ (function(module, __webpack_exports__, __webpack_require__) {
26959
26960"use strict";
26961__webpack_require__.r(__webpack_exports__);
26962/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRootComp", function() { return HeaderRootComp; });
26963/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
26964/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
26965/* harmony import */ var _headerContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(112);
26966/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
26967/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(59);
26968/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16);
26969/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
26970/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(67);
26971/* harmony import */ var _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(131);
26972/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
26973/* harmony import */ var _constants_keyName__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(132);
26974/* harmony import */ var _gridBodyComp_centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(133);
26975/**
26976 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
26977 * @version v25.3.0
26978 * @link http://www.ag-grid.com/
26979 * @license MIT
26980 */
26981var __extends = (undefined && undefined.__extends) || (function () {
26982 var extendStatics = function (d, b) {
26983 extendStatics = Object.setPrototypeOf ||
26984 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26985 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
26986 return extendStatics(d, b);
26987 };
26988 return function (d, b) {
26989 extendStatics(d, b);
26990 function __() { this.constructor = d; }
26991 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26992 };
26993})();
26994var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
26995 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26996 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26997 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;
26998 return c > 3 && r && Object.defineProperty(target, key, r), r;
26999};
27000
27001
27002
27003
27004
27005
27006
27007
27008
27009
27010
27011
27012var HeaderRootComp = /** @class */ (function (_super) {
27013 __extends(HeaderRootComp, _super);
27014 function HeaderRootComp() {
27015 var _this = _super.call(this, HeaderRootComp.TEMPLATE) || this;
27016 _this.headerContainers = new Map();
27017 return _this;
27018 }
27019 HeaderRootComp.prototype.postConstruct = function () {
27020 var _this = this;
27021 _super.prototype.postConstruct.call(this);
27022 this.printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].DOM_LAYOUT_PRINT;
27023 this.gridApi.registerHeaderRootComp(this);
27024 this.autoWidthCalculator.registerHeaderRootComp(this);
27025 this.registerHeaderContainer(new _headerContainer__WEBPACK_IMPORTED_MODULE_2__["HeaderContainer"](this.eHeaderContainer, this.eHeaderViewport, null), 'center');
27026 this.registerHeaderContainer(new _headerContainer__WEBPACK_IMPORTED_MODULE_2__["HeaderContainer"](this.ePinnedLeftHeader, null, _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].PINNED_LEFT), 'left');
27027 this.registerHeaderContainer(new _headerContainer__WEBPACK_IMPORTED_MODULE_2__["HeaderContainer"](this.ePinnedRightHeader, null, _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].PINNED_RIGHT), 'right');
27028 this.headerContainers.forEach(function (container) { return _this.createManagedBean(container); });
27029 this.headerNavigationService.registerHeaderRoot(this);
27030 // shotgun way to get labels to change, eg from sum(amount) to avg(amount)
27031 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));
27032 // for setting ag-pivot-on / ag-pivot-off CSS classes
27033 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));
27034 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));
27035 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));
27036 this.onPivotModeChanged();
27037 this.addPreventHeaderScroll();
27038 this.createManagedBean(new _gridBodyComp_centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__["CenterWidthFeature"](function (width) { return _this.eHeaderContainer.style.width = width + "px"; }));
27039 if (this.columnController.isReady()) {
27040 this.refreshHeader();
27041 }
27042 this.setupHeaderHeight();
27043 this.controllersService.registerHeaderRootComp(this);
27044 };
27045 HeaderRootComp.prototype.setupHeaderHeight = function () {
27046 var listener = this.setHeaderHeight.bind(this);
27047 listener();
27048 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_HEADER_HEIGHT, listener);
27049 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_HEADER_HEIGHT, listener);
27050 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_HEADER_HEIGHT, listener);
27051 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_GROUP_HEADER_HEIGHT, listener);
27052 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_FLOATING_FILTERS_HEIGHT, listener);
27053 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
27054 };
27055 HeaderRootComp.prototype.registerHeaderContainer = function (headerContainer, type) {
27056 this.headerContainers.set(type, headerContainer);
27057 };
27058 HeaderRootComp.prototype.onTabKeyDown = function (e) {
27059 var isRtl = this.gridOptionsWrapper.isEnableRtl();
27060 var direction = e.shiftKey !== isRtl
27061 ? _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].LEFT
27062 : _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].RIGHT;
27063 if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||
27064 this.focusController.focusNextGridCoreContainer(e.shiftKey)) {
27065 e.preventDefault();
27066 }
27067 };
27068 HeaderRootComp.prototype.handleKeyDown = function (e) {
27069 var direction = null;
27070 switch (e.key) {
27071 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].LEFT:
27072 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].LEFT;
27073 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].RIGHT:
27074 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(direction)) {
27075 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].RIGHT;
27076 }
27077 this.headerNavigationService.navigateHorizontally(direction, false, e);
27078 break;
27079 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].UP:
27080 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].UP;
27081 case _constants_keyName__WEBPACK_IMPORTED_MODULE_10__["KeyName"].DOWN:
27082 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(direction)) {
27083 direction = _header_headerNavigationService__WEBPACK_IMPORTED_MODULE_8__["HeaderNavigationDirection"].DOWN;
27084 }
27085 if (this.headerNavigationService.navigateVertically(direction, null, e)) {
27086 e.preventDefault();
27087 }
27088 break;
27089 default:
27090 return;
27091 }
27092 };
27093 HeaderRootComp.prototype.onFocusOut = function (e) {
27094 var relatedTarget = e.relatedTarget;
27095 var eGui = this.getGui();
27096 if (!relatedTarget && eGui.contains(document.activeElement)) {
27097 return;
27098 }
27099 if (!eGui.contains(relatedTarget)) {
27100 this.focusController.clearFocusedHeader();
27101 }
27102 };
27103 HeaderRootComp.prototype.onDomLayoutChanged = function () {
27104 var newValue = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_5__["Constants"].DOM_LAYOUT_PRINT;
27105 if (this.printLayout !== newValue) {
27106 this.printLayout = newValue;
27107 this.refreshHeader();
27108 }
27109 };
27110 HeaderRootComp.prototype.setHorizontalScroll = function (offset) {
27111 this.eHeaderContainer.style.transform = "translateX(" + offset + "px)";
27112 };
27113 HeaderRootComp.prototype.forEachHeaderElement = function (callback) {
27114 this.headerContainers.forEach(function (childContainer) { return childContainer.forEachHeaderElement(callback); });
27115 };
27116 HeaderRootComp.prototype.refreshHeader = function () {
27117 this.headerContainers.forEach(function (container) { return container.refresh(); });
27118 };
27119 HeaderRootComp.prototype.onPivotModeChanged = function () {
27120 var pivotMode = this.columnController.isPivotMode();
27121 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.getGui(), 'ag-pivot-on', pivotMode);
27122 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.getGui(), 'ag-pivot-off', !pivotMode);
27123 };
27124 HeaderRootComp.prototype.setHeaderHeight = function () {
27125 var _a = this, columnController = _a.columnController, gridOptionsWrapper = _a.gridOptionsWrapper;
27126 var numberOfFloating = 0;
27127 var headerRowCount = columnController.getHeaderRowCount();
27128 var totalHeaderHeight;
27129 var groupHeight;
27130 var headerHeight;
27131 if (columnController.isPivotMode()) {
27132 groupHeight = gridOptionsWrapper.getPivotGroupHeaderHeight();
27133 headerHeight = gridOptionsWrapper.getPivotHeaderHeight();
27134 }
27135 else {
27136 var hasFloatingFilters = columnController.hasFloatingFilters();
27137 if (hasFloatingFilters) {
27138 headerRowCount++;
27139 numberOfFloating = 1;
27140 }
27141 groupHeight = gridOptionsWrapper.getGroupHeaderHeight();
27142 headerHeight = gridOptionsWrapper.getHeaderHeight();
27143 }
27144 var numberOfNonGroups = 1 + numberOfFloating;
27145 var numberOfGroups = headerRowCount - numberOfNonGroups;
27146 totalHeaderHeight = numberOfFloating * gridOptionsWrapper.getFloatingFiltersHeight();
27147 totalHeaderHeight += numberOfGroups * groupHeight;
27148 totalHeaderHeight += headerHeight;
27149 // one extra pixel is needed here to account for the
27150 // height of the border
27151 var px = totalHeaderHeight + 1 + "px";
27152 this.getGui().style.height = px;
27153 this.getGui().style.minHeight = px;
27154 };
27155 // if the user is in floating filter and hits tab a few times, the header can
27156 // end up scrolling to show items off the screen, leaving the grid and header
27157 // and the grid columns no longer in sync.
27158 HeaderRootComp.prototype.addPreventHeaderScroll = function () {
27159 var _this = this;
27160 this.addManagedListener(this.eHeaderViewport, 'scroll', function () {
27161 // if the header scrolls, the header will be out of sync. so we reset the
27162 // header scroll, and then scroll the body, which will in turn set the offset
27163 // on the header, giving the impression that the header scrolled as expected.
27164 var scrollLeft = _this.eHeaderViewport.scrollLeft;
27165 if (scrollLeft !== 0) {
27166 var gridBodyCon = _this.controllersService.getGridBodyController();
27167 gridBodyCon.getScrollFeature().scrollHorizontally(scrollLeft);
27168 _this.eHeaderViewport.scrollLeft = 0;
27169 }
27170 });
27171 };
27172 HeaderRootComp.prototype.getHeaderContainers = function () {
27173 return this.headerContainers;
27174 };
27175 HeaderRootComp.prototype.onPinnedLeftWidthChanged = function () {
27176 var displayed = this.pinnedWidthService.getPinnedLeftWidth() > 0;
27177 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.ePinnedLeftHeader, displayed);
27178 };
27179 HeaderRootComp.prototype.onPinnedRightWidthChanged = function () {
27180 var displayed = this.pinnedWidthService.getPinnedRightWidth() > 0;
27181 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.ePinnedRightHeader, displayed);
27182 };
27183 HeaderRootComp.TEMPLATE = "<div class=\"ag-header\" role=\"presentation\">\n <div class=\"ag-pinned-left-header\" ref=\"ePinnedLeftHeader\" role=\"presentation\"></div>\n <div class=\"ag-header-viewport\" ref=\"eHeaderViewport\" role=\"presentation\">\n <div class=\"ag-header-container\" ref=\"eHeaderContainer\" role=\"rowgroup\"></div>\n </div>\n <div class=\"ag-pinned-right-header\" ref=\"ePinnedRightHeader\" role=\"presentation\"></div>\n </div>";
27184 __decorate([
27185 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('ePinnedLeftHeader')
27186 ], HeaderRootComp.prototype, "ePinnedLeftHeader", void 0);
27187 __decorate([
27188 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('ePinnedRightHeader')
27189 ], HeaderRootComp.prototype, "ePinnedRightHeader", void 0);
27190 __decorate([
27191 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eHeaderContainer')
27192 ], HeaderRootComp.prototype, "eHeaderContainer", void 0);
27193 __decorate([
27194 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eHeaderViewport')
27195 ], HeaderRootComp.prototype, "eHeaderViewport", void 0);
27196 __decorate([
27197 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
27198 ], HeaderRootComp.prototype, "columnController", void 0);
27199 __decorate([
27200 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
27201 ], HeaderRootComp.prototype, "gridApi", void 0);
27202 __decorate([
27203 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('autoWidthCalculator')
27204 ], HeaderRootComp.prototype, "autoWidthCalculator", void 0);
27205 __decorate([
27206 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
27207 ], HeaderRootComp.prototype, "headerNavigationService", void 0);
27208 __decorate([
27209 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedWidthService')
27210 ], HeaderRootComp.prototype, "pinnedWidthService", void 0);
27211 __decorate([
27212 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
27213 ], HeaderRootComp.prototype, "controllersService", void 0);
27214 return HeaderRootComp;
27215}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_7__["ManagedFocusComponent"]));
27216
27217
27218
27219/***/ }),
27220/* 112 */
27221/***/ (function(module, __webpack_exports__, __webpack_require__) {
27222
27223"use strict";
27224__webpack_require__.r(__webpack_exports__);
27225/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderContainer", function() { return HeaderContainer; });
27226/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
27227/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
27228/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(113);
27229/* harmony import */ var _bodyDropTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(128);
27230/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
27231/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
27232/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);
27233/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42);
27234/**
27235 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
27236 * @version v25.3.0
27237 * @link http://www.ag-grid.com/
27238 * @license MIT
27239 */
27240var __extends = (undefined && undefined.__extends) || (function () {
27241 var extendStatics = function (d, b) {
27242 extendStatics = Object.setPrototypeOf ||
27243 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27244 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27245 return extendStatics(d, b);
27246 };
27247 return function (d, b) {
27248 extendStatics(d, b);
27249 function __() { this.constructor = d; }
27250 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27251 };
27252})();
27253var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27254 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27255 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27256 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;
27257 return c > 3 && r && Object.defineProperty(target, key, r), r;
27258};
27259
27260
27261
27262
27263
27264
27265
27266
27267var HeaderContainer = /** @class */ (function (_super) {
27268 __extends(HeaderContainer, _super);
27269 function HeaderContainer(eContainer, eViewport, pinned) {
27270 var _this = _super.call(this) || this;
27271 _this.groupsRowComps = [];
27272 _this.eContainer = eContainer;
27273 _this.pinned = pinned;
27274 _this.eViewport = eViewport;
27275 return _this;
27276 }
27277 HeaderContainer.prototype.forEachHeaderElement = function (callback) {
27278 if (this.groupsRowComps) {
27279 this.groupsRowComps.forEach(function (c) { return c.forEachHeaderElement(callback); });
27280 }
27281 if (this.columnsRowComp) {
27282 this.columnsRowComp.forEachHeaderElement(callback);
27283 }
27284 if (this.filtersRowComp) {
27285 this.filtersRowComp.forEachHeaderElement(callback);
27286 }
27287 };
27288 HeaderContainer.prototype.init = function () {
27289 // if value changes, then if not pivoting, we at least need to change the label eg from sum() to avg(),
27290 // if pivoting, then the columns have changed
27291 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
27292 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
27293 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));
27294 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
27295 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));
27296 this.setupDragAndDrop();
27297 };
27298 HeaderContainer.prototype.onColumnResized = function () {
27299 this.setWidthOfPinnedContainer();
27300 };
27301 HeaderContainer.prototype.onDisplayedColumnsChanged = function () {
27302 this.setWidthOfPinnedContainer();
27303 };
27304 HeaderContainer.prototype.onScrollVisibilityChanged = function () {
27305 this.setWidthOfPinnedContainer();
27306 };
27307 HeaderContainer.prototype.onScrollbarWidthChanged = function () {
27308 this.setWidthOfPinnedContainer();
27309 };
27310 HeaderContainer.prototype.setWidthOfPinnedContainer = function () {
27311 var pinningLeft = this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_LEFT;
27312 var pinningRight = this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_RIGHT;
27313 var controller = this.columnController;
27314 var isRtl = this.gridOptionsWrapper.isEnableRtl();
27315 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
27316 if (pinningLeft || pinningRight) {
27317 // size to fit all columns
27318 var width = controller[pinningLeft ? 'getDisplayedColumnsLeftWidth' : 'getDisplayedColumnsRightWidth']();
27319 // if there is a scroll showing (and taking up space, so Windows, and not iOS)
27320 // in the body, then we add extra space to keep header aligned with the body,
27321 // as body width fits the cols and the scrollbar
27322 var addPaddingForScrollbar = this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));
27323 if (addPaddingForScrollbar) {
27324 width += scrollbarWidth;
27325 }
27326 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setFixedWidth"])(this.eContainer, width);
27327 }
27328 };
27329 HeaderContainer.prototype.getRowComps = function () {
27330 var res = [];
27331 if (this.groupsRowComps) {
27332 res = res.concat(this.groupsRowComps);
27333 }
27334 if (this.columnsRowComp) {
27335 res.push(this.columnsRowComp);
27336 }
27337 if (this.filtersRowComp) {
27338 res.push(this.filtersRowComp);
27339 }
27340 return res;
27341 };
27342 // grid cols have changed - this also means the number of rows in the header can have
27343 // changed. so we remove all the old rows and insert new ones for a complete refresh
27344 HeaderContainer.prototype.onGridColumnsChanged = function () {
27345 this.refresh(true);
27346 };
27347 // we expose this for gridOptions.api.refreshHeader() to call
27348 HeaderContainer.prototype.refresh = function (keepColumns) {
27349 if (keepColumns === void 0) { keepColumns = false; }
27350 this.refreshRowComps(keepColumns);
27351 };
27352 HeaderContainer.prototype.setupDragAndDrop = function () {
27353 // center section has viewport, but pinned sections do not
27354 var dropContainer = this.eViewport ? this.eViewport : this.eContainer;
27355 var bodyDropTarget = new _bodyDropTarget__WEBPACK_IMPORTED_MODULE_3__["BodyDropTarget"](this.pinned, dropContainer);
27356 this.createManagedBean(bodyDropTarget);
27357 };
27358 HeaderContainer.prototype.destroyRowComps = function (keepColumns) {
27359 if (keepColumns === void 0) { keepColumns = false; }
27360 this.groupsRowComps.forEach(this.destroyRowComp.bind(this));
27361 this.groupsRowComps = [];
27362 this.destroyRowComp(this.filtersRowComp);
27363 this.filtersRowComp = undefined;
27364 if (!keepColumns) {
27365 this.destroyRowComp(this.columnsRowComp);
27366 this.columnsRowComp = undefined;
27367 }
27368 };
27369 HeaderContainer.prototype.destroyRowComp = function (rowComp) {
27370 if (rowComp) {
27371 this.destroyBean(rowComp);
27372 this.eContainer.removeChild(rowComp.getGui());
27373 }
27374 };
27375 HeaderContainer.prototype.refreshRowComps = function (keepColumns) {
27376 var _this = this;
27377 if (keepColumns === void 0) { keepColumns = false; }
27378 var sequence = new _utils__WEBPACK_IMPORTED_MODULE_7__["NumberSequence"]();
27379 var refreshColumnGroups = function () {
27380 var groupRowCount = _this.columnController.getHeaderRowCount() - 1;
27381 _this.groupsRowComps.forEach(_this.destroyRowComp.bind(_this));
27382 _this.groupsRowComps = [];
27383 for (var i = 0; i < groupRowCount; i++) {
27384 var rowComp = _this.createBean(new _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowComp"](sequence.next(), _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowType"].COLUMN_GROUP, _this.pinned));
27385 _this.groupsRowComps.push(rowComp);
27386 }
27387 };
27388 var refreshColumns = function () {
27389 var rowIndex = sequence.next();
27390 if (_this.columnsRowComp) {
27391 var rowIndexMismatch = _this.columnsRowComp.getRowIndex() !== rowIndex;
27392 if (!keepColumns || rowIndexMismatch) {
27393 _this.destroyRowComp(_this.columnsRowComp);
27394 _this.columnsRowComp = undefined;
27395 }
27396 }
27397 if (!_this.columnsRowComp) {
27398 _this.columnsRowComp = _this.createBean(new _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowComp"](rowIndex, _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowType"].COLUMN, _this.pinned));
27399 }
27400 };
27401 var refreshFilters = function () {
27402 var includeFloatingFilter = !_this.columnController.isPivotMode() && _this.columnController.hasFloatingFilters();
27403 var destroyPreviousComp = function () {
27404 _this.destroyRowComp(_this.filtersRowComp);
27405 _this.filtersRowComp = undefined;
27406 };
27407 if (!includeFloatingFilter) {
27408 destroyPreviousComp();
27409 return;
27410 }
27411 var rowIndex = sequence.next();
27412 if (_this.filtersRowComp) {
27413 var rowIndexMismatch = _this.filtersRowComp.getRowIndex() !== rowIndex;
27414 if (!keepColumns || rowIndexMismatch) {
27415 destroyPreviousComp();
27416 }
27417 }
27418 if (!_this.filtersRowComp) {
27419 _this.filtersRowComp = _this.createBean(new _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowComp"](rowIndex, _headerRowComp__WEBPACK_IMPORTED_MODULE_2__["HeaderRowType"].FLOATING_FILTER, _this.pinned));
27420 }
27421 };
27422 refreshColumnGroups();
27423 refreshColumns();
27424 refreshFilters();
27425 // this re-adds the this.columnsRowComp, which is fine, it just means the DOM will rearrange then,
27426 // taking it out of the last position and re-inserting relative to the other rows.
27427 this.getRowComps().forEach(function (rowComp) { return _this.eContainer.appendChild(rowComp.getGui()); });
27428 };
27429 __decorate([
27430 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
27431 ], HeaderContainer.prototype, "columnController", void 0);
27432 __decorate([
27433 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('scrollVisibleService')
27434 ], HeaderContainer.prototype, "scrollVisibleService", void 0);
27435 __decorate([
27436 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
27437 ], HeaderContainer.prototype, "init", null);
27438 __decorate([
27439 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
27440 ], HeaderContainer.prototype, "destroyRowComps", null);
27441 return HeaderContainer;
27442}(_context_beanStub__WEBPACK_IMPORTED_MODULE_6__["BeanStub"]));
27443
27444
27445
27446/***/ }),
27447/* 113 */
27448/***/ (function(module, __webpack_exports__, __webpack_require__) {
27449
27450"use strict";
27451__webpack_require__.r(__webpack_exports__);
27452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowType", function() { return HeaderRowType; });
27453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return HeaderRowComp; });
27454/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
27455/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
27456/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
27457/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
27458/* harmony import */ var _header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(114);
27459/* harmony import */ var _headerGroup_headerGroupWrapperComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(124);
27460/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
27461/* harmony import */ var _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(125);
27462/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(34);
27463/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
27464/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(14);
27465/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(33);
27466/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(47);
27467/**
27468 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
27469 * @version v25.3.0
27470 * @link http://www.ag-grid.com/
27471 * @license MIT
27472 */
27473var __extends = (undefined && undefined.__extends) || (function () {
27474 var extendStatics = function (d, b) {
27475 extendStatics = Object.setPrototypeOf ||
27476 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27477 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27478 return extendStatics(d, b);
27479 };
27480 return function (d, b) {
27481 extendStatics(d, b);
27482 function __() { this.constructor = d; }
27483 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27484 };
27485})();
27486var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27487 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27488 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27489 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;
27490 return c > 3 && r && Object.defineProperty(target, key, r), r;
27491};
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505var HeaderRowType;
27506(function (HeaderRowType) {
27507 HeaderRowType[HeaderRowType["COLUMN_GROUP"] = 0] = "COLUMN_GROUP";
27508 HeaderRowType[HeaderRowType["COLUMN"] = 1] = "COLUMN";
27509 HeaderRowType[HeaderRowType["FLOATING_FILTER"] = 2] = "FLOATING_FILTER";
27510})(HeaderRowType || (HeaderRowType = {}));
27511var HeaderRowComp = /** @class */ (function (_super) {
27512 __extends(HeaderRowComp, _super);
27513 function HeaderRowComp(dept, type, pinned) {
27514 var _this = _super.call(this, /* html */ "<div class=\"ag-header-row\" role=\"row\"></div>") || this;
27515 _this.headerComps = {};
27516 _this.setRowIndex(dept);
27517 _this.type = type;
27518 _this.pinned = pinned;
27519 var niceClassName = HeaderRowType[type].toLowerCase().replace(/_/g, '-');
27520 _this.addCssClass("ag-header-row-" + niceClassName);
27521 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_8__["isBrowserSafari"])()) {
27522 // fix for a Safari rendering bug that caused the header to flicker above chart panels
27523 // as you move the mouse over the header
27524 _this.getGui().style.transform = 'translateZ(0)';
27525 }
27526 return _this;
27527 }
27528 HeaderRowComp.prototype.forEachHeaderElement = function (callback) {
27529 var _this = this;
27530 Object.keys(this.headerComps).forEach(function (key) {
27531 callback(_this.headerComps[key]);
27532 });
27533 };
27534 HeaderRowComp.prototype.setRowIndex = function (rowIndex) {
27535 this.dept = rowIndex;
27536 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["setAriaRowIndex"])(this.getGui(), rowIndex + 1);
27537 };
27538 HeaderRowComp.prototype.getRowIndex = function () {
27539 return this.dept;
27540 };
27541 HeaderRowComp.prototype.getType = function () {
27542 return this.type;
27543 };
27544 HeaderRowComp.prototype.destroyAllChildComponents = function () {
27545 var idsOfAllChildren = Object.keys(this.headerComps);
27546 this.destroyChildComponents(idsOfAllChildren);
27547 };
27548 HeaderRowComp.prototype.destroyChildComponents = function (idsToDestroy) {
27549 var _this = this;
27550 idsToDestroy.forEach(function (id) {
27551 var childHeaderWrapper = _this.headerComps[id];
27552 _this.getGui().removeChild(childHeaderWrapper.getGui());
27553 _this.destroyBean(childHeaderWrapper);
27554 delete _this.headerComps[id];
27555 });
27556 };
27557 HeaderRowComp.prototype.onRowHeightChanged = function () {
27558 var headerRowCount = this.columnController.getHeaderRowCount();
27559 var sizes = [];
27560 var numberOfFloating = 0;
27561 var groupHeight;
27562 var headerHeight;
27563 if (this.columnController.isPivotMode()) {
27564 groupHeight = this.gridOptionsWrapper.getPivotGroupHeaderHeight();
27565 headerHeight = this.gridOptionsWrapper.getPivotHeaderHeight();
27566 }
27567 else {
27568 if (this.columnController.hasFloatingFilters()) {
27569 headerRowCount++;
27570 numberOfFloating = 1;
27571 }
27572 groupHeight = this.gridOptionsWrapper.getGroupHeaderHeight();
27573 headerHeight = this.gridOptionsWrapper.getHeaderHeight();
27574 }
27575 var numberOfNonGroups = 1 + numberOfFloating;
27576 var numberOfGroups = headerRowCount - numberOfNonGroups;
27577 for (var i = 0; i < numberOfGroups; i++) {
27578 sizes.push(groupHeight);
27579 }
27580 sizes.push(headerHeight);
27581 for (var i = 0; i < numberOfFloating; i++) {
27582 sizes.push(this.gridOptionsWrapper.getFloatingFiltersHeight());
27583 }
27584 var rowHeight = 0;
27585 for (var i = 0; i < this.dept; i++) {
27586 rowHeight += sizes[i];
27587 }
27588 this.getGui().style.top = rowHeight + 'px';
27589 this.getGui().style.height = sizes[this.dept] + 'px';
27590 };
27591 //noinspection JSUnusedLocalSymbols
27592 HeaderRowComp.prototype.init = function () {
27593 this.onRowHeightChanged();
27594 this.onVirtualColumnsChanged();
27595 this.setWidth();
27596 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27597 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_PIVOT_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27598 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27599 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_PIVOT_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));
27600 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_FLOATING_FILTERS_HEIGHT, this.onRowHeightChanged.bind(this));
27601 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));
27602 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
27603 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));
27604 // this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
27605 };
27606 HeaderRowComp.prototype.onColumnResized = function () {
27607 this.setWidth();
27608 };
27609 HeaderRowComp.prototype.setWidth = function () {
27610 var width = this.getWidthForRow();
27611 this.getGui().style.width = width + 'px';
27612 };
27613 HeaderRowComp.prototype.getWidthForRow = function () {
27614 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].DOM_LAYOUT_PRINT;
27615 if (printLayout) {
27616 var centerRow = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.pinned);
27617 if (centerRow) {
27618 return this.columnController.getContainerWidth(_constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_RIGHT)
27619 + this.columnController.getContainerWidth(_constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_LEFT)
27620 + this.columnController.getContainerWidth(null);
27621 }
27622 return 0;
27623 }
27624 // if not printing, just return the width as normal
27625 return this.columnController.getContainerWidth(this.pinned);
27626 };
27627 HeaderRowComp.prototype.onDisplayedColumnsChanged = function () {
27628 this.onVirtualColumnsChanged();
27629 this.setWidth();
27630 };
27631 HeaderRowComp.prototype.getColumnsInViewport = function () {
27632 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].DOM_LAYOUT_PRINT;
27633 return printLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();
27634 };
27635 HeaderRowComp.prototype.getColumnsInViewportPrintLayout = function () {
27636 var _this = this;
27637 // for print layout, we add all columns into the center
27638 if (this.pinned != null) {
27639 return [];
27640 }
27641 var viewportColumns = [];
27642 var actualDepth = this.getActualDepth();
27643 [_constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_LEFT, null, _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_RIGHT].forEach(function (pinned) {
27644 var items = _this.columnController.getVirtualHeaderGroupRow(pinned, actualDepth);
27645 viewportColumns = viewportColumns.concat(items);
27646 });
27647 return viewportColumns;
27648 };
27649 HeaderRowComp.prototype.getActualDepth = function () {
27650 return this.type == HeaderRowType.FLOATING_FILTER ? this.dept - 1 : this.dept;
27651 };
27652 HeaderRowComp.prototype.getColumnsInViewportNormalLayout = function () {
27653 // when in normal layout, we add the columns for that container only
27654 return this.columnController.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());
27655 };
27656 HeaderRowComp.prototype.onVirtualColumnsChanged = function () {
27657 var _this = this;
27658 var compIdsToRemove = Object.keys(this.headerComps);
27659 var compIdsWanted = [];
27660 var columns = this.getColumnsInViewport();
27661 columns.forEach(function (child) {
27662 // skip groups that have no displayed children. this can happen when the group is broken,
27663 // and this section happens to have nothing to display for the open / closed state.
27664 // (a broken group is one that is split, ie columns in the group have a non-group column
27665 // in between them)
27666 if (child.isEmptyGroup()) {
27667 return;
27668 }
27669 var idOfChild = child.getUniqueId();
27670 var eParentContainer = _this.getGui();
27671 // if we already have this cell rendered, do nothing
27672 var previousComp = _this.headerComps[idOfChild];
27673 // it's possible there is a new Column with the same ID, but it's for a different Column.
27674 // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,
27675 // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are
27676 // about to replace it in the this.headerComps map.
27677 var previousCompForOldColumn = previousComp && previousComp.getColumn() != child;
27678 if (previousCompForOldColumn) {
27679 _this.destroyChildComponents([idOfChild]);
27680 Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["removeFromArray"])(compIdsToRemove, idOfChild);
27681 previousComp = undefined;
27682 }
27683 if (previousComp) {
27684 // already have comp for this column, so do nothing
27685 Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["removeFromArray"])(compIdsToRemove, idOfChild);
27686 }
27687 else {
27688 // don't have comp, need to create one
27689 var headerComp = _this.createHeaderComp(child);
27690 _this.headerComps[idOfChild] = headerComp;
27691 eParentContainer.appendChild(headerComp.getGui());
27692 }
27693 compIdsWanted.push(idOfChild);
27694 });
27695 // we want to keep columns that are focused, otherwise keyboard navigation breaks
27696 var isFocusedAndDisplayed = function (colId) {
27697 var wrapper = _this.headerComps[colId];
27698 var isFocused = _this.focusController.isHeaderWrapperFocused(wrapper);
27699 if (!isFocused) {
27700 return false;
27701 }
27702 var isDisplayed = _this.columnController.isDisplayed(wrapper.getColumn());
27703 return isDisplayed;
27704 };
27705 var focusedAndDisplayedComps = compIdsToRemove.filter(isFocusedAndDisplayed);
27706 focusedAndDisplayedComps.forEach(function (colId) {
27707 Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["removeFromArray"])(compIdsToRemove, colId);
27708 compIdsWanted.push(colId);
27709 });
27710 // at this point, anything left in currentChildIds is an element that is no longer in the viewport
27711 this.destroyChildComponents(compIdsToRemove);
27712 var ensureDomOrder = this.gridOptionsWrapper.isEnsureDomOrder();
27713 if (ensureDomOrder) {
27714 var correctChildOrder = compIdsWanted.map(function (id) { return _this.headerComps[id].getGui(); });
27715 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_11__["setDomChildOrder"])(this.getGui(), correctChildOrder);
27716 }
27717 };
27718 HeaderRowComp.prototype.createHeaderComp = function (columnGroupChild) {
27719 var result;
27720 switch (this.type) {
27721 case HeaderRowType.COLUMN_GROUP:
27722 result = new _headerGroup_headerGroupWrapperComp__WEBPACK_IMPORTED_MODULE_5__["HeaderGroupWrapperComp"](columnGroupChild, this.pinned);
27723 break;
27724 case HeaderRowType.FLOATING_FILTER:
27725 result = new _filter_floating_floatingFilterWrapper__WEBPACK_IMPORTED_MODULE_7__["FloatingFilterWrapper"](columnGroupChild, this.pinned);
27726 break;
27727 default:
27728 result = new _header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_4__["HeaderWrapperComp"](columnGroupChild, this.pinned);
27729 break;
27730 }
27731 this.createBean(result);
27732 result.setParentComponent(this);
27733 return result;
27734 };
27735 HeaderRowComp.prototype.getHeaderComps = function () {
27736 return this.headerComps;
27737 };
27738 __decorate([
27739 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
27740 ], HeaderRowComp.prototype, "columnController", void 0);
27741 __decorate([
27742 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusController')
27743 ], HeaderRowComp.prototype, "focusController", void 0);
27744 __decorate([
27745 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
27746 ], HeaderRowComp.prototype, "destroyAllChildComponents", null);
27747 __decorate([
27748 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
27749 ], HeaderRowComp.prototype, "init", null);
27750 return HeaderRowComp;
27751}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
27752
27753
27754
27755/***/ }),
27756/* 114 */
27757/***/ (function(module, __webpack_exports__, __webpack_require__) {
27758
27759"use strict";
27760__webpack_require__.r(__webpack_exports__);
27761/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderWrapperComp", function() { return HeaderWrapperComp; });
27762/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
27763/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
27764/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78);
27765/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
27766/* harmony import */ var _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(115);
27767/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
27768/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(116);
27769/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(117);
27770/* harmony import */ var _selectAllFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(118);
27771/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(59);
27772/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(70);
27773/* harmony import */ var _abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(123);
27774/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(47);
27775/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(33);
27776/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60);
27777/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(26);
27778/**
27779 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
27780 * @version v25.3.0
27781 * @link http://www.ag-grid.com/
27782 * @license MIT
27783 */
27784var __extends = (undefined && undefined.__extends) || (function () {
27785 var extendStatics = function (d, b) {
27786 extendStatics = Object.setPrototypeOf ||
27787 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27788 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
27789 return extendStatics(d, b);
27790 };
27791 return function (d, b) {
27792 extendStatics(d, b);
27793 function __() { this.constructor = d; }
27794 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27795 };
27796})();
27797var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27798 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27799 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27800 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;
27801 return c > 3 && r && Object.defineProperty(target, key, r), r;
27802};
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819var HeaderWrapperComp = /** @class */ (function (_super) {
27820 __extends(HeaderWrapperComp, _super);
27821 function HeaderWrapperComp(column, pinned) {
27822 var _this = _super.call(this, HeaderWrapperComp.TEMPLATE) || this;
27823 _this.headerCompVersion = 0;
27824 _this.refreshFunctions = [];
27825 _this.column = column;
27826 _this.pinned = pinned;
27827 return _this;
27828 }
27829 HeaderWrapperComp.prototype.postConstruct = function () {
27830 _super.prototype.postConstruct.call(this);
27831 this.colDefVersion = this.columnController.getColDefVersion();
27832 this.updateState();
27833 this.setupWidth();
27834 this.setupMovingCss();
27835 this.setupTooltip();
27836 this.setupResize();
27837 this.setupMenuClass();
27838 this.setupSortableClass();
27839 this.addColumnHoverListener();
27840 this.addActiveHeaderMouseListeners();
27841 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_6__["HoverFeature"]([this.column], this.getGui()));
27842 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_ACTIVE_CHANGED, this.onFilterChanged.bind(this));
27843 this.onFilterChanged();
27844 this.createManagedBean(new _selectAllFeature__WEBPACK_IMPORTED_MODULE_8__["SelectAllFeature"](this.cbSelectAll, this.column));
27845 this.cbSelectAll.setParentComponent(this);
27846 this.createManagedBean(new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_7__["SetLeftFeature"](this.column, this.getGui(), this.beans));
27847 this.addAttributes();
27848 _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__["CssClassApplier"].addHeaderClassesFromColDef(this.column.getColDef(), this.getGui(), this.gridOptionsWrapper, this.column, null);
27849 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
27850 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));
27851 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));
27852 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));
27853 this.appendHeaderComp();
27854 };
27855 HeaderWrapperComp.prototype.onColumnRowGroupChanged = function () {
27856 this.checkDisplayName();
27857 };
27858 HeaderWrapperComp.prototype.onColumnPivotChanged = function () {
27859 this.checkDisplayName();
27860 };
27861 HeaderWrapperComp.prototype.onColumnValueChanged = function () {
27862 this.checkDisplayName();
27863 };
27864 HeaderWrapperComp.prototype.checkDisplayName = function () {
27865 // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)
27866 if (this.displayName !== this.calculateDisplayName()) {
27867 this.refresh();
27868 }
27869 };
27870 HeaderWrapperComp.prototype.updateState = function () {
27871 var colDef = this.column.getColDef();
27872 this.sortable = colDef.sortable;
27873 this.displayName = this.calculateDisplayName();
27874 this.draggable = this.workOutDraggable();
27875 };
27876 HeaderWrapperComp.prototype.calculateDisplayName = function () {
27877 return this.columnController.getDisplayNameForColumn(this.column, 'header', true);
27878 };
27879 HeaderWrapperComp.prototype.onNewColumnsLoaded = function () {
27880 var colDefVersionNow = this.columnController.getColDefVersion();
27881 if (colDefVersionNow != this.colDefVersion) {
27882 this.colDefVersion = colDefVersionNow;
27883 this.refresh();
27884 }
27885 };
27886 HeaderWrapperComp.prototype.refresh = function () {
27887 this.updateState();
27888 this.refreshHeaderComp();
27889 this.refreshFunctions.forEach(function (f) { return f(); });
27890 };
27891 HeaderWrapperComp.prototype.refreshHeaderComp = function () {
27892 // if no header comp created yet, it's cos of async creation, so first version is yet
27893 // to get here, in which case nothing to refresh
27894 if (!this.headerComp) {
27895 return;
27896 }
27897 var colDef = this.column.getColDef();
27898 var newHeaderCompConfigured = this.colDefHeaderComponent != colDef.headerComponent
27899 || this.colDefHeaderComponentFramework != colDef.headerComponentFramework;
27900 var headerCompRefreshed = newHeaderCompConfigured ? false : this.attemptHeaderCompRefresh();
27901 if (headerCompRefreshed) {
27902 var dragSourceIsMissing = this.draggable && !this.moveDragSource;
27903 var dragSourceNeedsRemoving = !this.draggable && this.moveDragSource;
27904 if (dragSourceIsMissing || dragSourceNeedsRemoving) {
27905 this.attachDraggingToHeaderComp();
27906 }
27907 }
27908 else {
27909 this.appendHeaderComp();
27910 }
27911 };
27912 HeaderWrapperComp.prototype.destroyHeaderComp = function () {
27913 if (this.headerComp) {
27914 this.getGui().removeChild(this.headerCompGui);
27915 this.headerComp = this.destroyBean(this.headerComp);
27916 this.headerCompGui = undefined;
27917 }
27918 this.removeMoveDragSource();
27919 };
27920 HeaderWrapperComp.prototype.removeMoveDragSource = function () {
27921 if (this.moveDragSource) {
27922 this.dragAndDropService.removeDragSource(this.moveDragSource);
27923 this.moveDragSource = undefined;
27924 }
27925 };
27926 HeaderWrapperComp.prototype.attemptHeaderCompRefresh = function () {
27927 // if no refresh method, then we want to replace the headerComp
27928 if (!this.headerComp.refresh) {
27929 return false;
27930 }
27931 // if the cell renderer has a refresh method, we call this instead of doing a refresh
27932 var params = this.createParams();
27933 // take any custom params off of the user
27934 var finalParams = this.userComponentFactory.createFinalParams(this.getComponentHolder(), 'headerComponent', params);
27935 var res = this.headerComp.refresh(finalParams);
27936 return res;
27937 };
27938 HeaderWrapperComp.prototype.addActiveHeaderMouseListeners = function () {
27939 var _this = this;
27940 var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };
27941 this.addManagedListener(this.getGui(), 'mouseenter', listener);
27942 this.addManagedListener(this.getGui(), 'mouseleave', listener);
27943 };
27944 HeaderWrapperComp.prototype.setActiveHeader = function (active) {
27945 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-active', active);
27946 };
27947 HeaderWrapperComp.prototype.onFocusIn = function (e) {
27948 if (!this.getGui().contains(e.relatedTarget)) {
27949 var headerRow = this.getParentComponent();
27950 this.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());
27951 }
27952 this.setActiveHeader(true);
27953 };
27954 HeaderWrapperComp.prototype.onFocusOut = function (e) {
27955 if (this.getGui().contains(e.relatedTarget)) {
27956 return;
27957 }
27958 this.setActiveHeader(false);
27959 };
27960 HeaderWrapperComp.prototype.handleKeyDown = function (e) {
27961 var headerComp = this.headerComp;
27962 if (!headerComp) {
27963 return;
27964 }
27965 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].SPACE) {
27966 var checkbox = this.cbSelectAll;
27967 if (checkbox.isDisplayed() && !checkbox.getGui().contains(document.activeElement)) {
27968 e.preventDefault();
27969 checkbox.setValue(!checkbox.getValue());
27970 }
27971 }
27972 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].ENTER) {
27973 if (e.ctrlKey || e.metaKey) {
27974 if (this.menuEnabled && headerComp.showMenu) {
27975 e.preventDefault();
27976 headerComp.showMenu();
27977 }
27978 }
27979 else if (this.sortable) {
27980 var multiSort = e.shiftKey;
27981 this.sortController.progressSort(this.column, multiSort, "uiColumnSorted");
27982 }
27983 }
27984 };
27985 HeaderWrapperComp.prototype.onTabKeyDown = function () { };
27986 HeaderWrapperComp.prototype.getComponentHolder = function () {
27987 return this.column.getColDef();
27988 };
27989 HeaderWrapperComp.prototype.addColumnHoverListener = function () {
27990 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_HOVER_CHANGED, this.onColumnHover.bind(this));
27991 this.onColumnHover();
27992 };
27993 HeaderWrapperComp.prototype.onColumnHover = function () {
27994 var isHovered = this.columnHoverService.isHovered(this.column);
27995 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui(), 'ag-column-hover', isHovered);
27996 };
27997 HeaderWrapperComp.prototype.setupSortableClass = function () {
27998 var _this = this;
27999 var eGui = this.getGui();
28000 var updateSortableCssClass = function () {
28001 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(eGui, 'ag-header-cell-sortable', !!_this.sortable);
28002 };
28003 var updateAriaSort = function () {
28004 if (_this.sortable) {
28005 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["setAriaSort"])(eGui, Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["getAriaSortState"])(_this.column));
28006 }
28007 else {
28008 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_12__["removeAriaSort"])(eGui);
28009 }
28010 };
28011 updateSortableCssClass();
28012 updateAriaSort();
28013 this.refreshFunctions.push(updateSortableCssClass);
28014 this.refreshFunctions.push(updateAriaSort);
28015 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_SORT_CHANGED, updateAriaSort.bind(this));
28016 };
28017 HeaderWrapperComp.prototype.onFilterChanged = function () {
28018 var filterPresent = this.column.isFilterActive();
28019 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-filtered', filterPresent);
28020 };
28021 HeaderWrapperComp.prototype.appendHeaderComp = function () {
28022 this.headerCompVersion++;
28023 var colDef = this.column.getColDef();
28024 this.colDefHeaderComponent = colDef.headerComponent;
28025 this.colDefHeaderComponentFramework = colDef.headerComponentFramework;
28026 var params = this.createParams();
28027 var callback = this.afterHeaderCompCreated.bind(this, this.headerCompVersion);
28028 this.userComponentFactory.newHeaderComponent(params).then(callback);
28029 };
28030 HeaderWrapperComp.prototype.createParams = function () {
28031 var _this = this;
28032 var colDef = this.column.getColDef();
28033 this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;
28034 var params = {
28035 column: this.column,
28036 displayName: this.displayName,
28037 enableSorting: colDef.sortable,
28038 enableMenu: this.menuEnabled,
28039 showColumnMenu: function (source) {
28040 _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);
28041 },
28042 progressSort: function (multiSort) {
28043 _this.sortController.progressSort(_this.column, !!multiSort, "uiColumnSorted");
28044 },
28045 setSort: function (sort, multiSort) {
28046 _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, "uiColumnSorted");
28047 },
28048 api: this.gridApi,
28049 columnApi: this.columnApi,
28050 context: this.gridOptionsWrapper.getContext(),
28051 eGridHeader: this.getGui()
28052 };
28053 return params;
28054 };
28055 HeaderWrapperComp.prototype.afterHeaderCompCreated = function (version, headerComp) {
28056 if (version != this.headerCompVersion || !this.isAlive()) {
28057 this.destroyBean(headerComp);
28058 return;
28059 }
28060 this.destroyHeaderComp();
28061 this.headerComp = headerComp;
28062 this.headerCompGui = headerComp.getGui();
28063 this.getGui().appendChild(this.headerCompGui);
28064 this.attachDraggingToHeaderComp();
28065 };
28066 HeaderWrapperComp.prototype.onColumnMovingChanged = function () {
28067 // this function adds or removes the moving css, based on if the col is moving.
28068 // this is what makes the header go dark when it is been moved (gives impression to
28069 // user that the column was picked up).
28070 if (this.column.isMoving()) {
28071 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addCssClass"])(this.getGui(), 'ag-header-cell-moving');
28072 }
28073 else {
28074 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["removeCssClass"])(this.getGui(), 'ag-header-cell-moving');
28075 }
28076 };
28077 HeaderWrapperComp.prototype.workOutDraggable = function () {
28078 var colDef = this.column.getColDef();
28079 var isSuppressMovableColumns = this.gridOptionsWrapper.isSuppressMovableColumns();
28080 var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;
28081 // we should still be allowed drag the column, even if it can't be moved, if the column
28082 // can be dragged to a rowGroup or pivot drop zone
28083 return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;
28084 };
28085 HeaderWrapperComp.prototype.attachDraggingToHeaderComp = function () {
28086 var _this = this;
28087 this.removeMoveDragSource();
28088 if (!this.draggable) {
28089 return;
28090 }
28091 this.moveDragSource = {
28092 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].HeaderCell,
28093 eElement: this.headerCompGui,
28094 defaultIconName: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_HIDE,
28095 getDragItem: function () { return _this.createDragItem(); },
28096 dragItemName: this.displayName,
28097 onDragStarted: function () { return _this.column.setMoving(true, "uiColumnMoved"); },
28098 onDragStopped: function () { return _this.column.setMoving(false, "uiColumnMoved"); }
28099 };
28100 this.dragAndDropService.addDragSource(this.moveDragSource, true);
28101 };
28102 HeaderWrapperComp.prototype.createDragItem = function () {
28103 var visibleState = {};
28104 visibleState[this.column.getId()] = this.column.isVisible();
28105 return {
28106 columns: [this.column],
28107 visibleState: visibleState
28108 };
28109 };
28110 HeaderWrapperComp.prototype.setupResize = function () {
28111 var _this = this;
28112 var colDef = this.getComponentHolder();
28113 var destroyResizeFuncs = [];
28114 var canResize;
28115 var canAutosize;
28116 var addResize = function () {
28117 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["setDisplayed"])(_this.eResize, canResize);
28118 if (!canResize) {
28119 return;
28120 }
28121 var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({
28122 eResizeBar: _this.eResize,
28123 onResizeStart: _this.onResizeStart.bind(_this),
28124 onResizing: _this.onResizing.bind(_this, false),
28125 onResizeEnd: _this.onResizing.bind(_this, true)
28126 });
28127 destroyResizeFuncs.push(finishedWithResizeFunc);
28128 if (canAutosize) {
28129 var skipHeaderOnAutoSize_1 = _this.gridOptionsWrapper.isSkipHeaderOnAutoSize();
28130 var autoSizeColListener_1 = function () {
28131 _this.columnController.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, "uiColumnResized");
28132 };
28133 _this.eResize.addEventListener('dblclick', autoSizeColListener_1);
28134 var touchListener_1 = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"](_this.eResize);
28135 touchListener_1.addEventListener(_widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"].EVENT_DOUBLE_TAP, autoSizeColListener_1);
28136 _this.addDestroyFunc(function () {
28137 _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);
28138 touchListener_1.removeEventListener(_widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"].EVENT_DOUBLE_TAP, autoSizeColListener_1);
28139 touchListener_1.destroy();
28140 });
28141 }
28142 };
28143 var removeResize = function () {
28144 destroyResizeFuncs.forEach(function (f) { return f(); });
28145 destroyResizeFuncs.length = 0;
28146 };
28147 var refresh = function () {
28148 var resize = _this.column.isResizable();
28149 var autoSize = !_this.gridOptionsWrapper.isSuppressAutoSize() && !colDef.suppressAutoSize;
28150 var propertyChange = resize !== canResize || autoSize !== canAutosize;
28151 if (propertyChange) {
28152 canResize = resize;
28153 canAutosize = autoSize;
28154 removeResize();
28155 addResize();
28156 }
28157 };
28158 refresh();
28159 this.addDestroyFunc(removeResize);
28160 this.refreshFunctions.push(refresh);
28161 };
28162 HeaderWrapperComp.prototype.onResizing = function (finished, resizeAmount) {
28163 var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);
28164 var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];
28165 this.columnController.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, "uiColumnDragged");
28166 if (finished) {
28167 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["removeCssClass"])(this.getGui(), 'ag-column-resizing');
28168 }
28169 };
28170 HeaderWrapperComp.prototype.onResizeStart = function (shiftKey) {
28171 this.resizeStartWidth = this.column.getActualWidth();
28172 this.resizeWithShiftKey = shiftKey;
28173 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_13__["addCssClass"])(this.getGui(), 'ag-column-resizing');
28174 };
28175 HeaderWrapperComp.prototype.getTooltipParams = function () {
28176 var res = _super.prototype.getTooltipParams.call(this);
28177 res.location = 'header';
28178 res.colDef = this.column.getColDef();
28179 return res;
28180 };
28181 HeaderWrapperComp.prototype.setupTooltip = function () {
28182 var _this = this;
28183 var refresh = function () {
28184 var newTooltipText = _this.column.getColDef().headerTooltip;
28185 _this.setTooltip(Object(_utils_string__WEBPACK_IMPORTED_MODULE_15__["escapeString"])(newTooltipText));
28186 };
28187 refresh();
28188 this.refreshFunctions.push(refresh);
28189 };
28190 HeaderWrapperComp.prototype.setupMovingCss = function () {
28191 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MOVING_CHANGED, this.onColumnMovingChanged.bind(this));
28192 this.onColumnMovingChanged();
28193 };
28194 HeaderWrapperComp.prototype.addAttributes = function () {
28195 this.getGui().setAttribute("col-id", this.column.getColId());
28196 };
28197 HeaderWrapperComp.prototype.setupWidth = function () {
28198 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_WIDTH_CHANGED, this.onColumnWidthChanged.bind(this));
28199 this.onColumnWidthChanged();
28200 };
28201 HeaderWrapperComp.prototype.setupMenuClass = function () {
28202 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MENU_VISIBLE_CHANGED, this.onMenuVisible.bind(this));
28203 };
28204 HeaderWrapperComp.prototype.onMenuVisible = function () {
28205 this.addOrRemoveCssClass('ag-column-menu-visible', this.column.isMenuVisible());
28206 };
28207 HeaderWrapperComp.prototype.onColumnWidthChanged = function () {
28208 this.getGui().style.width = this.column.getActualWidth() + 'px';
28209 };
28210 // optionally inverts the drag, depending on pinned and RTL
28211 // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?
28212 HeaderWrapperComp.prototype.normaliseResizeAmount = function (dragChange) {
28213 var result = dragChange;
28214 if (this.gridOptionsWrapper.isEnableRtl()) {
28215 // for RTL, dragging left makes the col bigger, except when pinning left
28216 if (this.pinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_LEFT) {
28217 result *= -1;
28218 }
28219 }
28220 else {
28221 // for LTR (ie normal), dragging left makes the col smaller, except when pinning right
28222 if (this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_RIGHT) {
28223 result *= -1;
28224 }
28225 }
28226 return result;
28227 };
28228 HeaderWrapperComp.TEMPLATE = "<div class=\"ag-header-cell\" role=\"columnheader\" unselectable=\"on\" tabindex=\"-1\">\n <div ref=\"eResize\" class=\"ag-header-cell-resize\" role=\"presentation\"></div>\n <ag-checkbox ref=\"cbSelectAll\" class=\"ag-header-select-all\" role=\"presentation\"></ag-checkbox>\n </div>";
28229 __decorate([
28230 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
28231 ], HeaderWrapperComp.prototype, "dragAndDropService", void 0);
28232 __decorate([
28233 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
28234 ], HeaderWrapperComp.prototype, "columnController", void 0);
28235 __decorate([
28236 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('horizontalResizeService')
28237 ], HeaderWrapperComp.prototype, "horizontalResizeService", void 0);
28238 __decorate([
28239 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('menuFactory')
28240 ], HeaderWrapperComp.prototype, "menuFactory", void 0);
28241 __decorate([
28242 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
28243 ], HeaderWrapperComp.prototype, "gridApi", void 0);
28244 __decorate([
28245 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
28246 ], HeaderWrapperComp.prototype, "columnApi", void 0);
28247 __decorate([
28248 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
28249 ], HeaderWrapperComp.prototype, "sortController", void 0);
28250 __decorate([
28251 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
28252 ], HeaderWrapperComp.prototype, "userComponentFactory", void 0);
28253 __decorate([
28254 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
28255 ], HeaderWrapperComp.prototype, "columnHoverService", void 0);
28256 __decorate([
28257 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
28258 ], HeaderWrapperComp.prototype, "beans", void 0);
28259 __decorate([
28260 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eResize')
28261 ], HeaderWrapperComp.prototype, "eResize", void 0);
28262 __decorate([
28263 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('cbSelectAll')
28264 ], HeaderWrapperComp.prototype, "cbSelectAll", void 0);
28265 __decorate([
28266 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
28267 ], HeaderWrapperComp.prototype, "destroyHeaderComp", null);
28268 return HeaderWrapperComp;
28269}(_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_11__["AbstractHeaderWrapper"]));
28270
28271
28272
28273/***/ }),
28274/* 115 */
28275/***/ (function(module, __webpack_exports__, __webpack_require__) {
28276
28277"use strict";
28278__webpack_require__.r(__webpack_exports__);
28279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return CssClassApplier; });
28280/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
28281/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
28282/**
28283 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28284 * @version v25.3.0
28285 * @link http://www.ag-grid.com/
28286 * @license MIT
28287 */
28288
28289
28290var CssClassApplier = /** @class */ (function () {
28291 function CssClassApplier() {
28292 }
28293 CssClassApplier.addHeaderClassesFromColDef = function (abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {
28294 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(abstractColDef)) {
28295 return;
28296 }
28297 this.addColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup);
28298 };
28299 CssClassApplier.addToolPanelClassesFromColDef = function (abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {
28300 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(abstractColDef)) {
28301 return;
28302 }
28303 this.addColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup);
28304 };
28305 CssClassApplier.addColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {
28306 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(classesOrFunc)) {
28307 return;
28308 }
28309 var classToUse;
28310 if (typeof classesOrFunc === 'function') {
28311 var params = {
28312 // bad naming, as colDef here can be a group or a column,
28313 // however most people won't appreciate the difference,
28314 // so keeping it as colDef to avoid confusion.
28315 colDef: abstractColDef,
28316 column: column,
28317 columnGroup: columnGroup,
28318 context: gridOptionsWrapper.getContext(),
28319 api: gridOptionsWrapper.getApi()
28320 };
28321 var headerClassFunc = classesOrFunc;
28322 classToUse = headerClassFunc(params);
28323 }
28324 else {
28325 classToUse = classesOrFunc;
28326 }
28327 if (typeof classToUse === 'string') {
28328 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(eHeaderCell, classToUse);
28329 }
28330 else if (Array.isArray(classToUse)) {
28331 classToUse.forEach(function (cssClassItem) {
28332 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(eHeaderCell, cssClassItem);
28333 });
28334 }
28335 };
28336 return CssClassApplier;
28337}());
28338
28339
28340
28341/***/ }),
28342/* 116 */
28343/***/ (function(module, __webpack_exports__, __webpack_require__) {
28344
28345"use strict";
28346__webpack_require__.r(__webpack_exports__);
28347/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HoverFeature", function() { return HoverFeature; });
28348/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
28349/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
28350/**
28351 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28352 * @version v25.3.0
28353 * @link http://www.ag-grid.com/
28354 * @license MIT
28355 */
28356var __extends = (undefined && undefined.__extends) || (function () {
28357 var extendStatics = function (d, b) {
28358 extendStatics = Object.setPrototypeOf ||
28359 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28360 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28361 return extendStatics(d, b);
28362 };
28363 return function (d, b) {
28364 extendStatics(d, b);
28365 function __() { this.constructor = d; }
28366 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28367 };
28368})();
28369var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28370 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28371 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28372 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;
28373 return c > 3 && r && Object.defineProperty(target, key, r), r;
28374};
28375
28376
28377var HoverFeature = /** @class */ (function (_super) {
28378 __extends(HoverFeature, _super);
28379 function HoverFeature(columns, element) {
28380 var _this = _super.call(this) || this;
28381 _this.columns = columns;
28382 _this.element = element;
28383 return _this;
28384 }
28385 HoverFeature.prototype.postConstruct = function () {
28386 this.addMouseHoverListeners();
28387 };
28388 HoverFeature.prototype.addMouseHoverListeners = function () {
28389 this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));
28390 this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));
28391 };
28392 HoverFeature.prototype.onMouseOut = function () {
28393 this.columnHoverService.clearMouseOver();
28394 };
28395 HoverFeature.prototype.onMouseOver = function () {
28396 this.columnHoverService.setMouseOver(this.columns);
28397 };
28398 __decorate([
28399 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnHoverService')
28400 ], HoverFeature.prototype, "columnHoverService", void 0);
28401 __decorate([
28402 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
28403 ], HoverFeature.prototype, "postConstruct", null);
28404 return HoverFeature;
28405}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
28406
28407
28408
28409/***/ }),
28410/* 117 */
28411/***/ (function(module, __webpack_exports__, __webpack_require__) {
28412
28413"use strict";
28414__webpack_require__.r(__webpack_exports__);
28415/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return SetLeftFeature; });
28416/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
28417/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
28418/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
28419/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
28420/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
28421/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
28422/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
28423/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24);
28424/**
28425 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28426 * @version v25.3.0
28427 * @link http://www.ag-grid.com/
28428 * @license MIT
28429 */
28430var __extends = (undefined && undefined.__extends) || (function () {
28431 var extendStatics = function (d, b) {
28432 extendStatics = Object.setPrototypeOf ||
28433 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28434 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28435 return extendStatics(d, b);
28436 };
28437 return function (d, b) {
28438 extendStatics(d, b);
28439 function __() { this.constructor = d; }
28440 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28441 };
28442})();
28443var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28444 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28445 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28446 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;
28447 return c > 3 && r && Object.defineProperty(target, key, r), r;
28448};
28449
28450
28451
28452
28453
28454
28455
28456
28457var SetLeftFeature = /** @class */ (function (_super) {
28458 __extends(SetLeftFeature, _super);
28459 function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {
28460 var _this = _super.call(this) || this;
28461 _this.columnOrGroup = columnOrGroup;
28462 _this.eCell = eCell;
28463 _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;
28464 _this.colsSpanning = colsSpanning;
28465 _this.beans = beans;
28466 _this.printLayout = beans.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].DOM_LAYOUT_PRINT;
28467 return _this;
28468 }
28469 SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {
28470 this.colsSpanning = colsSpanning;
28471 this.onLeftChanged();
28472 };
28473 SetLeftFeature.prototype.getColumnOrGroup = function () {
28474 if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {
28475 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["last"])(this.colsSpanning);
28476 }
28477 return this.columnOrGroup;
28478 };
28479 SetLeftFeature.prototype.postConstruct = function () {
28480 this.addManagedListener(this.columnOrGroup, _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));
28481 this.setLeftFirstTime();
28482 // when in print layout, the left position is also dependent on the width of the pinned sections.
28483 // so additionally update left if any column width changes.
28484 if (this.printLayout) {
28485 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));
28486 }
28487 };
28488 SetLeftFeature.prototype.setLeftFirstTime = function () {
28489 var suppressMoveAnimation = this.beans.gridOptionsWrapper.isSuppressColumnMoveAnimation();
28490 var oldLeftExists = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.columnOrGroup.getOldLeft());
28491 var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;
28492 if (animateColumnMove) {
28493 this.animateInLeft();
28494 }
28495 else {
28496 this.onLeftChanged();
28497 }
28498 };
28499 SetLeftFeature.prototype.animateInLeft = function () {
28500 var _this = this;
28501 var colOrGroup = this.getColumnOrGroup();
28502 var left = colOrGroup.getLeft();
28503 var oldLeft = colOrGroup.getOldLeft();
28504 var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);
28505 var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);
28506 this.setLeft(oldActualLeft);
28507 // we must keep track of the left we want to set to, as this would otherwise lead to a race
28508 // condition, if the user changed the left value many times in one VM turn, then we want to make
28509 // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left
28510 // position. eg if user changes column position twice, then setLeft() below executes twice in next
28511 // VM turn, but only one (the correct one) should get applied.
28512 this.actualLeft = actualLeft;
28513 this.beans.columnAnimationService.executeNextVMTurn(function () {
28514 // test this left value is the latest one to be applied, and if not, do nothing
28515 if (_this.actualLeft === actualLeft) {
28516 _this.setLeft(actualLeft);
28517 }
28518 });
28519 };
28520 SetLeftFeature.prototype.onLeftChanged = function () {
28521 var colOrGroup = this.getColumnOrGroup();
28522 var left = colOrGroup.getLeft();
28523 this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);
28524 this.setLeft(this.actualLeft);
28525 };
28526 SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {
28527 if (!this.printLayout) {
28528 return leftPosition;
28529 }
28530 if (colOrGroup.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT) {
28531 return leftPosition;
28532 }
28533 var leftWidth = this.beans.columnController.getDisplayedColumnsLeftWidth();
28534 if (colOrGroup.getPinned() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT) {
28535 var bodyWidth = this.beans.columnController.getBodyContainerWidth();
28536 return leftWidth + bodyWidth + leftPosition;
28537 }
28538 // is in body
28539 return leftWidth + leftPosition;
28540 };
28541 SetLeftFeature.prototype.setLeft = function (value) {
28542 // if the value is null, then that means the column is no longer
28543 // displayed. there is logic in the rendering to fade these columns
28544 // out, so we don't try and change their left positions.
28545 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(value)) {
28546 this.eCell.style.left = value + "px";
28547 }
28548 var indexColumn;
28549 if (this.columnOrGroup instanceof _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
28550 indexColumn = this.columnOrGroup;
28551 }
28552 else {
28553 var columnGroup = this.columnOrGroup;
28554 var children = columnGroup.getLeafColumns();
28555 if (!children.length) {
28556 return;
28557 }
28558 if (children.length > 1) {
28559 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaColSpan"])(this.ariaEl, children.length);
28560 }
28561 indexColumn = children[0];
28562 }
28563 var index = this.beans.columnController.getAriaColumnIndex(indexColumn);
28564 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaColIndex"])(this.ariaEl, index);
28565 };
28566 __decorate([
28567 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
28568 ], SetLeftFeature.prototype, "postConstruct", null);
28569 return SetLeftFeature;
28570}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
28571
28572
28573
28574/***/ }),
28575/* 118 */
28576/***/ (function(module, __webpack_exports__, __webpack_require__) {
28577
28578"use strict";
28579__webpack_require__.r(__webpack_exports__);
28580/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectAllFeature", function() { return SelectAllFeature; });
28581/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(119);
28582/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
28583/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
28584/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
28585/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
28586/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47);
28587/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
28588/**
28589 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28590 * @version v25.3.0
28591 * @link http://www.ag-grid.com/
28592 * @license MIT
28593 */
28594var __extends = (undefined && undefined.__extends) || (function () {
28595 var extendStatics = function (d, b) {
28596 extendStatics = Object.setPrototypeOf ||
28597 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28598 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28599 return extendStatics(d, b);
28600 };
28601 return function (d, b) {
28602 extendStatics(d, b);
28603 function __() { this.constructor = d; }
28604 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28605 };
28606})();
28607var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28608 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28609 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28610 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;
28611 return c > 3 && r && Object.defineProperty(target, key, r), r;
28612};
28613
28614
28615
28616
28617
28618
28619
28620var SelectAllFeature = /** @class */ (function (_super) {
28621 __extends(SelectAllFeature, _super);
28622 function SelectAllFeature(cbSelectAll, column) {
28623 var _this = _super.call(this) || this;
28624 _this.cbSelectAllVisible = false;
28625 _this.processingEventFromCheckbox = false;
28626 _this.cbSelectAll = cbSelectAll;
28627 _this.column = column;
28628 var colDef = column.getColDef();
28629 _this.filteredOnly = colDef ? !!colDef.headerCheckboxSelectionFilteredOnly : false;
28630 return _this;
28631 }
28632 SelectAllFeature.prototype.postConstruct = function () {
28633 this.showOrHideSelectAll();
28634 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));
28635 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));
28636 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));
28637 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));
28638 this.addManagedListener(this.cbSelectAll, _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"].EVENT_CHANGED, this.onCbSelectAll.bind(this));
28639 this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');
28640 this.refreshSelectAllLabel();
28641 };
28642 SelectAllFeature.prototype.showOrHideSelectAll = function () {
28643 this.cbSelectAllVisible = this.isCheckboxSelection();
28644 this.cbSelectAll.setDisplayed(this.cbSelectAllVisible);
28645 if (this.cbSelectAllVisible) {
28646 // in case user is trying this feature with the wrong model type
28647 this.checkRightRowModelType();
28648 // make sure checkbox is showing the right state
28649 this.updateStateOfCheckbox();
28650 }
28651 this.refreshHeaderAriaDescribedBy(this.cbSelectAllVisible);
28652 };
28653 SelectAllFeature.prototype.refreshHeaderAriaDescribedBy = function (isSelectAllVisible) {
28654 var parentHeader = this.cbSelectAll.getParentComponent();
28655 var parentHeaderGui = parentHeader && parentHeader.getGui();
28656 if (!parentHeaderGui || !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["isVisible"])(parentHeaderGui)) {
28657 return;
28658 }
28659 var describedByIds = '';
28660 if (parentHeaderGui) {
28661 describedByIds = Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["getAriaDescribedBy"])(parentHeaderGui);
28662 }
28663 var cbSelectAllId = this.cbSelectAll.getInputElement().id;
28664 var describedByIdsHasSelectAllFeature = describedByIds.indexOf(cbSelectAllId) !== -1;
28665 if (isSelectAllVisible) {
28666 if (!describedByIdsHasSelectAllFeature) {
28667 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaDescribedBy"])(parentHeaderGui, cbSelectAllId + " " + describedByIds.trim());
28668 }
28669 }
28670 else if (describedByIdsHasSelectAllFeature) {
28671 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaDescribedBy"])(parentHeaderGui, describedByIds.trim().split(' ').filter(function (id) { return id === cbSelectAllId; }).join(' '));
28672 }
28673 };
28674 SelectAllFeature.prototype.onModelChanged = function () {
28675 if (!this.cbSelectAllVisible) {
28676 return;
28677 }
28678 this.updateStateOfCheckbox();
28679 };
28680 SelectAllFeature.prototype.onSelectionChanged = function () {
28681 if (!this.cbSelectAllVisible) {
28682 return;
28683 }
28684 this.updateStateOfCheckbox();
28685 };
28686 SelectAllFeature.prototype.getNextCheckboxState = function (selectionCount) {
28687 // if no rows, always have it unselected
28688 if (selectionCount.selected === 0 && selectionCount.notSelected === 0) {
28689 return false;
28690 }
28691 // if mix of selected and unselected, this is the tri-state
28692 if (selectionCount.selected > 0 && selectionCount.notSelected > 0) {
28693 return null;
28694 }
28695 // only selected
28696 if (selectionCount.selected > 0) {
28697 return true;
28698 }
28699 // nothing selected
28700 return false;
28701 };
28702 SelectAllFeature.prototype.updateStateOfCheckbox = function () {
28703 if (this.processingEventFromCheckbox) {
28704 return;
28705 }
28706 this.processingEventFromCheckbox = true;
28707 var selectionCount = this.getSelectionCount();
28708 var allSelected = this.getNextCheckboxState(selectionCount);
28709 this.cbSelectAll.setValue(allSelected);
28710 this.refreshSelectAllLabel();
28711 this.processingEventFromCheckbox = false;
28712 };
28713 SelectAllFeature.prototype.refreshSelectAllLabel = function () {
28714 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
28715 var checked = this.cbSelectAll.getValue();
28716 var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');
28717 var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');
28718 this.cbSelectAll.setInputAriaLabel(ariaLabel + " (" + ariaStatus + ")");
28719 };
28720 SelectAllFeature.prototype.getSelectionCount = function () {
28721 var _this = this;
28722 var selectedCount = 0;
28723 var notSelectedCount = 0;
28724 var callback = function (node) {
28725 if (_this.gridOptionsWrapper.isGroupSelectsChildren() && node.group) {
28726 return;
28727 }
28728 if (node.isSelected()) {
28729 selectedCount++;
28730 }
28731 else if (!node.selectable) {
28732 // don't count non-selectable nodes!
28733 }
28734 else {
28735 notSelectedCount++;
28736 }
28737 };
28738 if (this.filteredOnly) {
28739 this.gridApi.forEachNodeAfterFilter(callback);
28740 }
28741 else {
28742 this.gridApi.forEachNode(callback);
28743 }
28744 return {
28745 notSelected: notSelectedCount,
28746 selected: selectedCount
28747 };
28748 };
28749 SelectAllFeature.prototype.checkRightRowModelType = function () {
28750 var rowModelType = this.rowModel.getType();
28751 var rowModelMatches = rowModelType === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
28752 if (!rowModelMatches) {
28753 console.warn("AG Grid: selectAllCheckbox is only available if using normal row model, you are using " + rowModelType);
28754 }
28755 };
28756 SelectAllFeature.prototype.onCbSelectAll = function () {
28757 if (this.processingEventFromCheckbox) {
28758 return;
28759 }
28760 if (!this.cbSelectAllVisible) {
28761 return;
28762 }
28763 var value = this.cbSelectAll.getValue();
28764 if (value) {
28765 this.selectionController.selectAllRowNodes(this.filteredOnly);
28766 }
28767 else {
28768 this.selectionController.deselectAllRowNodes(this.filteredOnly);
28769 }
28770 };
28771 SelectAllFeature.prototype.isCheckboxSelection = function () {
28772 var result = this.column.getColDef().headerCheckboxSelection;
28773 if (typeof result === 'function') {
28774 var func = result;
28775 result = func({
28776 column: this.column,
28777 colDef: this.column.getColDef(),
28778 columnApi: this.columnApi,
28779 api: this.gridApi
28780 });
28781 }
28782 if (result) {
28783 if (this.gridOptionsWrapper.isRowModelServerSide()) {
28784 console.warn('headerCheckboxSelection is not supported for Server Side Row Model');
28785 return false;
28786 }
28787 if (this.gridOptionsWrapper.isRowModelInfinite()) {
28788 console.warn('headerCheckboxSelection is not supported for Infinite Row Model');
28789 return false;
28790 }
28791 if (this.gridOptionsWrapper.isRowModelViewport()) {
28792 console.warn('headerCheckboxSelection is not supported for Viewport Row Model');
28793 return false;
28794 }
28795 // otherwise the row model is compatible, so return true
28796 return true;
28797 }
28798 return false;
28799 };
28800 __decorate([
28801 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
28802 ], SelectAllFeature.prototype, "gridApi", void 0);
28803 __decorate([
28804 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
28805 ], SelectAllFeature.prototype, "columnApi", void 0);
28806 __decorate([
28807 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
28808 ], SelectAllFeature.prototype, "rowModel", void 0);
28809 __decorate([
28810 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionController')
28811 ], SelectAllFeature.prototype, "selectionController", void 0);
28812 __decorate([
28813 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
28814 ], SelectAllFeature.prototype, "postConstruct", null);
28815 return SelectAllFeature;
28816}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
28817
28818
28819
28820/***/ }),
28821/* 119 */
28822/***/ (function(module, __webpack_exports__, __webpack_require__) {
28823
28824"use strict";
28825__webpack_require__.r(__webpack_exports__);
28826/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return AgCheckbox; });
28827/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
28828/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(120);
28829/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
28830/**
28831 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28832 * @version v25.3.0
28833 * @link http://www.ag-grid.com/
28834 * @license MIT
28835 */
28836var __extends = (undefined && undefined.__extends) || (function () {
28837 var extendStatics = function (d, b) {
28838 extendStatics = Object.setPrototypeOf ||
28839 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28840 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28841 return extendStatics(d, b);
28842 };
28843 return function (d, b) {
28844 extendStatics(d, b);
28845 function __() { this.constructor = d; }
28846 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28847 };
28848})();
28849
28850
28851
28852var AgCheckbox = /** @class */ (function (_super) {
28853 __extends(AgCheckbox, _super);
28854 function AgCheckbox(config, className, inputType) {
28855 if (className === void 0) { className = 'ag-checkbox'; }
28856 if (inputType === void 0) { inputType = 'checkbox'; }
28857 var _this = _super.call(this, config, className, inputType) || this;
28858 _this.labelAlignment = 'right';
28859 _this.selected = false;
28860 _this.readOnly = false;
28861 _this.passive = false;
28862 return _this;
28863 }
28864 AgCheckbox.prototype.addInputListeners = function () {
28865 this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));
28866 this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));
28867 };
28868 AgCheckbox.prototype.getNextValue = function () {
28869 return this.selected === undefined ? true : !this.selected;
28870 };
28871 AgCheckbox.prototype.setPassive = function (passive) {
28872 this.passive = passive;
28873 };
28874 AgCheckbox.prototype.isReadOnly = function () {
28875 return this.readOnly;
28876 };
28877 AgCheckbox.prototype.setReadOnly = function (readOnly) {
28878 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-disabled', readOnly);
28879 this.eInput.disabled = readOnly;
28880 this.readOnly = readOnly;
28881 };
28882 AgCheckbox.prototype.setDisabled = function (disabled) {
28883 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-disabled', disabled);
28884 return _super.prototype.setDisabled.call(this, disabled);
28885 };
28886 AgCheckbox.prototype.toggle = function () {
28887 var previousValue = this.isSelected();
28888 var nextValue = this.getNextValue();
28889 if (this.passive) {
28890 this.dispatchChange(nextValue, previousValue);
28891 }
28892 else {
28893 this.setValue(nextValue);
28894 }
28895 };
28896 AgCheckbox.prototype.getValue = function () {
28897 return this.isSelected();
28898 };
28899 AgCheckbox.prototype.setValue = function (value, silent) {
28900 this.refreshSelectedClass(value);
28901 this.setSelected(value, silent);
28902 return this;
28903 };
28904 AgCheckbox.prototype.setName = function (name) {
28905 var input = this.getInputElement();
28906 input.name = name;
28907 return this;
28908 };
28909 AgCheckbox.prototype.isSelected = function () {
28910 return this.selected;
28911 };
28912 AgCheckbox.prototype.setSelected = function (selected, silent) {
28913 if (this.isSelected() === selected) {
28914 return;
28915 }
28916 this.previousValue = this.isSelected();
28917 selected = this.selected = typeof selected === 'boolean' ? selected : undefined;
28918 this.eInput.checked = selected;
28919 this.eInput.indeterminate = selected === undefined;
28920 if (!silent) {
28921 this.dispatchChange(this.selected, this.previousValue);
28922 }
28923 };
28924 AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {
28925 this.dispatchEvent({ type: AgCheckbox.EVENT_CHANGED, selected: selected, previousValue: previousValue, event: event });
28926 var input = this.getInputElement();
28927 var checkboxChangedEvent = {
28928 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CHECKBOX_CHANGED,
28929 id: input.id,
28930 name: input.name,
28931 selected: selected,
28932 previousValue: previousValue
28933 };
28934 this.eventService.dispatchEvent(checkboxChangedEvent);
28935 };
28936 AgCheckbox.prototype.onCheckboxClick = function (e) {
28937 if (this.passive) {
28938 return;
28939 }
28940 var previousValue = this.isSelected();
28941 var selected = this.selected = e.target.checked;
28942 this.refreshSelectedClass(selected);
28943 this.dispatchChange(selected, previousValue, e);
28944 };
28945 AgCheckbox.prototype.refreshSelectedClass = function (value) {
28946 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-checked', value === true);
28947 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(this.eWrapper, 'ag-indeterminate', value == null);
28948 };
28949 return AgCheckbox;
28950}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_1__["AgAbstractInputField"]));
28951
28952
28953
28954/***/ }),
28955/* 120 */
28956/***/ (function(module, __webpack_exports__, __webpack_require__) {
28957
28958"use strict";
28959__webpack_require__.r(__webpack_exports__);
28960/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractInputField", function() { return AgAbstractInputField; });
28961/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
28962/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(121);
28963/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
28964/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47);
28965/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
28966/**
28967 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
28968 * @version v25.3.0
28969 * @link http://www.ag-grid.com/
28970 * @license MIT
28971 */
28972var __extends = (undefined && undefined.__extends) || (function () {
28973 var extendStatics = function (d, b) {
28974 extendStatics = Object.setPrototypeOf ||
28975 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28976 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
28977 return extendStatics(d, b);
28978 };
28979 return function (d, b) {
28980 extendStatics(d, b);
28981 function __() { this.constructor = d; }
28982 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28983 };
28984})();
28985var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
28986 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
28987 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28988 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;
28989 return c > 3 && r && Object.defineProperty(target, key, r), r;
28990};
28991
28992
28993
28994
28995
28996var AgAbstractInputField = /** @class */ (function (_super) {
28997 __extends(AgAbstractInputField, _super);
28998 function AgAbstractInputField(config, className, inputType, displayFieldTag) {
28999 if (inputType === void 0) { inputType = 'text'; }
29000 if (displayFieldTag === void 0) { displayFieldTag = 'input'; }
29001 var _this = _super.call(this, config, /* html */ "\n <div role=\"presentation\">\n <div ref=\"eLabel\" class=\"ag-input-field-label\"></div>\n <div ref=\"eWrapper\" class=\"ag-wrapper ag-input-wrapper\" role=\"presentation\">\n <" + displayFieldTag + " ref=\"eInput\" class=\"ag-input-field-input\"></" + displayFieldTag + ">\n </div>\n </div>", className) || this;
29002 _this.inputType = inputType;
29003 _this.displayFieldTag = displayFieldTag;
29004 return _this;
29005 }
29006 AgAbstractInputField.prototype.postConstruct = function () {
29007 _super.prototype.postConstruct.call(this);
29008 this.setInputType();
29009 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eLabel, this.className + "-label");
29010 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eWrapper, this.className + "-input-wrapper");
29011 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eInput, this.className + "-input");
29012 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.getGui(), 'ag-input-field');
29013 this.eInput.id = this.eInput.id || "ag-" + this.getCompId() + "-input";
29014 var _a = this.config, width = _a.width, value = _a.value;
29015 if (width != null) {
29016 this.setWidth(width);
29017 }
29018 if (value != null) {
29019 this.setValue(value);
29020 }
29021 this.addInputListeners();
29022 };
29023 AgAbstractInputField.prototype.refreshLabel = function () {
29024 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getLabel())) {
29025 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabelledBy"])(this.eInput, this.getLabelId());
29026 }
29027 else {
29028 this.eInput.removeAttribute('aria-labelledby');
29029 }
29030 _super.prototype.refreshLabel.call(this);
29031 };
29032 AgAbstractInputField.prototype.addInputListeners = function () {
29033 var _this = this;
29034 this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });
29035 };
29036 AgAbstractInputField.prototype.setInputType = function () {
29037 if (this.displayFieldTag === 'input') {
29038 this.eInput.setAttribute('type', this.inputType);
29039 }
29040 };
29041 AgAbstractInputField.prototype.getInputElement = function () {
29042 return this.eInput;
29043 };
29044 AgAbstractInputField.prototype.setInputWidth = function (width) {
29045 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setElementWidth"])(this.eWrapper, width);
29046 return this;
29047 };
29048 AgAbstractInputField.prototype.setInputName = function (name) {
29049 this.getInputElement().setAttribute('name', name);
29050 return this;
29051 };
29052 AgAbstractInputField.prototype.getFocusableElement = function () {
29053 return this.eInput;
29054 };
29055 AgAbstractInputField.prototype.setMaxLength = function (length) {
29056 var eInput = this.eInput;
29057 eInput.maxLength = length;
29058 return this;
29059 };
29060 AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {
29061 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveAttribute"])(this.eInput, 'placeholder', placeholder);
29062 return this;
29063 };
29064 AgAbstractInputField.prototype.setInputAriaLabel = function (label) {
29065 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(this.eInput, label);
29066 return this;
29067 };
29068 AgAbstractInputField.prototype.setDisabled = function (disabled) {
29069 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisabled"])(this.eInput, disabled);
29070 return _super.prototype.setDisabled.call(this, disabled);
29071 };
29072 __decorate([
29073 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eLabel')
29074 ], AgAbstractInputField.prototype, "eLabel", void 0);
29075 __decorate([
29076 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eWrapper')
29077 ], AgAbstractInputField.prototype, "eWrapper", void 0);
29078 __decorate([
29079 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eInput')
29080 ], AgAbstractInputField.prototype, "eInput", void 0);
29081 return AgAbstractInputField;
29082}(_agAbstractField__WEBPACK_IMPORTED_MODULE_1__["AgAbstractField"]));
29083
29084
29085
29086/***/ }),
29087/* 121 */
29088/***/ (function(module, __webpack_exports__, __webpack_require__) {
29089
29090"use strict";
29091__webpack_require__.r(__webpack_exports__);
29092/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return AgAbstractField; });
29093/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(122);
29094/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
29095/**
29096 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29097 * @version v25.3.0
29098 * @link http://www.ag-grid.com/
29099 * @license MIT
29100 */
29101var __extends = (undefined && undefined.__extends) || (function () {
29102 var extendStatics = function (d, b) {
29103 extendStatics = Object.setPrototypeOf ||
29104 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29105 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29106 return extendStatics(d, b);
29107 };
29108 return function (d, b) {
29109 extendStatics(d, b);
29110 function __() { this.constructor = d; }
29111 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29112 };
29113})();
29114
29115
29116var AgAbstractField = /** @class */ (function (_super) {
29117 __extends(AgAbstractField, _super);
29118 function AgAbstractField(config, template, className) {
29119 var _this = _super.call(this, config, template) || this;
29120 _this.className = className;
29121 _this.disabled = false;
29122 return _this;
29123 }
29124 AgAbstractField.prototype.postConstruct = function () {
29125 _super.prototype.postConstruct.call(this);
29126 if (this.className) {
29127 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addCssClass"])(this.getGui(), this.className);
29128 }
29129 };
29130 AgAbstractField.prototype.onValueChange = function (callbackFn) {
29131 var _this = this;
29132 this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () { return callbackFn(_this.getValue()); });
29133 return this;
29134 };
29135 AgAbstractField.prototype.getWidth = function () {
29136 return this.getGui().clientWidth;
29137 };
29138 AgAbstractField.prototype.setWidth = function (width) {
29139 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setFixedWidth"])(this.getGui(), width);
29140 return this;
29141 };
29142 AgAbstractField.prototype.getPreviousValue = function () {
29143 return this.previousValue;
29144 };
29145 AgAbstractField.prototype.getValue = function () {
29146 return this.value;
29147 };
29148 AgAbstractField.prototype.setValue = function (value, silent) {
29149 if (this.value === value) {
29150 return this;
29151 }
29152 this.previousValue = this.value;
29153 this.value = value;
29154 if (!silent) {
29155 this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });
29156 }
29157 return this;
29158 };
29159 AgAbstractField.prototype.setDisabled = function (disabled) {
29160 disabled = !!disabled;
29161 var element = this.getGui();
29162 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisabled"])(element, disabled);
29163 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveCssClass"])(element, 'ag-disabled', disabled);
29164 this.disabled = disabled;
29165 return this;
29166 };
29167 AgAbstractField.prototype.isDisabled = function () {
29168 return !!this.disabled;
29169 };
29170 AgAbstractField.EVENT_CHANGED = 'valueChange';
29171 return AgAbstractField;
29172}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__["AgAbstractLabel"]));
29173
29174
29175
29176/***/ }),
29177/* 122 */
29178/***/ (function(module, __webpack_exports__, __webpack_require__) {
29179
29180"use strict";
29181__webpack_require__.r(__webpack_exports__);
29182/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractLabel", function() { return AgAbstractLabel; });
29183/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
29184/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
29185/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
29186/**
29187 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29188 * @version v25.3.0
29189 * @link http://www.ag-grid.com/
29190 * @license MIT
29191 */
29192var __extends = (undefined && undefined.__extends) || (function () {
29193 var extendStatics = function (d, b) {
29194 extendStatics = Object.setPrototypeOf ||
29195 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29196 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29197 return extendStatics(d, b);
29198 };
29199 return function (d, b) {
29200 extendStatics(d, b);
29201 function __() { this.constructor = d; }
29202 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29203 };
29204})();
29205var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29206 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29207 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29208 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;
29209 return c > 3 && r && Object.defineProperty(target, key, r), r;
29210};
29211
29212
29213
29214var AgAbstractLabel = /** @class */ (function (_super) {
29215 __extends(AgAbstractLabel, _super);
29216 function AgAbstractLabel(config, template) {
29217 var _this = _super.call(this, template) || this;
29218 _this.labelSeparator = '';
29219 _this.labelAlignment = 'left';
29220 _this.label = '';
29221 _this.config = config || {};
29222 return _this;
29223 }
29224 AgAbstractLabel.prototype.postConstruct = function () {
29225 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.getGui(), 'ag-labeled');
29226 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eLabel, 'ag-label');
29227 var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;
29228 if (labelSeparator != null) {
29229 this.setLabelSeparator(labelSeparator);
29230 }
29231 if (label != null) {
29232 this.setLabel(label);
29233 }
29234 if (labelWidth != null) {
29235 this.setLabelWidth(labelWidth);
29236 }
29237 this.setLabelAlignment(labelAlignment || this.labelAlignment);
29238 this.refreshLabel();
29239 };
29240 AgAbstractLabel.prototype.refreshLabel = function () {
29241 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eLabel);
29242 if (typeof this.label === 'string') {
29243 this.eLabel.innerText = this.label + this.labelSeparator;
29244 }
29245 else if (this.label) {
29246 this.eLabel.appendChild(this.label);
29247 }
29248 if (this.label === '') {
29249 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(this.eLabel, 'ag-hidden');
29250 this.eLabel.setAttribute('role', 'presentation');
29251 }
29252 else {
29253 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["removeCssClass"])(this.eLabel, 'ag-hidden');
29254 this.eLabel.removeAttribute('role');
29255 }
29256 };
29257 AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {
29258 if (this.labelSeparator === labelSeparator) {
29259 return this;
29260 }
29261 this.labelSeparator = labelSeparator;
29262 if (this.label != null) {
29263 this.refreshLabel();
29264 }
29265 return this;
29266 };
29267 AgAbstractLabel.prototype.getLabelId = function () {
29268 this.eLabel.id = this.eLabel.id || "ag-" + this.getCompId() + "-label";
29269 return this.eLabel.id;
29270 };
29271 AgAbstractLabel.prototype.getLabel = function () {
29272 return this.label;
29273 };
29274 AgAbstractLabel.prototype.setLabel = function (label) {
29275 if (this.label === label) {
29276 return this;
29277 }
29278 this.label = label;
29279 this.refreshLabel();
29280 return this;
29281 };
29282 AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {
29283 var eGui = this.getGui();
29284 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(eGui, 'ag-label-align-left', alignment === 'left');
29285 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(eGui, 'ag-label-align-right', alignment === 'right');
29286 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveCssClass"])(eGui, 'ag-label-align-top', alignment === 'top');
29287 return this;
29288 };
29289 AgAbstractLabel.prototype.setLabelWidth = function (width) {
29290 if (this.label == null) {
29291 return this;
29292 }
29293 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setElementWidth"])(this.eLabel, width);
29294 return this;
29295 };
29296 __decorate([
29297 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
29298 ], AgAbstractLabel.prototype, "postConstruct", null);
29299 return AgAbstractLabel;
29300}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
29301
29302
29303
29304/***/ }),
29305/* 123 */
29306/***/ (function(module, __webpack_exports__, __webpack_require__) {
29307
29308"use strict";
29309__webpack_require__.r(__webpack_exports__);
29310/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractHeaderWrapper", function() { return AbstractHeaderWrapper; });
29311/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67);
29312/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
29313/**
29314 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29315 * @version v25.3.0
29316 * @link http://www.ag-grid.com/
29317 * @license MIT
29318 */
29319var __extends = (undefined && undefined.__extends) || (function () {
29320 var extendStatics = function (d, b) {
29321 extendStatics = Object.setPrototypeOf ||
29322 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29323 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29324 return extendStatics(d, b);
29325 };
29326 return function (d, b) {
29327 extendStatics(d, b);
29328 function __() { this.constructor = d; }
29329 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29330 };
29331})();
29332
29333
29334var AbstractHeaderWrapper = /** @class */ (function (_super) {
29335 __extends(AbstractHeaderWrapper, _super);
29336 function AbstractHeaderWrapper() {
29337 return _super !== null && _super.apply(this, arguments) || this;
29338 }
29339 AbstractHeaderWrapper.prototype.shouldStopEventPropagation = function (e) {
29340 var _a = this.focusController.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;
29341 return Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_1__["isUserSuppressingHeaderKeyboardEvent"])(this.gridOptionsWrapper, e, headerRowIndex, column);
29342 };
29343 AbstractHeaderWrapper.prototype.getColumn = function () {
29344 return this.column;
29345 };
29346 AbstractHeaderWrapper.prototype.getPinned = function () {
29347 return this.pinned;
29348 };
29349 return AbstractHeaderWrapper;
29350}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_0__["ManagedFocusComponent"]));
29351
29352
29353
29354/***/ }),
29355/* 124 */
29356/***/ (function(module, __webpack_exports__, __webpack_require__) {
29357
29358"use strict";
29359__webpack_require__.r(__webpack_exports__);
29360/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupWrapperComp", function() { return HeaderGroupWrapperComp; });
29361/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
29362/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
29363/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
29364/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
29365/* harmony import */ var _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(115);
29366/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78);
29367/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(117);
29368/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(116);
29369/* harmony import */ var _header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(123);
29370/* harmony import */ var _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(8);
29371/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(47);
29372/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(14);
29373/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(33);
29374/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(60);
29375/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(26);
29376/**
29377 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29378 * @version v25.3.0
29379 * @link http://www.ag-grid.com/
29380 * @license MIT
29381 */
29382var __extends = (undefined && undefined.__extends) || (function () {
29383 var extendStatics = function (d, b) {
29384 extendStatics = Object.setPrototypeOf ||
29385 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29386 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29387 return extendStatics(d, b);
29388 };
29389 return function (d, b) {
29390 extendStatics(d, b);
29391 function __() { this.constructor = d; }
29392 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29393 };
29394})();
29395var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29396 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29397 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29398 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;
29399 return c > 3 && r && Object.defineProperty(target, key, r), r;
29400};
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416var HeaderGroupWrapperComp = /** @class */ (function (_super) {
29417 __extends(HeaderGroupWrapperComp, _super);
29418 function HeaderGroupWrapperComp(columnGroup, pinned) {
29419 var _this = _super.call(this, HeaderGroupWrapperComp.TEMPLATE) || this;
29420 // the children can change, we keep destroy functions related to listening to the children here
29421 _this.removeChildListenersFuncs = [];
29422 _this.column = columnGroup;
29423 _this.pinned = pinned;
29424 return _this;
29425 }
29426 HeaderGroupWrapperComp.prototype.postConstruct = function () {
29427 _super.prototype.postConstruct.call(this);
29428 _cssClassApplier__WEBPACK_IMPORTED_MODULE_4__["CssClassApplier"].addHeaderClassesFromColDef(this.getComponentHolder(), this.getGui(), this.gridOptionsWrapper, null, this.column);
29429 var displayName = this.columnController.getDisplayNameForColumnGroup(this.column, 'header');
29430 this.appendHeaderGroupComp(displayName);
29431 this.setupResize();
29432 this.addClasses();
29433 this.setupWidth();
29434 this.addAttributes();
29435 this.setupMovingCss();
29436 this.setupTooltip();
29437 this.setupExpandable();
29438 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_7__["HoverFeature"](this.column.getOriginalColumnGroup().getLeafColumns(), this.getGui()));
29439 this.createManagedBean(new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_6__["SetLeftFeature"](this.column, this.getGui(), this.beans));
29440 };
29441 HeaderGroupWrapperComp.prototype.onFocusIn = function (e) {
29442 if (!this.getGui().contains(e.relatedTarget)) {
29443 var headerRow = this.getParentComponent();
29444 this.beans.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());
29445 }
29446 };
29447 HeaderGroupWrapperComp.prototype.handleKeyDown = function (e) {
29448 var activeEl = document.activeElement;
29449 var eGui = this.getGui();
29450 var wrapperHasFocus = activeEl === eGui;
29451 if (!this.expandable || !wrapperHasFocus) {
29452 return;
29453 }
29454 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_13__["KeyCode"].ENTER) {
29455 var column = this.getColumn();
29456 var newExpandedValue = !column.isExpanded();
29457 this.columnController.setColumnGroupOpened(column.getOriginalColumnGroup(), newExpandedValue, "uiColumnExpanded");
29458 }
29459 };
29460 HeaderGroupWrapperComp.prototype.onTabKeyDown = function () { };
29461 HeaderGroupWrapperComp.prototype.setupExpandable = function () {
29462 var column = this.getColumn();
29463 var originalColumnGroup = column.getOriginalColumnGroup();
29464 this.refreshExpanded();
29465 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_9__["OriginalColumnGroup"].EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));
29466 this.addManagedListener(originalColumnGroup, _entities_originalColumnGroup__WEBPACK_IMPORTED_MODULE_9__["OriginalColumnGroup"].EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));
29467 };
29468 HeaderGroupWrapperComp.prototype.refreshExpanded = function () {
29469 var column = this.getColumn();
29470 var eGui = this.getGui();
29471 var expandable = column.isExpandable();
29472 var expanded = column.isExpanded();
29473 this.expandable = expandable;
29474 if (!expandable) {
29475 eGui.removeAttribute('aria-expanded');
29476 }
29477 else {
29478 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_10__["setAriaExpanded"])(eGui, expanded);
29479 }
29480 };
29481 HeaderGroupWrapperComp.prototype.setupMovingCss = function () {
29482 var _this = this;
29483 var originalColumnGroup = this.column.getOriginalColumnGroup();
29484 var leafColumns = originalColumnGroup.getLeafColumns();
29485 leafColumns.forEach(function (col) {
29486 _this.addManagedListener(col, _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_MOVING_CHANGED, _this.onColumnMovingChanged.bind(_this));
29487 });
29488 this.onColumnMovingChanged();
29489 };
29490 HeaderGroupWrapperComp.prototype.getComponentHolder = function () {
29491 return this.column.getColGroupDef();
29492 };
29493 HeaderGroupWrapperComp.prototype.getTooltipParams = function () {
29494 var res = _super.prototype.getTooltipParams.call(this);
29495 res.location = 'headerGroup';
29496 // this is wrong, but leaving it as i don't want to change code,
29497 // but the ColumnGroup does not have a ColDef or a Column (although it does have GroupDef and ColumnGroup)
29498 res.colDef = this.getComponentHolder();
29499 res.column = this.getColumn();
29500 return res;
29501 };
29502 HeaderGroupWrapperComp.prototype.setupTooltip = function () {
29503 var colGroupDef = this.getComponentHolder();
29504 var tooltipText = colGroupDef && colGroupDef.headerTooltip;
29505 if (tooltipText != null) {
29506 this.setTooltip(Object(_utils_string__WEBPACK_IMPORTED_MODULE_14__["escapeString"])(tooltipText));
29507 }
29508 };
29509 HeaderGroupWrapperComp.prototype.onColumnMovingChanged = function () {
29510 // this function adds or removes the moving css, based on if the col is moving.
29511 // this is what makes the header go dark when it is been moved (gives impression to
29512 // user that the column was picked up).
29513 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["addOrRemoveCssClass"])(this.getGui(), 'ag-header-cell-moving', this.column.isMoving());
29514 };
29515 HeaderGroupWrapperComp.prototype.addAttributes = function () {
29516 this.getGui().setAttribute("col-id", this.column.getUniqueId());
29517 };
29518 HeaderGroupWrapperComp.prototype.appendHeaderGroupComp = function (displayName) {
29519 var _this = this;
29520 var params = {
29521 displayName: displayName,
29522 columnGroup: this.column,
29523 setExpanded: function (expanded) {
29524 _this.columnController.setColumnGroupOpened(_this.column.getOriginalColumnGroup(), expanded, "gridInitializing");
29525 },
29526 api: this.gridApi,
29527 columnApi: this.columnApi,
29528 context: this.gridOptionsWrapper.getContext()
29529 };
29530 if (!displayName) {
29531 var columnGroup = this.column;
29532 var leafCols = columnGroup.getLeafColumns();
29533 // find the top most column group that represents the same columns. so if we are dragging a group, we also
29534 // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels
29535 // of grouping, with each group only containing the next group, and the last group containing three columns,
29536 // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all
29537 // the groups represent the same column set.
29538 while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {
29539 columnGroup = columnGroup.getParent();
29540 }
29541 var colGroupDef = columnGroup.getColGroupDef();
29542 if (colGroupDef) {
29543 displayName = colGroupDef.headerName;
29544 }
29545 if (!displayName) {
29546 displayName = leafCols ? this.columnController.getDisplayNameForColumn(leafCols[0], 'header', true) : '';
29547 }
29548 }
29549 var callback = this.afterHeaderCompCreated.bind(this, displayName);
29550 this.userComponentFactory.newHeaderGroupComponent(params).then(callback);
29551 };
29552 HeaderGroupWrapperComp.prototype.afterHeaderCompCreated = function (displayName, headerGroupComp) {
29553 var _this = this;
29554 this.getGui().appendChild(headerGroupComp.getGui());
29555 this.addDestroyFunc(function () {
29556 _this.getContext().destroyBean(headerGroupComp);
29557 });
29558 this.setupMove(headerGroupComp.getGui(), displayName);
29559 };
29560 HeaderGroupWrapperComp.prototype.addClasses = function () {
29561 // having different classes below allows the style to not have a bottom border
29562 // on the group header, if no group is specified
29563 // columnGroup.getColGroupDef
29564 var style = this.column.isPadding() ? 'no' : 'with';
29565 this.addCssClass("ag-header-group-cell-" + style + "-group");
29566 };
29567 HeaderGroupWrapperComp.prototype.setupMove = function (eHeaderGroup, displayName) {
29568 var _this = this;
29569 if (!eHeaderGroup) {
29570 return;
29571 }
29572 if (this.isSuppressMoving()) {
29573 return;
29574 }
29575 var allLeafColumns = this.column.getOriginalColumnGroup().getLeafColumns();
29576 var dragSource = {
29577 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_5__["DragSourceType"].HeaderCell,
29578 eElement: eHeaderGroup,
29579 defaultIconName: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_5__["DragAndDropService"].ICON_HIDE,
29580 dragItemName: displayName,
29581 // we add in the original group leaf columns, so we move both visible and non-visible items
29582 getDragItem: this.getDragItemForGroup.bind(this),
29583 onDragStarted: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(true, "uiColumnDragged"); }); },
29584 onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, "uiColumnDragged"); }); }
29585 };
29586 this.dragAndDropService.addDragSource(dragSource, true);
29587 this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });
29588 };
29589 // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,
29590 // and in the order they are currently in the screen.
29591 HeaderGroupWrapperComp.prototype.getDragItemForGroup = function () {
29592 var allColumnsOriginalOrder = this.column.getOriginalColumnGroup().getLeafColumns();
29593 // capture visible state, used when re-entering grid to dictate which columns should be visible
29594 var visibleState = {};
29595 allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });
29596 var allColumnsCurrentOrder = [];
29597 this.columnController.getAllDisplayedColumns().forEach(function (column) {
29598 if (allColumnsOriginalOrder.indexOf(column) >= 0) {
29599 allColumnsCurrentOrder.push(column);
29600 Object(_utils_array__WEBPACK_IMPORTED_MODULE_11__["removeFromArray"])(allColumnsOriginalOrder, column);
29601 }
29602 });
29603 // we are left with non-visible columns, stick these in at the end
29604 allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });
29605 // create and return dragItem
29606 return {
29607 columns: allColumnsCurrentOrder,
29608 visibleState: visibleState
29609 };
29610 };
29611 HeaderGroupWrapperComp.prototype.isSuppressMoving = function () {
29612 // if any child is fixed, then don't allow moving
29613 var childSuppressesMoving = false;
29614 this.column.getLeafColumns().forEach(function (column) {
29615 if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {
29616 childSuppressesMoving = true;
29617 }
29618 });
29619 var result = childSuppressesMoving || this.gridOptionsWrapper.isSuppressMovableColumns();
29620 return result;
29621 };
29622 HeaderGroupWrapperComp.prototype.setupWidth = function () {
29623 // we need to listen to changes in child columns, as they impact our width
29624 this.addListenersToChildrenColumns();
29625 // the children belonging to this group can change, so we need to add and remove listeners as they change
29626 this.addManagedListener(this.column, _entities_columnGroup__WEBPACK_IMPORTED_MODULE_1__["ColumnGroup"].EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));
29627 this.onWidthChanged();
29628 // the child listeners are not tied to this components life-cycle, as children can get added and removed
29629 // to the group - hence they are on a different life-cycle. so we must make sure the existing children
29630 // listeners are removed when we finally get destroyed
29631 this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));
29632 };
29633 HeaderGroupWrapperComp.prototype.onDisplayedChildrenChanged = function () {
29634 this.addListenersToChildrenColumns();
29635 this.onWidthChanged();
29636 };
29637 HeaderGroupWrapperComp.prototype.addListenersToChildrenColumns = function () {
29638 var _this = this;
29639 // first destroy any old listeners
29640 this.removeListenersOnChildrenColumns();
29641 // now add new listeners to the new set of children
29642 var widthChangedListener = this.onWidthChanged.bind(this);
29643 this.column.getLeafColumns().forEach(function (column) {
29644 column.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
29645 column.addEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_VISIBLE_CHANGED, widthChangedListener);
29646 _this.removeChildListenersFuncs.push(function () {
29647 column.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_WIDTH_CHANGED, widthChangedListener);
29648 column.removeEventListener(_entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_VISIBLE_CHANGED, widthChangedListener);
29649 });
29650 });
29651 };
29652 HeaderGroupWrapperComp.prototype.removeListenersOnChildrenColumns = function () {
29653 this.removeChildListenersFuncs.forEach(function (func) { return func(); });
29654 this.removeChildListenersFuncs = [];
29655 };
29656 HeaderGroupWrapperComp.prototype.onWidthChanged = function () {
29657 this.getGui().style.width = this.column.getActualWidth() + 'px';
29658 };
29659 HeaderGroupWrapperComp.prototype.setupResize = function () {
29660 var _this = this;
29661 this.eHeaderCellResize = this.getRefElement('agResize');
29662 if (!this.column.isResizable()) {
29663 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["removeFromParent"])(this.eHeaderCellResize);
29664 return;
29665 }
29666 var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({
29667 eResizeBar: this.eHeaderCellResize,
29668 onResizeStart: this.onResizeStart.bind(this),
29669 onResizing: this.onResizing.bind(this, false),
29670 onResizeEnd: this.onResizing.bind(this, true)
29671 });
29672 this.addDestroyFunc(finishedWithResizeFunc);
29673 if (!this.gridOptionsWrapper.isSuppressAutoSize()) {
29674 var skipHeaderOnAutoSize_1 = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();
29675 this.eHeaderCellResize.addEventListener('dblclick', function (event) {
29676 // get list of all the column keys we are responsible for
29677 var keys = [];
29678 _this.column.getDisplayedLeafColumns().forEach(function (column) {
29679 // not all cols in the group may be participating with auto-resize
29680 if (!column.getColDef().suppressAutoSize) {
29681 keys.push(column.getColId());
29682 }
29683 });
29684 if (keys.length > 0) {
29685 _this.columnController.autoSizeColumns(keys, skipHeaderOnAutoSize_1, "uiColumnResized");
29686 }
29687 });
29688 }
29689 };
29690 HeaderGroupWrapperComp.prototype.onResizeStart = function (shiftKey) {
29691 var _this = this;
29692 var leafCols = this.column.getDisplayedLeafColumns();
29693 this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });
29694 this.resizeStartWidth = 0;
29695 this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });
29696 this.resizeRatios = [];
29697 this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });
29698 var takeFromGroup = null;
29699 if (shiftKey) {
29700 takeFromGroup = this.columnController.getDisplayedGroupAfter(this.column);
29701 }
29702 if (takeFromGroup) {
29703 var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();
29704 this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });
29705 this.resizeTakeFromStartWidth = 0;
29706 this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });
29707 this.resizeTakeFromRatios = [];
29708 this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });
29709 }
29710 else {
29711 this.resizeTakeFromCols = null;
29712 this.resizeTakeFromStartWidth = null;
29713 this.resizeTakeFromRatios = null;
29714 }
29715 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["addCssClass"])(this.getGui(), 'ag-column-resizing');
29716 };
29717 HeaderGroupWrapperComp.prototype.onResizing = function (finished, resizeAmount) {
29718 var resizeSets = [];
29719 var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);
29720 resizeSets.push({
29721 columns: this.resizeCols,
29722 ratios: this.resizeRatios,
29723 width: this.resizeStartWidth + resizeAmountNormalised
29724 });
29725 if (this.resizeTakeFromCols) {
29726 resizeSets.push({
29727 columns: this.resizeTakeFromCols,
29728 ratios: this.resizeTakeFromRatios,
29729 width: this.resizeTakeFromStartWidth - resizeAmountNormalised
29730 });
29731 }
29732 this.columnController.resizeColumnSets(resizeSets, finished, 'uiColumnDragged');
29733 if (finished) {
29734 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_12__["removeCssClass"])(this.getGui(), 'ag-column-resizing');
29735 }
29736 };
29737 // optionally inverts the drag, depending on pinned and RTL
29738 // note - this method is duplicated in RenderedHeaderCell - should refactor out?
29739 HeaderGroupWrapperComp.prototype.normaliseDragChange = function (dragChange) {
29740 var result = dragChange;
29741 if (this.gridOptionsWrapper.isEnableRtl()) {
29742 // for RTL, dragging left makes the col bigger, except when pinning left
29743 if (this.pinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_LEFT) {
29744 result *= -1;
29745 }
29746 }
29747 else if (this.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_RIGHT) {
29748 // for LTR (ie normal), dragging left makes the col smaller, except when pinning right
29749 result *= -1;
29750 }
29751 return result;
29752 };
29753 HeaderGroupWrapperComp.TEMPLATE = "<div class=\"ag-header-group-cell\" role=\"columnheader\" tabindex=\"-1\">\n <div ref=\"agResize\" class=\"ag-header-cell-resize\" role=\"presentation\"></div>\n </div>";
29754 __decorate([
29755 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnController')
29756 ], HeaderGroupWrapperComp.prototype, "columnController", void 0);
29757 __decorate([
29758 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('horizontalResizeService')
29759 ], HeaderGroupWrapperComp.prototype, "horizontalResizeService", void 0);
29760 __decorate([
29761 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('dragAndDropService')
29762 ], HeaderGroupWrapperComp.prototype, "dragAndDropService", void 0);
29763 __decorate([
29764 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('userComponentFactory')
29765 ], HeaderGroupWrapperComp.prototype, "userComponentFactory", void 0);
29766 __decorate([
29767 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('beans')
29768 ], HeaderGroupWrapperComp.prototype, "beans", void 0);
29769 __decorate([
29770 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('gridApi')
29771 ], HeaderGroupWrapperComp.prototype, "gridApi", void 0);
29772 __decorate([
29773 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnApi')
29774 ], HeaderGroupWrapperComp.prototype, "columnApi", void 0);
29775 return HeaderGroupWrapperComp;
29776}(_header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_8__["AbstractHeaderWrapper"]));
29777
29778
29779
29780/***/ }),
29781/* 125 */
29782/***/ (function(module, __webpack_exports__, __webpack_require__) {
29783
29784"use strict";
29785__webpack_require__.r(__webpack_exports__);
29786/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterWrapper", function() { return FloatingFilterWrapper; });
29787/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
29788/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
29789/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(117);
29790/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
29791/* harmony import */ var _headerRendering_hoverFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(116);
29792/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(23);
29793/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42);
29794/* harmony import */ var _provided_readOnlyFloatingFilter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(126);
29795/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
29796/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18);
29797/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
29798/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(50);
29799/* harmony import */ var _headerRendering_header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(123);
29800/* harmony import */ var _floatingFilterMapper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(127);
29801/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(60);
29802/**
29803 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29804 * @version v25.3.0
29805 * @link http://www.ag-grid.com/
29806 * @license MIT
29807 */
29808var __extends = (undefined && undefined.__extends) || (function () {
29809 var extendStatics = function (d, b) {
29810 extendStatics = Object.setPrototypeOf ||
29811 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29812 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
29813 return extendStatics(d, b);
29814 };
29815 return function (d, b) {
29816 extendStatics(d, b);
29817 function __() { this.constructor = d; }
29818 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29819 };
29820})();
29821var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
29822 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29823 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
29824 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;
29825 return c > 3 && r && Object.defineProperty(target, key, r), r;
29826};
29827
29828
29829
29830
29831
29832
29833
29834
29835
29836
29837
29838
29839
29840
29841
29842var FloatingFilterWrapper = /** @class */ (function (_super) {
29843 __extends(FloatingFilterWrapper, _super);
29844 function FloatingFilterWrapper(column, pinned) {
29845 var _this = _super.call(this, FloatingFilterWrapper.TEMPLATE) || this;
29846 _this.column = column;
29847 _this.pinned = pinned;
29848 return _this;
29849 }
29850 FloatingFilterWrapper.prototype.postConstruct = function () {
29851 _super.prototype.postConstruct.call(this);
29852 this.setupFloatingFilter();
29853 this.setupWidth();
29854 this.setupLeftPositioning();
29855 this.setupColumnHover();
29856 this.createManagedBean(new _headerRendering_hoverFeature__WEBPACK_IMPORTED_MODULE_4__["HoverFeature"]([this.column], this.getGui()));
29857 this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));
29858 };
29859 FloatingFilterWrapper.prototype.onTabKeyDown = function (e) {
29860 var activeEl = document.activeElement;
29861 var eGui = this.getGui();
29862 var wrapperHasFocus = activeEl === eGui;
29863 if (wrapperHasFocus) {
29864 return;
29865 }
29866 e.preventDefault();
29867 var nextFocusableEl = this.focusController.findNextFocusableElement(eGui, null, e.shiftKey);
29868 if (nextFocusableEl) {
29869 nextFocusableEl.focus();
29870 }
29871 else {
29872 eGui.focus();
29873 }
29874 };
29875 FloatingFilterWrapper.prototype.handleKeyDown = function (e) {
29876 var activeEl = document.activeElement;
29877 var eGui = this.getGui();
29878 var wrapperHasFocus = activeEl === eGui;
29879 switch (e.keyCode) {
29880 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].UP:
29881 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].DOWN:
29882 if (!wrapperHasFocus) {
29883 e.preventDefault();
29884 }
29885 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].LEFT:
29886 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].RIGHT:
29887 if (wrapperHasFocus) {
29888 return;
29889 }
29890 e.stopPropagation();
29891 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].ENTER:
29892 if (wrapperHasFocus) {
29893 if (this.focusController.focusInto(eGui)) {
29894 e.preventDefault();
29895 }
29896 }
29897 break;
29898 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_14__["KeyCode"].ESCAPE:
29899 if (!wrapperHasFocus) {
29900 this.getGui().focus();
29901 }
29902 }
29903 };
29904 FloatingFilterWrapper.prototype.onFocusIn = function (e) {
29905 var eGui = this.getGui();
29906 if (!eGui.contains(e.relatedTarget)) {
29907 var headerRow = this.getParentComponent();
29908 this.beans.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());
29909 }
29910 };
29911 FloatingFilterWrapper.prototype.setupFloatingFilter = function () {
29912 var _this = this;
29913 var colDef = this.column.getColDef();
29914 if (!colDef.filter || !colDef.floatingFilter) {
29915 return;
29916 }
29917 this.floatingFilterCompPromise = this.getFloatingFilterInstance();
29918 if (!this.floatingFilterCompPromise) {
29919 return;
29920 }
29921 this.floatingFilterCompPromise.then(function (compInstance) {
29922 if (compInstance) {
29923 _this.setupWithFloatingFilter(compInstance);
29924 _this.setupSyncWithFilter();
29925 }
29926 });
29927 };
29928 FloatingFilterWrapper.prototype.setupLeftPositioning = function () {
29929 var setLeftFeature = new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_2__["SetLeftFeature"](this.column, this.getGui(), this.beans);
29930 this.createManagedBean(setLeftFeature);
29931 };
29932 FloatingFilterWrapper.prototype.setupSyncWithFilter = function () {
29933 var _this = this;
29934 var syncWithFilter = function (filterChangedEvent) {
29935 _this.onParentModelChanged(_this.currentParentModel(), filterChangedEvent);
29936 };
29937 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_CHANGED, syncWithFilter);
29938 if (this.filterManager.isFilterActive(this.column)) {
29939 syncWithFilter(null);
29940 }
29941 };
29942 // linked to event listener in template
29943 FloatingFilterWrapper.prototype.showParentFilter = function () {
29944 var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;
29945 this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'filterMenuTab', ['filterMenuTab']);
29946 };
29947 FloatingFilterWrapper.prototype.setupColumnHover = function () {
29948 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_COLUMN_HOVER_CHANGED, this.onColumnHover.bind(this));
29949 this.onColumnHover();
29950 };
29951 FloatingFilterWrapper.prototype.onColumnHover = function () {
29952 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.getGui(), 'ag-column-hover', this.columnHoverService.isHovered(this.column));
29953 };
29954 FloatingFilterWrapper.prototype.setupWidth = function () {
29955 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_WIDTH_CHANGED, this.onColumnWidthChanged.bind(this));
29956 this.onColumnWidthChanged();
29957 };
29958 FloatingFilterWrapper.prototype.onColumnWidthChanged = function () {
29959 this.getGui().style.width = this.column.getActualWidth() + "px";
29960 };
29961 FloatingFilterWrapper.prototype.setupWithFloatingFilter = function (floatingFilterComp) {
29962 var _this = this;
29963 var disposeFunc = function () {
29964 _this.getContext().destroyBean(floatingFilterComp);
29965 };
29966 if (!this.isAlive()) {
29967 disposeFunc();
29968 return;
29969 }
29970 this.addDestroyFunc(disposeFunc);
29971 var floatingFilterCompUi = floatingFilterComp.getGui();
29972 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eFloatingFilterBody, 'ag-floating-filter-full-body', this.suppressFilterButton);
29973 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["addOrRemoveCssClass"])(this.eFloatingFilterBody, 'ag-floating-filter-body', !this.suppressFilterButton);
29974 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["setDisplayed"])(this.eButtonWrapper, !this.suppressFilterButton);
29975 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_11__["createIconNoSpan"])('filter', this.gridOptionsWrapper, this.column);
29976 this.eButtonShowMainFilter.appendChild(eIcon);
29977 this.eFloatingFilterBody.appendChild(floatingFilterCompUi);
29978 if (floatingFilterComp.afterGuiAttached) {
29979 floatingFilterComp.afterGuiAttached();
29980 }
29981 };
29982 FloatingFilterWrapper.prototype.parentFilterInstance = function (callback) {
29983 var filterComponent = this.getFilterComponent();
29984 if (filterComponent) {
29985 filterComponent.then(callback);
29986 }
29987 };
29988 FloatingFilterWrapper.prototype.getFilterComponent = function (createIfDoesNotExist) {
29989 if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }
29990 return this.filterManager.getFilterComponent(this.column, 'NO_UI', createIfDoesNotExist);
29991 };
29992 FloatingFilterWrapper.getDefaultFloatingFilterType = function (def) {
29993 if (def == null) {
29994 return null;
29995 }
29996 var defaultFloatingFilterType = null;
29997 if (typeof def.filter === 'string') {
29998 // will be undefined if not in the map
29999 defaultFloatingFilterType = _floatingFilterMapper__WEBPACK_IMPORTED_MODULE_13__["FloatingFilterMapper"].getFloatingFilterType(def.filter);
30000 }
30001 else if (def.filterFramework) {
30002 // If filterFramework, then grid is NOT using one of the provided filters, hence no default.
30003 // Note: We could combine this with another part of the 'if' statement, however explicitly
30004 // having this section makes the code easier to read.
30005 }
30006 else if (def.filter === true) {
30007 var setFilterModuleLoaded = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_9__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].SetFilterModule);
30008 defaultFloatingFilterType = setFilterModuleLoaded ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';
30009 }
30010 return defaultFloatingFilterType;
30011 };
30012 FloatingFilterWrapper.prototype.getFloatingFilterInstance = function () {
30013 var colDef = this.column.getColDef();
30014 var defaultFloatingFilterType = FloatingFilterWrapper.getDefaultFloatingFilterType(colDef);
30015 var filterParams = this.filterManager.createFilterParams(this.column, colDef);
30016 var finalFilterParams = this.userComponentFactory.createFinalParams(colDef, 'filter', filterParams);
30017 var params = {
30018 api: this.gridApi,
30019 column: this.column,
30020 filterParams: finalFilterParams,
30021 currentParentModel: this.currentParentModel.bind(this),
30022 parentFilterInstance: this.parentFilterInstance.bind(this),
30023 showParentFilter: this.showParentFilter.bind(this),
30024 onFloatingFilterChanged: this.onFloatingFilterChanged.bind(this),
30025 suppressFilterButton: false // This one might be overridden from the colDef
30026 };
30027 // this is unusual - we need a params value OUTSIDE the component the params are for.
30028 // the params are for the floating filter component, but this property is actually for the wrapper.
30029 this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;
30030 var promise = this.userComponentFactory.newFloatingFilterComponent(colDef, params, defaultFloatingFilterType);
30031 if (!promise) {
30032 var compInstance = this.userComponentFactory.createUserComponentFromConcreteClass(_provided_readOnlyFloatingFilter__WEBPACK_IMPORTED_MODULE_7__["ReadOnlyFloatingFilter"], params);
30033 promise = _utils__WEBPACK_IMPORTED_MODULE_6__["AgPromise"].resolve(compInstance);
30034 }
30035 return promise;
30036 };
30037 FloatingFilterWrapper.prototype.currentParentModel = function () {
30038 var filterComponent = this.getFilterComponent(false);
30039 return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;
30040 };
30041 FloatingFilterWrapper.prototype.onParentModelChanged = function (model, filterChangedEvent) {
30042 if (!this.floatingFilterCompPromise) {
30043 return;
30044 }
30045 this.floatingFilterCompPromise.then(function (comp) { return comp && comp.onParentModelChanged(model, filterChangedEvent); });
30046 };
30047 FloatingFilterWrapper.prototype.onFloatingFilterChanged = function () {
30048 console.warn('AG Grid: since version 21.x, how floating filters are implemented has changed. ' +
30049 'Instead of calling params.onFloatingFilterChanged(), get a reference to the main filter via ' +
30050 'params.parentFilterInstance() and then set a value on the parent filter directly.');
30051 };
30052 FloatingFilterWrapper.TEMPLATE = "<div class=\"ag-header-cell\" role=\"gridcell\" tabindex=\"-1\">\n <div class=\"ag-floating-filter-full-body\" ref=\"eFloatingFilterBody\" role=\"presentation\"></div>\n <div class=\"ag-floating-filter-button ag-hidden\" ref=\"eButtonWrapper\" role=\"presentation\">\n <button type=\"button\" aria-label=\"Open Filter Menu\" class=\"ag-floating-filter-button-button\" ref=\"eButtonShowMainFilter\" tabindex=\"-1\"></button>\n </div>\n </div>";
30053 __decorate([
30054 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
30055 ], FloatingFilterWrapper.prototype, "columnHoverService", void 0);
30056 __decorate([
30057 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
30058 ], FloatingFilterWrapper.prototype, "userComponentFactory", void 0);
30059 __decorate([
30060 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
30061 ], FloatingFilterWrapper.prototype, "gridApi", void 0);
30062 __decorate([
30063 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
30064 ], FloatingFilterWrapper.prototype, "columnApi", void 0);
30065 __decorate([
30066 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
30067 ], FloatingFilterWrapper.prototype, "filterManager", void 0);
30068 __decorate([
30069 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('menuFactory')
30070 ], FloatingFilterWrapper.prototype, "menuFactory", void 0);
30071 __decorate([
30072 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
30073 ], FloatingFilterWrapper.prototype, "beans", void 0);
30074 __decorate([
30075 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eFloatingFilterBody')
30076 ], FloatingFilterWrapper.prototype, "eFloatingFilterBody", void 0);
30077 __decorate([
30078 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eButtonWrapper')
30079 ], FloatingFilterWrapper.prototype, "eButtonWrapper", void 0);
30080 __decorate([
30081 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eButtonShowMainFilter')
30082 ], FloatingFilterWrapper.prototype, "eButtonShowMainFilter", void 0);
30083 return FloatingFilterWrapper;
30084}(_headerRendering_header_abstractHeaderWrapper__WEBPACK_IMPORTED_MODULE_12__["AbstractHeaderWrapper"]));
30085
30086
30087
30088/***/ }),
30089/* 126 */
30090/***/ (function(module, __webpack_exports__, __webpack_require__) {
30091
30092"use strict";
30093__webpack_require__.r(__webpack_exports__);
30094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReadOnlyFloatingFilter", function() { return ReadOnlyFloatingFilter; });
30095/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
30096/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
30097/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
30098/**
30099 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30100 * @version v25.3.0
30101 * @link http://www.ag-grid.com/
30102 * @license MIT
30103 */
30104var __extends = (undefined && undefined.__extends) || (function () {
30105 var extendStatics = function (d, b) {
30106 extendStatics = Object.setPrototypeOf ||
30107 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30108 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30109 return extendStatics(d, b);
30110 };
30111 return function (d, b) {
30112 extendStatics(d, b);
30113 function __() { this.constructor = d; }
30114 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30115 };
30116})();
30117var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30118 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30119 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30120 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;
30121 return c > 3 && r && Object.defineProperty(target, key, r), r;
30122};
30123
30124
30125
30126// optional floating filter for user provided filters - instead of providing a floating filter,
30127// they can provide a getModelAsString() method on the filter instead. this class just displays
30128// the string returned from getModelAsString()
30129var ReadOnlyFloatingFilter = /** @class */ (function (_super) {
30130 __extends(ReadOnlyFloatingFilter, _super);
30131 function ReadOnlyFloatingFilter() {
30132 return _super.call(this, /* html */ "\n <div class=\"ag-floating-filter-input\" role=\"presentation\">\n <ag-input-text-field ref=\"eFloatingFilterText\"></ag-input-text-field>\n </div>") || this;
30133 }
30134 // this is a user component, and IComponent has "public destroy()" as part of the interface.
30135 // so we need to override destroy() just to make the method public.
30136 ReadOnlyFloatingFilter.prototype.destroy = function () {
30137 _super.prototype.destroy.call(this);
30138 };
30139 ReadOnlyFloatingFilter.prototype.init = function (params) {
30140 this.params = params;
30141 var displayName = this.columnController.getDisplayNameForColumn(params.column, 'header', true);
30142 var translate = this.gridOptionsWrapper.getLocaleTextFunc();
30143 this.eFloatingFilterText
30144 .setDisabled(true)
30145 .setInputAriaLabel(displayName + " " + translate('ariaFilterInput', 'Filter Input'));
30146 };
30147 ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {
30148 var _this = this;
30149 if (!parentModel) {
30150 this.eFloatingFilterText.setValue('');
30151 return;
30152 }
30153 this.params.parentFilterInstance(function (filterInstance) {
30154 // it would be nice to check if getModelAsString was present before creating this component,
30155 // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until
30156 // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns
30157 // are drawn, but the parent filters are only created when needed).
30158 if (filterInstance.getModelAsString) {
30159 var modelAsString = filterInstance.getModelAsString(parentModel);
30160 _this.eFloatingFilterText.setValue(modelAsString);
30161 }
30162 });
30163 };
30164 __decorate([
30165 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eFloatingFilterText')
30166 ], ReadOnlyFloatingFilter.prototype, "eFloatingFilterText", void 0);
30167 __decorate([
30168 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
30169 ], ReadOnlyFloatingFilter.prototype, "columnController", void 0);
30170 return ReadOnlyFloatingFilter;
30171}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
30172
30173
30174
30175/***/ }),
30176/* 127 */
30177/***/ (function(module, __webpack_exports__, __webpack_require__) {
30178
30179"use strict";
30180__webpack_require__.r(__webpack_exports__);
30181/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return FloatingFilterMapper; });
30182/**
30183 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30184 * @version v25.3.0
30185 * @link http://www.ag-grid.com/
30186 * @license MIT
30187 */
30188var FloatingFilterMapper = /** @class */ (function () {
30189 function FloatingFilterMapper() {
30190 }
30191 FloatingFilterMapper.getFloatingFilterType = function (filterType) {
30192 return this.filterToFloatingFilterMapping[filterType];
30193 };
30194 FloatingFilterMapper.filterToFloatingFilterMapping = {
30195 set: 'agSetColumnFloatingFilter',
30196 agSetColumnFilter: 'agSetColumnFloatingFilter',
30197 multi: 'agMultiColumnFloatingFilter',
30198 agMultiColumnFilter: 'agMultiColumnFloatingFilter',
30199 number: 'agNumberColumnFloatingFilter',
30200 agNumberColumnFilter: 'agNumberColumnFloatingFilter',
30201 date: 'agDateColumnFloatingFilter',
30202 agDateColumnFilter: 'agDateColumnFloatingFilter',
30203 text: 'agTextColumnFloatingFilter',
30204 agTextColumnFilter: 'agTextColumnFloatingFilter'
30205 };
30206 return FloatingFilterMapper;
30207}());
30208
30209
30210
30211/***/ }),
30212/* 128 */
30213/***/ (function(module, __webpack_exports__, __webpack_require__) {
30214
30215"use strict";
30216__webpack_require__.r(__webpack_exports__);
30217/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return BodyDropTarget; });
30218/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
30219/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
30220/* harmony import */ var _moveColumnController__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(129);
30221/* harmony import */ var _bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(130);
30222/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
30223/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20);
30224/**
30225 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30226 * @version v25.3.0
30227 * @link http://www.ag-grid.com/
30228 * @license MIT
30229 */
30230var __extends = (undefined && undefined.__extends) || (function () {
30231 var extendStatics = function (d, b) {
30232 extendStatics = Object.setPrototypeOf ||
30233 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30234 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30235 return extendStatics(d, b);
30236 };
30237 return function (d, b) {
30238 extendStatics(d, b);
30239 function __() { this.constructor = d; }
30240 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30241 };
30242})();
30243var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30244 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30245 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30246 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;
30247 return c > 3 && r && Object.defineProperty(target, key, r), r;
30248};
30249
30250
30251
30252
30253
30254
30255var DropType;
30256(function (DropType) {
30257 DropType[DropType["ColumnMove"] = 0] = "ColumnMove";
30258 DropType[DropType["Pivot"] = 1] = "Pivot";
30259})(DropType || (DropType = {}));
30260var BodyDropTarget = /** @class */ (function (_super) {
30261 __extends(BodyDropTarget, _super);
30262 function BodyDropTarget(pinned, eContainer) {
30263 var _this = _super.call(this) || this;
30264 _this.dropListeners = {};
30265 _this.pinned = pinned;
30266 _this.eContainer = eContainer;
30267 return _this;
30268 }
30269 BodyDropTarget.prototype.postConstruct = function () {
30270 var _this = this;
30271 this.controllersService.whenReady(function (p) {
30272 var containers;
30273 switch (_this.pinned) {
30274 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_LEFT:
30275 containers = [p.leftRowContainerCon, p.bottomLeftRowContainerCon, p.topLeftRowContainerCon];
30276 break;
30277 case _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].PINNED_RIGHT:
30278 containers = [p.rightRowContainerCon, p.bottomRightRowContainerCon, p.topRightRowContainerCon];
30279 break;
30280 default:
30281 containers = [p.centerRowContainerCon, p.bottomCenterRowContainerCon, p.topCenterRowContainerCon];
30282 break;
30283 }
30284 _this.eSecondaryContainers = containers.map(function (c) { return c.getContainerElement(); });
30285 });
30286 };
30287 BodyDropTarget.prototype.isInterestedIn = function (type) {
30288 return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].HeaderCell ||
30289 (type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].ToolPanel && this.gridOptionsWrapper.isAllowDragFromColumnsToolPanel());
30290 };
30291 BodyDropTarget.prototype.getSecondaryContainers = function () {
30292 return this.eSecondaryContainers;
30293 };
30294 BodyDropTarget.prototype.getContainer = function () {
30295 return this.eContainer;
30296 };
30297 BodyDropTarget.prototype.init = function () {
30298 this.moveColumnController = this.createBean(new _moveColumnController__WEBPACK_IMPORTED_MODULE_2__["MoveColumnController"](this.pinned, this.eContainer));
30299 var bodyDropPivotTarget = new _bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_3__["BodyDropPivotTarget"](this.pinned);
30300 this.createBean(bodyDropPivotTarget);
30301 this.dropListeners[DropType.ColumnMove] = this.moveColumnController;
30302 this.dropListeners[DropType.Pivot] = bodyDropPivotTarget;
30303 this.dragAndDropService.addDropTarget(this);
30304 };
30305 BodyDropTarget.prototype.getIconName = function () {
30306 return this.currentDropListener.getIconName();
30307 };
30308 // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel
30309 // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when
30310 // dropped into the grid's body.
30311 BodyDropTarget.prototype.getDropType = function (draggingEvent) {
30312 if (this.columnController.isPivotMode()) {
30313 // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's
30314 // a standard column move, however if it came from the toolpanel, then we are introducing
30315 // dimensions or values to the grid
30316 if (draggingEvent.dragSource.type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].ToolPanel) {
30317 return DropType.Pivot;
30318 }
30319 return DropType.ColumnMove;
30320 }
30321 // it's a column, and not pivot mode, so always moving
30322 return DropType.ColumnMove;
30323 };
30324 BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {
30325 // we pick the drop listener depending on whether we are in pivot mode are not. if we are
30326 // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise
30327 // we change visibility state and position.
30328 // if (this.columnController.isPivotMode()) {
30329 var dropType = this.getDropType(draggingEvent);
30330 this.currentDropListener = this.dropListeners[dropType];
30331 this.currentDropListener.onDragEnter(draggingEvent);
30332 };
30333 BodyDropTarget.prototype.onDragLeave = function (params) {
30334 this.currentDropListener.onDragLeave(params);
30335 };
30336 BodyDropTarget.prototype.onDragging = function (params) {
30337 this.currentDropListener.onDragging(params);
30338 };
30339 BodyDropTarget.prototype.onDragStop = function (params) {
30340 this.currentDropListener.onDragStop(params);
30341 };
30342 __decorate([
30343 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
30344 ], BodyDropTarget.prototype, "dragAndDropService", void 0);
30345 __decorate([
30346 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
30347 ], BodyDropTarget.prototype, "columnController", void 0);
30348 __decorate([
30349 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
30350 ], BodyDropTarget.prototype, "controllersService", void 0);
30351 __decorate([
30352 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
30353 ], BodyDropTarget.prototype, "postConstruct", null);
30354 __decorate([
30355 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
30356 ], BodyDropTarget.prototype, "init", null);
30357 return BodyDropTarget;
30358}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
30359
30360
30361
30362/***/ }),
30363/* 129 */
30364/***/ (function(module, __webpack_exports__, __webpack_require__) {
30365
30366"use strict";
30367__webpack_require__.r(__webpack_exports__);
30368/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoveColumnController", function() { return MoveColumnController; });
30369/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
30370/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
30371/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78);
30372/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
30373/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
30374/**
30375 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30376 * @version v25.3.0
30377 * @link http://www.ag-grid.com/
30378 * @license MIT
30379 */
30380var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30381 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30382 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30383 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;
30384 return c > 3 && r && Object.defineProperty(target, key, r), r;
30385};
30386
30387
30388
30389
30390
30391var MoveColumnController = /** @class */ (function () {
30392 function MoveColumnController(pinned, eContainer) {
30393 this.needToMoveLeft = false;
30394 this.needToMoveRight = false;
30395 this.pinned = pinned;
30396 this.eContainer = eContainer;
30397 this.centerContainer = !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(pinned);
30398 }
30399 MoveColumnController.prototype.init = function () {
30400 var _this = this;
30401 this.logger = this.loggerFactory.create('MoveColumnController');
30402 this.controllersService.whenReady(function () {
30403 _this.gridBodyCon = _this.controllersService.getGridBodyController();
30404 });
30405 };
30406 MoveColumnController.prototype.getIconName = function () {
30407 return this.pinned ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_PINNED : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_MOVE;
30408 };
30409 MoveColumnController.prototype.onDragEnter = function (draggingEvent) {
30410 // we do dummy drag, so make sure column appears in the right location when first placed
30411 var columns = draggingEvent.dragItem.columns;
30412 var dragCameFromToolPanel = draggingEvent.dragSource.type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].ToolPanel;
30413 if (dragCameFromToolPanel) {
30414 // the if statement doesn't work if drag leaves grid, then enters again
30415 this.setColumnsVisible(columns, true, "uiColumnDragged");
30416 }
30417 else {
30418 // restore previous state of visible columns upon re-entering. this means if the user drags
30419 // a group out, and then drags the group back in, only columns that were originally visible
30420 // will be visible again. otherwise a group with three columns (but only two visible) could
30421 // be dragged out, then when it's dragged in again, all three are visible. this stops that.
30422 var visibleState_1 = draggingEvent.dragItem.visibleState;
30423 var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });
30424 this.setColumnsVisible(visibleColumns, true, "uiColumnDragged");
30425 }
30426 this.setColumnsPinned(columns, this.pinned, "uiColumnDragged");
30427 this.onDragging(draggingEvent, true);
30428 };
30429 MoveColumnController.prototype.onDragLeave = function (draggingEvent) {
30430 var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns() && !draggingEvent.fromNudge;
30431 if (hideColumnOnExit) {
30432 var dragItem = draggingEvent.dragSource.getDragItem();
30433 var columns = dragItem.columns;
30434 this.setColumnsVisible(columns, false, "uiColumnDragged");
30435 }
30436 this.ensureIntervalCleared();
30437 };
30438 MoveColumnController.prototype.setColumnsVisible = function (columns, visible, source) {
30439 if (source === void 0) { source = "api"; }
30440 if (columns) {
30441 var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });
30442 this.columnController.setColumnsVisible(allowedCols, visible, source);
30443 }
30444 };
30445 MoveColumnController.prototype.setColumnsPinned = function (columns, pinned, source) {
30446 if (source === void 0) { source = "api"; }
30447 if (columns) {
30448 var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });
30449 this.columnController.setColumnsPinned(allowedCols, pinned, source);
30450 }
30451 };
30452 MoveColumnController.prototype.onDragStop = function () {
30453 this.ensureIntervalCleared();
30454 };
30455 MoveColumnController.prototype.normaliseX = function (x) {
30456 // flip the coordinate if doing RTL
30457 if (this.gridOptionsWrapper.isEnableRtl()) {
30458 var clientWidth = this.eContainer.clientWidth;
30459 x = clientWidth - x;
30460 }
30461 // adjust for scroll only if centre container (the pinned containers don't scroll)
30462 if (this.centerContainer) {
30463 x += this.controllersService.getCenterRowContainerCon().getCenterViewportScrollLeft();
30464 }
30465 return x;
30466 };
30467 MoveColumnController.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {
30468 if (this.centerContainer) {
30469 // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)
30470 // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen
30471 var firstVisiblePixel = this.controllersService.getCenterRowContainerCon().getCenterViewportScrollLeft();
30472 var lastVisiblePixel = firstVisiblePixel + this.controllersService.getCenterRowContainerCon().getCenterWidth();
30473 if (this.gridOptionsWrapper.isEnableRtl()) {
30474 this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);
30475 this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);
30476 }
30477 else {
30478 this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);
30479 this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);
30480 }
30481 if (this.needToMoveLeft || this.needToMoveRight) {
30482 this.ensureIntervalStarted();
30483 }
30484 else {
30485 this.ensureIntervalCleared();
30486 }
30487 }
30488 };
30489 MoveColumnController.prototype.onDragging = function (draggingEvent, fromEnter) {
30490 var _this = this;
30491 if (fromEnter === void 0) { fromEnter = false; }
30492 this.lastDraggingEvent = draggingEvent;
30493 // if moving up or down (ie not left or right) then do nothing
30494 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(draggingEvent.hDirection)) {
30495 return;
30496 }
30497 var mouseXNormalised = this.normaliseX(draggingEvent.x);
30498 // if the user is dragging into the panel, ie coming from the side panel into the main grid,
30499 // we don't want to scroll the grid this time, it would appear like the table is jumping
30500 // each time a column is dragged in.
30501 if (!fromEnter) {
30502 this.checkCenterForScrolling(mouseXNormalised);
30503 }
30504 var hDirectionNormalised = this.normaliseDirection(draggingEvent.hDirection);
30505 var dragSourceType = draggingEvent.dragSource.type;
30506 var columnsToMove = draggingEvent.dragSource.getDragItem().columns;
30507 columnsToMove = columnsToMove.filter(function (col) {
30508 if (col.getColDef().lockPinned) {
30509 // if locked return true only if both col and container are same pin type.
30510 // double equals (==) here on purpose so that null==undefined is true (for not pinned options)
30511 return col.getPinned() == _this.pinned;
30512 }
30513 // if not pin locked, then always allowed to be in this container
30514 return true;
30515 });
30516 this.attemptMoveColumns(dragSourceType, columnsToMove, hDirectionNormalised, mouseXNormalised, fromEnter);
30517 };
30518 MoveColumnController.prototype.normaliseDirection = function (hDirection) {
30519 if (this.gridOptionsWrapper.isEnableRtl()) {
30520 switch (hDirection) {
30521 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Left: return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Right;
30522 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Right: return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Left;
30523 default: console.error("AG Grid: Unknown direction " + hDirection);
30524 }
30525 }
30526 else {
30527 return hDirection;
30528 }
30529 };
30530 // returns the index of the first column in the list ONLY if the cols are all beside
30531 // each other. if the cols are not beside each other, then returns null
30532 MoveColumnController.prototype.calculateOldIndex = function (movingCols) {
30533 var gridCols = this.columnController.getAllGridColumns();
30534 var indexes = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["sortNumerically"])(movingCols.map(function (col) { return gridCols.indexOf(col); }));
30535 var firstIndex = indexes[0];
30536 var lastIndex = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(indexes);
30537 var spread = lastIndex - firstIndex;
30538 var gapsExist = spread !== indexes.length - 1;
30539 return gapsExist ? null : firstIndex;
30540 };
30541 MoveColumnController.prototype.attemptMoveColumns = function (dragSourceType, allMovingColumns, hDirection, mouseX, fromEnter) {
30542 var draggingLeft = hDirection === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Left;
30543 var draggingRight = hDirection === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["HorizontalDirection"].Right;
30544 // it is important to sort the moving columns as they are in grid columns, as the list of moving columns
30545 // could themselves be part of 'married children' groups, which means we need to maintain the order within
30546 // the moving list.
30547 var allMovingColumnsOrdered = allMovingColumns.slice();
30548 this.columnController.sortColumnsLikeGridColumns(allMovingColumnsOrdered);
30549 var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);
30550 // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move
30551 // (ie left or right) to the mouse direction. however
30552 var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);
30553 if (validMoves.length === 0) {
30554 return;
30555 }
30556 var firstValidMove = validMoves[0];
30557 // the two check below stop an error when the user grabs a group my a middle column, then
30558 // it is possible the mouse pointer is to the right of a column while been dragged left.
30559 // so we need to make sure that the mouse pointer is actually left of the left most column
30560 // if moving left, and right of the right most column if moving right
30561 // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from
30562 // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should
30563 // place the column to the RHS even if the mouse is moving left and the column is already on
30564 // the LHS. otherwise we stick to the rule described above.
30565 var constrainDirection = oldIndex !== null && !fromEnter;
30566 // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag
30567 if (dragSourceType == _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].HeaderCell) {
30568 constrainDirection = oldIndex !== null;
30569 }
30570 if (constrainDirection) {
30571 // only allow left drag if this column is moving left
30572 if (draggingLeft && firstValidMove >= oldIndex) {
30573 return;
30574 }
30575 // only allow right drag if this column is moving right
30576 if (draggingRight && firstValidMove <= oldIndex) {
30577 return;
30578 }
30579 }
30580 for (var i = 0; i < validMoves.length; i++) {
30581 var move = validMoves[i];
30582 if (!this.columnController.doesMovePassRules(allMovingColumnsOrdered, move)) {
30583 continue;
30584 }
30585 this.columnController.moveColumns(allMovingColumnsOrdered, move, "uiColumnDragged");
30586 // important to return here, so once we do the first valid move, we don't try do any more
30587 return;
30588 }
30589 };
30590 MoveColumnController.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {
30591 var isMoveBlocked = this.gridOptionsWrapper.isSuppressMovableColumns() || movingCols.some(function (col) { return col.getColDef().suppressMovable; });
30592 if (isMoveBlocked) {
30593 return [];
30594 }
30595 // this is the list of cols on the screen, so it's these we use when comparing the x mouse position
30596 var allDisplayedCols = this.columnController.getDisplayedColumns(this.pinned);
30597 // but this list is the list of all cols, when we move a col it's the index within this list that gets used,
30598 // so the result we return has to be and index location for this list
30599 var allGridCols = this.columnController.getAllGridColumns();
30600 var movingDisplayedCols = allDisplayedCols.filter(function (col) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(movingCols, col); });
30601 var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(movingCols, col); });
30602 var otherGridCols = allGridCols.filter(function (col) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["includes"])(movingCols, col); });
30603 // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.
30604 // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving
30605 // col between b and c (so that it is under the mouse position).
30606 var displayIndex = 0;
30607 var availableWidth = mouseX;
30608 // if we are dragging right, then the columns will be to the left of the mouse, so we also want to
30609 // include the width of the moving columns
30610 if (draggingRight) {
30611 var widthOfMovingDisplayedCols_1 = 0;
30612 movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });
30613 availableWidth -= widthOfMovingDisplayedCols_1;
30614 }
30615 if (availableWidth > 0) {
30616 // now count how many of the displayed columns will fit to the left
30617 for (var i = 0; i < otherDisplayedCols.length; i++) {
30618 var col = otherDisplayedCols[i];
30619 availableWidth -= col.getActualWidth();
30620 if (availableWidth < 0) {
30621 break;
30622 }
30623 displayIndex++;
30624 }
30625 // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works
30626 if (draggingRight) {
30627 displayIndex++;
30628 }
30629 }
30630 // the display index is with respect to all the showing columns, however when we move, it's with
30631 // respect to all grid columns, so we need to translate from display index to grid index
30632 var firstValidMove;
30633 if (displayIndex > 0) {
30634 var leftColumn = otherDisplayedCols[displayIndex - 1];
30635 firstValidMove = otherGridCols.indexOf(leftColumn) + 1;
30636 }
30637 else {
30638 firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);
30639 if (firstValidMove === -1) {
30640 firstValidMove = 0;
30641 }
30642 }
30643 var validMoves = [firstValidMove];
30644 var numberComparator = function (a, b) { return a - b; };
30645 // add in other valid moves due to hidden columns and married children. for example, a particular
30646 // move might break a group that has married children (so move isn't valid), however there could
30647 // be hidden columns (not displayed) that we could jump over to make the move valid. because
30648 // they are hidden, user doesn't see any different, however it allows moves that would otherwise
30649 // not work. for example imagine a group with 9 columns and all columns are hidden except the
30650 // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will
30651 // be relative to the not-shown column, however we need to consider the move jumping over all the
30652 // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the
30653 // grid, there would be no way to put a column after it (as the grid would only consider beside the
30654 // visible column, which would fail valid move rules).
30655 if (draggingRight) {
30656 // if dragging right, then we add all the additional moves to the right. so in other words
30657 // if the next move is not valid, find the next move to the right that is valid.
30658 var pointer = firstValidMove + 1;
30659 var lastIndex = allGridCols.length - 1;
30660 while (pointer <= lastIndex) {
30661 validMoves.push(pointer);
30662 pointer++;
30663 }
30664 // adding columns here means the order is now messed up
30665 validMoves.sort(numberComparator);
30666 }
30667 else {
30668 // if dragging left we do the reverse of dragging right, we add in all the valid moves to the
30669 // left. however we also have to consider moves to the right for all hidden columns first.
30670 // (this logic is hard to reason with, it was worked out with trial and error,
30671 // more observation rather than science).
30672 // add moves to the right
30673 var pointer = firstValidMove;
30674 var lastIndex = allGridCols.length - 1;
30675 var displacedCol = allGridCols[pointer];
30676 while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {
30677 pointer++;
30678 validMoves.push(pointer);
30679 displacedCol = allGridCols[pointer];
30680 }
30681 // add moves to the left
30682 pointer = firstValidMove - 1;
30683 var firstDisplayIndex = 0;
30684 while (pointer >= firstDisplayIndex) {
30685 validMoves.push(pointer);
30686 pointer--;
30687 }
30688 // adding columns here means the order is now messed up
30689 validMoves.sort(numberComparator).reverse();
30690 }
30691 return validMoves;
30692 };
30693 // isHidden takes into account visible=false and group=closed, ie it is not displayed
30694 MoveColumnController.prototype.isColumnHidden = function (displayedColumns, col) {
30695 return displayedColumns.indexOf(col) < 0;
30696 };
30697 MoveColumnController.prototype.ensureIntervalStarted = function () {
30698 if (!this.movingIntervalId) {
30699 this.intervalCount = 0;
30700 this.failedMoveAttempts = 0;
30701 this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);
30702 if (this.needToMoveLeft) {
30703 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_LEFT, true);
30704 }
30705 else {
30706 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_RIGHT, true);
30707 }
30708 }
30709 };
30710 MoveColumnController.prototype.ensureIntervalCleared = function () {
30711 if (this.movingIntervalId) {
30712 window.clearInterval(this.movingIntervalId);
30713 this.movingIntervalId = null;
30714 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_MOVE);
30715 }
30716 };
30717 MoveColumnController.prototype.moveInterval = function () {
30718 // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow
30719 // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.
30720 var pixelsToMove;
30721 this.intervalCount++;
30722 pixelsToMove = 10 + (this.intervalCount * 5);
30723 if (pixelsToMove > 100) {
30724 pixelsToMove = 100;
30725 }
30726 var pixelsMoved = null;
30727 var scrollFeature = this.gridBodyCon.getScrollFeature();
30728 if (this.needToMoveLeft) {
30729 pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);
30730 }
30731 else if (this.needToMoveRight) {
30732 pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);
30733 }
30734 if (pixelsMoved !== 0) {
30735 this.onDragging(this.lastDraggingEvent);
30736 this.failedMoveAttempts = 0;
30737 }
30738 else {
30739 // we count the failed move attempts. if we fail to move 7 times, then we pin the column.
30740 // this is how we achieve pining by dragging the column to the edge of the grid.
30741 this.failedMoveAttempts++;
30742 var columns = this.lastDraggingEvent.dragItem.columns;
30743 var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });
30744 if (columnsThatCanPin.length > 0) {
30745 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_PINNED);
30746 if (this.failedMoveAttempts > 7) {
30747 var pinType = this.needToMoveLeft ? _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_LEFT : _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_RIGHT;
30748 this.setColumnsPinned(columnsThatCanPin, pinType, "uiColumnDragged");
30749 this.dragAndDropService.nudge();
30750 }
30751 }
30752 }
30753 };
30754 __decorate([
30755 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
30756 ], MoveColumnController.prototype, "loggerFactory", void 0);
30757 __decorate([
30758 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
30759 ], MoveColumnController.prototype, "columnController", void 0);
30760 __decorate([
30761 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
30762 ], MoveColumnController.prototype, "dragAndDropService", void 0);
30763 __decorate([
30764 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
30765 ], MoveColumnController.prototype, "gridOptionsWrapper", void 0);
30766 __decorate([
30767 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
30768 ], MoveColumnController.prototype, "controllersService", void 0);
30769 __decorate([
30770 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
30771 ], MoveColumnController.prototype, "init", null);
30772 return MoveColumnController;
30773}());
30774
30775
30776
30777/***/ }),
30778/* 130 */
30779/***/ (function(module, __webpack_exports__, __webpack_require__) {
30780
30781"use strict";
30782__webpack_require__.r(__webpack_exports__);
30783/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return BodyDropPivotTarget; });
30784/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
30785/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
30786/**
30787 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30788 * @version v25.3.0
30789 * @link http://www.ag-grid.com/
30790 * @license MIT
30791 */
30792var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30793 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30794 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30795 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;
30796 return c > 3 && r && Object.defineProperty(target, key, r), r;
30797};
30798
30799
30800var BodyDropPivotTarget = /** @class */ (function () {
30801 function BodyDropPivotTarget(pinned) {
30802 this.columnsToAggregate = [];
30803 this.columnsToGroup = [];
30804 this.columnsToPivot = [];
30805 this.pinned = pinned;
30806 }
30807 /** Callback for when drag enters */
30808 BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {
30809 var _this = this;
30810 this.clearColumnsList();
30811 // in pivot mode, we don't accept any drops if functions are read only
30812 if (this.gridOptionsWrapper.isFunctionsReadOnly()) {
30813 return;
30814 }
30815 var dragColumns = draggingEvent.dragItem.columns;
30816 if (!dragColumns) {
30817 return;
30818 }
30819 dragColumns.forEach(function (column) {
30820 // we don't allow adding secondary columns
30821 if (!column.isPrimary()) {
30822 return;
30823 }
30824 if (column.isAnyFunctionActive()) {
30825 return;
30826 }
30827 if (column.isAllowValue()) {
30828 _this.columnsToAggregate.push(column);
30829 }
30830 else if (column.isAllowRowGroup()) {
30831 _this.columnsToGroup.push(column);
30832 }
30833 else if (column.isAllowPivot()) {
30834 _this.columnsToPivot.push(column);
30835 }
30836 });
30837 };
30838 BodyDropPivotTarget.prototype.getIconName = function () {
30839 var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;
30840 if (totalColumns > 0) {
30841 return this.pinned ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_PINNED : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE;
30842 }
30843 return null;
30844 };
30845 /** Callback for when drag leaves */
30846 BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {
30847 // if we are taking columns out of the center, then we remove them from the report
30848 this.clearColumnsList();
30849 };
30850 BodyDropPivotTarget.prototype.clearColumnsList = function () {
30851 this.columnsToAggregate.length = 0;
30852 this.columnsToGroup.length = 0;
30853 this.columnsToPivot.length = 0;
30854 };
30855 /** Callback for when dragging */
30856 BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {
30857 };
30858 /** Callback for when drag stops */
30859 BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {
30860 if (this.columnsToAggregate.length > 0) {
30861 this.columnController.addValueColumns(this.columnsToAggregate, "toolPanelDragAndDrop");
30862 }
30863 if (this.columnsToGroup.length > 0) {
30864 this.columnController.addRowGroupColumns(this.columnsToGroup, "toolPanelDragAndDrop");
30865 }
30866 if (this.columnsToPivot.length > 0) {
30867 this.columnController.addPivotColumns(this.columnsToPivot, "toolPanelDragAndDrop");
30868 }
30869 };
30870 __decorate([
30871 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
30872 ], BodyDropPivotTarget.prototype, "columnController", void 0);
30873 __decorate([
30874 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
30875 ], BodyDropPivotTarget.prototype, "gridOptionsWrapper", void 0);
30876 return BodyDropPivotTarget;
30877}());
30878
30879
30880
30881/***/ }),
30882/* 131 */
30883/***/ (function(module, __webpack_exports__, __webpack_require__) {
30884
30885"use strict";
30886__webpack_require__.r(__webpack_exports__);
30887/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return HeaderNavigationDirection; });
30888/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return HeaderNavigationService; });
30889/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
30890/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
30891/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
30892/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(113);
30893/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
30894/**
30895 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
30896 * @version v25.3.0
30897 * @link http://www.ag-grid.com/
30898 * @license MIT
30899 */
30900var __extends = (undefined && undefined.__extends) || (function () {
30901 var extendStatics = function (d, b) {
30902 extendStatics = Object.setPrototypeOf ||
30903 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30904 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
30905 return extendStatics(d, b);
30906 };
30907 return function (d, b) {
30908 extendStatics(d, b);
30909 function __() { this.constructor = d; }
30910 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30911 };
30912})();
30913var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30914 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30915 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30916 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;
30917 return c > 3 && r && Object.defineProperty(target, key, r), r;
30918};
30919
30920
30921
30922
30923
30924var HeaderNavigationDirection;
30925(function (HeaderNavigationDirection) {
30926 HeaderNavigationDirection[HeaderNavigationDirection["UP"] = 0] = "UP";
30927 HeaderNavigationDirection[HeaderNavigationDirection["DOWN"] = 1] = "DOWN";
30928 HeaderNavigationDirection[HeaderNavigationDirection["LEFT"] = 2] = "LEFT";
30929 HeaderNavigationDirection[HeaderNavigationDirection["RIGHT"] = 3] = "RIGHT";
30930})(HeaderNavigationDirection || (HeaderNavigationDirection = {}));
30931var HeaderNavigationService = /** @class */ (function (_super) {
30932 __extends(HeaderNavigationService, _super);
30933 function HeaderNavigationService() {
30934 return _super !== null && _super.apply(this, arguments) || this;
30935 }
30936 HeaderNavigationService.prototype.postConstruct = function () {
30937 var _this = this;
30938 this.controllersService.whenReady(function (p) {
30939 _this.gridBodyCon = p.gridBodyCon;
30940 });
30941 };
30942 HeaderNavigationService.prototype.registerHeaderRoot = function (headerRoot) {
30943 this.headerRoot = headerRoot;
30944 };
30945 HeaderNavigationService.prototype.getHeaderRowCount = function () {
30946 var headerContainers = this.headerRoot.getHeaderContainers();
30947 return headerContainers.size === 0 ? 0 : this.getHeaderContainer().getRowComps().length;
30948 };
30949 HeaderNavigationService.prototype.getHeaderRowType = function (idx) {
30950 if (this.getHeaderRowCount()) {
30951 return this.getHeaderContainer().getRowComps()[idx].getType();
30952 }
30953 };
30954 HeaderNavigationService.prototype.getHeaderContainer = function (position) {
30955 if (position === void 0) { position = 'center'; }
30956 if (position === null) {
30957 position = 'center';
30958 }
30959 return this.headerRoot.getHeaderContainers().get(position);
30960 };
30961 /*
30962 * This method navigates grid header vertically
30963 * @return {boolean} true to preventDefault on the event that caused this navigation.
30964 */
30965 HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {
30966 if (!fromHeader) {
30967 fromHeader = this.focusController.getFocusedHeader();
30968 }
30969 if (!fromHeader) {
30970 return false;
30971 }
30972 var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;
30973 var rowLen = this.getHeaderRowCount();
30974 var isUp = direction === HeaderNavigationDirection.UP;
30975 var nextRow = isUp ? headerRowIndex - 1 : headerRowIndex + 1;
30976 var nextFocusColumn = null;
30977 var skipColumn = false;
30978 if (nextRow < 0) {
30979 nextRow = 0;
30980 nextFocusColumn = column;
30981 skipColumn = true;
30982 }
30983 if (nextRow >= rowLen) {
30984 nextRow = -1; // -1 indicates the focus should move to grid rows.
30985 }
30986 var currentRowType = this.getHeaderRowType(headerRowIndex);
30987 if (!skipColumn) {
30988 if (currentRowType === _headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
30989 var currentColumn = column;
30990 nextFocusColumn = isUp ? column.getParent() : currentColumn.getDisplayedChildren()[0];
30991 }
30992 else if (currentRowType === _headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].FLOATING_FILTER) {
30993 nextFocusColumn = column;
30994 }
30995 else {
30996 var currentColumn = column;
30997 nextFocusColumn = isUp ? currentColumn.getParent() : currentColumn;
30998 }
30999 if (!nextFocusColumn) {
31000 return false;
31001 }
31002 }
31003 return this.focusController.focusHeaderPosition({ headerRowIndex: nextRow, column: nextFocusColumn }, undefined, false, true, event);
31004 };
31005 /*
31006 * This method navigates grid header horizontally
31007 * @return {boolean} true to preventDefault on the event that caused this navigation.
31008 */
31009 HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {
31010 if (fromTab === void 0) { fromTab = false; }
31011 var focusedHeader = this.focusController.getFocusedHeader();
31012 var isLeft = direction === HeaderNavigationDirection.LEFT;
31013 var isRtl = this.gridOptionsWrapper.isEnableRtl();
31014 var nextHeader;
31015 var normalisedDirection;
31016 // either navigating to the left or isRtl (cannot be both)
31017 if (isLeft !== isRtl) {
31018 normalisedDirection = 'Before';
31019 nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);
31020 }
31021 else {
31022 normalisedDirection = 'After';
31023 nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);
31024 }
31025 if (nextHeader) {
31026 return this.focusController.focusHeaderPosition(nextHeader, normalisedDirection, fromTab, true, event);
31027 }
31028 if (!fromTab) {
31029 return true;
31030 }
31031 return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);
31032 };
31033 HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {
31034 var currentIndex = focusedHeader.headerRowIndex;
31035 var nextPosition = null;
31036 var nextRowIndex;
31037 if (direction === 'Before') {
31038 if (currentIndex > 0) {
31039 nextRowIndex = currentIndex - 1;
31040 nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');
31041 }
31042 }
31043 else {
31044 nextRowIndex = currentIndex + 1;
31045 nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');
31046 }
31047 return this.focusController.focusHeaderPosition(nextPosition, direction, true, true, event);
31048 };
31049 HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {
31050 if (direction === void 0) { direction = 'After'; }
31051 if (column.getPinned()) {
31052 return;
31053 }
31054 var columnToScrollTo;
31055 if (column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__["ColumnGroup"]) {
31056 var columns = column.getDisplayedLeafColumns();
31057 columnToScrollTo = direction === 'Before' ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(columns) : columns[0];
31058 }
31059 else {
31060 columnToScrollTo = column;
31061 }
31062 this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);
31063 // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible
31064 // floating cell, the scrolls get out of sync
31065 this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();
31066 // need to flush frames, to make sure the correct cells are rendered
31067 this.animationFrameService.flushAllFrames();
31068 };
31069 __decorate([
31070 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
31071 ], HeaderNavigationService.prototype, "focusController", void 0);
31072 __decorate([
31073 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerPositionUtils')
31074 ], HeaderNavigationService.prototype, "headerPositionUtils", void 0);
31075 __decorate([
31076 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
31077 ], HeaderNavigationService.prototype, "animationFrameService", void 0);
31078 __decorate([
31079 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
31080 ], HeaderNavigationService.prototype, "controllersService", void 0);
31081 __decorate([
31082 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
31083 ], HeaderNavigationService.prototype, "postConstruct", null);
31084 HeaderNavigationService = __decorate([
31085 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('headerNavigationService')
31086 ], HeaderNavigationService);
31087 return HeaderNavigationService;
31088}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
31089
31090
31091
31092/***/ }),
31093/* 132 */
31094/***/ (function(module, __webpack_exports__, __webpack_require__) {
31095
31096"use strict";
31097__webpack_require__.r(__webpack_exports__);
31098/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyName", function() { return KeyName; });
31099/**
31100 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31101 * @version v25.3.0
31102 * @link http://www.ag-grid.com/
31103 * @license MIT
31104 */
31105var KeyName = /** @class */ (function () {
31106 function KeyName() {
31107 }
31108 KeyName.BACKSPACE = 'Backspace';
31109 KeyName.TAB = 'Tab';
31110 KeyName.ENTER = 'Enter';
31111 KeyName.SHIFT = 'Shift';
31112 KeyName.ESCAPE = 'Escape';
31113 KeyName.SPACE = ' ';
31114 KeyName.LEFT = 'ArrowLeft';
31115 KeyName.UP = 'ArrowUp';
31116 KeyName.RIGHT = 'ArrowRight';
31117 KeyName.DOWN = 'ArrowDown';
31118 KeyName.DELETE = 'Delete';
31119 // IE11 & Edge treat the numpad del key differently - with numlock on we get "Del" for key
31120 KeyName.NUM_PAD_DELETE = 'Del';
31121 KeyName.A = 'a';
31122 KeyName.C = 'c';
31123 KeyName.V = 'v';
31124 KeyName.D = 'd';
31125 KeyName.Z = 'z';
31126 KeyName.Y = 'y';
31127 KeyName.F2 = 'F2';
31128 KeyName.PAGE_UP = 'PageUp';
31129 KeyName.PAGE_DOWN = 'PageDown';
31130 KeyName.PAGE_HOME = 'Home';
31131 KeyName.PAGE_END = 'End';
31132 return KeyName;
31133}());
31134
31135
31136
31137/***/ }),
31138/* 133 */
31139/***/ (function(module, __webpack_exports__, __webpack_require__) {
31140
31141"use strict";
31142__webpack_require__.r(__webpack_exports__);
31143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CenterWidthFeature", function() { return CenterWidthFeature; });
31144/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
31145/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
31146/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
31147/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
31148/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
31149/**
31150 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31151 * @version v25.3.0
31152 * @link http://www.ag-grid.com/
31153 * @license MIT
31154 */
31155var __extends = (undefined && undefined.__extends) || (function () {
31156 var extendStatics = function (d, b) {
31157 extendStatics = Object.setPrototypeOf ||
31158 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31159 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
31160 return extendStatics(d, b);
31161 };
31162 return function (d, b) {
31163 extendStatics(d, b);
31164 function __() { this.constructor = d; }
31165 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31166 };
31167})();
31168var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31169 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31170 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31171 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;
31172 return c > 3 && r && Object.defineProperty(target, key, r), r;
31173};
31174
31175
31176
31177
31178
31179var CenterWidthFeature = /** @class */ (function (_super) {
31180 __extends(CenterWidthFeature, _super);
31181 function CenterWidthFeature(callback) {
31182 var _this = _super.call(this) || this;
31183 _this.callback = callback;
31184 return _this;
31185 }
31186 CenterWidthFeature.prototype.postConstruct = function () {
31187 var listener = this.setWidth.bind(this);
31188 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_DOM_LAYOUT, listener);
31189 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
31190 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);
31191 this.setWidth();
31192 };
31193 CenterWidthFeature.prototype.setWidth = function () {
31194 var columnController = this.columnController;
31195 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].DOM_LAYOUT_PRINT;
31196 var centerWidth = columnController.getBodyContainerWidth();
31197 var leftWidth = columnController.getDisplayedColumnsLeftWidth();
31198 var rightWidth = columnController.getDisplayedColumnsRightWidth();
31199 var totalWidth = printLayout ? centerWidth + leftWidth + rightWidth : centerWidth;
31200 this.callback(totalWidth);
31201 };
31202 __decorate([
31203 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
31204 ], CenterWidthFeature.prototype, "columnController", void 0);
31205 __decorate([
31206 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31207 ], CenterWidthFeature.prototype, "postConstruct", null);
31208 return CenterWidthFeature;
31209}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
31210
31211
31212
31213/***/ }),
31214/* 134 */
31215/***/ (function(module, __webpack_exports__, __webpack_require__) {
31216
31217"use strict";
31218__webpack_require__.r(__webpack_exports__);
31219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return FilterManager; });
31220/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42);
31221/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
31222/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
31223/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
31224/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18);
31225/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
31226/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);
31227/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(54);
31228/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
31229/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
31230/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(33);
31231/**
31232 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31233 * @version v25.3.0
31234 * @link http://www.ag-grid.com/
31235 * @license MIT
31236 */
31237var __extends = (undefined && undefined.__extends) || (function () {
31238 var extendStatics = function (d, b) {
31239 extendStatics = Object.setPrototypeOf ||
31240 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31241 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
31242 return extendStatics(d, b);
31243 };
31244 return function (d, b) {
31245 extendStatics(d, b);
31246 function __() { this.constructor = d; }
31247 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31248 };
31249})();
31250var __assign = (undefined && undefined.__assign) || function () {
31251 __assign = Object.assign || function(t) {
31252 for (var s, i = 1, n = arguments.length; i < n; i++) {
31253 s = arguments[i];
31254 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
31255 t[p] = s[p];
31256 }
31257 return t;
31258 };
31259 return __assign.apply(this, arguments);
31260};
31261var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31262 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31263 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31264 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;
31265 return c > 3 && r && Object.defineProperty(target, key, r), r;
31266};
31267
31268
31269
31270
31271
31272
31273
31274
31275
31276
31277
31278var FilterManager = /** @class */ (function (_super) {
31279 __extends(FilterManager, _super);
31280 function FilterManager() {
31281 var _this = _super !== null && _super.apply(this, arguments) || this;
31282 _this.allAdvancedFilters = new Map();
31283 _this.activeAdvancedFilters = [];
31284 _this.quickFilter = null;
31285 _this.quickFilterParts = null;
31286 // this is true when the grid is processing the filter change. this is used by the cell comps, so that they
31287 // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the
31288 // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where
31289 // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)
31290 // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.
31291 _this.processingFilterChange = false;
31292 return _this;
31293 }
31294 FilterManager_1 = FilterManager;
31295 FilterManager.prototype.init = function () {
31296 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DATA_CHANGED, this.onNewRowsLoaded.bind(this));
31297 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
31298 this.quickFilter = this.parseQuickFilter(this.gridOptionsWrapper.getQuickFilterText());
31299 this.setQuickFilterParts();
31300 this.allowShowChangeAfterFilter = this.gridOptionsWrapper.isAllowShowChangeAfterFilter();
31301 };
31302 FilterManager.prototype.setQuickFilterParts = function () {
31303 this.quickFilterParts = this.quickFilter ? this.quickFilter.split(' ') : null;
31304 };
31305 FilterManager.prototype.setFilterModel = function (model) {
31306 var _this = this;
31307 var allPromises = [];
31308 if (model) {
31309 // mark the filters as we set them, so any active filters left over we stop
31310 var modelKeys_1 = Object(_utils_set__WEBPACK_IMPORTED_MODULE_7__["convertToSet"])(Object.keys(model));
31311 this.allAdvancedFilters.forEach(function (filterWrapper, colId) {
31312 var newModel = model[colId];
31313 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));
31314 modelKeys_1.delete(colId);
31315 });
31316 // at this point, processedFields contains data for which we don't have a filter working yet
31317 modelKeys_1.forEach(function (colId) {
31318 var column = _this.columnController.getPrimaryColumn(colId);
31319 if (!column) {
31320 console.warn('Warning ag-grid setFilterModel - no column found for colId ' + colId);
31321 return;
31322 }
31323 var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');
31324 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));
31325 });
31326 }
31327 else {
31328 this.allAdvancedFilters.forEach(function (filterWrapper) {
31329 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));
31330 });
31331 }
31332 _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].all(allPromises).then(function () { return _this.onFilterChanged(); });
31333 };
31334 FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {
31335 return new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
31336 filterPromise.then(function (filter) {
31337 if (typeof filter.setModel !== 'function') {
31338 console.warn('Warning ag-grid - filter missing setModel method, which is needed for setFilterModel');
31339 resolve();
31340 }
31341 (filter.setModel(newModel) || _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve()).then(function () { return resolve(); });
31342 });
31343 });
31344 };
31345 FilterManager.prototype.getFilterModel = function () {
31346 var result = {};
31347 this.allAdvancedFilters.forEach(function (filterWrapper, key) {
31348 // because user can provide filters, we provide useful error checking and messages
31349 var filterPromise = filterWrapper.filterPromise;
31350 var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });
31351 if (filter == null) {
31352 return null;
31353 }
31354 if (typeof filter.getModel !== 'function') {
31355 console.warn('Warning ag-grid - filter API missing getModel method, which is needed for getFilterModel');
31356 return;
31357 }
31358 var model = filter.getModel();
31359 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(model)) {
31360 result[key] = model;
31361 }
31362 });
31363 return result;
31364 };
31365 // returns true if any advanced filter (ie not quick filter) active
31366 FilterManager.prototype.isAdvancedFilterPresent = function () {
31367 return this.activeAdvancedFilters.length > 0;
31368 };
31369 // called by:
31370 // 1) onFilterChanged()
31371 // 2) onNewRowsLoaded()
31372 FilterManager.prototype.updateActiveFilters = function () {
31373 var _this = this;
31374 this.activeAdvancedFilters.length = 0;
31375 this.allAdvancedFilters.forEach(function (filterWrapper) {
31376 if (filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); })) {
31377 var resolvedPromise = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });
31378 _this.activeAdvancedFilters.push(resolvedPromise);
31379 }
31380 });
31381 };
31382 FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {
31383 this.allAdvancedFilters.forEach(function (filterWrapper) {
31384 var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });
31385 filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);
31386 });
31387 };
31388 FilterManager.prototype.isAnyFilterPresent = function () {
31389 return this.isQuickFilterPresent() || this.isAdvancedFilterPresent() || this.gridOptionsWrapper.isExternalFilterPresent();
31390 };
31391 FilterManager.prototype.doAdvancedFiltersPass = function (node, filterToSkip) {
31392 var data = node.data;
31393 for (var i = 0; i < this.activeAdvancedFilters.length; i++) {
31394 var filter = this.activeAdvancedFilters[i];
31395 if (filter == null || filter === filterToSkip) {
31396 continue;
31397 }
31398 if (typeof filter.doesFilterPass !== 'function') {
31399 // because users can do custom filters, give nice error message
31400 throw new Error('Filter is missing method doesFilterPass');
31401 }
31402 if (!filter.doesFilterPass({ node: node, data: data })) {
31403 return false;
31404 }
31405 }
31406 return true;
31407 };
31408 FilterManager.prototype.parseQuickFilter = function (newFilter) {
31409 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(newFilter)) {
31410 return null;
31411 }
31412 if (!this.gridOptionsWrapper.isRowModelDefault()) {
31413 console.warn('ag-grid: quick filtering only works with the Client-Side Row Model');
31414 return null;
31415 }
31416 return newFilter.toUpperCase();
31417 };
31418 FilterManager.prototype.setQuickFilter = function (newFilter) {
31419 var parsedFilter = this.parseQuickFilter(newFilter);
31420 if (this.quickFilter !== parsedFilter) {
31421 this.quickFilter = parsedFilter;
31422 this.setQuickFilterParts();
31423 this.onFilterChanged();
31424 }
31425 };
31426 FilterManager.prototype.onFilterChanged = function (filterInstance, additionalEventAttributes) {
31427 this.updateActiveFilters();
31428 this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);
31429 this.allAdvancedFilters.forEach(function (filterWrapper) {
31430 filterWrapper.filterPromise.then(function (filter) {
31431 if (filter !== filterInstance && filter.onAnyFilterChanged) {
31432 filter.onAnyFilterChanged();
31433 }
31434 });
31435 });
31436 var filterChangedEvent = {
31437 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_CHANGED,
31438 api: this.gridApi,
31439 columnApi: this.columnApi
31440 };
31441 if (additionalEventAttributes) {
31442 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["mergeDeep"])(filterChangedEvent, additionalEventAttributes);
31443 }
31444 // because internal events are not async in ag-grid, when the dispatchEvent
31445 // method comes back, we know all listeners have finished executing.
31446 this.processingFilterChange = true;
31447 this.eventService.dispatchEvent(filterChangedEvent);
31448 this.processingFilterChange = false;
31449 };
31450 FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {
31451 // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing
31452 // changes when filtering
31453 return !this.allowShowChangeAfterFilter && this.processingFilterChange;
31454 };
31455 FilterManager.prototype.isQuickFilterPresent = function () {
31456 return this.quickFilter !== null;
31457 };
31458 FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {
31459 return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });
31460 };
31461 FilterManager.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {
31462 var _this = this;
31463 var columns = this.columnController.getAllColumnsForQuickFilter();
31464 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["some"])(columns, function (column) {
31465 var part = _this.getQuickFilterTextForColumn(column, node);
31466 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(part) && part.indexOf(filterPart) >= 0;
31467 });
31468 };
31469 FilterManager.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {
31470 if (!node.quickFilterAggregateText) {
31471 this.aggregateRowForQuickFilter(node);
31472 }
31473 return node.quickFilterAggregateText.indexOf(filterPart) >= 0;
31474 };
31475 FilterManager.prototype.doesRowPassQuickFilter = function (node) {
31476 var _this = this;
31477 var usingCache = this.gridOptionsWrapper.isCacheQuickFilter();
31478 // each part must pass, if any fails, then the whole filter fails
31479 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["every"])(this.quickFilterParts, function (part) {
31480 return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);
31481 });
31482 };
31483 FilterManager.prototype.doesRowPassFilter = function (params) {
31484 // the row must pass ALL of the filters, so if any of them fail,
31485 // we return true. that means if a row passes the quick filter,
31486 // but fails the column filter, it fails overall
31487 // first up, check quick filter
31488 if (this.isQuickFilterPresent() && !this.doesRowPassQuickFilter(params.rowNode)) {
31489 return false;
31490 }
31491 // secondly, give the client a chance to reject this row
31492 if (this.gridOptionsWrapper.isExternalFilterPresent() && !this.gridOptionsWrapper.doesExternalFilterPass(params.rowNode)) {
31493 return false;
31494 }
31495 // lastly, check our internal advanced filter
31496 if (this.isAdvancedFilterPresent() && !this.doAdvancedFiltersPass(params.rowNode, params.filterInstanceToSkip)) {
31497 return false;
31498 }
31499 // got this far, all filters pass
31500 return true;
31501 };
31502 FilterManager.prototype.getQuickFilterTextForColumn = function (column, node) {
31503 var value = this.valueService.getValue(column, node, true);
31504 var colDef = column.getColDef();
31505 if (colDef.getQuickFilterText) {
31506 var params = {
31507 value: value,
31508 node: node,
31509 data: node.data,
31510 column: column,
31511 colDef: colDef,
31512 context: this.gridOptionsWrapper.getContext()
31513 };
31514 value = colDef.getQuickFilterText(params);
31515 }
31516 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(value) ? value.toString().toUpperCase() : null;
31517 };
31518 FilterManager.prototype.aggregateRowForQuickFilter = function (node) {
31519 var _this = this;
31520 var stringParts = [];
31521 var columns = this.columnController.getAllColumnsForQuickFilter();
31522 Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["forEach"])(columns, function (column) {
31523 var part = _this.getQuickFilterTextForColumn(column, node);
31524 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(part)) {
31525 stringParts.push(part);
31526 }
31527 });
31528 node.quickFilterAggregateText = stringParts.join(FilterManager_1.QUICK_FILTER_SEPARATOR);
31529 };
31530 FilterManager.prototype.onNewRowsLoaded = function (source) {
31531 this.allAdvancedFilters.forEach(function (filterWrapper) {
31532 filterWrapper.filterPromise.then(function (filter) {
31533 if (filter.onNewRowsLoaded) {
31534 filter.onNewRowsLoaded();
31535 }
31536 });
31537 });
31538 this.updateFilterFlagInColumns(source);
31539 this.updateActiveFilters();
31540 };
31541 FilterManager.prototype.createValueGetter = function (column) {
31542 var _this = this;
31543 return function (node) { return _this.valueService.getValue(column, node, true); };
31544 };
31545 FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {
31546 if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }
31547 if (createIfDoesNotExist) {
31548 return this.getOrCreateFilterWrapper(column, source).filterPromise;
31549 }
31550 var filterWrapper = this.cachedFilter(column);
31551 return filterWrapper ? filterWrapper.filterPromise : null;
31552 };
31553 FilterManager.prototype.isFilterActive = function (column) {
31554 var filterWrapper = this.cachedFilter(column);
31555 return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });
31556 };
31557 FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {
31558 var filterWrapper = this.cachedFilter(column);
31559 if (!filterWrapper) {
31560 filterWrapper = this.createFilterWrapper(column, source);
31561 this.allAdvancedFilters.set(column.getColId(), filterWrapper);
31562 }
31563 else if (source !== 'NO_UI') {
31564 this.putIntoGui(filterWrapper, source);
31565 }
31566 return filterWrapper;
31567 };
31568 FilterManager.prototype.cachedFilter = function (column) {
31569 return this.allAdvancedFilters.get(column.getColId());
31570 };
31571 FilterManager.prototype.createFilterInstance = function (column, $scope) {
31572 var _this = this;
31573 var defaultFilter = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SetFilterModule) ? 'agSetColumnFilter' : 'agTextColumnFilter';
31574 var colDef = column.getColDef();
31575 var filterInstance;
31576 var params = __assign(__assign({}, this.createFilterParams(column, colDef, $scope)), { filterModifiedCallback: function () {
31577 var event = {
31578 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_MODIFIED,
31579 api: _this.gridApi,
31580 columnApi: _this.columnApi,
31581 column: column,
31582 filterInstance: filterInstance
31583 };
31584 _this.eventService.dispatchEvent(event);
31585 }, filterChangedCallback: function (additionalEventAttributes) {
31586 return _this.onFilterChanged(filterInstance, additionalEventAttributes);
31587 }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });
31588 var res = this.userComponentFactory.newFilterComponent(colDef, params, defaultFilter);
31589 if (res) {
31590 res.then(function (r) { return filterInstance = r; });
31591 }
31592 return res;
31593 };
31594 FilterManager.prototype.createFilterParams = function (column, colDef, $scope) {
31595 if ($scope === void 0) { $scope = null; }
31596 var params = {
31597 api: this.gridOptionsWrapper.getApi(),
31598 column: column,
31599 colDef: Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["cloneObject"])(colDef),
31600 rowModel: this.rowModel,
31601 filterChangedCallback: function () { },
31602 filterModifiedCallback: function () { },
31603 valueGetter: this.createValueGetter(column),
31604 context: this.gridOptionsWrapper.getContext(),
31605 doesRowPassOtherFilter: function () { return true; },
31606 };
31607 // hack in scope if using AngularJS
31608 if ($scope) {
31609 params.$scope = $scope;
31610 }
31611 return params;
31612 };
31613 FilterManager.prototype.createFilterWrapper = function (column, source) {
31614 var filterWrapper = {
31615 column: column,
31616 filterPromise: null,
31617 scope: null,
31618 compiledElement: null,
31619 guiPromise: _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve(null)
31620 };
31621 filterWrapper.scope = this.gridOptionsWrapper.isAngularCompileFilters() ? this.$scope.$new() : null;
31622 filterWrapper.filterPromise = this.createFilterInstance(column, filterWrapper.scope);
31623 if (filterWrapper.filterPromise) {
31624 this.putIntoGui(filterWrapper, source);
31625 }
31626 return filterWrapper;
31627 };
31628 FilterManager.prototype.putIntoGui = function (filterWrapper, source) {
31629 var _this = this;
31630 var eFilterGui = document.createElement('div');
31631 eFilterGui.className = 'ag-filter';
31632 filterWrapper.guiPromise = new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
31633 filterWrapper.filterPromise.then(function (filter) {
31634 var guiFromFilter = filter.getGui();
31635 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_8__["exists"])(guiFromFilter)) {
31636 console.warn("getGui method from filter returned " + guiFromFilter + ", it should be a DOM element or an HTML template string.");
31637 }
31638 // for backwards compatibility with Angular 1 - we
31639 // used to allow providing back HTML from getGui().
31640 // once we move away from supporting Angular 1
31641 // directly, we can change this.
31642 if (typeof guiFromFilter === 'string') {
31643 guiFromFilter = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_10__["loadTemplate"])(guiFromFilter);
31644 }
31645 eFilterGui.appendChild(guiFromFilter);
31646 if (filterWrapper.scope) {
31647 var compiledElement = _this.$compile(eFilterGui)(filterWrapper.scope);
31648 filterWrapper.compiledElement = compiledElement;
31649 window.setTimeout(function () { return filterWrapper.scope.$apply(); }, 0);
31650 }
31651 resolve(eFilterGui);
31652 _this.eventService.dispatchEvent({
31653 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_OPENED,
31654 column: filterWrapper.column,
31655 source: source,
31656 eGui: eFilterGui,
31657 api: _this.gridApi,
31658 columnApi: _this.columnApi
31659 });
31660 });
31661 });
31662 };
31663 FilterManager.prototype.onNewColumnsLoaded = function () {
31664 var _this = this;
31665 var atLeastOneFilterGone = false;
31666 this.allAdvancedFilters.forEach(function (filterWrapper) {
31667 var oldColumn = !_this.columnController.getPrimaryColumn(filterWrapper.column);
31668 if (oldColumn) {
31669 atLeastOneFilterGone = true;
31670 _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed');
31671 }
31672 });
31673 if (atLeastOneFilterGone) {
31674 this.onFilterChanged();
31675 }
31676 };
31677 // destroys the filter, so it not longer takes part
31678 FilterManager.prototype.destroyFilter = function (column, source) {
31679 if (source === void 0) { source = 'api'; }
31680 var filterWrapper = this.allAdvancedFilters.get(column.getColId());
31681 if (filterWrapper) {
31682 this.disposeFilterWrapper(filterWrapper, source);
31683 this.onFilterChanged();
31684 }
31685 };
31686 FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {
31687 var _this = this;
31688 filterWrapper.filterPromise.then(function (filter) {
31689 (filter.setModel(null) || _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve()).then(function () {
31690 _this.getContext().destroyBean(filter);
31691 filterWrapper.column.setFilterActive(false, source);
31692 if (filterWrapper.scope) {
31693 if (filterWrapper.compiledElement) {
31694 filterWrapper.compiledElement.remove();
31695 }
31696 filterWrapper.scope.$destroy();
31697 }
31698 _this.allAdvancedFilters.delete(filterWrapper.column.getColId());
31699 });
31700 });
31701 };
31702 FilterManager.prototype.destroy = function () {
31703 var _this = this;
31704 _super.prototype.destroy.call(this);
31705 this.allAdvancedFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed'); });
31706 };
31707 var FilterManager_1;
31708 FilterManager.QUICK_FILTER_SEPARATOR = '\n';
31709 __decorate([
31710 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('$compile')
31711 ], FilterManager.prototype, "$compile", void 0);
31712 __decorate([
31713 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('$scope')
31714 ], FilterManager.prototype, "$scope", void 0);
31715 __decorate([
31716 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('valueService')
31717 ], FilterManager.prototype, "valueService", void 0);
31718 __decorate([
31719 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
31720 ], FilterManager.prototype, "columnController", void 0);
31721 __decorate([
31722 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
31723 ], FilterManager.prototype, "rowModel", void 0);
31724 __decorate([
31725 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
31726 ], FilterManager.prototype, "columnApi", void 0);
31727 __decorate([
31728 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
31729 ], FilterManager.prototype, "gridApi", void 0);
31730 __decorate([
31731 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
31732 ], FilterManager.prototype, "userComponentFactory", void 0);
31733 __decorate([
31734 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31735 ], FilterManager.prototype, "init", null);
31736 __decorate([
31737 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
31738 ], FilterManager.prototype, "destroy", null);
31739 FilterManager = FilterManager_1 = __decorate([
31740 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('filterManager')
31741 ], FilterManager);
31742 return FilterManager;
31743}(_context_beanStub__WEBPACK_IMPORTED_MODULE_6__["BeanStub"]));
31744
31745
31746
31747/***/ }),
31748/* 135 */
31749/***/ (function(module, __webpack_exports__, __webpack_require__) {
31750
31751"use strict";
31752__webpack_require__.r(__webpack_exports__);
31753/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return ValueService; });
31754/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
31755/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
31756/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
31757/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13);
31758/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
31759/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
31760/**
31761 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
31762 * @version v25.3.0
31763 * @link http://www.ag-grid.com/
31764 * @license MIT
31765 */
31766var __extends = (undefined && undefined.__extends) || (function () {
31767 var extendStatics = function (d, b) {
31768 extendStatics = Object.setPrototypeOf ||
31769 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31770 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
31771 return extendStatics(d, b);
31772 };
31773 return function (d, b) {
31774 extendStatics(d, b);
31775 function __() { this.constructor = d; }
31776 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31777 };
31778})();
31779var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31780 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31781 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31782 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;
31783 return c > 3 && r && Object.defineProperty(target, key, r), r;
31784};
31785
31786
31787
31788
31789
31790
31791var ValueService = /** @class */ (function (_super) {
31792 __extends(ValueService, _super);
31793 function ValueService() {
31794 var _this = _super !== null && _super.apply(this, arguments) || this;
31795 _this.initialised = false;
31796 return _this;
31797 }
31798 ValueService.prototype.init = function () {
31799 this.cellExpressions = this.gridOptionsWrapper.isEnableCellExpressions();
31800 this.initialised = true;
31801 };
31802 ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {
31803 if (forFilter === void 0) { forFilter = false; }
31804 if (ignoreAggData === void 0) { ignoreAggData = false; }
31805 // hack - the grid is getting refreshed before this bean gets initialised, race condition.
31806 // really should have a way so they get initialised in the right order???
31807 if (!this.initialised) {
31808 this.init();
31809 }
31810 if (!rowNode) {
31811 return;
31812 }
31813 // pull these out to make code below easier to read
31814 var colDef = column.getColDef();
31815 var field = colDef.field;
31816 var colId = column.getId();
31817 var data = rowNode.data;
31818 var result;
31819 // if there is a value getter, this gets precedence over a field
31820 var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;
31821 var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;
31822 if (forFilter && colDef.filterValueGetter) {
31823 result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);
31824 }
31825 else if (this.gridOptionsWrapper.isTreeData() && aggDataExists) {
31826 result = rowNode.aggData[colId];
31827 }
31828 else if (this.gridOptionsWrapper.isTreeData() && colDef.valueGetter) {
31829 result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);
31830 }
31831 else if (this.gridOptionsWrapper.isTreeData() && (field && data)) {
31832 result = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getValueUsingField"])(data, field, column.isFieldContainsDots());
31833 }
31834 else if (groupDataExists) {
31835 result = rowNode.groupData[colId];
31836 }
31837 else if (aggDataExists) {
31838 result = rowNode.aggData[colId];
31839 }
31840 else if (colDef.valueGetter) {
31841 result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);
31842 }
31843 else if (field && data) {
31844 result = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getValueUsingField"])(data, field, column.isFieldContainsDots());
31845 }
31846 // the result could be an expression itself, if we are allowing cell values to be expressions
31847 if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {
31848 var cellValueGetter = result.substring(1);
31849 result = this.executeValueGetter(cellValueGetter, data, column, rowNode);
31850 }
31851 if (result == null) {
31852 var openedGroup = this.getOpenedGroup(rowNode, column);
31853 if (openedGroup != null) {
31854 return openedGroup;
31855 }
31856 }
31857 return result;
31858 };
31859 ValueService.prototype.getOpenedGroup = function (rowNode, column) {
31860 if (!this.gridOptionsWrapper.isShowOpenedGroup()) {
31861 return;
31862 }
31863 var colDef = column.getColDef();
31864 if (!colDef.showRowGroup) {
31865 return;
31866 }
31867 var showRowGroup = column.getColDef().showRowGroup;
31868 var pointer = rowNode.parent;
31869 while (pointer != null) {
31870 if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getId())) {
31871 return pointer.key;
31872 }
31873 pointer = pointer.parent;
31874 }
31875 return undefined;
31876 };
31877 ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {
31878 var column = this.columnController.getPrimaryColumn(colKey);
31879 if (!rowNode || !column) {
31880 return;
31881 }
31882 // this will only happen if user is trying to paste into a group row, which doesn't make sense
31883 // the user should not be trying to paste into group rows
31884 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(rowNode.data)) {
31885 rowNode.data = {};
31886 }
31887 // for backwards compatibility we are also retrieving the newValueHandler as well as the valueSetter
31888 var _a = column.getColDef(), field = _a.field, newValueHandler = _a.newValueHandler, valueSetter = _a.valueSetter;
31889 // need either a field or a newValueHandler for this to work
31890 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(field) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(newValueHandler) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(valueSetter)) {
31891 // we don't tell user about newValueHandler, as that is deprecated
31892 console.warn("AG Grid: you need either field or valueSetter set on colDef for editing to work");
31893 return;
31894 }
31895 var params = {
31896 node: rowNode,
31897 data: rowNode.data,
31898 oldValue: this.getValue(column, rowNode),
31899 newValue: newValue,
31900 colDef: column.getColDef(),
31901 column: column,
31902 api: this.gridOptionsWrapper.getApi(),
31903 columnApi: this.gridOptionsWrapper.getColumnApi(),
31904 context: this.gridOptionsWrapper.getContext()
31905 };
31906 params.newValue = newValue;
31907 var valueWasDifferent;
31908 if (newValueHandler && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(newValueHandler)) {
31909 valueWasDifferent = newValueHandler(params);
31910 }
31911 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(valueSetter)) {
31912 valueWasDifferent = this.expressionService.evaluate(valueSetter, params);
31913 }
31914 else {
31915 valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());
31916 }
31917 // in case user forgot to return something (possible if they are not using TypeScript
31918 // and just forgot, or using an old newValueHandler we didn't always expect a return
31919 // value here), we default the return value to true, so we always refresh.
31920 if (valueWasDifferent === undefined) {
31921 valueWasDifferent = true;
31922 }
31923 // if no change to the value, then no need to do the updating, or notifying via events.
31924 // otherwise the user could be tabbing around the grid, and cellValueChange would get called
31925 // all the time.
31926 if (!valueWasDifferent) {
31927 return;
31928 }
31929 // reset quick filter on this row
31930 rowNode.resetQuickFilterAggregateText();
31931 this.valueCache.onDataChanged();
31932 params.newValue = this.getValue(column, rowNode);
31933 var onCellValueChanged = column.getColDef().onCellValueChanged;
31934 if (typeof onCellValueChanged === 'function') {
31935 // to make callback async, do in a timeout
31936 setTimeout(function () { return onCellValueChanged(params); }, 0);
31937 }
31938 var event = {
31939 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED,
31940 event: null,
31941 rowIndex: rowNode.rowIndex,
31942 rowPinned: rowNode.rowPinned,
31943 column: params.column,
31944 api: params.api,
31945 columnApi: params.columnApi,
31946 colDef: params.colDef,
31947 context: params.context,
31948 data: rowNode.data,
31949 node: rowNode,
31950 oldValue: params.oldValue,
31951 newValue: params.newValue,
31952 value: params.newValue,
31953 source: eventSource
31954 };
31955 this.eventService.dispatchEvent(event);
31956 };
31957 ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {
31958 if (!field) {
31959 return false;
31960 }
31961 // if no '.', then it's not a deep value
31962 var valuesAreSame = false;
31963 if (!isFieldContainsDots) {
31964 data[field] = newValue;
31965 }
31966 else {
31967 // otherwise it is a deep value, so need to dig for it
31968 var fieldPieces = field.split('.');
31969 var currentObject = data;
31970 while (fieldPieces.length > 0 && currentObject) {
31971 var fieldPiece = fieldPieces.shift();
31972 if (fieldPieces.length === 0) {
31973 currentObject[fieldPiece] = newValue;
31974 }
31975 else {
31976 currentObject = currentObject[fieldPiece];
31977 }
31978 }
31979 }
31980 return !valuesAreSame;
31981 };
31982 ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {
31983 var params = {
31984 data: data,
31985 node: rowNode,
31986 column: column,
31987 colDef: column.getColDef(),
31988 api: this.gridOptionsWrapper.getApi(),
31989 columnApi: this.gridOptionsWrapper.getColumnApi(),
31990 context: this.gridOptionsWrapper.getContext(),
31991 getValue: this.getValueCallback.bind(this, rowNode)
31992 };
31993 return this.expressionService.evaluate(valueGetter, params);
31994 };
31995 ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {
31996 var colId = column.getId();
31997 // if inside the same turn, just return back the value we got last time
31998 var valueFromCache = this.valueCache.getValue(rowNode, colId);
31999 if (valueFromCache !== undefined) {
32000 return valueFromCache;
32001 }
32002 var params = {
32003 data: data,
32004 node: rowNode,
32005 column: column,
32006 colDef: column.getColDef(),
32007 api: this.gridOptionsWrapper.getApi(),
32008 columnApi: this.gridOptionsWrapper.getColumnApi(),
32009 context: this.gridOptionsWrapper.getContext(),
32010 getValue: this.getValueCallback.bind(this, rowNode)
32011 };
32012 var result = this.expressionService.evaluate(valueGetter, params);
32013 // if a turn is active, store the value in case the grid asks for it again
32014 this.valueCache.setValue(rowNode, colId, result);
32015 return result;
32016 };
32017 ValueService.prototype.getValueCallback = function (node, field) {
32018 var otherColumn = this.columnController.getPrimaryColumn(field);
32019 if (otherColumn) {
32020 return this.getValue(otherColumn, node);
32021 }
32022 return null;
32023 };
32024 // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col
32025 ValueService.prototype.getKeyForNode = function (col, rowNode) {
32026 var value = this.getValue(col, rowNode);
32027 var keyCreator = col.getColDef().keyCreator;
32028 var result = keyCreator ? keyCreator({ value: value }) : value;
32029 // if already a string, or missing, just return it
32030 if (typeof result === 'string' || result == null) {
32031 return result;
32032 }
32033 result = String(result);
32034 if (result === '[object Object]') {
32035 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["doOnce"])(function () {
32036 console.warn('AG Grid: a column you are grouping or pivoting by has objects as values. If you want to group by complex objects then either a) use a colDef.keyCreator (se AG Grid docs) or b) to toString() on the object to return a key');
32037 }, 'getKeyForNode - warn about [object,object]');
32038 }
32039 return result;
32040 };
32041 __decorate([
32042 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
32043 ], ValueService.prototype, "expressionService", void 0);
32044 __decorate([
32045 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
32046 ], ValueService.prototype, "columnController", void 0);
32047 __decorate([
32048 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
32049 ], ValueService.prototype, "valueCache", void 0);
32050 __decorate([
32051 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
32052 ], ValueService.prototype, "init", null);
32053 ValueService = __decorate([
32054 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueService')
32055 ], ValueService);
32056 return ValueService;
32057}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
32058
32059
32060
32061/***/ }),
32062/* 136 */
32063/***/ (function(module, __webpack_exports__, __webpack_require__) {
32064
32065"use strict";
32066__webpack_require__.r(__webpack_exports__);
32067/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return GridBodyComp; });
32068/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
32069/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
32070/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
32071/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59);
32072/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
32073/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
32074/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(137);
32075/* harmony import */ var _gridBodyController__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(138);
32076/* harmony import */ var _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(141);
32077/**
32078 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32079 * @version v25.3.0
32080 * @link http://www.ag-grid.com/
32081 * @license MIT
32082 */
32083var __extends = (undefined && undefined.__extends) || (function () {
32084 var extendStatics = function (d, b) {
32085 extendStatics = Object.setPrototypeOf ||
32086 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32087 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32088 return extendStatics(d, b);
32089 };
32090 return function (d, b) {
32091 extendStatics(d, b);
32092 function __() { this.constructor = d; }
32093 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32094 };
32095})();
32096var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32097 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32098 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32099 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;
32100 return c > 3 && r && Object.defineProperty(target, key, r), r;
32101};
32102
32103
32104
32105
32106
32107
32108
32109
32110
32111var GRID_BODY_TEMPLATE = /* html */ "<div class=\"ag-root ag-unselectable\" role=\"grid\" unselectable=\"on\">\n <ag-header-root ref=\"headerRoot\" unselectable=\"on\"></ag-header-root>\n <div class=\"ag-floating-top\" ref=\"eTop\" role=\"presentation\" unselectable=\"on\">\n <ag-row-container ref=\"topLeftContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"topCenterContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"topRightContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"topFullWidthContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].TOP_FULL_WITH + "\"></ag-row-container>\n </div>\n <div class=\"ag-body-viewport\" ref=\"eBodyViewport\" role=\"presentation\">\n <ag-row-container ref=\"leftContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"centerContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"rightContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"fullWidthContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].FULL_WIDTH + "\"></ag-row-container>\n </div>\n <div class=\"ag-floating-bottom\" ref=\"eBottom\" role=\"presentation\" unselectable=\"on\">\n <ag-row-container ref=\"bottomLeftContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"bottomCenterContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"bottomRightContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"bottomFullWidthContainer\" name=\"" + _rowContainer_rowContainerController__WEBPACK_IMPORTED_MODULE_8__["RowContainerNames"].BOTTOM_FULL_WITH + "\"></ag-row-container>\n </div>\n <ag-fake-horizontal-scroll></ag-fake-horizontal-scroll>\n <ag-overlay-wrapper></ag-overlay-wrapper>\n </div>";
32112var GridBodyComp = /** @class */ (function (_super) {
32113 __extends(GridBodyComp, _super);
32114 function GridBodyComp() {
32115 return _super.call(this, GRID_BODY_TEMPLATE) || this;
32116 }
32117 GridBodyComp.prototype.init = function () {
32118 var _this = this;
32119 var setHeight = function (height, element) {
32120 var heightString = height + "px";
32121 element.style.minHeight = heightString;
32122 element.style.height = heightString;
32123 };
32124 var view = {
32125 setRowAnimationCssOnBodyViewport: this.setRowAnimationCssOnBodyViewport.bind(this),
32126 setColumnCount: function (count) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaColCount"])(_this.getGui(), count); },
32127 setRowCount: function (count) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaRowCount"])(_this.getGui(), count); },
32128 setTopHeight: function (height) { return setHeight(height, _this.eTop); },
32129 setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },
32130 setTopDisplay: function (display) { return _this.eTop.style.display = display; },
32131 setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },
32132 setColumnMovingCss: function (moving) { return _this.addOrRemoveCssClass(_gridBodyController__WEBPACK_IMPORTED_MODULE_7__["CSS_CLASS_COLUMN_MOVING"], moving); },
32133 updateLayoutClasses: function (params) {
32134 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
32135 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].NORMAL, params.normal);
32136 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].PRINT, params.print);
32137 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
32138 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].NORMAL, params.normal);
32139 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_6__["LayoutCssClasses"].PRINT, params.print);
32140 },
32141 setAlwaysVerticalScrollClass: function (on) {
32142 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(_this.eBodyViewport, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["CSS_CLASS_FORCE_VERTICAL_SCROLL"], on);
32143 },
32144 registerBodyViewportResizeListener: function (listener) {
32145 var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);
32146 _this.addDestroyFunc(function () { return unsubscribeFromResize(); });
32147 },
32148 setVerticalScrollPaddingVisible: function (show) {
32149 var scroller = show ? 'scroll' : 'hidden';
32150 _this.eTop.style.overflowY = _this.eBottom.style.overflowY = scroller;
32151 },
32152 setCellSelectableCss: function (selectable) {
32153 [_this.eTop, _this.eBodyViewport, _this.eBottom]
32154 .forEach(function (ct) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(ct, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["CSS_CLASS_CELL_SELECTABLE"], selectable); });
32155 },
32156 };
32157 this.controller = this.createManagedBean(new _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["GridBodyController"]());
32158 this.controller.setView(view, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom);
32159 if (this.$scope) {
32160 this.addAngularApplyCheck();
32161 }
32162 this.gridApi.registerGridComp(this);
32163 this.beans.registerGridComp(this);
32164 if (this.contextMenuFactory) {
32165 this.contextMenuFactory.registerGridComp(this);
32166 }
32167 if (this.menuFactory) {
32168 this.menuFactory.registerGridComp(this);
32169 }
32170 if (this.rangeController || this.gridOptionsWrapper.isRowSelectionMulti()) {
32171 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaMultiSelectable"])(this.getGui(), true);
32172 if (this.rangeController) {
32173 this.rangeController.registerGridComp(this);
32174 }
32175 }
32176 [this.eTop, this.eBodyViewport, this.eBottom].forEach(function (element) {
32177 _this.addManagedListener(element, 'focusin', function () {
32178 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addCssClass"])(element, 'ag-has-focus');
32179 });
32180 _this.addManagedListener(element, 'focusout', function (e) {
32181 if (!element.contains(e.relatedTarget)) {
32182 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["removeCssClass"])(element, 'ag-has-focus');
32183 }
32184 });
32185 });
32186 };
32187 GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (animateRows) {
32188 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(this.eBodyViewport, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["RowAnimationCssClasses"].ANIMATION_ON, animateRows);
32189 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(this.eBodyViewport, _gridBodyController__WEBPACK_IMPORTED_MODULE_7__["RowAnimationCssClasses"].ANIMATION_OFF, !animateRows);
32190 };
32191 GridBodyComp.prototype.addAngularApplyCheck = function () {
32192 var _this = this;
32193 // this makes sure if we queue up requests, we only execute oe
32194 var applyTriggered = false;
32195 var listener = function () {
32196 // only need to do one apply at a time
32197 if (applyTriggered) {
32198 return;
32199 }
32200 applyTriggered = true; // mark 'need apply' to true
32201 window.setTimeout(function () {
32202 applyTriggered = false;
32203 _this.$scope.$apply();
32204 }, 0);
32205 };
32206 // these are the events we need to do an apply after - these are the ones that can end up
32207 // with columns added or removed
32208 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
32209 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, listener);
32210 };
32211 GridBodyComp.prototype.getFloatingTopBottom = function () {
32212 return [this.eTop, this.eBottom];
32213 };
32214 // + rangeController
32215 GridBodyComp.prototype.addScrollEventListener = function (listener) {
32216 this.eBodyViewport.addEventListener('scroll', listener);
32217 };
32218 // + rangeController
32219 GridBodyComp.prototype.removeScrollEventListener = function (listener) {
32220 this.eBodyViewport.removeEventListener('scroll', listener);
32221 };
32222 __decorate([
32223 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
32224 ], GridBodyComp.prototype, "beans", void 0);
32225 __decorate([
32226 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
32227 ], GridBodyComp.prototype, "gridApi", void 0);
32228 __decorate([
32229 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$scope')
32230 ], GridBodyComp.prototype, "$scope", void 0);
32231 __decorate([
32232 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
32233 ], GridBodyComp.prototype, "resizeObserverService", void 0);
32234 __decorate([
32235 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
32236 ], GridBodyComp.prototype, "rangeController", void 0);
32237 __decorate([
32238 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('contextMenuFactory')
32239 ], GridBodyComp.prototype, "contextMenuFactory", void 0);
32240 __decorate([
32241 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('menuFactory')
32242 ], GridBodyComp.prototype, "menuFactory", void 0);
32243 __decorate([
32244 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eBodyViewport')
32245 ], GridBodyComp.prototype, "eBodyViewport", void 0);
32246 __decorate([
32247 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eTop')
32248 ], GridBodyComp.prototype, "eTop", void 0);
32249 __decorate([
32250 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eBottom')
32251 ], GridBodyComp.prototype, "eBottom", void 0);
32252 __decorate([
32253 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('headerRoot')
32254 ], GridBodyComp.prototype, "headerRootComp", void 0);
32255 __decorate([
32256 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
32257 ], GridBodyComp.prototype, "init", null);
32258 return GridBodyComp;
32259}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
32260
32261
32262
32263/***/ }),
32264/* 137 */
32265/***/ (function(module, __webpack_exports__, __webpack_require__) {
32266
32267"use strict";
32268__webpack_require__.r(__webpack_exports__);
32269/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return LayoutCssClasses; });
32270/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutFeature", function() { return LayoutFeature; });
32271/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16);
32272/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
32273/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
32274/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
32275/**
32276 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32277 * @version v25.3.0
32278 * @link http://www.ag-grid.com/
32279 * @license MIT
32280 */
32281var __extends = (undefined && undefined.__extends) || (function () {
32282 var extendStatics = function (d, b) {
32283 extendStatics = Object.setPrototypeOf ||
32284 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32285 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32286 return extendStatics(d, b);
32287 };
32288 return function (d, b) {
32289 extendStatics(d, b);
32290 function __() { this.constructor = d; }
32291 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32292 };
32293})();
32294var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32295 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32296 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32297 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;
32298 return c > 3 && r && Object.defineProperty(target, key, r), r;
32299};
32300
32301
32302
32303
32304var LayoutCssClasses;
32305(function (LayoutCssClasses) {
32306 LayoutCssClasses["AUTO_HEIGHT"] = "ag-layout-auto-height";
32307 LayoutCssClasses["NORMAL"] = "ag-layout-normal";
32308 LayoutCssClasses["PRINT"] = "ag-layout-print";
32309})(LayoutCssClasses || (LayoutCssClasses = {}));
32310var LayoutFeature = /** @class */ (function (_super) {
32311 __extends(LayoutFeature, _super);
32312 function LayoutFeature(view) {
32313 var _this = _super.call(this) || this;
32314 _this.view = view;
32315 return _this;
32316 }
32317 LayoutFeature.prototype.postConstruct = function () {
32318 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_DOM_LAYOUT, this.updateLayoutClasses.bind(this));
32319 this.updateLayoutClasses();
32320 };
32321 LayoutFeature.prototype.updateLayoutClasses = function () {
32322 var domLayout = this.gridOptionsWrapper.getDomLayout();
32323 this.view.updateLayoutClasses({
32324 autoHeight: domLayout === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_AUTO_HEIGHT,
32325 normal: domLayout === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_NORMAL,
32326 print: domLayout === _constants_constants__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_PRINT
32327 });
32328 };
32329 __decorate([
32330 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsWrapper')
32331 ], LayoutFeature.prototype, "gridOptionsWrapper", void 0);
32332 __decorate([
32333 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
32334 ], LayoutFeature.prototype, "postConstruct", null);
32335 return LayoutFeature;
32336}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
32337
32338
32339
32340/***/ }),
32341/* 138 */
32342/***/ (function(module, __webpack_exports__, __webpack_require__) {
32343
32344"use strict";
32345__webpack_require__.r(__webpack_exports__);
32346/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowAnimationCssClasses", function() { return RowAnimationCssClasses; });
32347/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_CELL_SELECTABLE", function() { return CSS_CLASS_CELL_SELECTABLE; });
32348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_FORCE_VERTICAL_SCROLL", function() { return CSS_CLASS_FORCE_VERTICAL_SCROLL; });
32349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_COLUMN_MOVING", function() { return CSS_CLASS_COLUMN_MOVING; });
32350/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyController", function() { return GridBodyController; });
32351/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
32352/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
32353/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(137);
32354/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
32355/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24);
32356/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21);
32357/* harmony import */ var _gridBodyScrollFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(139);
32358/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(33);
32359/* harmony import */ var _rowDragFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(140);
32360/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(34);
32361/**
32362 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32363 * @version v25.3.0
32364 * @link http://www.ag-grid.com/
32365 * @license MIT
32366 */
32367var __extends = (undefined && undefined.__extends) || (function () {
32368 var extendStatics = function (d, b) {
32369 extendStatics = Object.setPrototypeOf ||
32370 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32371 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32372 return extendStatics(d, b);
32373 };
32374 return function (d, b) {
32375 extendStatics(d, b);
32376 function __() { this.constructor = d; }
32377 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32378 };
32379})();
32380var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32381 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32382 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32383 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;
32384 return c > 3 && r && Object.defineProperty(target, key, r), r;
32385};
32386
32387
32388
32389
32390
32391
32392
32393
32394
32395
32396var RowAnimationCssClasses;
32397(function (RowAnimationCssClasses) {
32398 RowAnimationCssClasses["ANIMATION_ON"] = "ag-row-animation";
32399 RowAnimationCssClasses["ANIMATION_OFF"] = "ag-row-no-animation";
32400})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));
32401var CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';
32402var CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';
32403var CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';
32404var GridBodyController = /** @class */ (function (_super) {
32405 __extends(GridBodyController, _super);
32406 function GridBodyController() {
32407 return _super !== null && _super.apply(this, arguments) || this;
32408 }
32409 GridBodyController.prototype.getScrollFeature = function () {
32410 return this.bodyScrollFeature;
32411 };
32412 GridBodyController.prototype.getBodyViewportElement = function () {
32413 return this.eBodyViewport;
32414 };
32415 GridBodyController.prototype.setView = function (view, eGridBody, eBodyViewport, eTop, eBottom) {
32416 this.view = view;
32417 this.eGridBody = eGridBody;
32418 this.eBodyViewport = eBodyViewport;
32419 this.eTop = eTop;
32420 this.eBottom = eBottom;
32421 this.setCellTextSelection(this.gridOptionsWrapper.isEnableCellTextSelect());
32422 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_2__["LayoutFeature"](this.view));
32423 this.bodyScrollFeature = this.createManagedBean(new _gridBodyScrollFeature__WEBPACK_IMPORTED_MODULE_6__["GridBodyScrollFeature"](this.eBodyViewport));
32424 this.addRowDragListener();
32425 this.setupRowAnimationCssClass();
32426 this.controllersService.registerGridBodyController(this);
32427 this.addEventListeners();
32428 this.onGridColumnsChanged();
32429 this.addBodyViewportListener();
32430 this.setFloatingHeights();
32431 this.disableBrowserDragging();
32432 this.addStopEditingWhenGridLosesFocus();
32433 };
32434 GridBodyController.prototype.addEventListeners = function () {
32435 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
32436 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
32437 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.setFloatingHeights.bind(this));
32438 };
32439 // used by ColumnAnimationService
32440 GridBodyController.prototype.setColumnMovingCss = function (moving) {
32441 this.view.setColumnMovingCss(moving);
32442 };
32443 GridBodyController.prototype.setCellTextSelection = function (selectable) {
32444 if (selectable === void 0) { selectable = false; }
32445 this.view.setCellSelectableCss(selectable);
32446 };
32447 GridBodyController.prototype.onScrollVisibilityChanged = function () {
32448 var show = this.scrollVisibleService.isVerticalScrollShowing();
32449 this.view.setVerticalScrollPaddingVisible(show);
32450 };
32451 GridBodyController.prototype.onGridColumnsChanged = function () {
32452 var columns = this.columnController.getAllGridColumns();
32453 this.view.setColumnCount(columns ? columns.length : 0);
32454 };
32455 // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)
32456 // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.
32457 GridBodyController.prototype.disableBrowserDragging = function () {
32458 this.addManagedListener(this.eGridBody, 'dragstart', function (event) {
32459 if (event.target instanceof HTMLImageElement) {
32460 event.preventDefault();
32461 return false;
32462 }
32463 });
32464 };
32465 GridBodyController.prototype.addStopEditingWhenGridLosesFocus = function () {
32466 var _this = this;
32467 if (!this.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus()) {
32468 return;
32469 }
32470 var focusOutListener = function (event) {
32471 // this is the element the focus is moving to
32472 var elementWithFocus = event.relatedTarget;
32473 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_9__["getTabIndex"])(elementWithFocus) === null) {
32474 _this.rowRenderer.stopEditing();
32475 return;
32476 }
32477 var clickInsideGrid =
32478 // see if click came from inside the viewports
32479 viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })
32480 // and also that it's not from a detail grid
32481 && _this.mouseEventService.isElementInThisGrid(elementWithFocus);
32482 if (!clickInsideGrid) {
32483 var popupService = _this.popupService;
32484 clickInsideGrid =
32485 popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||
32486 popupService.isElementWithinCustomPopup(elementWithFocus);
32487 }
32488 if (!clickInsideGrid) {
32489 _this.rowRenderer.stopEditing();
32490 }
32491 };
32492 var viewports = [this.eBodyViewport, this.eBottom, this.eTop];
32493 viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });
32494 };
32495 GridBodyController.prototype.updateRowCount = function () {
32496 var headerCount = this.headerNavigationService.getHeaderRowCount();
32497 var modelType = this.paginationProxy.getType();
32498 var rowCount = -1;
32499 if (modelType === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
32500 rowCount = 0;
32501 this.paginationProxy.forEachNode(function (node) {
32502 if (!node.group) {
32503 rowCount++;
32504 }
32505 });
32506 }
32507 var total = rowCount === -1 ? -1 : (headerCount + rowCount);
32508 this.view.setRowCount(total);
32509 };
32510 GridBodyController.prototype.registerBodyViewportResizeListener = function (listener) {
32511 this.view.registerBodyViewportResizeListener(listener);
32512 };
32513 GridBodyController.prototype.setVerticalScrollPaddingVisible = function (visible) {
32514 this.view.setVerticalScrollPaddingVisible(visible);
32515 };
32516 GridBodyController.prototype.isVerticalScrollShowing = function () {
32517 var isAlwaysShowVerticalScroll = this.gridOptionsWrapper.isAlwaysShowVerticalScroll();
32518 this.view.setAlwaysVerticalScrollClass(isAlwaysShowVerticalScroll);
32519 return isAlwaysShowVerticalScroll || Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["isVerticalScrollShowing"])(this.eBodyViewport);
32520 };
32521 GridBodyController.prototype.setupRowAnimationCssClass = function () {
32522 var _this = this;
32523 var listener = function () {
32524 // we don't want to use row animation if scaling, as rows jump strangely as you scroll,
32525 // when scaling and doing row animation.
32526 var animateRows = _this.gridOptionsWrapper.isAnimateRows() && !_this.rowContainerHeightService.isStretching();
32527 _this.view.setRowAnimationCssOnBodyViewport(animateRows);
32528 };
32529 listener();
32530 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_HEIGHT_SCALE_CHANGED, listener);
32531 };
32532 GridBodyController.prototype.getGridBodyElement = function () {
32533 return this.eGridBody;
32534 };
32535 GridBodyController.prototype.addBodyViewportListener = function () {
32536 var _this = this;
32537 // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing
32538 // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell
32539 var listener = function (mouseEvent) {
32540 var target = Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["getTarget"])(mouseEvent);
32541 if (target === _this.eBodyViewport || target === _this.controllersService.getCenterRowContainerCon().getViewportElement()) {
32542 // show it
32543 if (_this.contextMenuFactory) {
32544 _this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, _this.eGridBody);
32545 }
32546 }
32547 };
32548 this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);
32549 };
32550 GridBodyController.prototype.getGui = function () {
32551 return this.eGridBody;
32552 };
32553 // called by rowDragFeature
32554 GridBodyController.prototype.scrollVertically = function (pixels) {
32555 var oldScrollPosition = this.eBodyViewport.scrollTop;
32556 this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);
32557 return this.eBodyViewport.scrollTop - oldScrollPosition;
32558 };
32559 // + rangeController - used to know when to scroll when user is dragging outside the
32560 // main viewport while doing a range selection
32561 GridBodyController.prototype.getBodyClientRect = function () {
32562 if (!this.eBodyViewport) {
32563 return;
32564 }
32565 return this.eBodyViewport.getBoundingClientRect();
32566 };
32567 GridBodyController.prototype.addRowDragListener = function () {
32568 this.rowDragFeature = this.createManagedBean(new _rowDragFeature__WEBPACK_IMPORTED_MODULE_8__["RowDragFeature"](this.eBodyViewport));
32569 this.dragAndDropService.addDropTarget(this.rowDragFeature);
32570 };
32571 GridBodyController.prototype.getRowDragFeature = function () {
32572 return this.rowDragFeature;
32573 };
32574 GridBodyController.prototype.setFloatingHeights = function () {
32575 var pinnedRowModel = this.pinnedRowModel;
32576 var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();
32577 if (floatingTopHeight) {
32578 // adding 1px for cell bottom border
32579 floatingTopHeight += 1;
32580 }
32581 var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();
32582 if (floatingBottomHeight) {
32583 // adding 1px for cell bottom border
32584 floatingBottomHeight += 1;
32585 }
32586 this.view.setTopHeight(floatingTopHeight);
32587 this.view.setBottomHeight(floatingBottomHeight);
32588 this.view.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');
32589 this.view.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');
32590 };
32591 // method will call itself if no available width. this covers if the grid
32592 // isn't visible, but is just about to be visible.
32593 GridBodyController.prototype.sizeColumnsToFit = function (nextTimeout) {
32594 var _this = this;
32595 // IE is different to the other browsers, it already removes the scroll width
32596 // while calling window.getComputedStyle() (which is called by getInnerWidth())
32597 var removeScrollWidth = this.isVerticalScrollShowing() && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_9__["isBrowserIE"])();
32598 var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsWrapper.getScrollbarWidth() : 0;
32599 var bodyViewportWidth = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["getInnerWidth"])(this.eBodyViewport);
32600 var availableWidth = bodyViewportWidth - scrollWidthToRemove;
32601 if (availableWidth > 0) {
32602 this.columnController.sizeColumnsToFit(availableWidth, "sizeColumnsToFit");
32603 return;
32604 }
32605 if (nextTimeout === undefined) {
32606 window.setTimeout(function () {
32607 _this.sizeColumnsToFit(100);
32608 }, 0);
32609 }
32610 else if (nextTimeout === 100) {
32611 window.setTimeout(function () {
32612 _this.sizeColumnsToFit(500);
32613 }, 100);
32614 }
32615 else if (nextTimeout === 500) {
32616 window.setTimeout(function () {
32617 _this.sizeColumnsToFit(-1);
32618 }, 500);
32619 }
32620 else {
32621 console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +
32622 'zero width, maybe the grid is not visible yet on the screen?');
32623 }
32624 };
32625 __decorate([
32626 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowContainerHeightService')
32627 ], GridBodyController.prototype, "rowContainerHeightService", void 0);
32628 __decorate([
32629 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
32630 ], GridBodyController.prototype, "controllersService", void 0);
32631 __decorate([
32632 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
32633 ], GridBodyController.prototype, "columnController", void 0);
32634 __decorate([
32635 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
32636 ], GridBodyController.prototype, "scrollVisibleService", void 0);
32637 __decorate([
32638 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('contextMenuFactory')
32639 ], GridBodyController.prototype, "contextMenuFactory", void 0);
32640 __decorate([
32641 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
32642 ], GridBodyController.prototype, "headerNavigationService", void 0);
32643 __decorate([
32644 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
32645 ], GridBodyController.prototype, "paginationProxy", void 0);
32646 __decorate([
32647 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
32648 ], GridBodyController.prototype, "dragAndDropService", void 0);
32649 __decorate([
32650 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedRowModel')
32651 ], GridBodyController.prototype, "pinnedRowModel", void 0);
32652 __decorate([
32653 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
32654 ], GridBodyController.prototype, "rowRenderer", void 0);
32655 __decorate([
32656 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('popupService')
32657 ], GridBodyController.prototype, "popupService", void 0);
32658 __decorate([
32659 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
32660 ], GridBodyController.prototype, "mouseEventService", void 0);
32661 return GridBodyController;
32662}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
32663
32664
32665
32666/***/ }),
32667/* 139 */
32668/***/ (function(module, __webpack_exports__, __webpack_require__) {
32669
32670"use strict";
32671__webpack_require__.r(__webpack_exports__);
32672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyScrollFeature", function() { return GridBodyScrollFeature; });
32673/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
32674/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
32675/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
32676/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
32677/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);
32678/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(34);
32679/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
32680/**
32681 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
32682 * @version v25.3.0
32683 * @link http://www.ag-grid.com/
32684 * @license MIT
32685 */
32686var __extends = (undefined && undefined.__extends) || (function () {
32687 var extendStatics = function (d, b) {
32688 extendStatics = Object.setPrototypeOf ||
32689 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32690 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
32691 return extendStatics(d, b);
32692 };
32693 return function (d, b) {
32694 extendStatics(d, b);
32695 function __() { this.constructor = d; }
32696 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32697 };
32698})();
32699var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32700 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32701 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32702 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;
32703 return c > 3 && r && Object.defineProperty(target, key, r), r;
32704};
32705
32706
32707
32708
32709
32710
32711
32712var GridBodyScrollFeature = /** @class */ (function (_super) {
32713 __extends(GridBodyScrollFeature, _super);
32714 function GridBodyScrollFeature(eBodyViewport) {
32715 var _this = _super.call(this) || this;
32716 _this.scrollLeft = -1;
32717 _this.nextScrollTop = -1;
32718 _this.scrollTop = -1;
32719 _this.eBodyViewport = eBodyViewport;
32720 _this.resetLastHorizontalScrollElementDebounced = Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(_this.resetLastHorizontalScrollElement.bind(_this), 500);
32721 return _this;
32722 }
32723 GridBodyScrollFeature.prototype.postConstruct = function () {
32724 var _this = this;
32725 this.enableRtl = this.gridOptionsWrapper.isEnableRtl();
32726 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
32727 this.controllersService.whenReady(function (p) {
32728 _this.centerRowContainerCon = p.centerRowContainerCon;
32729 _this.onDisplayedColumnsWidthChanged();
32730 _this.addScrollListener();
32731 });
32732 };
32733 GridBodyScrollFeature.prototype.addScrollListener = function () {
32734 var fakeHScroll = this.controllersService.getFakeHScrollCon();
32735 this.addManagedListener(this.centerRowContainerCon.getViewportElement(), 'scroll', this.onCenterViewportScroll.bind(this));
32736 this.addManagedListener(fakeHScroll.getViewport(), 'scroll', this.onFakeHorizontalScroll.bind(this));
32737 var onVerticalScroll = this.gridOptionsWrapper.isDebounceVerticalScrollbar() ?
32738 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(this.onVerticalScroll.bind(this), 100)
32739 : this.onVerticalScroll.bind(this);
32740 this.addManagedListener(this.eBodyViewport, 'scroll', onVerticalScroll);
32741 };
32742 GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {
32743 if (this.enableRtl) {
32744 // because RTL is all backwards, a change in the width of the row
32745 // can cause a change in the scroll position, without a scroll event,
32746 // because the scroll position in RTL is a function that depends on
32747 // the width. to be convinced of this, take out this line, enable RTL,
32748 // scroll all the way to the left and then resize a column
32749 this.horizontallyScrollHeaderCenterAndFloatingCenter();
32750 }
32751 };
32752 GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {
32753 if (scrollLeft === undefined) {
32754 scrollLeft = this.centerRowContainerCon.getCenterViewportScrollLeft();
32755 }
32756 var offset = this.enableRtl ? scrollLeft : -scrollLeft;
32757 var topCenterContainer = this.controllersService.getTopCenterRowContainerCon();
32758 var bottomCenterContainer = this.controllersService.getBottomCenterRowContainerCon();
32759 var headerRootComp = this.controllersService.getHeaderRootComp();
32760 var fakeHScroll = this.controllersService.getFakeHScrollCon();
32761 headerRootComp.setHorizontalScroll(offset);
32762 bottomCenterContainer.setContainerTranslateX(offset);
32763 topCenterContainer.setContainerTranslateX(offset);
32764 var partner = this.lastHorizontalScrollElement === this.centerRowContainerCon.getViewportElement() ?
32765 fakeHScroll.getViewport() : this.centerRowContainerCon.getViewportElement();
32766 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setScrollLeft"])(partner, Math.abs(scrollLeft), this.enableRtl);
32767 };
32768 GridBodyScrollFeature.prototype.isControllingScroll = function (eDiv) {
32769 if (!this.lastHorizontalScrollElement) {
32770 this.lastHorizontalScrollElement = eDiv;
32771 return true;
32772 }
32773 return eDiv === this.lastHorizontalScrollElement;
32774 };
32775 GridBodyScrollFeature.prototype.onFakeHorizontalScroll = function () {
32776 var fakeHScrollViewport = this.controllersService.getFakeHScrollCon().getViewport();
32777 if (!this.isControllingScroll(fakeHScrollViewport)) {
32778 return;
32779 }
32780 this.onBodyHorizontalScroll(fakeHScrollViewport);
32781 };
32782 GridBodyScrollFeature.prototype.onCenterViewportScroll = function () {
32783 var centerContainerViewport = this.centerRowContainerCon.getViewportElement();
32784 if (!this.isControllingScroll(centerContainerViewport)) {
32785 return;
32786 }
32787 this.onBodyHorizontalScroll(centerContainerViewport);
32788 };
32789 GridBodyScrollFeature.prototype.onBodyHorizontalScroll = function (eSource) {
32790 var centerContainerViewport = this.centerRowContainerCon.getViewportElement();
32791 var scrollLeft = centerContainerViewport.scrollLeft;
32792 if (this.shouldBlockScrollUpdate('horizontal', scrollLeft, true)) {
32793 return;
32794 }
32795 // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.
32796 // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200
32797 // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.
32798 // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,
32799 // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause
32800 // scroll to 200px, the next to 199px, then the first back to 198px and so on).
32801 this.doHorizontalScroll(Math.round(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getScrollLeft"])(eSource, this.enableRtl)));
32802 this.resetLastHorizontalScrollElementDebounced();
32803 };
32804 GridBodyScrollFeature.prototype.onVerticalScroll = function () {
32805 var scrollTop = this.eBodyViewport.scrollTop;
32806 if (this.shouldBlockScrollUpdate('vertical', scrollTop, true)) {
32807 return;
32808 }
32809 this.animationFrameService.setScrollTop(scrollTop);
32810 this.nextScrollTop = scrollTop;
32811 if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {
32812 this.scrollTop = this.nextScrollTop;
32813 this.redrawRowsAfterScroll();
32814 }
32815 else {
32816 this.animationFrameService.schedule();
32817 }
32818 };
32819 GridBodyScrollFeature.prototype.resetLastHorizontalScrollElement = function () {
32820 this.lastHorizontalScrollElement = null;
32821 };
32822 GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {
32823 this.scrollLeft = scrollLeft;
32824 var event = {
32825 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL,
32826 api: this.gridApi,
32827 columnApi: this.columnApi,
32828 direction: 'horizontal',
32829 left: this.scrollLeft,
32830 top: this.scrollTop
32831 };
32832 this.eventService.dispatchEvent(event);
32833 this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);
32834 this.onHorizontalViewportChanged();
32835 };
32836 GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {
32837 // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport
32838 // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually
32839 // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,
32840 // as otherwise it was causing the rows and header to flicker.
32841 if (touchOnly === void 0) { touchOnly = false; }
32842 // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to
32843 // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event
32844 // could be 10px before the max position, and then current scroll event could be 20px after the max position).
32845 // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in
32846 // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.
32847 if (touchOnly && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isIOSUserAgent"])()) {
32848 return false;
32849 }
32850 if (direction === 'vertical') {
32851 var clientHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getInnerHeight"])(this.eBodyViewport);
32852 var scrollHeight = this.eBodyViewport.scrollHeight;
32853 if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {
32854 return true;
32855 }
32856 }
32857 if (direction === 'horizontal') {
32858 var clientWidth = this.centerRowContainerCon.getCenterWidth();
32859 var scrollWidth = this.centerRowContainerCon.getViewportElement().scrollWidth;
32860 if (this.enableRtl && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isRtlNegativeScroll"])()) {
32861 if (scrollTo > 0) {
32862 return true;
32863 }
32864 }
32865 else if (scrollTo < 0) {
32866 return true;
32867 }
32868 if (Math.abs(scrollTo) + clientWidth > scrollWidth) {
32869 return true;
32870 }
32871 }
32872 return false;
32873 };
32874 GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {
32875 var event = {
32876 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL,
32877 direction: 'vertical',
32878 api: this.gridApi,
32879 columnApi: this.columnApi,
32880 left: this.scrollLeft,
32881 top: this.scrollTop
32882 };
32883 this.eventService.dispatchEvent(event);
32884 };
32885 GridBodyScrollFeature.prototype.onHorizontalViewportChanged = function () {
32886 this.centerRowContainerCon.onHorizontalViewportChanged();
32887 };
32888 // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.
32889 // (which happens with some implementations of tabbing). this can result in horizontal scroll getting
32890 // reset back to the left, however no scroll event is fired. so we need to get header to also scroll
32891 // back to the left to be kept in sync.
32892 // adding and removing the grid from the DOM both resets the scroll position and
32893 // triggers a resize event, so notify listeners if the scroll position has changed
32894 GridBodyScrollFeature.prototype.checkScrollLeft = function () {
32895 if (this.scrollLeft !== this.centerRowContainerCon.getCenterViewportScrollLeft()) {
32896 this.onBodyHorizontalScroll(this.centerRowContainerCon.getViewportElement());
32897 }
32898 };
32899 GridBodyScrollFeature.prototype.executeAnimationFrameScroll = function () {
32900 var frameNeeded = this.scrollTop != this.nextScrollTop;
32901 if (frameNeeded) {
32902 this.scrollTop = this.nextScrollTop;
32903 this.redrawRowsAfterScroll();
32904 }
32905 return frameNeeded;
32906 };
32907 // called by scrollHorizontally method and alignedGridsService
32908 GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition) {
32909 var minScrollLeft = 0;
32910 var maxScrollLeft = this.centerRowContainerCon.getViewportElement().scrollWidth - this.centerRowContainerCon.getCenterWidth();
32911 if (this.shouldBlockScrollUpdate('horizontal', hScrollPosition)) {
32912 if (this.enableRtl && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isRtlNegativeScroll"])()) {
32913 hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;
32914 }
32915 else {
32916 hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);
32917 }
32918 }
32919 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setScrollLeft"])(this.centerRowContainerCon.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);
32920 // we need to manually do the event handling (rather than wait for the event)
32921 // for the alignedGridsService, as if we don't, the aligned grid service gets
32922 // notified async, and then it's 'consuming' flag doesn't get used right, and
32923 // we can end up with an infinite loop
32924 this.doHorizontalScroll(hScrollPosition);
32925 };
32926 GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {
32927 this.eBodyViewport.scrollTop = vScrollPosition;
32928 };
32929 GridBodyScrollFeature.prototype.getVScrollPosition = function () {
32930 var result = {
32931 top: this.eBodyViewport.scrollTop,
32932 bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight
32933 };
32934 return result;
32935 };
32936 GridBodyScrollFeature.prototype.getHScrollPosition = function () {
32937 return this.centerRowContainerCon.getHScrollPosition();
32938 };
32939 GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {
32940 return this.centerRowContainerCon.isHorizontalScrollShowing();
32941 };
32942 // called by the headerRootComp and moveColumnController
32943 GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {
32944 var oldScrollPosition = this.centerRowContainerCon.getViewportElement().scrollLeft;
32945 this.setHorizontalScrollPosition(oldScrollPosition + pixels);
32946 return this.centerRowContainerCon.getViewportElement().scrollLeft - oldScrollPosition;
32947 };
32948 // gets called by rowRenderer when new data loaded, as it will want to scroll to the top
32949 GridBodyScrollFeature.prototype.scrollToTop = function () {
32950 this.eBodyViewport.scrollTop = 0;
32951 };
32952 // Valid values for position are bottom, middle and top
32953 GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {
32954 if (position === void 0) { position = null; }
32955 // look for the node index we want to display
32956 var rowCount = this.rowModel.getRowCount();
32957 var comparatorIsAFunction = typeof comparator === 'function';
32958 var indexToSelect = -1;
32959 // go through all the nodes, find the one we want to show
32960 for (var i = 0; i < rowCount; i++) {
32961 var node = this.rowModel.getRow(i);
32962 if (comparatorIsAFunction) {
32963 if (comparator(node)) {
32964 indexToSelect = i;
32965 break;
32966 }
32967 }
32968 else {
32969 // check object equality against node and data
32970 if (comparator === node || comparator === node.data) {
32971 indexToSelect = i;
32972 break;
32973 }
32974 }
32975 }
32976 if (indexToSelect >= 0) {
32977 this.ensureIndexVisible(indexToSelect, position);
32978 }
32979 };
32980 // Valid values for position are bottom, middle and top
32981 // position should be {'top','middle','bottom', or undefined/null}.
32982 // if undefined/null, then the grid will to the minimal amount of scrolling,
32983 // eg if grid needs to scroll up, it scrolls until row is on top,
32984 // if grid needs to scroll down, it scrolls until row is on bottom,
32985 // if row is already in view, grid does not scroll
32986 GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {
32987 // if for print or auto height, everything is always visible
32988 if (this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].DOM_LAYOUT_PRINT) {
32989 return;
32990 }
32991 var rowCount = this.paginationProxy.getRowCount();
32992 if (typeof index !== 'number' || index < 0 || index >= rowCount) {
32993 console.warn('invalid row index for ensureIndexVisible: ' + index);
32994 return;
32995 }
32996 var isPaging = this.gridOptionsWrapper.isPagination();
32997 var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();
32998 if (!paginationPanelEnabled) {
32999 this.paginationProxy.goToPageWithIndex(index);
33000 }
33001 var rowNode = this.paginationProxy.getRow(index);
33002 var rowGotShiftedDuringOperation;
33003 do {
33004 var startingRowTop = rowNode.rowTop;
33005 var startingRowHeight = rowNode.rowHeight;
33006 var paginationOffset = this.paginationProxy.getPixelOffset();
33007 var rowTopPixel = rowNode.rowTop - paginationOffset;
33008 var rowBottomPixel = rowTopPixel + rowNode.rowHeight;
33009 var scrollPosition = this.getVScrollPosition();
33010 var heightOffset = this.heightScaler.getDivStretchOffset();
33011 var vScrollTop = scrollPosition.top + heightOffset;
33012 var vScrollBottom = scrollPosition.bottom + heightOffset;
33013 var viewportHeight = vScrollBottom - vScrollTop;
33014 // work out the pixels for top, middle and bottom up front,
33015 // make the if/else below easier to read
33016 var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);
33017 var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);
33018 // make sure if middle, the row is not outside the top of the grid
33019 var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);
33020 var rowBelowViewport = vScrollTop > rowTopPixel;
33021 var rowAboveViewport = vScrollBottom < rowBottomPixel;
33022 var newScrollPosition = null;
33023 if (position === 'top') {
33024 newScrollPosition = pxTop;
33025 }
33026 else if (position === 'bottom') {
33027 newScrollPosition = pxBottom;
33028 }
33029 else if (position === 'middle') {
33030 newScrollPosition = pxMiddle;
33031 }
33032 else if (rowBelowViewport) {
33033 // if row is before, scroll up with row at top
33034 newScrollPosition = pxTop;
33035 }
33036 else if (rowAboveViewport) {
33037 // if row is below, scroll down with row at bottom
33038 newScrollPosition = pxBottom;
33039 }
33040 if (newScrollPosition !== null) {
33041 this.eBodyViewport.scrollTop = newScrollPosition;
33042 this.rowRenderer.redrawAfterScroll();
33043 }
33044 // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),
33045 // the height of a row changes due to lazy calculation of row heights when using
33046 // colDef.autoHeight or gridOptions.getRowHeight.
33047 // if row was shifted, then the position we scrolled to is incorrect.
33048 rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)
33049 || (startingRowHeight !== rowNode.rowHeight);
33050 } while (rowGotShiftedDuringOperation);
33051 // so when we return back to user, the cells have rendered
33052 this.animationFrameService.flushAllFrames();
33053 };
33054 GridBodyScrollFeature.prototype.ensureColumnVisible = function (key) {
33055 var column = this.columnController.getGridColumn(key);
33056 if (!column) {
33057 return;
33058 }
33059 if (column.isPinned()) {
33060 console.warn('calling ensureIndexVisible on a ' + column.getPinned() + ' pinned column doesn\'t make sense for column ' + column.getColId());
33061 return;
33062 }
33063 if (!this.columnController.isColumnDisplayed(column)) {
33064 console.warn('column is not currently visible');
33065 return;
33066 }
33067 var colLeftPixel = column.getLeft();
33068 var colRightPixel = colLeftPixel + column.getActualWidth();
33069 var viewportWidth = this.centerRowContainerCon.getCenterWidth();
33070 var scrollPosition = this.centerRowContainerCon.getCenterViewportScrollLeft();
33071 var bodyWidth = this.columnController.getBodyContainerWidth();
33072 var viewportLeftPixel;
33073 var viewportRightPixel;
33074 // the logic of working out left and right viewport px is both here and in the ColumnController,
33075 // need to refactor it out to one place
33076 if (this.enableRtl) {
33077 viewportLeftPixel = bodyWidth - scrollPosition - viewportWidth;
33078 viewportRightPixel = bodyWidth - scrollPosition;
33079 }
33080 else {
33081 viewportLeftPixel = scrollPosition;
33082 viewportRightPixel = viewportWidth + scrollPosition;
33083 }
33084 var viewportScrolledPastCol = viewportLeftPixel > colLeftPixel;
33085 var viewportScrolledBeforeCol = viewportRightPixel < colRightPixel;
33086 var colToSmallForViewport = viewportWidth < column.getActualWidth();
33087 var alignColToLeft = viewportScrolledPastCol || colToSmallForViewport;
33088 var alignColToRight = viewportScrolledBeforeCol;
33089 if (alignColToLeft || alignColToRight) {
33090 var newScrollPosition = void 0;
33091 if (this.enableRtl) {
33092 newScrollPosition = alignColToLeft ? (bodyWidth - viewportWidth - colLeftPixel) : (bodyWidth - colRightPixel);
33093 }
33094 else {
33095 newScrollPosition = alignColToLeft ? colLeftPixel : (colRightPixel - viewportWidth);
33096 }
33097 this.centerRowContainerCon.setCenterViewportScrollLeft(newScrollPosition);
33098 }
33099 else {
33100 // otherwise, col is already in view, so do nothing
33101 }
33102 // this will happen anyway, as the move will cause a 'scroll' event on the body, however
33103 // it is possible that the ensureColumnVisible method is called from within AG Grid and
33104 // the caller will need to have the columns rendered to continue, which will be before
33105 // the event has been worked on (which is the case for cell navigation).
33106 this.centerRowContainerCon.onHorizontalViewportChanged();
33107 // so when we return back to user, the cells have rendered
33108 this.animationFrameService.flushAllFrames();
33109 };
33110 __decorate([
33111 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
33112 ], GridBodyScrollFeature.prototype, "controllersService", void 0);
33113 __decorate([
33114 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
33115 ], GridBodyScrollFeature.prototype, "animationFrameService", void 0);
33116 __decorate([
33117 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
33118 ], GridBodyScrollFeature.prototype, "columnApi", void 0);
33119 __decorate([
33120 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
33121 ], GridBodyScrollFeature.prototype, "gridApi", void 0);
33122 __decorate([
33123 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
33124 ], GridBodyScrollFeature.prototype, "paginationProxy", void 0);
33125 __decorate([
33126 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
33127 ], GridBodyScrollFeature.prototype, "rowModel", void 0);
33128 __decorate([
33129 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowContainerHeightService')
33130 ], GridBodyScrollFeature.prototype, "heightScaler", void 0);
33131 __decorate([
33132 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
33133 ], GridBodyScrollFeature.prototype, "rowRenderer", void 0);
33134 __decorate([
33135 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
33136 ], GridBodyScrollFeature.prototype, "columnController", void 0);
33137 __decorate([
33138 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
33139 ], GridBodyScrollFeature.prototype, "postConstruct", null);
33140 return GridBodyScrollFeature;
33141}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
33142
33143
33144
33145/***/ }),
33146/* 140 */
33147/***/ (function(module, __webpack_exports__, __webpack_require__) {
33148
33149"use strict";
33150__webpack_require__.r(__webpack_exports__);
33151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDragFeature", function() { return RowDragFeature; });
33152/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
33153/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
33154/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
33155/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
33156/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);
33157/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
33158/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
33159/**
33160 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
33161 * @version v25.3.0
33162 * @link http://www.ag-grid.com/
33163 * @license MIT
33164 */
33165var __extends = (undefined && undefined.__extends) || (function () {
33166 var extendStatics = function (d, b) {
33167 extendStatics = Object.setPrototypeOf ||
33168 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33169 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33170 return extendStatics(d, b);
33171 };
33172 return function (d, b) {
33173 extendStatics(d, b);
33174 function __() { this.constructor = d; }
33175 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33176 };
33177})();
33178var __assign = (undefined && undefined.__assign) || function () {
33179 __assign = Object.assign || function(t) {
33180 for (var s, i = 1, n = arguments.length; i < n; i++) {
33181 s = arguments[i];
33182 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33183 t[p] = s[p];
33184 }
33185 return t;
33186 };
33187 return __assign.apply(this, arguments);
33188};
33189var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33190 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33191 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33192 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;
33193 return c > 3 && r && Object.defineProperty(target, key, r), r;
33194};
33195var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
33196 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
33197 for (var r = Array(s), k = 0, i = 0; i < il; i++)
33198 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
33199 r[k] = a[j];
33200 return r;
33201};
33202
33203
33204
33205
33206
33207
33208
33209var RowDragFeature = /** @class */ (function (_super) {
33210 __extends(RowDragFeature, _super);
33211 function RowDragFeature(eContainer) {
33212 var _this = _super.call(this) || this;
33213 _this.isMultiRowDrag = false;
33214 _this.isGridSorted = false;
33215 _this.isGridFiltered = false;
33216 _this.isRowGroupActive = false;
33217 _this.eContainer = eContainer;
33218 return _this;
33219 }
33220 RowDragFeature.prototype.postConstruct = function () {
33221 if (this.gridOptionsWrapper.isRowModelDefault()) {
33222 this.clientSideRowModel = this.rowModel;
33223 }
33224 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
33225 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
33226 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));
33227 this.onSortChanged();
33228 this.onFilterChanged();
33229 this.onRowGroupChanged();
33230 };
33231 RowDragFeature.prototype.onSortChanged = function () {
33232 this.isGridSorted = this.sortController.isSortActive();
33233 };
33234 RowDragFeature.prototype.onFilterChanged = function () {
33235 this.isGridFiltered = this.filterManager.isAnyFilterPresent();
33236 };
33237 RowDragFeature.prototype.onRowGroupChanged = function () {
33238 var rowGroups = this.columnController.getRowGroupColumns();
33239 this.isRowGroupActive = !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(rowGroups);
33240 };
33241 RowDragFeature.prototype.getContainer = function () {
33242 return this.eContainer;
33243 };
33244 RowDragFeature.prototype.isInterestedIn = function (type) {
33245 return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].RowDrag;
33246 };
33247 RowDragFeature.prototype.getIconName = function () {
33248 var managedDrag = this.gridOptionsWrapper.isRowDragManaged();
33249 if (managedDrag && this.shouldPreventRowMove()) {
33250 return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_NOT_ALLOWED;
33251 }
33252 return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE;
33253 };
33254 RowDragFeature.prototype.shouldPreventRowMove = function () {
33255 return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;
33256 };
33257 RowDragFeature.prototype.getRowNodes = function (draggingEvent) {
33258 if (!this.isFromThisGrid(draggingEvent)) {
33259 return draggingEvent.dragItem.rowNodes || [];
33260 }
33261 var enableMultiRowDragging = this.gridOptionsWrapper.isEnableMultiRowDragging();
33262 var selectedNodes = this.selectionController.getSelectedNodes();
33263 var currentNode = draggingEvent.dragItem.rowNode;
33264 if (enableMultiRowDragging && selectedNodes.indexOf(currentNode) !== -1) {
33265 this.isMultiRowDrag = true;
33266 return __spreadArrays(selectedNodes);
33267 }
33268 this.isMultiRowDrag = false;
33269 return [currentNode];
33270 };
33271 RowDragFeature.prototype.onDragEnter = function (draggingEvent) {
33272 // when entering, we fire the enter event, then in onEnterOrDragging,
33273 // we also fire the move event. so we get both events when entering.
33274 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, draggingEvent);
33275 this.getRowNodes(draggingEvent).forEach(function (rowNode) {
33276 rowNode.setDragging(true);
33277 });
33278 this.onEnterOrDragging(draggingEvent);
33279 };
33280 RowDragFeature.prototype.onDragging = function (draggingEvent) {
33281 this.onEnterOrDragging(draggingEvent);
33282 };
33283 RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {
33284 var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;
33285 return dragSourceDomDataKey === this.gridOptionsWrapper.getDomDataKey();
33286 };
33287 RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {
33288 var gridBodyCon = this.controllersService.getGridBodyController();
33289 var gridGui = gridBodyCon.getGui();
33290 var dropZoneTarget = draggingEvent.dropZoneTarget;
33291 return !gridGui.contains(dropZoneTarget);
33292 };
33293 RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {
33294 // this event is fired for enter and move
33295 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, draggingEvent);
33296 this.lastDraggingEvent = draggingEvent;
33297 var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
33298 var managedDrag = this.gridOptionsWrapper.isRowDragManaged();
33299 if (managedDrag) {
33300 this.doManagedDrag(draggingEvent, pixel);
33301 }
33302 this.checkCenterForScrolling(pixel);
33303 };
33304 RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {
33305 var _this = this;
33306 var rowNodes;
33307 var isFromThisGrid = this.isFromThisGrid(draggingEvent);
33308 if (isFromThisGrid) {
33309 rowNodes = [draggingEvent.dragItem.rowNode];
33310 if (this.isMultiRowDrag) {
33311 rowNodes = __spreadArrays(this.selectionController.getSelectedNodes()).sort(function (a, b) { return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b); });
33312 }
33313 draggingEvent.dragItem.rowNodes = rowNodes;
33314 }
33315 else {
33316 rowNodes = draggingEvent.dragItem.rowNodes;
33317 }
33318 var managedDrag = this.gridOptionsWrapper.isRowDragManaged();
33319 if (managedDrag && this.shouldPreventRowMove()) {
33320 return;
33321 }
33322 if (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !isFromThisGrid) {
33323 if (!this.isDropZoneWithinThisGrid(draggingEvent)) {
33324 this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);
33325 }
33326 }
33327 else {
33328 this.moveRows(rowNodes, pixel);
33329 }
33330 };
33331 RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {
33332 return parseInt(Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(rowNode.getRowIndexString().split('-')), 10);
33333 };
33334 RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {
33335 var _this = this;
33336 var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();
33337 var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === 'below';
33338 var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
33339 var rowNodes = draggingEvent.dragItem.rowNodes;
33340 var increment = isBelow ? 1 : 0;
33341 if (this.isFromThisGrid(draggingEvent)) {
33342 rowNodes.forEach(function (rowNode) {
33343 if (rowNode.rowTop < pixel) {
33344 increment -= 1;
33345 }
33346 });
33347 this.moveRows(rowNodes, pixel, increment);
33348 }
33349 else {
33350 var getRowNodeId_1 = this.gridOptionsWrapper.getRowNodeIdFunc();
33351 var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;
33352 if (this.clientSideRowModel.getHighlightPosition(pixel) === 'above') {
33353 addIndex--;
33354 }
33355 this.clientSideRowModel.updateRowData({
33356 add: rowNodes
33357 .map(function (node) { return node.data; })
33358 .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowNodeId_1 ? getRowNodeId_1(data) : data.id); }),
33359 addIndex: addIndex
33360 });
33361 }
33362 this.clearRowHighlight();
33363 };
33364 RowDragFeature.prototype.clearRowHighlight = function () {
33365 this.clientSideRowModel.highlightRowAtPixel(null);
33366 };
33367 RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {
33368 if (increment === void 0) { increment = 0; }
33369 var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);
33370 if (rowWasMoved) {
33371 this.focusController.clearFocusedCell();
33372 if (this.rangeController) {
33373 this.rangeController.removeAllCellRanges();
33374 }
33375 }
33376 };
33377 RowDragFeature.prototype.checkCenterForScrolling = function (pixel) {
33378 // scroll if the mouse is within 50px of the grid edge
33379 var gridBodyCon = this.controllersService.getGridBodyController();
33380 var pixelRange = gridBodyCon.getScrollFeature().getVScrollPosition();
33381 // console.log(`pixelRange = (${pixelRange.top}, ${pixelRange.bottom})`);
33382 this.needToMoveUp = pixel < (pixelRange.top + 50);
33383 this.needToMoveDown = pixel > (pixelRange.bottom - 50);
33384 // console.log(`needToMoveUp = ${this.needToMoveUp} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);
33385 // console.log(`needToMoveDown = ${this.needToMoveDown} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);
33386 if (this.needToMoveUp || this.needToMoveDown) {
33387 this.ensureIntervalStarted();
33388 }
33389 else {
33390 this.ensureIntervalCleared();
33391 }
33392 };
33393 RowDragFeature.prototype.ensureIntervalStarted = function () {
33394 if (this.movingIntervalId) {
33395 return;
33396 }
33397 this.intervalCount = 0;
33398 this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);
33399 };
33400 RowDragFeature.prototype.ensureIntervalCleared = function () {
33401 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.movingIntervalId)) {
33402 return;
33403 }
33404 window.clearInterval(this.movingIntervalId);
33405 this.movingIntervalId = null;
33406 };
33407 RowDragFeature.prototype.moveInterval = function () {
33408 // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow
33409 // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.
33410 var pixelsToMove;
33411 this.intervalCount++;
33412 pixelsToMove = 10 + (this.intervalCount * 5);
33413 if (pixelsToMove > 100) {
33414 pixelsToMove = 100;
33415 }
33416 var pixelsMoved = null;
33417 var gridBodyCon = this.controllersService.getGridBodyController();
33418 if (this.needToMoveDown) {
33419 pixelsMoved = gridBodyCon.scrollVertically(pixelsToMove);
33420 }
33421 else if (this.needToMoveUp) {
33422 pixelsMoved = gridBodyCon.scrollVertically(-pixelsToMove);
33423 }
33424 if (pixelsMoved !== 0) {
33425 this.onDragging(this.lastDraggingEvent);
33426 }
33427 };
33428 RowDragFeature.prototype.addRowDropZone = function (params) {
33429 var _this = this;
33430 if (!params.getContainer()) {
33431 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');
33432 return;
33433 }
33434 if (this.dragAndDropService.findExternalZone(params)) {
33435 console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');
33436 return;
33437 }
33438 var processedParams = {
33439 getContainer: params.getContainer
33440 };
33441 if (params.fromGrid) {
33442 params.fromGrid = undefined;
33443 processedParams = params;
33444 }
33445 else {
33446 if (params.onDragEnter) {
33447 processedParams.onDragEnter = function (e) {
33448 params.onDragEnter(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, e));
33449 };
33450 }
33451 if (params.onDragLeave) {
33452 processedParams.onDragLeave = function (e) {
33453 params.onDragLeave(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, e));
33454 };
33455 }
33456 if (params.onDragging) {
33457 processedParams.onDragging = function (e) {
33458 params.onDragging(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, e));
33459 };
33460 }
33461 if (params.onDragStop) {
33462 processedParams.onDragStop = function (e) {
33463 params.onDragStop(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, e));
33464 };
33465 }
33466 }
33467 this.dragAndDropService.addDropTarget(__assign({ isInterestedIn: function (type) { return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].RowDrag; }, getIconName: function () { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE; }, external: true }, processedParams));
33468 };
33469 RowDragFeature.prototype.getRowDropZone = function (events) {
33470 var _this = this;
33471 var getContainer = this.getContainer.bind(this);
33472 var onDragEnter = this.onDragEnter.bind(this);
33473 var onDragLeave = this.onDragLeave.bind(this);
33474 var onDragging = this.onDragging.bind(this);
33475 var onDragStop = this.onDragStop.bind(this);
33476 if (!events) {
33477 return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };
33478 }
33479 return {
33480 getContainer: getContainer,
33481 onDragEnter: events.onDragEnter
33482 ? (function (e) {
33483 onDragEnter(e);
33484 events.onDragEnter(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, e));
33485 })
33486 : onDragEnter,
33487 onDragLeave: events.onDragLeave
33488 ? (function (e) {
33489 onDragLeave(e);
33490 events.onDragLeave(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, e));
33491 })
33492 : onDragLeave,
33493 onDragging: events.onDragging
33494 ? (function (e) {
33495 onDragging(e);
33496 events.onDragging(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, e));
33497 })
33498 : onDragging,
33499 onDragStop: events.onDragStop
33500 ? (function (e) {
33501 onDragStop(e);
33502 events.onDragStop(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, e));
33503 })
33504 : onDragStop,
33505 fromGrid: true /* @private */
33506 };
33507 };
33508 RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {
33509 var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
33510 var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();
33511 var overIndex = -1;
33512 var overNode = null;
33513 if (!mouseIsPastLastRow) {
33514 overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);
33515 overNode = this.rowModel.getRow(overIndex);
33516 }
33517 var vDirectionString;
33518 switch (draggingEvent.vDirection) {
33519 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["VerticalDirection"].Down:
33520 vDirectionString = 'down';
33521 break;
33522 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["VerticalDirection"].Up:
33523 vDirectionString = 'up';
33524 break;
33525 default:
33526 vDirectionString = null;
33527 break;
33528 }
33529 var event = {
33530 type: type,
33531 api: this.gridOptionsWrapper.getApi(),
33532 columnApi: this.gridOptionsWrapper.getColumnApi(),
33533 event: draggingEvent.event,
33534 node: draggingEvent.dragItem.rowNode,
33535 nodes: draggingEvent.dragItem.rowNodes,
33536 overIndex: overIndex,
33537 overNode: overNode,
33538 y: yNormalised,
33539 vDirection: vDirectionString
33540 };
33541 return event;
33542 };
33543 RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {
33544 var event = this.draggingToRowDragEvent(type, draggingEvent);
33545 this.eventService.dispatchEvent(event);
33546 };
33547 RowDragFeature.prototype.onDragLeave = function (draggingEvent) {
33548 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, draggingEvent);
33549 this.stopDragging(draggingEvent);
33550 if (this.gridOptionsWrapper.isRowDragManaged()) {
33551 this.clearRowHighlight();
33552 }
33553 if (this.isFromThisGrid(draggingEvent)) {
33554 this.isMultiRowDrag = false;
33555 }
33556 };
33557 RowDragFeature.prototype.onDragStop = function (draggingEvent) {
33558 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, draggingEvent);
33559 this.stopDragging(draggingEvent);
33560 if (this.gridOptionsWrapper.isRowDragManaged() &&
33561 (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !this.isFromThisGrid(draggingEvent)) &&
33562 !this.isDropZoneWithinThisGrid(draggingEvent)) {
33563 this.moveRowAndClearHighlight(draggingEvent);
33564 }
33565 };
33566 RowDragFeature.prototype.stopDragging = function (draggingEvent) {
33567 this.ensureIntervalCleared();
33568 this.getRowNodes(draggingEvent).forEach(function (rowNode) {
33569 rowNode.setDragging(false);
33570 });
33571 };
33572 __decorate([
33573 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
33574 ], RowDragFeature.prototype, "dragAndDropService", void 0);
33575 __decorate([
33576 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
33577 ], RowDragFeature.prototype, "rowModel", void 0);
33578 __decorate([
33579 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
33580 ], RowDragFeature.prototype, "paginationProxy", void 0);
33581 __decorate([
33582 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
33583 ], RowDragFeature.prototype, "columnController", void 0);
33584 __decorate([
33585 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusController')
33586 ], RowDragFeature.prototype, "focusController", void 0);
33587 __decorate([
33588 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('sortController')
33589 ], RowDragFeature.prototype, "sortController", void 0);
33590 __decorate([
33591 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('filterManager')
33592 ], RowDragFeature.prototype, "filterManager", void 0);
33593 __decorate([
33594 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('selectionController')
33595 ], RowDragFeature.prototype, "selectionController", void 0);
33596 __decorate([
33597 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('rangeController')
33598 ], RowDragFeature.prototype, "rangeController", void 0);
33599 __decorate([
33600 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
33601 ], RowDragFeature.prototype, "mouseEventService", void 0);
33602 __decorate([
33603 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
33604 ], RowDragFeature.prototype, "controllersService", void 0);
33605 __decorate([
33606 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
33607 ], RowDragFeature.prototype, "postConstruct", null);
33608 return RowDragFeature;
33609}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
33610
33611
33612
33613/***/ }),
33614/* 141 */
33615/***/ (function(module, __webpack_exports__, __webpack_require__) {
33616
33617"use strict";
33618__webpack_require__.r(__webpack_exports__);
33619/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerNames", function() { return RowContainerNames; });
33620/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ContainerCssClasses", function() { return ContainerCssClasses; });
33621/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewportCssClasses", function() { return ViewportCssClasses; });
33622/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WrapperCssClasses", function() { return WrapperCssClasses; });
33623/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerController", function() { return RowContainerController; });
33624/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
33625/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
33626/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
33627/* harmony import */ var _rowContainerEventsFeature__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(142);
33628/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
33629/* harmony import */ var _viewportSizeFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(143);
33630/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(27);
33631/* harmony import */ var _setPinnedLeftWidthFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(144);
33632/* harmony import */ var _setPinnedRightWidthFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(145);
33633/* harmony import */ var _setHeightFeature__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(146);
33634/* harmony import */ var _dragListenerFeature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(147);
33635/* harmony import */ var _centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(133);
33636/**
33637 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
33638 * @version v25.3.0
33639 * @link http://www.ag-grid.com/
33640 * @license MIT
33641 */
33642var __extends = (undefined && undefined.__extends) || (function () {
33643 var extendStatics = function (d, b) {
33644 extendStatics = Object.setPrototypeOf ||
33645 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33646 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33647 return extendStatics(d, b);
33648 };
33649 return function (d, b) {
33650 extendStatics(d, b);
33651 function __() { this.constructor = d; }
33652 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33653 };
33654})();
33655var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33656 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33657 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33658 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;
33659 return c > 3 && r && Object.defineProperty(target, key, r), r;
33660};
33661var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
33662 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
33663 for (var r = Array(s), k = 0, i = 0; i < il; i++)
33664 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
33665 r[k] = a[j];
33666 return r;
33667};
33668
33669
33670
33671
33672
33673
33674
33675
33676
33677
33678
33679
33680var RowContainerNames;
33681(function (RowContainerNames) {
33682 RowContainerNames["LEFT"] = "left";
33683 RowContainerNames["RIGHT"] = "right";
33684 RowContainerNames["CENTER"] = "center";
33685 RowContainerNames["FULL_WIDTH"] = "fullWidth";
33686 RowContainerNames["TOP_LEFT"] = "topLeft";
33687 RowContainerNames["TOP_RIGHT"] = "topRight";
33688 RowContainerNames["TOP_CENTER"] = "topCenter";
33689 RowContainerNames["TOP_FULL_WITH"] = "topFullWidth";
33690 RowContainerNames["BOTTOM_LEFT"] = "bottomLeft";
33691 RowContainerNames["BOTTOM_RIGHT"] = "bottomRight";
33692 RowContainerNames["BOTTOM_CENTER"] = "bottomCenter";
33693 RowContainerNames["BOTTOM_FULL_WITH"] = "bottomFullWidth";
33694})(RowContainerNames || (RowContainerNames = {}));
33695var ContainerCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
33696 [RowContainerNames.CENTER, 'ag-center-cols-container'],
33697 [RowContainerNames.LEFT, 'ag-pinned-left-cols-container'],
33698 [RowContainerNames.RIGHT, 'ag-pinned-right-cols-container'],
33699 [RowContainerNames.FULL_WIDTH, 'ag-full-width-container'],
33700 [RowContainerNames.TOP_CENTER, 'ag-floating-top-container'],
33701 [RowContainerNames.TOP_LEFT, 'ag-pinned-left-floating-top'],
33702 [RowContainerNames.TOP_RIGHT, 'ag-pinned-right-floating-top'],
33703 [RowContainerNames.TOP_FULL_WITH, 'ag-floating-top-full-width-container'],
33704 [RowContainerNames.BOTTOM_CENTER, 'ag-floating-bottom-container'],
33705 [RowContainerNames.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],
33706 [RowContainerNames.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],
33707 [RowContainerNames.BOTTOM_FULL_WITH, 'ag-floating-bottom-full-width-container'],
33708]);
33709var ViewportCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
33710 [RowContainerNames.CENTER, 'ag-center-cols-viewport'],
33711 [RowContainerNames.TOP_CENTER, 'ag-floating-top-viewport'],
33712 [RowContainerNames.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],
33713]);
33714var WrapperCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
33715 [RowContainerNames.CENTER, 'ag-center-cols-clipper'],
33716]);
33717var RowContainerController = /** @class */ (function (_super) {
33718 __extends(RowContainerController, _super);
33719 function RowContainerController(name) {
33720 var _this = _super.call(this) || this;
33721 _this.name = name;
33722 return _this;
33723 }
33724 RowContainerController.prototype.postConstruct = function () {
33725 var _this = this;
33726 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
33727 this.enableRtl = this.gridOptionsWrapper.isEnableRtl();
33728 this.forContainers([RowContainerNames.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new _viewportSizeFeature__WEBPACK_IMPORTED_MODULE_5__["ViewportSizeFeature"](_this)); });
33729 this.registerWithControllersService();
33730 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
33731 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
33732 };
33733 RowContainerController.prototype.registerWithControllersService = function () {
33734 switch (this.name) {
33735 case RowContainerNames.CENTER:
33736 this.controllersService.registerCenterRowContainerCon(this);
33737 break;
33738 case RowContainerNames.LEFT:
33739 this.controllersService.registerLeftRowContainerCon(this);
33740 break;
33741 case RowContainerNames.RIGHT:
33742 this.controllersService.registerRightRowContainerCon(this);
33743 break;
33744 case RowContainerNames.TOP_CENTER:
33745 this.controllersService.registerTopCenterRowContainerCon(this);
33746 break;
33747 case RowContainerNames.TOP_LEFT:
33748 this.controllersService.registerTopLeftRowContainerCon(this);
33749 break;
33750 case RowContainerNames.TOP_RIGHT:
33751 this.controllersService.registerTopRightRowContainerCon(this);
33752 break;
33753 case RowContainerNames.BOTTOM_CENTER:
33754 this.controllersService.registerBottomCenterRowContainerCon(this);
33755 break;
33756 case RowContainerNames.BOTTOM_LEFT:
33757 this.controllersService.registerBottomLeftRowContainerCon(this);
33758 break;
33759 case RowContainerNames.BOTTOM_RIGHT:
33760 this.controllersService.registerBottomRightRowContainerCon(this);
33761 break;
33762 }
33763 };
33764 RowContainerController.prototype.forContainers = function (names, callback) {
33765 if (names.indexOf(this.name) >= 0) {
33766 callback();
33767 }
33768 };
33769 RowContainerController.prototype.getContainerElement = function () {
33770 return this.eContainer;
33771 };
33772 RowContainerController.prototype.getViewportSizeFeature = function () {
33773 return this.viewportSizeFeature;
33774 };
33775 RowContainerController.prototype.setView = function (view, eContainer, eViewport, eWrapper) {
33776 var _this = this;
33777 this.view = view;
33778 this.eContainer = eContainer;
33779 this.eViewport = eViewport;
33780 this.eWrapper = eWrapper;
33781 this.createManagedBean(new _rowContainerEventsFeature__WEBPACK_IMPORTED_MODULE_3__["RowContainerEventsFeature"](this.eContainer));
33782 this.addPreventScrollWhileDragging();
33783 var allTopNoFW = [RowContainerNames.TOP_CENTER, RowContainerNames.TOP_LEFT, RowContainerNames.TOP_RIGHT];
33784 var allBottomNoFW = [RowContainerNames.BOTTOM_CENTER, RowContainerNames.BOTTOM_LEFT, RowContainerNames.BOTTOM_RIGHT];
33785 var allMiddleNoFW = [RowContainerNames.CENTER, RowContainerNames.LEFT, RowContainerNames.RIGHT];
33786 var allNoFW = __spreadArrays(allTopNoFW, allBottomNoFW, allMiddleNoFW);
33787 var allMiddle = [RowContainerNames.CENTER, RowContainerNames.LEFT, RowContainerNames.RIGHT, RowContainerNames.FULL_WIDTH];
33788 var allCenter = [RowContainerNames.CENTER, RowContainerNames.TOP_CENTER, RowContainerNames.BOTTOM_CENTER];
33789 var allLeft = [RowContainerNames.LEFT, RowContainerNames.BOTTOM_LEFT, RowContainerNames.TOP_LEFT];
33790 var allRight = [RowContainerNames.RIGHT, RowContainerNames.BOTTOM_RIGHT, RowContainerNames.TOP_RIGHT];
33791 this.forContainers(allLeft, function () { return _this.createManagedBean(new _setPinnedLeftWidthFeature__WEBPACK_IMPORTED_MODULE_7__["SetPinnedLeftWidthFeature"](_this.eContainer)); });
33792 this.forContainers(allRight, function () { return _this.createManagedBean(new _setPinnedRightWidthFeature__WEBPACK_IMPORTED_MODULE_8__["SetPinnedRightWidthFeature"](_this.eContainer)); });
33793 this.forContainers(allMiddle, function () { return _this.createManagedBean(new _setHeightFeature__WEBPACK_IMPORTED_MODULE_9__["SetHeightFeature"](_this.eContainer, _this.eWrapper)); });
33794 this.forContainers(allNoFW, function () { return _this.createManagedBean(new _dragListenerFeature__WEBPACK_IMPORTED_MODULE_10__["DragListenerFeature"](_this.eContainer)); });
33795 this.forContainers(allCenter, function () { return _this.createManagedBean(new _centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__["CenterWidthFeature"](function (width) { return _this.eContainer.style.width = width + "px"; })); });
33796 };
33797 RowContainerController.prototype.onDisplayedColumnsChanged = function () {
33798 var _this = this;
33799 this.forContainers([RowContainerNames.CENTER], function () { return _this.onHorizontalViewportChanged(); });
33800 };
33801 RowContainerController.prototype.onDisplayedColumnsWidthChanged = function () {
33802 var _this = this;
33803 this.forContainers([RowContainerNames.CENTER], function () { return _this.onHorizontalViewportChanged(); });
33804 };
33805 RowContainerController.prototype.onScrollVisibilityChanged = function () {
33806 if (this.name !== RowContainerNames.CENTER) {
33807 return;
33808 }
33809 var visible = this.scrollVisibleService.isHorizontalScrollShowing();
33810 var scrollbarWidth = visible ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;
33811 var height = scrollbarWidth == 0 ? '100%' : "calc(100% + " + scrollbarWidth + "px)";
33812 this.view.setViewportHeight(height);
33813 };
33814 // this methods prevents the grid views from being scrolled while the dragService is being used
33815 // eg. the view should not scroll up and down while dragging rows using the rowDragComp.
33816 RowContainerController.prototype.addPreventScrollWhileDragging = function () {
33817 var _this = this;
33818 var preventScroll = function (e) {
33819 if (_this.dragService.isDragging()) {
33820 if (e.cancelable) {
33821 e.preventDefault();
33822 }
33823 }
33824 };
33825 this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });
33826 this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });
33827 };
33828 // this gets called whenever a change in the viewport, so we can inform column controller it has to work
33829 // out the virtual columns again. gets called from following locations:
33830 // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)
33831 RowContainerController.prototype.onHorizontalViewportChanged = function () {
33832 var scrollWidth = this.getCenterWidth();
33833 var scrollPosition = this.getCenterViewportScrollLeft();
33834 this.columnController.setViewportPosition(scrollWidth, scrollPosition);
33835 };
33836 RowContainerController.prototype.getCenterWidth = function () {
33837 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getInnerWidth"])(this.eViewport);
33838 };
33839 RowContainerController.prototype.getCenterViewportScrollLeft = function () {
33840 // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser
33841 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getScrollLeft"])(this.eViewport, this.enableRtl);
33842 };
33843 RowContainerController.prototype.registerViewportResizeListener = function (listener) {
33844 var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);
33845 this.addDestroyFunc(function () { return unsubscribeFromResize(); });
33846 };
33847 RowContainerController.prototype.isViewportVisible = function () {
33848 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isVisible"])(this.eViewport);
33849 };
33850 RowContainerController.prototype.isViewportHScrollShowing = function () {
33851 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isHorizontalScrollShowing"])(this.eViewport);
33852 };
33853 RowContainerController.prototype.getViewportScrollLeft = function () {
33854 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getScrollLeft"])(this.eViewport, this.enableRtl);
33855 };
33856 RowContainerController.prototype.isHorizontalScrollShowing = function () {
33857 var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();
33858 return isAlwaysShowHorizontalScroll || Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isHorizontalScrollShowing"])(this.eViewport);
33859 };
33860 RowContainerController.prototype.getViewportElement = function () {
33861 return this.eViewport;
33862 };
33863 RowContainerController.prototype.setContainerTranslateX = function (amount) {
33864 this.eContainer.style.transform = "translateX(" + amount + "px)";
33865 };
33866 RowContainerController.prototype.getHScrollPosition = function () {
33867 var res = {
33868 left: this.eViewport.scrollLeft,
33869 right: this.eViewport.scrollLeft + this.eViewport.offsetWidth
33870 };
33871 return res;
33872 };
33873 RowContainerController.prototype.setCenterViewportScrollLeft = function (value) {
33874 // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser
33875 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setScrollLeft"])(this.eViewport, value, this.enableRtl);
33876 };
33877 __decorate([
33878 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
33879 ], RowContainerController.prototype, "scrollVisibleService", void 0);
33880 __decorate([
33881 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
33882 ], RowContainerController.prototype, "dragService", void 0);
33883 __decorate([
33884 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
33885 ], RowContainerController.prototype, "controllersService", void 0);
33886 __decorate([
33887 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
33888 ], RowContainerController.prototype, "columnController", void 0);
33889 __decorate([
33890 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('resizeObserverService')
33891 ], RowContainerController.prototype, "resizeObserverService", void 0);
33892 __decorate([
33893 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
33894 ], RowContainerController.prototype, "postConstruct", null);
33895 return RowContainerController;
33896}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
33897
33898
33899
33900/***/ }),
33901/* 142 */
33902/***/ (function(module, __webpack_exports__, __webpack_require__) {
33903
33904"use strict";
33905__webpack_require__.r(__webpack_exports__);
33906/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerEventsFeature", function() { return RowContainerEventsFeature; });
33907/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
33908/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21);
33909/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
33910/* harmony import */ var _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(105);
33911/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34);
33912/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70);
33913/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51);
33914/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(23);
33915/* harmony import */ var _constants_keyName__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(132);
33916/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(60);
33917/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(16);
33918/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7);
33919/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(14);
33920/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(18);
33921/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(17);
33922/**
33923 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
33924 * @version v25.3.0
33925 * @link http://www.ag-grid.com/
33926 * @license MIT
33927 */
33928var __extends = (undefined && undefined.__extends) || (function () {
33929 var extendStatics = function (d, b) {
33930 extendStatics = Object.setPrototypeOf ||
33931 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33932 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33933 return extendStatics(d, b);
33934 };
33935 return function (d, b) {
33936 extendStatics(d, b);
33937 function __() { this.constructor = d; }
33938 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33939 };
33940})();
33941var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33942 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33943 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33944 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;
33945 return c > 3 && r && Object.defineProperty(target, key, r), r;
33946};
33947
33948
33949
33950
33951
33952
33953
33954
33955
33956
33957
33958
33959
33960
33961
33962var RowContainerEventsFeature = /** @class */ (function (_super) {
33963 __extends(RowContainerEventsFeature, _super);
33964 function RowContainerEventsFeature(element) {
33965 var _this = _super.call(this) || this;
33966 _this.element = element;
33967 return _this;
33968 }
33969 RowContainerEventsFeature.prototype.postConstruct = function () {
33970 this.addMouseListeners();
33971 this.mockContextMenuForIPad();
33972 this.addKeyboardEvents();
33973 };
33974 RowContainerEventsFeature.prototype.addKeyboardEvents = function () {
33975 var _this = this;
33976 var eventNames = ['keydown', 'keypress'];
33977 eventNames.forEach(function (eventName) {
33978 var listener = _this.processKeyboardEvent.bind(_this, eventName);
33979 _this.addManagedListener(_this.element, eventName, listener);
33980 });
33981 };
33982 RowContainerEventsFeature.prototype.addMouseListeners = function () {
33983 var _this = this;
33984 var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', 'mousedown'];
33985 eventNames.forEach(function (eventName) {
33986 var listener = _this.processMouseEvent.bind(_this, eventName);
33987 _this.addManagedListener(_this.element, eventName, listener);
33988 });
33989 };
33990 RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {
33991 if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||
33992 Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["isStopPropagationForAgGrid"])(mouseEvent)) {
33993 return;
33994 }
33995 var rowComp = this.getRowForEvent(mouseEvent);
33996 var cellComp = this.mouseEventService.getRenderedCellForEvent(mouseEvent);
33997 if (eventName === "contextmenu") {
33998 this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellComp);
33999 }
34000 else {
34001 if (cellComp) {
34002 cellComp.onMouseEvent(eventName, mouseEvent);
34003 }
34004 if (rowComp) {
34005 rowComp.onMouseEvent(eventName, mouseEvent);
34006 }
34007 }
34008 };
34009 RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {
34010 var _this = this;
34011 // we do NOT want this when not in iPad, otherwise we will be doing
34012 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_4__["isIOSUserAgent"])()) {
34013 return;
34014 }
34015 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__["TouchListener"](this.element);
34016 var longTapListener = function (event) {
34017 var rowComp = _this.getRowForEvent(event.touchEvent);
34018 var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);
34019 _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);
34020 };
34021 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__["TouchListener"].EVENT_LONG_TAP, longTapListener);
34022 this.addDestroyFunc(function () { return touchListener.destroy(); });
34023 };
34024 RowContainerEventsFeature.prototype.getRowForEvent = function (event) {
34025 var sourceElement = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getTarget"])(event);
34026 while (sourceElement) {
34027 var rowCon = this.gridOptionsWrapper.getDomData(sourceElement, _rendering_row_rowController__WEBPACK_IMPORTED_MODULE_3__["RowController"].DOM_DATA_KEY_RENDERED_ROW);
34028 if (rowCon) {
34029 return rowCon;
34030 }
34031 sourceElement = sourceElement.parentElement;
34032 }
34033 return null;
34034 };
34035 RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellComp) {
34036 var rowNode = rowComp ? rowComp.getRowNode() : null;
34037 var column = cellComp ? cellComp.getColumn() : null;
34038 var value = null;
34039 if (column) {
34040 var event_1 = mouseEvent ? mouseEvent : touchEvent;
34041 cellComp.dispatchCellContextMenuEvent(event_1);
34042 value = this.valueService.getValue(column, rowNode);
34043 }
34044 // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel
34045 var gridBodyCon = this.controllersService.getGridBodyController();
34046 var anchorToElement = cellComp ? cellComp.getGui() : gridBodyCon.getGridBodyElement();
34047 if (this.contextMenuFactory) {
34048 this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);
34049 }
34050 };
34051 RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {
34052 var cellComp = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getComponentForEvent"])(this.gridOptionsWrapper, keyboardEvent, 'cellComp');
34053 var rowComp = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getComponentForEvent"])(this.gridOptionsWrapper, keyboardEvent, 'renderedRow');
34054 if (keyboardEvent.defaultPrevented) {
34055 return;
34056 }
34057 if (cellComp) {
34058 this.processCellKeyboardEvent(cellComp, eventName, keyboardEvent);
34059 }
34060 else if (rowComp && rowComp.isFullWidth()) {
34061 this.processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent);
34062 }
34063 };
34064 RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellComp, eventName, keyboardEvent) {
34065 var rowNode = cellComp.getRenderedRow().getRowNode();
34066 var column = cellComp.getColumn();
34067 var editing = cellComp.isEditing();
34068 var gridProcessingAllowed = !Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["isUserSuppressingKeyboardEvent"])(this.gridOptionsWrapper, keyboardEvent, rowNode, column, editing);
34069 if (gridProcessingAllowed) {
34070 switch (eventName) {
34071 case 'keydown':
34072 // first see if it's a scroll key, page up / down, home / end etc
34073 var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);
34074 // if not a scroll key, then we pass onto cell
34075 if (!wasScrollKey) {
34076 cellComp.onKeyDown(keyboardEvent);
34077 }
34078 // perform clipboard and undo / redo operations
34079 this.doGridOperations(keyboardEvent, cellComp);
34080 break;
34081 case 'keypress':
34082 cellComp.onKeyPress(keyboardEvent);
34083 break;
34084 }
34085 }
34086 if (eventName === 'keydown') {
34087 var cellKeyDownEvent = cellComp.createEvent(keyboardEvent, _events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_DOWN);
34088 this.eventService.dispatchEvent(cellKeyDownEvent);
34089 }
34090 if (eventName === 'keypress') {
34091 var cellKeyPressEvent = cellComp.createEvent(keyboardEvent, _events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_PRESS);
34092 this.eventService.dispatchEvent(cellKeyPressEvent);
34093 }
34094 };
34095 RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {
34096 var rowNode = rowComp.getRowNode();
34097 var focusedCell = this.focusController.getFocusedCell();
34098 var column = (focusedCell && focusedCell.column);
34099 var gridProcessingAllowed = !Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["isUserSuppressingKeyboardEvent"])(this.gridOptionsWrapper, keyboardEvent, rowNode, column, false);
34100 if (gridProcessingAllowed) {
34101 var key = keyboardEvent.key;
34102 if (eventName === 'keydown') {
34103 switch (key) {
34104 case _constants_keyName__WEBPACK_IMPORTED_MODULE_8__["KeyName"].UP:
34105 case _constants_keyName__WEBPACK_IMPORTED_MODULE_8__["KeyName"].DOWN:
34106 rowComp.onKeyboardNavigate(keyboardEvent);
34107 break;
34108 case _constants_keyName__WEBPACK_IMPORTED_MODULE_8__["KeyName"].TAB:
34109 rowComp.onTabKeyDown(keyboardEvent);
34110 default:
34111 }
34112 }
34113 }
34114 if (eventName === 'keydown') {
34115 var cellKeyDownEvent = rowComp.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_DOWN, keyboardEvent);
34116 this.eventService.dispatchEvent(cellKeyDownEvent);
34117 }
34118 if (eventName === 'keypress') {
34119 var cellKeyPressEvent = rowComp.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_PRESS, keyboardEvent);
34120 this.eventService.dispatchEvent(cellKeyPressEvent);
34121 }
34122 };
34123 RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, cellComp) {
34124 // check if ctrl or meta key pressed
34125 if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {
34126 return;
34127 }
34128 // if the cell the event came from is editing, then we do not
34129 // want to do the default shortcut keys, otherwise the editor
34130 // (eg a text field) would not be able to do the normal cut/copy/paste
34131 if (cellComp.isEditing()) {
34132 return;
34133 }
34134 // for copy / paste, we don't want to execute when the event
34135 // was from a child grid (happens in master detail)
34136 if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {
34137 return;
34138 }
34139 switch (keyboardEvent.which) {
34140 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].A:
34141 return this.onCtrlAndA(keyboardEvent);
34142 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].C:
34143 return this.onCtrlAndC(keyboardEvent);
34144 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].V:
34145 return this.onCtrlAndV();
34146 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].D:
34147 return this.onCtrlAndD(keyboardEvent);
34148 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].Z:
34149 return keyboardEvent.shiftKey ? this.undoRedoService.redo() : this.undoRedoService.undo();
34150 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_9__["KeyCode"].Y:
34151 return this.undoRedoService.redo();
34152 }
34153 };
34154 RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {
34155 var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeController = _a.rangeController;
34156 var PINNED_BOTTOM = _constants_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].PINNED_BOTTOM, PINNED_TOP = _constants_constants__WEBPACK_IMPORTED_MODULE_10__["Constants"].PINNED_TOP;
34157 if (rangeController && paginationProxy.isRowsToRender()) {
34158 var _b = [
34159 pinnedRowModel.isEmpty(PINNED_TOP),
34160 pinnedRowModel.isEmpty(PINNED_BOTTOM)
34161 ], isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];
34162 var floatingStart = isEmptyPinnedTop ? null : PINNED_TOP;
34163 var floatingEnd = void 0;
34164 var rowEnd = void 0;
34165 if (isEmptyPinnedBottom) {
34166 floatingEnd = null;
34167 rowEnd = this.paginationProxy.getRowCount() - 1;
34168 }
34169 else {
34170 floatingEnd = PINNED_BOTTOM;
34171 rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;
34172 }
34173 var allDisplayedColumns = this.columnController.getAllDisplayedColumns();
34174 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_11__["missingOrEmpty"])(allDisplayedColumns)) {
34175 return;
34176 }
34177 rangeController.setCellRange({
34178 rowStartIndex: 0,
34179 rowStartPinned: floatingStart,
34180 rowEndIndex: rowEnd,
34181 rowEndPinned: floatingEnd,
34182 columnStart: allDisplayedColumns[0],
34183 columnEnd: Object(_utils_array__WEBPACK_IMPORTED_MODULE_12__["last"])(allDisplayedColumns)
34184 });
34185 }
34186 event.preventDefault();
34187 };
34188 RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {
34189 if (!this.clipboardService || this.gridOptionsWrapper.isEnableCellTextSelection()) {
34190 return;
34191 }
34192 this.clipboardService.copyToClipboard();
34193 event.preventDefault();
34194 };
34195 RowContainerEventsFeature.prototype.onCtrlAndV = function () {
34196 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_13__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_14__["ModuleNames"].ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {
34197 this.clipboardService.pasteFromClipboard();
34198 }
34199 };
34200 RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {
34201 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_13__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_14__["ModuleNames"].ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {
34202 this.clipboardService.copyRangeDown();
34203 }
34204 event.preventDefault();
34205 };
34206 __decorate([
34207 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('mouseEventService')
34208 ], RowContainerEventsFeature.prototype, "mouseEventService", void 0);
34209 __decorate([
34210 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
34211 ], RowContainerEventsFeature.prototype, "valueService", void 0);
34212 __decorate([
34213 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('contextMenuFactory')
34214 ], RowContainerEventsFeature.prototype, "contextMenuFactory", void 0);
34215 __decorate([
34216 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('controllersService')
34217 ], RowContainerEventsFeature.prototype, "controllersService", void 0);
34218 __decorate([
34219 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('navigationService')
34220 ], RowContainerEventsFeature.prototype, "navigationService", void 0);
34221 __decorate([
34222 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('focusController')
34223 ], RowContainerEventsFeature.prototype, "focusController", void 0);
34224 __decorate([
34225 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('undoRedoService')
34226 ], RowContainerEventsFeature.prototype, "undoRedoService", void 0);
34227 __decorate([
34228 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
34229 ], RowContainerEventsFeature.prototype, "columnController", void 0);
34230 __decorate([
34231 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('paginationProxy')
34232 ], RowContainerEventsFeature.prototype, "paginationProxy", void 0);
34233 __decorate([
34234 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('pinnedRowModel')
34235 ], RowContainerEventsFeature.prototype, "pinnedRowModel", void 0);
34236 __decorate([
34237 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeController')
34238 ], RowContainerEventsFeature.prototype, "rangeController", void 0);
34239 __decorate([
34240 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('clipboardService')
34241 ], RowContainerEventsFeature.prototype, "clipboardService", void 0);
34242 __decorate([
34243 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
34244 ], RowContainerEventsFeature.prototype, "postConstruct", null);
34245 return RowContainerEventsFeature;
34246}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34247
34248
34249
34250/***/ }),
34251/* 143 */
34252/***/ (function(module, __webpack_exports__, __webpack_require__) {
34253
34254"use strict";
34255__webpack_require__.r(__webpack_exports__);
34256/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewportSizeFeature", function() { return ViewportSizeFeature; });
34257/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34258/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
34259/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
34260/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
34261/**
34262 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34263 * @version v25.3.0
34264 * @link http://www.ag-grid.com/
34265 * @license MIT
34266 */
34267var __extends = (undefined && undefined.__extends) || (function () {
34268 var extendStatics = function (d, b) {
34269 extendStatics = Object.setPrototypeOf ||
34270 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34271 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34272 return extendStatics(d, b);
34273 };
34274 return function (d, b) {
34275 extendStatics(d, b);
34276 function __() { this.constructor = d; }
34277 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34278 };
34279})();
34280var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34281 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34282 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34283 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;
34284 return c > 3 && r && Object.defineProperty(target, key, r), r;
34285};
34286
34287
34288
34289
34290// listens to changes in the center viewport size, for column and row virtualisation,
34291// and adjusts grid as necessary. there are two viewports, one for horizontal and one for
34292// vertical scrolling.
34293var ViewportSizeFeature = /** @class */ (function (_super) {
34294 __extends(ViewportSizeFeature, _super);
34295 function ViewportSizeFeature(centerContainer) {
34296 var _this = _super.call(this) || this;
34297 _this.centerContainerCon = centerContainer;
34298 return _this;
34299 }
34300 ViewportSizeFeature.prototype.postConstruct = function () {
34301 var _this = this;
34302 this.controllersService.whenReady(function () {
34303 _this.gridBodyCon = _this.controllersService.getGridBodyController();
34304 _this.listenForResize();
34305 });
34306 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));
34307 };
34308 ViewportSizeFeature.prototype.listenForResize = function () {
34309 var listener = this.onCenterViewportResized.bind(this);
34310 // centerContainer gets horizontal resizes
34311 this.centerContainerCon.registerViewportResizeListener(listener);
34312 // eBodyViewport gets vertical resizes
34313 this.gridBodyCon.registerBodyViewportResizeListener(listener);
34314 };
34315 ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {
34316 this.checkViewportAndScrolls();
34317 };
34318 ViewportSizeFeature.prototype.onCenterViewportResized = function () {
34319 if (this.centerContainerCon.isViewportVisible()) {
34320 this.checkViewportAndScrolls();
34321 var newWidth = this.centerContainerCon.getCenterWidth();
34322 if (newWidth !== this.centerWidth) {
34323 this.centerWidth = newWidth;
34324 this.columnController.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });
34325 }
34326 }
34327 else {
34328 this.bodyHeight = 0;
34329 }
34330 };
34331 // gets called every time the viewport size changes. we use this to check visibility of scrollbars
34332 // in the grid panel, and also to check size and position of viewport for row and column virtualisation.
34333 ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {
34334 // results in updating anything that depends on scroll showing
34335 this.updateScrollVisibleService();
34336 // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer
34337 this.checkBodyHeight();
34338 // check for virtual columns for ColumnController
34339 this.onHorizontalViewportChanged();
34340 this.gridBodyCon.getScrollFeature().checkScrollLeft();
34341 };
34342 ViewportSizeFeature.prototype.getBodyHeight = function () {
34343 return this.bodyHeight;
34344 };
34345 ViewportSizeFeature.prototype.checkBodyHeight = function () {
34346 var eBodyViewport = this.gridBodyCon.getBodyViewportElement();
34347 var bodyHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerHeight"])(eBodyViewport);
34348 if (this.bodyHeight !== bodyHeight) {
34349 this.bodyHeight = bodyHeight;
34350 var event_1 = {
34351 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_BODY_HEIGHT_CHANGED,
34352 api: this.gridApi,
34353 columnApi: this.columnApi
34354 };
34355 this.eventService.dispatchEvent(event_1);
34356 }
34357 };
34358 ViewportSizeFeature.prototype.updateScrollVisibleService = function () {
34359 // because of column animation (which takes 200ms), we have to do this twice.
34360 // eg if user removes cols anywhere except at the RHS, then the cols on the RHS
34361 // will animate to the left to fill the gap. this animation means just after
34362 // the cols are removed, the remaining cols are still in the original location
34363 // at the start of the animation, so pre animation the H scrollbar is still needed,
34364 // but post animation it is not.
34365 this.updateScrollVisibleServiceImpl();
34366 setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);
34367 };
34368 ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {
34369 var params = {
34370 horizontalScrollShowing: this.isHorizontalScrollShowing(),
34371 verticalScrollShowing: this.gridBodyCon.isVerticalScrollShowing()
34372 };
34373 this.scrollVisibleService.setScrollsVisible(params);
34374 // fix - gridComp should just listen to event from above
34375 this.gridBodyCon.setVerticalScrollPaddingVisible(params.verticalScrollShowing);
34376 };
34377 ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {
34378 var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();
34379 return isAlwaysShowHorizontalScroll || this.centerContainerCon.isViewportHScrollShowing();
34380 };
34381 // this gets called whenever a change in the viewport, so we can inform column controller it has to work
34382 // out the virtual columns again. gets called from following locations:
34383 // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)
34384 ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {
34385 var scrollWidth = this.centerContainerCon.getCenterWidth();
34386 var scrollPosition = this.centerContainerCon.getViewportScrollLeft();
34387 this.columnController.setViewportPosition(scrollWidth, scrollPosition);
34388 };
34389 __decorate([
34390 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
34391 ], ViewportSizeFeature.prototype, "controllersService", void 0);
34392 __decorate([
34393 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
34394 ], ViewportSizeFeature.prototype, "columnController", void 0);
34395 __decorate([
34396 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
34397 ], ViewportSizeFeature.prototype, "scrollVisibleService", void 0);
34398 __decorate([
34399 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
34400 ], ViewportSizeFeature.prototype, "columnApi", void 0);
34401 __decorate([
34402 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
34403 ], ViewportSizeFeature.prototype, "gridApi", void 0);
34404 __decorate([
34405 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34406 ], ViewportSizeFeature.prototype, "postConstruct", null);
34407 return ViewportSizeFeature;
34408}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34409
34410
34411
34412/***/ }),
34413/* 144 */
34414/***/ (function(module, __webpack_exports__, __webpack_require__) {
34415
34416"use strict";
34417__webpack_require__.r(__webpack_exports__);
34418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetPinnedLeftWidthFeature", function() { return SetPinnedLeftWidthFeature; });
34419/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34420/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
34421/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
34422/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
34423/**
34424 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34425 * @version v25.3.0
34426 * @link http://www.ag-grid.com/
34427 * @license MIT
34428 */
34429var __extends = (undefined && undefined.__extends) || (function () {
34430 var extendStatics = function (d, b) {
34431 extendStatics = Object.setPrototypeOf ||
34432 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34433 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34434 return extendStatics(d, b);
34435 };
34436 return function (d, b) {
34437 extendStatics(d, b);
34438 function __() { this.constructor = d; }
34439 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34440 };
34441})();
34442var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34443 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34444 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34445 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;
34446 return c > 3 && r && Object.defineProperty(target, key, r), r;
34447};
34448
34449
34450
34451
34452var SetPinnedLeftWidthFeature = /** @class */ (function (_super) {
34453 __extends(SetPinnedLeftWidthFeature, _super);
34454 function SetPinnedLeftWidthFeature(element) {
34455 var _this = _super.call(this) || this;
34456 _this.element = element;
34457 return _this;
34458 }
34459 SetPinnedLeftWidthFeature.prototype.postConstruct = function () {
34460 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));
34461 };
34462 SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {
34463 var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();
34464 var displayed = leftWidth > 0;
34465 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.element, displayed);
34466 if (displayed) {
34467 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(this.element, leftWidth);
34468 }
34469 };
34470 __decorate([
34471 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedWidthService')
34472 ], SetPinnedLeftWidthFeature.prototype, "pinnedWidthService", void 0);
34473 __decorate([
34474 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34475 ], SetPinnedLeftWidthFeature.prototype, "postConstruct", null);
34476 return SetPinnedLeftWidthFeature;
34477}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34478
34479
34480
34481/***/ }),
34482/* 145 */
34483/***/ (function(module, __webpack_exports__, __webpack_require__) {
34484
34485"use strict";
34486__webpack_require__.r(__webpack_exports__);
34487/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetPinnedRightWidthFeature", function() { return SetPinnedRightWidthFeature; });
34488/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
34489/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
34490/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
34491/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
34492/**
34493 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34494 * @version v25.3.0
34495 * @link http://www.ag-grid.com/
34496 * @license MIT
34497 */
34498var __extends = (undefined && undefined.__extends) || (function () {
34499 var extendStatics = function (d, b) {
34500 extendStatics = Object.setPrototypeOf ||
34501 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34502 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34503 return extendStatics(d, b);
34504 };
34505 return function (d, b) {
34506 extendStatics(d, b);
34507 function __() { this.constructor = d; }
34508 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34509 };
34510})();
34511var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34512 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34513 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34514 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;
34515 return c > 3 && r && Object.defineProperty(target, key, r), r;
34516};
34517
34518
34519
34520
34521var SetPinnedRightWidthFeature = /** @class */ (function (_super) {
34522 __extends(SetPinnedRightWidthFeature, _super);
34523 function SetPinnedRightWidthFeature(element) {
34524 var _this = _super.call(this) || this;
34525 _this.element = element;
34526 return _this;
34527 }
34528 SetPinnedRightWidthFeature.prototype.postConstruct = function () {
34529 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));
34530 };
34531 SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {
34532 var rightWidth = this.pinnedWidthService.getPinnedRightWidth();
34533 var displayed = rightWidth > 0;
34534 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.element, displayed);
34535 if (displayed) {
34536 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.element, rightWidth);
34537 }
34538 };
34539 __decorate([
34540 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedWidthService')
34541 ], SetPinnedRightWidthFeature.prototype, "pinnedWidthService", void 0);
34542 __decorate([
34543 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
34544 ], SetPinnedRightWidthFeature.prototype, "postConstruct", null);
34545 return SetPinnedRightWidthFeature;
34546}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
34547
34548
34549
34550/***/ }),
34551/* 146 */
34552/***/ (function(module, __webpack_exports__, __webpack_require__) {
34553
34554"use strict";
34555__webpack_require__.r(__webpack_exports__);
34556/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetHeightFeature", function() { return SetHeightFeature; });
34557/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34558/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
34559/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
34560/**
34561 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34562 * @version v25.3.0
34563 * @link http://www.ag-grid.com/
34564 * @license MIT
34565 */
34566var __extends = (undefined && undefined.__extends) || (function () {
34567 var extendStatics = function (d, b) {
34568 extendStatics = Object.setPrototypeOf ||
34569 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34570 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34571 return extendStatics(d, b);
34572 };
34573 return function (d, b) {
34574 extendStatics(d, b);
34575 function __() { this.constructor = d; }
34576 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34577 };
34578})();
34579var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34580 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34581 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34582 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;
34583 return c > 3 && r && Object.defineProperty(target, key, r), r;
34584};
34585
34586
34587
34588var SetHeightFeature = /** @class */ (function (_super) {
34589 __extends(SetHeightFeature, _super);
34590 function SetHeightFeature(eContainer, eWrapper) {
34591 var _this = _super.call(this) || this;
34592 _this.eContainer = eContainer;
34593 _this.eWrapper = eWrapper;
34594 return _this;
34595 }
34596 SetHeightFeature.prototype.postConstruct = function () {
34597 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));
34598 };
34599 SetHeightFeature.prototype.onHeightChanged = function () {
34600 var height = this.maxDivHeightScaler.getUiContainerHeight();
34601 var heightString = height != null ? height + "px" : "";
34602 this.eContainer.style.height = heightString;
34603 if (this.eWrapper) {
34604 this.eWrapper.style.height = heightString;
34605 }
34606 };
34607 __decorate([
34608 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("rowContainerHeightService")
34609 ], SetHeightFeature.prototype, "maxDivHeightScaler", void 0);
34610 __decorate([
34611 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34612 ], SetHeightFeature.prototype, "postConstruct", null);
34613 return SetHeightFeature;
34614}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34615
34616
34617
34618/***/ }),
34619/* 147 */
34620/***/ (function(module, __webpack_exports__, __webpack_require__) {
34621
34622"use strict";
34623__webpack_require__.r(__webpack_exports__);
34624/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragListenerFeature", function() { return DragListenerFeature; });
34625/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
34626/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
34627/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
34628/**
34629 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34630 * @version v25.3.0
34631 * @link http://www.ag-grid.com/
34632 * @license MIT
34633 */
34634var __extends = (undefined && undefined.__extends) || (function () {
34635 var extendStatics = function (d, b) {
34636 extendStatics = Object.setPrototypeOf ||
34637 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34638 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
34639 return extendStatics(d, b);
34640 };
34641 return function (d, b) {
34642 extendStatics(d, b);
34643 function __() { this.constructor = d; }
34644 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34645 };
34646})();
34647var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34648 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34649 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34650 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;
34651 return c > 3 && r && Object.defineProperty(target, key, r), r;
34652};
34653
34654
34655
34656var DragListenerFeature = /** @class */ (function (_super) {
34657 __extends(DragListenerFeature, _super);
34658 function DragListenerFeature(eContainer) {
34659 var _this = _super.call(this) || this;
34660 _this.eContainer = eContainer;
34661 return _this;
34662 }
34663 DragListenerFeature.prototype.postConstruct = function () {
34664 var _this = this;
34665 if (!this.gridOptionsWrapper.isEnableRangeSelection() || // no range selection if no property
34666 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_1__["missing"])(this.rangeController) // no range selection if not enterprise version
34667 ) {
34668 return;
34669 }
34670 var params = {
34671 eElement: this.eContainer,
34672 onDragStart: this.rangeController.onDragStart.bind(this.rangeController),
34673 onDragStop: this.rangeController.onDragStop.bind(this.rangeController),
34674 onDragging: this.rangeController.onDragging.bind(this.rangeController)
34675 };
34676 this.dragService.addDragSource(params);
34677 this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });
34678 };
34679 __decorate([
34680 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeController')
34681 ], DragListenerFeature.prototype, "rangeController", void 0);
34682 __decorate([
34683 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragService')
34684 ], DragListenerFeature.prototype, "dragService", void 0);
34685 __decorate([
34686 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
34687 ], DragListenerFeature.prototype, "postConstruct", null);
34688 return DragListenerFeature;
34689}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
34690
34691
34692
34693/***/ }),
34694/* 148 */
34695/***/ (function(module, __webpack_exports__, __webpack_require__) {
34696
34697"use strict";
34698__webpack_require__.r(__webpack_exports__);
34699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return GridApi; });
34700/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99);
34701/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
34702/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
34703/* harmony import */ var _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(149);
34704/* harmony import */ var _entities_sideBar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(100);
34705/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
34706/* harmony import */ var _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(150);
34707/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18);
34708/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);
34709/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
34710/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(26);
34711/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(15);
34712/**
34713 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
34714 * @version v25.3.0
34715 * @link http://www.ag-grid.com/
34716 * @license MIT
34717 */
34718var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34719 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34720 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34721 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;
34722 return c > 3 && r && Object.defineProperty(target, key, r), r;
34723};
34724
34725
34726
34727
34728
34729
34730
34731
34732
34733
34734
34735
34736var GridApi = /** @class */ (function () {
34737 function GridApi() {
34738 this.detailGridInfoMap = {};
34739 this.destroyCalled = false;
34740 }
34741 GridApi.prototype.registerGridComp = function (gridBodyComp) {
34742 this.gridBodyComp = gridBodyComp;
34743 };
34744 GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {
34745 this.overlayWrapperComp = overlayWrapperComp;
34746 };
34747 GridApi.prototype.registerGridCompController = function (gridCompController) {
34748 this.gridCompController = gridCompController;
34749 };
34750 GridApi.prototype.registerHeaderRootComp = function (headerRootComp) {
34751 this.headerRootComp = headerRootComp;
34752 };
34753 GridApi.prototype.registerSideBarComp = function (sideBarComp) {
34754 this.sideBarComp = sideBarComp;
34755 };
34756 GridApi.prototype.init = function () {
34757 var _this = this;
34758 switch (this.rowModel.getType()) {
34759 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE:
34760 this.clientSideRowModel = this.rowModel;
34761 break;
34762 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE:
34763 this.infiniteRowModel = this.rowModel;
34764 break;
34765 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE:
34766 this.serverSideRowModel = this.rowModel;
34767 break;
34768 }
34769 this.controllersService.whenReady(function () {
34770 _this.gridBodyCon = _this.controllersService.getGridBodyController();
34771 });
34772 };
34773 /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */
34774 GridApi.prototype.__getAlignedGridService = function () {
34775 return this.alignedGridsService;
34776 };
34777 GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {
34778 this.detailGridInfoMap[id] = gridInfo;
34779 };
34780 GridApi.prototype.removeDetailGridInfo = function (id) {
34781 this.detailGridInfoMap[id] = undefined;
34782 };
34783 GridApi.prototype.getDetailGridInfo = function (id) {
34784 return this.detailGridInfoMap[id];
34785 };
34786 GridApi.prototype.forEachDetailGridInfo = function (callback) {
34787 var index = 0;
34788 Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["iterateObject"])(this.detailGridInfoMap, function (id, gridInfo) {
34789 // check for undefined, as old references will still be lying around
34790 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(gridInfo)) {
34791 callback(gridInfo, index);
34792 index++;
34793 }
34794 });
34795 };
34796 GridApi.prototype.getDataAsCsv = function (params) {
34797 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].CsvExportModule, 'api.getDataAsCsv')) {
34798 return this.csvCreator.getDataAsCsv(params);
34799 }
34800 };
34801 GridApi.prototype.exportDataAsCsv = function (params) {
34802 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].CsvExportModule, 'api.exportDataAsCSv')) {
34803 this.csvCreator.exportDataAsCsv(params);
34804 }
34805 };
34806 GridApi.prototype.getDataAsExcel = function (params) {
34807 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.getDataAsExcel')) {
34808 var exportMode = (params && params.exportMode) || 'xlsx';
34809 if (this.excelCreator.getFactoryMode(exportMode) === _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET) {
34810 console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');
34811 return;
34812 }
34813 return this.excelCreator.getDataAsExcel(params);
34814 }
34815 };
34816 GridApi.prototype.exportDataAsExcel = function (params) {
34817 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.exportDataAsExcel')) {
34818 var exportMode = (params && params.exportMode) || 'xlsx';
34819 if (this.excelCreator.getFactoryMode(exportMode) === _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET) {
34820 console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');
34821 return;
34822 }
34823 this.excelCreator.exportDataAsExcel(params);
34824 }
34825 };
34826 GridApi.prototype.getSheetDataForExcel = function (params) {
34827 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.getSheetDataForExcel')) {
34828 var exportMode = (params && params.exportMode) || 'xlsx';
34829 this.excelCreator.setFactoryMode(_interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET, exportMode);
34830 return this.excelCreator.getSheetDataForExcel(params);
34831 }
34832 };
34833 GridApi.prototype.getMultipleSheetsAsExcel = function (params) {
34834 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.getMultipleSheetsAsExcel')) {
34835 return this.excelCreator.getMultipleSheetsAsExcel(params);
34836 }
34837 };
34838 GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {
34839 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].ExcelExportModule, 'api.exportMultipleSheetsAsExcel')) {
34840 return this.excelCreator.exportMultipleSheetsAsExcel(params);
34841 }
34842 };
34843 /** @deprecated */
34844 GridApi.prototype.setEnterpriseDatasource = function (datasource) {
34845 console.warn("ag-grid: since version 18.x, api.setEnterpriseDatasource() should be replaced with api.setServerSideDatasource()");
34846 this.setServerSideDatasource(datasource);
34847 };
34848 GridApi.prototype.setGridAriaProperty = function (property, value) {
34849 if (!property) {
34850 return;
34851 }
34852 var eGrid = this.gridBodyComp.getGui();
34853 var ariaProperty = "aria-" + property;
34854 if (value === null) {
34855 eGrid.removeAttribute(ariaProperty);
34856 }
34857 else {
34858 eGrid.setAttribute(ariaProperty, value);
34859 }
34860 };
34861 GridApi.prototype.setServerSideDatasource = function (datasource) {
34862 if (this.serverSideRowModel) {
34863 // should really have an IEnterpriseRowModel interface, so we are not casting to any
34864 this.serverSideRowModel.setDatasource(datasource);
34865 }
34866 else {
34867 console.warn("AG Grid: you can only use an enterprise datasource when gridOptions.rowModelType is '" + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE + "'");
34868 }
34869 };
34870 GridApi.prototype.setDatasource = function (datasource) {
34871 if (this.gridOptionsWrapper.isRowModelInfinite()) {
34872 this.rowModel.setDatasource(datasource);
34873 }
34874 else {
34875 console.warn("AG Grid: you can only use a datasource when gridOptions.rowModelType is '" + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_INFINITE + "'");
34876 }
34877 };
34878 GridApi.prototype.setViewportDatasource = function (viewportDatasource) {
34879 if (this.gridOptionsWrapper.isRowModelViewport()) {
34880 // this is bad coding, because it's using an interface that's exposed in the enterprise.
34881 // really we should create an interface in the core for viewportDatasource and let
34882 // the enterprise implement it, rather than casting to 'any' here
34883 this.rowModel.setViewportDatasource(viewportDatasource);
34884 }
34885 else {
34886 console.warn("AG Grid: you can only use a viewport datasource when gridOptions.rowModelType is '" + _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].ROW_MODEL_TYPE_VIEWPORT + "'");
34887 }
34888 };
34889 GridApi.prototype.setRowData = function (rowData) {
34890 if (this.gridOptionsWrapper.isRowModelDefault()) {
34891 if (this.gridOptionsWrapper.isImmutableData()) {
34892 var transactionAndMap = this.immutableService.createTransactionForRowData(rowData);
34893 if (!transactionAndMap) {
34894 return;
34895 }
34896 var transaction = transactionAndMap[0], orderIdMap = transactionAndMap[1];
34897 var nodeTransaction = this.clientSideRowModel.updateRowData(transaction, orderIdMap);
34898 // need to force updating of full width rows - note this wouldn't be necessary the full width cell comp listened
34899 // to the data change event on the row node and refreshed itself.
34900 if (nodeTransaction) {
34901 this.rowRenderer.refreshFullWidthRows(nodeTransaction.update);
34902 }
34903 }
34904 else {
34905 this.selectionController.reset();
34906 this.clientSideRowModel.setRowData(rowData);
34907 }
34908 }
34909 else {
34910 console.warn('cannot call setRowData unless using normal row model');
34911 }
34912 };
34913 /** @deprecated */
34914 GridApi.prototype.setFloatingTopRowData = function (rows) {
34915 console.warn('AG Grid: since v12, api.setFloatingTopRowData() is now api.setPinnedTopRowData()');
34916 this.setPinnedTopRowData(rows);
34917 };
34918 /** @deprecated */
34919 GridApi.prototype.setFloatingBottomRowData = function (rows) {
34920 console.warn('AG Grid: since v12, api.setFloatingBottomRowData() is now api.setPinnedBottomRowData()');
34921 this.setPinnedBottomRowData(rows);
34922 };
34923 /** @deprecated */
34924 GridApi.prototype.getFloatingTopRowCount = function () {
34925 console.warn('AG Grid: since v12, api.getFloatingTopRowCount() is now api.getPinnedTopRowCount()');
34926 return this.getPinnedTopRowCount();
34927 };
34928 /** @deprecated */
34929 GridApi.prototype.getFloatingBottomRowCount = function () {
34930 console.warn('AG Grid: since v12, api.getFloatingBottomRowCount() is now api.getPinnedBottomRowCount()');
34931 return this.getPinnedBottomRowCount();
34932 };
34933 /** @deprecated */
34934 GridApi.prototype.getFloatingTopRow = function (index) {
34935 console.warn('AG Grid: since v12, api.getFloatingTopRow() is now api.getPinnedTopRow()');
34936 return this.getPinnedTopRow(index);
34937 };
34938 /** @deprecated */
34939 GridApi.prototype.getFloatingBottomRow = function (index) {
34940 console.warn('AG Grid: since v12, api.getFloatingBottomRow() is now api.getPinnedBottomRow()');
34941 return this.getPinnedBottomRow(index);
34942 };
34943 GridApi.prototype.setPinnedTopRowData = function (rows) {
34944 this.pinnedRowModel.setPinnedTopRowData(rows);
34945 };
34946 GridApi.prototype.setPinnedBottomRowData = function (rows) {
34947 this.pinnedRowModel.setPinnedBottomRowData(rows);
34948 };
34949 GridApi.prototype.getPinnedTopRowCount = function () {
34950 return this.pinnedRowModel.getPinnedTopRowCount();
34951 };
34952 GridApi.prototype.getPinnedBottomRowCount = function () {
34953 return this.pinnedRowModel.getPinnedBottomRowCount();
34954 };
34955 GridApi.prototype.getPinnedTopRow = function (index) {
34956 return this.pinnedRowModel.getPinnedTopRow(index);
34957 };
34958 GridApi.prototype.getPinnedBottomRow = function (index) {
34959 return this.pinnedRowModel.getPinnedBottomRow(index);
34960 };
34961 GridApi.prototype.setColumnDefs = function (colDefs, source) {
34962 if (source === void 0) { source = "api"; }
34963 this.columnController.setColumnDefs(colDefs, source);
34964 };
34965 GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {
34966 if (source === void 0) { source = "api"; }
34967 this.gridOptionsWrapper.setProperty('autoGroupColumnDef', colDef, true);
34968 };
34969 GridApi.prototype.expireValueCache = function () {
34970 this.valueCache.expire();
34971 };
34972 GridApi.prototype.getVerticalPixelRange = function () {
34973 return this.gridBodyCon.getScrollFeature().getVScrollPosition();
34974 };
34975 GridApi.prototype.getHorizontalPixelRange = function () {
34976 return this.gridBodyCon.getScrollFeature().getHScrollPosition();
34977 };
34978 GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {
34979 this.gridOptionsWrapper.setProperty('alwaysShowHorizontalScroll', show);
34980 };
34981 GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {
34982 this.gridOptionsWrapper.setProperty('alwaysShowVerticalScroll', show);
34983 };
34984 GridApi.prototype.refreshToolPanel = function () {
34985 if (!this.sideBarComp) {
34986 return;
34987 }
34988 this.sideBarComp.refresh();
34989 };
34990 GridApi.prototype.refreshCells = function (params) {
34991 if (params === void 0) { params = {}; }
34992 if (Array.isArray(params)) {
34993 // the old version of refreshCells() took an array of rowNodes for the first argument
34994 console.warn('since AG Grid v11.1, refreshCells() now takes parameters, please see the documentation.');
34995 return;
34996 }
34997 this.rowRenderer.refreshCells(params);
34998 };
34999 GridApi.prototype.flashCells = function (params) {
35000 if (params === void 0) { params = {}; }
35001 this.rowRenderer.flashCells(params);
35002 };
35003 GridApi.prototype.redrawRows = function (params) {
35004 if (params === void 0) { params = {}; }
35005 var rowNodes = params ? params.rowNodes : undefined;
35006 this.rowRenderer.redrawRows(rowNodes);
35007 };
35008 /** @deprecated */
35009 GridApi.prototype.refreshView = function () {
35010 console.warn('AG Grid: since v11.1, refreshView() is deprecated, please call refreshCells() or redrawRows() instead');
35011 this.redrawRows();
35012 };
35013 /** @deprecated */
35014 GridApi.prototype.refreshRows = function (rowNodes) {
35015 console.warn('since AG Grid v11.1, refreshRows() is deprecated, please use refreshCells({rowNodes: rows}) or redrawRows({rowNodes: rows}) instead');
35016 this.refreshCells({ rowNodes: rowNodes });
35017 };
35018 /** @deprecated */
35019 GridApi.prototype.rowDataChanged = function (rows) {
35020 console.warn('AG Grid: rowDataChanged is deprecated, either call refreshView() to refresh everything, or call rowNode.setRowData(newData) to set value on a particular node');
35021 this.redrawRows();
35022 };
35023 /** @deprecated */
35024 GridApi.prototype.softRefreshView = function () {
35025 console.error('AG Grid: since v16, softRefreshView() is no longer supported. Please check the documentation on how to refresh.');
35026 };
35027 /** @deprecated */
35028 GridApi.prototype.refreshGroupRows = function () {
35029 console.warn('AG Grid: since v11.1, refreshGroupRows() is no longer supported, call refreshCells() instead. ' +
35030 'Because refreshCells() now does dirty checking, it will only refresh cells that have changed, so it should ' +
35031 'not be necessary to only refresh the group rows.');
35032 this.refreshCells();
35033 };
35034 GridApi.prototype.setFunctionsReadOnly = function (readOnly) {
35035 this.gridOptionsWrapper.setProperty('functionsReadOnly', readOnly);
35036 };
35037 GridApi.prototype.refreshHeader = function () {
35038 this.headerRootComp.refreshHeader();
35039 };
35040 GridApi.prototype.isAnyFilterPresent = function () {
35041 return this.filterManager.isAnyFilterPresent();
35042 };
35043 /** @deprecated */
35044 GridApi.prototype.isAdvancedFilterPresent = function () {
35045 console.warn('AG Grid: isAdvancedFilterPresent() is deprecated, please use isColumnFilterPresent()');
35046 return this.isColumnFilterPresent();
35047 };
35048 GridApi.prototype.isColumnFilterPresent = function () {
35049 return this.filterManager.isAdvancedFilterPresent();
35050 };
35051 GridApi.prototype.isQuickFilterPresent = function () {
35052 return this.filterManager.isQuickFilterPresent();
35053 };
35054 GridApi.prototype.getModel = function () {
35055 return this.rowModel;
35056 };
35057 GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded) {
35058 if (rowNode) {
35059 rowNode.setExpanded(expanded);
35060 }
35061 };
35062 GridApi.prototype.onGroupExpandedOrCollapsed = function (deprecated_refreshFromIndex) {
35063 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35064 console.warn('AG Grid: cannot call onGroupExpandedOrCollapsed unless using normal row model');
35065 }
35066 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(deprecated_refreshFromIndex)) {
35067 console.warn('AG Grid: api.onGroupExpandedOrCollapsed - refreshFromIndex parameter is no longer used, the grid will refresh all rows');
35068 }
35069 // we don't really want the user calling this if only one rowNode was expanded, instead they should be
35070 // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole
35071 // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,
35072 // and thus the expand icon in the group cell won't get 'opened' or 'closed'.
35073 this.clientSideRowModel.refreshModel({ step: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].MAP });
35074 };
35075 GridApi.prototype.refreshInMemoryRowModel = function (step) {
35076 console.warn("ag-grid: since version 18.x, api.refreshInMemoryRowModel() should be replaced with api.refreshClientSideRowModel()");
35077 this.refreshClientSideRowModel(step);
35078 };
35079 GridApi.prototype.refreshClientSideRowModel = function (step) {
35080 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35081 console.warn('cannot call refreshClientSideRowModel unless using normal row model');
35082 }
35083 var paramsStep = _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].EVERYTHING;
35084 var stepsMapped = {
35085 group: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].EVERYTHING,
35086 filter: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].FILTER,
35087 map: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].MAP,
35088 aggregate: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].AGGREGATE,
35089 sort: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].SORT,
35090 pivot: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].PIVOT
35091 };
35092 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(step)) {
35093 paramsStep = stepsMapped[step];
35094 }
35095 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(paramsStep)) {
35096 console.error("AG Grid: invalid step " + step + ", available steps are " + Object.keys(stepsMapped).join(', '));
35097 return;
35098 }
35099 var modelParams = {
35100 step: paramsStep,
35101 keepRenderedRows: true,
35102 animate: true,
35103 keepEditingRows: true
35104 };
35105 this.clientSideRowModel.refreshModel(modelParams);
35106 };
35107 GridApi.prototype.isAnimationFrameQueueEmpty = function () {
35108 return this.animationFrameService.isQueueEmpty();
35109 };
35110 GridApi.prototype.getRowNode = function (id) {
35111 return this.rowModel.getRowNode(id);
35112 };
35113 GridApi.prototype.getSizesForCurrentTheme = function () {
35114 return {
35115 rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),
35116 headerHeight: this.gridOptionsWrapper.getHeaderHeight()
35117 };
35118 };
35119 GridApi.prototype.expandAll = function () {
35120 if (this.clientSideRowModel) {
35121 this.clientSideRowModel.expandOrCollapseAll(true);
35122 }
35123 else if (this.serverSideRowModel) {
35124 this.serverSideRowModel.expandAll(true);
35125 }
35126 else {
35127 console.warn('AG Grid: expandAll only works with Client Side Row Model and Server Side Row Model');
35128 }
35129 };
35130 GridApi.prototype.collapseAll = function () {
35131 if (this.clientSideRowModel) {
35132 this.clientSideRowModel.expandOrCollapseAll(false);
35133 }
35134 else if (this.serverSideRowModel) {
35135 this.serverSideRowModel.expandAll(false);
35136 }
35137 else {
35138 console.warn('AG Grid: collapseAll only works with Client Side Row Model and Server Side Row Model');
35139 }
35140 };
35141 GridApi.prototype.getToolPanelInstance = function (id) {
35142 if (!this.sideBarComp) {
35143 console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');
35144 return;
35145 }
35146 return this.sideBarComp.getToolPanelInstance(id);
35147 };
35148 GridApi.prototype.addVirtualRowListener = function (eventName, rowIndex, callback) {
35149 if (typeof eventName !== 'string') {
35150 console.warn('AG Grid: addVirtualRowListener is deprecated, please use addRenderedRowListener.');
35151 }
35152 this.addRenderedRowListener(eventName, rowIndex, callback);
35153 };
35154 GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {
35155 if (eventName === 'virtualRowSelected') {
35156 console.warn("AG Grid: event virtualRowSelected is deprecated, to register for individual row\n selection events, add a listener directly to the row node.");
35157 }
35158 this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);
35159 };
35160 GridApi.prototype.setQuickFilter = function (newFilter) {
35161 this.filterManager.setQuickFilter(newFilter);
35162 };
35163 GridApi.prototype.selectIndex = function (index, tryMulti, suppressEvents) {
35164 console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');
35165 if (suppressEvents) {
35166 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35167 }
35168 this.selectionController.selectIndex(index, tryMulti);
35169 };
35170 GridApi.prototype.deselectIndex = function (index, suppressEvents) {
35171 if (suppressEvents === void 0) { suppressEvents = false; }
35172 console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');
35173 if (suppressEvents) {
35174 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35175 }
35176 this.selectionController.deselectIndex(index);
35177 };
35178 GridApi.prototype.selectNode = function (node, tryMulti, suppressEvents) {
35179 if (tryMulti === void 0) { tryMulti = false; }
35180 if (suppressEvents === void 0) { suppressEvents = false; }
35181 console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');
35182 if (suppressEvents) {
35183 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35184 }
35185 node.setSelectedParams({ newValue: true, clearSelection: !tryMulti });
35186 };
35187 GridApi.prototype.deselectNode = function (node, suppressEvents) {
35188 if (suppressEvents === void 0) { suppressEvents = false; }
35189 console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');
35190 if (suppressEvents) {
35191 console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');
35192 }
35193 node.setSelectedParams({ newValue: false });
35194 };
35195 GridApi.prototype.selectAll = function () {
35196 this.selectionController.selectAllRowNodes();
35197 };
35198 GridApi.prototype.deselectAll = function () {
35199 this.selectionController.deselectAllRowNodes();
35200 };
35201 GridApi.prototype.selectAllFiltered = function () {
35202 this.selectionController.selectAllRowNodes(true);
35203 };
35204 GridApi.prototype.deselectAllFiltered = function () {
35205 this.selectionController.deselectAllRowNodes(true);
35206 };
35207 GridApi.prototype.recomputeAggregates = function () {
35208 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35209 console.warn('cannot call recomputeAggregates unless using normal row model');
35210 }
35211 console.warn("recomputeAggregates is deprecated, please call api.refreshClientSideRowModel('aggregate') instead");
35212 this.clientSideRowModel.refreshModel({ step: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_6__["ClientSideRowModelSteps"].AGGREGATE });
35213 };
35214 GridApi.prototype.sizeColumnsToFit = function () {
35215 this.gridBodyCon.sizeColumnsToFit();
35216 };
35217 GridApi.prototype.showLoadingOverlay = function () {
35218 this.overlayWrapperComp.showLoadingOverlay();
35219 };
35220 GridApi.prototype.showNoRowsOverlay = function () {
35221 this.overlayWrapperComp.showNoRowsOverlay();
35222 };
35223 GridApi.prototype.hideOverlay = function () {
35224 this.overlayWrapperComp.hideOverlay();
35225 };
35226 GridApi.prototype.isNodeSelected = function (node) {
35227 console.warn('AG Grid: no need to call api.isNodeSelected(), just call node.isSelected() instead');
35228 return node.isSelected();
35229 };
35230 GridApi.prototype.getSelectedNodesById = function () {
35231 console.error('AG Grid: since version 3.4, getSelectedNodesById no longer exists, use getSelectedNodes() instead');
35232 return null;
35233 };
35234 GridApi.prototype.getSelectedNodes = function () {
35235 return this.selectionController.getSelectedNodes();
35236 };
35237 GridApi.prototype.getSelectedRows = function () {
35238 return this.selectionController.getSelectedRows();
35239 };
35240 GridApi.prototype.getBestCostNodeSelection = function () {
35241 return this.selectionController.getBestCostNodeSelection();
35242 };
35243 GridApi.prototype.getRenderedNodes = function () {
35244 return this.rowRenderer.getRenderedNodes();
35245 };
35246 GridApi.prototype.ensureColIndexVisible = function (index) {
35247 console.warn('AG Grid: ensureColIndexVisible(index) no longer supported, use ensureColumnVisible(colKey) instead.');
35248 };
35249 GridApi.prototype.ensureColumnVisible = function (key) {
35250 this.gridBodyCon.getScrollFeature().ensureColumnVisible(key);
35251 };
35252 // Valid values for position are bottom, middle and top
35253 GridApi.prototype.ensureIndexVisible = function (index, position) {
35254 this.gridBodyCon.getScrollFeature().ensureIndexVisible(index, position);
35255 };
35256 // Valid values for position are bottom, middle and top
35257 GridApi.prototype.ensureNodeVisible = function (comparator, position) {
35258 if (position === void 0) { position = null; }
35259 this.gridBodyCon.getScrollFeature().ensureNodeVisible(comparator, position);
35260 };
35261 GridApi.prototype.forEachLeafNode = function (callback) {
35262 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35263 console.warn('cannot call forEachNode unless using normal row model');
35264 }
35265 this.clientSideRowModel.forEachLeafNode(callback);
35266 };
35267 GridApi.prototype.forEachNode = function (callback) {
35268 this.rowModel.forEachNode(callback);
35269 };
35270 GridApi.prototype.forEachNodeAfterFilter = function (callback) {
35271 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35272 console.warn('cannot call forEachNodeAfterFilter unless using normal row model');
35273 }
35274 this.clientSideRowModel.forEachNodeAfterFilter(callback);
35275 };
35276 GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {
35277 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.clientSideRowModel)) {
35278 console.warn('cannot call forEachNodeAfterFilterAndSort unless using normal row model');
35279 }
35280 this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);
35281 };
35282 GridApi.prototype.getFilterApiForColDef = function (colDef) {
35283 console.warn('ag-grid API method getFilterApiForColDef deprecated, use getFilterInstance instead');
35284 return this.getFilterInstance(colDef);
35285 };
35286 GridApi.prototype.getFilterInstance = function (key, callback) {
35287 var column = this.columnController.getPrimaryColumn(key);
35288 if (column) {
35289 var filterPromise = this.filterManager.getFilterComponent(column, 'NO_UI');
35290 var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });
35291 if (callback) {
35292 if (currentValue) {
35293 setTimeout(callback, 0, currentValue);
35294 }
35295 else if (filterPromise) {
35296 filterPromise.then(callback);
35297 }
35298 }
35299 return currentValue;
35300 }
35301 };
35302 GridApi.prototype.getFilterApi = function (key) {
35303 console.warn('AG Grid: getFilterApi is deprecated, use getFilterInstance instead');
35304 return this.getFilterInstance(key);
35305 };
35306 GridApi.prototype.destroyFilter = function (key) {
35307 var column = this.columnController.getPrimaryColumn(key);
35308 if (column) {
35309 return this.filterManager.destroyFilter(column, "filterDestroyed");
35310 }
35311 };
35312 GridApi.prototype.getStatusPanel = function (key) {
35313 if (this.statusBarService) {
35314 return this.statusBarService.getStatusPanel(key);
35315 }
35316 };
35317 GridApi.prototype.getColumnDef = function (key) {
35318 var column = this.columnController.getPrimaryColumn(key);
35319 if (column) {
35320 return column.getColDef();
35321 }
35322 return null;
35323 };
35324 GridApi.prototype.getColumnDefs = function () { return this.columnController.getColumnDefs(); };
35325 GridApi.prototype.onFilterChanged = function () {
35326 this.filterManager.onFilterChanged();
35327 };
35328 GridApi.prototype.onSortChanged = function () {
35329 this.sortController.onSortChanged();
35330 };
35331 GridApi.prototype.setSortModel = function (sortModel, source) {
35332 if (source === void 0) { source = "api"; }
35333 console.warn('AG Grid: as of version 24.0.0, setSortModel() is deprecated, sort information is now part of Column State. Please use columnApi.applyColumnState() instead.');
35334 var columnState = [];
35335 if (sortModel) {
35336 sortModel.forEach(function (item, index) {
35337 columnState.push({
35338 colId: item.colId,
35339 sort: item.sort,
35340 sortIndex: index
35341 });
35342 });
35343 }
35344 this.columnController.applyColumnState({ state: columnState, defaultState: { sort: null } });
35345 };
35346 GridApi.prototype.getSortModel = function () {
35347 console.warn('AG Grid: as of version 24.0.0, getSortModel() is deprecated, sort information is now part of Column State. Please use columnApi.getColumnState() instead.');
35348 var columnState = this.columnController.getColumnState();
35349 var filteredStates = columnState.filter(function (item) { return item.sort != null; });
35350 var indexes = {};
35351 filteredStates.forEach(function (state) {
35352 var id = state.colId;
35353 var sortIndex = state.sortIndex;
35354 indexes[id] = sortIndex;
35355 });
35356 var res = filteredStates.map(function (s) {
35357 return { colId: s.colId, sort: s.sort };
35358 });
35359 res.sort(function (a, b) { return indexes[a.colId] - indexes[b.colId]; });
35360 return res;
35361 };
35362 GridApi.prototype.setFilterModel = function (model) {
35363 this.filterManager.setFilterModel(model);
35364 };
35365 GridApi.prototype.getFilterModel = function () {
35366 return this.filterManager.getFilterModel();
35367 };
35368 GridApi.prototype.getFocusedCell = function () {
35369 return this.focusController.getFocusedCell();
35370 };
35371 GridApi.prototype.clearFocusedCell = function () {
35372 return this.focusController.clearFocusedCell();
35373 };
35374 GridApi.prototype.setFocusedCell = function (rowIndex, colKey, floating) {
35375 this.focusController.setFocusedCell(rowIndex, colKey, floating, true);
35376 };
35377 GridApi.prototype.setSuppressRowDrag = function (value) {
35378 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_ROW_DRAG, value);
35379 };
35380 GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {
35381 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG, value);
35382 };
35383 GridApi.prototype.setSuppressRowClickSelection = function (value) {
35384 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_ROW_CLICK_SELECTION, value);
35385 };
35386 GridApi.prototype.addRowDropZone = function (params) {
35387 this.gridBodyCon.getRowDragFeature().addRowDropZone(params);
35388 };
35389 GridApi.prototype.removeRowDropZone = function (params) {
35390 var activeDropTarget = this.dragAndDropService.findExternalZone(params);
35391 if (activeDropTarget) {
35392 this.dragAndDropService.removeDropTarget(activeDropTarget);
35393 }
35394 };
35395 GridApi.prototype.getRowDropZoneParams = function (events) {
35396 return this.gridBodyCon.getRowDragFeature().getRowDropZone(events);
35397 };
35398 GridApi.prototype.setHeaderHeight = function (headerHeight) {
35399 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_HEADER_HEIGHT, headerHeight);
35400 };
35401 GridApi.prototype.setDomLayout = function (domLayout) {
35402 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOM_LAYOUT, domLayout);
35403 };
35404 GridApi.prototype.setEnableCellTextSelection = function (selectable) {
35405 this.gridBodyCon.setCellTextSelection(selectable);
35406 };
35407 GridApi.prototype.setFillHandleDirection = function (direction) {
35408 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_FILL_HANDLE_DIRECTION, direction);
35409 };
35410 GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {
35411 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_HEADER_HEIGHT, headerHeight);
35412 };
35413 GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {
35414 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_FLOATING_FILTERS_HEIGHT, headerHeight);
35415 };
35416 GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {
35417 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_GROUP_HEADER_HEIGHT, headerHeight);
35418 };
35419 GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {
35420 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_EXTERNAL_FILTER_PRESENT, isExternalFilterPresentFunc);
35421 };
35422 GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {
35423 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DOES_EXTERNAL_FILTER_PASS, doesExternalFilterPassFunc);
35424 };
35425 GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {
35426 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_NAVIGATE_TO_NEXT_CELL, navigateToNextCellFunc);
35427 };
35428 GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {
35429 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_TAB_TO_NEXT_CELL, tabToNextCellFunc);
35430 };
35431 GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {
35432 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_TAB_TO_NEXT_HEADER, tabToNextHeaderFunc);
35433 };
35434 GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {
35435 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_NAVIGATE_TO_NEXT_HEADER, navigateToNextHeaderFunc);
35436 };
35437 GridApi.prototype.setGroupRowAggNodes = function (groupRowAggNodesFunc) {
35438 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_ROW_AGG_NODES, groupRowAggNodesFunc);
35439 };
35440 GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {
35441 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_BUSINESS_KEY_FOR_NODE, getBusinessKeyForNodeFunc);
35442 };
35443 GridApi.prototype.setGetChildCount = function (getChildCountFunc) {
35444 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_CHILD_COUNT, getChildCountFunc);
35445 };
35446 GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {
35447 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_ROW_POST_CREATE, processRowPostCreateFunc);
35448 };
35449 GridApi.prototype.setGetRowNodeId = function (getRowNodeIdFunc) {
35450 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_NODE_ID, getRowNodeIdFunc);
35451 };
35452 GridApi.prototype.setGetRowClass = function (rowClassFunc) {
35453 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_CLASS, rowClassFunc);
35454 };
35455 GridApi.prototype.setIsFullWidthCell = function (isFullWidthCellFunc) {
35456 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_FULL_WIDTH_CELL, isFullWidthCellFunc);
35457 };
35458 GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {
35459 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_ROW_SELECTABLE, isRowSelectableFunc);
35460 };
35461 GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {
35462 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_ROW_MASTER, isRowMasterFunc);
35463 };
35464 GridApi.prototype.setPostSort = function (postSortFunc) {
35465 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_POST_SORT, postSortFunc);
35466 };
35467 GridApi.prototype.setGetDocument = function (getDocumentFunc) {
35468 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_DOCUMENT, getDocumentFunc);
35469 };
35470 GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {
35471 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_CONTEXT_MENU_ITEMS, getContextMenuItemsFunc);
35472 };
35473 GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {
35474 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_MAIN_MENU_ITEMS, getMainMenuItemsFunc);
35475 };
35476 GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {
35477 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_CELL_FOR_CLIPBOARD, processCellForClipboardFunc);
35478 };
35479 GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {
35480 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SEND_TO_CLIPBOARD, sendToClipboardFunc);
35481 };
35482 GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {
35483 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_CELL_FROM_CLIPBOARD, processCellFromClipboardFunc);
35484 };
35485 GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {
35486 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_TO_SECONDARY_COLDEF, processSecondaryColDefFunc);
35487 };
35488 GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {
35489 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_SECONDARY_COL_GROUP_DEF, processSecondaryColGroupDefFunc);
35490 };
35491 GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {
35492 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_POST_PROCESS_POPUP, postProcessPopupFunc);
35493 };
35494 GridApi.prototype.setDefaultGroupSortComparator = function (defaultGroupSortComparatorFunc) {
35495 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_DEFAULT_GROUP_SORT_COMPARATOR, defaultGroupSortComparatorFunc);
35496 };
35497 GridApi.prototype.setProcessChartOptions = function (processChartOptionsFunc) {
35498 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PROCESS_CHART_OPTIONS, processChartOptionsFunc);
35499 };
35500 GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {
35501 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_CHART_TOOLBAR_ITEMS, getChartToolbarItemsFunc);
35502 };
35503 GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {
35504 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PAGINATION_NUMBER_FORMATTER, paginationNumberFormatterFunc);
35505 };
35506 GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {
35507 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_SERVER_SIDE_STORE_PARAMS, getServerSideStoreParamsFunc);
35508 };
35509 GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {
35510 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT, isServerSideGroupOpenByDefaultFunc);
35511 };
35512 GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {
35513 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_APPLY_SERVER_SIDE_TRANSACTION, isApplyServerSideTransactionFunc);
35514 };
35515 GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {
35516 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_IS_SERVER_SIDE_GROUP, isServerSideGroupFunc);
35517 };
35518 GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {
35519 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_SERVER_SIDE_GROUP_KEY, getServerSideGroupKeyFunc);
35520 };
35521 GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {
35522 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_STYLE, rowStyleFunc);
35523 };
35524 GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {
35525 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GET_ROW_HEIGHT, rowHeightFunc);
35526 };
35527 GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {
35528 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_PIVOT_HEADER_HEIGHT, headerHeight);
35529 };
35530 GridApi.prototype.isSideBarVisible = function () {
35531 return this.sideBarComp ? this.sideBarComp.isDisplayed() : false;
35532 };
35533 GridApi.prototype.setSideBarVisible = function (show) {
35534 if (!this.sideBarComp) {
35535 if (show) {
35536 console.warn('AG Grid: sideBar is not loaded');
35537 }
35538 return;
35539 }
35540 this.sideBarComp.setDisplayed(show);
35541 };
35542 GridApi.prototype.setSideBarPosition = function (position) {
35543 if (!this.sideBarComp) {
35544 console.warn('AG Grid: sideBar is not loaded');
35545 return;
35546 }
35547 this.sideBarComp.setSideBarPosition(position);
35548 };
35549 GridApi.prototype.openToolPanel = function (key) {
35550 if (!this.sideBarComp) {
35551 console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');
35552 return;
35553 }
35554 this.sideBarComp.openToolPanel(key);
35555 };
35556 GridApi.prototype.closeToolPanel = function () {
35557 if (!this.sideBarComp) {
35558 console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');
35559 return;
35560 }
35561 this.sideBarComp.close();
35562 };
35563 GridApi.prototype.getOpenedToolPanel = function () {
35564 return this.sideBarComp ? this.sideBarComp.openedItem() : null;
35565 };
35566 GridApi.prototype.getSideBar = function () {
35567 return this.gridOptionsWrapper.getSideBar();
35568 };
35569 GridApi.prototype.setSideBar = function (def) {
35570 this.gridOptionsWrapper.setProperty('sideBar', _entities_sideBar__WEBPACK_IMPORTED_MODULE_4__["SideBarDefParser"].parse(def));
35571 };
35572 GridApi.prototype.setSuppressClipboardPaste = function (value) {
35573 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_SUPPRESS_CLIPBOARD_PASTE, value);
35574 };
35575 GridApi.prototype.isToolPanelShowing = function () {
35576 return this.sideBarComp.isToolPanelShowing();
35577 };
35578 GridApi.prototype.doLayout = function () {
35579 var message = "AG Grid - since version 25.1, doLayout was taken out, as it's not needed. The grid responds to grid size changes automatically";
35580 Object(_utils_function__WEBPACK_IMPORTED_MODULE_11__["doOnce"])(function () { return console.warn(message); }, 'doLayoutDeprecated');
35581 };
35582 GridApi.prototype.resetRowHeights = function () {
35583 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.clientSideRowModel)) {
35584 this.clientSideRowModel.resetRowHeights();
35585 }
35586 };
35587 GridApi.prototype.setGroupRemoveSingleChildren = function (value) {
35588 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_SINGLE_CHILDREN, value);
35589 };
35590 GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {
35591 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, value);
35592 };
35593 GridApi.prototype.onRowHeightChanged = function () {
35594 if (this.clientSideRowModel) {
35595 this.clientSideRowModel.onRowHeightChanged();
35596 }
35597 else if (this.serverSideRowModel) {
35598 this.serverSideRowModel.onRowHeightChanged();
35599 }
35600 };
35601 GridApi.prototype.getValue = function (colKey, rowNode) {
35602 var column = this.columnController.getPrimaryColumn(colKey);
35603 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(column)) {
35604 column = this.columnController.getGridColumn(colKey);
35605 }
35606 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(column)) {
35607 return null;
35608 }
35609 return this.valueService.getValue(column, rowNode);
35610 };
35611 GridApi.prototype.addEventListener = function (eventType, listener) {
35612 var async = this.gridOptionsWrapper.useAsyncEvents();
35613 this.eventService.addEventListener(eventType, listener, async);
35614 };
35615 GridApi.prototype.addGlobalListener = function (listener) {
35616 var async = this.gridOptionsWrapper.useAsyncEvents();
35617 this.eventService.addGlobalListener(listener, async);
35618 };
35619 GridApi.prototype.removeEventListener = function (eventType, listener) {
35620 var async = this.gridOptionsWrapper.useAsyncEvents();
35621 this.eventService.removeEventListener(eventType, listener, async);
35622 };
35623 GridApi.prototype.removeGlobalListener = function (listener) {
35624 var async = this.gridOptionsWrapper.useAsyncEvents();
35625 this.eventService.removeGlobalListener(listener, async);
35626 };
35627 GridApi.prototype.dispatchEvent = function (event) {
35628 this.eventService.dispatchEvent(event);
35629 };
35630 GridApi.prototype.destroy = function () {
35631 // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part
35632 // of context.destroy(). so we need to stop the infinite loop.
35633 if (this.destroyCalled) {
35634 return;
35635 }
35636 this.destroyCalled = true;
35637 // destroy the UI first (as they use the services)
35638 this.gridCompController.destroyGridUi();
35639 // destroy the services
35640 this.context.destroy();
35641 };
35642 GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {
35643 // some users were raising support issues with regards memory leaks. the problem was the customers applications
35644 // were keeping references to the API. trying to educate them all would be difficult, easier to just remove
35645 // all references in teh API so at least the core grid can be garbage collected.
35646 //
35647 // wait about 100ms before clearing down the references, in case user has some cleanup to do,
35648 // and needs to deference the API first
35649 setTimeout(_utils_object__WEBPACK_IMPORTED_MODULE_8__["removeAllReferences"].bind(window, this, 'Grid API'), 100);
35650 };
35651 GridApi.prototype.warnIfDestroyed = function (methodName) {
35652 if (this.destroyCalled) {
35653 console.warn("AG Grid: Grid API method " + methodName + " was called on a grid that was destroyed.");
35654 }
35655 return this.destroyCalled;
35656 };
35657 GridApi.prototype.resetQuickFilter = function () {
35658 if (this.warnIfDestroyed('resetQuickFilter')) {
35659 return;
35660 }
35661 this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });
35662 };
35663 GridApi.prototype.getRangeSelections = function () {
35664 console.warn("AG Grid: in v20.1.x, api.getRangeSelections() is gone, please use getCellRanges() instead.\n We had to change how cell selections works a small bit to allow charting to integrate. The return type of\n getCellRanges() is a bit different, please check the AG Grid documentation.");
35665 return null;
35666 };
35667 GridApi.prototype.getCellRanges = function () {
35668 if (this.rangeController) {
35669 return this.rangeController.getCellRanges();
35670 }
35671 console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');
35672 return null;
35673 };
35674 GridApi.prototype.camelCaseToHumanReadable = function (camelCase) {
35675 return Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["camelCaseToHumanText"])(camelCase);
35676 };
35677 GridApi.prototype.addRangeSelection = function (deprecatedNoLongerUsed) {
35678 console.warn('AG Grid: As of version 21.x, range selection changed slightly to allow charting integration. Please call api.addCellRange() instead of api.addRangeSelection()');
35679 };
35680 GridApi.prototype.addCellRange = function (params) {
35681 if (!this.rangeController) {
35682 console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');
35683 }
35684 this.rangeController.addCellRange(params);
35685 };
35686 GridApi.prototype.clearRangeSelection = function () {
35687 if (!this.rangeController) {
35688 console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');
35689 }
35690 this.rangeController.removeAllCellRanges();
35691 };
35692 GridApi.prototype.undoCellEditing = function () {
35693 this.undoRedoService.undo();
35694 };
35695 GridApi.prototype.redoCellEditing = function () {
35696 this.undoRedoService.redo();
35697 };
35698 GridApi.prototype.getCurrentUndoSize = function () {
35699 return this.undoRedoService.getCurrentUndoStackSize();
35700 };
35701 GridApi.prototype.getCurrentRedoSize = function () {
35702 return this.undoRedoService.getCurrentRedoStackSize();
35703 };
35704 GridApi.prototype.getChartModels = function () {
35705 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.getChartModels') &&
35706 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.getChartModels')) {
35707 return this.chartService.getChartModels();
35708 }
35709 };
35710 GridApi.prototype.createRangeChart = function (params) {
35711 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.createRangeChart') &&
35712 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.createRangeChart')) {
35713 return this.chartService.createRangeChart(params);
35714 }
35715 };
35716 GridApi.prototype.createCrossFilterChart = function (params) {
35717 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.createCrossFilterChart') &&
35718 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.createCrossFilterChart')) {
35719 return this.chartService.createCrossFilterChart(params);
35720 }
35721 };
35722 GridApi.prototype.restoreChart = function (chartModel, chartContainer) {
35723 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.restoreChart') &&
35724 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.restoreChart')) {
35725 return this.chartService.restoreChart(chartModel, chartContainer);
35726 }
35727 };
35728 GridApi.prototype.createPivotChart = function (params) {
35729 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].RangeSelectionModule, 'api.createPivotChart') &&
35730 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].GridChartsModule, 'api.createPivotChart')) {
35731 return this.chartService.createPivotChart(params);
35732 }
35733 };
35734 GridApi.prototype.copySelectedRowsToClipboard = function (includeHeader, columnKeys) {
35735 if (!this.clipboardService) {
35736 console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');
35737 }
35738 this.clipboardService.copySelectedRowsToClipboard(includeHeader, columnKeys);
35739 };
35740 GridApi.prototype.copySelectedRangeToClipboard = function (includeHeader) {
35741 if (!this.clipboardService) {
35742 console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');
35743 }
35744 this.clipboardService.copySelectedRangeToClipboard(includeHeader);
35745 };
35746 GridApi.prototype.copySelectedRangeDown = function () {
35747 if (!this.clipboardService) {
35748 console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');
35749 }
35750 this.clipboardService.copyRangeDown();
35751 };
35752 GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {
35753 // use grid column so works with pivot mode
35754 var column = this.columnController.getGridColumn(colKey);
35755 this.menuFactory.showMenuAfterButtonClick(column, buttonElement);
35756 };
35757 GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {
35758 // use grid column so works with pivot mode
35759 var column = this.columnController.getGridColumn(colKey);
35760 if (!column) {
35761 column = this.columnController.getPrimaryColumn(colKey);
35762 }
35763 if (!column) {
35764 console.error("AG Grid: column '" + colKey + "' not found");
35765 return;
35766 }
35767 this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);
35768 };
35769 GridApi.prototype.hidePopupMenu = function () {
35770 // hide the context menu if in enterprise
35771 if (this.contextMenuFactory) {
35772 this.contextMenuFactory.hideActiveMenu();
35773 }
35774 // and hide the column menu always
35775 this.menuFactory.hideActiveMenu();
35776 };
35777 GridApi.prototype.setPopupParent = function (ePopupParent) {
35778 this.gridOptionsWrapper.setProperty(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_POPUP_PARENT, ePopupParent);
35779 };
35780 GridApi.prototype.tabToNextCell = function () {
35781 return this.rowRenderer.tabToNextCell(false);
35782 };
35783 GridApi.prototype.tabToPreviousCell = function () {
35784 return this.rowRenderer.tabToNextCell(true);
35785 };
35786 GridApi.prototype.getCellRendererInstances = function (params) {
35787 if (params === void 0) { params = {}; }
35788 return this.rowRenderer.getCellRendererInstances(params);
35789 };
35790 GridApi.prototype.getCellEditorInstances = function (params) {
35791 if (params === void 0) { params = {}; }
35792 return this.rowRenderer.getCellEditorInstances(params);
35793 };
35794 GridApi.prototype.getEditingCells = function () {
35795 return this.rowRenderer.getEditingCells();
35796 };
35797 GridApi.prototype.stopEditing = function (cancel) {
35798 if (cancel === void 0) { cancel = false; }
35799 this.rowRenderer.stopEditing(cancel);
35800 };
35801 GridApi.prototype.startEditingCell = function (params) {
35802 var column = this.columnController.getGridColumn(params.colKey);
35803 if (!column) {
35804 console.warn("AG Grid: no column found for " + params.colKey);
35805 return;
35806 }
35807 var cellPosition = {
35808 rowIndex: params.rowIndex,
35809 rowPinned: params.rowPinned || null,
35810 column: column
35811 };
35812 var notPinned = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(params.rowPinned);
35813 if (notPinned) {
35814 this.gridBodyCon.getScrollFeature().ensureIndexVisible(params.rowIndex);
35815 }
35816 this.rowRenderer.startEditingCell(cellPosition, params.keyPress, params.charPress);
35817 };
35818 GridApi.prototype.addAggFunc = function (key, aggFunc) {
35819 if (this.aggFuncService) {
35820 this.aggFuncService.addAggFunc(key, aggFunc);
35821 }
35822 };
35823 GridApi.prototype.addAggFuncs = function (aggFuncs) {
35824 if (this.aggFuncService) {
35825 this.aggFuncService.addAggFuncs(aggFuncs);
35826 }
35827 };
35828 GridApi.prototype.clearAggFuncs = function () {
35829 if (this.aggFuncService) {
35830 this.aggFuncService.clear();
35831 }
35832 };
35833 GridApi.prototype.applyServerSideTransaction = function (transaction) {
35834 if (!this.serverSideTransactionManager) {
35835 console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');
35836 return;
35837 }
35838 return this.serverSideTransactionManager.applyTransaction(transaction);
35839 };
35840 GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {
35841 if (!this.serverSideTransactionManager) {
35842 console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');
35843 return;
35844 }
35845 return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);
35846 };
35847 GridApi.prototype.retryServerSideLoads = function () {
35848 if (!this.serverSideRowModel) {
35849 console.warn('AG Grid: API retryServerSideLoads() can only be used when using Server-Side Row Model.');
35850 return;
35851 }
35852 this.serverSideRowModel.retryLoads();
35853 };
35854 GridApi.prototype.flushServerSideAsyncTransactions = function () {
35855 if (!this.serverSideTransactionManager) {
35856 console.warn('AG Grid: Cannot flush Server Side Transaction if not using the Server Side Row Model.');
35857 return;
35858 }
35859 return this.serverSideTransactionManager.flushAsyncTransactions();
35860 };
35861 GridApi.prototype.applyTransaction = function (rowDataTransaction) {
35862 if (!this.clientSideRowModel) {
35863 console.error('AG Grid: updateRowData() only works with ClientSideRowModel. Working with InfiniteRowModel was deprecated in v23.1 and removed in v24.1');
35864 return;
35865 }
35866 var res = this.clientSideRowModel.updateRowData(rowDataTransaction);
35867 // refresh all the full width rows
35868 this.rowRenderer.refreshFullWidthRows(res.update);
35869 // do change detection for all present cells
35870 if (!this.gridOptionsWrapper.isSuppressChangeDetection()) {
35871 this.rowRenderer.refreshCells();
35872 }
35873 return res;
35874 };
35875 /** @deprecated */
35876 GridApi.prototype.updateRowData = function (rowDataTransaction) {
35877 var message = 'AG Grid: as of v23.1, grid API updateRowData(transaction) is now called applyTransaction(transaction). updateRowData is deprecated and will be removed in a future major release.';
35878 Object(_utils_function__WEBPACK_IMPORTED_MODULE_11__["doOnce"])(function () { return console.warn(message); }, 'updateRowData deprecated');
35879 return this.applyTransaction(rowDataTransaction);
35880 };
35881 GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {
35882 if (!this.clientSideRowModel) {
35883 console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');
35884 return;
35885 }
35886 this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);
35887 };
35888 GridApi.prototype.flushAsyncTransactions = function () {
35889 if (!this.clientSideRowModel) {
35890 console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');
35891 return;
35892 }
35893 this.clientSideRowModel.flushAsyncTransactions();
35894 };
35895 /** @deprecated */
35896 GridApi.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {
35897 var message = 'AG Grid: as of v23.1, grid API batchUpdateRowData(transaction, callback) is now called applyTransactionAsync(transaction, callback). batchUpdateRowData is deprecated and will be removed in a future major release.';
35898 Object(_utils_function__WEBPACK_IMPORTED_MODULE_11__["doOnce"])(function () { return console.warn(message); }, 'batchUpdateRowData deprecated');
35899 this.applyTransactionAsync(rowDataTransaction, callback);
35900 };
35901 GridApi.prototype.insertItemsAtIndex = function (index, items, skipRefresh) {
35902 if (skipRefresh === void 0) { skipRefresh = false; }
35903 console.warn('AG Grid: insertItemsAtIndex() is deprecated, use updateRowData(transaction) instead.');
35904 this.updateRowData({ add: items, addIndex: index, update: null, remove: null });
35905 };
35906 GridApi.prototype.removeItems = function (rowNodes, skipRefresh) {
35907 if (skipRefresh === void 0) { skipRefresh = false; }
35908 console.warn('AG Grid: removeItems() is deprecated, use updateRowData(transaction) instead.');
35909 var dataToRemove = rowNodes.map(function (rowNode) { return rowNode.data; });
35910 this.updateRowData({ add: null, addIndex: null, update: null, remove: dataToRemove });
35911 };
35912 GridApi.prototype.addItems = function (items, skipRefresh) {
35913 if (skipRefresh === void 0) { skipRefresh = false; }
35914 console.warn('AG Grid: addItems() is deprecated, use updateRowData(transaction) instead.');
35915 this.updateRowData({ add: items, addIndex: null, update: null, remove: null });
35916 };
35917 GridApi.prototype.refreshVirtualPageCache = function () {
35918 console.warn('AG Grid: refreshVirtualPageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');
35919 this.refreshInfiniteCache();
35920 };
35921 GridApi.prototype.refreshInfinitePageCache = function () {
35922 console.warn('AG Grid: refreshInfinitePageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');
35923 this.refreshInfiniteCache();
35924 };
35925 GridApi.prototype.refreshInfiniteCache = function () {
35926 if (this.infiniteRowModel) {
35927 this.infiniteRowModel.refreshCache();
35928 }
35929 else {
35930 console.warn("AG Grid: api.refreshInfiniteCache is only available when rowModelType='infinite'.");
35931 }
35932 };
35933 GridApi.prototype.purgeVirtualPageCache = function () {
35934 console.warn('AG Grid: purgeVirtualPageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');
35935 this.purgeInfinitePageCache();
35936 };
35937 GridApi.prototype.purgeInfinitePageCache = function () {
35938 console.warn('AG Grid: purgeInfinitePageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');
35939 this.purgeInfiniteCache();
35940 };
35941 GridApi.prototype.purgeInfiniteCache = function () {
35942 if (this.infiniteRowModel) {
35943 this.infiniteRowModel.purgeCache();
35944 }
35945 else {
35946 console.warn("AG Grid: api.purgeInfiniteCache is only available when rowModelType='infinite'.");
35947 }
35948 };
35949 /** @deprecated */
35950 GridApi.prototype.purgeEnterpriseCache = function (route) {
35951 console.warn("ag-grid: since version 18.x, api.purgeEnterpriseCache() should be replaced with api.purgeServerSideCache()");
35952 this.purgeServerSideCache(route);
35953 };
35954 /** @deprecated */
35955 GridApi.prototype.purgeServerSideCache = function (route) {
35956 if (route === void 0) { route = []; }
35957 if (this.serverSideRowModel) {
35958 console.warn("AG Grid: since v25.0, api.purgeServerSideCache is deprecated. Please use api.refreshServerSideStore({purge: true}) instead.");
35959 this.refreshServerSideStore({
35960 route: route,
35961 purge: true
35962 });
35963 }
35964 else {
35965 console.warn("AG Grid: api.purgeServerSideCache is only available when rowModelType='serverSide'.");
35966 }
35967 };
35968 GridApi.prototype.refreshServerSideStore = function (params) {
35969 if (this.serverSideRowModel) {
35970 this.serverSideRowModel.refreshStore(params);
35971 }
35972 else {
35973 console.warn("AG Grid: api.refreshServerSideStore is only available when rowModelType='serverSide'.");
35974 }
35975 };
35976 GridApi.prototype.getServerSideStoreState = function () {
35977 if (this.serverSideRowModel) {
35978 return this.serverSideRowModel.getStoreState();
35979 }
35980 else {
35981 console.warn("AG Grid: api.getServerSideStoreState is only available when rowModelType='serverSide'.");
35982 return [];
35983 }
35984 };
35985 GridApi.prototype.getVirtualRowCount = function () {
35986 console.warn('AG Grid: getVirtualRowCount() is now called getInfiniteRowCount(), please call getInfiniteRowCount() instead');
35987 return this.getInfiniteRowCount();
35988 };
35989 GridApi.prototype.getInfiniteRowCount = function () {
35990 if (this.infiniteRowModel) {
35991 return this.infiniteRowModel.getRowCount();
35992 }
35993 else {
35994 console.warn("AG Grid: api.getVirtualRowCount is only available when rowModelType='virtual'.");
35995 }
35996 };
35997 GridApi.prototype.isMaxRowFound = function () {
35998 console.warn("AG Grid: api.isLastRowIndexKnown is deprecated, please use api.isLastRowIndexKnown()");
35999 return this.isLastRowIndexKnown();
36000 };
36001 GridApi.prototype.isLastRowIndexKnown = function () {
36002 if (this.infiniteRowModel) {
36003 return this.infiniteRowModel.isLastRowIndexKnown();
36004 }
36005 else {
36006 console.warn("AG Grid: api.isMaxRowFound is only available when rowModelType='virtual'.");
36007 }
36008 };
36009 GridApi.prototype.setVirtualRowCount = function (rowCount, maxRowFound) {
36010 console.warn('AG Grid: setVirtualRowCount() is now called setInfiniteRowCount(), please call setInfiniteRowCount() instead');
36011 this.setRowCount(rowCount, maxRowFound);
36012 };
36013 GridApi.prototype.setInfiniteRowCount = function (rowCount, maxRowFound) {
36014 console.warn('AG Grid: setInfiniteRowCount() is now called setRowCount(), please call setRowCount() instead');
36015 this.setRowCount(rowCount, maxRowFound);
36016 };
36017 GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {
36018 if (this.infiniteRowModel) {
36019 this.infiniteRowModel.setRowCount(rowCount, maxRowFound);
36020 }
36021 else {
36022 console.warn("AG Grid: api.setRowCount is only available for Infinite Row Model.");
36023 }
36024 };
36025 GridApi.prototype.getVirtualPageState = function () {
36026 console.warn('AG Grid: getVirtualPageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');
36027 return this.getCacheBlockState();
36028 };
36029 GridApi.prototype.getInfinitePageState = function () {
36030 console.warn('AG Grid: getInfinitePageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');
36031 return this.getCacheBlockState();
36032 };
36033 GridApi.prototype.getCacheBlockState = function () {
36034 return this.rowNodeBlockLoader.getBlockState();
36035 };
36036 GridApi.prototype.checkGridSize = function () {
36037 console.warn("in AG Grid v25.2.0, checkGridSize() was removed, as it was legacy and didn't do anything uesful.");
36038 };
36039 GridApi.prototype.getFirstRenderedRow = function () {
36040 console.warn('in AG Grid v12, getFirstRenderedRow() was renamed to getFirstDisplayedRow()');
36041 return this.getFirstDisplayedRow();
36042 };
36043 GridApi.prototype.getFirstDisplayedRow = function () {
36044 return this.rowRenderer.getFirstVirtualRenderedRow();
36045 };
36046 GridApi.prototype.getLastRenderedRow = function () {
36047 console.warn('in AG Grid v12, getLastRenderedRow() was renamed to getLastDisplayedRow()');
36048 return this.getLastDisplayedRow();
36049 };
36050 GridApi.prototype.getLastDisplayedRow = function () {
36051 return this.rowRenderer.getLastVirtualRenderedRow();
36052 };
36053 GridApi.prototype.getDisplayedRowAtIndex = function (index) {
36054 return this.rowModel.getRow(index);
36055 };
36056 GridApi.prototype.getDisplayedRowCount = function () {
36057 return this.rowModel.getRowCount();
36058 };
36059 GridApi.prototype.paginationIsLastPageFound = function () {
36060 return this.paginationProxy.isLastPageFound();
36061 };
36062 GridApi.prototype.paginationGetPageSize = function () {
36063 return this.paginationProxy.getPageSize();
36064 };
36065 GridApi.prototype.paginationSetPageSize = function (size) {
36066 this.gridOptionsWrapper.setProperty('paginationPageSize', size);
36067 };
36068 GridApi.prototype.paginationGetCurrentPage = function () {
36069 return this.paginationProxy.getCurrentPage();
36070 };
36071 GridApi.prototype.paginationGetTotalPages = function () {
36072 return this.paginationProxy.getTotalPages();
36073 };
36074 GridApi.prototype.paginationGetRowCount = function () {
36075 return this.paginationProxy.getMasterRowCount();
36076 };
36077 GridApi.prototype.paginationGoToNextPage = function () {
36078 this.paginationProxy.goToNextPage();
36079 };
36080 GridApi.prototype.paginationGoToPreviousPage = function () {
36081 this.paginationProxy.goToPreviousPage();
36082 };
36083 GridApi.prototype.paginationGoToFirstPage = function () {
36084 this.paginationProxy.goToFirstPage();
36085 };
36086 GridApi.prototype.paginationGoToLastPage = function () {
36087 this.paginationProxy.goToLastPage();
36088 };
36089 GridApi.prototype.paginationGoToPage = function (page) {
36090 this.paginationProxy.goToPage(page);
36091 };
36092 __decorate([
36093 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('immutableService')
36094 ], GridApi.prototype, "immutableService", void 0);
36095 __decorate([
36096 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('csvCreator')
36097 ], GridApi.prototype, "csvCreator", void 0);
36098 __decorate([
36099 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('excelCreator')
36100 ], GridApi.prototype, "excelCreator", void 0);
36101 __decorate([
36102 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowRenderer')
36103 ], GridApi.prototype, "rowRenderer", void 0);
36104 __decorate([
36105 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('filterManager')
36106 ], GridApi.prototype, "filterManager", void 0);
36107 __decorate([
36108 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
36109 ], GridApi.prototype, "columnController", void 0);
36110 __decorate([
36111 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionController')
36112 ], GridApi.prototype, "selectionController", void 0);
36113 __decorate([
36114 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
36115 ], GridApi.prototype, "gridOptionsWrapper", void 0);
36116 __decorate([
36117 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
36118 ], GridApi.prototype, "valueService", void 0);
36119 __decorate([
36120 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('alignedGridsService')
36121 ], GridApi.prototype, "alignedGridsService", void 0);
36122 __decorate([
36123 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('eventService')
36124 ], GridApi.prototype, "eventService", void 0);
36125 __decorate([
36126 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('pinnedRowModel')
36127 ], GridApi.prototype, "pinnedRowModel", void 0);
36128 __decorate([
36129 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('context')
36130 ], GridApi.prototype, "context", void 0);
36131 __decorate([
36132 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
36133 ], GridApi.prototype, "rowModel", void 0);
36134 __decorate([
36135 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('sortController')
36136 ], GridApi.prototype, "sortController", void 0);
36137 __decorate([
36138 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('paginationProxy')
36139 ], GridApi.prototype, "paginationProxy", void 0);
36140 __decorate([
36141 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('focusController')
36142 ], GridApi.prototype, "focusController", void 0);
36143 __decorate([
36144 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragAndDropService')
36145 ], GridApi.prototype, "dragAndDropService", void 0);
36146 __decorate([
36147 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeController')
36148 ], GridApi.prototype, "rangeController", void 0);
36149 __decorate([
36150 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('clipboardService')
36151 ], GridApi.prototype, "clipboardService", void 0);
36152 __decorate([
36153 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('aggFuncService')
36154 ], GridApi.prototype, "aggFuncService", void 0);
36155 __decorate([
36156 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('menuFactory')
36157 ], GridApi.prototype, "menuFactory", void 0);
36158 __decorate([
36159 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('contextMenuFactory')
36160 ], GridApi.prototype, "contextMenuFactory", void 0);
36161 __decorate([
36162 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueCache')
36163 ], GridApi.prototype, "valueCache", void 0);
36164 __decorate([
36165 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('animationFrameService')
36166 ], GridApi.prototype, "animationFrameService", void 0);
36167 __decorate([
36168 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('statusBarService')
36169 ], GridApi.prototype, "statusBarService", void 0);
36170 __decorate([
36171 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('chartService')
36172 ], GridApi.prototype, "chartService", void 0);
36173 __decorate([
36174 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('undoRedoService')
36175 ], GridApi.prototype, "undoRedoService", void 0);
36176 __decorate([
36177 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('headlessService')
36178 ], GridApi.prototype, "headlessService", void 0);
36179 __decorate([
36180 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rowNodeBlockLoader')
36181 ], GridApi.prototype, "rowNodeBlockLoader", void 0);
36182 __decorate([
36183 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('ssrmTransactionManager')
36184 ], GridApi.prototype, "serverSideTransactionManager", void 0);
36185 __decorate([
36186 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('controllersService')
36187 ], GridApi.prototype, "controllersService", void 0);
36188 __decorate([
36189 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
36190 ], GridApi.prototype, "init", null);
36191 __decorate([
36192 _context_context__WEBPACK_IMPORTED_MODULE_2__["PreDestroy"]
36193 ], GridApi.prototype, "cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid", null);
36194 GridApi = __decorate([
36195 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('gridApi')
36196 ], GridApi);
36197 return GridApi;
36198}());
36199
36200
36201
36202/***/ }),
36203/* 149 */
36204/***/ (function(module, __webpack_exports__, __webpack_require__) {
36205
36206"use strict";
36207__webpack_require__.r(__webpack_exports__);
36208/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return ExcelFactoryMode; });
36209/**
36210 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36211 * @version v25.3.0
36212 * @link http://www.ag-grid.com/
36213 * @license MIT
36214 */
36215// Excel Export
36216var ExcelFactoryMode;
36217(function (ExcelFactoryMode) {
36218 ExcelFactoryMode[ExcelFactoryMode["SINGLE_SHEET"] = 0] = "SINGLE_SHEET";
36219 ExcelFactoryMode[ExcelFactoryMode["MULTI_SHEET"] = 1] = "MULTI_SHEET";
36220})(ExcelFactoryMode || (ExcelFactoryMode = {}));
36221
36222
36223/***/ }),
36224/* 150 */
36225/***/ (function(module, __webpack_exports__, __webpack_require__) {
36226
36227"use strict";
36228__webpack_require__.r(__webpack_exports__);
36229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return ClientSideRowModelSteps; });
36230/**
36231 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36232 * @version v25.3.0
36233 * @link http://www.ag-grid.com/
36234 * @license MIT
36235 */
36236var ClientSideRowModelSteps;
36237(function (ClientSideRowModelSteps) {
36238 ClientSideRowModelSteps["EVERYTHING"] = "group";
36239 ClientSideRowModelSteps["FILTER"] = "filter";
36240 ClientSideRowModelSteps["SORT"] = "sort";
36241 ClientSideRowModelSteps["MAP"] = "map";
36242 ClientSideRowModelSteps["AGGREGATE"] = "aggregate";
36243 ClientSideRowModelSteps["PIVOT"] = "pivot";
36244 ClientSideRowModelSteps["NOTHING"] = "nothing";
36245})(ClientSideRowModelSteps || (ClientSideRowModelSteps = {}));
36246
36247
36248/***/ }),
36249/* 151 */
36250/***/ (function(module, __webpack_exports__, __webpack_require__) {
36251
36252"use strict";
36253__webpack_require__.r(__webpack_exports__);
36254/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return ExpressionService; });
36255/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
36256/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
36257/**
36258 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36259 * @version v25.3.0
36260 * @link http://www.ag-grid.com/
36261 * @license MIT
36262 */
36263var __extends = (undefined && undefined.__extends) || (function () {
36264 var extendStatics = function (d, b) {
36265 extendStatics = Object.setPrototypeOf ||
36266 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36267 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
36268 return extendStatics(d, b);
36269 };
36270 return function (d, b) {
36271 extendStatics(d, b);
36272 function __() { this.constructor = d; }
36273 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36274 };
36275})();
36276var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36277 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36278 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36279 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;
36280 return c > 3 && r && Object.defineProperty(target, key, r), r;
36281};
36282var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
36283 return function (target, key) { decorator(target, key, paramIndex); }
36284};
36285
36286
36287
36288var ExpressionService = /** @class */ (function (_super) {
36289 __extends(ExpressionService, _super);
36290 function ExpressionService() {
36291 var _this = _super !== null && _super.apply(this, arguments) || this;
36292 _this.expressionToFunctionCache = {};
36293 return _this;
36294 }
36295 ExpressionService.prototype.setBeans = function (loggerFactory) {
36296 this.logger = loggerFactory.create('ExpressionService');
36297 };
36298 ExpressionService.prototype.evaluate = function (expressionOrFunc, params) {
36299 if (typeof expressionOrFunc === 'function') {
36300 // valueGetter is a function, so just call it
36301 var func = expressionOrFunc;
36302 return func(params);
36303 }
36304 else if (typeof expressionOrFunc === 'string') {
36305 // valueGetter is an expression, so execute the expression
36306 var expression = expressionOrFunc;
36307 return this.evaluateExpression(expression, params);
36308 }
36309 else {
36310 console.error('AG Grid: value should be either a string or a function', expressionOrFunc);
36311 }
36312 };
36313 ExpressionService.prototype.evaluateExpression = function (expression, params) {
36314 try {
36315 var javaScriptFunction = this.createExpressionFunction(expression);
36316 // the params don't have all these values, rather we add every possible
36317 // value a params can have, which makes whatever is in the params available.
36318 var result = javaScriptFunction(params.value, params.context, params.oldValue, params.newValue, params.value, params.node, params.data, params.colDef, params.rowIndex, params.api, params.columnApi, params.getValue, params.column, params.columnGroup);
36319 return result;
36320 }
36321 catch (e) {
36322 // the expression failed, which can happen, as it's the client that
36323 // provides the expression. so print a nice message
36324 // tslint:disable-next-line
36325 console.log('Processing of the expression failed');
36326 // tslint:disable-next-line
36327 console.log('Expression = ' + expression);
36328 // tslint:disable-next-line
36329 console.log('Params =', params);
36330 // tslint:disable-next-line
36331 console.log('Exception = ' + e);
36332 return null;
36333 }
36334 };
36335 ExpressionService.prototype.createExpressionFunction = function (expression) {
36336 // check cache first
36337 if (this.expressionToFunctionCache[expression]) {
36338 return this.expressionToFunctionCache[expression];
36339 }
36340 // if not found in cache, return the function
36341 var functionBody = this.createFunctionBody(expression);
36342 var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);
36343 // store in cache
36344 this.expressionToFunctionCache[expression] = theFunction;
36345 return theFunction;
36346 };
36347 ExpressionService.prototype.createFunctionBody = function (expression) {
36348 // if the expression has the 'return' word in it, then use as is,
36349 // if not, then wrap it with return and ';' to make a function
36350 if (expression.indexOf('return') >= 0) {
36351 return expression;
36352 }
36353 else {
36354 return 'return ' + expression + ';';
36355 }
36356 };
36357 __decorate([
36358 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
36359 ], ExpressionService.prototype, "setBeans", null);
36360 ExpressionService = __decorate([
36361 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('expressionService')
36362 ], ExpressionService);
36363 return ExpressionService;
36364}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
36365
36366
36367
36368/***/ }),
36369/* 152 */
36370/***/ (function(module, __webpack_exports__, __webpack_require__) {
36371
36372"use strict";
36373__webpack_require__.r(__webpack_exports__);
36374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return TemplateService; });
36375/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
36376/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
36377/**
36378 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36379 * @version v25.3.0
36380 * @link http://www.ag-grid.com/
36381 * @license MIT
36382 */
36383var __extends = (undefined && undefined.__extends) || (function () {
36384 var extendStatics = function (d, b) {
36385 extendStatics = Object.setPrototypeOf ||
36386 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36387 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
36388 return extendStatics(d, b);
36389 };
36390 return function (d, b) {
36391 extendStatics(d, b);
36392 function __() { this.constructor = d; }
36393 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36394 };
36395})();
36396var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36397 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36398 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36399 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;
36400 return c > 3 && r && Object.defineProperty(target, key, r), r;
36401};
36402
36403
36404
36405var TemplateService = /** @class */ (function (_super) {
36406 __extends(TemplateService, _super);
36407 function TemplateService() {
36408 var _this = _super !== null && _super.apply(this, arguments) || this;
36409 _this.templateCache = {};
36410 _this.waitingCallbacks = {};
36411 return _this;
36412 }
36413 // returns the template if it is loaded, or null if it is not loaded
36414 // but will call the callback when it is loaded
36415 TemplateService.prototype.getTemplate = function (url, callback) {
36416 var templateFromCache = this.templateCache[url];
36417 if (templateFromCache) {
36418 return templateFromCache;
36419 }
36420 var callbackList = this.waitingCallbacks[url];
36421 var that = this;
36422 if (!callbackList) {
36423 // first time this was called, so need a new list for callbacks
36424 callbackList = [];
36425 this.waitingCallbacks[url] = callbackList;
36426 // and also need to do the http request
36427 var client = new XMLHttpRequest();
36428 client.onload = function () {
36429 that.handleHttpResult(this, url);
36430 };
36431 client.open("GET", url);
36432 client.send();
36433 }
36434 // add this callback
36435 if (callback) {
36436 callbackList.push(callback);
36437 }
36438 // caller needs to wait for template to load, so return null
36439 return null;
36440 };
36441 TemplateService.prototype.handleHttpResult = function (httpResult, url) {
36442 if (httpResult.status !== 200 || httpResult.response === null) {
36443 console.warn("Unable to get template error " + httpResult.status + " - " + url);
36444 return;
36445 }
36446 // response success, so process it
36447 // in IE9 the response is in - responseText
36448 this.templateCache[url] = httpResult.response || httpResult.responseText;
36449 // inform all listeners that this is now in the cache
36450 var callbacks = this.waitingCallbacks[url];
36451 for (var i = 0; i < callbacks.length; i++) {
36452 var callback = callbacks[i];
36453 // we could pass the callback the response, however we know the client of this code
36454 // is the cell renderer, and it passes the 'cellRefresh' method in as the callback
36455 // which doesn't take any parameters.
36456 callback();
36457 }
36458 if (this.$scope) {
36459 var that_1 = this;
36460 window.setTimeout(function () {
36461 that_1.$scope.$apply();
36462 }, 0);
36463 }
36464 };
36465 __decorate([
36466 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$scope')
36467 ], TemplateService.prototype, "$scope", void 0);
36468 TemplateService = __decorate([
36469 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('templateService')
36470 ], TemplateService);
36471 return TemplateService;
36472}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
36473
36474
36475
36476/***/ }),
36477/* 153 */
36478/***/ (function(module, __webpack_exports__, __webpack_require__) {
36479
36480"use strict";
36481__webpack_require__.r(__webpack_exports__);
36482/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return PopupService; });
36483/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
36484/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
36485/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
36486/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
36487/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
36488/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21);
36489/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
36490/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(154);
36491/**
36492 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
36493 * @version v25.3.0
36494 * @link http://www.ag-grid.com/
36495 * @license MIT
36496 */
36497var __extends = (undefined && undefined.__extends) || (function () {
36498 var extendStatics = function (d, b) {
36499 extendStatics = Object.setPrototypeOf ||
36500 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36501 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
36502 return extendStatics(d, b);
36503 };
36504 return function (d, b) {
36505 extendStatics(d, b);
36506 function __() { this.constructor = d; }
36507 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36508 };
36509})();
36510var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36511 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36512 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36513 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;
36514 return c > 3 && r && Object.defineProperty(target, key, r), r;
36515};
36516
36517
36518
36519
36520
36521
36522
36523
36524var PopupService = /** @class */ (function (_super) {
36525 __extends(PopupService, _super);
36526 function PopupService() {
36527 var _this = _super !== null && _super.apply(this, arguments) || this;
36528 _this.popupList = [];
36529 return _this;
36530 }
36531 PopupService.prototype.registerGridCompController = function (gridCompController) {
36532 var _this = this;
36533 this.gridCompController = gridCompController;
36534 this.addManagedListener(this.gridCompController, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_KEYBOARD_FOCUS, function () {
36535 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(_this.popupList, function (popup) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(popup.element, _focusController__WEBPACK_IMPORTED_MODULE_7__["FocusController"].AG_KEYBOARD_FOCUS); });
36536 });
36537 this.addManagedListener(this.gridCompController, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MOUSE_FOCUS, function () {
36538 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["forEach"])(_this.popupList, function (popup) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["removeCssClass"])(popup.element, _focusController__WEBPACK_IMPORTED_MODULE_7__["FocusController"].AG_KEYBOARD_FOCUS); });
36539 });
36540 };
36541 PopupService.prototype.getPopupParent = function () {
36542 var ePopupParent = this.gridOptionsWrapper.getPopupParent();
36543 if (ePopupParent) {
36544 return ePopupParent;
36545 }
36546 return this.gridCompController.getGui();
36547 };
36548 PopupService.prototype.positionPopupForMenu = function (params) {
36549 var sourceRect = params.eventSource.getBoundingClientRect();
36550 var parentRect = this.getParentRect();
36551 var y = this.keepYWithinBounds(params, sourceRect.top - parentRect.top);
36552 var minWidth = (params.ePopup.clientWidth > 0) ? params.ePopup.clientWidth : 200;
36553 params.ePopup.style.minWidth = minWidth + "px";
36554 var widthOfParent = parentRect.right - parentRect.left;
36555 var maxX = widthOfParent - minWidth;
36556 // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup
36557 // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,
36558 // we try place it first to the left, and then if not to the right.
36559 var x;
36560 if (this.gridOptionsWrapper.isEnableRtl()) {
36561 // for RTL, try left first
36562 x = xLeftPosition();
36563 if (x < 0) {
36564 x = xRightPosition();
36565 }
36566 if (x > maxX) {
36567 x = 0;
36568 }
36569 }
36570 else {
36571 // for LTR, try right first
36572 x = xRightPosition();
36573 if (x > maxX) {
36574 x = xLeftPosition();
36575 }
36576 if (x < 0) {
36577 x = 0;
36578 }
36579 }
36580 params.ePopup.style.left = x + "px";
36581 params.ePopup.style.top = y + "px";
36582 function xRightPosition() {
36583 return sourceRect.right - parentRect.left - 2;
36584 }
36585 function xLeftPosition() {
36586 return sourceRect.left - parentRect.left - minWidth;
36587 }
36588 };
36589 PopupService.prototype.positionPopupUnderMouseEvent = function (params) {
36590 var _a = this.calculatePointerAlign(params.mouseEvent), x = _a.x, y = _a.y;
36591 var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY;
36592 this.positionPopup({
36593 ePopup: ePopup,
36594 x: x,
36595 y: y,
36596 nudgeX: nudgeX,
36597 nudgeY: nudgeY,
36598 keepWithinBounds: true
36599 });
36600 this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode);
36601 };
36602 PopupService.prototype.calculatePointerAlign = function (e) {
36603 var parentRect = this.getParentRect();
36604 return {
36605 x: e.clientX - parentRect.left,
36606 y: e.clientY - parentRect.top
36607 };
36608 };
36609 PopupService.prototype.positionPopupUnderComponent = function (params) {
36610 var sourceRect = params.eventSource.getBoundingClientRect();
36611 var alignSide = params.alignSide || 'left';
36612 var parentRect = this.getParentRect();
36613 var x = sourceRect.left - parentRect.left;
36614 if (alignSide === 'right') {
36615 x -= (params.ePopup.offsetWidth - sourceRect.width);
36616 }
36617 this.positionPopup({
36618 ePopup: params.ePopup,
36619 minWidth: params.minWidth,
36620 minHeight: params.minHeight,
36621 nudgeX: params.nudgeX,
36622 nudgeY: params.nudgeY,
36623 x: x,
36624 y: sourceRect.top - parentRect.top + sourceRect.height,
36625 keepWithinBounds: params.keepWithinBounds
36626 });
36627 this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);
36628 };
36629 PopupService.prototype.positionPopupOverComponent = function (params) {
36630 var sourceRect = params.eventSource.getBoundingClientRect();
36631 var parentRect = this.getParentRect();
36632 this.positionPopup({
36633 ePopup: params.ePopup,
36634 minWidth: params.minWidth,
36635 nudgeX: params.nudgeX,
36636 nudgeY: params.nudgeY,
36637 x: sourceRect.left - parentRect.left,
36638 y: sourceRect.top - parentRect.top,
36639 keepWithinBounds: params.keepWithinBounds
36640 });
36641 this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);
36642 };
36643 PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {
36644 var callback = this.gridOptionsWrapper.getPostProcessPopupFunc();
36645 if (callback) {
36646 var params = {
36647 column: column,
36648 rowNode: rowNode,
36649 ePopup: ePopup,
36650 type: type,
36651 eventSource: eventSource,
36652 mouseEvent: mouseEvent
36653 };
36654 callback(params);
36655 }
36656 };
36657 PopupService.prototype.positionPopup = function (params) {
36658 var x = params.x;
36659 var y = params.y;
36660 if (params.nudgeX) {
36661 x += params.nudgeX;
36662 }
36663 if (params.nudgeY) {
36664 y += params.nudgeY;
36665 }
36666 // if popup is overflowing to the bottom, move it up
36667 if (params.keepWithinBounds) {
36668 x = this.keepXWithinBounds(params, x);
36669 y = this.keepYWithinBounds(params, y);
36670 }
36671 params.ePopup.style.left = x + "px";
36672 params.ePopup.style.top = y + "px";
36673 };
36674 PopupService.prototype.getActivePopups = function () {
36675 return this.popupList.map(function (popup) { return popup.element; });
36676 };
36677 PopupService.prototype.getParentRect = function () {
36678 // subtract the popup parent borders, because popupParent.getBoundingClientRect
36679 // returns the rect outside the borders, but the 0,0 coordinate for absolute
36680 // positioning is inside the border, leading the popup to be off by the width
36681 // of the border
36682 var popupParent = this.getPopupParent();
36683 var eDocument = this.gridOptionsWrapper.getDocument();
36684 if (popupParent === eDocument.body) {
36685 popupParent = eDocument.documentElement;
36686 }
36687 var style = getComputedStyle(popupParent);
36688 var bounds = popupParent.getBoundingClientRect();
36689 return {
36690 top: bounds.top + parseFloat(style.borderTopWidth) || 0,
36691 left: bounds.left + parseFloat(style.borderLeftWidth) || 0,
36692 right: bounds.right + parseFloat(style.borderRightWidth) || 0,
36693 bottom: bounds.bottom + parseFloat(style.borderBottomWidth) || 0,
36694 };
36695 };
36696 PopupService.prototype.keepYWithinBounds = function (params, y) {
36697 var eDocument = this.gridOptionsWrapper.getDocument();
36698 var docElement = eDocument.documentElement;
36699 var popupParent = this.getPopupParent();
36700 var parentRect = popupParent.getBoundingClientRect();
36701 var documentRect = eDocument.documentElement.getBoundingClientRect();
36702 var isBody = popupParent === eDocument.body;
36703 var minHeight = Math.min(200, parentRect.height);
36704 var diff = 0;
36705 if (params.minHeight && params.minHeight < minHeight) {
36706 minHeight = params.minHeight;
36707 }
36708 else if (params.ePopup.offsetHeight > 0) {
36709 minHeight = params.ePopup.clientHeight;
36710 diff = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"])(params.ePopup) - minHeight;
36711 }
36712 var heightOfParent = isBody ? (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"])(docElement) + docElement.scrollTop) : parentRect.height;
36713 if (isBody) {
36714 heightOfParent -= Math.abs(documentRect.top - parentRect.top);
36715 }
36716 var maxY = heightOfParent - minHeight - diff;
36717 return Math.min(Math.max(y, 0), Math.abs(maxY));
36718 };
36719 PopupService.prototype.keepXWithinBounds = function (params, x) {
36720 var eDocument = this.gridOptionsWrapper.getDocument();
36721 var docElement = eDocument.documentElement;
36722 var popupParent = this.getPopupParent();
36723 var parentRect = popupParent.getBoundingClientRect();
36724 var documentRect = eDocument.documentElement.getBoundingClientRect();
36725 var isBody = popupParent === eDocument.body;
36726 var ePopup = params.ePopup;
36727 var minWidth = Math.min(200, parentRect.width);
36728 var diff = 0;
36729 if (params.minWidth && params.minWidth < minWidth) {
36730 minWidth = params.minWidth;
36731 }
36732 else if (ePopup.offsetWidth > 0) {
36733 minWidth = ePopup.offsetWidth;
36734 ePopup.style.minWidth = minWidth + "px";
36735 diff = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"])(ePopup) - minWidth;
36736 }
36737 var widthOfParent = isBody ? (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"])(docElement) + docElement.scrollLeft) : parentRect.width;
36738 if (isBody) {
36739 widthOfParent -= Math.abs(documentRect.left - parentRect.left);
36740 }
36741 var maxX = widthOfParent - minWidth - diff;
36742 return Math.min(Math.max(x, 0), Math.abs(maxX));
36743 };
36744 PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {
36745 var eParent = this.getPopupParent();
36746 var parentRect = eParent.getBoundingClientRect();
36747 var sourceRect = params.element.getBoundingClientRect();
36748 var initialDiffTop = parentRect.top - sourceRect.top;
36749 var initialDiffLeft = parentRect.left - sourceRect.left;
36750 var lastDiffTop = initialDiffTop;
36751 var lastDiffLeft = initialDiffLeft;
36752 var topPx = params.ePopup.style.top;
36753 var top = parseInt(topPx.substring(0, topPx.length - 1), 10);
36754 var leftPx = params.ePopup.style.left;
36755 var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);
36756 var intervalId = window.setInterval(function () {
36757 var pRect = eParent.getBoundingClientRect();
36758 var sRect = params.element.getBoundingClientRect();
36759 var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;
36760 if (elementNotInDom) {
36761 params.hidePopup();
36762 return;
36763 }
36764 var currentDiffTop = pRect.top - sRect.top;
36765 if (currentDiffTop != lastDiffTop) {
36766 var newTop = top + initialDiffTop - currentDiffTop;
36767 params.ePopup.style.top = newTop + "px";
36768 }
36769 lastDiffTop = currentDiffTop;
36770 var currentDiffLeft = pRect.left - sRect.left;
36771 if (currentDiffLeft != lastDiffLeft) {
36772 var newLeft = left + initialDiffLeft - currentDiffLeft;
36773 params.ePopup.style.left = newLeft + "px";
36774 }
36775 lastDiffLeft = currentDiffLeft;
36776 }, 200);
36777 var res = function () {
36778 if (intervalId != null) {
36779 window.clearInterval(intervalId);
36780 }
36781 intervalId = undefined;
36782 };
36783 return res;
36784 };
36785 PopupService.prototype.addPopup = function (params) {
36786 var _this = this;
36787 var modal = params.modal, eChild = params.eChild, closeOnEsc = params.closeOnEsc, closedCallback = params.closedCallback, click = params.click, alwaysOnTop = params.alwaysOnTop, afterGuiAttached = params.afterGuiAttached, positionCallback = params.positionCallback, anchorToElement = params.anchorToElement;
36788 var eDocument = this.gridOptionsWrapper.getDocument();
36789 if (!eDocument) {
36790 console.warn('ag-grid: could not find the document, document is empty');
36791 return;
36792 }
36793 var pos = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["findIndex"])(this.popupList, function (popup) { return popup.element === eChild; });
36794 if (pos !== -1) {
36795 var popup = this.popupList[pos];
36796 return { hideFunc: popup.hideFunc, stopAnchoringFunc: popup.stopAnchoringFunc };
36797 }
36798 var ePopupParent = this.getPopupParent();
36799 // for angular specifically, but shouldn't cause an issue with js or other fw's
36800 // https://github.com/angular/angular/issues/8563
36801 ePopupParent.appendChild(eChild);
36802 if (eChild.style.top == null) {
36803 eChild.style.top = '0px';
36804 }
36805 if (eChild.style.left == null) {
36806 eChild.style.left = '0px';
36807 }
36808 // add env CSS class to child, in case user provided a popup parent, which means
36809 // theme class may be missing
36810 var eWrapper = document.createElement('div');
36811 var theme = this.environment.getTheme().theme;
36812 if (theme) {
36813 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eWrapper, theme);
36814 }
36815 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eWrapper, 'ag-popup');
36816 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eChild, this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr');
36817 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eChild, 'ag-popup-child');
36818 if (this.focusController.isKeyboardMode()) {
36819 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eChild, _focusController__WEBPACK_IMPORTED_MODULE_7__["FocusController"].AG_KEYBOARD_FOCUS);
36820 }
36821 eWrapper.appendChild(eChild);
36822 ePopupParent.appendChild(eWrapper);
36823 if (alwaysOnTop) {
36824 this.setAlwaysOnTop(eWrapper, true);
36825 }
36826 else {
36827 this.bringPopupToFront(eWrapper);
36828 }
36829 var popupHidden = false;
36830 var hidePopupOnKeyboardEvent = function (event) {
36831 if (!eWrapper.contains(document.activeElement)) {
36832 return;
36833 }
36834 var key = event.which || event.keyCode;
36835 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ESCAPE) {
36836 hidePopup({ keyboardEvent: event });
36837 }
36838 };
36839 var hidePopupOnMouseEvent = function (event) { return hidePopup({ mouseEvent: event }); };
36840 var hidePopupOnTouchEvent = function (event) { return hidePopup({ touchEvent: event }); };
36841 var destroyPositionTracker;
36842 var hidePopup = function (popupParams) {
36843 if (popupParams === void 0) { popupParams = {}; }
36844 var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;
36845 if (
36846 // we don't hide popup if the event was on the child, or any
36847 // children of this child
36848 _this.isEventFromCurrentPopup({ mouseEvent: mouseEvent, touchEvent: touchEvent }, eChild) ||
36849 // if the event to close is actually the open event, then ignore it
36850 _this.isEventSameChainAsOriginalEvent({ originalMouseEvent: click, mouseEvent: mouseEvent, touchEvent: touchEvent }) ||
36851 // this method should only be called once. the client can have different
36852 // paths, each one wanting to close, so this method may be called multiple times.
36853 popupHidden) {
36854 return;
36855 }
36856 popupHidden = true;
36857 ePopupParent.removeChild(eWrapper);
36858 eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);
36859 eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);
36860 eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);
36861 eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);
36862 _this.eventService.removeEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED, hidePopupOnMouseEvent);
36863 if (closedCallback) {
36864 closedCallback(mouseEvent || touchEvent || keyboardEvent);
36865 }
36866 _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });
36867 if (destroyPositionTracker) {
36868 destroyPositionTracker();
36869 }
36870 };
36871 if (afterGuiAttached) {
36872 afterGuiAttached({ hidePopup: hidePopup });
36873 }
36874 // if we add these listeners now, then the current mouse
36875 // click will be included, which we don't want
36876 window.setTimeout(function () {
36877 if (closeOnEsc) {
36878 eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);
36879 }
36880 if (modal) {
36881 eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);
36882 _this.eventService.addEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED, hidePopupOnMouseEvent);
36883 eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);
36884 eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);
36885 }
36886 }, 0);
36887 if (positionCallback) {
36888 positionCallback();
36889 }
36890 if (anchorToElement) {
36891 // keeps popup positioned under created, eg if context menu, if user scrolls
36892 // using touchpad and the cell moves, it moves the popup to keep it with the cell.
36893 destroyPositionTracker = this.keepPopupPositionedRelativeTo({
36894 element: anchorToElement,
36895 ePopup: eChild,
36896 hidePopup: hidePopup
36897 });
36898 }
36899 this.popupList.push({
36900 element: eChild,
36901 hideFunc: hidePopup,
36902 stopAnchoringFunc: destroyPositionTracker
36903 });
36904 return {
36905 hideFunc: hidePopup,
36906 stopAnchoringFunc: destroyPositionTracker
36907 };
36908 };
36909 PopupService.prototype.isEventFromCurrentPopup = function (params, target) {
36910 var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;
36911 var event = mouseEvent ? mouseEvent : touchEvent;
36912 if (!event) {
36913 return false;
36914 }
36915 var indexOfThisChild = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["findIndex"])(this.popupList, function (popup) { return popup.element === target; });
36916 if (indexOfThisChild === -1) {
36917 return false;
36918 }
36919 for (var i = indexOfThisChild; i < this.popupList.length; i++) {
36920 var popup = this.popupList[i];
36921 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isElementInEventPath"])(popup.element, event)) {
36922 return true;
36923 }
36924 }
36925 // if the user did not write their own Custom Element to be rendered as popup
36926 // and this component has an additional popup element, they should have the
36927 // `ag-custom-component-popup` class to be detected as part of the Custom Component
36928 return this.isElementWithinCustomPopup(event.target);
36929 };
36930 PopupService.prototype.isElementWithinCustomPopup = function (el) {
36931 if (!this.popupList.length) {
36932 return false;
36933 }
36934 while (el && el !== document.body) {
36935 if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {
36936 return true;
36937 }
36938 el = el.parentElement;
36939 }
36940 return false;
36941 };
36942 // in some browsers, the context menu event can be fired before the click event, which means
36943 // the context menu event could open the popup, but then the click event closes it straight away.
36944 PopupService.prototype.isEventSameChainAsOriginalEvent = function (params) {
36945 var originalMouseEvent = params.originalMouseEvent, mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;
36946 // we check the coordinates of the event, to see if it's the same event. there is a 1 / 1000 chance that
36947 // the event is a different event, however that is an edge case that is not very relevant (the user clicking
36948 // twice on the same location isn't a normal path).
36949 // event could be mouse event or touch event.
36950 var mouseEventOrTouch = null;
36951 if (mouseEvent) {
36952 // mouse event can be used direction, it has coordinates
36953 mouseEventOrTouch = mouseEvent;
36954 }
36955 else if (touchEvent) {
36956 // touch event doesn't have coordinates, need it's touch object
36957 mouseEventOrTouch = touchEvent.touches[0];
36958 }
36959 if (mouseEventOrTouch && originalMouseEvent) {
36960 // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed
36961 // by browser click (when you finger up, touch is interrupted as click in browser)
36962 var screenX_1 = mouseEvent ? mouseEvent.screenX : 0;
36963 var screenY_1 = mouseEvent ? mouseEvent.screenY : 0;
36964 var xMatch = Math.abs(originalMouseEvent.screenX - screenX_1) < 5;
36965 var yMatch = Math.abs(originalMouseEvent.screenY - screenY_1) < 5;
36966 if (xMatch && yMatch) {
36967 return true;
36968 }
36969 }
36970 return false;
36971 };
36972 PopupService.prototype.getWrapper = function (ePopup) {
36973 while (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(ePopup, 'ag-popup') && ePopup.parentElement) {
36974 ePopup = ePopup.parentElement;
36975 }
36976 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(ePopup, 'ag-popup') ? ePopup : null;
36977 };
36978 PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {
36979 var eWrapper = this.getWrapper(ePopup);
36980 if (!eWrapper) {
36981 return;
36982 }
36983 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(eWrapper, 'ag-always-on-top', !!alwaysOnTop);
36984 if (alwaysOnTop) {
36985 this.bringPopupToFront(eWrapper);
36986 }
36987 };
36988 PopupService.prototype.bringPopupToFront = function (ePopup) {
36989 var parent = this.getPopupParent();
36990 var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));
36991 var popupLen = popupList.length;
36992 var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));
36993 var onTopLength = alwaysOnTopList.length;
36994 var eWrapper = this.getWrapper(ePopup);
36995 if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {
36996 return;
36997 }
36998 var pos = popupList.indexOf(eWrapper);
36999 if (onTopLength) {
37000 var isPopupAlwaysOnTop = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(eWrapper, 'ag-always-on-top');
37001 if (isPopupAlwaysOnTop) {
37002 if (pos !== popupLen - 1) {
37003 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);
37004 }
37005 }
37006 else if (pos !== popupLen - onTopLength - 1) {
37007 alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);
37008 }
37009 }
37010 else if (pos !== popupLen - 1) {
37011 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(popupList).insertAdjacentElement('afterend', eWrapper);
37012 }
37013 var params = {
37014 type: 'popupToFront',
37015 api: this.gridOptionsWrapper.getApi(),
37016 columnApi: this.gridOptionsWrapper.getColumnApi(),
37017 eWrapper: eWrapper
37018 };
37019 this.eventService.dispatchEvent(params);
37020 };
37021 __decorate([
37022 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('environment')
37023 ], PopupService.prototype, "environment", void 0);
37024 __decorate([
37025 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
37026 ], PopupService.prototype, "focusController", void 0);
37027 PopupService = __decorate([
37028 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('popupService')
37029 ], PopupService);
37030 return PopupService;
37031}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
37032
37033
37034
37035/***/ }),
37036/* 154 */
37037/***/ (function(module, __webpack_exports__, __webpack_require__) {
37038
37039"use strict";
37040__webpack_require__.r(__webpack_exports__);
37041/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusController", function() { return FocusController; });
37042/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37043/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37044/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
37045/* harmony import */ var _rendering_cellComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(107);
37046/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67);
37047/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(34);
37048/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
37049/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
37050/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16);
37051/**
37052 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37053 * @version v25.3.0
37054 * @link http://www.ag-grid.com/
37055 * @license MIT
37056 */
37057var __extends = (undefined && undefined.__extends) || (function () {
37058 var extendStatics = function (d, b) {
37059 extendStatics = Object.setPrototypeOf ||
37060 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37061 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37062 return extendStatics(d, b);
37063 };
37064 return function (d, b) {
37065 extendStatics(d, b);
37066 function __() { this.constructor = d; }
37067 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37068 };
37069})();
37070var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37071 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37072 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37073 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;
37074 return c > 3 && r && Object.defineProperty(target, key, r), r;
37075};
37076var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
37077 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
37078 for (var r = Array(s), k = 0, i = 0; i < il; i++)
37079 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
37080 r[k] = a[j];
37081 return r;
37082};
37083
37084
37085
37086
37087
37088
37089
37090
37091
37092var FocusController = /** @class */ (function (_super) {
37093 __extends(FocusController, _super);
37094 function FocusController() {
37095 return _super !== null && _super.apply(this, arguments) || this;
37096 }
37097 FocusController_1 = FocusController;
37098 /**
37099 * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode
37100 * in a specific HTMLDocument.
37101 *
37102 * @param doc {Document} - The Document containing the gridCore.
37103 * @param gridCore {GridComp} - The GridCore to be monitored.
37104 */
37105 FocusController.addKeyboardModeEvents = function (doc, controller) {
37106 var docControllers = FocusController_1.instancesMonitored.get(doc);
37107 if (docControllers && docControllers.length > 0) {
37108 if (docControllers.indexOf(controller) === -1) {
37109 docControllers.push(controller);
37110 }
37111 }
37112 else {
37113 FocusController_1.instancesMonitored.set(doc, [controller]);
37114 doc.addEventListener('keydown', FocusController_1.toggleKeyboardMode);
37115 doc.addEventListener('mousedown', FocusController_1.toggleKeyboardMode);
37116 }
37117 };
37118 /**
37119 * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode
37120 * in a specific HTMLDocument.
37121 *
37122 * @param doc {Document} - The Document containing the gridCore.
37123 * @param gridCore {GridComp} - The GridCore to be removed.
37124 */
37125 FocusController.removeKeyboardModeEvents = function (doc, controller) {
37126 var docControllers = FocusController_1.instancesMonitored.get(doc);
37127 var newControllers = [];
37128 if (docControllers && docControllers.length) {
37129 newControllers = __spreadArrays(docControllers).filter(function (currentGridCore) { return currentGridCore !== controller; });
37130 FocusController_1.instancesMonitored.set(doc, newControllers);
37131 }
37132 if (newControllers.length === 0) {
37133 doc.removeEventListener('keydown', FocusController_1.toggleKeyboardMode);
37134 doc.removeEventListener('mousedown', FocusController_1.toggleKeyboardMode);
37135 }
37136 };
37137 /**
37138 * This method will be called by `keydown` and `mousedown` events on all Documents monitoring
37139 * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in
37140 * the Document allowing each gridCore to maintain a state for KeyboardMode.
37141 *
37142 * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.
37143 */
37144 FocusController.toggleKeyboardMode = function (event) {
37145 var isKeyboardActive = FocusController_1.keyboardModeActive;
37146 var isKeyboardEvent = event.type === 'keydown';
37147 if (isKeyboardEvent) {
37148 // the following keys should not toggle keyboard mode.
37149 if (event.ctrlKey || event.metaKey || event.altKey) {
37150 return;
37151 }
37152 }
37153 if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {
37154 return;
37155 }
37156 FocusController_1.keyboardModeActive = isKeyboardEvent;
37157 var doc = event.target.ownerDocument;
37158 if (!doc) {
37159 return;
37160 }
37161 var controllersForDoc = FocusController_1.instancesMonitored.get(doc);
37162 if (controllersForDoc) {
37163 controllersForDoc.forEach(function (controller) {
37164 controller.dispatchEvent({ type: isKeyboardEvent ? _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_KEYBOARD_FOCUS : _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_MOUSE_FOCUS });
37165 });
37166 }
37167 };
37168 FocusController.prototype.init = function () {
37169 var clearFocusedCellListener = this.clearFocusedCell.bind(this);
37170 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);
37171 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));
37172 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);
37173 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);
37174 };
37175 FocusController.prototype.registerGridCompController = function (gridCompController) {
37176 var _this = this;
37177 this.gridCompController = gridCompController;
37178 var doc = this.gridOptionsWrapper.getDocument();
37179 FocusController_1.addKeyboardModeEvents(doc, gridCompController);
37180 this.addDestroyFunc(function () { return _this.unregisterGridCompController(gridCompController); });
37181 };
37182 FocusController.prototype.unregisterGridCompController = function (gridCompController) {
37183 var doc = this.gridOptionsWrapper.getDocument();
37184 FocusController_1.removeKeyboardModeEvents(doc, gridCompController);
37185 };
37186 FocusController.prototype.onColumnEverythingChanged = function () {
37187 // if the columns change, check and see if this column still exists. if it does, then
37188 // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.
37189 if (!this.focusedCellPosition) {
37190 return;
37191 }
37192 var col = this.focusedCellPosition.column;
37193 var colFromColumnController = this.columnController.getGridColumn(col.getId());
37194 if (col !== colFromColumnController) {
37195 this.clearFocusedCell();
37196 }
37197 };
37198 FocusController.prototype.isKeyboardMode = function () {
37199 return FocusController_1.keyboardModeActive;
37200 };
37201 // we check if the browser is focusing something, and if it is, and
37202 // it's the cell we think is focused, then return the cell. so this
37203 // methods returns the cell if a) we think it has focus and b) the
37204 // browser thinks it has focus. this then returns nothing if we
37205 // first focus a cell, then second click outside the grid, as then the
37206 // grid cell will still be focused as far as the grid is concerned,
37207 // however the browser focus will have moved somewhere else.
37208 FocusController.prototype.getFocusCellToUseAfterRefresh = function () {
37209 if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedCellPosition) {
37210 return null;
37211 }
37212 // we check that the browser is actually focusing on the grid, if it is not, then
37213 // we have nothing to worry about
37214 if (!this.getGridCellForDomElement(document.activeElement)) {
37215 return null;
37216 }
37217 return this.focusedCellPosition;
37218 };
37219 FocusController.prototype.getGridCellForDomElement = function (eBrowserCell) {
37220 var ePointer = eBrowserCell;
37221 while (ePointer) {
37222 var cellComp = this.gridOptionsWrapper.getDomData(ePointer, _rendering_cellComp__WEBPACK_IMPORTED_MODULE_3__["CellComp"].DOM_DATA_KEY_CELL_COMP);
37223 if (cellComp) {
37224 return cellComp.getCellPosition();
37225 }
37226 ePointer = ePointer.parentNode;
37227 }
37228 return null;
37229 };
37230 FocusController.prototype.clearFocusedCell = function () {
37231 this.focusedCellPosition = null;
37232 this.onCellFocused(false);
37233 };
37234 FocusController.prototype.getFocusedCell = function () {
37235 return this.focusedCellPosition;
37236 };
37237 FocusController.prototype.setFocusedCell = function (rowIndex, colKey, floating, forceBrowserFocus) {
37238 if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }
37239 var gridColumn = this.columnController.getGridColumn(colKey);
37240 // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,
37241 // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries
37242 // to re-focus the focused cell.
37243 if (!gridColumn) {
37244 this.focusedCellPosition = null;
37245 return;
37246 }
37247 this.focusedCellPosition = gridColumn ? { rowIndex: rowIndex, rowPinned: Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["makeNull"])(floating), column: gridColumn } : null;
37248 this.onCellFocused(forceBrowserFocus);
37249 };
37250 FocusController.prototype.isCellFocused = function (cellPosition) {
37251 if (this.focusedCellPosition == null) {
37252 return false;
37253 }
37254 return this.focusedCellPosition.column === cellPosition.column &&
37255 this.isRowFocused(cellPosition.rowIndex, cellPosition.rowPinned);
37256 };
37257 FocusController.prototype.isRowNodeFocused = function (rowNode) {
37258 return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);
37259 };
37260 FocusController.prototype.isHeaderWrapperFocused = function (headerWrapper) {
37261 if (this.focusedHeaderPosition == null) {
37262 return false;
37263 }
37264 var column = headerWrapper.getColumn();
37265 var headerRowIndex = headerWrapper.getParentComponent().getRowIndex();
37266 var pinned = headerWrapper.getPinned();
37267 var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;
37268 return column === focusedColumn &&
37269 headerRowIndex === focusedHeaderRowIndex &&
37270 pinned == focusedColumn.getPinned();
37271 };
37272 FocusController.prototype.clearFocusedHeader = function () {
37273 this.focusedHeaderPosition = null;
37274 };
37275 FocusController.prototype.getFocusedHeader = function () {
37276 return this.focusedHeaderPosition;
37277 };
37278 FocusController.prototype.setFocusedHeader = function (headerRowIndex, column) {
37279 this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };
37280 };
37281 FocusController.prototype.focusHeaderPosition = function (headerPosition, direction, fromTab, allowUserOverride, event) {
37282 if (direction === void 0) { direction = null; }
37283 if (fromTab === void 0) { fromTab = false; }
37284 if (allowUserOverride === void 0) { allowUserOverride = false; }
37285 if (allowUserOverride) {
37286 var gridOptionsWrapper = this.gridOptionsWrapper;
37287 var currentPosition = this.getFocusedHeader();
37288 var headerRowCount = this.headerNavigationService.getHeaderRowCount();
37289 if (fromTab) {
37290 var userFunc = gridOptionsWrapper.getTabToNextHeaderFunc();
37291 if (userFunc) {
37292 var params = {
37293 backwards: direction === 'Before',
37294 previousHeaderPosition: currentPosition,
37295 nextHeaderPosition: headerPosition,
37296 headerRowCount: headerRowCount
37297 };
37298 headerPosition = userFunc(params);
37299 }
37300 }
37301 else {
37302 var userFunc = gridOptionsWrapper.getNavigateToNextHeaderFunc();
37303 if (userFunc && event) {
37304 var params = {
37305 key: event.key,
37306 previousHeaderPosition: currentPosition,
37307 nextHeaderPosition: headerPosition,
37308 headerRowCount: headerRowCount,
37309 event: event
37310 };
37311 headerPosition = userFunc(params);
37312 }
37313 }
37314 }
37315 if (!headerPosition) {
37316 return false;
37317 }
37318 if (headerPosition.headerRowIndex === -1) {
37319 return this.focusGridView(headerPosition.column);
37320 }
37321 this.headerNavigationService.scrollToColumn(headerPosition.column, direction);
37322 var childContainer = this.headerNavigationService.getHeaderContainer(headerPosition.column.getPinned());
37323 var rowComps = childContainer.getRowComps();
37324 var nextRowComp = rowComps[headerPosition.headerRowIndex];
37325 var headerComps = nextRowComp.getHeaderComps();
37326 var nextHeader = headerComps[headerPosition.column.getUniqueId()];
37327 if (nextHeader) {
37328 // this will automatically call the setFocusedHeader method above
37329 nextHeader.getFocusableElement().focus();
37330 return true;
37331 }
37332 return false;
37333 };
37334 FocusController.prototype.isAnyCellFocused = function () {
37335 return !!this.focusedCellPosition;
37336 };
37337 FocusController.prototype.isRowFocused = function (rowIndex, floating) {
37338 if (this.focusedCellPosition == null) {
37339 return false;
37340 }
37341 return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["makeNull"])(floating);
37342 };
37343 FocusController.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {
37344 if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }
37345 var focusableString = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].FOCUSABLE_SELECTOR;
37346 var excludeString = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].FOCUSABLE_EXCLUDE;
37347 if (exclude) {
37348 excludeString += ', ' + exclude;
37349 }
37350 if (onlyUnmanaged) {
37351 excludeString += ', [tabindex="-1"]';
37352 }
37353 var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));
37354 var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));
37355 if (!excludeNodes.length) {
37356 return nodes;
37357 }
37358 var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };
37359 return diff(nodes, excludeNodes);
37360 };
37361 FocusController.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {
37362 if (up === void 0) { up = false; }
37363 if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }
37364 var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);
37365 var toFocus = up ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["last"])(focusableElements) : focusableElements[0];
37366 if (toFocus) {
37367 toFocus.focus();
37368 return true;
37369 }
37370 return false;
37371 };
37372 FocusController.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {
37373 var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex="-1"])' : null);
37374 var currentIndex;
37375 if (onlyManaged) {
37376 currentIndex = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["findIndex"])(focusable, function (el) { return el.contains(document.activeElement); });
37377 }
37378 else {
37379 currentIndex = focusable.indexOf(document.activeElement);
37380 }
37381 var nextIndex = currentIndex + (backwards ? -1 : 1);
37382 if (nextIndex < 0 || nextIndex >= focusable.length) {
37383 return null;
37384 }
37385 return focusable[nextIndex];
37386 };
37387 FocusController.prototype.isFocusUnderManagedComponent = function (rootNode) {
37388 var managedContainers = rootNode.querySelectorAll("." + _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_4__["ManagedFocusComponent"].FOCUS_MANAGED_CLASS);
37389 if (!managedContainers.length) {
37390 return false;
37391 }
37392 for (var i = 0; i < managedContainers.length; i++) {
37393 if (managedContainers[i].contains(document.activeElement)) {
37394 return true;
37395 }
37396 }
37397 return false;
37398 };
37399 FocusController.prototype.findTabbableParent = function (node, limit) {
37400 if (limit === void 0) { limit = 5; }
37401 var counter = 0;
37402 while (node && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["getTabIndex"])(node) === null && ++counter <= limit) {
37403 node = node.parentElement;
37404 }
37405 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["getTabIndex"])(node) === null) {
37406 return null;
37407 }
37408 return node;
37409 };
37410 FocusController.prototype.onCellFocused = function (forceBrowserFocus) {
37411 var event = {
37412 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_CELL_FOCUSED,
37413 forceBrowserFocus: forceBrowserFocus,
37414 rowIndex: null,
37415 column: null,
37416 floating: null,
37417 api: this.gridApi,
37418 columnApi: this.columnApi,
37419 rowPinned: null,
37420 isFullWidthCell: false
37421 };
37422 if (this.focusedCellPosition) {
37423 var rowIndex = event.rowIndex = this.focusedCellPosition.rowIndex;
37424 var rowPinned = event.rowPinned = this.focusedCellPosition.rowPinned;
37425 event.column = this.focusedCellPosition.column;
37426 var rowCon = this.rowRenderer.getRowConByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });
37427 if (rowCon) {
37428 event.isFullWidthCell = rowCon.isFullWidth();
37429 }
37430 }
37431 this.eventService.dispatchEvent(event);
37432 };
37433 FocusController.prototype.focusGridView = function (column, backwards) {
37434 var nextRow = backwards
37435 ? this.rowPositionUtils.getLastRow()
37436 : this.rowPositionUtils.getFirstRow();
37437 if (!nextRow) {
37438 return false;
37439 }
37440 var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;
37441 var focusedHeader = this.getFocusedHeader();
37442 if (!column && focusedHeader) {
37443 column = focusedHeader.column;
37444 }
37445 if (rowIndex == null || !column) {
37446 return false;
37447 }
37448 this.rowRenderer.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });
37449 this.setFocusedCell(rowIndex, column, Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["makeNull"])(rowPinned), true);
37450 if (this.rangeController) {
37451 var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };
37452 this.rangeController.setRangeToCell(cellPosition);
37453 }
37454 return true;
37455 };
37456 FocusController.prototype.focusNextGridCoreContainer = function (backwards) {
37457 if (this.gridCompController.focusNextInnerContainer(backwards)) {
37458 return true;
37459 }
37460 if (!backwards) {
37461 this.gridCompController.forceFocusOutOfContainer();
37462 }
37463 return false;
37464 };
37465 var FocusController_1;
37466 FocusController.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';
37467 FocusController.keyboardModeActive = false;
37468 FocusController.instancesMonitored = new Map();
37469 __decorate([
37470 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
37471 ], FocusController.prototype, "columnController", void 0);
37472 __decorate([
37473 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
37474 ], FocusController.prototype, "headerNavigationService", void 0);
37475 __decorate([
37476 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
37477 ], FocusController.prototype, "columnApi", void 0);
37478 __decorate([
37479 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
37480 ], FocusController.prototype, "gridApi", void 0);
37481 __decorate([
37482 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
37483 ], FocusController.prototype, "rowRenderer", void 0);
37484 __decorate([
37485 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
37486 ], FocusController.prototype, "rowPositionUtils", void 0);
37487 __decorate([
37488 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
37489 ], FocusController.prototype, "rangeController", void 0);
37490 __decorate([
37491 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
37492 ], FocusController.prototype, "init", null);
37493 FocusController = FocusController_1 = __decorate([
37494 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('focusController')
37495 ], FocusController);
37496 return FocusController;
37497}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37498
37499
37500
37501/***/ }),
37502/* 155 */
37503/***/ (function(module, __webpack_exports__, __webpack_require__) {
37504
37505"use strict";
37506__webpack_require__.r(__webpack_exports__);
37507/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return LoggerFactory; });
37508/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return Logger; });
37509/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37510/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37511/**
37512 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37513 * @version v25.3.0
37514 * @link http://www.ag-grid.com/
37515 * @license MIT
37516 */
37517var __extends = (undefined && undefined.__extends) || (function () {
37518 var extendStatics = function (d, b) {
37519 extendStatics = Object.setPrototypeOf ||
37520 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37521 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37522 return extendStatics(d, b);
37523 };
37524 return function (d, b) {
37525 extendStatics(d, b);
37526 function __() { this.constructor = d; }
37527 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37528 };
37529})();
37530var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37531 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37532 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37533 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;
37534 return c > 3 && r && Object.defineProperty(target, key, r), r;
37535};
37536var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
37537 return function (target, key) { decorator(target, key, paramIndex); }
37538};
37539
37540
37541
37542var LoggerFactory = /** @class */ (function (_super) {
37543 __extends(LoggerFactory, _super);
37544 function LoggerFactory() {
37545 return _super !== null && _super.apply(this, arguments) || this;
37546 }
37547 LoggerFactory.prototype.setBeans = function (gridOptionsWrapper) {
37548 this.logging = gridOptionsWrapper.isDebug();
37549 };
37550 LoggerFactory.prototype.create = function (name) {
37551 return new Logger(name, this.isLogging.bind(this));
37552 };
37553 LoggerFactory.prototype.isLogging = function () {
37554 return this.logging;
37555 };
37556 __decorate([
37557 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('gridOptionsWrapper'))
37558 ], LoggerFactory.prototype, "setBeans", null);
37559 LoggerFactory = __decorate([
37560 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('loggerFactory')
37561 ], LoggerFactory);
37562 return LoggerFactory;
37563}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37564
37565var Logger = /** @class */ (function () {
37566 function Logger(name, isLoggingFunc) {
37567 this.name = name;
37568 this.isLoggingFunc = isLoggingFunc;
37569 }
37570 Logger.prototype.isLogging = function () {
37571 return this.isLoggingFunc();
37572 };
37573 Logger.prototype.log = function (message) {
37574 if (this.isLoggingFunc()) {
37575 // tslint:disable-next-line
37576 console.log('AG Grid.' + this.name + ': ' + message);
37577 }
37578 };
37579 return Logger;
37580}());
37581
37582
37583
37584/***/ }),
37585/* 156 */
37586/***/ (function(module, __webpack_exports__, __webpack_require__) {
37587
37588"use strict";
37589__webpack_require__.r(__webpack_exports__);
37590/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return AutoWidthCalculator; });
37591/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37592/* harmony import */ var _headerRendering_header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(114);
37593/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
37594/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
37595/**
37596 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37597 * @version v25.3.0
37598 * @link http://www.ag-grid.com/
37599 * @license MIT
37600 */
37601var __extends = (undefined && undefined.__extends) || (function () {
37602 var extendStatics = function (d, b) {
37603 extendStatics = Object.setPrototypeOf ||
37604 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37605 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37606 return extendStatics(d, b);
37607 };
37608 return function (d, b) {
37609 extendStatics(d, b);
37610 function __() { this.constructor = d; }
37611 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37612 };
37613})();
37614var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37615 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37616 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37617 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;
37618 return c > 3 && r && Object.defineProperty(target, key, r), r;
37619};
37620
37621
37622
37623
37624var AutoWidthCalculator = /** @class */ (function (_super) {
37625 __extends(AutoWidthCalculator, _super);
37626 function AutoWidthCalculator() {
37627 return _super !== null && _super.apply(this, arguments) || this;
37628 }
37629 AutoWidthCalculator.prototype.postConstruct = function () {
37630 var _this = this;
37631 this.controllersService.whenReady(function (p) {
37632 _this.centerRowContainerCon = p.centerRowContainerCon;
37633 });
37634 };
37635 AutoWidthCalculator.prototype.registerHeaderRootComp = function (headerRootComp) {
37636 this.headerRootComp = headerRootComp;
37637 };
37638 // this is the trick: we create a dummy container and clone all the cells
37639 // into the dummy, then check the dummy's width. then destroy the dummy
37640 // as we don't need it any more.
37641 // drawback: only the cells visible on the screen are considered
37642 AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {
37643 var eHeaderCell = this.getHeaderCellForColumn(column);
37644 // cell isn't visible
37645 if (!eHeaderCell) {
37646 return -1;
37647 }
37648 var eDummyContainer = document.createElement('span');
37649 // position fixed, so it isn't restricted to the boundaries of the parent
37650 eDummyContainer.style.position = 'fixed';
37651 // we put the dummy into the body container, so it will inherit all the
37652 // css styles that the real cells are inheriting
37653 var eBodyContainer = this.centerRowContainerCon.getContainerElement();
37654 eBodyContainer.appendChild(eDummyContainer);
37655 // get all the cells that are currently displayed (this only brings back
37656 // rendered cells, rows not rendered due to row visualisation will not be here)
37657 this.putRowCellsIntoDummyContainer(column, eDummyContainer);
37658 if (!skipHeader) {
37659 // we only consider the lowest level cell, not the group cell. in 99% of the time, this
37660 // will be enough. if we consider groups, then it gets too complicated for what it's worth,
37661 // as the groups can span columns and this class only considers one column at a time.
37662 this.cloneItemIntoDummy(eHeaderCell, eDummyContainer);
37663 }
37664 // at this point, all the clones are lined up vertically with natural widths. the dummy
37665 // container will have a width wide enough just to fit the largest.
37666 var dummyContainerWidth = eDummyContainer.offsetWidth;
37667 // we are finished with the dummy container, so get rid of it
37668 eBodyContainer.removeChild(eDummyContainer);
37669 // we add padding as I found sometimes the gui still put '...' after some of the texts. so the
37670 // user can configure the grid to add a few more pixels after the calculated width
37671 var autoSizePadding = this.gridOptionsWrapper.getAutoSizePadding();
37672 return dummyContainerWidth + autoSizePadding;
37673 };
37674 AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {
37675 var comp = null;
37676 // find the rendered header cell
37677 this.headerRootComp.forEachHeaderElement(function (headerElement) {
37678 if (headerElement instanceof _headerRendering_header_headerWrapperComp__WEBPACK_IMPORTED_MODULE_1__["HeaderWrapperComp"]) {
37679 var headerWrapperComp = headerElement;
37680 if (headerWrapperComp.getColumn() === column) {
37681 comp = headerWrapperComp;
37682 }
37683 }
37684 });
37685 return comp ? comp.getGui() : null;
37686 };
37687 AutoWidthCalculator.prototype.putRowCellsIntoDummyContainer = function (column, eDummyContainer) {
37688 var _this = this;
37689 var eCells = this.rowRenderer.getAllCellsForColumn(column);
37690 eCells.forEach(function (eCell) { return _this.cloneItemIntoDummy(eCell, eDummyContainer); });
37691 };
37692 AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {
37693 // make a deep clone of the cell
37694 var eCellClone = eCell.cloneNode(true);
37695 // the original has a fixed width, we remove this to allow the natural width based on content
37696 eCellClone.style.width = '';
37697 // the original has position = absolute, we need to remove this so it's positioned normally
37698 eCellClone.style.position = 'static';
37699 eCellClone.style.left = '';
37700 // we put the cell into a containing div, as otherwise the cells would just line up
37701 // on the same line, standard flow layout, by putting them into divs, they are laid
37702 // out one per line
37703 var eCloneParent = document.createElement('div');
37704 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(eCellClone, 'ag-header-cell')) {
37705 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eCloneParent, 'ag-header');
37706 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eCloneParent, 'ag-header-row');
37707 eCloneParent.style.position = 'static';
37708 }
37709 else {
37710 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eCloneParent, 'ag-row');
37711 }
37712 // table-row, so that each cell is on a row. i also tried display='block', but this
37713 // didn't work in IE
37714 eCloneParent.style.display = 'table-row';
37715 // the twig on the branch, the branch on the tree, the tree in the hole,
37716 // the hole in the bog, the bog in the clone, the clone in the parent,
37717 // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....
37718 eCloneParent.appendChild(eCellClone);
37719 eDummyContainer.appendChild(eCloneParent);
37720 };
37721 __decorate([
37722 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
37723 ], AutoWidthCalculator.prototype, "rowRenderer", void 0);
37724 __decorate([
37725 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
37726 ], AutoWidthCalculator.prototype, "controllersService", void 0);
37727 __decorate([
37728 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
37729 ], AutoWidthCalculator.prototype, "postConstruct", null);
37730 AutoWidthCalculator = __decorate([
37731 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoWidthCalculator')
37732 ], AutoWidthCalculator);
37733 return AutoWidthCalculator;
37734}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
37735
37736
37737
37738/***/ }),
37739/* 157 */
37740/***/ (function(module, __webpack_exports__, __webpack_require__) {
37741
37742"use strict";
37743__webpack_require__.r(__webpack_exports__);
37744/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return HorizontalResizeService; });
37745/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37746/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37747/**
37748 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37749 * @version v25.3.0
37750 * @link http://www.ag-grid.com/
37751 * @license MIT
37752 */
37753var __extends = (undefined && undefined.__extends) || (function () {
37754 var extendStatics = function (d, b) {
37755 extendStatics = Object.setPrototypeOf ||
37756 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37757 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37758 return extendStatics(d, b);
37759 };
37760 return function (d, b) {
37761 extendStatics(d, b);
37762 function __() { this.constructor = d; }
37763 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37764 };
37765})();
37766var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37767 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37768 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37769 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;
37770 return c > 3 && r && Object.defineProperty(target, key, r), r;
37771};
37772
37773
37774var HorizontalResizeService = /** @class */ (function (_super) {
37775 __extends(HorizontalResizeService, _super);
37776 function HorizontalResizeService() {
37777 return _super !== null && _super.apply(this, arguments) || this;
37778 }
37779 HorizontalResizeService.prototype.addResizeBar = function (params) {
37780 var _this = this;
37781 var dragSource = {
37782 dragStartPixels: params.dragStartPixels || 0,
37783 eElement: params.eResizeBar,
37784 onDragStart: this.onDragStart.bind(this, params),
37785 onDragStop: this.onDragStop.bind(this, params),
37786 onDragging: this.onDragging.bind(this, params)
37787 };
37788 this.dragService.addDragSource(dragSource, true);
37789 // we pass remove func back to the caller, so call can tell us when they
37790 // are finished, and then we remove the listener from the drag source
37791 var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };
37792 return finishedWithResizeFunc;
37793 };
37794 HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {
37795 this.dragStartX = mouseEvent.clientX;
37796 this.setResizeIcons();
37797 var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;
37798 params.onResizeStart(shiftKey);
37799 };
37800 HorizontalResizeService.prototype.setResizeIcons = function () {
37801 this.oldBodyCursor = this.eGridDiv.style.cursor;
37802 this.oldUserSelect = this.eGridDiv.style.userSelect;
37803 this.oldWebkitUserSelect = this.eGridDiv.style.webkitUserSelect;
37804 // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'
37805 this.eGridDiv.style.cursor = 'ew-resize';
37806 // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)
37807 this.eGridDiv.style.userSelect = 'none';
37808 this.eGridDiv.style.webkitUserSelect = 'none';
37809 };
37810 HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {
37811 params.onResizeEnd(this.resizeAmount);
37812 this.resetIcons();
37813 };
37814 HorizontalResizeService.prototype.resetIcons = function () {
37815 // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)
37816 this.eGridDiv.style.cursor = this.oldBodyCursor;
37817 this.eGridDiv.style.userSelect = this.oldUserSelect;
37818 this.eGridDiv.style.webkitUserSelect = this.oldWebkitUserSelect;
37819 };
37820 HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {
37821 this.resizeAmount = mouseEvent.clientX - this.dragStartX;
37822 params.onResizing(this.resizeAmount);
37823 };
37824 __decorate([
37825 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragService')
37826 ], HorizontalResizeService.prototype, "dragService", void 0);
37827 __decorate([
37828 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eGridDiv')
37829 ], HorizontalResizeService.prototype, "eGridDiv", void 0);
37830 HorizontalResizeService = __decorate([
37831 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('horizontalResizeService')
37832 ], HorizontalResizeService);
37833 return HorizontalResizeService;
37834}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37835
37836
37837
37838/***/ }),
37839/* 158 */
37840/***/ (function(module, __webpack_exports__, __webpack_require__) {
37841
37842"use strict";
37843__webpack_require__.r(__webpack_exports__);
37844/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return GridComp; });
37845/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37846/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
37847/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67);
37848/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
37849/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
37850/* harmony import */ var _focusController__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(154);
37851/* harmony import */ var _gridCompController__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(159);
37852/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(137);
37853/**
37854 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37855 * @version v25.3.0
37856 * @link http://www.ag-grid.com/
37857 * @license MIT
37858 */
37859var __extends = (undefined && undefined.__extends) || (function () {
37860 var extendStatics = function (d, b) {
37861 extendStatics = Object.setPrototypeOf ||
37862 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37863 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
37864 return extendStatics(d, b);
37865 };
37866 return function (d, b) {
37867 extendStatics(d, b);
37868 function __() { this.constructor = d; }
37869 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37870 };
37871})();
37872var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37873 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37874 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37875 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;
37876 return c > 3 && r && Object.defineProperty(target, key, r), r;
37877};
37878
37879
37880
37881
37882
37883
37884
37885
37886var GridComp = /** @class */ (function (_super) {
37887 __extends(GridComp, _super);
37888 function GridComp(eGridDiv) {
37889 var _this = _super.call(this, undefined, true) || this;
37890 _this.eGridDiv = eGridDiv;
37891 return _this;
37892 }
37893 GridComp.prototype.postConstruct = function () {
37894 var _this = this;
37895 this.logger = this.loggerFactory.create('GridComp');
37896 var view = {
37897 destroyGridUi: function () { return _this.destroyBean(_this); },
37898 setRtlClass: function (cssClass) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(_this.getGui(), cssClass); },
37899 addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(_focusController__WEBPACK_IMPORTED_MODULE_5__["FocusController"].AG_KEYBOARD_FOCUS, addOrRemove); },
37900 forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),
37901 updateLayoutClasses: this.updateLayoutClasses.bind(this),
37902 getFocusableContainers: this.getFocusableContainers.bind(this)
37903 };
37904 this.con = this.createManagedBean(new _gridCompController__WEBPACK_IMPORTED_MODULE_6__["GridCompController"]());
37905 var template = this.createTemplate();
37906 this.setTemplate(template);
37907 this.con.setView(view, this.eGridDiv, this.getGui());
37908 this.insertGridIntoDom();
37909 _super.prototype.postConstruct.call(this);
37910 };
37911 GridComp.prototype.insertGridIntoDom = function () {
37912 var _this = this;
37913 var eGui = this.getGui();
37914 this.eGridDiv.appendChild(eGui);
37915 this.addDestroyFunc(function () {
37916 _this.eGridDiv.removeChild(eGui);
37917 _this.logger.log('Grid removed from DOM');
37918 });
37919 };
37920 GridComp.prototype.updateLayoutClasses = function (params) {
37921 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eRootWrapperBody, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
37922 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eRootWrapperBody, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].NORMAL, params.normal);
37923 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eRootWrapperBody, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].PRINT, params.print);
37924 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
37925 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].NORMAL, params.normal);
37926 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_7__["LayoutCssClasses"].PRINT, params.print);
37927 };
37928 GridComp.prototype.createTemplate = function () {
37929 var dropZones = this.con.showDropZones() ? '<ag-grid-header-drop-zones></ag-grid-header-drop-zones>' : '';
37930 var sideBar = this.con.showSideBar() ? '<ag-side-bar ref="sideBar"></ag-side-bar>' : '';
37931 var statusBar = this.con.showStatusBar() ? '<ag-status-bar ref="statusBar"></ag-status-bar>' : '';
37932 var watermark = this.con.showWatermark() ? '<ag-watermark></ag-watermark>' : '';
37933 var template = /* html */ "<div ref=\"eRootWrapper\" class=\"ag-root-wrapper\">\n " + dropZones + "\n <div class=\"ag-root-wrapper-body\" ref=\"rootWrapperBody\">\n <ag-grid-body ref=\"gridBody\"></ag-grid-body>\n " + sideBar + "\n </div>\n " + statusBar + "\n <ag-pagination></ag-pagination>\n " + watermark + "\n </div>";
37934 return template;
37935 };
37936 GridComp.prototype.getFocusableElement = function () {
37937 return this.eRootWrapperBody;
37938 };
37939 GridComp.prototype.getFocusableContainers = function () {
37940 var focusableContainers = [
37941 this.gridBodyComp.getGui()
37942 ];
37943 if (this.sideBarComp) {
37944 focusableContainers.push(this.sideBarComp.getGui());
37945 }
37946 return focusableContainers.filter(function (el) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["isVisible"])(el); });
37947 };
37948 GridComp.prototype.focusInnerElement = function (fromBottom) {
37949 var focusableContainers = this.getFocusableContainers();
37950 if (fromBottom) {
37951 if (focusableContainers.length > 1) {
37952 return this.focusController.focusInto(Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(focusableContainers));
37953 }
37954 var lastColumn = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(this.columnController.getAllDisplayedColumns());
37955 if (this.focusController.focusGridView(lastColumn, true)) {
37956 return true;
37957 }
37958 }
37959 return this.con.focusGridHeader();
37960 };
37961 GridComp.prototype.onTabKeyDown = function () { };
37962 __decorate([
37963 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
37964 ], GridComp.prototype, "columnController", void 0);
37965 __decorate([
37966 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
37967 ], GridComp.prototype, "loggerFactory", void 0);
37968 __decorate([
37969 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('gridBody')
37970 ], GridComp.prototype, "gridBodyComp", void 0);
37971 __decorate([
37972 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('sideBar')
37973 ], GridComp.prototype, "sideBarComp", void 0);
37974 __decorate([
37975 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('rootWrapperBody')
37976 ], GridComp.prototype, "eRootWrapperBody", void 0);
37977 return GridComp;
37978}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__["ManagedFocusComponent"]));
37979
37980
37981
37982/***/ }),
37983/* 159 */
37984/***/ (function(module, __webpack_exports__, __webpack_require__) {
37985
37986"use strict";
37987__webpack_require__.r(__webpack_exports__);
37988/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCompController", function() { return GridCompController; });
37989/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
37990/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
37991/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
37992/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
37993/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(137);
37994/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24);
37995/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
37996/**
37997 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
37998 * @version v25.3.0
37999 * @link http://www.ag-grid.com/
38000 * @license MIT
38001 */
38002var __extends = (undefined && undefined.__extends) || (function () {
38003 var extendStatics = function (d, b) {
38004 extendStatics = Object.setPrototypeOf ||
38005 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38006 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38007 return extendStatics(d, b);
38008 };
38009 return function (d, b) {
38010 extendStatics(d, b);
38011 function __() { this.constructor = d; }
38012 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38013 };
38014})();
38015var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38016 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38017 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38018 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;
38019 return c > 3 && r && Object.defineProperty(target, key, r), r;
38020};
38021
38022
38023
38024
38025
38026
38027
38028var GridCompController = /** @class */ (function (_super) {
38029 __extends(GridCompController, _super);
38030 function GridCompController() {
38031 return _super.call(this) || this;
38032 }
38033 GridCompController.prototype.postConstruct = function () {
38034 var _this = this;
38035 this.logger = this.loggerFactory.create('GridCompController');
38036 // register with services that need grid core
38037 [
38038 this.gridApi,
38039 this.popupService,
38040 this.focusController,
38041 this.controllersService
38042 ].forEach(function (service) { return service.registerGridCompController(_this); });
38043 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].ClipboardModule)) {
38044 this.clipboardService.registerGridCompController(this);
38045 }
38046 };
38047 GridCompController.prototype.setView = function (view, eGridDiv, eGui) {
38048 var _this = this;
38049 this.view = view;
38050 this.eGridHostDiv = eGridDiv;
38051 this.eGui = eGui;
38052 this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);
38053 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutFeature"](this.view));
38054 // important to set rtl before doLayout, as setting the RTL class impacts the scroll position,
38055 // which doLayout indirectly depends on
38056 this.addRtlSupport();
38057 this.addManagedListener(this, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_KEYBOARD_FOCUS, function () {
38058 _this.view.addOrRemoveKeyboardFocusClass(true);
38059 });
38060 this.addManagedListener(this, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_MOUSE_FOCUS, function () {
38061 _this.view.addOrRemoveKeyboardFocusClass(false);
38062 });
38063 var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));
38064 this.addDestroyFunc(function () { return unsubscribeFromResize(); });
38065 };
38066 GridCompController.prototype.showDropZones = function () {
38067 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule);
38068 };
38069 GridCompController.prototype.showSideBar = function () {
38070 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SideBarModule);
38071 };
38072 GridCompController.prototype.showStatusBar = function () {
38073 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].StatusBarModule);
38074 };
38075 GridCompController.prototype.showWatermark = function () {
38076 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].EnterpriseCoreModule);
38077 ;
38078 };
38079 GridCompController.prototype.onGridSizeChanged = function () {
38080 var event = {
38081 type: _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_GRID_SIZE_CHANGED,
38082 api: this.gridApi,
38083 columnApi: this.columnApi,
38084 clientWidth: this.eGridHostDiv.clientWidth,
38085 clientHeight: this.eGridHostDiv.clientHeight
38086 };
38087 this.eventService.dispatchEvent(event);
38088 };
38089 GridCompController.prototype.addRtlSupport = function () {
38090 var cssClass = this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr';
38091 this.view.setRtlClass(cssClass);
38092 };
38093 GridCompController.prototype.destroyGridUi = function () {
38094 this.view.destroyGridUi();
38095 };
38096 GridCompController.prototype.getGui = function () {
38097 return this.eGui;
38098 };
38099 GridCompController.prototype.focusNextInnerContainer = function (backwards) {
38100 var focusableContainers = this.view.getFocusableContainers();
38101 var idxWithFocus = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["findIndex"])(focusableContainers, function (container) { return container.contains(document.activeElement); });
38102 var nextIdx = idxWithFocus + (backwards ? -1 : 1);
38103 if (nextIdx < 0 || nextIdx >= focusableContainers.length) {
38104 return false;
38105 }
38106 if (nextIdx === 0) {
38107 return this.focusGridHeader();
38108 }
38109 return this.focusController.focusInto(focusableContainers[nextIdx]);
38110 };
38111 GridCompController.prototype.focusGridHeader = function () {
38112 var firstColumn = this.columnController.getAllDisplayedColumns()[0];
38113 if (!firstColumn) {
38114 return false;
38115 }
38116 if (firstColumn.getParent()) {
38117 firstColumn = this.columnController.getColumnGroupAtLevel(firstColumn, 0);
38118 }
38119 this.focusController.focusHeaderPosition({ headerRowIndex: 0, column: firstColumn });
38120 return true;
38121 };
38122 GridCompController.prototype.forceFocusOutOfContainer = function (up) {
38123 if (up === void 0) { up = false; }
38124 this.view.forceFocusOutOfContainer(up);
38125 };
38126 __decorate([
38127 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
38128 ], GridCompController.prototype, "columnApi", void 0);
38129 __decorate([
38130 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
38131 ], GridCompController.prototype, "gridApi", void 0);
38132 __decorate([
38133 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
38134 ], GridCompController.prototype, "popupService", void 0);
38135 __decorate([
38136 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
38137 ], GridCompController.prototype, "focusController", void 0);
38138 __decorate([
38139 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('clipboardService')
38140 ], GridCompController.prototype, "clipboardService", void 0);
38141 __decorate([
38142 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
38143 ], GridCompController.prototype, "loggerFactory", void 0);
38144 __decorate([
38145 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
38146 ], GridCompController.prototype, "resizeObserverService", void 0);
38147 __decorate([
38148 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
38149 ], GridCompController.prototype, "columnController", void 0);
38150 __decorate([
38151 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
38152 ], GridCompController.prototype, "controllersService", void 0);
38153 __decorate([
38154 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
38155 ], GridCompController.prototype, "mouseEventService", void 0);
38156 __decorate([
38157 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
38158 ], GridCompController.prototype, "postConstruct", null);
38159 return GridCompController;
38160}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38161
38162
38163
38164/***/ }),
38165/* 160 */
38166/***/ (function(module, __webpack_exports__, __webpack_require__) {
38167
38168"use strict";
38169__webpack_require__.r(__webpack_exports__);
38170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return StandardMenuFactory; });
38171/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38172/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38173/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
38174/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60);
38175/**
38176 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38177 * @version v25.3.0
38178 * @link http://www.ag-grid.com/
38179 * @license MIT
38180 */
38181var __extends = (undefined && undefined.__extends) || (function () {
38182 var extendStatics = function (d, b) {
38183 extendStatics = Object.setPrototypeOf ||
38184 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38185 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38186 return extendStatics(d, b);
38187 };
38188 return function (d, b) {
38189 extendStatics(d, b);
38190 function __() { this.constructor = d; }
38191 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38192 };
38193})();
38194var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38195 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38196 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38197 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;
38198 return c > 3 && r && Object.defineProperty(target, key, r), r;
38199};
38200
38201
38202
38203
38204var StandardMenuFactory = /** @class */ (function (_super) {
38205 __extends(StandardMenuFactory, _super);
38206 function StandardMenuFactory() {
38207 return _super !== null && _super.apply(this, arguments) || this;
38208 }
38209 StandardMenuFactory.prototype.registerGridComp = function (gridBodyComp) {
38210 this.gridBodyComp = gridBodyComp;
38211 };
38212 StandardMenuFactory.prototype.hideActiveMenu = function () {
38213 if (this.hidePopup) {
38214 this.hidePopup();
38215 }
38216 };
38217 StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {
38218 var _this = this;
38219 this.showPopup(column, function (eMenu) {
38220 _this.popupService.positionPopupUnderMouseEvent({
38221 column: column,
38222 type: 'columnMenu',
38223 mouseEvent: mouseEvent,
38224 ePopup: eMenu
38225 });
38226 }, mouseEvent.target);
38227 };
38228 StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource) {
38229 var _this = this;
38230 this.showPopup(column, function (eMenu) {
38231 _this.popupService.positionPopupUnderComponent({
38232 type: 'columnMenu',
38233 eventSource: eventSource,
38234 ePopup: eMenu,
38235 keepWithinBounds: true,
38236 column: column
38237 });
38238 }, eventSource);
38239 };
38240 StandardMenuFactory.prototype.showPopup = function (column, positionCallback, eventSource) {
38241 var _this = this;
38242 var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');
38243 var eMenu = document.createElement('div');
38244 eMenu.setAttribute('role', 'presentation');
38245 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eMenu, 'ag-menu');
38246 this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });
38247 filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });
38248 var hidePopup;
38249 var anchorToElement = eventSource || this.gridBodyComp.getGui();
38250 var closedCallback = function (e) {
38251 column.setMenuVisible(false, 'contextMenu');
38252 var isKeyboardEvent = e instanceof KeyboardEvent;
38253 if (_this.tabListener) {
38254 _this.tabListener = _this.tabListener();
38255 }
38256 if (isKeyboardEvent && eventSource && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isVisible"])(eventSource)) {
38257 var focusableEl = _this.focusController.findTabbableParent(eventSource);
38258 if (focusableEl) {
38259 focusableEl.focus();
38260 }
38261 }
38262 };
38263 var addPopupRes = this.popupService.addPopup({
38264 modal: true,
38265 eChild: eMenu,
38266 closeOnEsc: true,
38267 closedCallback: closedCallback,
38268 positionCallback: function () { return positionCallback(eMenu); },
38269 anchorToElement: anchorToElement
38270 });
38271 if (addPopupRes) {
38272 this.hidePopup = hidePopup = addPopupRes.hideFunc;
38273 }
38274 filterWrapper.filterPromise.then(function (filter) {
38275 // need to make sure the filter is present before positioning, as only
38276 // after filter it is visible can we find out what the width of it is
38277 positionCallback(eMenu);
38278 if (filter.afterGuiAttached) {
38279 filter.afterGuiAttached({ container: 'columnMenu', hidePopup: hidePopup });
38280 }
38281 });
38282 column.setMenuVisible(true, 'contextMenu');
38283 };
38284 StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {
38285 if (e.keyCode !== _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].TAB ||
38286 e.defaultPrevented ||
38287 this.focusController.findNextFocusableElement(menu, false, e.shiftKey)) {
38288 return;
38289 }
38290 e.preventDefault();
38291 this.focusController.focusInto(menu, e.shiftKey);
38292 };
38293 StandardMenuFactory.prototype.isMenuEnabled = function (column) {
38294 // for standard, we show menu if filter is enabled, and the menu is not suppressed
38295 return column.isFilterAllowed();
38296 };
38297 __decorate([
38298 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
38299 ], StandardMenuFactory.prototype, "filterManager", void 0);
38300 __decorate([
38301 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
38302 ], StandardMenuFactory.prototype, "popupService", void 0);
38303 __decorate([
38304 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
38305 ], StandardMenuFactory.prototype, "focusController", void 0);
38306 StandardMenuFactory = __decorate([
38307 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('menuFactory')
38308 ], StandardMenuFactory);
38309 return StandardMenuFactory;
38310}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38311
38312
38313
38314/***/ }),
38315/* 161 */
38316/***/ (function(module, __webpack_exports__, __webpack_require__) {
38317
38318"use strict";
38319__webpack_require__.r(__webpack_exports__);
38320/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return DragService; });
38321/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38322/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
38323/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
38324/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
38325/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
38326/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
38327/* harmony import */ var _utils_mouse__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(52);
38328/**
38329 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38330 * @version v25.3.0
38331 * @link http://www.ag-grid.com/
38332 * @license MIT
38333 */
38334var __extends = (undefined && undefined.__extends) || (function () {
38335 var extendStatics = function (d, b) {
38336 extendStatics = Object.setPrototypeOf ||
38337 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38338 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38339 return extendStatics(d, b);
38340 };
38341 return function (d, b) {
38342 extendStatics(d, b);
38343 function __() { this.constructor = d; }
38344 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38345 };
38346})();
38347var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38348 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38349 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38350 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;
38351 return c > 3 && r && Object.defineProperty(target, key, r), r;
38352};
38353
38354
38355
38356
38357
38358
38359
38360/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,
38361 * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */
38362var DragService = /** @class */ (function (_super) {
38363 __extends(DragService, _super);
38364 function DragService() {
38365 var _this = _super !== null && _super.apply(this, arguments) || this;
38366 _this.dragEndFunctions = [];
38367 _this.dragSources = [];
38368 return _this;
38369 }
38370 DragService.prototype.init = function () {
38371 this.logger = this.loggerFactory.create('DragService');
38372 };
38373 DragService.prototype.removeAllListeners = function () {
38374 this.dragSources.forEach(this.removeListener.bind(this));
38375 this.dragSources.length = 0;
38376 };
38377 DragService.prototype.removeListener = function (dragSourceAndListener) {
38378 var element = dragSourceAndListener.dragSource.eElement;
38379 var mouseDownListener = dragSourceAndListener.mouseDownListener;
38380 element.removeEventListener('mousedown', mouseDownListener);
38381 // remove touch listener only if it exists
38382 if (dragSourceAndListener.touchEnabled) {
38383 var touchStartListener = dragSourceAndListener.touchStartListener;
38384 element.removeEventListener('touchstart', touchStartListener, { passive: true });
38385 }
38386 };
38387 DragService.prototype.removeDragSource = function (params) {
38388 var dragSourceAndListener = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["find"])(this.dragSources, function (item) { return item.dragSource === params; });
38389 if (!dragSourceAndListener) {
38390 return;
38391 }
38392 this.removeListener(dragSourceAndListener);
38393 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["removeFromArray"])(this.dragSources, dragSourceAndListener);
38394 };
38395 DragService.prototype.setNoSelectToBody = function (noSelect) {
38396 var eDocument = this.gridOptionsWrapper.getDocument();
38397 var eBody = eDocument.querySelector('body');
38398 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(eBody)) {
38399 // when we drag the mouse in AG Grid, this class gets added / removed from the body, so that
38400 // the mouse isn't selecting text when dragging.
38401 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addOrRemoveCssClass"])(eBody, 'ag-unselectable', noSelect);
38402 }
38403 };
38404 DragService.prototype.isDragging = function () {
38405 return this.dragging;
38406 };
38407 DragService.prototype.addDragSource = function (params, includeTouch) {
38408 if (includeTouch === void 0) { includeTouch = false; }
38409 var mouseListener = this.onMouseDown.bind(this, params);
38410 params.eElement.addEventListener('mousedown', mouseListener);
38411 var touchListener = null;
38412 var suppressTouch = this.gridOptionsWrapper.isSuppressTouch();
38413 if (includeTouch && !suppressTouch) {
38414 touchListener = this.onTouchStart.bind(this, params);
38415 params.eElement.addEventListener('touchstart', touchListener, { passive: true });
38416 }
38417 this.dragSources.push({
38418 dragSource: params,
38419 mouseDownListener: mouseListener,
38420 touchStartListener: touchListener,
38421 touchEnabled: includeTouch
38422 });
38423 };
38424 // gets called whenever mouse down on any drag source
38425 DragService.prototype.onTouchStart = function (params, touchEvent) {
38426 var _this = this;
38427 this.currentDragParams = params;
38428 this.dragging = false;
38429 var touch = touchEvent.touches[0];
38430 this.touchLastTime = touch;
38431 this.touchStart = touch;
38432 var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };
38433 var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };
38434 var documentTouchMove = function (e) { if (e.cancelable) {
38435 e.preventDefault();
38436 } };
38437 var target = params.eElement;
38438 var events = [
38439 // Prevents the page document from moving while we are dragging items around.
38440 // preventDefault needs to be called in the touchmove listener and never inside the
38441 // touchstart, because using touchstart causes the click event to be cancelled on touch devices.
38442 { target: document, type: 'touchmove', listener: documentTouchMove, options: { passive: false } },
38443 { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },
38444 { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },
38445 { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }
38446 ];
38447 // temporally add these listeners, for the duration of the drag
38448 this.addTemporaryEvents(events);
38449 // see if we want to start dragging straight away
38450 if (params.dragStartPixels === 0) {
38451 this.onCommonMove(touch, this.touchStart, params.eElement);
38452 }
38453 };
38454 // gets called whenever mouse down on any drag source
38455 DragService.prototype.onMouseDown = function (params, mouseEvent) {
38456 var _this = this;
38457 var e = mouseEvent;
38458 if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {
38459 return;
38460 }
38461 // if there are two elements with parent / child relationship, and both are draggable,
38462 // when we drag the child, we should NOT drag the parent. an example of this is row moving
38463 // and range selection - row moving should get preference when use drags the rowDrag component.
38464 if (e._alreadyProcessedByDragService) {
38465 return;
38466 }
38467 e._alreadyProcessedByDragService = true;
38468 // only interested in left button clicks
38469 if (mouseEvent.button !== 0) {
38470 return;
38471 }
38472 this.currentDragParams = params;
38473 this.dragging = false;
38474 this.mouseStartEvent = mouseEvent;
38475 var eDocument = this.gridOptionsWrapper.getDocument();
38476 this.setNoSelectToBody(true);
38477 var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };
38478 var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };
38479 var contextEvent = function (event) { return event.preventDefault(); };
38480 var target = eDocument;
38481 var events = [
38482 { target: target, type: 'mousemove', listener: mouseMoveEvent },
38483 { target: target, type: 'mouseup', listener: mouseUpEvent },
38484 { target: target, type: 'contextmenu', listener: contextEvent }
38485 ];
38486 // temporally add these listeners, for the duration of the drag
38487 this.addTemporaryEvents(events);
38488 //see if we want to start dragging straight away
38489 if (params.dragStartPixels === 0) {
38490 this.onMouseMove(mouseEvent, params.eElement);
38491 }
38492 };
38493 DragService.prototype.addTemporaryEvents = function (events) {
38494 events.forEach(function (currentEvent) {
38495 var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;
38496 target.addEventListener(type, listener, options);
38497 });
38498 this.dragEndFunctions.push(function () {
38499 events.forEach(function (currentEvent) {
38500 var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;
38501 target.removeEventListener(type, listener, options);
38502 });
38503 });
38504 };
38505 // returns true if the event is close to the original event by X pixels either vertically or horizontally.
38506 // we only start dragging after X pixels so this allows us to know if we should start dragging yet.
38507 DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {
38508 // by default, we wait 4 pixels before starting the drag
38509 var dragStartPixels = this.currentDragParams.dragStartPixels;
38510 var requiredPixelDiff = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(dragStartPixels) ? dragStartPixels : 4;
38511 return Object(_utils_mouse__WEBPACK_IMPORTED_MODULE_6__["areEventsNear"])(currentEvent, startEvent, requiredPixelDiff);
38512 };
38513 DragService.prototype.getFirstActiveTouch = function (touchList) {
38514 for (var i = 0; i < touchList.length; i++) {
38515 if (touchList[i].identifier === this.touchStart.identifier) {
38516 return touchList[i];
38517 }
38518 }
38519 return null;
38520 };
38521 DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {
38522 if (!this.dragging) {
38523 // if mouse hasn't travelled from the start position enough, do nothing
38524 if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {
38525 return;
38526 }
38527 this.dragging = true;
38528 var event_1 = {
38529 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED,
38530 api: this.gridApi,
38531 columnApi: this.columnApi,
38532 target: el
38533 };
38534 this.eventService.dispatchEvent(event_1);
38535 this.currentDragParams.onDragStart(startEvent);
38536 // we need ONE drag action at the startEvent, so that we are guaranteed the drop target
38537 // at the start gets notified. this is because the drag can start outside of the element
38538 // that started it, as the mouse is allowed drag away from the mouse down before it's
38539 // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then
38540 // it would be possible to click a column by the edge, then drag outside of the drop zone
38541 // in less than 4 pixels and the drag officially starts outside of the header but the header
38542 // wouldn't be notified of the dragging.
38543 this.currentDragParams.onDragging(startEvent);
38544 }
38545 this.currentDragParams.onDragging(currentEvent);
38546 };
38547 DragService.prototype.onTouchMove = function (touchEvent, el) {
38548 var touch = this.getFirstActiveTouch(touchEvent.touches);
38549 if (!touch) {
38550 return;
38551 }
38552 // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');
38553 this.onCommonMove(touch, this.touchStart, el);
38554 };
38555 // only gets called after a mouse down - as this is only added after mouseDown
38556 // and is removed when mouseUp happens
38557 DragService.prototype.onMouseMove = function (mouseEvent, el) {
38558 this.onCommonMove(mouseEvent, this.mouseStartEvent, el);
38559 };
38560 DragService.prototype.onTouchUp = function (touchEvent, el) {
38561 var touch = this.getFirstActiveTouch(touchEvent.changedTouches);
38562 // i haven't worked this out yet, but there is no matching touch
38563 // when we get the touch up event. to get around this, we swap in
38564 // the last touch. this is a hack to 'get it working' while we
38565 // figure out what's going on, why we are not getting a touch in
38566 // current event.
38567 if (!touch) {
38568 touch = this.touchLastTime;
38569 }
38570 // if mouse was left up before we started to move, then this is a tap.
38571 // we check this before onUpCommon as onUpCommon resets the dragging
38572 // let tap = !this.dragging;
38573 // let tapTarget = this.currentDragParams.eElement;
38574 this.onUpCommon(touch, el);
38575 // if tap, tell user
38576 // console.log(`${Math.random()} tap = ${tap}`);
38577 // if (tap) {
38578 // tapTarget.click();
38579 // }
38580 };
38581 DragService.prototype.onMouseUp = function (mouseEvent, el) {
38582 this.onUpCommon(mouseEvent, el);
38583 };
38584 DragService.prototype.onUpCommon = function (eventOrTouch, el) {
38585 if (this.dragging) {
38586 this.dragging = false;
38587 this.currentDragParams.onDragStop(eventOrTouch);
38588 var event_2 = {
38589 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STOPPED,
38590 api: this.gridApi,
38591 columnApi: this.columnApi,
38592 target: el
38593 };
38594 this.eventService.dispatchEvent(event_2);
38595 }
38596 this.setNoSelectToBody(false);
38597 this.mouseStartEvent = null;
38598 this.touchStart = null;
38599 this.touchLastTime = null;
38600 this.currentDragParams = null;
38601 this.dragEndFunctions.forEach(function (func) { return func(); });
38602 this.dragEndFunctions.length = 0;
38603 };
38604 __decorate([
38605 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
38606 ], DragService.prototype, "loggerFactory", void 0);
38607 __decorate([
38608 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
38609 ], DragService.prototype, "columnApi", void 0);
38610 __decorate([
38611 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
38612 ], DragService.prototype, "gridApi", void 0);
38613 __decorate([
38614 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
38615 ], DragService.prototype, "init", null);
38616 __decorate([
38617 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
38618 ], DragService.prototype, "removeAllListeners", null);
38619 DragService = __decorate([
38620 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('dragService')
38621 ], DragService);
38622 return DragService;
38623}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
38624
38625
38626
38627/***/ }),
38628/* 162 */
38629/***/ (function(module, __webpack_exports__, __webpack_require__) {
38630
38631"use strict";
38632__webpack_require__.r(__webpack_exports__);
38633/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return SortController; });
38634/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38635/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38636/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
38637/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
38638/**
38639 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38640 * @version v25.3.0
38641 * @link http://www.ag-grid.com/
38642 * @license MIT
38643 */
38644var __extends = (undefined && undefined.__extends) || (function () {
38645 var extendStatics = function (d, b) {
38646 extendStatics = Object.setPrototypeOf ||
38647 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38648 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38649 return extendStatics(d, b);
38650 };
38651 return function (d, b) {
38652 extendStatics(d, b);
38653 function __() { this.constructor = d; }
38654 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38655 };
38656})();
38657var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38658 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38659 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38660 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;
38661 return c > 3 && r && Object.defineProperty(target, key, r), r;
38662};
38663
38664
38665
38666
38667var SortController = /** @class */ (function (_super) {
38668 __extends(SortController, _super);
38669 function SortController() {
38670 return _super !== null && _super.apply(this, arguments) || this;
38671 }
38672 SortController_1 = SortController;
38673 SortController.prototype.progressSort = function (column, multiSort, source) {
38674 if (source === void 0) { source = "api"; }
38675 var nextDirection = this.getNextSortDirection(column);
38676 this.setSortForColumn(column, nextDirection, multiSort, source);
38677 };
38678 SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {
38679 if (source === void 0) { source = "api"; }
38680 // auto correct - if sort not legal value, then set it to 'no sort' (which is null)
38681 if (sort !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC && sort !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC) {
38682 sort = null;
38683 }
38684 // update sort on current col
38685 column.setSort(sort, source);
38686 var doingMultiSort = multiSort && !this.gridOptionsWrapper.isSuppressMultiSort();
38687 // clear sort on all columns except this one, and update the icons
38688 if (!doingMultiSort) {
38689 this.clearSortBarThisColumn(column, source);
38690 }
38691 // sortIndex used for knowing order of cols when multi-col sort
38692 this.updateSortIndex(column);
38693 this.dispatchSortChangedEvents();
38694 };
38695 SortController.prototype.updateSortIndex = function (lastColToChange) {
38696 // update sortIndex on all sorting cols
38697 var allSortedCols = this.getColumnsWithSortingOrdered();
38698 var sortIndex = 0;
38699 allSortedCols.forEach(function (col) {
38700 if (col !== lastColToChange) {
38701 col.setSortIndex(sortIndex);
38702 sortIndex++;
38703 }
38704 });
38705 // last col to change always gets the last sort index, it's added to the end
38706 if (lastColToChange.getSort()) {
38707 lastColToChange.setSortIndex(sortIndex);
38708 }
38709 // clear sort index on all cols not sorting
38710 var allCols = this.columnController.getPrimaryAndSecondaryAndAutoColumns();
38711 allCols.filter(function (col) { return col.getSort() == null; }).forEach(function (col) { return col.setSortIndex(); });
38712 };
38713 // gets called by API, so if data changes, use can call this, which will end up
38714 // working out the sort order again of the rows.
38715 SortController.prototype.onSortChanged = function () {
38716 this.dispatchSortChangedEvents();
38717 };
38718 SortController.prototype.isSortActive = function () {
38719 // pull out all the columns that have sorting set
38720 var allCols = this.columnController.getPrimaryAndSecondaryAndAutoColumns();
38721 var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });
38722 return sortedCols && sortedCols.length > 0;
38723 };
38724 SortController.prototype.dispatchSortChangedEvents = function () {
38725 var event = {
38726 type: _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SORT_CHANGED,
38727 api: this.gridApi,
38728 columnApi: this.columnApi
38729 };
38730 this.eventService.dispatchEvent(event);
38731 };
38732 SortController.prototype.clearSortBarThisColumn = function (columnToSkip, source) {
38733 this.columnController.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {
38734 // Do not clear if either holding shift, or if column in question was clicked
38735 if (columnToClear !== columnToSkip) {
38736 // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise
38737 // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.
38738 columnToClear.setSort(undefined, source);
38739 }
38740 });
38741 };
38742 SortController.prototype.getNextSortDirection = function (column) {
38743 var sortingOrder;
38744 if (column.getColDef().sortingOrder) {
38745 sortingOrder = column.getColDef().sortingOrder;
38746 }
38747 else if (this.gridOptionsWrapper.getSortingOrder()) {
38748 sortingOrder = this.gridOptionsWrapper.getSortingOrder();
38749 }
38750 else {
38751 sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;
38752 }
38753 if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {
38754 console.warn("ag-grid: sortingOrder must be an array with at least one element, currently it's " + sortingOrder);
38755 return null;
38756 }
38757 var currentIndex = sortingOrder.indexOf(column.getSort());
38758 var notInArray = currentIndex < 0;
38759 var lastItemInArray = currentIndex == sortingOrder.length - 1;
38760 var result;
38761 if (notInArray || lastItemInArray) {
38762 result = sortingOrder[0];
38763 }
38764 else {
38765 result = sortingOrder[currentIndex + 1];
38766 }
38767 // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid
38768 if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {
38769 console.warn('ag-grid: invalid sort type ' + result);
38770 return null;
38771 }
38772 return result;
38773 };
38774 SortController.prototype.getColumnsWithSortingOrdered = function () {
38775 // pull out all the columns that have sorting set
38776 var allColumnsIncludingAuto = this.columnController.getPrimaryAndSecondaryAndAutoColumns();
38777 var columnsWithSorting = allColumnsIncludingAuto.filter(function (column) { return !!column.getSort(); });
38778 // when both cols are missing sortIndex, we use the position of the col in all cols list.
38779 // this means if colDefs only have sort, but no sortIndex, we deterministically pick which
38780 // cols is sorted by first.
38781 var allColsIndexes = {};
38782 allColumnsIncludingAuto.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });
38783 // put the columns in order of which one got sorted first
38784 columnsWithSorting.sort(function (a, b) {
38785 var iA = a.getSortIndex();
38786 var iB = b.getSortIndex();
38787 if (iA != null && iB != null) {
38788 return iA - iB; // both present, normal comparison
38789 }
38790 else if (iA == null && iB == null) {
38791 // both missing, compare using column positions
38792 var posA = allColsIndexes[a.getId()];
38793 var posB = allColsIndexes[b.getId()];
38794 return posA > posB ? 1 : -1;
38795 }
38796 else if (iB == null) {
38797 return -1; // iB missing
38798 }
38799 else {
38800 return 1; // iA missing
38801 }
38802 });
38803 return columnsWithSorting;
38804 };
38805 // used by server side row models, to sent sort to server
38806 SortController.prototype.getSortModel = function () {
38807 return this.getColumnsWithSortingOrdered().map(function (column) { return ({
38808 sort: column.getSort(),
38809 colId: column.getId()
38810 }); });
38811 };
38812 SortController.prototype.getSortOptions = function () {
38813 return this.getColumnsWithSortingOrdered().map(function (column) { return ({
38814 sort: column.getSort(),
38815 column: column
38816 }); });
38817 };
38818 var SortController_1;
38819 SortController.DEFAULT_SORTING_ORDER = [_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC, _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC, null];
38820 __decorate([
38821 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
38822 ], SortController.prototype, "columnController", void 0);
38823 __decorate([
38824 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
38825 ], SortController.prototype, "columnApi", void 0);
38826 __decorate([
38827 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
38828 ], SortController.prototype, "gridApi", void 0);
38829 SortController = SortController_1 = __decorate([
38830 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortController')
38831 ], SortController);
38832 return SortController;
38833}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38834
38835
38836
38837/***/ }),
38838/* 163 */
38839/***/ (function(module, __webpack_exports__, __webpack_require__) {
38840
38841"use strict";
38842__webpack_require__.r(__webpack_exports__);
38843/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return MouseEventService; });
38844/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38845/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
38846/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
38847/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
38848/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21);
38849/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
38850/**
38851 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38852 * @version v25.3.0
38853 * @link http://www.ag-grid.com/
38854 * @license MIT
38855 */
38856var __extends = (undefined && undefined.__extends) || (function () {
38857 var extendStatics = function (d, b) {
38858 extendStatics = Object.setPrototypeOf ||
38859 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38860 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38861 return extendStatics(d, b);
38862 };
38863 return function (d, b) {
38864 extendStatics(d, b);
38865 function __() { this.constructor = d; }
38866 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38867 };
38868})();
38869var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38870 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38871 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38872 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;
38873 return c > 3 && r && Object.defineProperty(target, key, r), r;
38874};
38875
38876
38877
38878
38879
38880
38881
38882var MouseEventService = /** @class */ (function (_super) {
38883 __extends(MouseEventService, _super);
38884 function MouseEventService() {
38885 var _this = _super !== null && _super.apply(this, arguments) || this;
38886 _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();
38887 return _this;
38888 }
38889 MouseEventService_1 = MouseEventService;
38890 // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,
38891 // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic
38892 // for where this is used.
38893 MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {
38894 eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;
38895 };
38896 MouseEventService.prototype.getRenderedCellForEvent = function (event) {
38897 return Object(_utils_event__WEBPACK_IMPORTED_MODULE_4__["getComponentForEvent"])(this.gridOptionsWrapper, event, 'cellComp');
38898 };
38899 // walks the path of the event, and returns true if this grid is the first one that it finds. if doing
38900 // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste
38901 // getting executed on many grids at the same time.
38902 MouseEventService.prototype.isEventFromThisGrid = function (event) {
38903 var res = this.isElementInThisGrid(event.target);
38904 return res;
38905 };
38906 MouseEventService.prototype.isElementInThisGrid = function (element) {
38907 var pointer = element;
38908 while (pointer) {
38909 var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];
38910 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(instanceId)) {
38911 var eventFromThisGrid = instanceId === this.gridInstanceId;
38912 return eventFromThisGrid;
38913 }
38914 pointer = pointer.parentElement;
38915 }
38916 return false;
38917 };
38918 MouseEventService.prototype.getCellPositionForEvent = function (event) {
38919 var cellComp = this.getRenderedCellForEvent(event);
38920 return cellComp ? cellComp.getCellPosition() : null;
38921 };
38922 MouseEventService.prototype.getNormalisedPosition = function (event) {
38923 var gridPanelHasScrolls = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].DOM_LAYOUT_NORMAL;
38924 var e = event;
38925 var x;
38926 var y;
38927 if (e.clientX != null || e.clientY != null) {
38928 x = e.clientX;
38929 y = e.clientY;
38930 }
38931 else {
38932 x = e.x;
38933 y = e.y;
38934 }
38935 if (gridPanelHasScrolls) {
38936 var gridBodyCon = this.controllersService.getGridBodyController();
38937 var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();
38938 var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();
38939 x += hRange.left;
38940 y += vRange.top;
38941 }
38942 return { x: x, y: y };
38943 };
38944 var MouseEventService_1;
38945 MouseEventService.gridInstanceSequence = new _utils__WEBPACK_IMPORTED_MODULE_1__["NumberSequence"]();
38946 MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';
38947 __decorate([
38948 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
38949 ], MouseEventService.prototype, "controllersService", void 0);
38950 MouseEventService = MouseEventService_1 = __decorate([
38951 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('mouseEventService')
38952 ], MouseEventService);
38953 return MouseEventService;
38954}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
38955
38956
38957
38958/***/ }),
38959/* 164 */
38960/***/ (function(module, __webpack_exports__, __webpack_require__) {
38961
38962"use strict";
38963__webpack_require__.r(__webpack_exports__);
38964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return CellNavigationService; });
38965/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
38966/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
38967/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
38968/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
38969/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
38970/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
38971/**
38972 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
38973 * @version v25.3.0
38974 * @link http://www.ag-grid.com/
38975 * @license MIT
38976 */
38977var __extends = (undefined && undefined.__extends) || (function () {
38978 var extendStatics = function (d, b) {
38979 extendStatics = Object.setPrototypeOf ||
38980 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38981 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
38982 return extendStatics(d, b);
38983 };
38984 return function (d, b) {
38985 extendStatics(d, b);
38986 function __() { this.constructor = d; }
38987 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38988 };
38989})();
38990var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38991 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38992 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38993 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;
38994 return c > 3 && r && Object.defineProperty(target, key, r), r;
38995};
38996
38997
38998
38999
39000
39001
39002var CellNavigationService = /** @class */ (function (_super) {
39003 __extends(CellNavigationService, _super);
39004 function CellNavigationService() {
39005 return _super !== null && _super.apply(this, arguments) || this;
39006 }
39007 // returns null if no cell to focus on, ie at the end of the grid
39008 CellNavigationService.prototype.getNextCellToFocus = function (key, lastCellToFocus) {
39009 // starting with the provided cell, we keep moving until we find a cell we can
39010 // focus on.
39011 var pointer = lastCellToFocus;
39012 var finished = false;
39013 // finished will be true when either:
39014 // a) cell found that we can focus on
39015 // b) run out of cells (ie the method returns null)
39016 while (!finished) {
39017 switch (key) {
39018 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP:
39019 pointer = this.getCellAbove(pointer);
39020 break;
39021 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].DOWN:
39022 pointer = this.getCellBelow(pointer);
39023 break;
39024 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT:
39025 if (this.gridOptionsWrapper.isEnableRtl()) {
39026 pointer = this.getCellToLeft(pointer);
39027 }
39028 else {
39029 pointer = this.getCellToRight(pointer);
39030 }
39031 break;
39032 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].LEFT:
39033 if (this.gridOptionsWrapper.isEnableRtl()) {
39034 pointer = this.getCellToRight(pointer);
39035 }
39036 else {
39037 pointer = this.getCellToLeft(pointer);
39038 }
39039 break;
39040 default:
39041 pointer = null;
39042 console.warn('AG Grid: unknown key for navigation ' + key);
39043 break;
39044 }
39045 if (pointer) {
39046 finished = this.isCellGoodToFocusOn(pointer);
39047 }
39048 else {
39049 finished = true;
39050 }
39051 }
39052 return pointer;
39053 };
39054 CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {
39055 var column = gridCell.column;
39056 var rowNode;
39057 switch (gridCell.rowPinned) {
39058 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
39059 rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);
39060 break;
39061 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
39062 rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);
39063 break;
39064 default:
39065 rowNode = this.rowModel.getRow(gridCell.rowIndex);
39066 break;
39067 }
39068 if (!rowNode) {
39069 return false;
39070 }
39071 var suppressNavigable = column.isSuppressNavigable(rowNode);
39072 return !suppressNavigable;
39073 };
39074 CellNavigationService.prototype.getCellToLeft = function (lastCell) {
39075 if (!lastCell) {
39076 return null;
39077 }
39078 var colToLeft = this.columnController.getDisplayedColBefore(lastCell.column);
39079 if (!colToLeft) {
39080 return null;
39081 }
39082 return {
39083 rowIndex: lastCell.rowIndex,
39084 column: colToLeft,
39085 rowPinned: lastCell.rowPinned
39086 };
39087 };
39088 CellNavigationService.prototype.getCellToRight = function (lastCell) {
39089 if (!lastCell) {
39090 return null;
39091 }
39092 var colToRight = this.columnController.getDisplayedColAfter(lastCell.column);
39093 // if already on right, do nothing
39094 if (!colToRight) {
39095 return null;
39096 }
39097 return {
39098 rowIndex: lastCell.rowIndex,
39099 column: colToRight,
39100 rowPinned: lastCell.rowPinned
39101 };
39102 };
39103 CellNavigationService.prototype.getRowBelow = function (rowPosition) {
39104 // if already on top row, do nothing
39105 var index = rowPosition.rowIndex;
39106 var pinned = rowPosition.rowPinned;
39107 if (this.isLastRowInContainer(rowPosition)) {
39108 switch (pinned) {
39109 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
39110 // never any rows after pinned bottom
39111 return null;
39112 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
39113 // if on last row of pinned top, then next row is main body (if rows exist),
39114 // otherwise it's the pinned bottom
39115 if (this.rowModel.isRowsToRender()) {
39116 return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };
39117 }
39118 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM)) {
39119 return { rowIndex: 0, rowPinned: _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM };
39120 }
39121 return null;
39122 default:
39123 // if in the main body, then try pinned bottom, otherwise return nothing
39124 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM)) {
39125 return { rowIndex: 0, rowPinned: _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM };
39126 }
39127 return null;
39128 }
39129 }
39130 return { rowIndex: index + 1, rowPinned: pinned };
39131 };
39132 CellNavigationService.prototype.getCellBelow = function (lastCell) {
39133 if (!lastCell) {
39134 return null;
39135 }
39136 var rowBelow = this.getRowBelow(lastCell);
39137 if (rowBelow) {
39138 return {
39139 rowIndex: rowBelow.rowIndex,
39140 column: lastCell.column,
39141 rowPinned: rowBelow.rowPinned
39142 };
39143 }
39144 return null;
39145 };
39146 CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {
39147 var pinned = rowPosition.rowPinned;
39148 var index = rowPosition.rowIndex;
39149 if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP) {
39150 var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;
39151 return lastTopIndex <= index;
39152 }
39153 if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM) {
39154 var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;
39155 return lastBottomIndex <= index;
39156 }
39157 var lastBodyIndex = this.paginationProxy.getPageLastRow();
39158 return lastBodyIndex <= index;
39159 };
39160 CellNavigationService.prototype.getRowAbove = function (rowPosition) {
39161 // if already on top row, do nothing
39162 var index = rowPosition.rowIndex;
39163 var pinned = rowPosition.rowPinned;
39164 var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();
39165 // if already on top row, do nothing
39166 if (isFirstRow) {
39167 if (pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP) {
39168 return null;
39169 }
39170 if (!pinned) {
39171 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP)) {
39172 return this.getLastFloatingTopRow();
39173 }
39174 return null;
39175 }
39176 // last floating bottom
39177 if (this.rowModel.isRowsToRender()) {
39178 return this.getLastBodyCell();
39179 }
39180 if (this.pinnedRowModel.isRowsToRender(_constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP)) {
39181 return this.getLastFloatingTopRow();
39182 }
39183 return null;
39184 }
39185 return { rowIndex: index - 1, rowPinned: pinned };
39186 };
39187 CellNavigationService.prototype.getCellAbove = function (lastCell) {
39188 if (!lastCell) {
39189 return null;
39190 }
39191 var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });
39192 if (rowAbove) {
39193 return {
39194 rowIndex: rowAbove.rowIndex,
39195 column: lastCell.column,
39196 rowPinned: rowAbove.rowPinned
39197 };
39198 }
39199 return null;
39200 };
39201 CellNavigationService.prototype.getLastBodyCell = function () {
39202 var lastBodyRow = this.paginationProxy.getPageLastRow();
39203 return { rowIndex: lastBodyRow, rowPinned: null };
39204 };
39205 CellNavigationService.prototype.getLastFloatingTopRow = function () {
39206 var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;
39207 return { rowIndex: lastFloatingRow, rowPinned: _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP };
39208 };
39209 CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {
39210 if (backwards) {
39211 return this.getNextTabbedCellBackwards(gridCell);
39212 }
39213 return this.getNextTabbedCellForwards(gridCell);
39214 };
39215 CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {
39216 var displayedColumns = this.columnController.getAllDisplayedColumns();
39217 var newRowIndex = gridCell.rowIndex;
39218 var newFloating = gridCell.rowPinned;
39219 // move along to the next cell
39220 var newColumn = this.columnController.getDisplayedColAfter(gridCell.column);
39221 // check if end of the row, and if so, go forward a row
39222 if (!newColumn) {
39223 newColumn = displayedColumns[0];
39224 var rowBelow = this.getRowBelow(gridCell);
39225 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(rowBelow)) {
39226 return null;
39227 }
39228 // If we are tabbing and there is a paging panel present, tabbing should go
39229 // to the paging panel instead of loading the next page.
39230 if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {
39231 return null;
39232 }
39233 newRowIndex = rowBelow ? rowBelow.rowIndex : null;
39234 newFloating = rowBelow ? rowBelow.rowPinned : null;
39235 }
39236 return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };
39237 };
39238 CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {
39239 var displayedColumns = this.columnController.getAllDisplayedColumns();
39240 var newRowIndex = gridCell.rowIndex;
39241 var newFloating = gridCell.rowPinned;
39242 // move along to the next cell
39243 var newColumn = this.columnController.getDisplayedColBefore(gridCell.column);
39244 // check if end of the row, and if so, go forward a row
39245 if (!newColumn) {
39246 newColumn = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(displayedColumns);
39247 var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });
39248 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(rowAbove)) {
39249 return null;
39250 }
39251 // If we are tabbing and there is a paging panel present, tabbing should go
39252 // to the paging panel instead of loading the next page.
39253 if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {
39254 return null;
39255 }
39256 newRowIndex = rowAbove ? rowAbove.rowIndex : null;
39257 newFloating = rowAbove ? rowAbove.rowPinned : null;
39258 }
39259 return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };
39260 };
39261 __decorate([
39262 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
39263 ], CellNavigationService.prototype, "columnController", void 0);
39264 __decorate([
39265 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
39266 ], CellNavigationService.prototype, "rowModel", void 0);
39267 __decorate([
39268 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
39269 ], CellNavigationService.prototype, "pinnedRowModel", void 0);
39270 __decorate([
39271 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
39272 ], CellNavigationService.prototype, "paginationProxy", void 0);
39273 CellNavigationService = __decorate([
39274 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('cellNavigationService')
39275 ], CellNavigationService);
39276 return CellNavigationService;
39277}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39278
39279
39280
39281/***/ }),
39282/* 165 */
39283/***/ (function(module, __webpack_exports__, __webpack_require__) {
39284
39285"use strict";
39286__webpack_require__.r(__webpack_exports__);
39287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return ValueFormatterService; });
39288/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39289/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39290/**
39291 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39292 * @version v25.3.0
39293 * @link http://www.ag-grid.com/
39294 * @license MIT
39295 */
39296var __extends = (undefined && undefined.__extends) || (function () {
39297 var extendStatics = function (d, b) {
39298 extendStatics = Object.setPrototypeOf ||
39299 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39300 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39301 return extendStatics(d, b);
39302 };
39303 return function (d, b) {
39304 extendStatics(d, b);
39305 function __() { this.constructor = d; }
39306 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39307 };
39308})();
39309var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39310 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39311 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39312 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;
39313 return c > 3 && r && Object.defineProperty(target, key, r), r;
39314};
39315
39316
39317var ValueFormatterService = /** @class */ (function (_super) {
39318 __extends(ValueFormatterService, _super);
39319 function ValueFormatterService() {
39320 return _super !== null && _super.apply(this, arguments) || this;
39321 }
39322 ValueFormatterService.prototype.formatValue = function (column, node, $scope, value, suppliedFormatter, useFormatterFromColumn) {
39323 if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }
39324 var result = null;
39325 var formatter;
39326 var colDef = column.getColDef();
39327 if (suppliedFormatter) {
39328 // use supplied formatter if provided, e.g. set filter items can have their own value formatters
39329 formatter = suppliedFormatter;
39330 }
39331 else if (useFormatterFromColumn) {
39332 // if row is pinned, give preference to the pinned formatter
39333 formatter = node && node.rowPinned && colDef.pinnedRowValueFormatter ?
39334 colDef.pinnedRowValueFormatter : colDef.valueFormatter;
39335 }
39336 if (formatter) {
39337 var params = {
39338 value: value,
39339 node: node,
39340 data: node ? node.data : null,
39341 colDef: colDef,
39342 column: column,
39343 api: this.gridOptionsWrapper.getApi(),
39344 columnApi: this.gridOptionsWrapper.getColumnApi(),
39345 context: this.gridOptionsWrapper.getContext()
39346 };
39347 // originally we put the angular 1 scope here, but we don't want the scope
39348 // in the params interface, as other frameworks will see the interface, and
39349 // angular 1 is not cool any more. so we hack the scope in here (we cannot
39350 // include it above, as it's not in the interface, so would cause a compile error).
39351 // in the future, when we stop supporting angular 1, we can take this out.
39352 params.$scope = $scope;
39353 result = this.expressionService.evaluate(formatter, params);
39354 }
39355 else if (colDef.refData) {
39356 return colDef.refData[value] || '';
39357 }
39358 // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)
39359 if (result == null && Array.isArray(value)) {
39360 result = value.join(', ');
39361 }
39362 return result;
39363 };
39364 __decorate([
39365 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
39366 ], ValueFormatterService.prototype, "expressionService", void 0);
39367 ValueFormatterService = __decorate([
39368 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueFormatterService')
39369 ], ValueFormatterService);
39370 return ValueFormatterService;
39371}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39372
39373
39374
39375/***/ }),
39376/* 166 */
39377/***/ (function(module, __webpack_exports__, __webpack_require__) {
39378
39379"use strict";
39380__webpack_require__.r(__webpack_exports__);
39381/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return AgRadioButton; });
39382/* harmony import */ var _agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(119);
39383/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
39384/**
39385 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39386 * @version v25.3.0
39387 * @link http://www.ag-grid.com/
39388 * @license MIT
39389 */
39390var __extends = (undefined && undefined.__extends) || (function () {
39391 var extendStatics = function (d, b) {
39392 extendStatics = Object.setPrototypeOf ||
39393 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39394 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39395 return extendStatics(d, b);
39396 };
39397 return function (d, b) {
39398 extendStatics(d, b);
39399 function __() { this.constructor = d; }
39400 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39401 };
39402})();
39403
39404
39405var AgRadioButton = /** @class */ (function (_super) {
39406 __extends(AgRadioButton, _super);
39407 function AgRadioButton(config) {
39408 return _super.call(this, config, 'ag-radio-button', 'radio') || this;
39409 }
39410 AgRadioButton.prototype.isSelected = function () {
39411 return this.eInput.checked;
39412 };
39413 AgRadioButton.prototype.toggle = function () {
39414 // do not allow an active radio button to be deselected
39415 if (!this.isSelected()) {
39416 this.setValue(true);
39417 }
39418 };
39419 AgRadioButton.prototype.addInputListeners = function () {
39420 _super.prototype.addInputListeners.call(this);
39421 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));
39422 };
39423 /**
39424 * This ensures that if another radio button in the same named group is selected, we deselect this radio button.
39425 * By default the browser does this for you, but we are managing classes ourselves in order to ensure input
39426 * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,
39427 * not deselected, so we need to use our own event.
39428 */
39429 AgRadioButton.prototype.onChange = function (event) {
39430 if (event.selected &&
39431 event.name &&
39432 this.eInput.name &&
39433 this.eInput.name === event.name &&
39434 event.id &&
39435 this.eInput.id !== event.id) {
39436 this.setValue(false, true);
39437 }
39438 };
39439 return AgRadioButton;
39440}(_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"]));
39441
39442
39443
39444/***/ }),
39445/* 167 */
39446/***/ (function(module, __webpack_exports__, __webpack_require__) {
39447
39448"use strict";
39449__webpack_require__.r(__webpack_exports__);
39450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return VanillaFrameworkOverrides; });
39451/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
39452/**
39453 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39454 * @version v25.3.0
39455 * @link http://www.ag-grid.com/
39456 * @license MIT
39457 */
39458
39459var OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave'];
39460/** The base frameworks, eg React & Angular 2, override this bean with implementations specific to their requirement. */
39461var VanillaFrameworkOverrides = /** @class */ (function () {
39462 function VanillaFrameworkOverrides() {
39463 this.isOutsideAngular = function (eventType) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(OUTSIDE_ANGULAR_EVENTS, eventType); };
39464 }
39465 // for Vanilla JS, we use simple timeout
39466 VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {
39467 window.setTimeout(action, timeout);
39468 };
39469 // for Vanilla JS, we just add the event to the element
39470 VanillaFrameworkOverrides.prototype.addEventListener = function (element, type, listener, useCapture) {
39471 element.addEventListener(type, listener, useCapture);
39472 };
39473 // for Vanilla JS, we just execute the listener
39474 VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener) {
39475 listener();
39476 };
39477 return VanillaFrameworkOverrides;
39478}());
39479
39480
39481
39482/***/ }),
39483/* 168 */
39484/***/ (function(module, __webpack_exports__, __webpack_require__) {
39485
39486"use strict";
39487__webpack_require__.r(__webpack_exports__);
39488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return ScrollVisibleService; });
39489/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39490/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39491/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
39492/**
39493 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39494 * @version v25.3.0
39495 * @link http://www.ag-grid.com/
39496 * @license MIT
39497 */
39498var __extends = (undefined && undefined.__extends) || (function () {
39499 var extendStatics = function (d, b) {
39500 extendStatics = Object.setPrototypeOf ||
39501 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39502 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39503 return extendStatics(d, b);
39504 };
39505 return function (d, b) {
39506 extendStatics(d, b);
39507 function __() { this.constructor = d; }
39508 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39509 };
39510})();
39511var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39512 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39513 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39514 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;
39515 return c > 3 && r && Object.defineProperty(target, key, r), r;
39516};
39517
39518
39519
39520var ScrollVisibleService = /** @class */ (function (_super) {
39521 __extends(ScrollVisibleService, _super);
39522 function ScrollVisibleService() {
39523 return _super !== null && _super.apply(this, arguments) || this;
39524 }
39525 ScrollVisibleService.prototype.postConstruct = function () {
39526 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
39527 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
39528 };
39529 ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {
39530 this.update();
39531 };
39532 ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {
39533 this.update();
39534 };
39535 ScrollVisibleService.prototype.update = function () {
39536 // because of column animation (which takes 200ms), we have to do this twice.
39537 // eg if user removes cols anywhere except at the RHS, then the cols on the RHS
39538 // will animate to the left to fill the gap. this animation means just after
39539 // the cols are removed, the remaining cols are still in the original location
39540 // at the start of the animation, so pre animation the H scrollbar is still needed,
39541 // but post animation it is not.
39542 this.updateImpl();
39543 setTimeout(this.updateImpl.bind(this), 500);
39544 };
39545 ScrollVisibleService.prototype.updateImpl = function () {
39546 var params = {
39547 horizontalScrollShowing: this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing(),
39548 verticalScrollShowing: this.isVerticalScrollShowing()
39549 };
39550 this.setScrollsVisible(params);
39551 };
39552 ScrollVisibleService.prototype.setScrollsVisible = function (params) {
39553 var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||
39554 this.verticalScrollShowing !== params.verticalScrollShowing;
39555 if (atLeastOneDifferent) {
39556 this.horizontalScrollShowing = params.horizontalScrollShowing;
39557 this.verticalScrollShowing = params.verticalScrollShowing;
39558 var event_1 = {
39559 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED,
39560 api: this.gridApi,
39561 columnApi: this.columnApi
39562 };
39563 this.eventService.dispatchEvent(event_1);
39564 }
39565 };
39566 // used by pagination service - to know page height
39567 ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {
39568 return this.horizontalScrollShowing;
39569 };
39570 // used by header container
39571 ScrollVisibleService.prototype.isVerticalScrollShowing = function () {
39572 return this.verticalScrollShowing;
39573 };
39574 __decorate([
39575 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
39576 ], ScrollVisibleService.prototype, "columnApi", void 0);
39577 __decorate([
39578 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
39579 ], ScrollVisibleService.prototype, "gridApi", void 0);
39580 __decorate([
39581 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
39582 ], ScrollVisibleService.prototype, "controllersService", void 0);
39583 __decorate([
39584 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
39585 ], ScrollVisibleService.prototype, "postConstruct", null);
39586 ScrollVisibleService = __decorate([
39587 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('scrollVisibleService')
39588 ], ScrollVisibleService);
39589 return ScrollVisibleService;
39590}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39591
39592
39593
39594/***/ }),
39595/* 169 */
39596/***/ (function(module, __webpack_exports__, __webpack_require__) {
39597
39598"use strict";
39599__webpack_require__.r(__webpack_exports__);
39600/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return StylingService; });
39601/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39602/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39603/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
39604/**
39605 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39606 * @version v25.3.0
39607 * @link http://www.ag-grid.com/
39608 * @license MIT
39609 */
39610var __extends = (undefined && undefined.__extends) || (function () {
39611 var extendStatics = function (d, b) {
39612 extendStatics = Object.setPrototypeOf ||
39613 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39614 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39615 return extendStatics(d, b);
39616 };
39617 return function (d, b) {
39618 extendStatics(d, b);
39619 function __() { this.constructor = d; }
39620 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39621 };
39622})();
39623var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39624 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39625 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39626 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;
39627 return c > 3 && r && Object.defineProperty(target, key, r), r;
39628};
39629
39630
39631
39632var StylingService = /** @class */ (function (_super) {
39633 __extends(StylingService, _super);
39634 function StylingService() {
39635 return _super !== null && _super.apply(this, arguments) || this;
39636 }
39637 StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {
39638 this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);
39639 this.processStaticCellClasses(colDef, params, onApplicableClass);
39640 };
39641 StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {
39642 if (Object(_utils_object__WEBPACK_IMPORTED_MODULE_2__["isNonNullObject"])(classRules)) {
39643 var classNames = Object.keys(classRules);
39644 for (var i = 0; i < classNames.length; i++) {
39645 var className = classNames[i];
39646 var rule = classRules[className];
39647 var resultOfRule = void 0;
39648 if (typeof rule === 'string') {
39649 resultOfRule = this.expressionService.evaluate(rule, params);
39650 }
39651 else if (typeof rule === 'function') {
39652 resultOfRule = rule(params);
39653 }
39654 if (resultOfRule) {
39655 onApplicableClass(className);
39656 }
39657 else if (onNotApplicableClass) {
39658 onNotApplicableClass(className);
39659 }
39660 }
39661 }
39662 };
39663 StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {
39664 var cellClass = colDef.cellClass;
39665 if (cellClass) {
39666 var classOrClasses = void 0;
39667 if (typeof colDef.cellClass === 'function') {
39668 var cellClassFunc = colDef.cellClass;
39669 classOrClasses = cellClassFunc(params);
39670 }
39671 else {
39672 classOrClasses = colDef.cellClass;
39673 }
39674 if (typeof classOrClasses === 'string') {
39675 onApplicableClass(classOrClasses);
39676 }
39677 else if (Array.isArray(classOrClasses)) {
39678 classOrClasses.forEach(function (cssClassItem) {
39679 onApplicableClass(cssClassItem);
39680 });
39681 }
39682 }
39683 };
39684 __decorate([
39685 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
39686 ], StylingService.prototype, "expressionService", void 0);
39687 StylingService = __decorate([
39688 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('stylingService')
39689 ], StylingService);
39690 return StylingService;
39691}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39692
39693
39694
39695/***/ }),
39696/* 170 */
39697/***/ (function(module, __webpack_exports__, __webpack_require__) {
39698
39699"use strict";
39700__webpack_require__.r(__webpack_exports__);
39701/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnHoverService", function() { return ColumnHoverService; });
39702/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39703/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
39704/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
39705/**
39706 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39707 * @version v25.3.0
39708 * @link http://www.ag-grid.com/
39709 * @license MIT
39710 */
39711var __extends = (undefined && undefined.__extends) || (function () {
39712 var extendStatics = function (d, b) {
39713 extendStatics = Object.setPrototypeOf ||
39714 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39715 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39716 return extendStatics(d, b);
39717 };
39718 return function (d, b) {
39719 extendStatics(d, b);
39720 function __() { this.constructor = d; }
39721 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39722 };
39723})();
39724var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39725 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39726 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39727 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;
39728 return c > 3 && r && Object.defineProperty(target, key, r), r;
39729};
39730
39731
39732
39733var ColumnHoverService = /** @class */ (function (_super) {
39734 __extends(ColumnHoverService, _super);
39735 function ColumnHoverService() {
39736 return _super !== null && _super.apply(this, arguments) || this;
39737 }
39738 ColumnHoverService.prototype.setMouseOver = function (columns) {
39739 this.selectedColumns = columns;
39740 var event = {
39741 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_HOVER_CHANGED,
39742 api: this.gridApi,
39743 columnApi: this.columnApi
39744 };
39745 this.eventService.dispatchEvent(event);
39746 };
39747 ColumnHoverService.prototype.clearMouseOver = function () {
39748 this.selectedColumns = null;
39749 var event = {
39750 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_HOVER_CHANGED,
39751 api: this.gridApi,
39752 columnApi: this.columnApi
39753 };
39754 this.eventService.dispatchEvent(event);
39755 };
39756 ColumnHoverService.prototype.isHovered = function (column) {
39757 return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;
39758 };
39759 __decorate([
39760 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
39761 ], ColumnHoverService.prototype, "columnApi", void 0);
39762 __decorate([
39763 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
39764 ], ColumnHoverService.prototype, "gridApi", void 0);
39765 ColumnHoverService = __decorate([
39766 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnHoverService')
39767 ], ColumnHoverService);
39768 return ColumnHoverService;
39769}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
39770
39771
39772
39773/***/ }),
39774/* 171 */
39775/***/ (function(module, __webpack_exports__, __webpack_require__) {
39776
39777"use strict";
39778__webpack_require__.r(__webpack_exports__);
39779/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnAnimationService", function() { return ColumnAnimationService; });
39780/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39781/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
39782/**
39783 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39784 * @version v25.3.0
39785 * @link http://www.ag-grid.com/
39786 * @license MIT
39787 */
39788var __extends = (undefined && undefined.__extends) || (function () {
39789 var extendStatics = function (d, b) {
39790 extendStatics = Object.setPrototypeOf ||
39791 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39792 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39793 return extendStatics(d, b);
39794 };
39795 return function (d, b) {
39796 extendStatics(d, b);
39797 function __() { this.constructor = d; }
39798 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39799 };
39800})();
39801var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39802 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39803 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39804 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;
39805 return c > 3 && r && Object.defineProperty(target, key, r), r;
39806};
39807
39808
39809var ColumnAnimationService = /** @class */ (function (_super) {
39810 __extends(ColumnAnimationService, _super);
39811 function ColumnAnimationService() {
39812 var _this = _super !== null && _super.apply(this, arguments) || this;
39813 _this.executeNextFuncs = [];
39814 _this.executeLaterFuncs = [];
39815 _this.active = false;
39816 _this.animationThreadCount = 0;
39817 return _this;
39818 }
39819 ColumnAnimationService.prototype.postConstruct = function () {
39820 var _this = this;
39821 this.controllersService.whenReady(function (p) { return _this.gridBodyCon = p.gridBodyCon; });
39822 };
39823 ColumnAnimationService.prototype.isActive = function () {
39824 return this.active;
39825 };
39826 ColumnAnimationService.prototype.start = function () {
39827 if (this.active) {
39828 return;
39829 }
39830 if (this.gridOptionsWrapper.isSuppressColumnMoveAnimation()) {
39831 return;
39832 }
39833 // if doing RTL, we don't animate open / close as due to how the pixels are inverted,
39834 // the animation moves all the row the the right rather than to the left (ie it's the static
39835 // columns that actually get their coordinates updated)
39836 if (this.gridOptionsWrapper.isEnableRtl()) {
39837 return;
39838 }
39839 this.ensureAnimationCssClassPresent();
39840 this.active = true;
39841 };
39842 ColumnAnimationService.prototype.finish = function () {
39843 if (!this.active) {
39844 return;
39845 }
39846 this.flush();
39847 this.active = false;
39848 };
39849 ColumnAnimationService.prototype.executeNextVMTurn = function (func) {
39850 if (this.active) {
39851 this.executeNextFuncs.push(func);
39852 }
39853 else {
39854 func();
39855 }
39856 };
39857 ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {
39858 if (this.active) {
39859 this.executeLaterFuncs.push(func);
39860 }
39861 else {
39862 func();
39863 }
39864 };
39865 ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {
39866 var _this = this;
39867 // up the count, so we can tell if someone else has updated the count
39868 // by the time the 'wait' func executes
39869 this.animationThreadCount++;
39870 var animationThreadCountCopy = this.animationThreadCount;
39871 this.gridBodyCon.setColumnMovingCss(true);
39872 this.executeLaterFuncs.push(function () {
39873 // only remove the class if this thread was the last one to update it
39874 if (_this.animationThreadCount === animationThreadCountCopy) {
39875 _this.gridBodyCon.setColumnMovingCss(false);
39876 }
39877 });
39878 };
39879 ColumnAnimationService.prototype.flush = function () {
39880 var nowFuncs = this.executeNextFuncs;
39881 this.executeNextFuncs = [];
39882 var waitFuncs = this.executeLaterFuncs;
39883 this.executeLaterFuncs = [];
39884 if (nowFuncs.length === 0 && waitFuncs.length === 0) {
39885 return;
39886 }
39887 window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);
39888 window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);
39889 };
39890 __decorate([
39891 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
39892 ], ColumnAnimationService.prototype, "controllersService", void 0);
39893 __decorate([
39894 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
39895 ], ColumnAnimationService.prototype, "postConstruct", null);
39896 ColumnAnimationService = __decorate([
39897 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnAnimationService')
39898 ], ColumnAnimationService);
39899 return ColumnAnimationService;
39900}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39901
39902
39903
39904/***/ }),
39905/* 172 */
39906/***/ (function(module, __webpack_exports__, __webpack_require__) {
39907
39908"use strict";
39909__webpack_require__.r(__webpack_exports__);
39910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoGroupColService", function() { return AutoGroupColService; });
39911/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
39912/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
39913/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
39914/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20);
39915/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
39916/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
39917/**
39918 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
39919 * @version v25.3.0
39920 * @link http://www.ag-grid.com/
39921 * @license MIT
39922 */
39923var __extends = (undefined && undefined.__extends) || (function () {
39924 var extendStatics = function (d, b) {
39925 extendStatics = Object.setPrototypeOf ||
39926 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39927 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
39928 return extendStatics(d, b);
39929 };
39930 return function (d, b) {
39931 extendStatics(d, b);
39932 function __() { this.constructor = d; }
39933 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39934 };
39935})();
39936var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39937 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39938 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39939 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;
39940 return c > 3 && r && Object.defineProperty(target, key, r), r;
39941};
39942
39943
39944
39945
39946
39947
39948var AutoGroupColService = /** @class */ (function (_super) {
39949 __extends(AutoGroupColService, _super);
39950 function AutoGroupColService() {
39951 return _super !== null && _super.apply(this, arguments) || this;
39952 }
39953 AutoGroupColService_1 = AutoGroupColService;
39954 AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) {
39955 var _this = this;
39956 var groupAutoColumns = [];
39957 var doingTreeData = this.gridOptionsWrapper.isTreeData();
39958 var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();
39959 if (doingTreeData && doingMultiAutoColumn) {
39960 console.warn('AG Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data');
39961 doingMultiAutoColumn = false;
39962 }
39963 // if doing groupMultiAutoColumn, then we call the method multiple times, once
39964 // for each column we are grouping by
39965 if (doingMultiAutoColumn) {
39966 rowGroupColumns.forEach(function (rowGroupCol, index) {
39967 groupAutoColumns.push(_this.createOneAutoGroupColumn(rowGroupCol, index));
39968 });
39969 }
39970 else {
39971 groupAutoColumns.push(this.createOneAutoGroupColumn());
39972 }
39973 return groupAutoColumns;
39974 };
39975 // rowGroupCol and index are missing if groupMultiAutoColumn=false
39976 AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) {
39977 // if one provided by user, use it, otherwise create one
39978 var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);
39979 // if doing multi, set the field
39980 var colId;
39981 if (rowGroupCol) {
39982 colId = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].GROUP_AUTO_COLUMN_ID + "-" + rowGroupCol.getId();
39983 }
39984 else {
39985 colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID;
39986 }
39987 var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();
39988 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["mergeDeep"])(defaultAutoColDef, userAutoColDef);
39989 defaultAutoColDef = this.columnFactory.mergeColDefs(defaultAutoColDef);
39990 defaultAutoColDef.colId = colId;
39991 // For tree data the filter is always allowed
39992 if (!this.gridOptionsWrapper.isTreeData()) {
39993 // we would only allow filter if the user has provided field or value getter. otherwise the filter
39994 // would not be able to work.
39995 var noFieldOrValueGetter = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(defaultAutoColDef.field) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(defaultAutoColDef.valueGetter) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(defaultAutoColDef.filterValueGetter);
39996 if (noFieldOrValueGetter) {
39997 defaultAutoColDef.filter = false;
39998 }
39999 }
40000 // if showing many cols, we don't want to show more than one with a checkbox for selection
40001 if (index && index > 0) {
40002 defaultAutoColDef.headerCheckboxSelection = false;
40003 }
40004 var newCol = new _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"](defaultAutoColDef, null, colId, true);
40005 this.context.createBean(newCol);
40006 return newCol;
40007 };
40008 AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {
40009 var userDef = this.gridOptionsWrapper.getAutoGroupColumnDef();
40010 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
40011 var res = {
40012 headerName: localeTextFunc('group', 'Group')
40013 };
40014 var userHasProvidedGroupCellRenderer = userDef &&
40015 (userDef.cellRenderer || userDef.cellRendererFramework || userDef.cellRendererSelector);
40016 // only add the default group cell renderer if user hasn't provided one
40017 if (!userHasProvidedGroupCellRenderer) {
40018 res.cellRenderer = 'agGroupCellRenderer';
40019 }
40020 // we never allow moving the group column
40021 // defaultAutoColDef.suppressMovable = true;
40022 if (rowGroupCol) {
40023 var colDef = rowGroupCol.getColDef();
40024 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["assign"])(res, {
40025 // cellRendererParams.groupKey: colDefToCopy.field;
40026 headerName: this.columnController.getDisplayNameForColumn(rowGroupCol, 'header'),
40027 headerValueGetter: colDef.headerValueGetter
40028 });
40029 if (colDef.cellRenderer) {
40030 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["assign"])(res, {
40031 cellRendererParams: {
40032 innerRenderer: colDef.cellRenderer,
40033 innerRendererParams: colDef.cellRendererParams
40034 }
40035 });
40036 }
40037 res.showRowGroup = rowGroupCol.getColId();
40038 }
40039 else {
40040 res.showRowGroup = true;
40041 }
40042 return res;
40043 };
40044 var AutoGroupColService_1;
40045 AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].GROUP_AUTO_COLUMN_ID;
40046 __decorate([
40047 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
40048 ], AutoGroupColService.prototype, "columnController", void 0);
40049 __decorate([
40050 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnFactory')
40051 ], AutoGroupColService.prototype, "columnFactory", void 0);
40052 AutoGroupColService = AutoGroupColService_1 = __decorate([
40053 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoGroupColService')
40054 ], AutoGroupColService);
40055 return AutoGroupColService;
40056}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
40057
40058
40059
40060/***/ }),
40061/* 173 */
40062/***/ (function(module, __webpack_exports__, __webpack_require__) {
40063
40064"use strict";
40065__webpack_require__.r(__webpack_exports__);
40066/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return PaginationProxy; });
40067/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
40068/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
40069/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
40070/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
40071/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29);
40072/**
40073 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40074 * @version v25.3.0
40075 * @link http://www.ag-grid.com/
40076 * @license MIT
40077 */
40078var __extends = (undefined && undefined.__extends) || (function () {
40079 var extendStatics = function (d, b) {
40080 extendStatics = Object.setPrototypeOf ||
40081 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40082 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40083 return extendStatics(d, b);
40084 };
40085 return function (d, b) {
40086 extendStatics(d, b);
40087 function __() { this.constructor = d; }
40088 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40089 };
40090})();
40091var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40092 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40093 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40094 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;
40095 return c > 3 && r && Object.defineProperty(target, key, r), r;
40096};
40097
40098
40099
40100
40101
40102var PaginationProxy = /** @class */ (function (_super) {
40103 __extends(PaginationProxy, _super);
40104 function PaginationProxy() {
40105 var _this = _super !== null && _super.apply(this, arguments) || this;
40106 _this.currentPage = 0;
40107 _this.topDisplayedRowIndex = 0;
40108 _this.bottomDisplayedRowIndex = 0;
40109 _this.pixelOffset = 0;
40110 _this.masterRowCount = 0;
40111 return _this;
40112 }
40113 PaginationProxy.prototype.postConstruct = function () {
40114 this.active = this.gridOptionsWrapper.isPagination();
40115 this.paginateChildRows = this.gridOptionsWrapper.isPaginateChildRows();
40116 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));
40117 this.addManagedListener(this.gridOptionsWrapper, 'paginationPageSize', this.onPaginationPageSizeChanged.bind(this));
40118 this.onModelUpdated();
40119 };
40120 PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
40121 var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());
40122 if (res) {
40123 this.calculatePages();
40124 }
40125 return res;
40126 };
40127 PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {
40128 this.calculatePages();
40129 var paginationChangedEvent = {
40130 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED,
40131 animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,
40132 newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,
40133 newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,
40134 keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false,
40135 api: this.gridApi,
40136 columnApi: this.columnApi
40137 };
40138 this.eventService.dispatchEvent(paginationChangedEvent);
40139 };
40140 PaginationProxy.prototype.onPaginationPageSizeChanged = function () {
40141 this.calculatePages();
40142 var paginationChangedEvent = {
40143 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED,
40144 animate: false,
40145 newData: false,
40146 newPage: false,
40147 // important to keep rendered rows, otherwise every time grid is resized,
40148 // we would destroy all the rows.
40149 keepRenderedRows: true,
40150 api: this.gridApi,
40151 columnApi: this.columnApi
40152 };
40153 this.eventService.dispatchEvent(paginationChangedEvent);
40154 };
40155 PaginationProxy.prototype.goToPage = function (page) {
40156 if (!this.active || this.currentPage === page) {
40157 return;
40158 }
40159 this.currentPage = page;
40160 var event = {
40161 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED,
40162 animate: false,
40163 keepRenderedRows: false,
40164 newData: false,
40165 newPage: true,
40166 api: this.gridApi,
40167 columnApi: this.columnApi
40168 };
40169 this.onModelUpdated(event);
40170 };
40171 PaginationProxy.prototype.getPixelOffset = function () {
40172 return this.pixelOffset;
40173 };
40174 PaginationProxy.prototype.getRow = function (index) {
40175 return this.rowModel.getRow(index);
40176 };
40177 PaginationProxy.prototype.getRowNode = function (id) {
40178 return this.rowModel.getRowNode(id);
40179 };
40180 PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {
40181 return this.rowModel.getRowIndexAtPixel(pixel);
40182 };
40183 PaginationProxy.prototype.getCurrentPageHeight = function () {
40184 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.topRowBounds) || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.bottomRowBounds)) {
40185 return 0;
40186 }
40187 return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);
40188 };
40189 PaginationProxy.prototype.getCurrentPagePixelRange = function () {
40190 var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;
40191 var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;
40192 return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };
40193 };
40194 PaginationProxy.prototype.isRowPresent = function (rowNode) {
40195 if (!this.rowModel.isRowPresent(rowNode)) {
40196 return false;
40197 }
40198 var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;
40199 return nodeIsInPage;
40200 };
40201 PaginationProxy.prototype.isEmpty = function () {
40202 return this.rowModel.isEmpty();
40203 };
40204 PaginationProxy.prototype.isRowsToRender = function () {
40205 return this.rowModel.isRowsToRender();
40206 };
40207 PaginationProxy.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
40208 return this.rowModel.getNodesInRangeForSelection(firstInRange, lastInRange);
40209 };
40210 PaginationProxy.prototype.forEachNode = function (callback) {
40211 return this.rowModel.forEachNode(callback);
40212 };
40213 PaginationProxy.prototype.getType = function () {
40214 return this.rowModel.getType();
40215 };
40216 PaginationProxy.prototype.getRowBounds = function (index) {
40217 var res = this.rowModel.getRowBounds(index);
40218 res.rowIndex = index;
40219 return res;
40220 };
40221 PaginationProxy.prototype.getPageFirstRow = function () {
40222 return this.topRowBounds ? this.topRowBounds.rowIndex : -1;
40223 };
40224 PaginationProxy.prototype.getPageLastRow = function () {
40225 return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;
40226 };
40227 PaginationProxy.prototype.getRowCount = function () {
40228 return this.rowModel.getRowCount();
40229 };
40230 PaginationProxy.prototype.getPageForIndex = function (index) {
40231 return Math.floor(index / this.pageSize);
40232 };
40233 PaginationProxy.prototype.goToPageWithIndex = function (index) {
40234 if (!this.active) {
40235 return;
40236 }
40237 var pageNumber = this.getPageForIndex(index);
40238 this.goToPage(pageNumber);
40239 };
40240 PaginationProxy.prototype.isRowInPage = function (row) {
40241 if (!this.active) {
40242 return true;
40243 }
40244 var rowPage = this.getPageForIndex(row.rowIndex);
40245 return rowPage === this.currentPage;
40246 };
40247 PaginationProxy.prototype.isLastPageFound = function () {
40248 return this.rowModel.isLastRowIndexKnown();
40249 };
40250 PaginationProxy.prototype.getCurrentPage = function () {
40251 return this.currentPage;
40252 };
40253 PaginationProxy.prototype.goToNextPage = function () {
40254 this.goToPage(this.currentPage + 1);
40255 };
40256 PaginationProxy.prototype.goToPreviousPage = function () {
40257 this.goToPage(this.currentPage - 1);
40258 };
40259 PaginationProxy.prototype.goToFirstPage = function () {
40260 this.goToPage(0);
40261 };
40262 PaginationProxy.prototype.goToLastPage = function () {
40263 var rowCount = this.rowModel.getRowCount();
40264 var lastPage = Math.floor(rowCount / this.pageSize);
40265 this.goToPage(lastPage);
40266 };
40267 PaginationProxy.prototype.getPageSize = function () {
40268 return this.pageSize;
40269 };
40270 PaginationProxy.prototype.getTotalPages = function () {
40271 return this.totalPages;
40272 };
40273 PaginationProxy.prototype.setPageSize = function () {
40274 // show put this into super class
40275 this.pageSize = this.gridOptionsWrapper.getPaginationPageSize();
40276 if (this.pageSize == null || this.pageSize < 1) {
40277 this.pageSize = 100;
40278 }
40279 };
40280 PaginationProxy.prototype.calculatePages = function () {
40281 if (this.active) {
40282 this.setPageSize();
40283 if (this.paginateChildRows) {
40284 this.calculatePagesAllRows();
40285 }
40286 else {
40287 this.calculatePagesMasterRowsOnly();
40288 }
40289 }
40290 else {
40291 this.calculatedPagesNotActive();
40292 }
40293 this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);
40294 if (this.topRowBounds) {
40295 this.topRowBounds.rowIndex = this.topDisplayedRowIndex;
40296 }
40297 this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);
40298 if (this.bottomRowBounds) {
40299 this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;
40300 }
40301 this.setPixelOffset(Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(this.topRowBounds) ? this.topRowBounds.rowTop : 0);
40302 };
40303 PaginationProxy.prototype.setPixelOffset = function (value) {
40304 if (this.pixelOffset === value) {
40305 return;
40306 }
40307 this.pixelOffset = value;
40308 this.eventService.dispatchEvent({ type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });
40309 };
40310 PaginationProxy.prototype.setZeroRows = function () {
40311 this.masterRowCount = 0;
40312 this.topDisplayedRowIndex = 0;
40313 this.bottomDisplayedRowIndex = -1;
40314 this.currentPage = 0;
40315 this.totalPages = 0;
40316 };
40317 PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {
40318 // const csrm = <ClientSideRowModel> this.rowModel;
40319 // const rootNode = csrm.getRootNode();
40320 // const masterRows = rootNode.childrenAfterSort;
40321 this.masterRowCount = this.rowModel.getTopLevelRowCount();
40322 // we say <=0 (rather than =0) as viewport returns -1 when no rows
40323 if (this.masterRowCount <= 0) {
40324 this.setZeroRows();
40325 return;
40326 }
40327 var masterLastRowIndex = this.masterRowCount - 1;
40328 this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;
40329 if (this.currentPage >= this.totalPages) {
40330 this.currentPage = this.totalPages - 1;
40331 }
40332 if (!Object(_utils_number__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(this.currentPage) || this.currentPage < 0) {
40333 this.currentPage = 0;
40334 }
40335 var masterPageStartIndex = this.pageSize * this.currentPage;
40336 var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;
40337 if (masterPageEndIndex > masterLastRowIndex) {
40338 masterPageEndIndex = masterLastRowIndex;
40339 }
40340 this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);
40341 // masterRows[masterPageStartIndex].rowIndex;
40342 if (masterPageEndIndex === masterLastRowIndex) {
40343 // if showing the last master row, then we want to show the very last row of the model
40344 this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;
40345 }
40346 else {
40347 var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);
40348 //masterRows[masterPageEndIndex + 1].rowIndex;
40349 // this gets the index of the last child - eg current row is open, we want to display all children,
40350 // the index of the last child is one less than the index of the next parent row.
40351 this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;
40352 }
40353 };
40354 PaginationProxy.prototype.getMasterRowCount = function () {
40355 return this.masterRowCount;
40356 };
40357 PaginationProxy.prototype.calculatePagesAllRows = function () {
40358 this.masterRowCount = this.rowModel.getRowCount();
40359 if (this.masterRowCount === 0) {
40360 this.setZeroRows();
40361 return;
40362 }
40363 var maxRowIndex = this.masterRowCount - 1;
40364 this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;
40365 if (this.currentPage >= this.totalPages) {
40366 this.currentPage = this.totalPages - 1;
40367 }
40368 if (!Object(_utils_number__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(this.currentPage) || this.currentPage < 0) {
40369 this.currentPage = 0;
40370 }
40371 this.topDisplayedRowIndex = this.pageSize * this.currentPage;
40372 this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;
40373 if (this.bottomDisplayedRowIndex > maxRowIndex) {
40374 this.bottomDisplayedRowIndex = maxRowIndex;
40375 }
40376 };
40377 PaginationProxy.prototype.calculatedPagesNotActive = function () {
40378 this.pageSize = this.rowModel.getRowCount();
40379 this.totalPages = 1;
40380 this.currentPage = 0;
40381 this.topDisplayedRowIndex = 0;
40382 this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;
40383 };
40384 __decorate([
40385 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
40386 ], PaginationProxy.prototype, "rowModel", void 0);
40387 __decorate([
40388 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
40389 ], PaginationProxy.prototype, "columnApi", void 0);
40390 __decorate([
40391 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
40392 ], PaginationProxy.prototype, "gridApi", void 0);
40393 __decorate([
40394 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
40395 ], PaginationProxy.prototype, "postConstruct", null);
40396 PaginationProxy = __decorate([
40397 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('paginationProxy')
40398 ], PaginationProxy);
40399 return PaginationProxy;
40400}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
40401
40402
40403
40404/***/ }),
40405/* 174 */
40406/***/ (function(module, __webpack_exports__, __webpack_require__) {
40407
40408"use strict";
40409__webpack_require__.r(__webpack_exports__);
40410/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationAutoPageSizeService", function() { return PaginationAutoPageSizeService; });
40411/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
40412/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23);
40413/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
40414/**
40415 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40416 * @version v25.3.0
40417 * @link http://www.ag-grid.com/
40418 * @license MIT
40419 */
40420var __extends = (undefined && undefined.__extends) || (function () {
40421 var extendStatics = function (d, b) {
40422 extendStatics = Object.setPrototypeOf ||
40423 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40424 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40425 return extendStatics(d, b);
40426 };
40427 return function (d, b) {
40428 extendStatics(d, b);
40429 function __() { this.constructor = d; }
40430 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40431 };
40432})();
40433var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40434 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40435 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40436 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;
40437 return c > 3 && r && Object.defineProperty(target, key, r), r;
40438};
40439
40440
40441
40442var PaginationAutoPageSizeService = /** @class */ (function (_super) {
40443 __extends(PaginationAutoPageSizeService, _super);
40444 function PaginationAutoPageSizeService() {
40445 return _super !== null && _super.apply(this, arguments) || this;
40446 }
40447 PaginationAutoPageSizeService.prototype.postConstruct = function () {
40448 var _this = this;
40449 this.controllersService.whenReady(function (p) {
40450 _this.centerRowContainerCon = p.centerRowContainerCon;
40451 _this.addManagedListener(_this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_HEIGHT_CHANGED, _this.onBodyHeightChanged.bind(_this));
40452 _this.addManagedListener(_this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, _this.onScrollVisibilityChanged.bind(_this));
40453 _this.checkPageSize();
40454 });
40455 };
40456 PaginationAutoPageSizeService.prototype.notActive = function () {
40457 return !this.gridOptionsWrapper.isPaginationAutoPageSize();
40458 };
40459 PaginationAutoPageSizeService.prototype.onScrollVisibilityChanged = function () {
40460 this.checkPageSize();
40461 };
40462 PaginationAutoPageSizeService.prototype.onBodyHeightChanged = function () {
40463 this.checkPageSize();
40464 };
40465 PaginationAutoPageSizeService.prototype.checkPageSize = function () {
40466 if (this.notActive()) {
40467 return;
40468 }
40469 var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();
40470 var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();
40471 if (bodyHeight > 0) {
40472 var newPageSize = Math.floor(bodyHeight / rowHeight);
40473 this.gridOptionsWrapper.setProperty('paginationPageSize', newPageSize);
40474 }
40475 };
40476 __decorate([
40477 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('controllersService')
40478 ], PaginationAutoPageSizeService.prototype, "controllersService", void 0);
40479 __decorate([
40480 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
40481 ], PaginationAutoPageSizeService.prototype, "postConstruct", null);
40482 PaginationAutoPageSizeService = __decorate([
40483 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('paginationAutoPageSizeService')
40484 ], PaginationAutoPageSizeService);
40485 return PaginationAutoPageSizeService;
40486}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
40487
40488
40489
40490/***/ }),
40491/* 175 */
40492/***/ (function(module, __webpack_exports__, __webpack_require__) {
40493
40494"use strict";
40495__webpack_require__.r(__webpack_exports__);
40496/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return ValueCache; });
40497/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
40498/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
40499/**
40500 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40501 * @version v25.3.0
40502 * @link http://www.ag-grid.com/
40503 * @license MIT
40504 */
40505var __extends = (undefined && undefined.__extends) || (function () {
40506 var extendStatics = function (d, b) {
40507 extendStatics = Object.setPrototypeOf ||
40508 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40509 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40510 return extendStatics(d, b);
40511 };
40512 return function (d, b) {
40513 extendStatics(d, b);
40514 function __() { this.constructor = d; }
40515 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40516 };
40517})();
40518var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40519 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40520 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40521 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;
40522 return c > 3 && r && Object.defineProperty(target, key, r), r;
40523};
40524
40525
40526var ValueCache = /** @class */ (function (_super) {
40527 __extends(ValueCache, _super);
40528 function ValueCache() {
40529 var _this = _super !== null && _super.apply(this, arguments) || this;
40530 _this.cacheVersion = 0;
40531 return _this;
40532 }
40533 ValueCache.prototype.init = function () {
40534 this.active = this.gridOptionsWrapper.isValueCache();
40535 this.neverExpires = this.gridOptionsWrapper.isValueCacheNeverExpires();
40536 };
40537 ValueCache.prototype.onDataChanged = function () {
40538 if (this.neverExpires) {
40539 return;
40540 }
40541 this.expire();
40542 };
40543 ValueCache.prototype.expire = function () {
40544 this.cacheVersion++;
40545 };
40546 ValueCache.prototype.setValue = function (rowNode, colId, value) {
40547 if (this.active) {
40548 if (rowNode.__cacheVersion !== this.cacheVersion) {
40549 rowNode.__cacheVersion = this.cacheVersion;
40550 rowNode.__cacheData = {};
40551 }
40552 rowNode.__cacheData[colId] = value;
40553 }
40554 };
40555 ValueCache.prototype.getValue = function (rowNode, colId) {
40556 if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {
40557 return undefined;
40558 }
40559 return rowNode.__cacheData[colId];
40560 };
40561 __decorate([
40562 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
40563 ], ValueCache.prototype, "init", null);
40564 ValueCache = __decorate([
40565 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueCache')
40566 ], ValueCache);
40567 return ValueCache;
40568}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
40569
40570
40571
40572/***/ }),
40573/* 176 */
40574/***/ (function(module, __webpack_exports__, __webpack_require__) {
40575
40576"use strict";
40577__webpack_require__.r(__webpack_exports__);
40578/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectionService", function() { return ChangeDetectionService; });
40579/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
40580/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
40581/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(102);
40582/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
40583/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23);
40584/**
40585 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40586 * @version v25.3.0
40587 * @link http://www.ag-grid.com/
40588 * @license MIT
40589 */
40590var __extends = (undefined && undefined.__extends) || (function () {
40591 var extendStatics = function (d, b) {
40592 extendStatics = Object.setPrototypeOf ||
40593 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40594 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40595 return extendStatics(d, b);
40596 };
40597 return function (d, b) {
40598 extendStatics(d, b);
40599 function __() { this.constructor = d; }
40600 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40601 };
40602})();
40603var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40604 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40605 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40606 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;
40607 return c > 3 && r && Object.defineProperty(target, key, r), r;
40608};
40609
40610
40611
40612
40613
40614var ChangeDetectionService = /** @class */ (function (_super) {
40615 __extends(ChangeDetectionService, _super);
40616 function ChangeDetectionService() {
40617 return _super !== null && _super.apply(this, arguments) || this;
40618 }
40619 ChangeDetectionService.prototype.init = function () {
40620 if (this.rowModel.getType() === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
40621 this.clientSideRowModel = this.rowModel;
40622 }
40623 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));
40624 };
40625 ChangeDetectionService.prototype.onCellValueChanged = function (event) {
40626 // Clipboard service manages its own change detection, so no need to do it here.
40627 // The clipboard manages its own as otherwise this would happen once for every cell
40628 // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,
40629 // this doChangeDetection would get called 100 times (once for each cell), instead clipboard
40630 // service executes the logic we have here once (in essence batching up all cell changes
40631 // into one change detection).
40632 if (event.source === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].SOURCE_PASTE) {
40633 return;
40634 }
40635 this.doChangeDetection(event.node, event.column);
40636 };
40637 ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {
40638 if (this.gridOptionsWrapper.isSuppressChangeDetection()) {
40639 return;
40640 }
40641 // step 1 of change detection is to update the aggregated values
40642 if (this.clientSideRowModel && !rowNode.isRowPinned()) {
40643 var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();
40644 var changedPath = new _utils_changedPath__WEBPACK_IMPORTED_MODULE_2__["ChangedPath"](onlyChangedColumns, this.clientSideRowModel.getRootNode());
40645 changedPath.addParentNode(rowNode.parent, [column]);
40646 this.clientSideRowModel.doAggregate(changedPath);
40647 }
40648 // step 2 of change detection is to refresh the cells
40649 this.rowRenderer.refreshCells();
40650 };
40651 __decorate([
40652 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
40653 ], ChangeDetectionService.prototype, "rowModel", void 0);
40654 __decorate([
40655 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
40656 ], ChangeDetectionService.prototype, "rowRenderer", void 0);
40657 __decorate([
40658 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
40659 ], ChangeDetectionService.prototype, "init", null);
40660 ChangeDetectionService = __decorate([
40661 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('changeDetectionService')
40662 ], ChangeDetectionService);
40663 return ChangeDetectionService;
40664}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
40665
40666
40667
40668/***/ }),
40669/* 177 */
40670/***/ (function(module, __webpack_exports__, __webpack_require__) {
40671
40672"use strict";
40673__webpack_require__.r(__webpack_exports__);
40674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return AlignedGridsService; });
40675/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
40676/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
40677/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
40678/**
40679 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40680 * @version v25.3.0
40681 * @link http://www.ag-grid.com/
40682 * @license MIT
40683 */
40684var __extends = (undefined && undefined.__extends) || (function () {
40685 var extendStatics = function (d, b) {
40686 extendStatics = Object.setPrototypeOf ||
40687 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40688 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40689 return extendStatics(d, b);
40690 };
40691 return function (d, b) {
40692 extendStatics(d, b);
40693 function __() { this.constructor = d; }
40694 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40695 };
40696})();
40697var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40698 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40699 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40700 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;
40701 return c > 3 && r && Object.defineProperty(target, key, r), r;
40702};
40703var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
40704 return function (target, key) { decorator(target, key, paramIndex); }
40705};
40706
40707
40708
40709
40710
40711
40712var AlignedGridsService = /** @class */ (function (_super) {
40713 __extends(AlignedGridsService, _super);
40714 function AlignedGridsService() {
40715 var _this = _super !== null && _super.apply(this, arguments) || this;
40716 // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master
40717 // while processing a master event) we mark this if consuming an event, and if we are, then
40718 // we don't fire back any events.
40719 _this.consuming = false;
40720 return _this;
40721 }
40722 AlignedGridsService.prototype.setBeans = function (loggerFactory) {
40723 this.logger = loggerFactory.create('AlignedGridsService');
40724 };
40725 AlignedGridsService.prototype.init = function () {
40726 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));
40727 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));
40728 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));
40729 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));
40730 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));
40731 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));
40732 };
40733 // common logic across all the fire methods
40734 AlignedGridsService.prototype.fireEvent = function (callback) {
40735 // if we are already consuming, then we are acting on an event from a master,
40736 // so we don't cause a cyclic firing of events
40737 if (this.consuming) {
40738 return;
40739 }
40740 // iterate through the aligned grids, and pass each aligned grid service to the callback
40741 var otherGrids = this.gridOptionsWrapper.getAlignedGrids();
40742 if (otherGrids) {
40743 otherGrids.forEach(function (otherGridOptions) {
40744 if (otherGridOptions.api) {
40745 var alignedGridService = otherGridOptions.api.__getAlignedGridService();
40746 callback(alignedGridService);
40747 }
40748 });
40749 }
40750 };
40751 // common logic across all consume methods. very little common logic, however extracting
40752 // guarantees consistency across the methods.
40753 AlignedGridsService.prototype.onEvent = function (callback) {
40754 this.consuming = true;
40755 callback();
40756 this.consuming = false;
40757 };
40758 AlignedGridsService.prototype.fireColumnEvent = function (event) {
40759 this.fireEvent(function (alignedGridsService) {
40760 alignedGridsService.onColumnEvent(event);
40761 });
40762 };
40763 AlignedGridsService.prototype.fireScrollEvent = function (event) {
40764 if (event.direction !== 'horizontal') {
40765 return;
40766 }
40767 this.fireEvent(function (alignedGridsService) {
40768 alignedGridsService.onScrollEvent(event);
40769 });
40770 };
40771 AlignedGridsService.prototype.onScrollEvent = function (event) {
40772 var _this = this;
40773 this.onEvent(function () {
40774 var gridBodyCon = _this.controllersService.getGridBodyController();
40775 gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left);
40776 });
40777 };
40778 AlignedGridsService.prototype.getMasterColumns = function (event) {
40779 var result = [];
40780 if (event.columns) {
40781 event.columns.forEach(function (column) {
40782 result.push(column);
40783 });
40784 }
40785 else if (event.column) {
40786 result.push(event.column);
40787 }
40788 return result;
40789 };
40790 AlignedGridsService.prototype.getColumnIds = function (event) {
40791 var result = [];
40792 if (event.columns) {
40793 event.columns.forEach(function (column) {
40794 result.push(column.getColId());
40795 });
40796 }
40797 else if (event.column) {
40798 result.push(event.column.getColId());
40799 }
40800 return result;
40801 };
40802 AlignedGridsService.prototype.onColumnEvent = function (event) {
40803 var _this = this;
40804 this.onEvent(function () {
40805 switch (event.type) {
40806 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED:
40807 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE:
40808 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED:
40809 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED:
40810 var colEvent = event;
40811 _this.processColumnEvent(colEvent);
40812 break;
40813 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_GROUP_OPENED:
40814 var groupOpenedEvent = event;
40815 _this.processGroupOpenedEvent(groupOpenedEvent);
40816 break;
40817 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_CHANGED:
40818 // we cannot support pivoting with aligned grids as the columns will be out of sync as the
40819 // grids will have columns created based on the row data of the grid.
40820 console.warn('AG Grid: pivoting is not supported with aligned grids. ' +
40821 'You can only use one of these features at a time in a grid.');
40822 break;
40823 }
40824 });
40825 };
40826 AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {
40827 // likewise for column group
40828 var masterColumnGroup = groupOpenedEvent.columnGroup;
40829 var otherColumnGroup = null;
40830 if (masterColumnGroup) {
40831 var groupId = masterColumnGroup.getGroupId();
40832 otherColumnGroup = this.columnController.getOriginalColumnGroup(groupId);
40833 }
40834 if (masterColumnGroup && !otherColumnGroup) {
40835 return;
40836 }
40837 this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());
40838 this.columnController.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), "alignedGridChanged");
40839 };
40840 AlignedGridsService.prototype.processColumnEvent = function (colEvent) {
40841 var _this = this;
40842 // the column in the event is from the master grid. need to
40843 // look up the equivalent from this (other) grid
40844 var masterColumn = colEvent.column;
40845 var otherColumn = null;
40846 if (masterColumn) {
40847 otherColumn = this.columnController.getPrimaryColumn(masterColumn.getColId());
40848 }
40849 // if event was with respect to a master column, that is not present in this
40850 // grid, then we ignore the event
40851 if (masterColumn && !otherColumn) {
40852 return;
40853 }
40854 // in time, all the methods below should use the column ids, it's a more generic way
40855 // of handling columns, and also allows for single or multi column events
40856 var masterColumns = this.getMasterColumns(colEvent);
40857 switch (colEvent.type) {
40858 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED:
40859 // when the user moves columns via setColumnState, we can't depend on moving specific columns
40860 // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).
40861 // so only way to be sure is match the order of all columns using Column State.
40862 {
40863 var movedEvent = colEvent;
40864 var srcColState = colEvent.columnApi.getColumnState();
40865 var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });
40866 this.columnController.applyColumnState({ state: destColState, applyOrder: true }, "alignedGridChanged");
40867 this.logger.log("onColumnEvent-> processing " + colEvent.type + " toIndex = " + movedEvent.toIndex);
40868 }
40869 break;
40870 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE:
40871 // when the user changes visibility via setColumnState, we can't depend on visibility flag in event
40872 // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).
40873 // so only way to be sure is match the visibility of all columns using Column State.
40874 {
40875 var visibleEvent = colEvent;
40876 var srcColState = colEvent.columnApi.getColumnState();
40877 var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });
40878 this.columnController.applyColumnState({ state: destColState }, "alignedGridChanged");
40879 this.logger.log("onColumnEvent-> processing " + colEvent.type + " visible = " + visibleEvent.visible);
40880 }
40881 break;
40882 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED:
40883 {
40884 var pinnedEvent = colEvent;
40885 var srcColState = colEvent.columnApi.getColumnState();
40886 var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });
40887 this.columnController.applyColumnState({ state: destColState }, "alignedGridChanged");
40888 this.logger.log("onColumnEvent-> processing " + colEvent.type + " pinned = " + pinnedEvent.pinned);
40889 }
40890 break;
40891 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED:
40892 var resizedEvent_1 = colEvent;
40893 masterColumns.forEach(function (column) {
40894 _this.logger.log("onColumnEvent-> processing " + colEvent.type + " actualWidth = " + column.getActualWidth());
40895 var columnWidths = [{ key: column.getColId(), newWidth: column.getActualWidth() }];
40896 _this.columnController.setColumnWidths(columnWidths, false, resizedEvent_1.finished, "alignedGridChanged");
40897 });
40898 break;
40899 }
40900 var gridBodyCon = this.controllersService.getGridBodyController();
40901 var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();
40902 var alignedGrids = this.gridOptionsWrapper.getAlignedGrids();
40903 if (alignedGrids) {
40904 alignedGrids.forEach(function (grid) {
40905 if (grid.api) {
40906 grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);
40907 }
40908 });
40909 }
40910 };
40911 __decorate([
40912 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
40913 ], AlignedGridsService.prototype, "columnController", void 0);
40914 __decorate([
40915 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
40916 ], AlignedGridsService.prototype, "controllersService", void 0);
40917 __decorate([
40918 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('loggerFactory'))
40919 ], AlignedGridsService.prototype, "setBeans", null);
40920 __decorate([
40921 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
40922 ], AlignedGridsService.prototype, "init", null);
40923 AlignedGridsService = __decorate([
40924 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('alignedGridsService')
40925 ], AlignedGridsService);
40926 return AlignedGridsService;
40927}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
40928
40929
40930
40931/***/ }),
40932/* 178 */
40933/***/ (function(module, __webpack_exports__, __webpack_require__) {
40934
40935"use strict";
40936__webpack_require__.r(__webpack_exports__);
40937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgComponentUtils", function() { return AgComponentUtils; });
40938/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
40939/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
40940/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
40941/**
40942 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
40943 * @version v25.3.0
40944 * @link http://www.ag-grid.com/
40945 * @license MIT
40946 */
40947var __extends = (undefined && undefined.__extends) || (function () {
40948 var extendStatics = function (d, b) {
40949 extendStatics = Object.setPrototypeOf ||
40950 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
40951 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
40952 return extendStatics(d, b);
40953 };
40954 return function (d, b) {
40955 extendStatics(d, b);
40956 function __() { this.constructor = d; }
40957 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40958 };
40959})();
40960var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
40961 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
40962 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
40963 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;
40964 return c > 3 && r && Object.defineProperty(target, key, r), r;
40965};
40966
40967
40968
40969var AgComponentUtils = /** @class */ (function (_super) {
40970 __extends(AgComponentUtils, _super);
40971 function AgComponentUtils() {
40972 return _super !== null && _super.apply(this, arguments) || this;
40973 }
40974 AgComponentUtils.prototype.adaptFunction = function (propertyName, hardcodedJsFunction, componentFromFramework, source) {
40975 if (hardcodedJsFunction == null) {
40976 return {
40977 component: null,
40978 componentFromFramework: componentFromFramework,
40979 source: source,
40980 paramsFromSelector: null
40981 };
40982 }
40983 var metadata = this.componentMetadataProvider.retrieve(propertyName);
40984 if (metadata && metadata.functionAdapter) {
40985 return {
40986 componentFromFramework: componentFromFramework,
40987 component: metadata.functionAdapter(hardcodedJsFunction),
40988 source: source,
40989 paramsFromSelector: null
40990 };
40991 }
40992 return null;
40993 };
40994 AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {
40995 var Adapter = /** @class */ (function () {
40996 function Adapter() {
40997 }
40998 Adapter.prototype.refresh = function (params) {
40999 return false;
41000 };
41001 Adapter.prototype.getGui = function () {
41002 var callbackResult = callback(this.params);
41003 var type = typeof callbackResult;
41004 if (type === 'string' || type === 'number' || type === 'boolean') {
41005 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span>' + callbackResult + '</span>');
41006 }
41007 return callbackResult;
41008 };
41009 Adapter.prototype.init = function (params) {
41010 this.params = params;
41011 };
41012 return Adapter;
41013 }());
41014 return Adapter;
41015 };
41016 AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {
41017 if (!candidate) {
41018 return false;
41019 }
41020 return candidate.prototype && 'getGui' in candidate.prototype;
41021 };
41022 __decorate([
41023 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("componentMetadataProvider")
41024 ], AgComponentUtils.prototype, "componentMetadataProvider", void 0);
41025 AgComponentUtils = __decorate([
41026 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])("agComponentUtils")
41027 ], AgComponentUtils);
41028 return AgComponentUtils;
41029}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41030
41031
41032
41033/***/ }),
41034/* 179 */
41035/***/ (function(module, __webpack_exports__, __webpack_require__) {
41036
41037"use strict";
41038__webpack_require__.r(__webpack_exports__);
41039/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentMetadataProvider", function() { return ComponentMetadataProvider; });
41040/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41041/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
41042/**
41043 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41044 * @version v25.3.0
41045 * @link http://www.ag-grid.com/
41046 * @license MIT
41047 */
41048var __extends = (undefined && undefined.__extends) || (function () {
41049 var extendStatics = function (d, b) {
41050 extendStatics = Object.setPrototypeOf ||
41051 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41052 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41053 return extendStatics(d, b);
41054 };
41055 return function (d, b) {
41056 extendStatics(d, b);
41057 function __() { this.constructor = d; }
41058 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41059 };
41060})();
41061var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41062 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41063 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41064 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;
41065 return c > 3 && r && Object.defineProperty(target, key, r), r;
41066};
41067
41068
41069var ComponentMetadataProvider = /** @class */ (function (_super) {
41070 __extends(ComponentMetadataProvider, _super);
41071 function ComponentMetadataProvider() {
41072 return _super !== null && _super.apply(this, arguments) || this;
41073 }
41074 ComponentMetadataProvider.prototype.postConstruct = function () {
41075 this.componentMetaData = {
41076 dateComponent: {
41077 mandatoryMethodList: ['getDate', 'setDate'],
41078 optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']
41079 },
41080 detailCellRenderer: {
41081 mandatoryMethodList: [],
41082 optionalMethodList: ['refresh']
41083 },
41084 headerComponent: {
41085 mandatoryMethodList: [],
41086 optionalMethodList: ['refresh']
41087 },
41088 headerGroupComponent: {
41089 mandatoryMethodList: [],
41090 optionalMethodList: []
41091 },
41092 loadingCellRenderer: {
41093 mandatoryMethodList: [],
41094 optionalMethodList: []
41095 },
41096 loadingOverlayComponent: {
41097 mandatoryMethodList: [],
41098 optionalMethodList: []
41099 },
41100 noRowsOverlayComponent: {
41101 mandatoryMethodList: [],
41102 optionalMethodList: []
41103 },
41104 floatingFilterComponent: {
41105 mandatoryMethodList: ['onParentModelChanged'],
41106 optionalMethodList: ['afterGuiAttached']
41107 },
41108 floatingFilterWrapperComponent: {
41109 mandatoryMethodList: [],
41110 optionalMethodList: []
41111 },
41112 cellRenderer: {
41113 mandatoryMethodList: [],
41114 optionalMethodList: ['refresh', 'afterGuiAttached'],
41115 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41116 },
41117 cellEditor: {
41118 mandatoryMethodList: ['getValue'],
41119 optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']
41120 },
41121 innerRenderer: {
41122 mandatoryMethodList: [],
41123 optionalMethodList: ['afterGuiAttached'],
41124 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41125 },
41126 fullWidthCellRenderer: {
41127 mandatoryMethodList: [],
41128 optionalMethodList: ['refresh', 'afterGuiAttached'],
41129 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41130 },
41131 pinnedRowCellRenderer: {
41132 mandatoryMethodList: [],
41133 optionalMethodList: ['refresh', 'afterGuiAttached'],
41134 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41135 },
41136 groupRowRenderer: {
41137 mandatoryMethodList: [],
41138 optionalMethodList: ['afterGuiAttached'],
41139 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
41140 },
41141 filter: {
41142 mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],
41143 optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']
41144 },
41145 filterComponent: {
41146 mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],
41147 optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']
41148 },
41149 statusPanel: {
41150 mandatoryMethodList: [],
41151 optionalMethodList: ['afterGuiAttached'],
41152 },
41153 toolPanel: {
41154 mandatoryMethodList: [],
41155 optionalMethodList: ['refresh', 'afterGuiAttached']
41156 },
41157 tooltipComponent: {
41158 mandatoryMethodList: [],
41159 optionalMethodList: []
41160 }
41161 };
41162 };
41163 ComponentMetadataProvider.prototype.retrieve = function (name) {
41164 return this.componentMetaData[name];
41165 };
41166 __decorate([
41167 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("agComponentUtils")
41168 ], ComponentMetadataProvider.prototype, "agComponentUtils", void 0);
41169 __decorate([
41170 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
41171 ], ComponentMetadataProvider.prototype, "postConstruct", null);
41172 ComponentMetadataProvider = __decorate([
41173 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])("componentMetadataProvider")
41174 ], ComponentMetadataProvider);
41175 return ComponentMetadataProvider;
41176}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41177
41178
41179
41180/***/ }),
41181/* 180 */
41182/***/ (function(module, __webpack_exports__, __webpack_require__) {
41183
41184"use strict";
41185__webpack_require__.r(__webpack_exports__);
41186/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Beans", function() { return Beans; });
41187/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41188/**
41189 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41190 * @version v25.3.0
41191 * @link http://www.ag-grid.com/
41192 * @license MIT
41193 */
41194var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41195 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41196 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41197 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;
41198 return c > 3 && r && Object.defineProperty(target, key, r), r;
41199};
41200
41201/** Using the IoC has a slight performance consideration, which is no problem most of the
41202 * time, unless we are trashing objects - which is the case when scrolling and rowComp
41203 * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired
41204 * with the IoC. Instead they get passed this object which is all the beans the RowComp
41205 * and CellComp need. Not autowiring all the cells gives performance improvement. */
41206var Beans = /** @class */ (function () {
41207 function Beans() {
41208 }
41209 Beans.prototype.registerGridComp = function (gridBodyComp) {
41210 this.gridBodyComp = gridBodyComp;
41211 };
41212 Beans.prototype.postConstruct = function () {
41213 this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();
41214 if (this.gridOptionsWrapper.isRowModelDefault()) {
41215 this.clientSideRowModel = this.rowModel;
41216 }
41217 if (this.gridOptionsWrapper.isRowModelServerSide()) {
41218 this.serverSideRowModel = this.rowModel;
41219 }
41220 };
41221 __decorate([
41222 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
41223 ], Beans.prototype, "resizeObserverService", void 0);
41224 __decorate([
41225 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
41226 ], Beans.prototype, "paginationProxy", void 0);
41227 __decorate([
41228 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('context')
41229 ], Beans.prototype, "context", void 0);
41230 __decorate([
41231 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
41232 ], Beans.prototype, "columnApi", void 0);
41233 __decorate([
41234 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
41235 ], Beans.prototype, "gridApi", void 0);
41236 __decorate([
41237 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
41238 ], Beans.prototype, "gridOptionsWrapper", void 0);
41239 __decorate([
41240 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
41241 ], Beans.prototype, "expressionService", void 0);
41242 __decorate([
41243 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
41244 ], Beans.prototype, "rowRenderer", void 0);
41245 __decorate([
41246 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$compile')
41247 ], Beans.prototype, "$compile", void 0);
41248 __decorate([
41249 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('templateService')
41250 ], Beans.prototype, "templateService", void 0);
41251 __decorate([
41252 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
41253 ], Beans.prototype, "valueService", void 0);
41254 __decorate([
41255 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eventService')
41256 ], Beans.prototype, "eventService", void 0);
41257 __decorate([
41258 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
41259 ], Beans.prototype, "columnController", void 0);
41260 __decorate([
41261 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
41262 ], Beans.prototype, "headerNavigationService", void 0);
41263 __decorate([
41264 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnAnimationService')
41265 ], Beans.prototype, "columnAnimationService", void 0);
41266 __decorate([
41267 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
41268 ], Beans.prototype, "rangeController", void 0);
41269 __decorate([
41270 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
41271 ], Beans.prototype, "focusController", void 0);
41272 __decorate([
41273 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('contextMenuFactory')
41274 ], Beans.prototype, "contextMenuFactory", void 0);
41275 __decorate([
41276 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
41277 ], Beans.prototype, "popupService", void 0);
41278 __decorate([
41279 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueFormatterService')
41280 ], Beans.prototype, "valueFormatterService", void 0);
41281 __decorate([
41282 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('stylingService')
41283 ], Beans.prototype, "stylingService", void 0);
41284 __decorate([
41285 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
41286 ], Beans.prototype, "columnHoverService", void 0);
41287 __decorate([
41288 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
41289 ], Beans.prototype, "userComponentFactory", void 0);
41290 __decorate([
41291 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
41292 ], Beans.prototype, "taskQueue", void 0);
41293 __decorate([
41294 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
41295 ], Beans.prototype, "dragAndDropService", void 0);
41296 __decorate([
41297 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
41298 ], Beans.prototype, "sortController", void 0);
41299 __decorate([
41300 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
41301 ], Beans.prototype, "filterManager", void 0);
41302 __decorate([
41303 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowContainerHeightService')
41304 ], Beans.prototype, "rowContainerHeightService", void 0);
41305 __decorate([
41306 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('frameworkOverrides')
41307 ], Beans.prototype, "frameworkOverrides", void 0);
41308 __decorate([
41309 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('detailRowCompCache')
41310 ], Beans.prototype, "detailRowCompCache", void 0);
41311 __decorate([
41312 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('cellPositionUtils')
41313 ], Beans.prototype, "cellPositionUtils", void 0);
41314 __decorate([
41315 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
41316 ], Beans.prototype, "rowPositionUtils", void 0);
41317 __decorate([
41318 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
41319 ], Beans.prototype, "selectionController", void 0);
41320 __decorate([
41321 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('selectionHandleFactory')
41322 ], Beans.prototype, "selectionHandleFactory", void 0);
41323 __decorate([
41324 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowCssClassCalculator')
41325 ], Beans.prototype, "rowCssClassCalculator", void 0);
41326 __decorate([
41327 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
41328 ], Beans.prototype, "rowModel", void 0);
41329 __decorate([
41330 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
41331 ], Beans.prototype, "controllersService", void 0);
41332 __decorate([
41333 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
41334 ], Beans.prototype, "postConstruct", null);
41335 Beans = __decorate([
41336 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('beans')
41337 ], Beans);
41338 return Beans;
41339}());
41340
41341
41342
41343/***/ }),
41344/* 181 */
41345/***/ (function(module, __webpack_exports__, __webpack_require__) {
41346
41347"use strict";
41348__webpack_require__.r(__webpack_exports__);
41349/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return Environment; });
41350/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41351/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
41352/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
41353/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
41354/**
41355 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41356 * @version v25.3.0
41357 * @link http://www.ag-grid.com/
41358 * @license MIT
41359 */
41360var __extends = (undefined && undefined.__extends) || (function () {
41361 var extendStatics = function (d, b) {
41362 extendStatics = Object.setPrototypeOf ||
41363 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41364 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41365 return extendStatics(d, b);
41366 };
41367 return function (d, b) {
41368 extendStatics(d, b);
41369 function __() { this.constructor = d; }
41370 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41371 };
41372})();
41373var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41374 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41375 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41376 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;
41377 return c > 3 && r && Object.defineProperty(target, key, r), r;
41378};
41379
41380
41381
41382
41383var MAT_GRID_SIZE = 8;
41384var BASE_GRID_SIZE = 4;
41385var BALHAM_GRID_SIZE = 4;
41386var ALPINE_GRID_SIZE = 6;
41387var HARD_CODED_SIZES = {
41388 // this item is required for custom themes
41389 'ag-theme-custom': {
41390 headerHeight: 25,
41391 headerCellMinWidth: 24,
41392 listItemHeight: BASE_GRID_SIZE * 5,
41393 rowHeight: 25,
41394 chartMenuPanelWidth: 220
41395 },
41396 'ag-theme-material': {
41397 headerHeight: MAT_GRID_SIZE * 7,
41398 headerCellMinWidth: 48,
41399 listItemHeight: MAT_GRID_SIZE * 4,
41400 rowHeight: MAT_GRID_SIZE * 6,
41401 chartMenuPanelWidth: 240
41402 },
41403 'ag-theme-balham': {
41404 headerHeight: BALHAM_GRID_SIZE * 8,
41405 headerCellMinWidth: 24,
41406 listItemHeight: BALHAM_GRID_SIZE * 6,
41407 rowHeight: BALHAM_GRID_SIZE * 7,
41408 chartMenuPanelWidth: 220
41409 },
41410 'ag-theme-alpine': {
41411 headerHeight: ALPINE_GRID_SIZE * 8,
41412 headerCellMinWidth: 36,
41413 listItemHeight: ALPINE_GRID_SIZE * 4,
41414 rowHeight: ALPINE_GRID_SIZE * 7,
41415 chartMenuPanelWidth: 240
41416 }
41417};
41418/**
41419 * this object contains a list of Sass variables and an array
41420 * of CSS styles required to get the correct value.
41421 * eg. $virtual-item-height requires a structure, so we can get its height.
41422 * <div class="ag-theme-balham">
41423 * <div class="ag-virtual-list-container">
41424 * <div class="ag-virtual-list-item"></div>
41425 * </div>
41426 * </div>
41427 */
41428var SASS_PROPERTY_BUILDER = {
41429 headerHeight: ['ag-header-row'],
41430 headerCellMinWidth: ['ag-header-cell'],
41431 listItemHeight: ['ag-virtual-list-item'],
41432 rowHeight: ['ag-row'],
41433 chartMenuPanelWidth: ['ag-chart-docked-container']
41434};
41435var CALCULATED_SIZES = {};
41436var Environment = /** @class */ (function (_super) {
41437 __extends(Environment, _super);
41438 function Environment() {
41439 return _super !== null && _super.apply(this, arguments) || this;
41440 }
41441 Environment.prototype.getSassVariable = function (theme, key) {
41442 var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');
41443 var defaultValue = HARD_CODED_SIZES[useTheme][key];
41444 var calculatedValue = 0;
41445 if (!CALCULATED_SIZES[theme]) {
41446 CALCULATED_SIZES[theme] = {};
41447 }
41448 var size = CALCULATED_SIZES[theme][key];
41449 if (size != null) {
41450 return size;
41451 }
41452 if (SASS_PROPERTY_BUILDER[key]) {
41453 var classList = SASS_PROPERTY_BUILDER[key];
41454 var div = document.createElement('div');
41455 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(div, theme);
41456 div.style.position = 'absolute';
41457 var el = classList.reduce(function (prevEl, currentClass) {
41458 var currentDiv = document.createElement('div');
41459 currentDiv.style.position = 'static';
41460 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(currentDiv, currentClass);
41461 prevEl.appendChild(currentDiv);
41462 return currentDiv;
41463 }, div);
41464 if (document.body) {
41465 document.body.appendChild(div);
41466 var sizeName = key.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';
41467 calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);
41468 document.body.removeChild(div);
41469 }
41470 }
41471 CALCULATED_SIZES[theme][key] = calculatedValue || defaultValue;
41472 return CALCULATED_SIZES[theme][key];
41473 };
41474 Environment.prototype.isThemeDark = function () {
41475 var theme = this.getTheme().theme;
41476 return !!theme && theme.indexOf('dark') >= 0;
41477 };
41478 Environment.prototype.chartMenuPanelWidth = function () {
41479 var theme = this.getTheme().themeFamily;
41480 return this.getSassVariable(theme, 'chartMenuPanelWidth');
41481 };
41482 Environment.prototype.getTheme = function () {
41483 var reg = /\bag-(material|(?:theme-([\w\-]*)))\b/;
41484 var el = this.eGridDiv;
41485 var themeMatch = null;
41486 while (el) {
41487 themeMatch = reg.exec(el.className);
41488 if (!themeMatch) {
41489 el = el.parentElement || undefined;
41490 }
41491 else {
41492 break;
41493 }
41494 }
41495 if (!themeMatch) {
41496 return {};
41497 }
41498 var theme = themeMatch[0];
41499 var usingOldTheme = themeMatch[2] === undefined;
41500 if (usingOldTheme) {
41501 var newTheme_1 = theme.replace('ag-', 'ag-theme-');
41502 Object(_utils_function__WEBPACK_IMPORTED_MODULE_3__["doOnce"])(function () { return console.warn("AG Grid: As of v19 old theme are no longer provided. Please replace " + theme + " with " + newTheme_1 + "."); }, 'using-old-theme');
41503 }
41504 return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, '') };
41505 };
41506 __decorate([
41507 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eGridDiv')
41508 ], Environment.prototype, "eGridDiv", void 0);
41509 Environment = __decorate([
41510 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('environment')
41511 ], Environment);
41512 return Environment;
41513}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41514
41515
41516
41517/***/ }),
41518/* 182 */
41519/***/ (function(module, __webpack_exports__, __webpack_require__) {
41520
41521"use strict";
41522__webpack_require__.r(__webpack_exports__);
41523/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return AnimationFrameService; });
41524/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41525/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
41526/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
41527/**
41528 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41529 * @version v25.3.0
41530 * @link http://www.ag-grid.com/
41531 * @license MIT
41532 */
41533var __extends = (undefined && undefined.__extends) || (function () {
41534 var extendStatics = function (d, b) {
41535 extendStatics = Object.setPrototypeOf ||
41536 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41537 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41538 return extendStatics(d, b);
41539 };
41540 return function (d, b) {
41541 extendStatics(d, b);
41542 function __() { this.constructor = d; }
41543 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41544 };
41545})();
41546var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41547 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41548 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41549 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;
41550 return c > 3 && r && Object.defineProperty(target, key, r), r;
41551};
41552
41553
41554
41555var AnimationFrameService = /** @class */ (function (_super) {
41556 __extends(AnimationFrameService, _super);
41557 function AnimationFrameService() {
41558 var _this = _super !== null && _super.apply(this, arguments) || this;
41559 // p1 and p2 are create tasks are to do with row and cell creation.
41560 // for them we want to execute according to row order, so we use
41561 // TaskItem so we know what index the item is for.
41562 _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows
41563 _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality
41564 // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new
41565 // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as
41566 // important.
41567 _this.destroyTasks = [];
41568 _this.ticking = false;
41569 // we need to know direction of scroll, to build up rows in the direction of
41570 // the scroll. eg if user scrolls down, we extend the rows by building down.
41571 _this.scrollGoingDown = true;
41572 _this.lastScrollTop = 0;
41573 _this.taskCount = 0;
41574 _this.cancelledTasks = new Set();
41575 return _this;
41576 }
41577 AnimationFrameService.prototype.setScrollTop = function (scrollTop) {
41578 this.scrollGoingDown = scrollTop > this.lastScrollTop;
41579 this.lastScrollTop = scrollTop;
41580 };
41581 AnimationFrameService.prototype.init = function () {
41582 this.useAnimationFrame = !this.gridOptionsWrapper.isSuppressAnimationFrame();
41583 };
41584 // this method is for our AG Grid sanity only - if animation frames are turned off,
41585 // then no place in the code should be looking to add any work to be done in animation
41586 // frames. this stops bugs - where some code is asking for a frame to be executed
41587 // when it should not.
41588 AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {
41589 if (this.useAnimationFrame === false) {
41590 console.warn("AG Grid: AnimationFrameService." + methodName + " called but animation frames are off");
41591 }
41592 };
41593 AnimationFrameService.prototype.createTask = function (task, index, list) {
41594 this.verifyAnimationFrameOn(list);
41595 var taskItem = { task: task, index: index, createOrder: ++this.taskCount };
41596 this.addTaskToList(this[list], taskItem);
41597 this.schedule();
41598 };
41599 AnimationFrameService.prototype.cancelTask = function (task) {
41600 this.cancelledTasks.add(task);
41601 };
41602 AnimationFrameService.prototype.addTaskToList = function (taskList, task) {
41603 taskList.list.push(task);
41604 taskList.sorted = false;
41605 };
41606 AnimationFrameService.prototype.sortTaskList = function (taskList) {
41607 if (taskList.sorted) {
41608 return;
41609 }
41610 var sortDirection = this.scrollGoingDown ? 1 : -1;
41611 // sort first by row index (taking into account scroll direction), then by
41612 // order of task creation (always ascending, so cells will render left-to-right)
41613 taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });
41614 taskList.sorted = true;
41615 };
41616 AnimationFrameService.prototype.addDestroyTask = function (task) {
41617 this.verifyAnimationFrameOn('createTasksP3');
41618 this.destroyTasks.push(task);
41619 this.schedule();
41620 };
41621 AnimationFrameService.prototype.executeFrame = function (millis) {
41622 this.verifyAnimationFrameOn('executeFrame');
41623 var p1TaskList = this.createTasksP1;
41624 var p1Tasks = p1TaskList.list;
41625 var p2TaskList = this.createTasksP2;
41626 var p2Tasks = p2TaskList.list;
41627 var destroyTasks = this.destroyTasks;
41628 var frameStart = new Date().getTime();
41629 var duration = (new Date().getTime()) - frameStart;
41630 // 16ms is 60 fps
41631 var noMaxMillis = millis <= 0;
41632 var gridBodyCon = this.controllersService.getGridBodyController();
41633 while (noMaxMillis || duration < millis) {
41634 var gridBodyDidSomething = gridBodyCon.getScrollFeature().executeAnimationFrameScroll();
41635 if (!gridBodyDidSomething) {
41636 var task = void 0;
41637 if (p1Tasks.length) {
41638 this.sortTaskList(p1TaskList);
41639 task = p1Tasks.pop().task;
41640 }
41641 else if (p2Tasks.length) {
41642 this.sortTaskList(p2TaskList);
41643 task = p2Tasks.pop().task;
41644 }
41645 else if (destroyTasks.length) {
41646 task = destroyTasks.pop();
41647 }
41648 else {
41649 this.cancelledTasks.clear();
41650 break;
41651 }
41652 if (!this.cancelledTasks.has(task)) {
41653 task();
41654 }
41655 }
41656 duration = (new Date().getTime()) - frameStart;
41657 }
41658 if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {
41659 this.requestFrame();
41660 }
41661 else {
41662 this.stopTicking();
41663 }
41664 };
41665 AnimationFrameService.prototype.stopTicking = function () {
41666 this.ticking = false;
41667 var event = {
41668 type: _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ANIMATION_QUEUE_EMPTY,
41669 columnApi: this.gridOptionsWrapper.getColumnApi(),
41670 api: this.gridOptionsWrapper.getApi()
41671 };
41672 this.eventService.dispatchEvent(event);
41673 };
41674 AnimationFrameService.prototype.flushAllFrames = function () {
41675 if (!this.useAnimationFrame) {
41676 return;
41677 }
41678 this.executeFrame(-1);
41679 };
41680 AnimationFrameService.prototype.schedule = function () {
41681 if (!this.useAnimationFrame) {
41682 return;
41683 }
41684 if (!this.ticking) {
41685 this.ticking = true;
41686 this.requestFrame();
41687 }
41688 };
41689 AnimationFrameService.prototype.requestFrame = function () {
41690 // check for the existence of requestAnimationFrame, and if
41691 // it's missing, then we polyfill it with setTimeout()
41692 var callback = this.executeFrame.bind(this, 60);
41693 if (window.requestAnimationFrame) {
41694 window.requestAnimationFrame(callback);
41695 }
41696 else if (window.webkitRequestAnimationFrame) {
41697 window.webkitRequestAnimationFrame(callback);
41698 }
41699 else {
41700 window.setTimeout(callback, 0);
41701 }
41702 };
41703 AnimationFrameService.prototype.isQueueEmpty = function () {
41704 return !this.ticking;
41705 };
41706 __decorate([
41707 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
41708 ], AnimationFrameService.prototype, "controllersService", void 0);
41709 __decorate([
41710 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
41711 ], AnimationFrameService.prototype, "init", null);
41712 AnimationFrameService = __decorate([
41713 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('animationFrameService')
41714 ], AnimationFrameService);
41715 return AnimationFrameService;
41716}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
41717
41718
41719
41720/***/ }),
41721/* 183 */
41722/***/ (function(module, __webpack_exports__, __webpack_require__) {
41723
41724"use strict";
41725__webpack_require__.r(__webpack_exports__);
41726/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationService", function() { return NavigationService; });
41727/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
41728/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
41729/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
41730/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
41731/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60);
41732/**
41733 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
41734 * @version v25.3.0
41735 * @link http://www.ag-grid.com/
41736 * @license MIT
41737 */
41738var __extends = (undefined && undefined.__extends) || (function () {
41739 var extendStatics = function (d, b) {
41740 extendStatics = Object.setPrototypeOf ||
41741 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41742 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
41743 return extendStatics(d, b);
41744 };
41745 return function (d, b) {
41746 extendStatics(d, b);
41747 function __() { this.constructor = d; }
41748 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41749 };
41750})();
41751var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41752 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41753 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41754 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;
41755 return c > 3 && r && Object.defineProperty(target, key, r), r;
41756};
41757
41758
41759
41760
41761
41762var NavigationService = /** @class */ (function (_super) {
41763 __extends(NavigationService, _super);
41764 function NavigationService() {
41765 var _this = _super !== null && _super.apply(this, arguments) || this;
41766 _this.timeLastPageEventProcessed = 0;
41767 return _this;
41768 }
41769 NavigationService.prototype.postConstruct = function () {
41770 var _this = this;
41771 this.controllersService.whenReady(function (p) {
41772 _this.gridBodyCon = p.gridBodyCon;
41773 });
41774 };
41775 NavigationService.prototype.handlePageScrollingKey = function (event) {
41776 var key = event.which || event.keyCode;
41777 var alt = event.altKey;
41778 var ctrl = event.ctrlKey || event.metaKey;
41779 var currentCell = this.mouseEventService.getCellPositionForEvent(event);
41780 if (!currentCell) {
41781 return false;
41782 }
41783 var processed = false;
41784 switch (key) {
41785 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_HOME:
41786 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_END:
41787 // handle home and end when ctrl & alt are NOT pressed
41788 if (!ctrl && !alt) {
41789 this.onHomeOrEndKey(key);
41790 processed = true;
41791 }
41792 break;
41793 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT:
41794 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].RIGHT:
41795 // handle left and right when ctrl is pressed only
41796 if (ctrl && !alt) {
41797 this.onCtrlLeftOrRight(key, currentCell);
41798 processed = true;
41799 }
41800 break;
41801 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP:
41802 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN:
41803 // handle up and down when ctrl is pressed only
41804 if (ctrl && !alt) {
41805 this.onCtrlUpOrDown(key, currentCell);
41806 processed = true;
41807 }
41808 break;
41809 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_DOWN:
41810 // handle page up and page down when ctrl & alt are NOT pressed
41811 if (!ctrl && !alt) {
41812 this.onPageDown(currentCell);
41813 processed = true;
41814 }
41815 break;
41816 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_UP:
41817 // handle page up and page down when ctrl & alt are NOT pressed
41818 if (!ctrl && !alt) {
41819 this.onPageUp(currentCell);
41820 processed = true;
41821 }
41822 break;
41823 }
41824 if (processed) {
41825 event.preventDefault();
41826 }
41827 return processed;
41828 };
41829 // the page up/down keys caused a problem, in that if the user
41830 // held the page up/down key down, lots of events got generated,
41831 // which clogged up the event queue (as they take time to process)
41832 // which in turn froze the grid. Logic below makes sure we wait 100ms
41833 // between processing the page up/down events, so when user has finger
41834 // held down on key, we ignore page up/down events until 100ms has passed,
41835 // which effectively empties the queue of page up/down events.
41836 NavigationService.prototype.isTimeSinceLastPageEventToRecent = function () {
41837 var now = new Date().getTime();
41838 var diff = now - this.timeLastPageEventProcessed;
41839 return (diff < 100);
41840 };
41841 NavigationService.prototype.setTimeLastPageEventProcessed = function () {
41842 this.timeLastPageEventProcessed = new Date().getTime();
41843 };
41844 NavigationService.prototype.navigateTo = function (navigateParams) {
41845 var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;
41846 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(scrollColumn)) {
41847 this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);
41848 }
41849 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(scrollIndex)) {
41850 this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);
41851 }
41852 // make sure the cell is rendered, needed if we are to focus
41853 this.animationFrameService.flushAllFrames();
41854 // if we don't do this, the range will be left on the last cell, which will leave the last focused cell
41855 // highlighted.
41856 this.focusController.setFocusedCell(focusIndex, focusColumn, null, true);
41857 if (this.rangeController) {
41858 var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };
41859 this.rangeController.setRangeToCell(cellPosition);
41860 }
41861 };
41862 NavigationService.prototype.onPageDown = function (gridCell) {
41863 if (this.isTimeSinceLastPageEventToRecent()) {
41864 return;
41865 }
41866 var gridBodyCon = this.controllersService.getGridBodyController();
41867 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
41868 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
41869 var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;
41870 if (this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing()) {
41871 pixelsInOnePage -= scrollbarWidth;
41872 }
41873 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
41874 var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;
41875 var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);
41876 var scrollIndex = currentPageBottomRow;
41877 var currentCellPixel = this.paginationProxy.getRow(gridCell.rowIndex).rowTop;
41878 var nextCellPixel = currentCellPixel + pixelsInOnePage - pagingPixelOffset;
41879 var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);
41880 var pageLastRow = this.paginationProxy.getPageLastRow();
41881 if (focusIndex > pageLastRow) {
41882 focusIndex = pageLastRow;
41883 }
41884 if (scrollIndex > pageLastRow) {
41885 scrollIndex = pageLastRow;
41886 }
41887 this.navigateTo({
41888 scrollIndex: scrollIndex,
41889 scrollType: 'top',
41890 scrollColumn: null,
41891 focusIndex: focusIndex,
41892 focusColumn: gridCell.column
41893 });
41894 this.setTimeLastPageEventProcessed();
41895 };
41896 NavigationService.prototype.onPageUp = function (gridCell) {
41897 if (this.isTimeSinceLastPageEventToRecent()) {
41898 return;
41899 }
41900 var gridBodyCon = this.controllersService.getGridBodyController();
41901 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
41902 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
41903 var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;
41904 if (this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing()) {
41905 pixelsInOnePage -= scrollbarWidth;
41906 }
41907 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
41908 var currentPageTopPixel = scrollPosition.top;
41909 var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);
41910 var scrollIndex = currentPageTopRow;
41911 var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);
41912 var nextCellPixel = currentRowNode.rowTop + currentRowNode.rowHeight - pixelsInOnePage - pagingPixelOffset;
41913 var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);
41914 var firstRow = this.paginationProxy.getPageFirstRow();
41915 if (focusIndex < firstRow) {
41916 focusIndex = firstRow;
41917 }
41918 if (scrollIndex < firstRow) {
41919 scrollIndex = firstRow;
41920 }
41921 this.navigateTo({
41922 scrollIndex: scrollIndex,
41923 scrollType: 'bottom',
41924 scrollColumn: null,
41925 focusIndex: focusIndex,
41926 focusColumn: gridCell.column
41927 });
41928 this.setTimeLastPageEventProcessed();
41929 };
41930 NavigationService.prototype.getIndexToFocus = function (indexToScrollTo, isDown) {
41931 var indexToFocus = indexToScrollTo;
41932 // for SSRM, when user hits ctrl+down, we can end up trying to focus the loading row.
41933 // instead we focus the last row with data instead.
41934 if (isDown) {
41935 var node = this.paginationProxy.getRow(indexToScrollTo);
41936 if (node && node.stub) {
41937 indexToFocus -= 1;
41938 }
41939 }
41940 return indexToFocus;
41941 };
41942 // ctrl + up/down will bring focus to same column, first/last row. no horizontal scrolling.
41943 NavigationService.prototype.onCtrlUpOrDown = function (key, gridCell) {
41944 var upKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP;
41945 var rowIndexToScrollTo = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();
41946 this.navigateTo({
41947 scrollIndex: rowIndexToScrollTo,
41948 scrollType: null,
41949 scrollColumn: gridCell.column,
41950 focusIndex: this.getIndexToFocus(rowIndexToScrollTo, !upKey),
41951 focusColumn: gridCell.column
41952 });
41953 };
41954 // ctrl + left/right will bring focus to same row, first/last cell. no vertical scrolling.
41955 NavigationService.prototype.onCtrlLeftOrRight = function (key, gridCell) {
41956 var leftKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT;
41957 var allColumns = this.columnController.getAllDisplayedColumns();
41958 var columnToSelect = leftKey ? allColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(allColumns);
41959 this.navigateTo({
41960 scrollIndex: gridCell.rowIndex,
41961 scrollType: null,
41962 scrollColumn: columnToSelect,
41963 focusIndex: gridCell.rowIndex,
41964 focusColumn: columnToSelect
41965 });
41966 };
41967 // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring
41968 // same cell into view (which means either scroll all the way up, or all the way down).
41969 NavigationService.prototype.onHomeOrEndKey = function (key) {
41970 var homeKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_HOME;
41971 var allColumns = this.columnController.getAllDisplayedColumns();
41972 var columnToSelect = homeKey ? allColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(allColumns);
41973 var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();
41974 this.navigateTo({
41975 scrollIndex: scrollIndex,
41976 scrollType: null,
41977 scrollColumn: columnToSelect,
41978 focusIndex: this.getIndexToFocus(scrollIndex, !homeKey),
41979 focusColumn: columnToSelect
41980 });
41981 };
41982 __decorate([
41983 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
41984 ], NavigationService.prototype, "mouseEventService", void 0);
41985 __decorate([
41986 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
41987 ], NavigationService.prototype, "paginationProxy", void 0);
41988 __decorate([
41989 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
41990 ], NavigationService.prototype, "focusController", void 0);
41991 __decorate([
41992 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
41993 ], NavigationService.prototype, "animationFrameService", void 0);
41994 __decorate([
41995 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeController')
41996 ], NavigationService.prototype, "rangeController", void 0);
41997 __decorate([
41998 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
41999 ], NavigationService.prototype, "columnController", void 0);
42000 __decorate([
42001 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
42002 ], NavigationService.prototype, "controllersService", void 0);
42003 __decorate([
42004 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42005 ], NavigationService.prototype, "postConstruct", null);
42006 NavigationService = __decorate([
42007 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('navigationService')
42008 ], NavigationService);
42009 return NavigationService;
42010}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42011
42012
42013
42014/***/ }),
42015/* 184 */
42016/***/ (function(module, __webpack_exports__, __webpack_require__) {
42017
42018"use strict";
42019__webpack_require__.r(__webpack_exports__);
42020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerHeightService", function() { return RowContainerHeightService; });
42021/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
42022/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
42023/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24);
42024/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34);
42025/**
42026 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42027 * @version v25.3.0
42028 * @link http://www.ag-grid.com/
42029 * @license MIT
42030 */
42031var __extends = (undefined && undefined.__extends) || (function () {
42032 var extendStatics = function (d, b) {
42033 extendStatics = Object.setPrototypeOf ||
42034 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42035 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42036 return extendStatics(d, b);
42037 };
42038 return function (d, b) {
42039 extendStatics(d, b);
42040 function __() { this.constructor = d; }
42041 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42042 };
42043})();
42044var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42045 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42046 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42047 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;
42048 return c > 3 && r && Object.defineProperty(target, key, r), r;
42049};
42050var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
42051 return function (target, key) { decorator(target, key, paramIndex); }
42052};
42053
42054
42055
42056
42057/**
42058 * This class solves the 'max height' problem, where the user might want to show more data than
42059 * the max div height actually allows.
42060 */
42061var RowContainerHeightService = /** @class */ (function (_super) {
42062 __extends(RowContainerHeightService, _super);
42063 function RowContainerHeightService() {
42064 var _this = _super !== null && _super.apply(this, arguments) || this;
42065 // the scrollY position
42066 _this.scrollY = 0;
42067 // how tall the body is
42068 _this.uiBodyHeight = 0;
42069 return _this;
42070 }
42071 RowContainerHeightService.prototype.agWire = function (loggerFactory) {
42072 this.logger = loggerFactory.create("RowContainerHeightService");
42073 };
42074 RowContainerHeightService.prototype.postConstruct = function () {
42075 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));
42076 this.maxDivHeight = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["getMaxDivHeight"])();
42077 this.logger.log('maxDivHeight = ' + this.maxDivHeight);
42078 };
42079 RowContainerHeightService.prototype.isStretching = function () {
42080 return this.stretching;
42081 };
42082 RowContainerHeightService.prototype.getDivStretchOffset = function () {
42083 return this.divStretchOffset;
42084 };
42085 RowContainerHeightService.prototype.updateOffset = function () {
42086 if (!this.stretching) {
42087 return;
42088 }
42089 var gridBodyCon = this.controllersService.getGridBodyController();
42090 var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;
42091 var newBodyHeight = this.getUiBodyHeight();
42092 var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;
42093 if (atLeastOneChanged) {
42094 this.scrollY = newScrollY;
42095 this.uiBodyHeight = newBodyHeight;
42096 this.calculateOffset();
42097 }
42098 };
42099 RowContainerHeightService.prototype.calculateOffset = function () {
42100 this.setUiContainerHeight(this.maxDivHeight);
42101 this.pixelsToShave = this.modelHeight - this.uiContainerHeight;
42102 this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;
42103 var scrollPercent = this.scrollY / this.maxScrollY;
42104 var divStretchOffset = scrollPercent * this.pixelsToShave;
42105 this.logger.log("Div Stretch Offset = " + divStretchOffset + " (" + this.pixelsToShave + " * " + scrollPercent + ")");
42106 this.setDivStretchOffset(divStretchOffset);
42107 };
42108 RowContainerHeightService.prototype.setUiContainerHeight = function (height) {
42109 if (height !== this.uiContainerHeight) {
42110 this.uiContainerHeight = height;
42111 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED });
42112 }
42113 };
42114 RowContainerHeightService.prototype.clearOffset = function () {
42115 this.setUiContainerHeight(this.modelHeight);
42116 this.pixelsToShave = 0;
42117 this.setDivStretchOffset(0);
42118 };
42119 RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {
42120 // because we are talking pixels, no point in confusing things with half numbers
42121 var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;
42122 if (this.divStretchOffset === newOffsetFloor) {
42123 return;
42124 }
42125 this.divStretchOffset = newOffsetFloor;
42126 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_HEIGHT_SCALE_CHANGED });
42127 };
42128 RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {
42129 this.modelHeight = modelHeight;
42130 this.stretching = modelHeight != null // null happens when in print layout
42131 && this.maxDivHeight > 0
42132 && modelHeight > this.maxDivHeight;
42133 if (this.stretching) {
42134 this.calculateOffset();
42135 }
42136 else {
42137 this.clearOffset();
42138 }
42139 };
42140 RowContainerHeightService.prototype.getUiContainerHeight = function () {
42141 return this.uiContainerHeight;
42142 };
42143 RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {
42144 return modelPixel - this.divStretchOffset;
42145 };
42146 RowContainerHeightService.prototype.getUiBodyHeight = function () {
42147 var gridBodyCon = this.controllersService.getGridBodyController();
42148 var pos = gridBodyCon.getScrollFeature().getVScrollPosition();
42149 return pos.bottom - pos.top;
42150 };
42151 RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {
42152 if (this.pixelsToShave <= 0) {
42153 return rowTop;
42154 }
42155 var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();
42156 var scrollPercent = rowTop / modelMaxScroll;
42157 var scrollPixel = this.maxScrollY * scrollPercent;
42158 return scrollPixel;
42159 };
42160 __decorate([
42161 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('controllersService')
42162 ], RowContainerHeightService.prototype, "controllersService", void 0);
42163 __decorate([
42164 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])("loggerFactory"))
42165 ], RowContainerHeightService.prototype, "agWire", null);
42166 __decorate([
42167 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
42168 ], RowContainerHeightService.prototype, "postConstruct", null);
42169 RowContainerHeightService = __decorate([
42170 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowContainerHeightService')
42171 ], RowContainerHeightService);
42172 return RowContainerHeightService;
42173}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
42174
42175
42176
42177/***/ }),
42178/* 185 */
42179/***/ (function(module, __webpack_exports__, __webpack_require__) {
42180
42181"use strict";
42182__webpack_require__.r(__webpack_exports__);
42183/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return SelectableService; });
42184/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42185/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
42186/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
42187/**
42188 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42189 * @version v25.3.0
42190 * @link http://www.ag-grid.com/
42191 * @license MIT
42192 */
42193var __extends = (undefined && undefined.__extends) || (function () {
42194 var extendStatics = function (d, b) {
42195 extendStatics = Object.setPrototypeOf ||
42196 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42197 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42198 return extendStatics(d, b);
42199 };
42200 return function (d, b) {
42201 extendStatics(d, b);
42202 function __() { this.constructor = d; }
42203 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42204 };
42205})();
42206var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42207 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42208 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42209 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;
42210 return c > 3 && r && Object.defineProperty(target, key, r), r;
42211};
42212
42213
42214
42215var SelectableService = /** @class */ (function (_super) {
42216 __extends(SelectableService, _super);
42217 function SelectableService() {
42218 return _super !== null && _super.apply(this, arguments) || this;
42219 }
42220 SelectableService.prototype.init = function () {
42221 this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
42222 this.isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();
42223 };
42224 SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {
42225 if (this.isRowSelectableFunc) {
42226 var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };
42227 this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);
42228 }
42229 };
42230 SelectableService.prototype.updateSelectableAfterFiltering = function (rowNode) {
42231 if (this.isRowSelectableFunc) {
42232 var nextChildrenFunc = function (node) { return node.childrenAfterFilter; };
42233 this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);
42234 }
42235 };
42236 SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {
42237 var _this = this;
42238 if (!children) {
42239 return;
42240 }
42241 children.forEach(function (child) {
42242 if (!child.group) {
42243 return;
42244 } // only interested in groups
42245 if (child.hasChildren()) {
42246 _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);
42247 }
42248 var rowSelectable;
42249 if (_this.groupSelectsChildren) {
42250 // have this group selectable if at least one direct child is selectable
42251 var firstSelectable = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["find"])(nextChildrenFunc(child), 'selectable', true);
42252 rowSelectable = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(firstSelectable);
42253 }
42254 else {
42255 // directly retrieve selectable value from user callback
42256 rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;
42257 }
42258 child.setRowSelectable(rowSelectable);
42259 });
42260 };
42261 __decorate([
42262 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42263 ], SelectableService.prototype, "init", null);
42264 SelectableService = __decorate([
42265 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('selectableService')
42266 ], SelectableService);
42267 return SelectableService;
42268}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42269
42270
42271
42272/***/ }),
42273/* 186 */
42274/***/ (function(module, __webpack_exports__, __webpack_require__) {
42275
42276"use strict";
42277__webpack_require__.r(__webpack_exports__);
42278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoHeightCalculator", function() { return AutoHeightCalculator; });
42279/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42280/* harmony import */ var _cellComp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(107);
42281/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
42282/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
42283/* harmony import */ var _angularRowUtils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(106);
42284/**
42285 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42286 * @version v25.3.0
42287 * @link http://www.ag-grid.com/
42288 * @license MIT
42289 */
42290var __extends = (undefined && undefined.__extends) || (function () {
42291 var extendStatics = function (d, b) {
42292 extendStatics = Object.setPrototypeOf ||
42293 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42294 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42295 return extendStatics(d, b);
42296 };
42297 return function (d, b) {
42298 extendStatics(d, b);
42299 function __() { this.constructor = d; }
42300 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42301 };
42302})();
42303var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42304 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42305 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42306 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;
42307 return c > 3 && r && Object.defineProperty(target, key, r), r;
42308};
42309
42310
42311
42312
42313
42314var AutoHeightCalculator = /** @class */ (function (_super) {
42315 __extends(AutoHeightCalculator, _super);
42316 function AutoHeightCalculator() {
42317 return _super !== null && _super.apply(this, arguments) || this;
42318 }
42319 AutoHeightCalculator.prototype.postConstruct = function () {
42320 var _this = this;
42321 this.controllersService.whenReady(function (p) {
42322 _this.centerRowContainerCon = p.centerRowContainerCon;
42323 });
42324 };
42325 AutoHeightCalculator.prototype.getPreferredHeightForRow = function (rowNode) {
42326 var _this = this;
42327 var eDummyContainer = document.createElement('div');
42328 this.addInRowCssClasses(rowNode, eDummyContainer);
42329 // we put the dummy into the body container, so it will inherit all the
42330 // css styles that the real cells are inheriting
42331 var eBodyContainer = this.centerRowContainerCon.getContainerElement();
42332 eBodyContainer.appendChild(eDummyContainer);
42333 var scopeResult = _angularRowUtils__WEBPACK_IMPORTED_MODULE_4__["AngularRowUtils"].createChildScopeOrNull(rowNode, this.$scope, this.beans.gridOptionsWrapper);
42334 var scope = scopeResult ? scopeResult.scope : undefined;
42335 var scopeDestroyFunc = scopeResult ? scopeResult.scopeDestroyFunc : undefined;
42336 var cellComps = [];
42337 var autoRowHeightCols = this.columnController.getAllAutoRowHeightCols();
42338 var displayedCols = this.columnController.getAllDisplayedColumns();
42339 var visibleAutoRowHeightCols = autoRowHeightCols.filter(function (col) { return displayedCols.indexOf(col) >= 0; });
42340 visibleAutoRowHeightCols.forEach(function (col) {
42341 var cellComp = new _cellComp__WEBPACK_IMPORTED_MODULE_1__["CellComp"](scope, _this.beans, col, rowNode, null, true, false, eDummyContainer, false);
42342 cellComps.push(cellComp);
42343 });
42344 cellComps.forEach(function (cellComp) { return eDummyContainer.appendChild(cellComp.getGui()); });
42345 if (scope) {
42346 this.$compile(eDummyContainer)(scope);
42347 }
42348 // we should be able to just take the height of the row at this point, however
42349 // the row isn't expanding to cover the cell heights, i don't know why, i couldn't
42350 // figure it out so instead looking at the individual cells instead
42351 var maxCellHeight = 0;
42352 for (var i = 0; i < eDummyContainer.children.length; i++) {
42353 var child = eDummyContainer.children[i];
42354 if (child.offsetHeight > maxCellHeight) {
42355 maxCellHeight = child.offsetHeight;
42356 }
42357 }
42358 // we are finished with the dummy container, so get rid of it
42359 eBodyContainer.removeChild(eDummyContainer);
42360 cellComps.forEach(function (cellComp) {
42361 // dunno why we need to detach first, doing it here to be consistent with code in RowComp
42362 cellComp.detach();
42363 cellComp.destroy();
42364 });
42365 if (scopeDestroyFunc) {
42366 scopeDestroyFunc();
42367 }
42368 return maxCellHeight;
42369 };
42370 AutoHeightCalculator.prototype.addInRowCssClasses = function (rowNode, eDummyContainer) {
42371 // so any styles on row also get applied in dummy, otherwise
42372 // the content in dummy may differ to the real
42373 var rowIndex = rowNode.rowIndex;
42374 var params = {
42375 rowNode: rowNode,
42376 rowIsEven: rowIndex % 2 === 0,
42377 rowLevel: this.rowCssClassCalculator.calculateRowLevel(rowNode),
42378 firstRowOnPage: rowIndex === this.beans.paginationProxy.getPageFirstRow(),
42379 lastRowOnPage: rowIndex === this.beans.paginationProxy.getPageLastRow(),
42380 printLayout: false,
42381 expandable: rowNode.isExpandable()
42382 };
42383 var classes = this.rowCssClassCalculator.getInitialRowClasses(params);
42384 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eDummyContainer, classes.join(' '));
42385 };
42386 __decorate([
42387 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
42388 ], AutoHeightCalculator.prototype, "beans", void 0);
42389 __decorate([
42390 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("$scope")
42391 ], AutoHeightCalculator.prototype, "$scope", void 0);
42392 __decorate([
42393 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("columnController")
42394 ], AutoHeightCalculator.prototype, "columnController", void 0);
42395 __decorate([
42396 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("rowCssClassCalculator")
42397 ], AutoHeightCalculator.prototype, "rowCssClassCalculator", void 0);
42398 __decorate([
42399 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$compile')
42400 ], AutoHeightCalculator.prototype, "$compile", void 0);
42401 __decorate([
42402 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('controllersService')
42403 ], AutoHeightCalculator.prototype, "controllersService", void 0);
42404 __decorate([
42405 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42406 ], AutoHeightCalculator.prototype, "postConstruct", null);
42407 AutoHeightCalculator = __decorate([
42408 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoHeightCalculator')
42409 ], AutoHeightCalculator);
42410 return AutoHeightCalculator;
42411}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
42412
42413
42414
42415/***/ }),
42416/* 187 */
42417/***/ (function(module, __webpack_exports__, __webpack_require__) {
42418
42419"use strict";
42420__webpack_require__.r(__webpack_exports__);
42421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationComp", function() { return PaginationComp; });
42422/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
42423/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
42424/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
42425/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23);
42426/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50);
42427/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
42428/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(33);
42429/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(47);
42430/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(60);
42431/**
42432 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42433 * @version v25.3.0
42434 * @link http://www.ag-grid.com/
42435 * @license MIT
42436 */
42437var __extends = (undefined && undefined.__extends) || (function () {
42438 var extendStatics = function (d, b) {
42439 extendStatics = Object.setPrototypeOf ||
42440 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42441 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42442 return extendStatics(d, b);
42443 };
42444 return function (d, b) {
42445 extendStatics(d, b);
42446 function __() { this.constructor = d; }
42447 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42448 };
42449})();
42450var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42451 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42452 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42453 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;
42454 return c > 3 && r && Object.defineProperty(target, key, r), r;
42455};
42456
42457
42458
42459
42460
42461
42462
42463
42464
42465var PaginationComp = /** @class */ (function (_super) {
42466 __extends(PaginationComp, _super);
42467 function PaginationComp() {
42468 var _this = _super.call(this) || this;
42469 _this.previousAndFirstButtonsDisabled = false;
42470 _this.nextButtonDisabled = false;
42471 _this.lastButtonDisabled = false;
42472 return _this;
42473 }
42474 PaginationComp.prototype.postConstruct = function () {
42475 var _this = this;
42476 var isRtl = this.gridOptionsWrapper.isEnableRtl();
42477 this.setTemplate(this.getTemplate());
42478 this.btFirst.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'last' : 'first', this.gridOptionsWrapper));
42479 this.btPrevious.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'next' : 'previous', this.gridOptionsWrapper));
42480 this.btNext.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'previous' : 'next', this.gridOptionsWrapper));
42481 this.btLast.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'first' : 'last', this.gridOptionsWrapper));
42482 var isPaging = this.gridOptionsWrapper.isPagination();
42483 var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();
42484 if (!paginationPanelEnabled) {
42485 this.setDisplayed(false);
42486 return;
42487 }
42488 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));
42489 [
42490 { el: this.btFirst, fn: this.onBtFirst.bind(this) },
42491 { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },
42492 { el: this.btNext, fn: this.onBtNext.bind(this) },
42493 { el: this.btLast, fn: this.onBtLast.bind(this) }
42494 ].forEach(function (item) {
42495 var el = item.el, fn = item.fn;
42496 _this.addManagedListener(el, 'click', fn);
42497 _this.addManagedListener(el, 'keydown', function (e) {
42498 if (e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].ENTER || e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].SPACE) {
42499 e.preventDefault();
42500 fn();
42501 }
42502 });
42503 });
42504 this.onPaginationChanged();
42505 };
42506 PaginationComp.prototype.onPaginationChanged = function () {
42507 this.enableOrDisableButtons();
42508 this.updateRowLabels();
42509 this.setCurrentPageLabel();
42510 this.setTotalLabels();
42511 };
42512 PaginationComp.prototype.onBtFirst = function () {
42513 if (!this.previousAndFirstButtonsDisabled) {
42514 this.paginationProxy.goToFirstPage();
42515 }
42516 };
42517 PaginationComp.prototype.setCurrentPageLabel = function () {
42518 var pagesExist = this.paginationProxy.getTotalPages() > 0;
42519 var currentPage = this.paginationProxy.getCurrentPage();
42520 var toDisplay = pagesExist ? currentPage + 1 : 0;
42521 this.lbCurrent.innerHTML = this.formatNumber(toDisplay);
42522 };
42523 PaginationComp.prototype.formatNumber = function (value) {
42524 var userFunc = this.gridOptionsWrapper.getPaginationNumberFormatterFunc();
42525 if (userFunc) {
42526 return userFunc({ value: value });
42527 }
42528 return Object(_utils_number__WEBPACK_IMPORTED_MODULE_5__["formatNumberCommas"])(value);
42529 };
42530 PaginationComp.prototype.getTemplate = function () {
42531 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
42532 var strPage = localeTextFunc('page', 'Page');
42533 var strTo = localeTextFunc('to', 'to');
42534 var strOf = localeTextFunc('of', 'of');
42535 var strFirst = localeTextFunc('firstPage', 'First Page');
42536 var strPrevious = localeTextFunc('previousPage', 'Previous Page');
42537 var strNext = localeTextFunc('nextPage', 'Next Page');
42538 var strLast = localeTextFunc('lastPage', 'Last Page');
42539 var compId = this.getCompId();
42540 var summaryDescribedBy = "ag-" + compId + "-first-row ag-" + compId + "-to ag-" + compId + "-last-row ag-" + compId + "-of ag-" + compId + "-row-count";
42541 var descriptionDescribedBy = "ag-" + compId + "-start-page ag-" + compId + "-start-page-number ag-" + compId + "-of-page ag-" + compId + "-of-page-number";
42542 return /* html */ "<div class=\"ag-paging-panel ag-unselectable\" id=\"ag-" + compId + "\" aria-live=\"polite\" aria-describedby=\"" + descriptionDescribedBy + " " + summaryDescribedBy + "\">\n <span class=\"ag-paging-row-summary-panel\" aria-hidden=\"true\">\n <span id=\"ag-" + compId + "-first-row\" ref=\"lbFirstRowOnPage\" class=\"ag-paging-row-summary-panel-number\"></span>\n <span id=\"ag-" + compId + "-to\">" + strTo + "</span>\n <span id=\"ag-" + compId + "-last-row\" ref=\"lbLastRowOnPage\" class=\"ag-paging-row-summary-panel-number\"></span>\n <span id=\"ag-" + compId + "-of\">" + strOf + "</span>\n <span id=\"ag-" + compId + "-row-count\" ref=\"lbRecordCount\" class=\"ag-paging-row-summary-panel-number\"></span>\n </span>\n <span class=\"ag-paging-page-summary-panel\" role=\"presentation\">\n <div ref=\"btFirst\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strFirst + "\" tabindex=\"0\"></div>\n <div ref=\"btPrevious\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strPrevious + "\" tabindex=\"0\"></div>\n <span class=\"ag-paging-description\" aria-hidden=\"true\">\n <span id=\"ag-" + compId + "-start-page\">" + strPage + "</span>\n <span id=\"ag-" + compId + "-start-page-number\" ref=\"lbCurrent\" class=\"ag-paging-number\"></span>\n <span id=\"ag-" + compId + "-of-page\">" + strOf + "</span>\n <span id=\"ag-" + compId + "-of-page-number\" ref=\"lbTotal\" class=\"ag-paging-number\"></span>\n </span>\n <div ref=\"btNext\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strNext + "\" tabindex=\"0\"></div>\n <div ref=\"btLast\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strLast + "\" tabindex=\"0\"></div>\n </span>\n </div>";
42543 };
42544 PaginationComp.prototype.onBtNext = function () {
42545 if (!this.nextButtonDisabled) {
42546 this.paginationProxy.goToNextPage();
42547 }
42548 };
42549 PaginationComp.prototype.onBtPrevious = function () {
42550 if (!this.previousAndFirstButtonsDisabled) {
42551 this.paginationProxy.goToPreviousPage();
42552 }
42553 };
42554 PaginationComp.prototype.onBtLast = function () {
42555 if (!this.lastButtonDisabled) {
42556 this.paginationProxy.goToLastPage();
42557 }
42558 };
42559 PaginationComp.prototype.enableOrDisableButtons = function () {
42560 var currentPage = this.paginationProxy.getCurrentPage();
42561 var maxRowFound = this.paginationProxy.isLastPageFound();
42562 var totalPages = this.paginationProxy.getTotalPages();
42563 this.previousAndFirstButtonsDisabled = currentPage === 0;
42564 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btFirst, 'ag-disabled', this.previousAndFirstButtonsDisabled);
42565 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btFirst, this.previousAndFirstButtonsDisabled);
42566 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btPrevious, 'ag-disabled', this.previousAndFirstButtonsDisabled);
42567 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btPrevious, this.previousAndFirstButtonsDisabled);
42568 var zeroPagesToDisplay = this.isZeroPagesToDisplay();
42569 var onLastPage = maxRowFound && currentPage === (totalPages - 1);
42570 this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;
42571 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btNext, 'ag-disabled', this.nextButtonDisabled);
42572 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btNext, this.nextButtonDisabled);
42573 this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);
42574 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["addOrRemoveCssClass"])(this.btLast, 'ag-disabled', this.lastButtonDisabled);
42575 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaDisabled"])(this.btLast, this.lastButtonDisabled);
42576 };
42577 PaginationComp.prototype.updateRowLabels = function () {
42578 var currentPage = this.paginationProxy.getCurrentPage();
42579 var pageSize = this.paginationProxy.getPageSize();
42580 var maxRowFound = this.paginationProxy.isLastPageFound();
42581 var rowCount = this.paginationProxy.isLastPageFound() ?
42582 this.paginationProxy.getMasterRowCount() : null;
42583 var startRow;
42584 var endRow;
42585 if (this.isZeroPagesToDisplay()) {
42586 startRow = endRow = 0;
42587 }
42588 else {
42589 startRow = (pageSize * currentPage) + 1;
42590 endRow = startRow + pageSize - 1;
42591 if (maxRowFound && endRow > rowCount) {
42592 endRow = rowCount;
42593 }
42594 }
42595 this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);
42596 if (this.rowNodeBlockLoader.isLoading()) {
42597 this.lbLastRowOnPage.innerHTML = '?';
42598 }
42599 else {
42600 this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);
42601 }
42602 };
42603 PaginationComp.prototype.isZeroPagesToDisplay = function () {
42604 var maxRowFound = this.paginationProxy.isLastPageFound();
42605 var totalPages = this.paginationProxy.getTotalPages();
42606 return maxRowFound && totalPages === 0;
42607 };
42608 PaginationComp.prototype.setTotalLabels = function () {
42609 var lastPageFound = this.paginationProxy.isLastPageFound();
42610 var totalPages = this.paginationProxy.getTotalPages();
42611 var rowCount = lastPageFound ?
42612 this.paginationProxy.getMasterRowCount() : null;
42613 if (lastPageFound) {
42614 this.lbTotal.innerHTML = this.formatNumber(totalPages);
42615 this.lbRecordCount.innerHTML = this.formatNumber(rowCount);
42616 }
42617 else {
42618 var moreText = this.gridOptionsWrapper.getLocaleTextFunc()('more', 'more');
42619 this.lbTotal.innerHTML = moreText;
42620 this.lbRecordCount.innerHTML = moreText;
42621 }
42622 };
42623 __decorate([
42624 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
42625 ], PaginationComp.prototype, "paginationProxy", void 0);
42626 __decorate([
42627 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowNodeBlockLoader')
42628 ], PaginationComp.prototype, "rowNodeBlockLoader", void 0);
42629 __decorate([
42630 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btFirst')
42631 ], PaginationComp.prototype, "btFirst", void 0);
42632 __decorate([
42633 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btPrevious')
42634 ], PaginationComp.prototype, "btPrevious", void 0);
42635 __decorate([
42636 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btNext')
42637 ], PaginationComp.prototype, "btNext", void 0);
42638 __decorate([
42639 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btLast')
42640 ], PaginationComp.prototype, "btLast", void 0);
42641 __decorate([
42642 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbRecordCount')
42643 ], PaginationComp.prototype, "lbRecordCount", void 0);
42644 __decorate([
42645 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbFirstRowOnPage')
42646 ], PaginationComp.prototype, "lbFirstRowOnPage", void 0);
42647 __decorate([
42648 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbLastRowOnPage')
42649 ], PaginationComp.prototype, "lbLastRowOnPage", void 0);
42650 __decorate([
42651 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbCurrent')
42652 ], PaginationComp.prototype, "lbCurrent", void 0);
42653 __decorate([
42654 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbTotal')
42655 ], PaginationComp.prototype, "lbTotal", void 0);
42656 __decorate([
42657 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
42658 ], PaginationComp.prototype, "postConstruct", null);
42659 return PaginationComp;
42660}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
42661
42662
42663
42664/***/ }),
42665/* 188 */
42666/***/ (function(module, __webpack_exports__, __webpack_require__) {
42667
42668"use strict";
42669__webpack_require__.r(__webpack_exports__);
42670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return ResizeObserverService; });
42671/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42672/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
42673/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
42674/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
42675/**
42676 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42677 * @version v25.3.0
42678 * @link http://www.ag-grid.com/
42679 * @license MIT
42680 */
42681var __extends = (undefined && undefined.__extends) || (function () {
42682 var extendStatics = function (d, b) {
42683 extendStatics = Object.setPrototypeOf ||
42684 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42685 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42686 return extendStatics(d, b);
42687 };
42688 return function (d, b) {
42689 extendStatics(d, b);
42690 function __() { this.constructor = d; }
42691 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42692 };
42693})();
42694var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42695 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42696 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42697 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;
42698 return c > 3 && r && Object.defineProperty(target, key, r), r;
42699};
42700
42701
42702
42703
42704var ResizeObserverService = /** @class */ (function (_super) {
42705 __extends(ResizeObserverService, _super);
42706 function ResizeObserverService() {
42707 return _super !== null && _super.apply(this, arguments) || this;
42708 }
42709 ResizeObserverService.prototype.observeResize = function (element, callback, debounceDelay) {
42710 if (debounceDelay === void 0) { debounceDelay = 50; }
42711 // put in variable, so available to usePolyfill() function below
42712 var frameworkFactory = this.getFrameworkOverrides();
42713 // this gets fired too often and might cause some relayout issues
42714 // so we add a debounce to the callback here to avoid the flashing effect.
42715 var debouncedCallback = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["debounce"])(callback, debounceDelay);
42716 var useBrowserResizeObserver = function () {
42717 var resizeObserver = new window.ResizeObserver(debouncedCallback);
42718 resizeObserver.observe(element);
42719 return function () { return resizeObserver.disconnect(); };
42720 };
42721 var usePolyfill = function () {
42722 // initialise to the current width and height, so first call will have no changes
42723 var widthLastTime = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetWidth"])(element);
42724 var heightLastTime = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetHeight"])(element);
42725 // when finished, this gets turned to false.
42726 var running = true;
42727 var periodicallyCheckWidthAndHeight = function () {
42728 if (running) {
42729 var newWidth = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetWidth"])(element);
42730 var newHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetHeight"])(element);
42731 var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;
42732 if (changed) {
42733 widthLastTime = newWidth;
42734 heightLastTime = newHeight;
42735 callback();
42736 }
42737 frameworkFactory.setTimeout(periodicallyCheckWidthAndHeight, debounceDelay);
42738 }
42739 };
42740 periodicallyCheckWidthAndHeight();
42741 // the callback function we return sets running to false
42742 return function () { return running = false; };
42743 };
42744 var suppressResize = this.gridOptionsWrapper.isSuppressBrowserResizeObserver();
42745 var resizeObserverExists = !!window.ResizeObserver;
42746 if (resizeObserverExists && !suppressResize) {
42747 return useBrowserResizeObserver();
42748 }
42749 else {
42750 return usePolyfill();
42751 }
42752 };
42753 ResizeObserverService = __decorate([
42754 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('resizeObserverService')
42755 ], ResizeObserverService);
42756 return ResizeObserverService;
42757}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42758
42759
42760
42761/***/ }),
42762/* 189 */
42763/***/ (function(module, __webpack_exports__, __webpack_require__) {
42764
42765"use strict";
42766__webpack_require__.r(__webpack_exports__);
42767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverlayWrapperComponent", function() { return OverlayWrapperComponent; });
42768/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
42769/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
42770/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
42771/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
42772/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(137);
42773/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(24);
42774/**
42775 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42776 * @version v25.3.0
42777 * @link http://www.ag-grid.com/
42778 * @license MIT
42779 */
42780var __extends = (undefined && undefined.__extends) || (function () {
42781 var extendStatics = function (d, b) {
42782 extendStatics = Object.setPrototypeOf ||
42783 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42784 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42785 return extendStatics(d, b);
42786 };
42787 return function (d, b) {
42788 extendStatics(d, b);
42789 function __() { this.constructor = d; }
42790 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42791 };
42792})();
42793var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42794 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42795 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42796 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;
42797 return c > 3 && r && Object.defineProperty(target, key, r), r;
42798};
42799
42800
42801
42802
42803
42804
42805var LoadingType;
42806(function (LoadingType) {
42807 LoadingType[LoadingType["Loading"] = 0] = "Loading";
42808 LoadingType[LoadingType["NoRows"] = 1] = "NoRows";
42809})(LoadingType || (LoadingType = {}));
42810var OverlayWrapperComponent = /** @class */ (function (_super) {
42811 __extends(OverlayWrapperComponent, _super);
42812 function OverlayWrapperComponent() {
42813 var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;
42814 _this.inProgress = false;
42815 _this.destroyRequested = false;
42816 return _this;
42817 }
42818 OverlayWrapperComponent.prototype.updateLayoutClasses = function (params) {
42819 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
42820 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].NORMAL, params.normal);
42821 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].PRINT, params.print);
42822 };
42823 OverlayWrapperComponent.prototype.postConstruct = function () {
42824 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutFeature"](this));
42825 this.setDisplayed(false);
42826 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_ROW_DATA_CHANGED, this.onRowDataChanged.bind(this));
42827 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_ROW_DATA_UPDATED, this.onRowDataChanged.bind(this));
42828 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
42829 if (this.gridOptionsWrapper.isRowModelDefault() && !this.gridOptionsWrapper.getRowData()) {
42830 this.showLoadingOverlay();
42831 }
42832 this.gridApi.registerOverlayWrapperComp(this);
42833 };
42834 OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {
42835 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, 'ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);
42836 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addOrRemoveCssClass"])(this.eOverlayWrapper, 'ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);
42837 };
42838 OverlayWrapperComponent.prototype.showLoadingOverlay = function () {
42839 if (this.gridOptionsWrapper.isSuppressLoadingOverlay()) {
42840 return;
42841 }
42842 var workItem = this.userComponentFactory.newLoadingOverlayComponent({
42843 api: this.gridOptionsWrapper.getApi()
42844 });
42845 this.showOverlay(workItem, LoadingType.Loading);
42846 };
42847 OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {
42848 if (this.gridOptionsWrapper.isSuppressNoRowsOverlay()) {
42849 return;
42850 }
42851 var workItem = this.userComponentFactory.newNoRowsOverlayComponent({
42852 api: this.gridOptionsWrapper.getApi()
42853 });
42854 this.showOverlay(workItem, LoadingType.NoRows);
42855 };
42856 OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {
42857 var _this = this;
42858 if (this.inProgress) {
42859 return;
42860 }
42861 this.setWrapperTypeClass(type);
42862 this.destroyActiveOverlay();
42863 this.inProgress = true;
42864 if (workItem) {
42865 workItem.then(function (comp) {
42866 _this.inProgress = false;
42867 _this.eOverlayWrapper.appendChild(comp.getGui());
42868 _this.activeOverlay = comp;
42869 if (_this.destroyRequested) {
42870 _this.destroyRequested = false;
42871 _this.destroyActiveOverlay();
42872 }
42873 });
42874 }
42875 this.setDisplayed(true);
42876 };
42877 OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {
42878 if (this.inProgress) {
42879 this.destroyRequested = true;
42880 return;
42881 }
42882 if (!this.activeOverlay) {
42883 return;
42884 }
42885 this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);
42886 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eOverlayWrapper);
42887 };
42888 OverlayWrapperComponent.prototype.hideOverlay = function () {
42889 this.destroyActiveOverlay();
42890 this.setDisplayed(false);
42891 };
42892 OverlayWrapperComponent.prototype.destroy = function () {
42893 this.destroyActiveOverlay();
42894 _super.prototype.destroy.call(this);
42895 };
42896 OverlayWrapperComponent.prototype.showOrHideOverlay = function () {
42897 var isEmpty = this.paginationProxy.isEmpty();
42898 var isSuppressNoRowsOverlay = this.gridOptionsWrapper.isSuppressNoRowsOverlay();
42899 if (isEmpty && !isSuppressNoRowsOverlay) {
42900 this.showNoRowsOverlay();
42901 }
42902 else {
42903 this.hideOverlay();
42904 }
42905 };
42906 OverlayWrapperComponent.prototype.onRowDataChanged = function () {
42907 this.showOrHideOverlay();
42908 };
42909 OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {
42910 // hide overlay if columns and rows exist, this can happen if columns are loaded after data.
42911 // this problem exists before of the race condition between the services (column controller in this case)
42912 // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,
42913 // this race condition would not happen.
42914 if (this.columnController.isReady() && !this.paginationProxy.isEmpty()) {
42915 this.hideOverlay();
42916 }
42917 };
42918 // wrapping in outer div, and wrapper, is needed to center the loading icon
42919 // The idea for centering came from here: http://www.vanseodesign.com/css/vertical-centering/
42920 OverlayWrapperComponent.TEMPLATE = "\n <div class=\"ag-overlay\" aria-hidden=\"true\">\n <div class=\"ag-overlay-panel\">\n <div class=\"ag-overlay-wrapper\" ref=\"eOverlayWrapper\"></div>\n </div>\n </div>";
42921 __decorate([
42922 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
42923 ], OverlayWrapperComponent.prototype, "userComponentFactory", void 0);
42924 __decorate([
42925 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
42926 ], OverlayWrapperComponent.prototype, "paginationProxy", void 0);
42927 __decorate([
42928 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
42929 ], OverlayWrapperComponent.prototype, "gridApi", void 0);
42930 __decorate([
42931 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
42932 ], OverlayWrapperComponent.prototype, "columnController", void 0);
42933 __decorate([
42934 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eOverlayWrapper')
42935 ], OverlayWrapperComponent.prototype, "eOverlayWrapper", void 0);
42936 __decorate([
42937 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
42938 ], OverlayWrapperComponent.prototype, "postConstruct", null);
42939 return OverlayWrapperComponent;
42940}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
42941
42942
42943
42944/***/ }),
42945/* 190 */
42946/***/ (function(module, __webpack_exports__, __webpack_require__) {
42947
42948"use strict";
42949__webpack_require__.r(__webpack_exports__);
42950/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return AgGroupComponent; });
42951/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
42952/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
42953/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
42954/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50);
42955/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
42956/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
42957/**
42958 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
42959 * @version v25.3.0
42960 * @link http://www.ag-grid.com/
42961 * @license MIT
42962 */
42963var __extends = (undefined && undefined.__extends) || (function () {
42964 var extendStatics = function (d, b) {
42965 extendStatics = Object.setPrototypeOf ||
42966 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42967 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
42968 return extendStatics(d, b);
42969 };
42970 return function (d, b) {
42971 extendStatics(d, b);
42972 function __() { this.constructor = d; }
42973 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42974 };
42975})();
42976var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42977 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42978 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42979 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;
42980 return c > 3 && r && Object.defineProperty(target, key, r), r;
42981};
42982
42983
42984
42985
42986
42987
42988var AgGroupComponent = /** @class */ (function (_super) {
42989 __extends(AgGroupComponent, _super);
42990 function AgGroupComponent(params) {
42991 if (params === void 0) { params = {}; }
42992 var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;
42993 _this.suppressEnabledCheckbox = true;
42994 _this.suppressOpenCloseIcons = false;
42995 var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;
42996 _this.title = title;
42997 _this.cssIdentifier = params.cssIdentifier || 'default';
42998 _this.enabled = enabled != null ? enabled : true;
42999 _this.items = items || [];
43000 _this.alignItems = params.alignItems || 'center';
43001 if (suppressEnabledCheckbox != null) {
43002 _this.suppressEnabledCheckbox = suppressEnabledCheckbox;
43003 }
43004 if (suppressOpenCloseIcons != null) {
43005 _this.suppressOpenCloseIcons = suppressOpenCloseIcons;
43006 }
43007 return _this;
43008 }
43009 AgGroupComponent.getTemplate = function (params) {
43010 var cssIdentifier = params.cssIdentifier || 'default';
43011 var direction = params.direction || 'vertical';
43012 return /* html */ "<div class=\"ag-group ag-" + cssIdentifier + "-group\">\n <div class=\"ag-group-title-bar ag-" + cssIdentifier + "-group-title-bar ag-unselectable\" ref=\"eTitleBar\">\n <span class=\"ag-group-title-bar-icon ag-" + cssIdentifier + "-group-title-bar-icon\" ref=\"eGroupOpenedIcon\"></span>\n <span class=\"ag-group-title-bar-icon ag-" + cssIdentifier + "-group-title-bar-icon\" ref=\"eGroupClosedIcon\"></span>\n <span ref=\"eTitle\" class=\"ag-group-title ag-" + cssIdentifier + "-group-title\"></span>\n </div>\n <div ref=\"eToolbar\" class=\"ag-group-toolbar ag-" + cssIdentifier + "-group-toolbar\">\n <ag-checkbox ref=\"cbGroupEnabled\"></ag-checkbox>\n </div>\n <div ref=\"eContainer\" class=\"ag-group-container ag-group-container-" + direction + " ag-" + cssIdentifier + "-group-container\"></div>\n </div>";
43013 };
43014 AgGroupComponent.prototype.postConstruct = function () {
43015 if (this.items.length) {
43016 var initialItems = this.items;
43017 this.items = [];
43018 this.addItems(initialItems);
43019 }
43020 var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();
43021 this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));
43022 if (this.title) {
43023 this.setTitle(this.title);
43024 }
43025 if (this.enabled) {
43026 this.setEnabled(this.enabled);
43027 }
43028 this.setAlignItems(this.alignItems);
43029 this.hideEnabledCheckbox(this.suppressEnabledCheckbox);
43030 this.hideOpenCloseIcons(this.suppressOpenCloseIcons);
43031 this.setupExpandContract();
43032 this.refreshChildDisplay();
43033 };
43034 AgGroupComponent.prototype.setupExpandContract = function () {
43035 var _this = this;
43036 this.eGroupClosedIcon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnSelectClosed', this.gridOptionsWrapper, null));
43037 this.eGroupOpenedIcon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnSelectOpen', this.gridOptionsWrapper, null));
43038 this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });
43039 this.addManagedListener(this.eTitleBar, 'keydown', function (e) {
43040 switch (e.keyCode) {
43041 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].ENTER:
43042 _this.toggleGroupExpand();
43043 break;
43044 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT:
43045 _this.toggleGroupExpand(true);
43046 break;
43047 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].LEFT:
43048 _this.toggleGroupExpand(false);
43049 break;
43050 }
43051 });
43052 };
43053 AgGroupComponent.prototype.refreshChildDisplay = function () {
43054 var showIcon = !this.suppressOpenCloseIcons;
43055 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);
43056 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eGroupOpenedIcon, showIcon && this.expanded);
43057 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eGroupClosedIcon, showIcon && !this.expanded);
43058 };
43059 AgGroupComponent.prototype.isExpanded = function () {
43060 return this.expanded;
43061 };
43062 AgGroupComponent.prototype.setAlignItems = function (alignment) {
43063 var eGui = this.getGui();
43064 if (this.alignItems !== alignment) {
43065 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(eGui, "ag-group-item-alignment-" + this.alignItems);
43066 }
43067 this.alignItems = alignment;
43068 var newCls = "ag-group-item-alignment-" + this.alignItems;
43069 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(eGui, newCls);
43070 return this;
43071 };
43072 AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {
43073 if (this.suppressOpenCloseIcons) {
43074 this.expanded = true;
43075 this.refreshChildDisplay();
43076 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eContainer, true);
43077 return this;
43078 }
43079 expanded = expanded != null ? expanded : !this.expanded;
43080 if (this.expanded === expanded) {
43081 return this;
43082 }
43083 this.expanded = expanded;
43084 this.refreshChildDisplay();
43085 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eContainer, expanded);
43086 this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });
43087 return this;
43088 };
43089 AgGroupComponent.prototype.addItems = function (items) {
43090 var _this = this;
43091 items.forEach(function (item) { return _this.addItem(item); });
43092 };
43093 AgGroupComponent.prototype.addItem = function (item) {
43094 var container = this.eContainer;
43095 var el = item instanceof _component__WEBPACK_IMPORTED_MODULE_0__["Component"] ? item.getGui() : item;
43096 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(el, 'ag-group-item');
43097 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(el, "ag-" + this.cssIdentifier + "-group-item");
43098 container.appendChild(el);
43099 this.items.push(el);
43100 };
43101 AgGroupComponent.prototype.hideItem = function (hide, index) {
43102 var itemToHide = this.items[index];
43103 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(itemToHide, 'ag-hidden', hide);
43104 };
43105 AgGroupComponent.prototype.setTitle = function (title) {
43106 this.eTitle.innerText = title;
43107 return this;
43108 };
43109 AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {
43110 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.eTitleBar, cssClass);
43111 };
43112 AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {
43113 this.enabled = enabled;
43114 this.refreshDisabledStyles();
43115 this.toggleGroupExpand(enabled);
43116 if (!skipToggle) {
43117 this.cbGroupEnabled.setValue(enabled);
43118 }
43119 return this;
43120 };
43121 AgGroupComponent.prototype.isEnabled = function () {
43122 return this.enabled;
43123 };
43124 AgGroupComponent.prototype.onEnableChange = function (callbackFn) {
43125 var _this = this;
43126 this.cbGroupEnabled.onValueChange(function (newSelection) {
43127 _this.setEnabled(newSelection, true);
43128 callbackFn(newSelection);
43129 });
43130 return this;
43131 };
43132 AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {
43133 this.suppressEnabledCheckbox = hide;
43134 this.refreshChildDisplay();
43135 this.refreshDisabledStyles();
43136 return this;
43137 };
43138 AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {
43139 this.suppressOpenCloseIcons = hide;
43140 if (hide) {
43141 this.toggleGroupExpand(true);
43142 }
43143 return this;
43144 };
43145 AgGroupComponent.prototype.refreshDisabledStyles = function () {
43146 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(this.getGui(), 'ag-disabled', !this.enabled);
43147 if (this.suppressEnabledCheckbox && !this.enabled) {
43148 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.eTitleBar, 'ag-disabled-group-title-bar');
43149 this.eTitleBar.removeAttribute('tabindex');
43150 }
43151 else {
43152 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(this.eTitleBar, 'ag-disabled-group-title-bar');
43153 this.eTitleBar.setAttribute('tabindex', '0');
43154 }
43155 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(this.eContainer, 'ag-disabled-group-container', !this.enabled);
43156 };
43157 AgGroupComponent.EVENT_EXPANDED = 'expanded';
43158 AgGroupComponent.EVENT_COLLAPSED = 'collapsed';
43159 __decorate([
43160 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eTitleBar')
43161 ], AgGroupComponent.prototype, "eTitleBar", void 0);
43162 __decorate([
43163 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eGroupOpenedIcon')
43164 ], AgGroupComponent.prototype, "eGroupOpenedIcon", void 0);
43165 __decorate([
43166 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eGroupClosedIcon')
43167 ], AgGroupComponent.prototype, "eGroupClosedIcon", void 0);
43168 __decorate([
43169 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eToolbar')
43170 ], AgGroupComponent.prototype, "eToolbar", void 0);
43171 __decorate([
43172 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('cbGroupEnabled')
43173 ], AgGroupComponent.prototype, "cbGroupEnabled", void 0);
43174 __decorate([
43175 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eTitle')
43176 ], AgGroupComponent.prototype, "eTitle", void 0);
43177 __decorate([
43178 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
43179 ], AgGroupComponent.prototype, "eContainer", void 0);
43180 __decorate([
43181 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
43182 ], AgGroupComponent.prototype, "postConstruct", null);
43183 return AgGroupComponent;
43184}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
43185
43186
43187
43188/***/ }),
43189/* 191 */
43190/***/ (function(module, __webpack_exports__, __webpack_require__) {
43191
43192"use strict";
43193__webpack_require__.r(__webpack_exports__);
43194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return AgDialog; });
43195/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
43196/* harmony import */ var _agPanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(192);
43197/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
43198/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
43199/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50);
43200/**
43201 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43202 * @version v25.3.0
43203 * @link http://www.ag-grid.com/
43204 * @license MIT
43205 */
43206var __extends = (undefined && undefined.__extends) || (function () {
43207 var extendStatics = function (d, b) {
43208 extendStatics = Object.setPrototypeOf ||
43209 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43210 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
43211 return extendStatics(d, b);
43212 };
43213 return function (d, b) {
43214 extendStatics(d, b);
43215 function __() { this.constructor = d; }
43216 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43217 };
43218})();
43219var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43220 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43221 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43222 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;
43223 return c > 3 && r && Object.defineProperty(target, key, r), r;
43224};
43225
43226
43227
43228
43229
43230var AgDialog = /** @class */ (function (_super) {
43231 __extends(AgDialog, _super);
43232 function AgDialog(config) {
43233 var _this = _super.call(this, config) || this;
43234 _this.RESIZE_TEMPLATE = "<div class=\"ag-resizer-wrapper\">\n <div ref=\"eTopLeftResizer\" class=\"ag-resizer ag-resizer-topLeft\"></div>\n <div ref=\"eTopResizer\" class=\"ag-resizer ag-resizer-top\"></div>\n <div ref=\"eTopRightResizer\" class=\"ag-resizer ag-resizer-topRight\"></div>\n <div ref=\"eRightResizer\" class=\"ag-resizer ag-resizer-right\"></div>\n <div ref=\"eBottomRightResizer\" class=\"ag-resizer ag-resizer-bottomRight\"></div>\n <div ref=\"eBottomResizer\" class=\"ag-resizer ag-resizer-bottom\"></div>\n <div ref=\"eBottomLeftResizer\" class=\"ag-resizer ag-resizer-bottomLeft\"></div>\n <div ref=\"eLeftResizer\" class=\"ag-resizer ag-resizer-left\"></div>\n </div>";
43235 _this.resizable = {};
43236 _this.movable = false;
43237 _this.isMoving = false;
43238 _this.isMaximizable = false;
43239 _this.isMaximized = false;
43240 _this.maximizeListeners = [];
43241 _this.resizeListenerDestroy = null;
43242 _this.isResizing = false;
43243 _this.lastPosition = {
43244 x: 0,
43245 y: 0,
43246 width: 0,
43247 height: 0
43248 };
43249 return _this;
43250 }
43251 AgDialog.prototype.postConstruct = function () {
43252 var _this = this;
43253 var eGui = this.getGui();
43254 var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;
43255 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eGui, 'ag-dialog');
43256 this.moveElement = this.eTitleBar;
43257 _super.prototype.postConstruct.call(this);
43258 this.addManagedListener(eGui, 'focusin', function (e) {
43259 if (eGui.contains(e.relatedTarget)) {
43260 return;
43261 }
43262 _this.popupService.bringPopupToFront(eGui);
43263 });
43264 if (movable) {
43265 this.setMovable(movable);
43266 }
43267 if (maximizable) {
43268 this.setMaximizable(maximizable);
43269 }
43270 this.addResizers();
43271 if (resizable) {
43272 this.setResizable(resizable);
43273 }
43274 };
43275 AgDialog.prototype.renderComponent = function () {
43276 var eGui = this.getGui();
43277 var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal;
43278 var addPopupRes = this.popupService.addPopup({
43279 modal: modal,
43280 eChild: eGui,
43281 closeOnEsc: true,
43282 closedCallback: this.destroy.bind(this),
43283 alwaysOnTop: alwaysOnTop
43284 });
43285 if (addPopupRes) {
43286 this.close = addPopupRes.hideFunc;
43287 }
43288 };
43289 AgDialog.prototype.addResizers = function () {
43290 var eGui = this.getGui();
43291 if (!eGui) {
43292 return;
43293 }
43294 var parser = new DOMParser();
43295 var resizers = parser.parseFromString(this.RESIZE_TEMPLATE, 'text/html').body;
43296 eGui.appendChild(resizers.firstChild);
43297 this.createMap();
43298 };
43299 AgDialog.prototype.createMap = function () {
43300 var eGui = this.getGui();
43301 this.resizerMap = {
43302 topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },
43303 top: { element: eGui.querySelector('[ref=eTopResizer]') },
43304 topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },
43305 right: { element: eGui.querySelector('[ref=eRightResizer]') },
43306 bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },
43307 bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },
43308 bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },
43309 left: { element: eGui.querySelector('[ref=eLeftResizer]') }
43310 };
43311 };
43312 AgDialog.prototype.getResizerElement = function (side) {
43313 return this.resizerMap[side].element;
43314 };
43315 AgDialog.prototype.onResizeStart = function (e) {
43316 this.isResizing = true;
43317 this.updateDragStartPosition(e.clientX, e.clientY);
43318 };
43319 AgDialog.prototype.onResize = function (e, side) {
43320 if (!this.isResizing) {
43321 return;
43322 }
43323 var isLeft = !!side.match(/left/i);
43324 var isRight = !!side.match(/right/i);
43325 var isTop = !!side.match(/top/i);
43326 var isBottom = !!side.match(/bottom/i);
43327 var isHorizontal = isLeft || isRight;
43328 var isVertical = isTop || isBottom;
43329 var _a = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _a.movementX, movementY = _a.movementY;
43330 var offsetLeft = 0;
43331 var offsetTop = 0;
43332 if (isHorizontal && movementX) {
43333 var direction = isLeft ? -1 : 1;
43334 var oldWidth = this.getWidth();
43335 var newWidth = oldWidth + (movementX * direction);
43336 var skipWidth = false;
43337 if (isLeft) {
43338 offsetLeft = oldWidth - newWidth;
43339 if (this.position.x + offsetLeft <= 0 || newWidth <= this.minWidth) {
43340 skipWidth = true;
43341 offsetLeft = 0;
43342 }
43343 }
43344 if (!skipWidth) {
43345 this.setWidth(newWidth);
43346 }
43347 }
43348 if (isVertical && movementY) {
43349 var direction = isTop ? -1 : 1;
43350 var oldHeight = this.getHeight();
43351 var newHeight = oldHeight + (movementY * direction);
43352 var skipHeight = false;
43353 if (isTop) {
43354 offsetTop = oldHeight - newHeight;
43355 if (this.position.y + offsetTop <= 0 || newHeight <= this.minHeight) {
43356 skipHeight = true;
43357 offsetTop = 0;
43358 }
43359 }
43360 if (!skipHeight) {
43361 this.setHeight(newHeight);
43362 }
43363 }
43364 this.updateDragStartPosition(e.clientX, e.clientY);
43365 if (offsetLeft || offsetTop) {
43366 this.offsetElement(this.position.x + offsetLeft, this.position.y + offsetTop);
43367 }
43368 };
43369 AgDialog.prototype.onResizeEnd = function () {
43370 this.isResizing = false;
43371 var params = {
43372 type: 'resize',
43373 api: this.gridOptionsWrapper.getApi(),
43374 columnApi: this.gridOptionsWrapper.getColumnApi()
43375 };
43376 this.dispatchEvent(params);
43377 };
43378 AgDialog.prototype.onMoveStart = function (e) {
43379 this.isMoving = true;
43380 this.updateDragStartPosition(e.clientX, e.clientY);
43381 };
43382 AgDialog.prototype.onMove = function (e) {
43383 if (!this.isMoving) {
43384 return;
43385 }
43386 var _a = this.position, x = _a.x, y = _a.y;
43387 var _b = this.calculateMouseMovement({
43388 e: e,
43389 isTop: true,
43390 anywhereWithin: true,
43391 topBuffer: this.getHeight() - this.getBodyHeight()
43392 }), movementX = _b.movementX, movementY = _b.movementY;
43393 this.offsetElement(x + movementX, y + movementY);
43394 this.updateDragStartPosition(e.clientX, e.clientY);
43395 };
43396 AgDialog.prototype.onMoveEnd = function () {
43397 this.isMoving = false;
43398 };
43399 AgDialog.prototype.toggleMaximize = function () {
43400 if (this.isMaximized) {
43401 var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;
43402 this.setWidth(width);
43403 this.setHeight(height);
43404 this.offsetElement(x, y);
43405 }
43406 else {
43407 this.lastPosition.width = this.getWidth();
43408 this.lastPosition.height = this.getHeight();
43409 this.lastPosition.x = this.position.x;
43410 this.lastPosition.y = this.position.y;
43411 this.offsetElement(0, 0);
43412 this.setHeight('100%');
43413 this.setWidth('100%');
43414 }
43415 this.isMaximized = !this.isMaximized;
43416 this.refreshMaximizeIcon();
43417 };
43418 AgDialog.prototype.refreshMaximizeIcon = function () {
43419 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.maximizeIcon, !this.isMaximized);
43420 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.minimizeIcon, this.isMaximized);
43421 };
43422 AgDialog.prototype.clearMaximizebleListeners = function () {
43423 if (this.maximizeListeners.length) {
43424 this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });
43425 this.maximizeListeners.length = 0;
43426 }
43427 if (this.resizeListenerDestroy) {
43428 this.resizeListenerDestroy();
43429 this.resizeListenerDestroy = null;
43430 }
43431 };
43432 AgDialog.prototype.destroy = function () {
43433 this.setResizable(false);
43434 this.setMovable(false);
43435 this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);
43436 this.clearMaximizebleListeners();
43437 _super.prototype.destroy.call(this);
43438 };
43439 AgDialog.prototype.setResizable = function (resizable) {
43440 var _this = this;
43441 if (typeof resizable === 'boolean') {
43442 resizable = {
43443 topLeft: resizable,
43444 top: resizable,
43445 topRight: resizable,
43446 right: resizable,
43447 bottomRight: resizable,
43448 bottom: resizable,
43449 bottomLeft: resizable,
43450 left: resizable
43451 };
43452 }
43453 Object.keys(resizable).forEach(function (side) {
43454 var r = resizable;
43455 var s = side;
43456 var val = !!r[s];
43457 var el = _this.getResizerElement(s);
43458 var params = _this.resizerMap[s].dragSource || {
43459 eElement: el,
43460 onDragStart: _this.onResizeStart.bind(_this),
43461 onDragging: function (e) { return _this.onResize(e, s); },
43462 onDragStop: _this.onResizeEnd.bind(_this),
43463 };
43464 if (!!_this.resizable[s] !== val || (!_this.isAlive() && !val)) {
43465 if (val) {
43466 _this.dragService.addDragSource(params);
43467 el.style.pointerEvents = 'all';
43468 }
43469 else {
43470 _this.dragService.removeDragSource(params);
43471 el.style.pointerEvents = 'none';
43472 }
43473 _this.resizerMap[s].dragSource = val ? params : undefined;
43474 }
43475 });
43476 };
43477 AgDialog.prototype.setMovable = function (movable) {
43478 if (movable === this.movable) {
43479 return;
43480 }
43481 this.movable = movable;
43482 var params = this.moveElementDragListener || {
43483 eElement: this.moveElement,
43484 onDragStart: this.onMoveStart.bind(this),
43485 onDragging: this.onMove.bind(this),
43486 onDragStop: this.onMoveEnd.bind(this)
43487 };
43488 if (movable) {
43489 this.dragService.addDragSource(params);
43490 this.moveElementDragListener = params;
43491 }
43492 else {
43493 this.dragService.removeDragSource(params);
43494 this.moveElementDragListener = undefined;
43495 }
43496 };
43497 AgDialog.prototype.setMaximizable = function (maximizable) {
43498 var _this = this;
43499 if (!maximizable) {
43500 this.clearMaximizebleListeners();
43501 if (this.maximizeButtonComp) {
43502 this.destroyBean(this.maximizeButtonComp);
43503 this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;
43504 }
43505 return;
43506 }
43507 var eTitleBar = this.eTitleBar;
43508 if (!eTitleBar || maximizable === this.isMaximizable) {
43509 return;
43510 }
43511 var maximizeButtonComp = this.maximizeButtonComp =
43512 this.createBean(new _component__WEBPACK_IMPORTED_MODULE_2__["Component"](/* html */ "<div class=\"ag-dialog-button\"></span>"));
43513 var eGui = maximizeButtonComp.getGui();
43514 eGui.appendChild(this.maximizeIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('maximize', this.gridOptionsWrapper));
43515 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.maximizeIcon, 'ag-panel-title-bar-button-icon');
43516 eGui.appendChild(this.minimizeIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('minimize', this.gridOptionsWrapper));
43517 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.minimizeIcon, 'ag-panel-title-bar-button-icon');
43518 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.minimizeIcon, 'ag-hidden');
43519 maximizeButtonComp.addManagedListener(eGui, 'click', this.toggleMaximize.bind(this));
43520 this.addTitleBarButton(maximizeButtonComp, 0);
43521 this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));
43522 this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {
43523 _this.isMaximized = false;
43524 _this.refreshMaximizeIcon();
43525 });
43526 };
43527 __decorate([
43528 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragService')
43529 ], AgDialog.prototype, "dragService", void 0);
43530 return AgDialog;
43531}(_agPanel__WEBPACK_IMPORTED_MODULE_1__["AgPanel"]));
43532
43533
43534
43535/***/ }),
43536/* 192 */
43537/***/ (function(module, __webpack_exports__, __webpack_require__) {
43538
43539"use strict";
43540__webpack_require__.r(__webpack_exports__);
43541/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return AgPanel; });
43542/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
43543/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
43544/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
43545/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
43546/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50);
43547/**
43548 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43549 * @version v25.3.0
43550 * @link http://www.ag-grid.com/
43551 * @license MIT
43552 */
43553var __extends = (undefined && undefined.__extends) || (function () {
43554 var extendStatics = function (d, b) {
43555 extendStatics = Object.setPrototypeOf ||
43556 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43557 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
43558 return extendStatics(d, b);
43559 };
43560 return function (d, b) {
43561 extendStatics(d, b);
43562 function __() { this.constructor = d; }
43563 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43564 };
43565})();
43566var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43567 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43568 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43569 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;
43570 return c > 3 && r && Object.defineProperty(target, key, r), r;
43571};
43572
43573
43574
43575
43576
43577var AgPanel = /** @class */ (function (_super) {
43578 __extends(AgPanel, _super);
43579 function AgPanel(config) {
43580 var _this = _super.call(this, AgPanel.getTemplate(config)) || this;
43581 _this.closable = true;
43582 _this.positioned = false;
43583 _this.dragStartPosition = {
43584 x: 0,
43585 y: 0
43586 };
43587 _this.position = {
43588 x: 0,
43589 y: 0
43590 };
43591 _this.size = {
43592 width: undefined,
43593 height: undefined
43594 };
43595 _this.config = config;
43596 return _this;
43597 }
43598 AgPanel.getTemplate = function (config) {
43599 var cssIdentifier = (config && config.cssIdentifier) || 'default';
43600 return /* html */ "<div class=\"ag-panel ag-" + cssIdentifier + "-panel\" tabindex=\"-1\">\n <div ref=\"eTitleBar\" class=\"ag-panel-title-bar ag-" + cssIdentifier + "-panel-title-bar ag-unselectable\">\n <span ref=\"eTitle\" class=\"ag-panel-title-bar-title ag-" + cssIdentifier + "-panel-title-bar-title\"></span>\n <div ref=\"eTitleBarButtons\" class=\"ag-panel-title-bar-buttons ag-" + cssIdentifier + "-panel-title-bar-buttons\"></div>\n </div>\n <div ref=\"eContentWrapper\" class=\"ag-panel-content-wrapper ag-" + cssIdentifier + "-panel-content-wrapper\"></div>\n </div>";
43601 };
43602 AgPanel.prototype.postConstruct = function () {
43603 var _this = this;
43604 var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, centered = _a.centered, x = _a.x, y = _a.y;
43605 var eGui = this.getGui();
43606 if (component) {
43607 this.setBodyComponent(component);
43608 }
43609 if (!hideTitleBar) {
43610 if (title) {
43611 this.setTitle(title);
43612 }
43613 this.setClosable(closable != null ? closable : this.closable);
43614 }
43615 else {
43616 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(this.eTitleBar, 'ag-hidden');
43617 }
43618 this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {
43619 if (eGui.contains(e.relatedTarget) ||
43620 eGui.contains(document.activeElement) ||
43621 _this.eTitleBarButtons.contains(e.target)) {
43622 e.preventDefault();
43623 return;
43624 }
43625 var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');
43626 if (focusEl) {
43627 focusEl.focus();
43628 }
43629 });
43630 if (this.positioned) {
43631 return;
43632 }
43633 this.minHeight = minHeight != null ? minHeight : 250;
43634 this.minWidth = minWidth != null ? minWidth : 250;
43635 this.popupParent = this.popupService.getPopupParent();
43636 if (width) {
43637 this.setWidth(width);
43638 }
43639 if (height) {
43640 this.setHeight(height);
43641 }
43642 if (this.renderComponent) {
43643 this.renderComponent();
43644 }
43645 if (!width || !height) {
43646 this.refreshSize();
43647 }
43648 if (centered) {
43649 this.center();
43650 }
43651 else if (x || y) {
43652 this.offsetElement(x, y);
43653 }
43654 this.positioned = true;
43655 this.eContentWrapper.style.height = '0';
43656 };
43657 AgPanel.prototype.renderComponent = function () {
43658 var _this = this;
43659 var eGui = this.getGui();
43660 eGui.focus();
43661 this.close = function () {
43662 eGui.parentElement.removeChild(eGui);
43663 _this.destroy();
43664 };
43665 };
43666 AgPanel.prototype.updateDragStartPosition = function (x, y) {
43667 this.dragStartPosition = { x: x, y: y };
43668 };
43669 AgPanel.prototype.calculateMouseMovement = function (params) {
43670 var parentRect = this.popupParent.getBoundingClientRect();
43671 var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;
43672 var movementX = e.clientX - this.dragStartPosition.x;
43673 var movementY = e.clientY - this.dragStartPosition.y;
43674 var width = this.getWidth();
43675 var height = this.getHeight();
43676 // skip if cursor is outside of popupParent horizontally
43677 var skipX = (parentRect.left >= e.clientX && this.position.x <= 0 ||
43678 parentRect.right <= e.clientX && parentRect.right <= this.position.x + parentRect.left + width);
43679 if (!skipX) {
43680 if (isLeft) {
43681 skipX = (
43682 // skip if we are moving to the left and the cursor
43683 // is positioned to the right of the left side anchor
43684 (movementX < 0 && e.clientX > this.position.x + parentRect.left) ||
43685 // skip if we are moving to the right and the cursor
43686 // is positioned to the left of the dialog
43687 (movementX > 0 && e.clientX < this.position.x + parentRect.left));
43688 }
43689 else {
43690 if (anywhereWithin) {
43691 // if anywhereWithin is true, we allow to move
43692 // as long as the cursor is within the dialog
43693 skipX = ((movementX < 0 && e.clientX > this.position.x + parentRect.left + width) ||
43694 (movementX > 0 && e.clientX < this.position.x + parentRect.left));
43695 }
43696 else {
43697 skipX = (
43698 // if the movement is bound to the right side of the dialog
43699 // we skip if we are moving to the left and the cursor
43700 // is to the right of the dialog
43701 (movementX < 0 && e.clientX > this.position.x + parentRect.left + width) ||
43702 // or skip if we are moving to the right and the cursor
43703 // is to the left of the right side anchor
43704 (movementX > 0 && e.clientX < this.position.x + parentRect.left + width));
43705 }
43706 }
43707 }
43708 movementX = skipX ? 0 : movementX;
43709 var skipY = (
43710 // skip if cursor is outside of popupParent vertically
43711 parentRect.top >= e.clientY && this.position.y <= 0 ||
43712 parentRect.bottom <= e.clientY && parentRect.bottom <= this.position.y + parentRect.top + height ||
43713 isTop && (
43714 // skip if we are moving to towards top and the cursor is
43715 // below the top anchor + topBuffer
43716 // note: topBuffer is used when moving the dialog using the title bar
43717 (movementY < 0 && e.clientY > this.position.y + parentRect.top + (topBuffer || 0)) ||
43718 // skip if we are moving to the bottom and the cursor is
43719 // above the top anchor
43720 (movementY > 0 && e.clientY < this.position.y + parentRect.top)) ||
43721 // we are anchored to the bottom of the dialog
43722 !isTop && (
43723 // skip if we are moving towards the top and the cursor
43724 // is below the bottom anchor
43725 (movementY < 0 && e.clientY > this.position.y + parentRect.top + height) ||
43726 // skip if we are moving towards the bottom and the cursor
43727 // is above the bottom anchor
43728 (movementY > 0 && e.clientY < this.position.y + parentRect.top + height)));
43729 movementY = skipY ? 0 : movementY;
43730 return { movementX: movementX, movementY: movementY };
43731 };
43732 AgPanel.prototype.refreshSize = function () {
43733 var _a = this.size, width = _a.width, height = _a.height;
43734 if (!width) {
43735 this.setWidth(this.getGui().offsetWidth);
43736 }
43737 if (!height) {
43738 this.setHeight(this.getGui().offsetHeight);
43739 }
43740 };
43741 AgPanel.prototype.offsetElement = function (x, y) {
43742 if (x === void 0) { x = 0; }
43743 if (y === void 0) { y = 0; }
43744 var ePopup = this.getGui();
43745 this.popupService.positionPopup({
43746 ePopup: ePopup,
43747 x: x,
43748 y: y,
43749 minWidth: this.minWidth,
43750 minHeight: this.minHeight,
43751 keepWithinBounds: true
43752 });
43753 this.position.x = parseInt(ePopup.style.left, 10);
43754 this.position.y = parseInt(ePopup.style.top, 10);
43755 };
43756 AgPanel.prototype.getHeight = function () {
43757 return this.size.height;
43758 };
43759 AgPanel.prototype.setHeight = function (height) {
43760 var eGui = this.getGui();
43761 var isPercent = false;
43762 if (typeof height === 'string' && height.indexOf('%') !== -1) {
43763 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedHeight"])(eGui, height);
43764 height = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"])(eGui);
43765 isPercent = true;
43766 }
43767 else {
43768 height = Math.max(this.minHeight, height);
43769 var offsetParent = eGui.offsetParent;
43770 if (offsetParent && offsetParent.clientHeight && (height + this.position.y > offsetParent.clientHeight)) {
43771 height = offsetParent.clientHeight - this.position.y;
43772 }
43773 }
43774 if (this.size.height === height) {
43775 return;
43776 }
43777 this.size.height = height;
43778 if (!isPercent) {
43779 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedHeight"])(eGui, height);
43780 }
43781 else {
43782 eGui.style.maxHeight = 'unset';
43783 eGui.style.minHeight = 'unset';
43784 }
43785 };
43786 AgPanel.prototype.getWidth = function () {
43787 return this.size.width;
43788 };
43789 AgPanel.prototype.setWidth = function (width) {
43790 var eGui = this.getGui();
43791 var isPercent = false;
43792 if (typeof width === 'string' && width.indexOf('%') !== -1) {
43793 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(eGui, width);
43794 width = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"])(eGui);
43795 isPercent = true;
43796 }
43797 else {
43798 width = Math.max(this.minWidth, width);
43799 var offsetParent = eGui.offsetParent;
43800 if (offsetParent && offsetParent.clientWidth && (width + this.position.x > offsetParent.clientWidth)) {
43801 width = offsetParent.clientWidth - this.position.x;
43802 }
43803 }
43804 if (this.size.width === width) {
43805 return;
43806 }
43807 this.size.width = width;
43808 if (!isPercent) {
43809 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(eGui, width);
43810 }
43811 else {
43812 eGui.style.maxWidth = 'unset';
43813 eGui.style.minWidth = 'unset';
43814 }
43815 };
43816 AgPanel.prototype.center = function () {
43817 var eGui = this.getGui();
43818 var x = (eGui.offsetParent.clientWidth / 2) - (this.getWidth() / 2);
43819 var y = (eGui.offsetParent.clientHeight / 2) - (this.getHeight() / 2);
43820 this.offsetElement(x, y);
43821 };
43822 AgPanel.prototype.setClosable = function (closable) {
43823 if (closable !== this.closable) {
43824 this.closable = closable;
43825 }
43826 if (closable) {
43827 var closeButtonComp = this.closeButtonComp = new _component__WEBPACK_IMPORTED_MODULE_2__["Component"](AgPanel.CLOSE_BTN_TEMPLATE);
43828 this.getContext().createBean(closeButtonComp);
43829 var eGui = closeButtonComp.getGui();
43830 eGui.appendChild(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('close', this.gridOptionsWrapper), 'ag-panel-title-bar-button-icon'));
43831 this.addTitleBarButton(closeButtonComp);
43832 closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));
43833 }
43834 else if (this.closeButtonComp) {
43835 var eGui = this.closeButtonComp.getGui();
43836 eGui.parentElement.removeChild(eGui);
43837 this.closeButtonComp = this.destroyBean(this.closeButtonComp);
43838 }
43839 };
43840 AgPanel.prototype.setBodyComponent = function (bodyComponent) {
43841 bodyComponent.setParentComponent(this);
43842 this.eContentWrapper.appendChild(bodyComponent.getGui());
43843 };
43844 AgPanel.prototype.addTitleBarButton = function (button, position) {
43845 var eTitleBarButtons = this.eTitleBarButtons;
43846 var buttons = eTitleBarButtons.children;
43847 var len = buttons.length;
43848 if (position == null) {
43849 position = len;
43850 }
43851 position = Math.max(0, Math.min(position, len));
43852 var eGui = button.getGui();
43853 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eGui, 'ag-panel-title-bar-button');
43854 if (position === 0) {
43855 eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);
43856 }
43857 else if (position === len) {
43858 eTitleBarButtons.insertAdjacentElement('beforeend', eGui);
43859 }
43860 else {
43861 buttons[position - 1].insertAdjacentElement('afterend', eGui);
43862 }
43863 button.setParentComponent(this);
43864 };
43865 AgPanel.prototype.getBodyHeight = function () {
43866 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerHeight"])(this.eContentWrapper);
43867 };
43868 AgPanel.prototype.getBodyWidth = function () {
43869 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerWidth"])(this.eContentWrapper);
43870 };
43871 AgPanel.prototype.setTitle = function (title) {
43872 this.eTitle.innerText = title;
43873 };
43874 // called when user hits the 'x' in the top right
43875 AgPanel.prototype.onBtClose = function () {
43876 this.close();
43877 };
43878 AgPanel.prototype.destroy = function () {
43879 if (this.closeButtonComp) {
43880 this.closeButtonComp = this.destroyBean(this.closeButtonComp);
43881 }
43882 var eGui = this.getGui();
43883 if (eGui && eGui.offsetParent) {
43884 this.close();
43885 }
43886 _super.prototype.destroy.call(this);
43887 };
43888 AgPanel.CLOSE_BTN_TEMPLATE = "<div class=\"ag-button\"></div>";
43889 __decorate([
43890 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('popupService')
43891 ], AgPanel.prototype, "popupService", void 0);
43892 __decorate([
43893 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eContentWrapper')
43894 ], AgPanel.prototype, "eContentWrapper", void 0);
43895 __decorate([
43896 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitleBar')
43897 ], AgPanel.prototype, "eTitleBar", void 0);
43898 __decorate([
43899 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitleBarButtons')
43900 ], AgPanel.prototype, "eTitleBarButtons", void 0);
43901 __decorate([
43902 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitle')
43903 ], AgPanel.prototype, "eTitle", void 0);
43904 __decorate([
43905 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
43906 ], AgPanel.prototype, "postConstruct", null);
43907 return AgPanel;
43908}(_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
43909
43910
43911
43912/***/ }),
43913/* 193 */
43914/***/ (function(module, __webpack_exports__, __webpack_require__) {
43915
43916"use strict";
43917__webpack_require__.r(__webpack_exports__);
43918/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return AgInputTextField; });
43919/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(120);
43920/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
43921/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
43922/**
43923 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43924 * @version v25.3.0
43925 * @link http://www.ag-grid.com/
43926 * @license MIT
43927 */
43928var __extends = (undefined && undefined.__extends) || (function () {
43929 var extendStatics = function (d, b) {
43930 extendStatics = Object.setPrototypeOf ||
43931 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43932 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
43933 return extendStatics(d, b);
43934 };
43935 return function (d, b) {
43936 extendStatics(d, b);
43937 function __() { this.constructor = d; }
43938 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43939 };
43940})();
43941
43942
43943
43944var AgInputTextField = /** @class */ (function (_super) {
43945 __extends(AgInputTextField, _super);
43946 function AgInputTextField(config, className, inputType) {
43947 if (className === void 0) { className = 'ag-text-field'; }
43948 if (inputType === void 0) { inputType = 'text'; }
43949 return _super.call(this, config, className, inputType) || this;
43950 }
43951 AgInputTextField.prototype.postConstruct = function () {
43952 _super.prototype.postConstruct.call(this);
43953 if (this.config.allowedCharPattern) {
43954 this.preventDisallowedCharacters();
43955 }
43956 };
43957 AgInputTextField.prototype.setValue = function (value, silent) {
43958 var ret = _super.prototype.setValue.call(this, value, silent);
43959 if (this.eInput.value !== value) {
43960 this.eInput.value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(value) ? value : '';
43961 }
43962 return ret;
43963 };
43964 AgInputTextField.prototype.preventDisallowedCharacters = function () {
43965 var pattern = new RegExp("[" + this.config.allowedCharPattern + "]");
43966 var preventDisallowedCharacters = function (event) {
43967 if (event.key && !pattern.test(event.key)) {
43968 event.preventDefault();
43969 }
43970 };
43971 this.addManagedListener(this.eInput, 'keypress', preventDisallowedCharacters);
43972 this.addManagedListener(this.eInput, 'paste', function (e) {
43973 var text = e.clipboardData.getData('text');
43974 if (Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["some"])(text, function (c) { return !pattern.test(c); })) {
43975 e.preventDefault();
43976 }
43977 });
43978 };
43979 return AgInputTextField;
43980}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
43981
43982
43983
43984/***/ }),
43985/* 194 */
43986/***/ (function(module, __webpack_exports__, __webpack_require__) {
43987
43988"use strict";
43989__webpack_require__.r(__webpack_exports__);
43990/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return AgInputTextArea; });
43991/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(120);
43992/**
43993 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
43994 * @version v25.3.0
43995 * @link http://www.ag-grid.com/
43996 * @license MIT
43997 */
43998var __extends = (undefined && undefined.__extends) || (function () {
43999 var extendStatics = function (d, b) {
44000 extendStatics = Object.setPrototypeOf ||
44001 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44002 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44003 return extendStatics(d, b);
44004 };
44005 return function (d, b) {
44006 extendStatics(d, b);
44007 function __() { this.constructor = d; }
44008 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44009 };
44010})();
44011
44012var AgInputTextArea = /** @class */ (function (_super) {
44013 __extends(AgInputTextArea, _super);
44014 function AgInputTextArea(config) {
44015 return _super.call(this, config, 'ag-text-area', null, 'textarea') || this;
44016 }
44017 AgInputTextArea.prototype.setValue = function (value, silent) {
44018 var ret = _super.prototype.setValue.call(this, value, silent);
44019 this.eInput.value = value;
44020 return ret;
44021 };
44022 AgInputTextArea.prototype.setCols = function (cols) {
44023 this.eInput.cols = cols;
44024 return this;
44025 };
44026 AgInputTextArea.prototype.setRows = function (rows) {
44027 this.eInput.rows = rows;
44028 return this;
44029 };
44030 return AgInputTextArea;
44031}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
44032
44033
44034
44035/***/ }),
44036/* 195 */
44037/***/ (function(module, __webpack_exports__, __webpack_require__) {
44038
44039"use strict";
44040__webpack_require__.r(__webpack_exports__);
44041/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return AgSlider; });
44042/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
44043/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(122);
44044/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(121);
44045/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
44046/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
44047/**
44048 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44049 * @version v25.3.0
44050 * @link http://www.ag-grid.com/
44051 * @license MIT
44052 */
44053var __extends = (undefined && undefined.__extends) || (function () {
44054 var extendStatics = function (d, b) {
44055 extendStatics = Object.setPrototypeOf ||
44056 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44057 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44058 return extendStatics(d, b);
44059 };
44060 return function (d, b) {
44061 extendStatics(d, b);
44062 function __() { this.constructor = d; }
44063 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44064 };
44065})();
44066var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44067 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44068 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44069 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;
44070 return c > 3 && r && Object.defineProperty(target, key, r), r;
44071};
44072
44073
44074
44075
44076
44077var AgSlider = /** @class */ (function (_super) {
44078 __extends(AgSlider, _super);
44079 function AgSlider(config) {
44080 var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;
44081 _this.labelAlignment = 'top';
44082 return _this;
44083 }
44084 AgSlider.prototype.init = function () {
44085 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.eSlider.getGui(), 'ag-slider-field');
44086 };
44087 AgSlider.prototype.onValueChange = function (callbackFn) {
44088 var _this = this;
44089 var eventChanged = _agAbstractField__WEBPACK_IMPORTED_MODULE_2__["AgAbstractField"].EVENT_CHANGED;
44090 this.addManagedListener(this.eText, eventChanged, function () {
44091 var textValue = parseFloat(_this.eText.getValue());
44092 _this.eSlider.setValue(textValue.toString(), true);
44093 callbackFn(textValue || 0);
44094 });
44095 this.addManagedListener(this.eSlider, eventChanged, function () {
44096 var sliderValue = _this.eSlider.getValue();
44097 _this.eText.setValue(sliderValue, true);
44098 callbackFn(parseFloat(sliderValue));
44099 });
44100 return this;
44101 };
44102 AgSlider.prototype.setSliderWidth = function (width) {
44103 this.eSlider.setWidth(width);
44104 return this;
44105 };
44106 AgSlider.prototype.setTextFieldWidth = function (width) {
44107 this.eText.setWidth(width);
44108 return this;
44109 };
44110 AgSlider.prototype.setMinValue = function (minValue) {
44111 this.eSlider.setMinValue(minValue);
44112 this.eText.setMin(minValue);
44113 return this;
44114 };
44115 AgSlider.prototype.setMaxValue = function (maxValue) {
44116 this.eSlider.setMaxValue(maxValue);
44117 this.eText.setMax(maxValue);
44118 return this;
44119 };
44120 AgSlider.prototype.getValue = function () {
44121 return this.eText.getValue();
44122 };
44123 AgSlider.prototype.setValue = function (value) {
44124 if (this.getValue() === value) {
44125 return this;
44126 }
44127 this.eText.setValue(value, true);
44128 this.eSlider.setValue(value, true);
44129 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_2__["AgAbstractField"].EVENT_CHANGED });
44130 return this;
44131 };
44132 AgSlider.prototype.setStep = function (step) {
44133 this.eSlider.setStep(step);
44134 this.eText.setStep(step);
44135 return this;
44136 };
44137 AgSlider.TEMPLATE = "<div class=\"ag-slider\">\n <label ref=\"eLabel\"></label>\n <div class=\"ag-wrapper ag-slider-wrapper\">\n <ag-input-range ref=\"eSlider\"></ag-input-range>\n <ag-input-number-field ref=\"eText\"></ag-input-number-field>\n </div>\n </div>";
44138 __decorate([
44139 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eLabel')
44140 ], AgSlider.prototype, "eLabel", void 0);
44141 __decorate([
44142 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eSlider')
44143 ], AgSlider.prototype, "eSlider", void 0);
44144 __decorate([
44145 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eText')
44146 ], AgSlider.prototype, "eText", void 0);
44147 __decorate([
44148 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
44149 ], AgSlider.prototype, "init", null);
44150 return AgSlider;
44151}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_1__["AgAbstractLabel"]));
44152
44153
44154
44155/***/ }),
44156/* 196 */
44157/***/ (function(module, __webpack_exports__, __webpack_require__) {
44158
44159"use strict";
44160__webpack_require__.r(__webpack_exports__);
44161/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgColorPicker", function() { return AgColorPicker; });
44162/* harmony import */ var _agColorPanel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(197);
44163/* harmony import */ var _agDialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(191);
44164/* harmony import */ var _agPickerField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(198);
44165/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
44166/**
44167 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44168 * @version v25.3.0
44169 * @link http://www.ag-grid.com/
44170 * @license MIT
44171 */
44172var __extends = (undefined && undefined.__extends) || (function () {
44173 var extendStatics = function (d, b) {
44174 extendStatics = Object.setPrototypeOf ||
44175 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44176 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44177 return extendStatics(d, b);
44178 };
44179 return function (d, b) {
44180 extendStatics(d, b);
44181 function __() { this.constructor = d; }
44182 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44183 };
44184})();
44185
44186
44187
44188
44189var AgColorPicker = /** @class */ (function (_super) {
44190 __extends(AgColorPicker, _super);
44191 function AgColorPicker(config) {
44192 var _this = _super.call(this, config, 'ag-color-picker', 'colorPicker') || this;
44193 if (config && config.color) {
44194 _this.value = config.color;
44195 }
44196 return _this;
44197 }
44198 AgColorPicker.prototype.postConstruct = function () {
44199 _super.prototype.postConstruct.call(this);
44200 if (this.value) {
44201 this.setValue(this.value);
44202 }
44203 };
44204 AgColorPicker.prototype.showPicker = function () {
44205 var _this = this;
44206 var eGuiRect = this.getGui().getBoundingClientRect();
44207 var colorDialog = this.createBean(new _agDialog__WEBPACK_IMPORTED_MODULE_1__["AgDialog"]({
44208 closable: false,
44209 modal: true,
44210 hideTitleBar: true,
44211 minWidth: 190,
44212 width: 190,
44213 height: 250,
44214 x: eGuiRect.right - 190,
44215 y: eGuiRect.top - 250
44216 }));
44217 this.isPickerDisplayed = true;
44218 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(colorDialog.getGui(), 'ag-color-dialog');
44219 var colorPanel = this.createBean(new _agColorPanel__WEBPACK_IMPORTED_MODULE_0__["AgColorPanel"]({ picker: this }));
44220 colorPanel.addDestroyFunc(function () {
44221 if (colorDialog.isAlive()) {
44222 _this.destroyBean(colorDialog);
44223 }
44224 });
44225 colorDialog.setParentComponent(this);
44226 colorDialog.setBodyComponent(colorPanel);
44227 colorPanel.setValue(this.getValue());
44228 colorDialog.addDestroyFunc(function () {
44229 // here we check if the picker was already being
44230 // destroyed to avoid a stack overflow
44231 if (!_this.isDestroyingPicker) {
44232 _this.isDestroyingPicker = true;
44233 if (colorPanel.isAlive()) {
44234 _this.destroyBean(colorPanel);
44235 }
44236 }
44237 else {
44238 _this.isDestroyingPicker = false;
44239 }
44240 if (_this.isAlive()) {
44241 _this.getFocusableElement().focus();
44242 }
44243 _this.isPickerDisplayed = false;
44244 });
44245 return colorDialog;
44246 };
44247 AgColorPicker.prototype.setValue = function (color) {
44248 if (this.value === color) {
44249 return this;
44250 }
44251 this.eDisplayField.style.backgroundColor = color;
44252 return _super.prototype.setValue.call(this, color);
44253 };
44254 AgColorPicker.prototype.getValue = function () {
44255 return this.value;
44256 };
44257 return AgColorPicker;
44258}(_agPickerField__WEBPACK_IMPORTED_MODULE_2__["AgPickerField"]));
44259
44260
44261
44262/***/ }),
44263/* 197 */
44264/***/ (function(module, __webpack_exports__, __webpack_require__) {
44265
44266"use strict";
44267__webpack_require__.r(__webpack_exports__);
44268/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgColorPanel", function() { return AgColorPanel; });
44269/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
44270/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
44271/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
44272/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
44273/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
44274/**
44275 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44276 * @version v25.3.0
44277 * @link http://www.ag-grid.com/
44278 * @license MIT
44279 */
44280var __extends = (undefined && undefined.__extends) || (function () {
44281 var extendStatics = function (d, b) {
44282 extendStatics = Object.setPrototypeOf ||
44283 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44284 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44285 return extendStatics(d, b);
44286 };
44287 return function (d, b) {
44288 extendStatics(d, b);
44289 function __() { this.constructor = d; }
44290 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44291 };
44292})();
44293var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44294 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44295 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44296 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;
44297 return c > 3 && r && Object.defineProperty(target, key, r), r;
44298};
44299
44300
44301
44302
44303
44304var AgColorPanel = /** @class */ (function (_super) {
44305 __extends(AgColorPanel, _super);
44306 function AgColorPanel(config) {
44307 var _this = _super.call(this, AgColorPanel.TEMPLATE) || this;
44308 _this.H = 1; // in the [0, 1] range
44309 _this.S = 1; // in the [0, 1] range
44310 _this.B = 1; // in the [0, 1] range
44311 _this.A = 1; // in the [0, 1] range
44312 _this.isSpectrumDragging = false;
44313 _this.isSpectrumHueDragging = false;
44314 _this.isSpectrumAlphaDragging = false;
44315 _this.colorChanged = false;
44316 _this.picker = config.picker;
44317 return _this;
44318 }
44319 AgColorPanel.prototype.postConstruct = function () {
44320 var eGui = this.getGui();
44321 this.initRecentColors();
44322 this.addManagedListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));
44323 this.addManagedListener(eGui, 'mousemove', this.onSpectrumDraggerMove.bind(this));
44324 this.addManagedListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));
44325 this.addManagedListener(eGui, 'mousemove', this.onSpectrumHueMove.bind(this));
44326 this.addManagedListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));
44327 this.addManagedListener(eGui, 'mousemove', this.onSpectrumAlphaMove.bind(this));
44328 // Listening to `mouseup` on the document on purpose. The user might release the mouse button
44329 // outside the UI control. When the mouse returns back to the control's area, the dragging
44330 // of the thumb is not expected and seen as a bug.
44331 this.addManagedListener(document, 'mouseup', this.onMouseUp.bind(this));
44332 this.addManagedListener(this.recentColors, 'click', this.onRecentColorClick.bind(this));
44333 };
44334 AgColorPanel.prototype.refreshSpectrumRect = function () {
44335 return this.spectrumValRect = this.spectrumVal.getBoundingClientRect();
44336 };
44337 AgColorPanel.prototype.refreshHueRect = function () {
44338 return this.spectrumHueRect = this.spectrumHue.getBoundingClientRect();
44339 };
44340 AgColorPanel.prototype.refreshAlphaRect = function () {
44341 return this.spectrumAlphaRect = this.spectrumAlpha.getBoundingClientRect();
44342 };
44343 AgColorPanel.prototype.onSpectrumDraggerDown = function (e) {
44344 this.refreshSpectrumRect();
44345 this.isSpectrumDragging = true;
44346 this.moveDragger(e);
44347 };
44348 AgColorPanel.prototype.onSpectrumDraggerMove = function (e) {
44349 if (this.isSpectrumDragging) {
44350 this.moveDragger(e);
44351 }
44352 };
44353 AgColorPanel.prototype.onSpectrumHueDown = function (e) {
44354 this.refreshHueRect();
44355 this.isSpectrumHueDragging = true;
44356 this.moveHueSlider(e);
44357 };
44358 AgColorPanel.prototype.onSpectrumHueMove = function (e) {
44359 if (this.isSpectrumHueDragging) {
44360 this.moveHueSlider(e);
44361 }
44362 };
44363 AgColorPanel.prototype.onSpectrumAlphaDown = function (e) {
44364 this.refreshAlphaRect();
44365 this.isSpectrumAlphaDragging = true;
44366 this.moveAlphaSlider(e);
44367 };
44368 AgColorPanel.prototype.onSpectrumAlphaMove = function (e) {
44369 if (this.isSpectrumAlphaDragging) {
44370 this.moveAlphaSlider(e);
44371 }
44372 };
44373 AgColorPanel.prototype.onMouseUp = function () {
44374 this.isSpectrumDragging = false;
44375 this.isSpectrumHueDragging = false;
44376 this.isSpectrumAlphaDragging = false;
44377 };
44378 AgColorPanel.prototype.moveDragger = function (e) {
44379 var valRect = this.spectrumValRect;
44380 if (valRect) {
44381 var x = e.clientX - valRect.left;
44382 var y = e.clientY - valRect.top;
44383 x = Math.max(x, 0);
44384 x = Math.min(x, valRect.width);
44385 y = Math.max(y, 0);
44386 y = Math.min(y, valRect.height);
44387 this.setSpectrumValue(x / valRect.width, 1 - y / valRect.height);
44388 }
44389 };
44390 AgColorPanel.prototype.moveHueSlider = function (e) {
44391 var hueRect = this.spectrumHueRect;
44392 if (hueRect) {
44393 var slider = this.spectrumHueSlider;
44394 var sliderRect = slider.getBoundingClientRect();
44395 var x = e.clientX - hueRect.left;
44396 x = Math.max(x, 0);
44397 x = Math.min(x, hueRect.width);
44398 this.H = 1 - x / hueRect.width;
44399 slider.style.left = (x + sliderRect.width / 2) + 'px';
44400 this.update();
44401 }
44402 };
44403 AgColorPanel.prototype.moveAlphaSlider = function (e) {
44404 var alphaRect = this.spectrumAlphaRect;
44405 if (alphaRect) {
44406 var slider = this.spectrumAlphaSlider;
44407 var sliderRect = slider.getBoundingClientRect();
44408 var x = e.clientX - alphaRect.left;
44409 x = Math.max(x, 0);
44410 x = Math.min(x, alphaRect.width);
44411 this.A = x / alphaRect.width;
44412 slider.style.left = (x + sliderRect.width / 2) + 'px';
44413 this.update();
44414 }
44415 };
44416 AgColorPanel.prototype.update = function () {
44417 var color = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromHSB(this.H * 360, this.S, this.B, this.A);
44418 var spectrumColor = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromHSB(this.H * 360, 1, 1);
44419 var rgbaColor = color.toRgbaString();
44420 // the recent color list needs to know color has actually changed
44421 var colorPicker = this.picker;
44422 var existingColor = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromString(colorPicker.getValue());
44423 if (existingColor.toRgbaString() !== rgbaColor) {
44424 this.colorChanged = true;
44425 }
44426 colorPicker.setValue(rgbaColor);
44427 this.spectrumColor.style.backgroundColor = spectrumColor.toRgbaString();
44428 this.spectrumDragger.style.backgroundColor = rgbaColor;
44429 };
44430 /**
44431 * @param saturation In the [0, 1] interval.
44432 * @param brightness In the [0, 1] interval.
44433 */
44434 AgColorPanel.prototype.setSpectrumValue = function (saturation, brightness) {
44435 var valRect = this.spectrumValRect || this.refreshSpectrumRect();
44436 if (valRect) {
44437 var dragger = this.spectrumDragger;
44438 var draggerRect = dragger.getBoundingClientRect();
44439 saturation = Math.max(0, saturation);
44440 saturation = Math.min(1, saturation);
44441 brightness = Math.max(0, brightness);
44442 brightness = Math.min(1, brightness);
44443 this.S = saturation;
44444 this.B = brightness;
44445 dragger.style.left = (saturation * valRect.width - draggerRect.width / 2) + 'px';
44446 dragger.style.top = ((1 - brightness) * valRect.height - draggerRect.height / 2) + 'px';
44447 this.update();
44448 }
44449 };
44450 AgColorPanel.prototype.initRecentColors = function () {
44451 var recentColors = AgColorPanel.recentColors;
44452 var innerHtml = recentColors.map(function (color, index) {
44453 return "<div class=\"ag-recent-color\" id=" + index + " style=\"background-color: " + color + "; width: 15px; height: 15px;\" recent-color=\"" + color + "\"></div>";
44454 });
44455 this.recentColors.innerHTML = innerHtml.join('');
44456 };
44457 AgColorPanel.prototype.setValue = function (val) {
44458 var color = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromString(val);
44459 var _a = color.toHSB(), h = _a[0], s = _a[1], b = _a[2];
44460 this.H = (isNaN(h) ? 0 : h) / 360;
44461 this.A = color.a;
44462 var spectrumHueRect = this.spectrumHueRect || this.refreshHueRect();
44463 var spectrumAlphaRect = this.spectrumAlphaRect || this.refreshAlphaRect();
44464 this.spectrumHueSlider.style.left = ((this.H - 1) * -spectrumHueRect.width) + "px";
44465 this.spectrumAlphaSlider.style.left = (this.A * spectrumAlphaRect.width) + "px";
44466 this.setSpectrumValue(s, b);
44467 };
44468 AgColorPanel.prototype.onRecentColorClick = function (e) {
44469 var target = e.target;
44470 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(target.id)) {
44471 return;
44472 }
44473 var id = parseInt(target.id, 10);
44474 this.setValue(AgColorPanel.recentColors[id]);
44475 this.destroy();
44476 };
44477 AgColorPanel.prototype.addRecentColor = function () {
44478 var color = _utils__WEBPACK_IMPORTED_MODULE_1__["Color"].fromHSB(this.H * 360, this.S, this.B, this.A);
44479 var rgbaColor = color.toRgbaString();
44480 var recentColors = AgColorPanel.recentColors;
44481 if (!this.colorChanged || recentColors[0] === rgbaColor) {
44482 return;
44483 }
44484 // remove duplicate color
44485 recentColors = recentColors.filter(function (currentColor) { return currentColor != rgbaColor; });
44486 // add color to head
44487 recentColors = [rgbaColor].concat(recentColors);
44488 // ensure we don't exceed max number of recent colors
44489 if (recentColors.length > AgColorPanel.maxRecentColors) {
44490 recentColors = recentColors.slice(0, AgColorPanel.maxRecentColors);
44491 }
44492 AgColorPanel.recentColors = recentColors;
44493 };
44494 AgColorPanel.prototype.destroy = function () {
44495 this.addRecentColor();
44496 _super.prototype.destroy.call(this);
44497 };
44498 AgColorPanel.maxRecentColors = 8;
44499 AgColorPanel.recentColors = [];
44500 AgColorPanel.TEMPLATE = "<div class=\"ag-color-panel\">\n <div ref=\"spectrumColor\" class=\"ag-spectrum-color\">\n <div class=\"ag-spectrum-sat ag-spectrum-fill\">\n <div ref=\"spectrumVal\" class=\"ag-spectrum-val ag-spectrum-fill\">\n <div ref=\"spectrumDragger\" class=\"ag-spectrum-dragger\"></div>\n </div>\n </div>\n </div>\n <div class=\"ag-spectrum-tools\">\n <div ref=\"spectrumHue\" class=\"ag-spectrum-hue ag-spectrum-tool\">\n <div class=\"ag-spectrum-hue-background\"></div>\n <div ref=\"spectrumHueSlider\" class=\"ag-spectrum-slider\"></div>\n </div>\n <div ref=\"spectrumAlpha\" class=\"ag-spectrum-alpha ag-spectrum-tool\">\n <div class=\"ag-spectrum-alpha-background\"></div>\n <div ref=\"spectrumAlphaSlider\" class=\"ag-spectrum-slider\"></div>\n </div>\n <div ref=\"recentColors\" class=\"ag-recent-colors\"></div>\n </div>\n </div>";
44501 __decorate([
44502 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumColor')
44503 ], AgColorPanel.prototype, "spectrumColor", void 0);
44504 __decorate([
44505 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumVal')
44506 ], AgColorPanel.prototype, "spectrumVal", void 0);
44507 __decorate([
44508 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumDragger')
44509 ], AgColorPanel.prototype, "spectrumDragger", void 0);
44510 __decorate([
44511 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumHue')
44512 ], AgColorPanel.prototype, "spectrumHue", void 0);
44513 __decorate([
44514 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumHueSlider')
44515 ], AgColorPanel.prototype, "spectrumHueSlider", void 0);
44516 __decorate([
44517 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumAlpha')
44518 ], AgColorPanel.prototype, "spectrumAlpha", void 0);
44519 __decorate([
44520 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('spectrumAlphaSlider')
44521 ], AgColorPanel.prototype, "spectrumAlphaSlider", void 0);
44522 __decorate([
44523 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('recentColors')
44524 ], AgColorPanel.prototype, "recentColors", void 0);
44525 __decorate([
44526 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
44527 ], AgColorPanel.prototype, "postConstruct", null);
44528 return AgColorPanel;
44529}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
44530
44531
44532
44533/***/ }),
44534/* 198 */
44535/***/ (function(module, __webpack_exports__, __webpack_require__) {
44536
44537"use strict";
44538__webpack_require__.r(__webpack_exports__);
44539/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPickerField", function() { return AgPickerField; });
44540/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(121);
44541/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
44542/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47);
44543/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50);
44544/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
44545/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
44546/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
44547/**
44548 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44549 * @version v25.3.0
44550 * @link http://www.ag-grid.com/
44551 * @license MIT
44552 */
44553var __extends = (undefined && undefined.__extends) || (function () {
44554 var extendStatics = function (d, b) {
44555 extendStatics = Object.setPrototypeOf ||
44556 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44557 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44558 return extendStatics(d, b);
44559 };
44560 return function (d, b) {
44561 extendStatics(d, b);
44562 function __() { this.constructor = d; }
44563 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44564 };
44565})();
44566var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44567 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44568 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44569 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;
44570 return c > 3 && r && Object.defineProperty(target, key, r), r;
44571};
44572
44573
44574
44575
44576
44577
44578
44579var AgPickerField = /** @class */ (function (_super) {
44580 __extends(AgPickerField, _super);
44581 function AgPickerField(config, className, pickerIcon, popupRole) {
44582 var _this = _super.call(this, config,
44583 /* html */ "<div class=\"ag-picker-field\" role=\"presentation\">\n <div ref=\"eLabel\"></div>\n <div ref=\"eWrapper\"\n class=\"ag-wrapper ag-picker-field-wrapper\"\n tabIndex=\"-1\"\n " + (popupRole ? "aria-haspopup=\"" + popupRole + "\"" : '') + "\n >\n <div ref=\"eDisplayField\" class=\"ag-picker-field-display\"></div>\n <div ref=\"eIcon\" class=\"ag-picker-field-icon\" aria-hidden=\"true\"></div>\n </div>\n </div>", className) || this;
44584 _this.pickerIcon = pickerIcon;
44585 _this.isPickerDisplayed = false;
44586 _this.isDestroyingPicker = false;
44587 _this.skipClick = false;
44588 return _this;
44589 }
44590 AgPickerField.prototype.postConstruct = function () {
44591 var _this = this;
44592 _super.prototype.postConstruct.call(this);
44593 var displayId = this.getCompId() + "-display";
44594 this.eDisplayField.setAttribute('id', displayId);
44595 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaDescribedBy"])(this.eWrapper, displayId);
44596 var clickHandler = function () {
44597 if (_this.skipClick) {
44598 _this.skipClick = false;
44599 return;
44600 }
44601 if (_this.isDisabled()) {
44602 return;
44603 }
44604 _this.pickerComponent = _this.showPicker();
44605 };
44606 var eGui = this.getGui();
44607 this.addManagedListener(eGui, 'mousedown', function (e) {
44608 if (!_this.skipClick &&
44609 _this.pickerComponent &&
44610 _this.pickerComponent.isAlive() &&
44611 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isVisible"])(_this.pickerComponent.getGui()) &&
44612 eGui.contains(e.target)) {
44613 _this.skipClick = true;
44614 }
44615 });
44616 this.addManagedListener(eGui, 'keydown', function (e) {
44617 switch (e.keyCode) {
44618 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
44619 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
44620 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER:
44621 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].SPACE:
44622 clickHandler();
44623 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ESCAPE:
44624 if (_this.isPickerDisplayed) {
44625 e.preventDefault();
44626 }
44627 break;
44628 }
44629 });
44630 this.addManagedListener(this.eWrapper, 'click', clickHandler);
44631 this.addManagedListener(this.eLabel, 'click', clickHandler);
44632 if (this.pickerIcon) {
44633 var icon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIconNoSpan"])(this.pickerIcon, this.gridOptionsWrapper);
44634 if (icon) {
44635 this.eIcon.appendChild(icon);
44636 }
44637 }
44638 };
44639 AgPickerField.prototype.refreshLabel = function () {
44640 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getLabel())) {
44641 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabelledBy"])(this.eWrapper, this.getLabelId());
44642 }
44643 else {
44644 this.eWrapper.removeAttribute('aria-labelledby');
44645 }
44646 _super.prototype.refreshLabel.call(this);
44647 };
44648 AgPickerField.prototype.setAriaLabel = function (label) {
44649 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabel"])(this.eWrapper, label);
44650 return this;
44651 };
44652 AgPickerField.prototype.setInputWidth = function (width) {
44653 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setElementWidth"])(this.eWrapper, width);
44654 return this;
44655 };
44656 AgPickerField.prototype.getFocusableElement = function () {
44657 return this.eWrapper;
44658 };
44659 __decorate([
44660 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLabel')
44661 ], AgPickerField.prototype, "eLabel", void 0);
44662 __decorate([
44663 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eWrapper')
44664 ], AgPickerField.prototype, "eWrapper", void 0);
44665 __decorate([
44666 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eDisplayField')
44667 ], AgPickerField.prototype, "eDisplayField", void 0);
44668 __decorate([
44669 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eIcon')
44670 ], AgPickerField.prototype, "eIcon", void 0);
44671 return AgPickerField;
44672}(_agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"]));
44673
44674
44675
44676/***/ }),
44677/* 199 */
44678/***/ (function(module, __webpack_exports__, __webpack_require__) {
44679
44680"use strict";
44681__webpack_require__.r(__webpack_exports__);
44682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return AgInputNumberField; });
44683/* harmony import */ var _agInputTextField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193);
44684/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
44685/**
44686 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44687 * @version v25.3.0
44688 * @link http://www.ag-grid.com/
44689 * @license MIT
44690 */
44691var __extends = (undefined && undefined.__extends) || (function () {
44692 var extendStatics = function (d, b) {
44693 extendStatics = Object.setPrototypeOf ||
44694 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44695 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44696 return extendStatics(d, b);
44697 };
44698 return function (d, b) {
44699 extendStatics(d, b);
44700 function __() { this.constructor = d; }
44701 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44702 };
44703})();
44704
44705
44706var AgInputNumberField = /** @class */ (function (_super) {
44707 __extends(AgInputNumberField, _super);
44708 function AgInputNumberField(config) {
44709 return _super.call(this, config, 'ag-number-field', 'number') || this;
44710 }
44711 AgInputNumberField.prototype.postConstruct = function () {
44712 var _this = this;
44713 _super.prototype.postConstruct.call(this);
44714 this.addManagedListener(this.eInput, 'blur', function () {
44715 var floatedValue = parseFloat(_this.eInput.value);
44716 var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());
44717 if (_this.value !== value) {
44718 _this.setValue(value);
44719 }
44720 });
44721 };
44722 AgInputNumberField.prototype.normalizeValue = function (value) {
44723 if (value === '') {
44724 return '';
44725 }
44726 if (this.precision) {
44727 value = this.adjustPrecision(value);
44728 }
44729 var val = parseFloat(value);
44730 if (this.min != null && val < this.min) {
44731 value = this.min.toString();
44732 }
44733 else if (this.max != null && val > this.max) {
44734 value = this.max.toString();
44735 }
44736 return value;
44737 };
44738 AgInputNumberField.prototype.adjustPrecision = function (value) {
44739 if (this.precision) {
44740 var floatString = parseFloat(value).toFixed(this.precision);
44741 value = parseFloat(floatString).toString();
44742 }
44743 return value;
44744 };
44745 AgInputNumberField.prototype.setMin = function (min) {
44746 if (this.min === min) {
44747 return this;
44748 }
44749 this.min = min;
44750 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'min', min);
44751 return this;
44752 };
44753 AgInputNumberField.prototype.setMax = function (max) {
44754 if (this.max === max) {
44755 return this;
44756 }
44757 this.max = max;
44758 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'max', max);
44759 return this;
44760 };
44761 AgInputNumberField.prototype.setPrecision = function (precision) {
44762 this.precision = precision;
44763 return this;
44764 };
44765 AgInputNumberField.prototype.setStep = function (step) {
44766 if (this.step === step) {
44767 return this;
44768 }
44769 this.step = step;
44770 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'step', step);
44771 return this;
44772 };
44773 AgInputNumberField.prototype.setValue = function (value, silent) {
44774 value = this.adjustPrecision(value);
44775 var normalizedValue = this.normalizeValue(value);
44776 if (value != normalizedValue) {
44777 return this;
44778 }
44779 return _super.prototype.setValue.call(this, value, silent);
44780 };
44781 return AgInputNumberField;
44782}(_agInputTextField__WEBPACK_IMPORTED_MODULE_0__["AgInputTextField"]));
44783
44784
44785
44786/***/ }),
44787/* 200 */
44788/***/ (function(module, __webpack_exports__, __webpack_require__) {
44789
44790"use strict";
44791__webpack_require__.r(__webpack_exports__);
44792/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return AgInputRange; });
44793/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(120);
44794/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34);
44795/**
44796 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44797 * @version v25.3.0
44798 * @link http://www.ag-grid.com/
44799 * @license MIT
44800 */
44801var __extends = (undefined && undefined.__extends) || (function () {
44802 var extendStatics = function (d, b) {
44803 extendStatics = Object.setPrototypeOf ||
44804 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44805 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44806 return extendStatics(d, b);
44807 };
44808 return function (d, b) {
44809 extendStatics(d, b);
44810 function __() { this.constructor = d; }
44811 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44812 };
44813})();
44814
44815
44816var AgInputRange = /** @class */ (function (_super) {
44817 __extends(AgInputRange, _super);
44818 function AgInputRange(config) {
44819 return _super.call(this, config, 'ag-range-field', 'range') || this;
44820 }
44821 AgInputRange.prototype.postConstruct = function () {
44822 _super.prototype.postConstruct.call(this);
44823 var _a = this.config, min = _a.min, max = _a.max, step = _a.step;
44824 if (min != null) {
44825 this.setMinValue(min);
44826 }
44827 if (max != null) {
44828 this.setMaxValue(max);
44829 }
44830 this.setStep(step || 1);
44831 };
44832 AgInputRange.prototype.addInputListeners = function () {
44833 var _this = this;
44834 var isIE = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isBrowserIE"])();
44835 var eventName = isIE ? 'change' : 'input';
44836 this.addManagedListener(this.eInput, eventName, function (e) {
44837 var value = e.target.value;
44838 _this.setValue(value);
44839 });
44840 };
44841 AgInputRange.prototype.setMinValue = function (value) {
44842 this.min = value;
44843 this.eInput.setAttribute('min', value.toString());
44844 return this;
44845 };
44846 AgInputRange.prototype.setMaxValue = function (value) {
44847 this.max = value;
44848 this.eInput.setAttribute('max', value.toString());
44849 return this;
44850 };
44851 AgInputRange.prototype.setStep = function (value) {
44852 this.eInput.setAttribute('step', value.toString());
44853 return this;
44854 };
44855 AgInputRange.prototype.setValue = function (value, silent) {
44856 if (this.min != null) {
44857 value = Math.max(parseFloat(value), this.min).toString();
44858 }
44859 if (this.max != null) {
44860 value = Math.min(parseFloat(value), this.max).toString();
44861 }
44862 var ret = _super.prototype.setValue.call(this, value, silent);
44863 this.eInput.value = value;
44864 return ret;
44865 };
44866 return AgInputRange;
44867}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
44868
44869
44870
44871/***/ }),
44872/* 201 */
44873/***/ (function(module, __webpack_exports__, __webpack_require__) {
44874
44875"use strict";
44876__webpack_require__.r(__webpack_exports__);
44877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return AgSelect; });
44878/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(121);
44879/* harmony import */ var _agPickerField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(198);
44880/* harmony import */ var _agList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(202);
44881/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
44882/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
44883/**
44884 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
44885 * @version v25.3.0
44886 * @link http://www.ag-grid.com/
44887 * @license MIT
44888 */
44889var __extends = (undefined && undefined.__extends) || (function () {
44890 var extendStatics = function (d, b) {
44891 extendStatics = Object.setPrototypeOf ||
44892 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44893 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
44894 return extendStatics(d, b);
44895 };
44896 return function (d, b) {
44897 extendStatics(d, b);
44898 function __() { this.constructor = d; }
44899 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44900 };
44901})();
44902var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44903 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44904 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44905 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;
44906 return c > 3 && r && Object.defineProperty(target, key, r), r;
44907};
44908
44909
44910
44911
44912
44913var AgSelect = /** @class */ (function (_super) {
44914 __extends(AgSelect, _super);
44915 function AgSelect(config) {
44916 return _super.call(this, config, 'ag-select', 'smallDown', 'listbox') || this;
44917 }
44918 AgSelect.prototype.init = function () {
44919 var _this = this;
44920 this.listComponent = this.createBean(new _agList__WEBPACK_IMPORTED_MODULE_2__["AgList"]('select'));
44921 this.listComponent.setParentComponent(this);
44922 this.eWrapper.tabIndex = 0;
44923 this.listComponent.addManagedListener(this.listComponent, _agList__WEBPACK_IMPORTED_MODULE_2__["AgList"].EVENT_ITEM_SELECTED, function () { if (_this.hideList) {
44924 _this.hideList();
44925 } });
44926 this.listComponent.addManagedListener(this.listComponent, _agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"].EVENT_CHANGED, function () {
44927 _this.setValue(_this.listComponent.getValue(), false, true);
44928 if (_this.hideList) {
44929 _this.hideList();
44930 }
44931 });
44932 };
44933 AgSelect.prototype.showPicker = function () {
44934 var _this = this;
44935 var listGui = this.listComponent.getGui();
44936 var destroyMouseWheelFunc = this.addManagedListener(document.body, 'wheel', function (e) {
44937 if (!listGui.contains(e.target) && _this.hideList) {
44938 _this.hideList();
44939 }
44940 });
44941 var destroyFocusOutFunc = this.addManagedListener(listGui, 'focusout', function (e) {
44942 if (!listGui.contains(e.relatedTarget) && _this.hideList) {
44943 _this.hideList();
44944 }
44945 });
44946 var addPopupRes = this.popupService.addPopup({
44947 modal: true,
44948 eChild: listGui,
44949 closeOnEsc: true,
44950 closedCallback: function () {
44951 _this.hideList = null;
44952 _this.isPickerDisplayed = false;
44953 destroyFocusOutFunc();
44954 destroyMouseWheelFunc();
44955 if (_this.isAlive()) {
44956 _this.getFocusableElement().focus();
44957 }
44958 }
44959 });
44960 if (addPopupRes) {
44961 this.hideList = addPopupRes.hideFunc;
44962 }
44963 this.isPickerDisplayed = true;
44964 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setElementWidth"])(listGui, Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getAbsoluteWidth"])(this.eWrapper));
44965 listGui.style.maxHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getInnerHeight"])(this.popupService.getPopupParent()) + 'px';
44966 listGui.style.position = 'absolute';
44967 this.popupService.positionPopupUnderComponent({
44968 type: 'ag-list',
44969 eventSource: this.eWrapper,
44970 ePopup: listGui,
44971 keepWithinBounds: true
44972 });
44973 this.listComponent.refreshHighlighted();
44974 return this.listComponent;
44975 };
44976 AgSelect.prototype.addOptions = function (options) {
44977 var _this = this;
44978 options.forEach(function (option) { return _this.addOption(option); });
44979 return this;
44980 };
44981 AgSelect.prototype.addOption = function (option) {
44982 this.listComponent.addOption(option);
44983 return this;
44984 };
44985 AgSelect.prototype.setValue = function (value, silent, fromPicker) {
44986 if (this.value === value) {
44987 return this;
44988 }
44989 if (!fromPicker) {
44990 this.listComponent.setValue(value, true);
44991 }
44992 var newValue = this.listComponent.getValue();
44993 if (newValue === this.getValue()) {
44994 return this;
44995 }
44996 this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();
44997 return _super.prototype.setValue.call(this, value, silent);
44998 };
44999 AgSelect.prototype.destroy = function () {
45000 if (this.hideList) {
45001 this.hideList();
45002 }
45003 this.destroyBean(this.listComponent);
45004 _super.prototype.destroy.call(this);
45005 };
45006 __decorate([
45007 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('popupService')
45008 ], AgSelect.prototype, "popupService", void 0);
45009 __decorate([
45010 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
45011 ], AgSelect.prototype, "init", null);
45012 return AgSelect;
45013}(_agPickerField__WEBPACK_IMPORTED_MODULE_1__["AgPickerField"]));
45014
45015
45016
45017/***/ }),
45018/* 202 */
45019/***/ (function(module, __webpack_exports__, __webpack_require__) {
45020
45021"use strict";
45022__webpack_require__.r(__webpack_exports__);
45023/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgList", function() { return AgList; });
45024/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(121);
45025/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
45026/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
45027/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
45028/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
45029/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
45030/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
45031/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(47);
45032/**
45033 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45034 * @version v25.3.0
45035 * @link http://www.ag-grid.com/
45036 * @license MIT
45037 */
45038var __extends = (undefined && undefined.__extends) || (function () {
45039 var extendStatics = function (d, b) {
45040 extendStatics = Object.setPrototypeOf ||
45041 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45042 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45043 return extendStatics(d, b);
45044 };
45045 return function (d, b) {
45046 extendStatics(d, b);
45047 function __() { this.constructor = d; }
45048 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45049 };
45050})();
45051var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45052 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45053 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45054 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;
45055 return c > 3 && r && Object.defineProperty(target, key, r), r;
45056};
45057
45058
45059
45060
45061
45062
45063
45064
45065var AgList = /** @class */ (function (_super) {
45066 __extends(AgList, _super);
45067 function AgList(cssIdentifier) {
45068 if (cssIdentifier === void 0) { cssIdentifier = 'default'; }
45069 var _this = _super.call(this, /* html */ "<div class=\"ag-list ag-" + cssIdentifier + "-list\" role=\"listbox\"></div>") || this;
45070 _this.cssIdentifier = cssIdentifier;
45071 _this.options = [];
45072 _this.itemEls = [];
45073 return _this;
45074 }
45075 AgList.prototype.init = function () {
45076 this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));
45077 };
45078 AgList.prototype.handleKeyDown = function (e) {
45079 var key = e.keyCode;
45080 switch (key) {
45081 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER:
45082 if (!this.highlightedEl) {
45083 this.setValue(this.getValue());
45084 }
45085 else {
45086 var pos = this.itemEls.indexOf(this.highlightedEl);
45087 this.setValueByIndex(pos);
45088 }
45089 break;
45090 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
45091 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
45092 var isDown = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN;
45093 var itemToHighlight = void 0;
45094 e.preventDefault();
45095 if (!this.highlightedEl) {
45096 itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];
45097 }
45098 else {
45099 var currentIdx = this.itemEls.indexOf(this.highlightedEl);
45100 var nextPos = currentIdx + (isDown ? 1 : -1);
45101 nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);
45102 itemToHighlight = this.itemEls[nextPos];
45103 }
45104 this.highlightItem(itemToHighlight);
45105 break;
45106 }
45107 };
45108 AgList.prototype.addOptions = function (listOptions) {
45109 var _this = this;
45110 listOptions.forEach(function (listOption) { return _this.addOption(listOption); });
45111 return this;
45112 };
45113 AgList.prototype.addOption = function (listOption) {
45114 var value = listOption.value, text = listOption.text;
45115 var sanitisedText = Object(_utils_string__WEBPACK_IMPORTED_MODULE_3__["escapeString"])(text || value);
45116 this.options.push({ value: value, text: sanitisedText });
45117 this.renderOption(value, sanitisedText);
45118 return this;
45119 };
45120 AgList.prototype.renderOption = function (value, text) {
45121 var _this = this;
45122 var itemEl = document.createElement('div');
45123 itemEl.setAttribute('role', 'option');
45124 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(itemEl, 'ag-list-item');
45125 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(itemEl, "ag-" + this.cssIdentifier + "-list-item");
45126 itemEl.innerHTML = "<span>" + text + "</span>";
45127 itemEl.tabIndex = -1;
45128 this.itemEls.push(itemEl);
45129 this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });
45130 this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });
45131 this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });
45132 this.getGui().appendChild(itemEl);
45133 };
45134 AgList.prototype.setValue = function (value, silent) {
45135 if (this.value === value) {
45136 this.fireItemSelected();
45137 return this;
45138 }
45139 if (value == null) {
45140 this.reset();
45141 return this;
45142 }
45143 var idx = Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["findIndex"])(this.options, function (option) { return option.value === value; });
45144 if (idx !== -1) {
45145 var option = this.options[idx];
45146 this.value = option.value;
45147 this.displayValue = option.text != null ? option.text : option.value;
45148 this.highlightItem(this.itemEls[idx]);
45149 if (!silent) {
45150 this.fireChangeEvent();
45151 }
45152 }
45153 return this;
45154 };
45155 AgList.prototype.setValueByIndex = function (idx) {
45156 return this.setValue(this.options[idx].value);
45157 };
45158 AgList.prototype.getValue = function () {
45159 return this.value;
45160 };
45161 AgList.prototype.getDisplayValue = function () {
45162 return this.displayValue;
45163 };
45164 AgList.prototype.refreshHighlighted = function () {
45165 var _this = this;
45166 this.clearHighlighted();
45167 var idx = Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["findIndex"])(this.options, function (option) { return option.value === _this.value; });
45168 if (idx !== -1) {
45169 this.highlightItem(this.itemEls[idx]);
45170 }
45171 };
45172 AgList.prototype.reset = function () {
45173 this.value = null;
45174 this.displayValue = null;
45175 this.clearHighlighted();
45176 this.fireChangeEvent();
45177 };
45178 AgList.prototype.highlightItem = function (el) {
45179 if (!el.offsetParent) {
45180 return;
45181 }
45182 this.clearHighlighted();
45183 this.highlightedEl = el;
45184 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addCssClass"])(this.highlightedEl, AgList.ACTIVE_CLASS);
45185 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaSelected"])(this.highlightedEl, true);
45186 this.highlightedEl.focus();
45187 };
45188 AgList.prototype.clearHighlighted = function () {
45189 if (!this.highlightedEl || !this.highlightedEl.offsetParent) {
45190 return;
45191 }
45192 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeCssClass"])(this.highlightedEl, AgList.ACTIVE_CLASS);
45193 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaSelected"])(this.highlightedEl, false);
45194 this.highlightedEl = null;
45195 };
45196 AgList.prototype.fireChangeEvent = function () {
45197 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"].EVENT_CHANGED });
45198 this.fireItemSelected();
45199 };
45200 AgList.prototype.fireItemSelected = function () {
45201 this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });
45202 };
45203 AgList.EVENT_ITEM_SELECTED = 'selectedItem';
45204 AgList.ACTIVE_CLASS = 'ag-active-item';
45205 __decorate([
45206 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
45207 ], AgList.prototype, "init", null);
45208 return AgList;
45209}(_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
45210
45211
45212
45213/***/ }),
45214/* 203 */
45215/***/ (function(module, __webpack_exports__, __webpack_require__) {
45216
45217"use strict";
45218__webpack_require__.r(__webpack_exports__);
45219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAngleSelect", function() { return AgAngleSelect; });
45220/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(122);
45221/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
45222/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
45223/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(121);
45224/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
45225/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(33);
45226/**
45227 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45228 * @version v25.3.0
45229 * @link http://www.ag-grid.com/
45230 * @license MIT
45231 */
45232var __extends = (undefined && undefined.__extends) || (function () {
45233 var extendStatics = function (d, b) {
45234 extendStatics = Object.setPrototypeOf ||
45235 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45236 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45237 return extendStatics(d, b);
45238 };
45239 return function (d, b) {
45240 extendStatics(d, b);
45241 function __() { this.constructor = d; }
45242 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45243 };
45244})();
45245var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45246 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45247 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45248 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;
45249 return c > 3 && r && Object.defineProperty(target, key, r), r;
45250};
45251
45252
45253
45254
45255
45256
45257var AgAngleSelect = /** @class */ (function (_super) {
45258 __extends(AgAngleSelect, _super);
45259 function AgAngleSelect(config) {
45260 var _this = _super.call(this, config, AgAngleSelect.TEMPLATE) || this;
45261 _this.radius = 0;
45262 _this.offsetX = 0;
45263 _this.offsetY = 0;
45264 return _this;
45265 }
45266 AgAngleSelect.prototype.postConstruct = function () {
45267 var _this = this;
45268 _super.prototype.postConstruct.call(this);
45269 this.dragListener = {
45270 eElement: this.eParentCircle,
45271 dragStartPixels: 0,
45272 onDragStart: function (e) {
45273 _this.parentCircleRect = _this.eParentCircle.getBoundingClientRect();
45274 },
45275 onDragging: function (e) { return _this.calculateAngleDrag(e); },
45276 onDragStop: function () { }
45277 };
45278 this.dragService.addDragSource(this.dragListener);
45279 this.eAngleValue
45280 .setLabel('')
45281 .setLabelWidth(5)
45282 .setInputWidth(45)
45283 .setMin(0)
45284 .setMax(360)
45285 .setValue("" + this.degrees)
45286 .onValueChange(function (value) {
45287 if (value == null || value === '') {
45288 value = '0';
45289 }
45290 value = _this.eAngleValue.normalizeValue(value);
45291 var floatValue = parseFloat(value);
45292 if (floatValue > 180) {
45293 floatValue = floatValue - 360;
45294 }
45295 _this.setValue(floatValue);
45296 });
45297 this.updateNumberInput();
45298 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getValue())) {
45299 this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());
45300 }
45301 this.addManagedListener(this, _agAbstractField__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"].EVENT_CHANGED, function () {
45302 if (_this.eAngleValue.getInputElement().contains(document.activeElement)) {
45303 return;
45304 }
45305 _this.updateNumberInput();
45306 });
45307 };
45308 AgAngleSelect.prototype.updateNumberInput = function () {
45309 var normalizedValue = this.normalizeNegativeValue(this.getValue());
45310 this.eAngleValue.setValue(normalizedValue.toString());
45311 };
45312 AgAngleSelect.prototype.positionChildCircle = function (radians) {
45313 var rect = this.parentCircleRect || { width: 24, height: 24 };
45314 var eChildCircle = this.eChildCircle;
45315 var centerX = rect.width / 2;
45316 var centerY = rect.height / 2;
45317 eChildCircle.style.left = centerX + Math.cos(radians) * 8 + "px";
45318 eChildCircle.style.top = centerY + Math.sin(radians) * 8 + "px";
45319 };
45320 AgAngleSelect.prototype.calculatePolar = function () {
45321 var x = this.offsetX;
45322 var y = this.offsetY;
45323 var radians = Math.atan2(y, x);
45324 this.degrees = this.toDegrees(radians);
45325 this.radius = Math.sqrt((x * x) + (y * y));
45326 this.positionChildCircle(radians);
45327 };
45328 AgAngleSelect.prototype.calculateCartesian = function () {
45329 var radians = this.toRadians(this.getValue());
45330 var radius = this.getRadius();
45331 this
45332 .setOffsetX(Math.cos(radians) * radius)
45333 .setOffsetY(Math.sin(radians) * radius);
45334 };
45335 AgAngleSelect.prototype.setOffsetX = function (offset) {
45336 if (this.offsetX !== offset) {
45337 this.offsetX = offset;
45338 this.calculatePolar();
45339 }
45340 return this;
45341 };
45342 AgAngleSelect.prototype.setOffsetY = function (offset) {
45343 if (this.offsetY !== offset) {
45344 this.offsetY = offset;
45345 this.calculatePolar();
45346 }
45347 return this;
45348 };
45349 AgAngleSelect.prototype.calculateAngleDrag = function (e) {
45350 var rect = this.parentCircleRect;
45351 var centerX = rect.width / 2;
45352 var centerY = rect.height / 2;
45353 var x = e.clientX - rect.left;
45354 var y = e.clientY - rect.top;
45355 var dx = x - centerX;
45356 var dy = y - centerY;
45357 var radians = Math.atan2(dy, dx);
45358 this.setValue(radians, true);
45359 };
45360 AgAngleSelect.prototype.toDegrees = function (radians) {
45361 return radians / Math.PI * 180;
45362 };
45363 AgAngleSelect.prototype.toRadians = function (degrees) {
45364 return degrees / 180 * Math.PI;
45365 };
45366 AgAngleSelect.prototype.normalizeNegativeValue = function (degrees) {
45367 return degrees < 0 ? 360 + degrees : degrees;
45368 };
45369 AgAngleSelect.prototype.normalizeAngle180 = function (radians) {
45370 radians %= Math.PI * 2;
45371 if (radians < -Math.PI) {
45372 radians += Math.PI * 2;
45373 }
45374 else if (radians >= Math.PI) {
45375 radians -= Math.PI * 2;
45376 }
45377 return radians;
45378 };
45379 AgAngleSelect.prototype.getRadius = function () {
45380 return this.radius;
45381 };
45382 AgAngleSelect.prototype.setRadius = function (r) {
45383 if (this.radius === r) {
45384 return this;
45385 }
45386 this.radius = r;
45387 this.calculateCartesian();
45388 return this;
45389 };
45390 AgAngleSelect.prototype.onValueChange = function (callbackFn) {
45391 var _this = this;
45392 this.addManagedListener(this, _agAbstractField__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"].EVENT_CHANGED, function () {
45393 callbackFn(_this.degrees);
45394 });
45395 return this;
45396 };
45397 AgAngleSelect.prototype.getValue = function (radians) {
45398 return radians ? this.toRadians(this.degrees) : this.degrees;
45399 };
45400 AgAngleSelect.prototype.setValue = function (degrees, radians) {
45401 var radiansValue;
45402 if (!radians) {
45403 radiansValue = this.normalizeAngle180(this.toRadians(degrees));
45404 }
45405 else {
45406 radiansValue = degrees;
45407 }
45408 degrees = this.toDegrees(radiansValue);
45409 if (this.degrees !== degrees) {
45410 this.degrees = Math.floor(degrees);
45411 this.calculateCartesian();
45412 this.positionChildCircle(radiansValue);
45413 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"].EVENT_CHANGED });
45414 }
45415 return this;
45416 };
45417 AgAngleSelect.prototype.setWidth = function (width) {
45418 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setFixedWidth"])(this.getGui(), width);
45419 return this;
45420 };
45421 AgAngleSelect.prototype.destroy = function () {
45422 this.dragService.removeDragSource(this.dragListener);
45423 _super.prototype.destroy.call(this);
45424 };
45425 AgAngleSelect.TEMPLATE = "<div class=\"ag-angle-select\">\n <div ref=\"eLabel\"></div>\n <div class=\"ag-wrapper ag-angle-select-wrapper\">\n <div ref=\"eAngleSelectField\" class=\"ag-angle-select-field\">\n <div ref=\"eParentCircle\" class=\"ag-angle-select-parent-circle\">\n <div ref=\"eChildCircle\" class=\"ag-angle-select-child-circle\"></div>\n </div>\n </div>\n <ag-input-number-field ref=\"eAngleValue\"></ag-input-number-field>\n </div>\n </div>";
45426 __decorate([
45427 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLabel')
45428 ], AgAngleSelect.prototype, "eLabel", void 0);
45429 __decorate([
45430 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eParentCircle')
45431 ], AgAngleSelect.prototype, "eParentCircle", void 0);
45432 __decorate([
45433 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eChildCircle')
45434 ], AgAngleSelect.prototype, "eChildCircle", void 0);
45435 __decorate([
45436 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eAngleValue')
45437 ], AgAngleSelect.prototype, "eAngleValue", void 0);
45438 __decorate([
45439 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragService')
45440 ], AgAngleSelect.prototype, "dragService", void 0);
45441 return AgAngleSelect;
45442}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__["AgAbstractLabel"]));
45443
45444
45445
45446/***/ }),
45447/* 204 */
45448/***/ (function(module, __webpack_exports__, __webpack_require__) {
45449
45450"use strict";
45451__webpack_require__.r(__webpack_exports__);
45452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return AgToggleButton; });
45453/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33);
45454/* harmony import */ var _agCheckbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(119);
45455/**
45456 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45457 * @version v25.3.0
45458 * @link http://www.ag-grid.com/
45459 * @license MIT
45460 */
45461var __extends = (undefined && undefined.__extends) || (function () {
45462 var extendStatics = function (d, b) {
45463 extendStatics = Object.setPrototypeOf ||
45464 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45465 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45466 return extendStatics(d, b);
45467 };
45468 return function (d, b) {
45469 extendStatics(d, b);
45470 function __() { this.constructor = d; }
45471 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45472 };
45473})();
45474
45475
45476var AgToggleButton = /** @class */ (function (_super) {
45477 __extends(AgToggleButton, _super);
45478 function AgToggleButton(config) {
45479 return _super.call(this, config, 'ag-toggle-button') || this;
45480 }
45481 AgToggleButton.prototype.setValue = function (value, silent) {
45482 _super.prototype.setValue.call(this, value, silent);
45483 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["addOrRemoveCssClass"])(this.getGui(), 'ag-selected', this.getValue());
45484 return this;
45485 };
45486 return AgToggleButton;
45487}(_agCheckbox__WEBPACK_IMPORTED_MODULE_1__["AgCheckbox"]));
45488
45489
45490
45491/***/ }),
45492/* 205 */
45493/***/ (function(module, __webpack_exports__, __webpack_require__) {
45494
45495"use strict";
45496__webpack_require__.r(__webpack_exports__);
45497/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DetailRowCompCache", function() { return DetailRowCompCache; });
45498/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
45499/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
45500/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
45501/**
45502 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45503 * @version v25.3.0
45504 * @link http://www.ag-grid.com/
45505 * @license MIT
45506 */
45507var __extends = (undefined && undefined.__extends) || (function () {
45508 var extendStatics = function (d, b) {
45509 extendStatics = Object.setPrototypeOf ||
45510 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45511 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45512 return extendStatics(d, b);
45513 };
45514 return function (d, b) {
45515 extendStatics(d, b);
45516 function __() { this.constructor = d; }
45517 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45518 };
45519})();
45520var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45521 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45522 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45523 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;
45524 return c > 3 && r && Object.defineProperty(target, key, r), r;
45525};
45526
45527
45528
45529/**
45530 * For Master Detail, it is required to keep components between expanding & collapsing parents.
45531 * For example a user expands row A (and shows a detail grid for this row), then when row A
45532 * is closed, we want to keep the detail grid, so next time row A is expanded the detail grid
45533 * is showed with it's context intact, eg if user sorted in the detail grid, that sort should
45534 * still be applied after the detail grid is shown for the second time.
45535 */
45536var DetailRowCompCache = /** @class */ (function (_super) {
45537 __extends(DetailRowCompCache, _super);
45538 function DetailRowCompCache() {
45539 var _this = _super !== null && _super.apply(this, arguments) || this;
45540 _this.cacheItems = [];
45541 return _this;
45542 }
45543 DetailRowCompCache.prototype.postConstruct = function () {
45544 this.active = this.gridOptionsWrapper.isKeepDetailRows();
45545 this.maxCacheSize = this.gridOptionsWrapper.getKeepDetailRowsCount();
45546 };
45547 DetailRowCompCache.prototype.addOrDestroy = function (rowNode, pinned, comp) {
45548 // only accept detail rows
45549 var doNotUseCache = !this.active || !rowNode.detail;
45550 if (doNotUseCache) {
45551 this.destroyFullWidthRow(comp);
45552 return;
45553 }
45554 var item = this.getCacheItem(rowNode, true);
45555 // put the comp in the right location of the item.
45556 // we also destroy any previous comp - this should never happen
45557 // as the logic outside of this class shouldn't be adding same item to the
45558 // cache twice, however we cater for it in case in future releases code
45559 // outside of this class is changed and this could happen.
45560 switch (pinned) {
45561 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_LEFT:
45562 this.destroyFullWidthRow(item.left);
45563 item.left = comp;
45564 break;
45565 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_RIGHT:
45566 this.destroyFullWidthRow(item.right);
45567 item.right = comp;
45568 break;
45569 default:
45570 this.destroyFullWidthRow(item.center);
45571 item.center = comp;
45572 break;
45573 }
45574 this.cacheItems.sort(function (a, b) {
45575 return b.lastAccessedTime - a.lastAccessedTime;
45576 });
45577 this.purgeCache(this.maxCacheSize);
45578 };
45579 DetailRowCompCache.prototype.getCacheItem = function (rowNode, autoCreate) {
45580 if (autoCreate === void 0) { autoCreate = false; }
45581 var res = null;
45582 for (var i = 0; i < this.cacheItems.length; i++) {
45583 var item = this.cacheItems[i];
45584 if (item.rowNode === rowNode) {
45585 res = item;
45586 break;
45587 }
45588 }
45589 if (!res && autoCreate) {
45590 res = {
45591 rowNode: rowNode
45592 };
45593 this.cacheItems.push(res);
45594 }
45595 if (res) {
45596 this.stampCacheItem(res);
45597 }
45598 return res;
45599 };
45600 DetailRowCompCache.prototype.stampCacheItem = function (item) {
45601 item.lastAccessedTime = new Date().getTime();
45602 };
45603 DetailRowCompCache.prototype.destroyFullWidthRow = function (comp) {
45604 this.getContext().destroyBean(comp);
45605 };
45606 DetailRowCompCache.prototype.purgeCache = function (startIndex) {
45607 // delete all rows past the index of interest
45608 for (var i = startIndex; i < this.cacheItems.length; i++) {
45609 var item = this.cacheItems[i];
45610 this.destroyFullWidthRow(item.center);
45611 this.destroyFullWidthRow(item.left);
45612 this.destroyFullWidthRow(item.right);
45613 }
45614 // change the length of the array so it no longer contains the deleted items
45615 if (this.cacheItems.length > startIndex) {
45616 this.cacheItems.length = startIndex;
45617 }
45618 };
45619 DetailRowCompCache.prototype.get = function (rowNode, pinned) {
45620 if (!rowNode.detail) {
45621 return;
45622 }
45623 var item = this.getCacheItem(rowNode);
45624 var res;
45625 if (item) {
45626 switch (pinned) {
45627 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_LEFT:
45628 if (item.left) {
45629 res = item.left;
45630 item.left = undefined;
45631 }
45632 break;
45633 case _constants_constants__WEBPACK_IMPORTED_MODULE_1__["Constants"].PINNED_RIGHT:
45634 if (item.right) {
45635 res = item.right;
45636 item.right = undefined;
45637 }
45638 break;
45639 default:
45640 if (item.center) {
45641 res = item.center;
45642 item.center = undefined;
45643 }
45644 break;
45645 }
45646 }
45647 return res;
45648 };
45649 DetailRowCompCache.prototype.destroy = function () {
45650 _super.prototype.destroy.call(this);
45651 this.purgeCache(0);
45652 };
45653 __decorate([
45654 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
45655 ], DetailRowCompCache.prototype, "postConstruct", null);
45656 __decorate([
45657 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
45658 ], DetailRowCompCache.prototype, "destroy", null);
45659 DetailRowCompCache = __decorate([
45660 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('detailRowCompCache')
45661 ], DetailRowCompCache);
45662 return DetailRowCompCache;
45663}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
45664
45665
45666
45667/***/ }),
45668/* 206 */
45669/***/ (function(module, __webpack_exports__, __webpack_require__) {
45670
45671"use strict";
45672__webpack_require__.r(__webpack_exports__);
45673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return RowPositionUtils; });
45674/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
45675/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
45676/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
45677/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
45678/**
45679 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45680 * @version v25.3.0
45681 * @link http://www.ag-grid.com/
45682 * @license MIT
45683 */
45684var __extends = (undefined && undefined.__extends) || (function () {
45685 var extendStatics = function (d, b) {
45686 extendStatics = Object.setPrototypeOf ||
45687 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45688 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45689 return extendStatics(d, b);
45690 };
45691 return function (d, b) {
45692 extendStatics(d, b);
45693 function __() { this.constructor = d; }
45694 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45695 };
45696})();
45697var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45698 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45699 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45700 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;
45701 return c > 3 && r && Object.defineProperty(target, key, r), r;
45702};
45703
45704
45705
45706
45707var RowPositionUtils = /** @class */ (function (_super) {
45708 __extends(RowPositionUtils, _super);
45709 function RowPositionUtils() {
45710 return _super !== null && _super.apply(this, arguments) || this;
45711 }
45712 RowPositionUtils.prototype.getFirstRow = function () {
45713 var rowIndex = 0;
45714 var rowPinned;
45715 if (this.pinnedRowModel.getPinnedTopRowCount()) {
45716 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP;
45717 }
45718 else if (this.rowModel.getRowCount()) {
45719 rowPinned = null;
45720 rowIndex = this.paginationProxy.getPageFirstRow();
45721 }
45722 else if (this.pinnedRowModel.getPinnedBottomRowCount()) {
45723 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM;
45724 }
45725 return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };
45726 };
45727 RowPositionUtils.prototype.getLastRow = function () {
45728 var rowIndex;
45729 var rowPinned = null;
45730 var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();
45731 var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();
45732 if (pinnedBottomCount) {
45733 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM;
45734 rowIndex = pinnedBottomCount - 1;
45735 }
45736 else if (this.rowModel.getRowCount()) {
45737 rowPinned = null;
45738 rowIndex = this.paginationProxy.getPageLastRow();
45739 }
45740 else if (pinnedTopCount) {
45741 rowPinned = _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP;
45742 rowIndex = pinnedTopCount - 1;
45743 }
45744 return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };
45745 };
45746 RowPositionUtils.prototype.getRowNode = function (gridRow) {
45747 switch (gridRow.rowPinned) {
45748 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
45749 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
45750 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
45751 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
45752 default:
45753 return this.rowModel.getRow(gridRow.rowIndex);
45754 }
45755 };
45756 RowPositionUtils.prototype.sameRow = function (rowA, rowB) {
45757 // if both missing
45758 if (!rowA && !rowB) {
45759 return true;
45760 }
45761 // if only one missing
45762 if ((rowA && !rowB) || (!rowA && rowB)) {
45763 return false;
45764 }
45765 // otherwise compare (use == to compare rowPinned because it can be null or undefined)
45766 return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;
45767 };
45768 // tests if this row selection is before the other row selection
45769 RowPositionUtils.prototype.before = function (rowA, rowB) {
45770 switch (rowA.rowPinned) {
45771 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP:
45772 // we we are floating top, and other isn't, then we are always before
45773 if (rowB.rowPinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP) {
45774 return true;
45775 }
45776 break;
45777 case _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM:
45778 // if we are floating bottom, and the other isn't, then we are never before
45779 if (rowB.rowPinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_BOTTOM) {
45780 return false;
45781 }
45782 break;
45783 default:
45784 // if we are not floating, but the other one is floating...
45785 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(rowB.rowPinned)) {
45786 return rowB.rowPinned !== _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].PINNED_TOP;
45787 }
45788 break;
45789 }
45790 return rowA.rowIndex < rowB.rowIndex;
45791 };
45792 __decorate([
45793 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
45794 ], RowPositionUtils.prototype, "rowModel", void 0);
45795 __decorate([
45796 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
45797 ], RowPositionUtils.prototype, "pinnedRowModel", void 0);
45798 __decorate([
45799 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
45800 ], RowPositionUtils.prototype, "paginationProxy", void 0);
45801 RowPositionUtils = __decorate([
45802 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowPositionUtils')
45803 ], RowPositionUtils);
45804 return RowPositionUtils;
45805}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
45806
45807
45808
45809/***/ }),
45810/* 207 */
45811/***/ (function(module, __webpack_exports__, __webpack_require__) {
45812
45813"use strict";
45814__webpack_require__.r(__webpack_exports__);
45815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return CellPositionUtils; });
45816/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
45817/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
45818/**
45819 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45820 * @version v25.3.0
45821 * @link http://www.ag-grid.com/
45822 * @license MIT
45823 */
45824var __extends = (undefined && undefined.__extends) || (function () {
45825 var extendStatics = function (d, b) {
45826 extendStatics = Object.setPrototypeOf ||
45827 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45828 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45829 return extendStatics(d, b);
45830 };
45831 return function (d, b) {
45832 extendStatics(d, b);
45833 function __() { this.constructor = d; }
45834 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45835 };
45836})();
45837var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45838 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45839 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45840 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;
45841 return c > 3 && r && Object.defineProperty(target, key, r), r;
45842};
45843
45844
45845var CellPositionUtils = /** @class */ (function (_super) {
45846 __extends(CellPositionUtils, _super);
45847 function CellPositionUtils() {
45848 return _super !== null && _super.apply(this, arguments) || this;
45849 }
45850 CellPositionUtils.prototype.createId = function (cellPosition) {
45851 var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;
45852 return this.createIdFromValues(rowIndex, column, rowPinned);
45853 };
45854 CellPositionUtils.prototype.createIdFromValues = function (rowIndex, column, rowPinned) {
45855 return rowIndex + "." + (rowPinned == null ? 'null' : rowPinned) + "." + column.getId();
45856 };
45857 CellPositionUtils.prototype.equals = function (cellA, cellB) {
45858 var colsMatch = cellA.column === cellB.column;
45859 var floatingMatch = cellA.rowPinned === cellB.rowPinned;
45860 var indexMatch = cellA.rowIndex === cellB.rowIndex;
45861 return colsMatch && floatingMatch && indexMatch;
45862 };
45863 CellPositionUtils = __decorate([
45864 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('cellPositionUtils')
45865 ], CellPositionUtils);
45866 return CellPositionUtils;
45867}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
45868
45869
45870
45871/***/ }),
45872/* 208 */
45873/***/ (function(module, __webpack_exports__, __webpack_require__) {
45874
45875"use strict";
45876__webpack_require__.r(__webpack_exports__);
45877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return PinnedRowModel; });
45878/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
45879/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
45880/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(23);
45881/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
45882/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20);
45883/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
45884/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
45885/**
45886 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
45887 * @version v25.3.0
45888 * @link http://www.ag-grid.com/
45889 * @license MIT
45890 */
45891var __extends = (undefined && undefined.__extends) || (function () {
45892 var extendStatics = function (d, b) {
45893 extendStatics = Object.setPrototypeOf ||
45894 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45895 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
45896 return extendStatics(d, b);
45897 };
45898 return function (d, b) {
45899 extendStatics(d, b);
45900 function __() { this.constructor = d; }
45901 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45902 };
45903})();
45904var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45905 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45906 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45907 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;
45908 return c > 3 && r && Object.defineProperty(target, key, r), r;
45909};
45910
45911
45912
45913
45914
45915
45916
45917var PinnedRowModel = /** @class */ (function (_super) {
45918 __extends(PinnedRowModel, _super);
45919 function PinnedRowModel() {
45920 return _super !== null && _super.apply(this, arguments) || this;
45921 }
45922 PinnedRowModel.prototype.init = function () {
45923 this.setPinnedTopRowData(this.gridOptionsWrapper.getPinnedTopRowData());
45924 this.setPinnedBottomRowData(this.gridOptionsWrapper.getPinnedBottomRowData());
45925 };
45926 PinnedRowModel.prototype.isEmpty = function (floating) {
45927 var rows = floating === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;
45928 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(rows);
45929 };
45930 PinnedRowModel.prototype.isRowsToRender = function (floating) {
45931 return !this.isEmpty(floating);
45932 };
45933 PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {
45934 var rows = floating === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;
45935 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(rows)) {
45936 return 0; // this should never happen, just in case, 0 is graceful failure
45937 }
45938 for (var i = 0; i < rows.length; i++) {
45939 var rowNode = rows[i];
45940 var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;
45941 // only need to range check against the top pixel, as we are going through the list
45942 // in order, first row to hit the pixel wins
45943 if (rowTopPixel >= pixel) {
45944 return i;
45945 }
45946 }
45947 return rows.length - 1;
45948 };
45949 PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {
45950 this.pinnedTopRows = this.createNodesFromData(rowData, true);
45951 var event = {
45952 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_PINNED_ROW_DATA_CHANGED,
45953 api: this.gridApi,
45954 columnApi: this.columnApi
45955 };
45956 this.eventService.dispatchEvent(event);
45957 };
45958 PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {
45959 this.pinnedBottomRows = this.createNodesFromData(rowData, false);
45960 var event = {
45961 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_PINNED_ROW_DATA_CHANGED,
45962 api: this.gridApi,
45963 columnApi: this.columnApi
45964 };
45965 this.eventService.dispatchEvent(event);
45966 };
45967 PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {
45968 var _this = this;
45969 var rowNodes = [];
45970 if (allData) {
45971 var nextRowTop_1 = 0;
45972 allData.forEach(function (dataItem, index) {
45973 var rowNode = new _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
45974 _this.context.createBean(rowNode);
45975 rowNode.data = dataItem;
45976 var idPrefix = isTop ? _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].ID_PREFIX_TOP_PINNED : _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"].ID_PREFIX_BOTTOM_PINNED;
45977 rowNode.id = idPrefix + index;
45978 rowNode.rowPinned = isTop ? _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP : _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM;
45979 rowNode.setRowTop(nextRowTop_1);
45980 rowNode.setRowHeight(_this.gridOptionsWrapper.getRowHeightForNode(rowNode).height);
45981 rowNode.setRowIndex(index);
45982 nextRowTop_1 += rowNode.rowHeight;
45983 rowNodes.push(rowNode);
45984 });
45985 }
45986 return rowNodes;
45987 };
45988 PinnedRowModel.prototype.getPinnedTopRowData = function () {
45989 return this.pinnedTopRows;
45990 };
45991 PinnedRowModel.prototype.getPinnedBottomRowData = function () {
45992 return this.pinnedBottomRows;
45993 };
45994 PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {
45995 return this.getTotalHeight(this.pinnedTopRows);
45996 };
45997 PinnedRowModel.prototype.getPinnedTopRowCount = function () {
45998 return this.pinnedTopRows ? this.pinnedTopRows.length : 0;
45999 };
46000 PinnedRowModel.prototype.getPinnedBottomRowCount = function () {
46001 return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;
46002 };
46003 PinnedRowModel.prototype.getPinnedTopRow = function (index) {
46004 return this.pinnedTopRows[index];
46005 };
46006 PinnedRowModel.prototype.getPinnedBottomRow = function (index) {
46007 return this.pinnedBottomRows[index];
46008 };
46009 PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {
46010 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(this.pinnedTopRows)) {
46011 return;
46012 }
46013 this.pinnedTopRows.forEach(callback);
46014 };
46015 PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {
46016 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missingOrEmpty"])(this.pinnedBottomRows)) {
46017 return;
46018 }
46019 this.pinnedBottomRows.forEach(callback);
46020 };
46021 PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {
46022 return this.getTotalHeight(this.pinnedBottomRows);
46023 };
46024 PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {
46025 if (!rowNodes || rowNodes.length === 0) {
46026 return 0;
46027 }
46028 var lastNode = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["last"])(rowNodes);
46029 return lastNode.rowTop + lastNode.rowHeight;
46030 };
46031 __decorate([
46032 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
46033 ], PinnedRowModel.prototype, "columnApi", void 0);
46034 __decorate([
46035 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
46036 ], PinnedRowModel.prototype, "gridApi", void 0);
46037 __decorate([
46038 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
46039 ], PinnedRowModel.prototype, "init", null);
46040 PinnedRowModel = __decorate([
46041 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('pinnedRowModel')
46042 ], PinnedRowModel);
46043 return PinnedRowModel;
46044}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
46045
46046
46047
46048/***/ }),
46049/* 209 */
46050/***/ (function(module, __webpack_exports__, __webpack_require__) {
46051
46052"use strict";
46053__webpack_require__.r(__webpack_exports__);
46054/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoService", function() { return UndoRedoService; });
46055/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
46056/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
46057/* harmony import */ var _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(210);
46058/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
46059/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
46060/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);
46061/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(20);
46062/**
46063 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46064 * @version v25.3.0
46065 * @link http://www.ag-grid.com/
46066 * @license MIT
46067 */
46068var __extends = (undefined && undefined.__extends) || (function () {
46069 var extendStatics = function (d, b) {
46070 extendStatics = Object.setPrototypeOf ||
46071 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46072 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46073 return extendStatics(d, b);
46074 };
46075 return function (d, b) {
46076 extendStatics(d, b);
46077 function __() { this.constructor = d; }
46078 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46079 };
46080})();
46081var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46082 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46083 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46084 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;
46085 return c > 3 && r && Object.defineProperty(target, key, r), r;
46086};
46087
46088
46089
46090
46091
46092
46093
46094var UndoRedoService = /** @class */ (function (_super) {
46095 __extends(UndoRedoService, _super);
46096 function UndoRedoService() {
46097 var _this = _super !== null && _super.apply(this, arguments) || this;
46098 _this.cellValueChanges = [];
46099 _this.isCellEditing = false;
46100 _this.isRowEditing = false;
46101 _this.isPasting = false;
46102 _this.isFilling = false;
46103 _this.onCellValueChanged = function (event) {
46104 var shouldCaptureAction = _this.isCellEditing || _this.isRowEditing || _this.isPasting || _this.isFilling;
46105 if (!shouldCaptureAction) {
46106 return;
46107 }
46108 var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;
46109 var cellValueChange = {
46110 rowPinned: rowPinned,
46111 rowIndex: rowIndex,
46112 columnId: column.getColId(),
46113 newValue: value,
46114 oldValue: oldValue
46115 };
46116 _this.cellValueChanges.push(cellValueChange);
46117 };
46118 _this.clearStacks = function () {
46119 _this.undoStack.clear();
46120 _this.redoStack.clear();
46121 };
46122 return _this;
46123 }
46124 UndoRedoService.prototype.init = function () {
46125 if (!this.gridOptionsWrapper.isUndoRedoCellEditing()) {
46126 return;
46127 }
46128 var undoRedoLimit = this.gridOptionsWrapper.getUndoRedoCellEditingLimit();
46129 if (undoRedoLimit <= 0) {
46130 return;
46131 }
46132 this.undoStack = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoStack"](undoRedoLimit);
46133 this.redoStack = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoStack"](undoRedoLimit);
46134 this.addRowEditingListeners();
46135 this.addCellEditingListeners();
46136 this.addPasteListeners();
46137 this.addFillListeners();
46138 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);
46139 // undo / redo is restricted to actual editing so we clear the stacks when other operations are
46140 // performed that change the order of the row / cols.
46141 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.clearStacks);
46142 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);
46143 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_NEW_COLUMNS_LOADED, this.clearStacks);
46144 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_GROUP_OPENED, this.clearStacks);
46145 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);
46146 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_MOVED, this.clearStacks);
46147 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PINNED, this.clearStacks);
46148 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_VISIBLE, this.clearStacks);
46149 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_DRAG_END, this.clearStacks);
46150 };
46151 UndoRedoService.prototype.getCurrentUndoStackSize = function () {
46152 return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;
46153 };
46154 UndoRedoService.prototype.getCurrentRedoStackSize = function () {
46155 return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;
46156 };
46157 UndoRedoService.prototype.undo = function () {
46158 if (!this.undoStack) {
46159 return;
46160 }
46161 var undoAction = this.undoStack.pop();
46162 if (!undoAction || !undoAction.cellValueChanges) {
46163 return;
46164 }
46165 this.processAction(undoAction, function (cellValueChange) { return cellValueChange.oldValue; });
46166 if (undoAction instanceof _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["FillUndoRedoAction"]) {
46167 this.processRangeAndCellFocus(undoAction.cellValueChanges, undoAction.initialRange);
46168 }
46169 else {
46170 this.processRangeAndCellFocus(undoAction.cellValueChanges);
46171 }
46172 this.redoStack.push(undoAction);
46173 };
46174 UndoRedoService.prototype.redo = function () {
46175 if (!this.redoStack) {
46176 return;
46177 }
46178 var redoAction = this.redoStack.pop();
46179 if (!redoAction || !redoAction.cellValueChanges) {
46180 return;
46181 }
46182 this.processAction(redoAction, function (cellValueChange) { return cellValueChange.newValue; });
46183 if (redoAction instanceof _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["FillUndoRedoAction"]) {
46184 this.processRangeAndCellFocus(redoAction.cellValueChanges, redoAction.finalRange);
46185 }
46186 else {
46187 this.processRangeAndCellFocus(redoAction.cellValueChanges);
46188 }
46189 this.undoStack.push(redoAction);
46190 };
46191 UndoRedoService.prototype.processAction = function (action, valueExtractor) {
46192 var _this = this;
46193 action.cellValueChanges.forEach(function (cellValueChange) {
46194 var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;
46195 var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };
46196 var currentRow = _this.getRowNode(rowPosition);
46197 // checks if the row has been filtered out
46198 if (!currentRow.displayed) {
46199 return;
46200 }
46201 currentRow.setDataValue(columnId, valueExtractor(cellValueChange));
46202 });
46203 };
46204 UndoRedoService.prototype.processRangeAndCellFocus = function (cellValueChanges, range) {
46205 var lastFocusedCell;
46206 if (range) {
46207 var startRow = range.startRow;
46208 var endRow = range.endRow;
46209 lastFocusedCell = {
46210 rowPinned: startRow.rowPinned,
46211 rowIndex: startRow.rowIndex,
46212 columnId: range.startColumn.getColId()
46213 };
46214 this.setLastFocusedCell(lastFocusedCell);
46215 var cellRangeParams = {
46216 rowStartIndex: startRow.rowIndex,
46217 rowStartPinned: startRow.rowPinned,
46218 rowEndIndex: endRow.rowIndex,
46219 rowEndPinned: endRow.rowPinned,
46220 columnStart: range.startColumn,
46221 columns: range.columns
46222 };
46223 this.gridApi.addCellRange(cellRangeParams);
46224 return;
46225 }
46226 var cellValueChange = cellValueChanges[0];
46227 var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;
46228 var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };
46229 var row = this.getRowNode(rowPosition);
46230 lastFocusedCell = {
46231 rowPinned: cellValueChange.rowPinned,
46232 rowIndex: row.rowIndex,
46233 columnId: cellValueChange.columnId
46234 };
46235 this.setLastFocusedCell(lastFocusedCell);
46236 };
46237 UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell) {
46238 var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;
46239 this.gridApi.ensureIndexVisible(rowIndex);
46240 this.gridApi.ensureColumnVisible(columnId);
46241 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].RangeSelectionModule)) {
46242 this.gridApi.clearRangeSelection();
46243 }
46244 this.focusController.setFocusedCell(rowIndex, columnId, rowPinned, true);
46245 };
46246 UndoRedoService.prototype.addRowEditingListeners = function () {
46247 var _this = this;
46248 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STARTED, function () {
46249 _this.isRowEditing = true;
46250 });
46251 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STOPPED, function () {
46252 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
46253 _this.pushActionsToUndoStack(action);
46254 _this.isRowEditing = false;
46255 });
46256 };
46257 UndoRedoService.prototype.addCellEditingListeners = function () {
46258 var _this = this;
46259 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STARTED, function () {
46260 _this.isCellEditing = true;
46261 });
46262 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STOPPED, function () {
46263 _this.isCellEditing = false;
46264 var shouldPushAction = !_this.isRowEditing && !_this.isPasting && !_this.isFilling;
46265 if (shouldPushAction) {
46266 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
46267 _this.pushActionsToUndoStack(action);
46268 }
46269 });
46270 };
46271 UndoRedoService.prototype.addPasteListeners = function () {
46272 var _this = this;
46273 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PASTE_START, function () {
46274 _this.isPasting = true;
46275 });
46276 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PASTE_END, function () {
46277 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
46278 _this.pushActionsToUndoStack(action);
46279 _this.isPasting = false;
46280 });
46281 };
46282 UndoRedoService.prototype.addFillListeners = function () {
46283 var _this = this;
46284 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FILL_START, function () {
46285 _this.isFilling = true;
46286 });
46287 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FILL_END, function (event) {
46288 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["FillUndoRedoAction"](_this.cellValueChanges, event.initialRange, event.finalRange);
46289 _this.pushActionsToUndoStack(action);
46290 _this.isFilling = false;
46291 });
46292 };
46293 UndoRedoService.prototype.pushActionsToUndoStack = function (action) {
46294 this.undoStack.push(action);
46295 this.cellValueChanges = [];
46296 this.redoStack.clear();
46297 };
46298 UndoRedoService.prototype.getRowNode = function (gridRow) {
46299 switch (gridRow.rowPinned) {
46300 case _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_TOP:
46301 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
46302 case _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_BOTTOM:
46303 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
46304 default:
46305 return this.rowModel.getRow(gridRow.rowIndex);
46306 }
46307 };
46308 __decorate([
46309 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusController')
46310 ], UndoRedoService.prototype, "focusController", void 0);
46311 __decorate([
46312 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
46313 ], UndoRedoService.prototype, "gridApi", void 0);
46314 __decorate([
46315 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
46316 ], UndoRedoService.prototype, "rowModel", void 0);
46317 __decorate([
46318 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
46319 ], UndoRedoService.prototype, "pinnedRowModel", void 0);
46320 __decorate([
46321 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
46322 ], UndoRedoService.prototype, "init", null);
46323 UndoRedoService = __decorate([
46324 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('undoRedoService')
46325 ], UndoRedoService);
46326 return UndoRedoService;
46327}(_context_beanStub__WEBPACK_IMPORTED_MODULE_6__["BeanStub"]));
46328
46329
46330
46331/***/ }),
46332/* 210 */
46333/***/ (function(module, __webpack_exports__, __webpack_require__) {
46334
46335"use strict";
46336__webpack_require__.r(__webpack_exports__);
46337/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoAction", function() { return UndoRedoAction; });
46338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FillUndoRedoAction", function() { return FillUndoRedoAction; });
46339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoStack", function() { return UndoRedoStack; });
46340/**
46341 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46342 * @version v25.3.0
46343 * @link http://www.ag-grid.com/
46344 * @license MIT
46345 */
46346var __extends = (undefined && undefined.__extends) || (function () {
46347 var extendStatics = function (d, b) {
46348 extendStatics = Object.setPrototypeOf ||
46349 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46350 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46351 return extendStatics(d, b);
46352 };
46353 return function (d, b) {
46354 extendStatics(d, b);
46355 function __() { this.constructor = d; }
46356 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46357 };
46358})();
46359var UndoRedoAction = /** @class */ (function () {
46360 function UndoRedoAction(cellValueChanges) {
46361 this.cellValueChanges = cellValueChanges;
46362 }
46363 return UndoRedoAction;
46364}());
46365
46366var FillUndoRedoAction = /** @class */ (function (_super) {
46367 __extends(FillUndoRedoAction, _super);
46368 function FillUndoRedoAction(cellValueChanges, initialRange, finalRange) {
46369 var _this = _super.call(this, cellValueChanges) || this;
46370 _this.initialRange = initialRange;
46371 _this.finalRange = finalRange;
46372 return _this;
46373 }
46374 return FillUndoRedoAction;
46375}(UndoRedoAction));
46376
46377var UndoRedoStack = /** @class */ (function () {
46378 function UndoRedoStack(maxStackSize) {
46379 this.actionStack = [];
46380 this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;
46381 this.actionStack = new Array(this.maxStackSize);
46382 }
46383 UndoRedoStack.prototype.pop = function () {
46384 return this.actionStack.pop();
46385 };
46386 UndoRedoStack.prototype.push = function (item) {
46387 var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;
46388 if (!shouldAddActions) {
46389 return;
46390 }
46391 if (this.actionStack.length === this.maxStackSize) {
46392 this.actionStack.shift();
46393 }
46394 this.actionStack.push(item);
46395 };
46396 UndoRedoStack.prototype.clear = function () {
46397 this.actionStack = [];
46398 };
46399 UndoRedoStack.prototype.getCurrentStackSize = function () {
46400 return this.actionStack.length;
46401 };
46402 UndoRedoStack.DEFAULT_STACK_SIZE = 10;
46403 return UndoRedoStack;
46404}());
46405
46406
46407
46408/***/ }),
46409/* 211 */
46410/***/ (function(module, __webpack_exports__, __webpack_require__) {
46411
46412"use strict";
46413__webpack_require__.r(__webpack_exports__);
46414/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgStackComponentsRegistry", function() { return AgStackComponentsRegistry; });
46415/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
46416/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
46417/**
46418 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46419 * @version v25.3.0
46420 * @link http://www.ag-grid.com/
46421 * @license MIT
46422 */
46423var __extends = (undefined && undefined.__extends) || (function () {
46424 var extendStatics = function (d, b) {
46425 extendStatics = Object.setPrototypeOf ||
46426 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46427 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46428 return extendStatics(d, b);
46429 };
46430 return function (d, b) {
46431 extendStatics(d, b);
46432 function __() { this.constructor = d; }
46433 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46434 };
46435})();
46436var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46437 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46438 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46439 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;
46440 return c > 3 && r && Object.defineProperty(target, key, r), r;
46441};
46442
46443
46444var AgStackComponentsRegistry = /** @class */ (function (_super) {
46445 __extends(AgStackComponentsRegistry, _super);
46446 function AgStackComponentsRegistry() {
46447 var _this = _super !== null && _super.apply(this, arguments) || this;
46448 _this.componentsMappedByName = {};
46449 return _this;
46450 }
46451 AgStackComponentsRegistry.prototype.setupComponents = function (components) {
46452 var _this = this;
46453 if (components) {
46454 components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });
46455 }
46456 };
46457 AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {
46458 // get name of the class as a string
46459 // let className = getNameOfClass(ComponentClass);
46460 // insert a dash after every capital letter
46461 // let classEscaped = className.replace(/([A-Z])/g, "-$1").toLowerCase();
46462 var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
46463 // put all to upper case
46464 var classUpperCase = classEscaped.toUpperCase();
46465 // finally store
46466 this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;
46467 };
46468 AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {
46469 return this.componentsMappedByName[htmlTag];
46470 };
46471 AgStackComponentsRegistry = __decorate([
46472 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('agStackComponentsRegistry')
46473 ], AgStackComponentsRegistry);
46474 return AgStackComponentsRegistry;
46475}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
46476
46477
46478
46479/***/ }),
46480/* 212 */
46481/***/ (function(module, __webpack_exports__, __webpack_require__) {
46482
46483"use strict";
46484__webpack_require__.r(__webpack_exports__);
46485/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return HeaderPositionUtils; });
46486/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
46487/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
46488/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
46489/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(113);
46490/**
46491 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46492 * @version v25.3.0
46493 * @link http://www.ag-grid.com/
46494 * @license MIT
46495 */
46496var __extends = (undefined && undefined.__extends) || (function () {
46497 var extendStatics = function (d, b) {
46498 extendStatics = Object.setPrototypeOf ||
46499 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46500 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46501 return extendStatics(d, b);
46502 };
46503 return function (d, b) {
46504 extendStatics(d, b);
46505 function __() { this.constructor = d; }
46506 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46507 };
46508})();
46509var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46510 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46511 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46512 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;
46513 return c > 3 && r && Object.defineProperty(target, key, r), r;
46514};
46515
46516
46517
46518
46519var HeaderPositionUtils = /** @class */ (function (_super) {
46520 __extends(HeaderPositionUtils, _super);
46521 function HeaderPositionUtils() {
46522 return _super !== null && _super.apply(this, arguments) || this;
46523 }
46524 HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {
46525 var nextColumn;
46526 var getGroupMethod;
46527 var getColMethod;
46528 if (focusedHeader.column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
46529 getGroupMethod = "getDisplayedGroup" + direction;
46530 nextColumn = this.columnController[getGroupMethod](focusedHeader.column);
46531 }
46532 else {
46533 getColMethod = "getDisplayedCol" + direction;
46534 nextColumn = this.columnController[getColMethod](focusedHeader.column);
46535 }
46536 if (nextColumn) {
46537 return {
46538 column: nextColumn,
46539 headerRowIndex: focusedHeader.headerRowIndex
46540 };
46541 }
46542 };
46543 HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {
46544 var displayedColumns = this.columnController.getAllDisplayedColumns();
46545 var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];
46546 if (!column) {
46547 return;
46548 }
46549 var childContainer = this.headerNavigationService.getHeaderContainer(column.getPinned());
46550 var headerRowComp = childContainer.getRowComps()[level];
46551 var type = headerRowComp && headerRowComp.getType();
46552 if (type == _headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
46553 var columnGroup = this.columnController.getColumnGroupAtLevel(column, level);
46554 return {
46555 headerRowIndex: level,
46556 column: columnGroup
46557 };
46558 }
46559 return {
46560 headerRowIndex: !headerRowComp ? -1 : level,
46561 column: column
46562 };
46563 };
46564 __decorate([
46565 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
46566 ], HeaderPositionUtils.prototype, "columnController", void 0);
46567 __decorate([
46568 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
46569 ], HeaderPositionUtils.prototype, "headerNavigationService", void 0);
46570 HeaderPositionUtils = __decorate([
46571 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('headerPositionUtils')
46572 ], HeaderPositionUtils);
46573 return HeaderPositionUtils;
46574}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
46575
46576
46577
46578/***/ }),
46579/* 213 */
46580/***/ (function(module, __webpack_exports__, __webpack_require__) {
46581
46582"use strict";
46583__webpack_require__.r(__webpack_exports__);
46584/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnDefFactory", function() { return ColumnDefFactory; });
46585/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
46586/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
46587/**
46588 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46589 * @version v25.3.0
46590 * @link http://www.ag-grid.com/
46591 * @license MIT
46592 */
46593var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46594 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46595 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46596 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;
46597 return c > 3 && r && Object.defineProperty(target, key, r), r;
46598};
46599
46600
46601var ColumnDefFactory = /** @class */ (function () {
46602 function ColumnDefFactory() {
46603 }
46604 ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {
46605 var _this = this;
46606 var res = [];
46607 var colGroupDefs = {};
46608 cols.forEach(function (col) {
46609 var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);
46610 var addToResult = true;
46611 var childDef = colDef;
46612 var pointer = col.getOriginalParent();
46613 while (pointer) {
46614 var parentDef = null;
46615 // we don't include padding groups, as the column groups provided
46616 // by application didn't have these. the whole point of padding groups
46617 // is to balance the column tree that the user provided.
46618 if (pointer.isPadding()) {
46619 pointer = pointer.getOriginalParent();
46620 continue;
46621 }
46622 // if colDef for this group already exists, use it
46623 var existingParentDef = colGroupDefs[pointer.getGroupId()];
46624 if (existingParentDef) {
46625 existingParentDef.children.push(childDef);
46626 // if we added to result, it would be the second time we did it
46627 addToResult = false;
46628 // we don't want to continue up the tree, as it has already been
46629 // done for this group
46630 break;
46631 }
46632 parentDef = _this.createDefFromGroup(pointer);
46633 if (parentDef) {
46634 parentDef.children = [childDef];
46635 colGroupDefs[parentDef.groupId] = parentDef;
46636 childDef = parentDef;
46637 pointer = pointer.getOriginalParent();
46638 }
46639 }
46640 if (addToResult) {
46641 res.push(childDef);
46642 }
46643 });
46644 return res;
46645 };
46646 ColumnDefFactory.prototype.createDefFromGroup = function (group) {
46647 var defCloned = Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["deepCloneDefinition"])(group.getColGroupDef(), ['children']);
46648 if (defCloned) {
46649 defCloned.groupId = group.getGroupId();
46650 }
46651 return defCloned;
46652 };
46653 ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {
46654 var colDefCloned = Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["deepCloneDefinition"])(col.getColDef());
46655 colDefCloned.colId = col.getColId();
46656 colDefCloned.width = col.getActualWidth();
46657 colDefCloned.rowGroup = col.isRowGroupActive();
46658 colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;
46659 colDefCloned.pivot = col.isPivotActive();
46660 colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;
46661 colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;
46662 colDefCloned.hide = col.isVisible() ? undefined : true;
46663 colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;
46664 colDefCloned.sort = col.getSort() ? col.getSort() : null;
46665 colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;
46666 return colDefCloned;
46667 };
46668 ColumnDefFactory = __decorate([
46669 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnDefFactory')
46670 ], ColumnDefFactory);
46671 return ColumnDefFactory;
46672}());
46673
46674
46675
46676/***/ }),
46677/* 214 */
46678/***/ (function(module, __webpack_exports__, __webpack_require__) {
46679
46680"use strict";
46681__webpack_require__.r(__webpack_exports__);
46682/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowCssClassCalculator", function() { return RowCssClassCalculator; });
46683/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
46684/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14);
46685/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
46686/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(16);
46687/**
46688 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46689 * @version v25.3.0
46690 * @link http://www.ag-grid.com/
46691 * @license MIT
46692 */
46693var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46694 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46695 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46696 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;
46697 return c > 3 && r && Object.defineProperty(target, key, r), r;
46698};
46699
46700
46701
46702
46703/**
46704 * Common logic for RowComp and AutoHeightCalculator
46705 */
46706var RowCssClassCalculator = /** @class */ (function () {
46707 function RowCssClassCalculator() {
46708 }
46709 RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {
46710 var classes = [];
46711 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(params.extraCssClass)) {
46712 classes.push(params.extraCssClass);
46713 }
46714 classes.push('ag-row');
46715 classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');
46716 if (params.fadeRowIn) {
46717 classes.push('ag-opacity-zero');
46718 }
46719 classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');
46720 if (params.rowNode.isRowPinned()) {
46721 classes.push('ag-row-pinned');
46722 }
46723 if (params.rowNode.isSelected()) {
46724 classes.push('ag-row-selected');
46725 }
46726 if (params.rowNode.footer) {
46727 classes.push('ag-row-footer');
46728 }
46729 classes.push('ag-row-level-' + params.rowLevel);
46730 if (params.rowNode.stub) {
46731 classes.push('ag-row-loading');
46732 }
46733 if (params.fullWidthRow) {
46734 classes.push('ag-full-width-row');
46735 }
46736 if (params.expandable) {
46737 classes.push('ag-row-group');
46738 classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');
46739 }
46740 if (params.rowNode.dragging) {
46741 classes.push('ag-row-dragging');
46742 }
46743 Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["pushAll"])(classes, this.processClassesFromGridOptions(params.rowNode, params.scope));
46744 Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["pushAll"])(classes, this.preProcessRowClassRules(params.rowNode, params.scope));
46745 // we use absolute position unless we are doing print layout
46746 classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');
46747 if (params.firstRowOnPage) {
46748 classes.push('ag-row-first');
46749 }
46750 if (params.lastRowOnPage) {
46751 classes.push('ag-row-last');
46752 }
46753 if (params.fullWidthRow) {
46754 if (params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_LEFT) {
46755 classes.push('ag-cell-last-left-pinned');
46756 }
46757 if (params.pinned === _constants_constants__WEBPACK_IMPORTED_MODULE_3__["Constants"].PINNED_RIGHT) {
46758 classes.push('ag-cell-first-right-pinned');
46759 }
46760 }
46761 return classes;
46762 };
46763 RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode, scope) {
46764 var res = [];
46765 var process = function (rowCls) {
46766 if (typeof rowCls === 'string') {
46767 res.push(rowCls);
46768 }
46769 else if (Array.isArray(rowCls)) {
46770 rowCls.forEach(function (e) { return res.push(e); });
46771 }
46772 };
46773 // part 1 - rowClass
46774 var rowClass = this.gridOptionsWrapper.getRowClass();
46775 if (rowClass) {
46776 if (typeof rowClass === 'function') {
46777 console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');
46778 return [];
46779 }
46780 process(rowClass);
46781 }
46782 // part 2 - rowClassFunc
46783 var rowClassFunc = this.gridOptionsWrapper.getRowClassFunc();
46784 if (rowClassFunc) {
46785 var params = {
46786 data: rowNode.data,
46787 node: rowNode,
46788 rowIndex: rowNode.rowIndex,
46789 $scope: scope,
46790 api: this.gridOptionsWrapper.getApi(),
46791 columnApi: this.gridOptionsWrapper.getColumnApi(),
46792 context: this.gridOptionsWrapper.getContext()
46793 };
46794 var rowClassFuncResult = rowClassFunc(params);
46795 process(rowClassFuncResult);
46796 }
46797 return res;
46798 };
46799 RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode, scope) {
46800 var res = [];
46801 this.processRowClassRules(rowNode, scope, function (className) {
46802 res.push(className);
46803 }, function (className) {
46804 // not catered for, if creating, no need
46805 // to remove class as it was never there
46806 });
46807 return res;
46808 };
46809 RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, scope, onApplicableClass, onNotApplicableClass) {
46810 var rowClassParams = {
46811 data: rowNode.data,
46812 node: rowNode,
46813 rowIndex: rowNode.rowIndex,
46814 api: this.gridOptionsWrapper.getApi(),
46815 columnApi: this.gridOptionsWrapper.getColumnApi(),
46816 $scope: scope,
46817 context: this.gridOptionsWrapper.getContext()
46818 };
46819 this.stylingService.processClassRules(this.gridOptionsWrapper.rowClassRules(), rowClassParams, onApplicableClass, onNotApplicableClass);
46820 };
46821 RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {
46822 if (rowNode.group) {
46823 return rowNode.level;
46824 }
46825 // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item
46826 return rowNode.parent ? (rowNode.parent.level + 1) : 0;
46827 };
46828 __decorate([
46829 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('stylingService')
46830 ], RowCssClassCalculator.prototype, "stylingService", void 0);
46831 __decorate([
46832 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsWrapper')
46833 ], RowCssClassCalculator.prototype, "gridOptionsWrapper", void 0);
46834 RowCssClassCalculator = __decorate([
46835 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('rowCssClassCalculator')
46836 ], RowCssClassCalculator);
46837 return RowCssClassCalculator;
46838}());
46839
46840
46841
46842/***/ }),
46843/* 215 */
46844/***/ (function(module, __webpack_exports__, __webpack_require__) {
46845
46846"use strict";
46847__webpack_require__.r(__webpack_exports__);
46848/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return RowNodeBlockLoader; });
46849/* harmony import */ var _rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(216);
46850/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
46851/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
46852/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
46853/**
46854 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46855 * @version v25.3.0
46856 * @link http://www.ag-grid.com/
46857 * @license MIT
46858 */
46859var __extends = (undefined && undefined.__extends) || (function () {
46860 var extendStatics = function (d, b) {
46861 extendStatics = Object.setPrototypeOf ||
46862 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46863 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
46864 return extendStatics(d, b);
46865 };
46866 return function (d, b) {
46867 extendStatics(d, b);
46868 function __() { this.constructor = d; }
46869 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46870 };
46871})();
46872var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46873 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46874 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46875 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;
46876 return c > 3 && r && Object.defineProperty(target, key, r), r;
46877};
46878var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
46879 return function (target, key) { decorator(target, key, paramIndex); }
46880};
46881
46882
46883
46884
46885var RowNodeBlockLoader = /** @class */ (function (_super) {
46886 __extends(RowNodeBlockLoader, _super);
46887 function RowNodeBlockLoader() {
46888 var _this = _super !== null && _super.apply(this, arguments) || this;
46889 _this.activeBlockLoadsCount = 0;
46890 _this.blocks = [];
46891 _this.active = true;
46892 return _this;
46893 }
46894 RowNodeBlockLoader_1 = RowNodeBlockLoader;
46895 RowNodeBlockLoader.prototype.postConstruct = function () {
46896 this.maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();
46897 var blockLoadDebounceMillis = this.gridOptionsWrapper.getBlockLoadDebounceMillis();
46898 if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {
46899 this.checkBlockToLoadDebounce = _utils__WEBPACK_IMPORTED_MODULE_3__["_"].debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);
46900 }
46901 };
46902 RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {
46903 this.logger = loggerFactory.create('RowNodeBlockLoader');
46904 };
46905 RowNodeBlockLoader.prototype.addBlock = function (block) {
46906 this.blocks.push(block);
46907 // note that we do not remove this listener when removing the block. this is because the
46908 // cache can get destroyed (and containing blocks) when a block is loading. however the loading block
46909 // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.
46910 block.addEventListener(_rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"].EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));
46911 this.checkBlockToLoad();
46912 };
46913 RowNodeBlockLoader.prototype.removeBlock = function (block) {
46914 _utils__WEBPACK_IMPORTED_MODULE_3__["_"].removeFromArray(this.blocks, block);
46915 };
46916 RowNodeBlockLoader.prototype.destroy = function () {
46917 _super.prototype.destroy.call(this);
46918 this.active = false;
46919 };
46920 RowNodeBlockLoader.prototype.loadComplete = function () {
46921 this.activeBlockLoadsCount--;
46922 this.checkBlockToLoad();
46923 if (this.activeBlockLoadsCount == 0) {
46924 this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });
46925 }
46926 };
46927 RowNodeBlockLoader.prototype.checkBlockToLoad = function () {
46928 if (this.checkBlockToLoadDebounce) {
46929 this.checkBlockToLoadDebounce();
46930 }
46931 else {
46932 this.performCheckBlocksToLoad();
46933 }
46934 };
46935 RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {
46936 if (!this.active) {
46937 return;
46938 }
46939 this.printCacheStatus();
46940 if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {
46941 this.logger.log("checkBlockToLoad: max loads exceeded");
46942 return;
46943 }
46944 var blockToLoad = null;
46945 this.blocks.forEach(function (block) {
46946 if (block.getState() === _rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"].STATE_WAITING_TO_LOAD) {
46947 blockToLoad = block;
46948 }
46949 });
46950 if (blockToLoad) {
46951 blockToLoad.load();
46952 this.activeBlockLoadsCount++;
46953 this.printCacheStatus();
46954 }
46955 };
46956 RowNodeBlockLoader.prototype.getBlockState = function () {
46957 var result = {};
46958 this.blocks.forEach(function (block) {
46959 var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;
46960 result[id] = state;
46961 });
46962 return result;
46963 };
46964 RowNodeBlockLoader.prototype.printCacheStatus = function () {
46965 if (this.logger.isLogging()) {
46966 this.logger.log("printCacheStatus: activePageLoadsCount = " + this.activeBlockLoadsCount + ","
46967 + (" blocks = " + JSON.stringify(this.getBlockState())));
46968 }
46969 };
46970 RowNodeBlockLoader.prototype.isLoading = function () {
46971 return this.activeBlockLoadsCount > 0;
46972 };
46973 var RowNodeBlockLoader_1;
46974 RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';
46975 __decorate([
46976 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
46977 ], RowNodeBlockLoader.prototype, "postConstruct", null);
46978 __decorate([
46979 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('loggerFactory'))
46980 ], RowNodeBlockLoader.prototype, "setBeans", null);
46981 RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate([
46982 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowNodeBlockLoader')
46983 ], RowNodeBlockLoader);
46984 return RowNodeBlockLoader;
46985}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
46986
46987
46988
46989/***/ }),
46990/* 216 */
46991/***/ (function(module, __webpack_exports__, __webpack_require__) {
46992
46993"use strict";
46994__webpack_require__.r(__webpack_exports__);
46995/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return RowNodeBlock; });
46996/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
46997/**
46998 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
46999 * @version v25.3.0
47000 * @link http://www.ag-grid.com/
47001 * @license MIT
47002 */
47003var __extends = (undefined && undefined.__extends) || (function () {
47004 var extendStatics = function (d, b) {
47005 extendStatics = Object.setPrototypeOf ||
47006 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47007 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47008 return extendStatics(d, b);
47009 };
47010 return function (d, b) {
47011 extendStatics(d, b);
47012 function __() { this.constructor = d; }
47013 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47014 };
47015})();
47016
47017var RowNodeBlock = /** @class */ (function (_super) {
47018 __extends(RowNodeBlock, _super);
47019 function RowNodeBlock(id) {
47020 var _this = _super.call(this) || this;
47021 _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;
47022 _this.version = 0;
47023 _this.id = id;
47024 return _this;
47025 }
47026 RowNodeBlock.prototype.getId = function () {
47027 return this.id;
47028 };
47029 RowNodeBlock.prototype.load = function () {
47030 this.state = RowNodeBlock.STATE_LOADING;
47031 this.loadFromDatasource();
47032 };
47033 RowNodeBlock.prototype.getVersion = function () {
47034 return this.version;
47035 };
47036 RowNodeBlock.prototype.setStateWaitingToLoad = function () {
47037 // in case any current loads in progress, this will have their results ignored
47038 this.version++;
47039 this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;
47040 };
47041 RowNodeBlock.prototype.getState = function () {
47042 return this.state;
47043 };
47044 RowNodeBlock.prototype.pageLoadFailed = function (version) {
47045 var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);
47046 if (requestMostRecentAndLive) {
47047 this.state = RowNodeBlock.STATE_FAILED;
47048 this.processServerFail();
47049 }
47050 this.dispatchLoadCompleted(false);
47051 };
47052 RowNodeBlock.prototype.success = function (version, params) {
47053 this.successCommon(version, params);
47054 };
47055 RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {
47056 this.successCommon(version, { rowData: rows, rowCount: lastRow });
47057 };
47058 RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {
47059 // thisIsMostRecentRequest - if block was refreshed, then another request
47060 // could of been sent after this one.
47061 var thisIsMostRecentRequest = version === this.version;
47062 // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed
47063 // and new blocks created. so data loads of old blocks are discarded.
47064 var weAreNotDestroyed = this.isAlive();
47065 return thisIsMostRecentRequest && weAreNotDestroyed;
47066 };
47067 RowNodeBlock.prototype.successCommon = function (version, params) {
47068 // need to dispatch load complete before processing the data, as PaginationComp checks
47069 // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to
47070 // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)
47071 this.dispatchLoadCompleted();
47072 var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);
47073 if (requestMostRecentAndLive) {
47074 this.state = RowNodeBlock.STATE_LOADED;
47075 this.processServerResult(params);
47076 }
47077 };
47078 RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {
47079 if (success === void 0) { success = true; }
47080 // we fire event regardless of processing data or now, as we want
47081 // the concurrentLoadRequests count to be reduced in BlockLoader
47082 var event = {
47083 type: RowNodeBlock.EVENT_LOAD_COMPLETE,
47084 success: success,
47085 block: this
47086 };
47087 this.dispatchEvent(event);
47088 };
47089 RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';
47090 RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';
47091 RowNodeBlock.STATE_LOADING = 'loading';
47092 RowNodeBlock.STATE_LOADED = 'loaded';
47093 RowNodeBlock.STATE_FAILED = 'failed';
47094 return RowNodeBlock;
47095}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
47096
47097
47098
47099/***/ }),
47100/* 217 */
47101/***/ (function(module, __webpack_exports__, __webpack_require__) {
47102
47103"use strict";
47104__webpack_require__.r(__webpack_exports__);
47105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return RowNodeSorter; });
47106/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
47107/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
47108/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(16);
47109/**
47110 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47111 * @version v25.3.0
47112 * @link http://www.ag-grid.com/
47113 * @license MIT
47114 */
47115var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47116 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47117 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47118 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;
47119 return c > 3 && r && Object.defineProperty(target, key, r), r;
47120};
47121
47122
47123
47124// this logic is used by both SSRM and CSRM
47125var RowNodeSorter = /** @class */ (function () {
47126 function RowNodeSorter() {
47127 }
47128 RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {
47129 var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };
47130 var sortedRowNodes = rowNodes.map(mapper);
47131 sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));
47132 return sortedRowNodes.map(function (item) { return item.rowNode; });
47133 };
47134 RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {
47135 var nodeA = sortedNodeA.rowNode;
47136 var nodeB = sortedNodeB.rowNode;
47137 // Iterate columns, return the first that doesn't match
47138 for (var i = 0, len = sortOptions.length; i < len; i++) {
47139 var sortOption = sortOptions[i];
47140 // let compared = compare(nodeA, nodeB, sortOption.column, sortOption.inverter === -1);
47141 var isInverted = sortOption.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_DESC;
47142 var valueA = this.getValue(nodeA, sortOption.column);
47143 var valueB = this.getValue(nodeB, sortOption.column);
47144 var comparatorResult = void 0;
47145 var providedComparator = sortOption.column.getColDef().comparator;
47146 if (providedComparator) {
47147 //if comparator provided, use it
47148 comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isInverted);
47149 }
47150 else {
47151 //otherwise do our own comparison
47152 comparatorResult = _utils__WEBPACK_IMPORTED_MODULE_1__["_"].defaultComparator(valueA, valueB, this.gridOptionsWrapper.isAccentedSort());
47153 }
47154 if (comparatorResult !== 0) {
47155 return sortOption.sort === _constants_constants__WEBPACK_IMPORTED_MODULE_2__["Constants"].SORT_ASC ? comparatorResult : comparatorResult * -1;
47156 }
47157 }
47158 // All matched, we make is so that the original sort order is kept:
47159 return sortedNodeA.currentPos - sortedNodeB.currentPos;
47160 };
47161 RowNodeSorter.prototype.getValue = function (nodeA, column) {
47162 return this.valueService.getValue(column, nodeA);
47163 };
47164 __decorate([
47165 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
47166 ], RowNodeSorter.prototype, "gridOptionsWrapper", void 0);
47167 __decorate([
47168 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
47169 ], RowNodeSorter.prototype, "valueService", void 0);
47170 RowNodeSorter = __decorate([
47171 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowNodeSorter')
47172 ], RowNodeSorter);
47173 return RowNodeSorter;
47174}());
47175
47176
47177
47178/***/ }),
47179/* 218 */
47180/***/ (function(module, __webpack_exports__, __webpack_require__) {
47181
47182"use strict";
47183__webpack_require__.r(__webpack_exports__);
47184/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ControllersService", function() { return ControllersService; });
47185/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
47186/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
47187/**
47188 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47189 * @version v25.3.0
47190 * @link http://www.ag-grid.com/
47191 * @license MIT
47192 */
47193var __extends = (undefined && undefined.__extends) || (function () {
47194 var extendStatics = function (d, b) {
47195 extendStatics = Object.setPrototypeOf ||
47196 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47197 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47198 return extendStatics(d, b);
47199 };
47200 return function (d, b) {
47201 extendStatics(d, b);
47202 function __() { this.constructor = d; }
47203 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47204 };
47205})();
47206var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47207 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47208 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47209 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;
47210 return c > 3 && r && Object.defineProperty(target, key, r), r;
47211};
47212
47213
47214var ControllersService = /** @class */ (function (_super) {
47215 __extends(ControllersService, _super);
47216 function ControllersService() {
47217 var _this = _super !== null && _super.apply(this, arguments) || this;
47218 _this.ready = false;
47219 _this.readyCallbacks = [];
47220 return _this;
47221 }
47222 ControllersService.prototype.checkReady = function () {
47223 this.ready =
47224 this.gridCompCon != null
47225 && this.gridBodyCon != null
47226 && this.centerRowContainerCon != null
47227 && this.leftRowContainerCon != null
47228 && this.rightRowContainerCon != null
47229 && this.bottomCenterRowContainerCon != null
47230 && this.bottomLeftRowContainerCon != null
47231 && this.bottomRightRowContainerCon != null
47232 && this.topCenterRowContainerCon != null
47233 && this.topLeftRowContainerCon != null
47234 && this.topRightRowContainerCon != null
47235 && this.fakeHScrollCon != null
47236 && this.headerRootComp != null;
47237 if (this.ready) {
47238 var p_1 = this.createReadyParams();
47239 this.readyCallbacks.forEach(function (c) { return c(p_1); });
47240 this.readyCallbacks.length = 0;
47241 }
47242 };
47243 ControllersService.prototype.whenReady = function (callback) {
47244 if (this.ready) {
47245 callback(this.createReadyParams());
47246 }
47247 else {
47248 this.readyCallbacks.push(callback);
47249 }
47250 };
47251 ControllersService.prototype.createReadyParams = function () {
47252 return {
47253 centerRowContainerCon: this.centerRowContainerCon,
47254 leftRowContainerCon: this.leftRowContainerCon,
47255 rightRowContainerCon: this.rightRowContainerCon,
47256 bottomCenterRowContainerCon: this.bottomCenterRowContainerCon,
47257 bottomLeftRowContainerCon: this.bottomLeftRowContainerCon,
47258 bottomRightRowContainerCon: this.bottomRightRowContainerCon,
47259 topCenterRowContainerCon: this.topCenterRowContainerCon,
47260 topLeftRowContainerCon: this.topLeftRowContainerCon,
47261 topRightRowContainerCon: this.topRightRowContainerCon,
47262 fakeHScrollCon: this.fakeHScrollCon,
47263 gridBodyCon: this.gridBodyCon,
47264 gridCompCon: this.gridCompCon,
47265 headerRootComp: this.headerRootComp,
47266 };
47267 };
47268 ControllersService.prototype.registerFakeHScrollCon = function (con) {
47269 this.fakeHScrollCon = con;
47270 this.checkReady();
47271 };
47272 ControllersService.prototype.registerHeaderRootComp = function (headerRootComp) {
47273 this.headerRootComp = headerRootComp;
47274 this.checkReady();
47275 };
47276 ControllersService.prototype.registerCenterRowContainerCon = function (con) {
47277 this.centerRowContainerCon = con;
47278 this.checkReady();
47279 };
47280 ControllersService.prototype.registerLeftRowContainerCon = function (con) {
47281 this.leftRowContainerCon = con;
47282 this.checkReady();
47283 };
47284 ControllersService.prototype.registerRightRowContainerCon = function (con) {
47285 this.rightRowContainerCon = con;
47286 this.checkReady();
47287 };
47288 ControllersService.prototype.registerTopCenterRowContainerCon = function (con) {
47289 this.topCenterRowContainerCon = con;
47290 this.checkReady();
47291 };
47292 ControllersService.prototype.registerTopLeftRowContainerCon = function (con) {
47293 this.topLeftRowContainerCon = con;
47294 this.checkReady();
47295 };
47296 ControllersService.prototype.registerTopRightRowContainerCon = function (con) {
47297 this.topRightRowContainerCon = con;
47298 this.checkReady();
47299 };
47300 ControllersService.prototype.registerBottomCenterRowContainerCon = function (con) {
47301 this.bottomCenterRowContainerCon = con;
47302 this.checkReady();
47303 };
47304 ControllersService.prototype.registerBottomLeftRowContainerCon = function (con) {
47305 this.bottomLeftRowContainerCon = con;
47306 this.checkReady();
47307 };
47308 ControllersService.prototype.registerBottomRightRowContainerCon = function (con) {
47309 this.bottomRightRowContainerCon = con;
47310 this.checkReady();
47311 };
47312 ControllersService.prototype.registerGridBodyController = function (con) {
47313 this.gridBodyCon = con;
47314 this.checkReady();
47315 };
47316 ControllersService.prototype.registerGridCompController = function (con) {
47317 this.gridCompCon = con;
47318 this.checkReady();
47319 };
47320 ControllersService.prototype.getFakeHScrollCon = function () {
47321 return this.fakeHScrollCon;
47322 };
47323 ControllersService.prototype.getHeaderRootComp = function () {
47324 return this.headerRootComp;
47325 };
47326 ControllersService.prototype.getGridCompController = function () {
47327 return this.gridCompCon;
47328 };
47329 ControllersService.prototype.getCenterRowContainerCon = function () {
47330 return this.centerRowContainerCon;
47331 };
47332 ControllersService.prototype.getTopCenterRowContainerCon = function () {
47333 return this.topCenterRowContainerCon;
47334 };
47335 ControllersService.prototype.getBottomCenterRowContainerCon = function () {
47336 return this.bottomCenterRowContainerCon;
47337 };
47338 ControllersService.prototype.getGridBodyController = function () {
47339 return this.gridBodyCon;
47340 };
47341 ControllersService = __decorate([
47342 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('controllersService')
47343 ], ControllersService);
47344 return ControllersService;
47345}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
47346
47347
47348
47349/***/ }),
47350/* 219 */
47351/***/ (function(module, __webpack_exports__, __webpack_require__) {
47352
47353"use strict";
47354__webpack_require__.r(__webpack_exports__);
47355/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FakeHorizontalScrollComp", function() { return FakeHorizontalScrollComp; });
47356/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
47357/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
47358/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
47359/* harmony import */ var _fakeHorizontalScrollController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(220);
47360/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
47361/* harmony import */ var _centerWidthFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(133);
47362/**
47363 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47364 * @version v25.3.0
47365 * @link http://www.ag-grid.com/
47366 * @license MIT
47367 */
47368var __extends = (undefined && undefined.__extends) || (function () {
47369 var extendStatics = function (d, b) {
47370 extendStatics = Object.setPrototypeOf ||
47371 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47372 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47373 return extendStatics(d, b);
47374 };
47375 return function (d, b) {
47376 extendStatics(d, b);
47377 function __() { this.constructor = d; }
47378 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47379 };
47380})();
47381var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47382 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47383 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47384 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;
47385 return c > 3 && r && Object.defineProperty(target, key, r), r;
47386};
47387
47388
47389
47390
47391
47392
47393var FakeHorizontalScrollComp = /** @class */ (function (_super) {
47394 __extends(FakeHorizontalScrollComp, _super);
47395 function FakeHorizontalScrollComp() {
47396 return _super.call(this, FakeHorizontalScrollComp.TEMPLATE) || this;
47397 }
47398 FakeHorizontalScrollComp.prototype.postConstruct = function () {
47399 var _this = this;
47400 var view = {
47401 setHeight: function (height) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedHeight"])(_this.getGui(), height); },
47402 setContainerHeight: function (height) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedHeight"])(_this.eContainer, height); },
47403 setViewportHeight: function (height) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedHeight"])(_this.eViewport, height); },
47404 setRightSpacerFixedWidth: function (width) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedWidth"])(_this.eRightSpacer, width); },
47405 setLeftSpacerFixedWidth: function (width) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setFixedWidth"])(_this.eLeftSpacer, width); },
47406 setInvisibleStyles: function (isInvisible) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(_this.getGui(), 'ag-invisible-scrollbar', isInvisible); },
47407 includeLeftSpacerScrollerCss: function (cssClass, include) {
47408 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(_this.eLeftSpacer, cssClass, include);
47409 },
47410 includeRightSpacerScrollerCss: function (cssClass, include) {
47411 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["addOrRemoveCssClass"])(_this.eRightSpacer, cssClass, include);
47412 },
47413 };
47414 this.controller = this.createManagedBean(new _fakeHorizontalScrollController__WEBPACK_IMPORTED_MODULE_3__["FakeHorizontalScrollController"]());
47415 this.controller.setView(view, this.eViewport, this.eContainer);
47416 this.createManagedBean(new _centerWidthFeature__WEBPACK_IMPORTED_MODULE_5__["CenterWidthFeature"](function (width) { return _this.eContainer.style.width = width + "px"; }));
47417 };
47418 FakeHorizontalScrollComp.TEMPLATE = "<div class=\"ag-body-horizontal-scroll\" aria-hidden=\"true\">\n <div class=\"ag-horizontal-left-spacer\" ref=\"eLeftSpacer\"></div>\n <div class=\"ag-body-horizontal-scroll-viewport\" ref=\"eViewport\">\n <div class=\"ag-body-horizontal-scroll-container\" ref=\"eContainer\"></div>\n </div>\n <div class=\"ag-horizontal-right-spacer\" ref=\"eRightSpacer\"></div>\n </div>";
47419 __decorate([
47420 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLeftSpacer')
47421 ], FakeHorizontalScrollComp.prototype, "eLeftSpacer", void 0);
47422 __decorate([
47423 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eRightSpacer')
47424 ], FakeHorizontalScrollComp.prototype, "eRightSpacer", void 0);
47425 __decorate([
47426 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eViewport')
47427 ], FakeHorizontalScrollComp.prototype, "eViewport", void 0);
47428 __decorate([
47429 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
47430 ], FakeHorizontalScrollComp.prototype, "eContainer", void 0);
47431 __decorate([
47432 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
47433 ], FakeHorizontalScrollComp.prototype, "postConstruct", null);
47434 return FakeHorizontalScrollComp;
47435}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
47436
47437
47438
47439/***/ }),
47440/* 220 */
47441/***/ (function(module, __webpack_exports__, __webpack_require__) {
47442
47443"use strict";
47444__webpack_require__.r(__webpack_exports__);
47445/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FakeHorizontalScrollController", function() { return FakeHorizontalScrollController; });
47446/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
47447/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34);
47448/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
47449/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
47450/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99);
47451/**
47452 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47453 * @version v25.3.0
47454 * @link http://www.ag-grid.com/
47455 * @license MIT
47456 */
47457var __extends = (undefined && undefined.__extends) || (function () {
47458 var extendStatics = function (d, b) {
47459 extendStatics = Object.setPrototypeOf ||
47460 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47461 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47462 return extendStatics(d, b);
47463 };
47464 return function (d, b) {
47465 extendStatics(d, b);
47466 function __() { this.constructor = d; }
47467 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47468 };
47469})();
47470var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47471 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47472 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47473 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;
47474 return c > 3 && r && Object.defineProperty(target, key, r), r;
47475};
47476
47477
47478
47479
47480
47481var FakeHorizontalScrollController = /** @class */ (function (_super) {
47482 __extends(FakeHorizontalScrollController, _super);
47483 function FakeHorizontalScrollController() {
47484 return _super.call(this) || this;
47485 }
47486 FakeHorizontalScrollController.prototype.setView = function (view, eViewport, eContainer) {
47487 this.view = view;
47488 this.eViewport = eViewport;
47489 this.eContainer = eContainer;
47490 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
47491 this.onScrollVisibilityChanged();
47492 // When doing printing, this changes whether cols are pinned or not
47493 var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);
47494 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);
47495 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);
47496 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_4__["GridOptionsWrapper"].PROP_DOM_LAYOUT, spacerWidthsListener);
47497 this.setFakeHScrollSpacerWidths();
47498 this.controllersService.registerFakeHScrollCon(this);
47499 };
47500 FakeHorizontalScrollController.prototype.postConstruct = function () {
47501 this.enableRtl = this.gridOptionsWrapper.isEnableRtl();
47502 };
47503 FakeHorizontalScrollController.prototype.onScrollVisibilityChanged = function () {
47504 this.setScrollVisible();
47505 this.setFakeHScrollSpacerWidths();
47506 };
47507 FakeHorizontalScrollController.prototype.setFakeHScrollSpacerWidths = function () {
47508 var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();
47509 // we pad the right based on a) if cols are pinned to the right and
47510 // b) if v scroll is showing on the right (normal position of scroll)
47511 var rightSpacing = this.columnController.getDisplayedColumnsRightWidth();
47512 var scrollOnRight = !this.enableRtl && vScrollShowing;
47513 var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();
47514 if (scrollOnRight) {
47515 rightSpacing += scrollbarWidth;
47516 }
47517 this.view.setRightSpacerFixedWidth(rightSpacing);
47518 this.view.includeRightSpacerScrollerCss('ag-scroller-corner', rightSpacing <= scrollbarWidth);
47519 // we pad the left based on a) if cols are pinned to the left and
47520 // b) if v scroll is showing on the left (happens in LTR layout only)
47521 var leftSpacing = this.columnController.getDisplayedColumnsLeftWidth();
47522 var scrollOnLeft = this.enableRtl && vScrollShowing;
47523 if (scrollOnLeft) {
47524 leftSpacing += scrollbarWidth;
47525 }
47526 this.view.setLeftSpacerFixedWidth(leftSpacing);
47527 this.view.includeLeftSpacerScrollerCss('ag-scroller-corner', leftSpacing <= scrollbarWidth);
47528 };
47529 FakeHorizontalScrollController.prototype.setScrollVisible = function () {
47530 var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();
47531 var scrollbarInvisible = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isInvisibleScrollbar"])();
47532 var isSuppressHorizontalScroll = this.gridOptionsWrapper.isSuppressHorizontalScroll();
47533 var scrollbarWidth = hScrollShowing ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;
47534 var adjustedScrollbarWidth = (scrollbarWidth === 0 && scrollbarInvisible) ? 15 : scrollbarWidth;
47535 var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;
47536 var addIEPadding = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isBrowserIE"])() && hScrollShowing;
47537 this.view.setInvisibleStyles(scrollbarInvisible);
47538 this.view.setHeight(scrollContainerSize);
47539 // we have to add an extra pixel to the scroller viewport on IE because
47540 // if the container has the same size as the scrollbar, the scroll button won't work
47541 this.view.setViewportHeight(scrollContainerSize + (addIEPadding ? 1 : 0));
47542 this.view.setContainerHeight(scrollContainerSize);
47543 };
47544 FakeHorizontalScrollController.prototype.getViewport = function () {
47545 return this.eViewport;
47546 };
47547 FakeHorizontalScrollController.prototype.getContainer = function () {
47548 return this.eContainer;
47549 };
47550 __decorate([
47551 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('scrollVisibleService')
47552 ], FakeHorizontalScrollController.prototype, "scrollVisibleService", void 0);
47553 __decorate([
47554 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnController')
47555 ], FakeHorizontalScrollController.prototype, "columnController", void 0);
47556 __decorate([
47557 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('controllersService')
47558 ], FakeHorizontalScrollController.prototype, "controllersService", void 0);
47559 __decorate([
47560 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
47561 ], FakeHorizontalScrollController.prototype, "postConstruct", null);
47562 return FakeHorizontalScrollController;
47563}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
47564
47565
47566
47567/***/ }),
47568/* 221 */
47569/***/ (function(module, __webpack_exports__, __webpack_require__) {
47570
47571"use strict";
47572__webpack_require__.r(__webpack_exports__);
47573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedWidthService", function() { return PinnedWidthService; });
47574/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20);
47575/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
47576/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99);
47577/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24);
47578/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
47579/**
47580 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47581 * @version v25.3.0
47582 * @link http://www.ag-grid.com/
47583 * @license MIT
47584 */
47585var __extends = (undefined && undefined.__extends) || (function () {
47586 var extendStatics = function (d, b) {
47587 extendStatics = Object.setPrototypeOf ||
47588 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47589 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47590 return extendStatics(d, b);
47591 };
47592 return function (d, b) {
47593 extendStatics(d, b);
47594 function __() { this.constructor = d; }
47595 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47596 };
47597})();
47598var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47599 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47600 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47601 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;
47602 return c > 3 && r && Object.defineProperty(target, key, r), r;
47603};
47604
47605
47606
47607
47608
47609var PinnedWidthService = /** @class */ (function (_super) {
47610 __extends(PinnedWidthService, _super);
47611 function PinnedWidthService() {
47612 return _super !== null && _super.apply(this, arguments) || this;
47613 }
47614 PinnedWidthService.prototype.postConstruct = function () {
47615 var listener = this.checkContainerWidths.bind(this);
47616 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
47617 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);
47618 this.addManagedListener(this.gridOptionsWrapper, _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_2__["GridOptionsWrapper"].PROP_DOM_LAYOUT, listener);
47619 };
47620 PinnedWidthService.prototype.checkContainerWidths = function () {
47621 var printLayout = this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_4__["Constants"].DOM_LAYOUT_PRINT;
47622 var newLeftWidth = printLayout ? 0 : this.columnController.getDisplayedColumnsLeftWidth();
47623 var newRightWidth = printLayout ? 0 : this.columnController.getDisplayedColumnsRightWidth();
47624 if (newLeftWidth != this.leftWidth) {
47625 this.leftWidth = newLeftWidth;
47626 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED });
47627 }
47628 if (newRightWidth != this.rightWidth) {
47629 this.rightWidth = newRightWidth;
47630 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED });
47631 }
47632 };
47633 PinnedWidthService.prototype.getPinnedRightWidth = function () {
47634 return this.rightWidth;
47635 };
47636 PinnedWidthService.prototype.getPinnedLeftWidth = function () {
47637 return this.leftWidth;
47638 };
47639 __decorate([
47640 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnController')
47641 ], PinnedWidthService.prototype, "columnController", void 0);
47642 __decorate([
47643 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
47644 ], PinnedWidthService.prototype, "postConstruct", null);
47645 PinnedWidthService = __decorate([
47646 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('pinnedWidthService')
47647 ], PinnedWidthService);
47648 return PinnedWidthService;
47649}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
47650
47651
47652
47653/***/ }),
47654/* 222 */
47655/***/ (function(module, __webpack_exports__, __webpack_require__) {
47656
47657"use strict";
47658__webpack_require__.r(__webpack_exports__);
47659/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerComp", function() { return RowContainerComp; });
47660/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
47661/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
47662/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
47663/* harmony import */ var _rowContainerController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(141);
47664/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33);
47665/* harmony import */ var _gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(99);
47666/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(24);
47667/* harmony import */ var _rendering_row_rowComp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(223);
47668/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16);
47669/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(13);
47670/**
47671 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47672 * @version v25.3.0
47673 * @link http://www.ag-grid.com/
47674 * @license MIT
47675 */
47676var __extends = (undefined && undefined.__extends) || (function () {
47677 var extendStatics = function (d, b) {
47678 extendStatics = Object.setPrototypeOf ||
47679 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47680 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47681 return extendStatics(d, b);
47682 };
47683 return function (d, b) {
47684 extendStatics(d, b);
47685 function __() { this.constructor = d; }
47686 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47687 };
47688})();
47689var __assign = (undefined && undefined.__assign) || function () {
47690 __assign = Object.assign || function(t) {
47691 for (var s, i = 1, n = arguments.length; i < n; i++) {
47692 s = arguments[i];
47693 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
47694 t[p] = s[p];
47695 }
47696 return t;
47697 };
47698 return __assign.apply(this, arguments);
47699};
47700var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47701 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47702 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47703 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;
47704 return c > 3 && r && Object.defineProperty(target, key, r), r;
47705};
47706
47707
47708
47709
47710
47711
47712
47713
47714
47715
47716function templateFactory() {
47717 var name = _widgets_component__WEBPACK_IMPORTED_MODULE_0__["elementGettingCreated"].getAttribute('name');
47718 var containerClass = _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["ContainerCssClasses"].get(name);
47719 var viewportClass = _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["ViewportCssClasses"].get(name);
47720 var wrapperClass = _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["WrapperCssClasses"].get(name);
47721 var res;
47722 switch (name) {
47723 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].LEFT:
47724 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].RIGHT:
47725 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].FULL_WIDTH:
47726 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_LEFT:
47727 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_RIGHT:
47728 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_FULL_WITH:
47729 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_LEFT:
47730 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_RIGHT:
47731 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_FULL_WITH:
47732 res = /* html */
47733 "<div class=\"" + containerClass + "\" ref=\"eContainer\" role=\"presentation\" unselectable=\"on\"></div>";
47734 break;
47735 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].CENTER:
47736 res = /* html */
47737 "<div class=\"" + wrapperClass + "\" ref=\"eWrapper\" role=\"presentation\" unselectable=\"on\">\n <div class=\"" + viewportClass + "\" ref=\"eViewport\" role=\"presentation\">\n <div class=\"" + containerClass + "\" ref=\"eContainer\" role=\"rowgroup\" unselectable=\"on\"></div>\n </div>\n </div>";
47738 break;
47739 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_CENTER:
47740 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_CENTER:
47741 res = /* html */
47742 "<div class=\"" + viewportClass + "\" ref=\"eViewport\" role=\"presentation\" unselectable=\"on\">\n <div class=\"" + containerClass + "\" ref=\"eContainer\" role=\"presentation\" unselectable=\"on\"></div>\n </div>";
47743 break;
47744 default: return '';
47745 }
47746 return res;
47747}
47748var RowContainerComp = /** @class */ (function (_super) {
47749 __extends(RowContainerComp, _super);
47750 function RowContainerComp() {
47751 var _this = _super.call(this, templateFactory()) || this;
47752 _this.renderedRows = {};
47753 _this.name = _widgets_component__WEBPACK_IMPORTED_MODULE_0__["elementGettingCreated"].getAttribute('name');
47754 return _this;
47755 }
47756 RowContainerComp.prototype.postConstruct = function () {
47757 var _this = this;
47758 this.embedFullWidthRows = this.gridOptionsWrapper.isEmbedFullWidthRows();
47759 var view = {
47760 setViewportHeight: function (height) { return _this.eViewport.style.height = height; },
47761 };
47762 var con = this.createManagedBean(new _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerController"](this.name));
47763 con.setView(view, this.eContainer, this.eViewport, this.eWrapper);
47764 this.listenOnDomOrder();
47765 this.stopHScrollOnPinnedRows();
47766 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"].EVENT_DISPLAYED_ROWS_CHANGED, this.onDisplayedRowsChanged.bind(this));
47767 };
47768 RowContainerComp.prototype.forContainers = function (names, callback) {
47769 if (names.indexOf(this.name) >= 0) {
47770 callback();
47771 }
47772 };
47773 // when editing a pinned row, if the cell is half outside the scrollable area, the browser can
47774 // scroll the column into view. we do not want this, the pinned sections should never scroll.
47775 // so we listen to scrolls on these containers and reset the scroll if we find one.
47776 RowContainerComp.prototype.stopHScrollOnPinnedRows = function () {
47777 var _this = this;
47778 this.forContainers([_rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_CENTER, _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_CENTER], function () {
47779 var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };
47780 _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);
47781 });
47782 };
47783 RowContainerComp.prototype.listenOnDomOrder = function () {
47784 var _this = this;
47785 var listener = function () { return _this.domOrder = _this.gridOptionsWrapper.isEnsureDomOrder(); };
47786 this.gridOptionsWrapper.addEventListener(_gridOptionsWrapper__WEBPACK_IMPORTED_MODULE_5__["GridOptionsWrapper"].PROP_DOM_LAYOUT, listener);
47787 listener();
47788 };
47789 // this is repeated inside the controller, need to remove where this one is called from
47790 RowContainerComp.prototype.getViewportElement = function () {
47791 return this.eViewport;
47792 };
47793 RowContainerComp.prototype.clearLastPlacedElement = function () {
47794 this.lastPlacedElement = null;
47795 };
47796 RowContainerComp.prototype.appendRow = function (element) {
47797 if (this.domOrder) {
47798 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["insertWithDomOrder"])(this.eContainer, element, this.lastPlacedElement);
47799 }
47800 else {
47801 this.eContainer.appendChild(element);
47802 }
47803 this.lastPlacedElement = element;
47804 };
47805 RowContainerComp.prototype.ensureDomOrder = function (eRow) {
47806 if (this.domOrder) {
47807 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["ensureDomOrder"])(this.eContainer, eRow, this.lastPlacedElement);
47808 this.lastPlacedElement = eRow;
47809 }
47810 };
47811 RowContainerComp.prototype.removeRow = function (eRow) {
47812 this.eContainer.removeChild(eRow);
47813 };
47814 RowContainerComp.prototype.onDisplayedRowsChanged = function () {
47815 var _this = this;
47816 var fullWithContainer = this.name === _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_FULL_WITH
47817 || this.name === _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_FULL_WITH
47818 || this.name === _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].FULL_WIDTH;
47819 var oldRows = __assign({}, this.renderedRows);
47820 this.renderedRows = {};
47821 this.clearLastPlacedElement();
47822 var processRow = function (rowCon) {
47823 var instanceId = rowCon.getInstanceId();
47824 var existingRowComp = oldRows[instanceId];
47825 if (existingRowComp) {
47826 _this.renderedRows[instanceId] = existingRowComp;
47827 delete oldRows[instanceId];
47828 _this.ensureDomOrder(existingRowComp.getGui());
47829 }
47830 else {
47831 var rowComp = _this.newRowComp(rowCon);
47832 _this.renderedRows[instanceId] = rowComp;
47833 _this.appendRow(rowComp.getGui());
47834 }
47835 };
47836 var doesRowMatch = function (rowCon) {
47837 var fullWidthController = rowCon.isFullWidth();
47838 var printLayout = _this.gridOptionsWrapper.getDomLayout() === _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].DOM_LAYOUT_PRINT;
47839 var embedFW = _this.embedFullWidthRows || printLayout;
47840 var match = fullWithContainer ?
47841 !embedFW && fullWidthController
47842 : embedFW || !fullWidthController;
47843 return match;
47844 };
47845 var rowConsToRender = this.getRowCons();
47846 rowConsToRender.filter(doesRowMatch).forEach(processRow);
47847 Object(_utils_object__WEBPACK_IMPORTED_MODULE_9__["getAllValuesInObject"])(oldRows).forEach(function (rowComp) { return _this.removeRow(rowComp.getGui()); });
47848 };
47849 RowContainerComp.prototype.getRowCons = function () {
47850 switch (this.name) {
47851 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_CENTER:
47852 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_LEFT:
47853 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_RIGHT:
47854 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_FULL_WITH:
47855 return this.rowRenderer.getTopRowCons();
47856 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_CENTER:
47857 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_LEFT:
47858 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_RIGHT:
47859 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_FULL_WITH:
47860 return this.rowRenderer.getBottomRowCons();
47861 default:
47862 return this.rowRenderer.getRowCons();
47863 }
47864 };
47865 RowContainerComp.prototype.newRowComp = function (rowCon) {
47866 var pinned;
47867 switch (this.name) {
47868 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_LEFT:
47869 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_LEFT:
47870 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].LEFT:
47871 pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].PINNED_LEFT;
47872 break;
47873 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].BOTTOM_RIGHT:
47874 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].TOP_RIGHT:
47875 case _rowContainerController__WEBPACK_IMPORTED_MODULE_3__["RowContainerNames"].RIGHT:
47876 pinned = _constants_constants__WEBPACK_IMPORTED_MODULE_8__["Constants"].PINNED_RIGHT;
47877 break;
47878 default:
47879 pinned = null;
47880 break;
47881 }
47882 var res = new _rendering_row_rowComp__WEBPACK_IMPORTED_MODULE_7__["RowComp"](rowCon, this, this.beans, pinned);
47883 return res;
47884 };
47885 __decorate([
47886 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowRenderer')
47887 ], RowContainerComp.prototype, "rowRenderer", void 0);
47888 __decorate([
47889 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("beans")
47890 ], RowContainerComp.prototype, "beans", void 0);
47891 __decorate([
47892 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eViewport')
47893 ], RowContainerComp.prototype, "eViewport", void 0);
47894 __decorate([
47895 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
47896 ], RowContainerComp.prototype, "eContainer", void 0);
47897 __decorate([
47898 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eWrapper')
47899 ], RowContainerComp.prototype, "eWrapper", void 0);
47900 __decorate([
47901 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
47902 ], RowContainerComp.prototype, "postConstruct", null);
47903 return RowContainerComp;
47904}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
47905
47906
47907
47908/***/ }),
47909/* 223 */
47910/***/ (function(module, __webpack_exports__, __webpack_require__) {
47911
47912"use strict";
47913__webpack_require__.r(__webpack_exports__);
47914/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowComp", function() { return RowComp; });
47915/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
47916/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(33);
47917/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
47918/* harmony import */ var _rowController__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(105);
47919/* harmony import */ var _cellComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(107);
47920/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
47921/* harmony import */ var _constants_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16);
47922/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18);
47923/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
47924/**
47925 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
47926 * @version v25.3.0
47927 * @link http://www.ag-grid.com/
47928 * @license MIT
47929 */
47930var __extends = (undefined && undefined.__extends) || (function () {
47931 var extendStatics = function (d, b) {
47932 extendStatics = Object.setPrototypeOf ||
47933 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47934 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
47935 return extendStatics(d, b);
47936 };
47937 return function (d, b) {
47938 extendStatics(d, b);
47939 function __() { this.constructor = d; }
47940 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47941 };
47942})();
47943
47944
47945
47946
47947
47948
47949
47950
47951
47952var RowComp = /** @class */ (function (_super) {
47953 __extends(RowComp, _super);
47954 function RowComp(controller, container, beans, pinned) {
47955 var _this = _super.call(this) || this;
47956 _this.cellComps = {};
47957 _this.container = container;
47958 _this.beans = beans;
47959 _this.rowNode = controller.getRowNode();
47960 _this.pinned = pinned;
47961 _this.controller = controller;
47962 var template = _this.createTemplate();
47963 _this.setTemplate(template);
47964 _this.afterRowAttached();
47965 switch (pinned) {
47966 case _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_LEFT:
47967 controller.setLeftRowComp(_this);
47968 break;
47969 case _constants_constants__WEBPACK_IMPORTED_MODULE_6__["Constants"].PINNED_RIGHT:
47970 controller.setRightRowComp(_this);
47971 break;
47972 default:
47973 if (controller.isFullWidth() && !beans.gridOptionsWrapper.isEmbedFullWidthRows()) {
47974 controller.setFullWidthRowComp(_this);
47975 }
47976 else {
47977 controller.setCenterRowComp(_this);
47978 }
47979 break;
47980 }
47981 if (controller.isFullWidth()) {
47982 _this.createFullWidthRowCell();
47983 }
47984 else {
47985 _this.onColumnChanged();
47986 _this.controller.refreshAriaLabel(_this.getGui(), !!_this.rowNode.isSelected());
47987 }
47988 return _this;
47989 }
47990 RowComp.prototype.createFullWidthRowCell = function () {
47991 var _this = this;
47992 var params = this.controller.createFullWidthParams(this.getGui(), this.pinned);
47993 var callback = function (cellRenderer) {
47994 if (_this.isAlive()) {
47995 var eGui = cellRenderer.getGui();
47996 _this.getGui().appendChild(eGui);
47997 if (_this.controller.getRowType() === _rowController__WEBPACK_IMPORTED_MODULE_3__["RowType"].FullWidthDetail) {
47998 _this.controller.setupDetailRowAutoHeight(eGui);
47999 }
48000 _this.setFullWidthRowComp(cellRenderer);
48001 }
48002 else {
48003 _this.beans.context.destroyBean(cellRenderer);
48004 }
48005 };
48006 // if doing master detail, it's possible we have a cached row comp from last time detail was displayed
48007 var cachedDetailComp = this.beans.detailRowCompCache.get(this.rowNode, this.pinned);
48008 if (cachedDetailComp) {
48009 callback(cachedDetailComp);
48010 }
48011 else {
48012 var cellRendererType = _rowController__WEBPACK_IMPORTED_MODULE_3__["FullWidthKeys"].get(this.controller.getRowType());
48013 var cellRendererName = _rowController__WEBPACK_IMPORTED_MODULE_3__["FullWidthRenderers"].get(this.controller.getRowType());
48014 var res = this.beans.userComponentFactory.newFullWidthCellRenderer(params, cellRendererType, cellRendererName);
48015 if (res) {
48016 res.then(callback);
48017 }
48018 else {
48019 var masterDetailModuleLoaded = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].MasterDetailModule);
48020 if (cellRendererName === 'agDetailCellRenderer' && !masterDetailModuleLoaded) {
48021 console.warn("AG Grid: cell renderer agDetailCellRenderer (for master detail) not found. Did you forget to include the master detail module?");
48022 }
48023 else {
48024 console.error("AG Grid: fullWidthCellRenderer " + cellRendererName + " not found");
48025 }
48026 }
48027 }
48028 // fixme - what to do here?
48029 // this.angular1Compile(eRow);
48030 };
48031 RowComp.prototype.onColumnChanged = function () {
48032 var _this = this;
48033 var cols = this.controller.getColsForRowComp(this.pinned);
48034 var cellsToRemove = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["assign"])({}, this.cellComps);
48035 cols.forEach(function (col) {
48036 var colId = col.getId();
48037 var existingCellComp = _this.cellComps[colId];
48038 // it's possible there is a Cell Comp with correct Id, but it's referring to
48039 // a different column instance. Happens a lot with pivot, as pivot col id's are
48040 // reused eg pivot_0, pivot_1 etc
48041 if (existingCellComp && existingCellComp.getColumn() !== col) {
48042 _this.destroyCells([existingCellComp]);
48043 existingCellComp = null;
48044 }
48045 if (existingCellComp == null) {
48046 _this.newCellComp(col);
48047 }
48048 else {
48049 cellsToRemove[colId] = null;
48050 }
48051 });
48052 var cellCompsToRemove = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(cellsToRemove)
48053 .filter(function (cellComp) { return cellComp ? _this.isCellEligibleToBeRemoved(cellComp) : false; });
48054 this.destroyCells(cellCompsToRemove);
48055 this.ensureDomOrder(cols);
48056 };
48057 RowComp.prototype.ensureDomOrder = function (cols) {
48058 var _this = this;
48059 if (!this.beans.gridOptionsWrapper.isEnsureDomOrder()) {
48060 return;
48061 }
48062 var elementsInOrder = [];
48063 cols.forEach(function (col) {
48064 var cellComp = _this.cellComps[col.getColId()];
48065 if (cellComp) {
48066 elementsInOrder.push(cellComp.getGui());
48067 }
48068 });
48069 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDomChildOrder"])(this.getGui(), elementsInOrder);
48070 };
48071 RowComp.prototype.isCellEligibleToBeRemoved = function (cellComp) {
48072 var REMOVE_CELL = true;
48073 var KEEP_CELL = false;
48074 // always remove the cell if it's not rendered or if it's in the wrong pinned location
48075 var column = cellComp.getColumn();
48076 if (column.getPinned() != this.pinned) {
48077 return REMOVE_CELL;
48078 }
48079 // we want to try and keep editing and focused cells
48080 var editing = cellComp.isEditing();
48081 var focused = this.beans.focusController.isCellFocused(cellComp.getCellPosition());
48082 var mightWantToKeepCell = editing || focused;
48083 if (mightWantToKeepCell) {
48084 var column_1 = cellComp.getColumn();
48085 var displayedColumns = this.beans.columnController.getAllDisplayedColumns();
48086 var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;
48087 return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;
48088 }
48089 return REMOVE_CELL;
48090 };
48091 RowComp.prototype.newCellComp = function (col) {
48092 var cellComp = new _cellComp__WEBPACK_IMPORTED_MODULE_4__["CellComp"](this.controller.getScope(), this.beans, col, this.rowNode, this.controller, false, this.controller.isPrintLayout(), this.getGui(), this.controller.isEditing());
48093 this.cellComps[col.getId()] = cellComp;
48094 this.getGui().appendChild(cellComp.getGui());
48095 };
48096 RowComp.prototype.getCellComp = function (id) {
48097 return this.cellComps[id];
48098 };
48099 RowComp.prototype.getCellCompSpanned = function (column) {
48100 var _this = this;
48101 var spanList = Object.keys(this.cellComps)
48102 .map(function (name) { return _this.cellComps[name]; })
48103 .filter(function (cmp) { return cmp && cmp.getColSpanningList().indexOf(column) !== -1; });
48104 return spanList.length ? spanList[0] : null;
48105 };
48106 RowComp.prototype.destroy = function () {
48107 _super.prototype.destroy.call(this);
48108 this.destroyAllCells();
48109 };
48110 RowComp.prototype.destroyAllCells = function () {
48111 var cellsToDestroy = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(this.cellComps).filter(function (cp) { return cp != null; });
48112 this.destroyCells(cellsToDestroy);
48113 };
48114 RowComp.prototype.getContainer = function () {
48115 return this.container;
48116 };
48117 RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {
48118 var _this = this;
48119 if (this.fullWidthRowComponent) {
48120 console.error('AG Grid - should not be setting fullWidthRowComponent twice');
48121 }
48122 this.fullWidthRowComponent = fullWidthRowComponent;
48123 this.addDestroyFunc(function () {
48124 _this.beans.detailRowCompCache.addOrDestroy(_this.rowNode, _this.pinned, fullWidthRowComponent);
48125 _this.fullWidthRowComponent = null;
48126 });
48127 };
48128 RowComp.prototype.getFullWidthRowComp = function () {
48129 return this.fullWidthRowComponent;
48130 };
48131 RowComp.prototype.createTemplate = function () {
48132 var con = this.controller;
48133 var templateParts = [];
48134 var rowHeight = this.rowNode.rowHeight;
48135 var rowClasses = con.getInitialRowClasses(this.pinned).join(' ');
48136 var rowIdSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(this.rowNode.id);
48137 var userRowStyles = con.preProcessStylesFromGridOptions();
48138 var businessKey = con.getRowBusinessKey();
48139 var businessKeySanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(businessKey);
48140 var rowTopStyle = con.getInitialRowTopStyle();
48141 var rowIdx = this.rowNode.getRowIndexString();
48142 var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();
48143 templateParts.push("<div");
48144 templateParts.push(" role=\"row\"");
48145 templateParts.push(" row-index=\"" + rowIdx + "\" aria-rowindex=\"" + (headerRowCount + this.rowNode.rowIndex + 1) + "\"");
48146 templateParts.push(rowIdSanitised ? " row-id=\"" + rowIdSanitised + "\"" : "");
48147 templateParts.push(businessKey ? " row-business-key=\"" + businessKeySanitised + "\"" : "");
48148 templateParts.push(" comp-id=\"" + this.getCompId() + "\"");
48149 templateParts.push(" class=\"" + rowClasses + "\"");
48150 if (con.isFullWidth()) {
48151 templateParts.push(" tabindex=\"-1\"");
48152 }
48153 if (this.beans.gridOptionsWrapper.isRowSelection()) {
48154 templateParts.push(" aria-selected=\"" + (this.rowNode.isSelected() ? 'true' : 'false') + "\"");
48155 }
48156 if (this.rowNode.group) {
48157 templateParts.push(" aria-expanded=" + (this.rowNode.expanded ? 'true' : 'false'));
48158 }
48159 templateParts.push(" style=\"height: " + rowHeight + "px; " + rowTopStyle + " " + userRowStyles + "\">");
48160 // add in the template for the cells
48161 templateParts.push("</div>");
48162 return templateParts.join('');
48163 };
48164 RowComp.prototype.afterRowAttached = function () {
48165 this.addDomData();
48166 var eRow = this.getGui();
48167 // adding hover functionality adds listener to this row, so we
48168 // do it lazily in an animation frame
48169 if (this.controller.isUseAnimationFrameForCreate()) {
48170 this.beans.taskQueue.createTask(this.controller.addHoverFunctionality.bind(this.controller, eRow), this.rowNode.rowIndex, 'createTasksP2');
48171 }
48172 else {
48173 this.controller.addHoverFunctionality(eRow);
48174 }
48175 this.controller.executeProcessRowPostCreateFunc();
48176 };
48177 RowComp.prototype.addDomData = function () {
48178 var _this = this;
48179 var gow = this.beans.gridOptionsWrapper;
48180 gow.setDomData(this.getGui(), _rowController__WEBPACK_IMPORTED_MODULE_3__["RowController"].DOM_DATA_KEY_RENDERED_ROW, this.controller);
48181 this.addDestroyFunc(function () { return gow.setDomData(_this.getGui(), _rowController__WEBPACK_IMPORTED_MODULE_3__["RowController"].DOM_DATA_KEY_RENDERED_ROW, null); });
48182 };
48183 RowComp.prototype.destroyCells = function (cellComps) {
48184 var _this = this;
48185 cellComps.forEach(function (cellComp) {
48186 // could be old reference, ie removed cell
48187 if (!cellComp) {
48188 return;
48189 }
48190 // check cellComp belongs in this container
48191 var id = cellComp.getColumn().getId();
48192 if (_this.cellComps[id] !== cellComp) {
48193 return;
48194 }
48195 cellComp.detach();
48196 cellComp.destroy();
48197 _this.cellComps[id] = null;
48198 });
48199 };
48200 RowComp.prototype.forEachCellComp = function (callback) {
48201 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.cellComps, function (key, cellComp) {
48202 if (!cellComp) {
48203 return;
48204 }
48205 callback(cellComp);
48206 });
48207 };
48208 return RowComp;
48209}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
48210
48211
48212
48213/***/ }),
48214/* 224 */
48215/***/ (function(module, __webpack_exports__, __webpack_require__) {
48216
48217"use strict";
48218__webpack_require__.r(__webpack_exports__);
48219/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithWebComponents", function() { return initialiseAgGridWithWebComponents; });
48220/* harmony import */ var _componentUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35);
48221/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(98);
48222/**
48223 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48224 * @version v25.3.0
48225 * @link http://www.ag-grid.com/
48226 * @license MIT
48227 */
48228
48229
48230var registered = false;
48231function initialiseAgGridWithWebComponents() {
48232 console.warn('ag-grid: initialiseAgGridWithWebComponents is deprecated. Please use the ag-grid-webcomponent dependency instead. ');
48233 // only register to WebComponents once
48234 if (registered) {
48235 return;
48236 }
48237 registered = true;
48238 if (typeof document === 'undefined' || !document.registerElement) {
48239 console.error('AG Grid: unable to find document.registerElement() function, unable to initialise AG Grid as a Web Component');
48240 }
48241 // i don't think this type of extension is possible in TypeScript, so back to
48242 // plain Javascript to create this object
48243 var AgileGridProto = Object.create(HTMLElement.prototype);
48244 // wrap each property with a get and set method, so we can track when changes are done
48245 _componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].ALL_PROPERTIES.forEach(function (key) {
48246 Object.defineProperty(AgileGridProto, key, {
48247 set: function (v) {
48248 this.__agGridSetProperty(key, v);
48249 },
48250 get: function () {
48251 return this.__agGridGetProperty(key);
48252 },
48253 enumerable: true,
48254 configurable: true
48255 });
48256 });
48257 var agGridProtoNoType = AgileGridProto;
48258 agGridProtoNoType.__agGridSetProperty = function (key, value) {
48259 if (!this.__attributes) {
48260 this.__attributes = {};
48261 }
48262 this.__attributes[key] = value;
48263 // keeping this consistent with the ng2 onChange, so I can reuse the handling code
48264 var changeObject = {};
48265 changeObject[key] = { currentValue: value };
48266 this.onChange(changeObject);
48267 };
48268 agGridProtoNoType.onChange = function (changes) {
48269 if (this._initialised) {
48270 _componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].processOnChange(changes, this._gridOptions, this.api, this.columnApi);
48271 }
48272 };
48273 agGridProtoNoType.__agGridGetProperty = function (key) {
48274 if (!this.__attributes) {
48275 this.__attributes = {};
48276 }
48277 return this.__attributes[key];
48278 };
48279 agGridProtoNoType.setGridOptions = function (options) {
48280 var globalEventListener = this.globalEventListener.bind(this);
48281 this._gridOptions = _componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].copyAttributesToGridOptions(options, this);
48282 var gridParams = {
48283 globalEventListener: globalEventListener
48284 };
48285 this._agGrid = new _grid__WEBPACK_IMPORTED_MODULE_1__["Grid"](this, this._gridOptions, gridParams);
48286 this.api = options.api;
48287 this.columnApi = options.columnApi;
48288 this._initialised = true;
48289 };
48290 // copies all the attributes into this object
48291 agGridProtoNoType.createdCallback = function () {
48292 for (var i = 0; i < this.attributes.length; i++) {
48293 var attribute = this.attributes[i];
48294 this.setPropertyFromAttribute(attribute);
48295 }
48296 };
48297 agGridProtoNoType.setPropertyFromAttribute = function (attribute) {
48298 var name = toCamelCase(attribute.nodeName);
48299 var value = attribute.nodeValue;
48300 if (_componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].ALL_PROPERTIES.indexOf(name) >= 0) {
48301 this[name] = value;
48302 }
48303 };
48304 agGridProtoNoType.attachedCallback = function (params) { };
48305 agGridProtoNoType.detachedCallback = function (params) { };
48306 agGridProtoNoType.attributeChangedCallback = function (attributeName) {
48307 var attribute = this.attributes[attributeName];
48308 this.setPropertyFromAttribute(attribute);
48309 };
48310 agGridProtoNoType.globalEventListener = function (eventType, event) {
48311 var eventLowerCase = eventType.toLowerCase();
48312 var browserEvent = new Event(eventLowerCase);
48313 var browserEventNoType = browserEvent;
48314 browserEventNoType.agGridDetails = event;
48315 this.dispatchEvent(browserEvent);
48316 var callbackMethod = 'on' + eventLowerCase;
48317 if (typeof this[callbackMethod] === 'function') {
48318 this[callbackMethod](browserEvent);
48319 }
48320 };
48321 // finally, register
48322 document.registerElement('ag-grid', { prototype: AgileGridProto });
48323}
48324function toCamelCase(myString) {
48325 if (typeof myString === 'string') {
48326 var result = myString.replace(/-([a-z])/g, function (g) {
48327 return g[1].toUpperCase();
48328 });
48329 return result;
48330 }
48331 else {
48332 return myString;
48333 }
48334}
48335
48336
48337/***/ }),
48338/* 225 */
48339/***/ (function(module, __webpack_exports__, __webpack_require__) {
48340
48341"use strict";
48342__webpack_require__.r(__webpack_exports__);
48343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return TabbedLayout; });
48344/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59);
48345/* harmony import */ var _widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67);
48346/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33);
48347/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47);
48348/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
48349/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
48350/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(60);
48351/**
48352 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48353 * @version v25.3.0
48354 * @link http://www.ag-grid.com/
48355 * @license MIT
48356 */
48357var __extends = (undefined && undefined.__extends) || (function () {
48358 var extendStatics = function (d, b) {
48359 extendStatics = Object.setPrototypeOf ||
48360 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48361 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
48362 return extendStatics(d, b);
48363 };
48364 return function (d, b) {
48365 extendStatics(d, b);
48366 function __() { this.constructor = d; }
48367 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48368 };
48369})();
48370var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48371 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48372 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48373 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;
48374 return c > 3 && r && Object.defineProperty(target, key, r), r;
48375};
48376
48377
48378
48379
48380
48381
48382
48383var TabbedLayout = /** @class */ (function (_super) {
48384 __extends(TabbedLayout, _super);
48385 function TabbedLayout(params) {
48386 var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;
48387 _this.items = [];
48388 _this.params = params;
48389 if (params.items) {
48390 params.items.forEach(function (item) { return _this.addItem(item); });
48391 }
48392 return _this;
48393 }
48394 TabbedLayout.getTemplate = function (cssClass) {
48395 return /* html */ "<div class=\"ag-tabs " + cssClass + "\">\n <div ref=\"eHeader\" role=\"menu\" class=\"ag-tabs-header " + (cssClass ? cssClass + "-header" : '') + "\"></div>\n <div ref=\"eBody\" role=\"presentation\" class=\"ag-tabs-body " + (cssClass ? cssClass + "-body" : '') + "\"></div>\n </div>";
48396 };
48397 TabbedLayout.prototype.handleKeyDown = function (e) {
48398 switch (e.keyCode) {
48399 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].RIGHT:
48400 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].LEFT:
48401 if (!this.eHeader.contains(document.activeElement)) {
48402 return;
48403 }
48404 var currentPosition = this.items.indexOf(this.activeItem);
48405 var nextPosition = e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].RIGHT ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);
48406 if (currentPosition === nextPosition) {
48407 return;
48408 }
48409 e.preventDefault();
48410 var nextItem = this.items[nextPosition];
48411 this.showItemWrapper(nextItem);
48412 nextItem.eHeaderButton.focus();
48413 break;
48414 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
48415 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
48416 e.stopPropagation();
48417 break;
48418 }
48419 };
48420 TabbedLayout.prototype.onTabKeyDown = function (e) {
48421 if (e.defaultPrevented) {
48422 return;
48423 }
48424 var _a = this, focusController = _a.focusController, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;
48425 var activeElement = document.activeElement;
48426 e.preventDefault();
48427 if (eHeader.contains(activeElement)) {
48428 // focus is in header, move into body of popup
48429 focusController.focusInto(eBody, e.shiftKey);
48430 }
48431 else {
48432 // focus is in body, establish if it should return to header
48433 if (focusController.isFocusUnderManagedComponent(eBody)) {
48434 // focus was in a managed focus component and has now left, so we can return to the header
48435 activeItem.eHeaderButton.focus();
48436 }
48437 else {
48438 var nextEl = focusController.findNextFocusableElement(eBody, false, e.shiftKey);
48439 if (nextEl) {
48440 // if another element exists in the body that can be focussed, go to that
48441 nextEl.focus();
48442 }
48443 else {
48444 // otherwise return to the header
48445 activeItem.eHeaderButton.focus();
48446 }
48447 }
48448 }
48449 };
48450 TabbedLayout.prototype.setAfterAttachedParams = function (params) {
48451 this.afterAttachedParams = params;
48452 };
48453 TabbedLayout.prototype.getMinDimensions = function () {
48454 var eDummyContainer = this.getGui().cloneNode(true);
48455 var eDummyBody = eDummyContainer.querySelector('[ref="eBody"]');
48456 // position fixed, so it isn't restricted to the boundaries of the parent
48457 eDummyContainer.style.position = 'fixed';
48458 // we put the dummy into the body container, so it will inherit all the
48459 // css styles that the real cells are inheriting
48460 this.getGui().appendChild(eDummyContainer);
48461 var minWidth = 0;
48462 var minHeight = 0;
48463 this.items.forEach(function (itemWrapper) {
48464 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(eDummyBody);
48465 var eClone = itemWrapper.tabbedItem.bodyPromise.resolveNow(null, function (body) { return body.cloneNode(true); });
48466 if (eClone == null) {
48467 return;
48468 }
48469 eDummyBody.appendChild(eClone);
48470 if (minWidth < eDummyContainer.offsetWidth) {
48471 minWidth = eDummyContainer.offsetWidth;
48472 }
48473 if (minHeight < eDummyContainer.offsetHeight) {
48474 minHeight = eDummyContainer.offsetHeight;
48475 }
48476 });
48477 this.getGui().removeChild(eDummyContainer);
48478 return { height: minHeight, width: minWidth };
48479 };
48480 TabbedLayout.prototype.showFirstItem = function () {
48481 if (this.items.length > 0) {
48482 this.showItemWrapper(this.items[0]);
48483 }
48484 };
48485 TabbedLayout.prototype.addItem = function (item) {
48486 var eHeaderButton = document.createElement('span');
48487 eHeaderButton.setAttribute('tabIndex', '-1');
48488 eHeaderButton.setAttribute('role', 'menuitem');
48489 eHeaderButton.appendChild(item.title);
48490 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(eHeaderButton, 'ag-tab');
48491 this.eHeader.appendChild(eHeaderButton);
48492 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(eHeaderButton, item.titleLabel);
48493 var wrapper = {
48494 tabbedItem: item,
48495 eHeaderButton: eHeaderButton
48496 };
48497 this.items.push(wrapper);
48498 eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));
48499 };
48500 TabbedLayout.prototype.showItem = function (tabbedItem) {
48501 var itemWrapper = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["find"])(this.items, function (wrapper) { return wrapper.tabbedItem === tabbedItem; });
48502 if (itemWrapper) {
48503 this.showItemWrapper(itemWrapper);
48504 }
48505 };
48506 TabbedLayout.prototype.showItemWrapper = function (wrapper) {
48507 var _this = this;
48508 if (this.params.onItemClicked) {
48509 this.params.onItemClicked({ item: wrapper.tabbedItem });
48510 }
48511 if (this.activeItem === wrapper) {
48512 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["callIfPresent"])(this.params.onActiveItemClicked);
48513 return;
48514 }
48515 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eBody);
48516 wrapper.tabbedItem.bodyPromise.then(function (body) {
48517 _this.eBody.appendChild(body);
48518 var onlyUnmanaged = !_this.focusController.isKeyboardMode();
48519 _this.focusController.focusInto(_this.eBody, false, onlyUnmanaged);
48520 if (wrapper.tabbedItem.afterAttachedCallback) {
48521 wrapper.tabbedItem.afterAttachedCallback(_this.afterAttachedParams);
48522 }
48523 });
48524 if (this.activeItem) {
48525 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["removeCssClass"])(this.activeItem.eHeaderButton, 'ag-tab-selected');
48526 }
48527 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addCssClass"])(wrapper.eHeaderButton, 'ag-tab-selected');
48528 this.activeItem = wrapper;
48529 };
48530 __decorate([
48531 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eHeader')
48532 ], TabbedLayout.prototype, "eHeader", void 0);
48533 __decorate([
48534 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eBody')
48535 ], TabbedLayout.prototype, "eBody", void 0);
48536 return TabbedLayout;
48537}(_widgets_managedFocusComponent__WEBPACK_IMPORTED_MODULE_1__["ManagedFocusComponent"]));
48538
48539
48540
48541/***/ }),
48542/* 226 */
48543/***/ (function(module, __webpack_exports__, __webpack_require__) {
48544
48545"use strict";
48546__webpack_require__.r(__webpack_exports__);
48547/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return simpleHttpRequest; });
48548/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42);
48549/**
48550 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48551 * @version v25.3.0
48552 * @link http://www.ag-grid.com/
48553 * @license MIT
48554 */
48555
48556function simpleHttpRequest(params) {
48557 return new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
48558 var httpRequest = new XMLHttpRequest();
48559 httpRequest.open('GET', params.url);
48560 httpRequest.send();
48561 httpRequest.onreadystatechange = function () {
48562 if (httpRequest.readyState === 4 && httpRequest.status === 200) {
48563 resolve(JSON.parse(httpRequest.responseText));
48564 }
48565 };
48566 });
48567}
48568
48569
48570/***/ }),
48571/* 227 */
48572/***/ (function(module, __webpack_exports__, __webpack_require__) {
48573
48574"use strict";
48575__webpack_require__.r(__webpack_exports__);
48576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return ServerSideTransactionResultStatus; });
48577/**
48578 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48579 * @version v25.3.0
48580 * @link http://www.ag-grid.com/
48581 * @license MIT
48582 */
48583var ServerSideTransactionResultStatus;
48584(function (ServerSideTransactionResultStatus) {
48585 ServerSideTransactionResultStatus["StoreNotFound"] = "StoreNotFound";
48586 ServerSideTransactionResultStatus["StoreLoading"] = "StoreLoading";
48587 ServerSideTransactionResultStatus["StoreWaitingToLoad"] = "StoreWaitingToLoad";
48588 ServerSideTransactionResultStatus["StoreLoadingFailed"] = "StoreLoadingFailed";
48589 ServerSideTransactionResultStatus["StoreWrongType"] = "StoreWrongType";
48590 ServerSideTransactionResultStatus["Applied"] = "Applied";
48591 ServerSideTransactionResultStatus["Cancelled"] = "Cancelled";
48592})(ServerSideTransactionResultStatus || (ServerSideTransactionResultStatus = {}));
48593
48594
48595/***/ }),
48596/* 228 */
48597/***/ (function(module, __webpack_exports__, __webpack_require__) {
48598
48599"use strict";
48600__webpack_require__.r(__webpack_exports__);
48601/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return VirtualList; });
48602/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12);
48603/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
48604/* harmony import */ var _managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67);
48605/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
48606/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47);
48607/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60);
48608/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
48609/**
48610 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48611 * @version v25.3.0
48612 * @link http://www.ag-grid.com/
48613 * @license MIT
48614 */
48615var __extends = (undefined && undefined.__extends) || (function () {
48616 var extendStatics = function (d, b) {
48617 extendStatics = Object.setPrototypeOf ||
48618 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48619 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
48620 return extendStatics(d, b);
48621 };
48622 return function (d, b) {
48623 extendStatics(d, b);
48624 function __() { this.constructor = d; }
48625 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48626 };
48627})();
48628var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48629 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48630 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48631 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;
48632 return c > 3 && r && Object.defineProperty(target, key, r), r;
48633};
48634
48635
48636
48637
48638
48639
48640
48641var VirtualList = /** @class */ (function (_super) {
48642 __extends(VirtualList, _super);
48643 function VirtualList(cssIdentifier, ariaRole) {
48644 if (cssIdentifier === void 0) { cssIdentifier = 'default'; }
48645 if (ariaRole === void 0) { ariaRole = 'listbox'; }
48646 var _this = _super.call(this, VirtualList.getTemplate(cssIdentifier), true) || this;
48647 _this.cssIdentifier = cssIdentifier;
48648 _this.ariaRole = ariaRole;
48649 _this.renderedRows = new Map();
48650 _this.rowHeight = 20;
48651 _this.isDestroyed = false;
48652 return _this;
48653 }
48654 VirtualList.prototype.postConstruct = function () {
48655 this.addScrollListener();
48656 this.rowHeight = this.getItemHeight();
48657 this.addResizeObserver();
48658 _super.prototype.postConstruct.call(this);
48659 };
48660 VirtualList.prototype.addResizeObserver = function () {
48661 var listener = this.drawVirtualRows.bind(this);
48662 var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);
48663 this.addDestroyFunc(destroyObserver);
48664 };
48665 VirtualList.prototype.focusInnerElement = function (fromBottom) {
48666 this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);
48667 };
48668 VirtualList.prototype.onFocusIn = function (e) {
48669 _super.prototype.onFocusIn.call(this, e);
48670 var target = e.target;
48671 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["containsClass"])(target, 'ag-virtual-list-item')) {
48672 this.lastFocusedRowIndex = Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["getAriaPosInSet"])(target) - 1;
48673 }
48674 };
48675 VirtualList.prototype.onFocusOut = function (e) {
48676 _super.prototype.onFocusOut.call(this, e);
48677 if (!this.getFocusableElement().contains(e.relatedTarget)) {
48678 this.lastFocusedRowIndex = null;
48679 }
48680 };
48681 VirtualList.prototype.handleKeyDown = function (e) {
48682 switch (e.keyCode) {
48683 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP:
48684 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].DOWN:
48685 if (this.navigate(e.keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP)) {
48686 e.preventDefault();
48687 }
48688 break;
48689 }
48690 };
48691 VirtualList.prototype.onTabKeyDown = function (e) {
48692 if (this.navigate(e.shiftKey)) {
48693 e.preventDefault();
48694 }
48695 else {
48696 // focus on the first or last focusable element to ensure that any other handlers start from there
48697 this.focusController.focusInto(this.getGui(), !e.shiftKey);
48698 }
48699 };
48700 VirtualList.prototype.navigate = function (up) {
48701 if (this.lastFocusedRowIndex == null) {
48702 return false;
48703 }
48704 var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);
48705 if (nextRow < 0 || nextRow >= this.model.getRowCount()) {
48706 return false;
48707 }
48708 this.focusRow(nextRow);
48709 return true;
48710 };
48711 VirtualList.prototype.getLastFocusedRow = function () {
48712 return this.lastFocusedRowIndex;
48713 };
48714 VirtualList.prototype.focusRow = function (rowNumber) {
48715 var _this = this;
48716 this.ensureIndexVisible(rowNumber);
48717 window.setTimeout(function () {
48718 var renderedRow = _this.renderedRows.get(rowNumber);
48719 if (renderedRow) {
48720 renderedRow.eDiv.focus();
48721 }
48722 }, 10);
48723 };
48724 VirtualList.prototype.getComponentAt = function (rowIndex) {
48725 var comp = this.renderedRows.get(rowIndex);
48726 return comp && comp.rowComponent;
48727 };
48728 VirtualList.getTemplate = function (cssIdentifier) {
48729 return /* html */ "\n <div class=\"ag-virtual-list-viewport ag-" + cssIdentifier + "-virtual-list-viewport\" role=\"listbox\">\n <div class=\"ag-virtual-list-container ag-" + cssIdentifier + "-virtual-list-container\" ref=\"eContainer\"></div>\n </div>";
48730 };
48731 VirtualList.prototype.getItemHeight = function () {
48732 return this.gridOptionsWrapper.getListItemHeight();
48733 };
48734 VirtualList.prototype.ensureIndexVisible = function (index) {
48735 var lastRow = this.model.getRowCount();
48736 if (typeof index !== 'number' || index < 0 || index >= lastRow) {
48737 console.warn('invalid row index for ensureIndexVisible: ' + index);
48738 return;
48739 }
48740 var rowTopPixel = index * this.rowHeight;
48741 var rowBottomPixel = rowTopPixel + this.rowHeight;
48742 var eGui = this.getGui();
48743 var viewportTopPixel = eGui.scrollTop;
48744 var viewportHeight = eGui.offsetHeight;
48745 var viewportBottomPixel = viewportTopPixel + viewportHeight;
48746 var viewportScrolledPastRow = viewportTopPixel > rowTopPixel;
48747 var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel;
48748 if (viewportScrolledPastRow) {
48749 // if row is before, scroll up with row at top
48750 eGui.scrollTop = rowTopPixel;
48751 }
48752 else if (viewportScrolledBeforeRow) {
48753 // if row is below, scroll down with row at bottom
48754 var newScrollPosition = rowBottomPixel - viewportHeight;
48755 eGui.scrollTop = newScrollPosition;
48756 }
48757 };
48758 VirtualList.prototype.setComponentCreator = function (componentCreator) {
48759 this.componentCreator = componentCreator;
48760 };
48761 VirtualList.prototype.getRowHeight = function () {
48762 return this.rowHeight;
48763 };
48764 VirtualList.prototype.getScrollTop = function () {
48765 return this.getGui().scrollTop;
48766 };
48767 VirtualList.prototype.setRowHeight = function (rowHeight) {
48768 this.rowHeight = rowHeight;
48769 this.refresh();
48770 };
48771 VirtualList.prototype.refresh = function () {
48772 var _this = this;
48773 if (this.model == null || this.isDestroyed) {
48774 return;
48775 }
48776 var rowCount = this.model.getRowCount();
48777 this.eContainer.style.height = rowCount * this.rowHeight + "px";
48778 // ensure height is applied before attempting to redraw rows
48779 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["waitUntil"])(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {
48780 if (_this.isDestroyed) {
48781 return;
48782 }
48783 _this.clearVirtualRows();
48784 _this.drawVirtualRows();
48785 });
48786 };
48787 VirtualList.prototype.clearVirtualRows = function () {
48788 var _this = this;
48789 this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });
48790 };
48791 VirtualList.prototype.drawVirtualRows = function () {
48792 var gui = this.getGui();
48793 var topPixel = gui.scrollTop;
48794 var bottomPixel = topPixel + gui.offsetHeight;
48795 var firstRow = Math.floor(topPixel / this.rowHeight);
48796 var lastRow = Math.floor(bottomPixel / this.rowHeight);
48797 this.ensureRowsRendered(firstRow, lastRow);
48798 };
48799 VirtualList.prototype.ensureRowsRendered = function (start, finish) {
48800 var _this = this;
48801 // remove any rows that are no longer required
48802 this.renderedRows.forEach(function (_, rowIndex) {
48803 if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {
48804 _this.removeRow(rowIndex);
48805 }
48806 });
48807 // insert any required new rows
48808 for (var rowIndex = start; rowIndex <= finish; rowIndex++) {
48809 if (this.renderedRows.has(rowIndex)) {
48810 continue;
48811 }
48812 // check this row actually exists (in case overflow buffer window exceeds real data)
48813 if (rowIndex < this.model.getRowCount()) {
48814 this.insertRow(rowIndex);
48815 }
48816 }
48817 };
48818 VirtualList.prototype.insertRow = function (rowIndex) {
48819 var _this = this;
48820 var value = this.model.getRow(rowIndex);
48821 var eDiv = document.createElement('div');
48822 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eDiv, 'ag-virtual-list-item');
48823 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["addCssClass"])(eDiv, "ag-" + this.cssIdentifier + "-virtual-list-item");
48824 eDiv.setAttribute('role', this.ariaRole === 'tree' ? 'treeitem' : 'option');
48825 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaSetSize"])(eDiv, this.model.getRowCount());
48826 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaPosInSet"])(eDiv, rowIndex + 1);
48827 eDiv.setAttribute('tabindex', '-1');
48828 if (typeof this.model.isRowSelected === 'function') {
48829 var isSelected = this.model.isRowSelected(rowIndex);
48830 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaSelected"])(eDiv, !!isSelected);
48831 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaChecked"])(eDiv, isSelected);
48832 }
48833 eDiv.style.height = this.rowHeight + "px";
48834 eDiv.style.top = this.rowHeight * rowIndex + "px";
48835 var rowComponent = this.componentCreator(value, eDiv);
48836 rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });
48837 eDiv.appendChild(rowComponent.getGui());
48838 // keep the DOM order consistent with the order of the rows
48839 if (this.renderedRows.has(rowIndex - 1)) {
48840 this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);
48841 }
48842 else if (this.renderedRows.has(rowIndex + 1)) {
48843 this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);
48844 }
48845 else {
48846 this.eContainer.appendChild(eDiv);
48847 }
48848 this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv });
48849 };
48850 VirtualList.prototype.removeRow = function (rowIndex) {
48851 var component = this.renderedRows.get(rowIndex);
48852 this.eContainer.removeChild(component.eDiv);
48853 this.destroyBean(component.rowComponent);
48854 this.renderedRows.delete(rowIndex);
48855 };
48856 VirtualList.prototype.addScrollListener = function () {
48857 var _this = this;
48858 this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); });
48859 };
48860 VirtualList.prototype.setModel = function (model) {
48861 this.model = model;
48862 };
48863 VirtualList.prototype.destroy = function () {
48864 if (this.isDestroyed) {
48865 return;
48866 }
48867 this.clearVirtualRows();
48868 this.isDestroyed = true;
48869 _super.prototype.destroy.call(this);
48870 };
48871 __decorate([
48872 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
48873 ], VirtualList.prototype, "resizeObserverService", void 0);
48874 __decorate([
48875 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
48876 ], VirtualList.prototype, "eContainer", void 0);
48877 return VirtualList;
48878}(_managedFocusComponent__WEBPACK_IMPORTED_MODULE_2__["ManagedFocusComponent"]));
48879
48880
48881
48882/***/ }),
48883/* 229 */
48884/***/ (function(module, __webpack_exports__, __webpack_require__) {
48885
48886"use strict";
48887__webpack_require__.r(__webpack_exports__);
48888/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultGroupComparator", function() { return defaultGroupComparator; });
48889/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
48890/**
48891 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48892 * @version v25.3.0
48893 * @link http://www.ag-grid.com/
48894 * @license MIT
48895 */
48896
48897function defaultGroupComparator(valueA, valueB, nodeA, nodeB, accentedCompare) {
48898 if (accentedCompare === void 0) { accentedCompare = false; }
48899 console.warn('AG Grid: Since ag-grid 11.0.0 defaultGroupComparator is not necessary. You can remove this from your colDef');
48900 var nodeAIsGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(nodeA) && nodeA.group;
48901 var nodeBIsGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(nodeB) && nodeB.group;
48902 var bothAreGroups = nodeAIsGroup && nodeBIsGroup;
48903 var bothAreNormal = !nodeAIsGroup && !nodeBIsGroup;
48904 if (bothAreGroups) {
48905 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["defaultComparator"])(nodeA.key, nodeB.key, accentedCompare);
48906 }
48907 if (bothAreNormal) {
48908 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["defaultComparator"])(valueA, valueB, accentedCompare);
48909 }
48910 if (nodeAIsGroup) {
48911 return 1;
48912 }
48913 return -1;
48914}
48915
48916
48917/***/ }),
48918/* 230 */
48919/***/ (function(module, __webpack_exports__, __webpack_require__) {
48920
48921"use strict";
48922__webpack_require__.r(__webpack_exports__);
48923/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerSideStoreType", function() { return ServerSideStoreType; });
48924/**
48925 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48926 * @version v25.3.0
48927 * @link http://www.ag-grid.com/
48928 * @license MIT
48929 */
48930var ServerSideStoreType;
48931(function (ServerSideStoreType) {
48932 ServerSideStoreType["Full"] = "full";
48933 ServerSideStoreType["Partial"] = "partial";
48934})(ServerSideStoreType || (ServerSideStoreType = {}));
48935
48936
48937/***/ }),
48938/* 231 */
48939/***/ (function(module, __webpack_exports__, __webpack_require__) {
48940
48941"use strict";
48942__webpack_require__.r(__webpack_exports__);
48943/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return BaseComponentWrapper; });
48944/**
48945 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48946 * @version v25.3.0
48947 * @link http://www.ag-grid.com/
48948 * @license MIT
48949 */
48950var BaseComponentWrapper = /** @class */ (function () {
48951 function BaseComponentWrapper() {
48952 }
48953 BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType, componentName) {
48954 var _this = this;
48955 if (optionalMethodList === void 0) { optionalMethodList = []; }
48956 var wrapper = this.createWrapper(OriginalConstructor, componentType, componentName);
48957 mandatoryMethodList.forEach((function (methodName) {
48958 _this.createMethod(wrapper, methodName, true);
48959 }));
48960 optionalMethodList.forEach((function (methodName) {
48961 _this.createMethod(wrapper, methodName, false);
48962 }));
48963 return wrapper;
48964 };
48965 BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {
48966 wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));
48967 };
48968 BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {
48969 return function () {
48970 if (wrapper.hasMethod(methodName)) {
48971 return wrapper.callMethod(methodName, arguments);
48972 }
48973 if (mandatory) {
48974 console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');
48975 }
48976 return null;
48977 };
48978 };
48979 return BaseComponentWrapper;
48980}());
48981
48982
48983
48984/***/ }),
48985/* 232 */
48986/***/ (function(module, __webpack_exports__, __webpack_require__) {
48987
48988"use strict";
48989__webpack_require__.r(__webpack_exports__);
48990/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChartType", function() { return ChartType; });
48991/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LegendPosition", function() { return LegendPosition; });
48992/**
48993 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
48994 * @version v25.3.0
48995 * @link http://www.ag-grid.com/
48996 * @license MIT
48997 */
48998var ChartType;
48999(function (ChartType) {
49000 ChartType["Column"] = "column";
49001 ChartType["GroupedColumn"] = "groupedColumn";
49002 ChartType["StackedColumn"] = "stackedColumn";
49003 ChartType["NormalizedColumn"] = "normalizedColumn";
49004 ChartType["Bar"] = "bar";
49005 ChartType["GroupedBar"] = "groupedBar";
49006 ChartType["StackedBar"] = "stackedBar";
49007 ChartType["NormalizedBar"] = "normalizedBar";
49008 ChartType["Line"] = "line";
49009 ChartType["Scatter"] = "scatter";
49010 ChartType["Bubble"] = "bubble";
49011 ChartType["Pie"] = "pie";
49012 ChartType["Doughnut"] = "doughnut";
49013 ChartType["Area"] = "area";
49014 ChartType["StackedArea"] = "stackedArea";
49015 ChartType["NormalizedArea"] = "normalizedArea";
49016 ChartType["Histogram"] = "histogram";
49017})(ChartType || (ChartType = {}));
49018var LegendPosition;
49019(function (LegendPosition) {
49020 LegendPosition["Top"] = "top";
49021 LegendPosition["Right"] = "right";
49022 LegendPosition["Bottom"] = "bottom";
49023 LegendPosition["Left"] = "left";
49024})(LegendPosition || (LegendPosition = {}));
49025
49026
49027/***/ }),
49028/* 233 */
49029/***/ (function(module, __webpack_exports__, __webpack_require__) {
49030
49031"use strict";
49032__webpack_require__.r(__webpack_exports__);
49033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModel", function() { return ClientSideRowModel; });
49034/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
49035/* harmony import */ var _clientSideNodeManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(234);
49036var __extends = (undefined && undefined.__extends) || (function () {
49037 var extendStatics = function (d, b) {
49038 extendStatics = Object.setPrototypeOf ||
49039 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49040 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
49041 return extendStatics(d, b);
49042 };
49043 return function (d, b) {
49044 extendStatics(d, b);
49045 function __() { this.constructor = d; }
49046 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49047 };
49048})();
49049var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49050 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49051 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49052 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;
49053 return c > 3 && r && Object.defineProperty(target, key, r), r;
49054};
49055
49056
49057var RecursionType;
49058(function (RecursionType) {
49059 RecursionType[RecursionType["Normal"] = 0] = "Normal";
49060 RecursionType[RecursionType["AfterFilter"] = 1] = "AfterFilter";
49061 RecursionType[RecursionType["AfterFilterAndSort"] = 2] = "AfterFilterAndSort";
49062 RecursionType[RecursionType["PivotNodes"] = 3] = "PivotNodes";
49063})(RecursionType || (RecursionType = {}));
49064var ClientSideRowModel = /** @class */ (function (_super) {
49065 __extends(ClientSideRowModel, _super);
49066 function ClientSideRowModel() {
49067 var _this = _super !== null && _super.apply(this, arguments) || this;
49068 _this.onRowGroupOpenedPending = false;
49069 return _this;
49070 }
49071 ClientSideRowModel.prototype.init = function () {
49072 var refreshEverythingFunc = this.refreshModel.bind(this, { step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING });
49073 var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {
49074 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49075 afterColumnsChanged: true,
49076 keepRenderedRows: true,
49077 animate: true
49078 });
49079 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);
49080 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);
49081 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));
49082 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_CHANGED, this.refreshModel.bind(this, { step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT }));
49083 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_GROUP_OPENED, this.onRowGroupOpened.bind(this));
49084 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
49085 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
49086 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);
49087 var refreshMapListener = this.refreshModel.bind(this, {
49088 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP,
49089 keepRenderedRows: true,
49090 animate: true
49091 });
49092 this.addManagedListener(this.gridOptionsWrapper, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_SINGLE_CHILDREN, refreshMapListener);
49093 this.addManagedListener(this.gridOptionsWrapper, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GridOptionsWrapper"].PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, refreshMapListener);
49094 this.rootNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
49095 this.nodeManager = new _clientSideNodeManager__WEBPACK_IMPORTED_MODULE_1__["ClientSideNodeManager"](this.rootNode, this.gridOptionsWrapper, this.getContext(), this.eventService, this.columnController, this.gridApi, this.columnApi, this.selectionController);
49096 this.createBean(this.rootNode);
49097 };
49098 ClientSideRowModel.prototype.start = function () {
49099 var rowData = this.gridOptionsWrapper.getRowData();
49100 if (rowData) {
49101 this.setRowData(rowData);
49102 }
49103 };
49104 ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
49105 var atLeastOneChange;
49106 var res = false;
49107 // we do this multiple times as changing the row heights can also change the first and last rows,
49108 // so the first pass can make lots of rows smaller, which means the second pass we end up changing
49109 // more rows.
49110 do {
49111 atLeastOneChange = false;
49112 var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);
49113 var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);
49114 // keep check to current page if doing pagination
49115 var firstRow = Math.max(rowAtStartPixel, startLimitIndex);
49116 var lastRow = Math.min(rowAtEndPixel, endLimitIndex);
49117 for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {
49118 var rowNode = this.getRow(rowIndex);
49119 if (rowNode.rowHeightEstimated) {
49120 var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode);
49121 rowNode.setRowHeight(rowHeight.height);
49122 atLeastOneChange = true;
49123 res = true;
49124 }
49125 }
49126 if (atLeastOneChange) {
49127 this.setRowTops();
49128 }
49129 } while (atLeastOneChange);
49130 return res;
49131 };
49132 ClientSideRowModel.prototype.setRowTops = function () {
49133 var nextRowTop = 0;
49134 for (var i = 0; i < this.rowsToDisplay.length; i++) {
49135 // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time
49136 // with these two layouts.
49137 var allowEstimate = this.gridOptionsWrapper.getDomLayout() === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].DOM_LAYOUT_NORMAL;
49138 var rowNode = this.rowsToDisplay[i];
49139 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNode.rowHeight)) {
49140 var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode, allowEstimate);
49141 rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);
49142 }
49143 rowNode.setRowTop(nextRowTop);
49144 rowNode.setRowIndex(i);
49145 nextRowTop += rowNode.rowHeight;
49146 }
49147 };
49148 ClientSideRowModel.prototype.resetRowTops = function (changedPath) {
49149 var displayedRowsMapped = {};
49150 this.rowsToDisplay.forEach(function (rowNode) {
49151 if (rowNode.id != null) {
49152 displayedRowsMapped[rowNode.id] = rowNode;
49153 }
49154 });
49155 var clearIfNotDisplayed = function (rowNode) {
49156 if (rowNode && rowNode.id != null && displayedRowsMapped[rowNode.id] == null) {
49157 rowNode.clearRowTopAndRowIndex();
49158 }
49159 };
49160 var recurse = function (rowNode) {
49161 clearIfNotDisplayed(rowNode);
49162 clearIfNotDisplayed(rowNode.detailNode);
49163 clearIfNotDisplayed(rowNode.sibling);
49164 if (rowNode.hasChildren()) {
49165 if (rowNode.childrenAfterGroup) {
49166 // if a changedPath is active, it means we are here because of a transaction update or
49167 // a change detection. neither of these impacts the open/closed state of groups. so if
49168 // a group is not open this time, it was not open last time. so we know all closed groups
49169 // already have their top positions cleared. so there is no need to traverse all the way
49170 // when changedPath is active and the rowNode is not expanded.
49171 var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,
49172 // as expanded=undefined for root node
49173 var skipChildren = changedPath.isActive() && !isRootNode && !rowNode.expanded;
49174 if (!skipChildren) {
49175 rowNode.childrenAfterGroup.forEach(recurse);
49176 }
49177 }
49178 }
49179 };
49180 recurse(this.rootNode);
49181 };
49182 // returns false if row was moved, otherwise true
49183 ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {
49184 var _this = this;
49185 if (increment === void 0) { increment = 0; }
49186 var indexAtPixelNow = this.getRowIndexAtPixel(pixel);
49187 var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);
49188 if (rowNodeAtPixelNow === rowNodes[0]) {
49189 return false;
49190 }
49191 rowNodes.forEach(function (rowNode) {
49192 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].removeFromArray(_this.rootNode.allLeafChildren, rowNode);
49193 });
49194 rowNodes.forEach(function (rowNode, idx) {
49195 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);
49196 });
49197 this.refreshModel({
49198 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49199 keepRenderedRows: true,
49200 animate: true,
49201 keepEditingRows: true
49202 });
49203 return true;
49204 };
49205 ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {
49206 var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;
49207 var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;
49208 if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {
49209 if (this.lastHighlightedRow) {
49210 this.lastHighlightedRow.setHighlighted(null);
49211 this.lastHighlightedRow = null;
49212 }
49213 return;
49214 }
49215 var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);
49216 if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {
49217 this.lastHighlightedRow.setHighlighted(null);
49218 this.lastHighlightedRow = null;
49219 }
49220 rowNodeAtPixelNow.setHighlighted(highlight);
49221 this.lastHighlightedRow = rowNodeAtPixelNow;
49222 };
49223 ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {
49224 if (!rowNode) {
49225 var index = this.getRowIndexAtPixel(pixel);
49226 rowNode = this.getRow(index || 0);
49227 if (!rowNode) {
49228 return 'below';
49229 }
49230 }
49231 var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;
49232 return pixel - rowTop < rowHeight / 2 ? 'above' : 'below';
49233 };
49234 ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {
49235 return this.lastHighlightedRow;
49236 };
49237 ClientSideRowModel.prototype.isLastRowIndexKnown = function () {
49238 return true;
49239 };
49240 ClientSideRowModel.prototype.getRowCount = function () {
49241 if (this.rowsToDisplay) {
49242 return this.rowsToDisplay.length;
49243 }
49244 return 0;
49245 };
49246 ClientSideRowModel.prototype.getTopLevelRowCount = function () {
49247 var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;
49248 if (showingRootNode) {
49249 return 1;
49250 }
49251 return this.rootNode.childrenAfterFilter ? this.rootNode.childrenAfterFilter.length : 0;
49252 };
49253 ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {
49254 var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;
49255 if (showingRootNode) {
49256 return topLevelIndex;
49257 }
49258 var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];
49259 if (this.gridOptionsWrapper.isGroupHideOpenParents()) {
49260 // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is
49261 while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {
49262 rowNode = rowNode.childrenAfterSort[0];
49263 }
49264 }
49265 return rowNode.rowIndex;
49266 };
49267 ClientSideRowModel.prototype.getRowBounds = function (index) {
49268 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rowsToDisplay)) {
49269 return null;
49270 }
49271 var rowNode = this.rowsToDisplay[index];
49272 if (rowNode) {
49273 return {
49274 rowTop: rowNode.rowTop,
49275 rowHeight: rowNode.rowHeight
49276 };
49277 }
49278 return null;
49279 };
49280 ClientSideRowModel.prototype.onRowGroupOpened = function () {
49281 // because the user can call rowNode.setExpanded() many times in on VM turn,
49282 // we debounce the call using animationFrameService. we use animationFrameService
49283 // rather than _.debounce() so this will get done if anyone flushes the animationFrameService
49284 // (eg user calls api.ensureRowVisible(), which in turn flushes ).
49285 var _this = this;
49286 if (this.onRowGroupOpenedPending) {
49287 return;
49288 }
49289 this.onRowGroupOpenedPending = true;
49290 var action = function () {
49291 _this.onRowGroupOpenedPending = false;
49292 var animate = _this.gridOptionsWrapper.isAnimateRows();
49293 _this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP, keepRenderedRows: true, animate: animate });
49294 };
49295 if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {
49296 action();
49297 }
49298 else {
49299 this.animationFrameService.addDestroyTask(action);
49300 }
49301 };
49302 ClientSideRowModel.prototype.onFilterChanged = function (event) {
49303 if (event.afterDataChange) {
49304 return;
49305 }
49306 var animate = this.gridOptionsWrapper.isAnimateRows();
49307 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER, keepRenderedRows: true, animate: animate });
49308 };
49309 ClientSideRowModel.prototype.onSortChanged = function () {
49310 var animate = this.gridOptionsWrapper.isAnimateRows();
49311 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });
49312 };
49313 ClientSideRowModel.prototype.getType = function () {
49314 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
49315 };
49316 ClientSideRowModel.prototype.onValueChanged = function () {
49317 if (this.columnController.isPivotActive()) {
49318 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT });
49319 }
49320 else {
49321 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE });
49322 }
49323 };
49324 ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {
49325 // for updates, if the row is updated at all, then we re-calc all the values
49326 // in that row. we could compare each value to each old value, however if we
49327 // did this, we would be calling the valueService twice, once on the old value
49328 // and once on the new value. so it's less valueGetter calls if we just assume
49329 // each column is different. that way the changedPath is used so that only
49330 // the impacted parent rows are recalculated, parents who's children have
49331 // not changed are not impacted.
49332 var noTransactions = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(rowNodeTransactions);
49333 var changedPath = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ChangedPath"](false, this.rootNode);
49334 if (noTransactions || this.gridOptionsWrapper.isTreeData()) {
49335 changedPath.setInactive();
49336 }
49337 return changedPath;
49338 };
49339 ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {
49340 if (!this.gridOptionsWrapper.isSuppressModelUpdateAfterUpdateTransaction()) {
49341 return false;
49342 }
49343 // return true if we are only doing update transactions
49344 if (params.rowNodeTransactions == null) {
49345 return false;
49346 }
49347 var transWithAddsOrDeletes = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].filter(params.rowNodeTransactions, function (tx) {
49348 return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);
49349 });
49350 var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;
49351 return transactionsContainUpdatesOnly;
49352 };
49353 ClientSideRowModel.prototype.refreshModel = function (params) {
49354 var _this = this;
49355 if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {
49356 return;
49357 }
49358 // this goes through the pipeline of stages. what's in my head is similar
49359 // to the diagram on this page:
49360 // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html
49361 // however we want to keep the results of each stage, hence we manually call
49362 // each step rather than have them chain each other.
49363 // fallthrough in below switch is on purpose,
49364 // eg if STEP_FILTER, then all steps below this
49365 // step get done
49366 // let start: number;
49367 // console.log('======= start =======');
49368 var changedPath = this.createChangePath(params.rowNodeTransactions);
49369 switch (params.step) {
49370 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING:
49371 // start = new Date().getTime();
49372 this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);
49373 // console.log('rowGrouping = ' + (new Date().getTime() - start));
49374 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER:
49375 // start = new Date().getTime();
49376 this.doFilter(changedPath);
49377 // console.log('filter = ' + (new Date().getTime() - start));
49378 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT:
49379 this.doPivot(changedPath);
49380 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE: // depends on agg fields
49381 // start = new Date().getTime();
49382 this.doAggregate(changedPath);
49383 // console.log('aggregation = ' + (new Date().getTime() - start));
49384 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT:
49385 // start = new Date().getTime();
49386 this.doSort(params.rowNodeTransactions, changedPath);
49387 // console.log('sort = ' + (new Date().getTime() - start));
49388 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP:
49389 // start = new Date().getTime();
49390 this.doRowsToDisplay();
49391 // console.log('rowsToDisplay = ' + (new Date().getTime() - start));
49392 }
49393 // set all row tops to null, then set row tops on all visible rows. if we don't
49394 // do this, then the algorithm below only sets row tops, old row tops from old rows
49395 // will still lie around
49396 this.setRowTops();
49397 this.resetRowTops(changedPath);
49398 var event = {
49399 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MODEL_UPDATED,
49400 api: this.gridApi,
49401 columnApi: this.columnApi,
49402 animate: params.animate,
49403 keepRenderedRows: params.keepRenderedRows,
49404 newData: params.newData,
49405 newPage: false
49406 };
49407 this.eventService.dispatchEvent(event);
49408 if (this.$scope) {
49409 window.setTimeout(function () {
49410 _this.$scope.$apply();
49411 }, 0);
49412 }
49413 };
49414 ClientSideRowModel.prototype.isEmpty = function () {
49415 var rowsMissing = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;
49416 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rootNode) || rowsMissing || !this.columnController.isReady();
49417 };
49418 ClientSideRowModel.prototype.isRowsToRender = function () {
49419 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;
49420 };
49421 ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
49422 // if lastSelectedNode is missing, we start at the first row
49423 var firstRowHit = !lastInRange;
49424 var lastRowHit = false;
49425 var lastRow;
49426 var result = [];
49427 var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();
49428 this.forEachNodeAfterFilterAndSort(function (rowNode) {
49429 var lookingForLastRow = firstRowHit && !lastRowHit;
49430 // check if we need to flip the select switch
49431 if (!firstRowHit) {
49432 if (rowNode === lastInRange || rowNode === firstInRange) {
49433 firstRowHit = true;
49434 }
49435 }
49436 var skipThisGroupNode = rowNode.group && groupsSelectChildren;
49437 if (!skipThisGroupNode) {
49438 var inRange = firstRowHit && !lastRowHit;
49439 var childOfLastRow = rowNode.isParentOfNode(lastRow);
49440 if (inRange || childOfLastRow) {
49441 result.push(rowNode);
49442 }
49443 }
49444 if (lookingForLastRow) {
49445 if (rowNode === lastInRange || rowNode === firstInRange) {
49446 lastRowHit = true;
49447 if (rowNode === lastInRange) {
49448 lastRow = lastInRange;
49449 }
49450 else {
49451 lastRow = firstInRange;
49452 }
49453 }
49454 }
49455 });
49456 return result;
49457 };
49458 ClientSideRowModel.prototype.setDatasource = function (datasource) {
49459 console.error('AG Grid: should never call setDatasource on clientSideRowController');
49460 };
49461 ClientSideRowModel.prototype.getTopLevelNodes = function () {
49462 return this.rootNode ? this.rootNode.childrenAfterGroup : null;
49463 };
49464 ClientSideRowModel.prototype.getRootNode = function () {
49465 return this.rootNode;
49466 };
49467 ClientSideRowModel.prototype.getRow = function (index) {
49468 return this.rowsToDisplay[index];
49469 };
49470 ClientSideRowModel.prototype.isRowPresent = function (rowNode) {
49471 return this.rowsToDisplay.indexOf(rowNode) >= 0;
49472 };
49473 ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {
49474 if (this.isEmpty()) {
49475 return -1;
49476 }
49477 // do binary search of tree
49478 // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/
49479 var bottomPointer = 0;
49480 var topPointer = this.rowsToDisplay.length - 1;
49481 // quick check, if the pixel is out of bounds, then return last row
49482 if (pixelToMatch <= 0) {
49483 // if pixel is less than or equal zero, it's always the first row
49484 return 0;
49485 }
49486 var lastNode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].last(this.rowsToDisplay);
49487 if (lastNode.rowTop <= pixelToMatch) {
49488 return this.rowsToDisplay.length - 1;
49489 }
49490 while (true) {
49491 var midPointer = Math.floor((bottomPointer + topPointer) / 2);
49492 var currentRowNode = this.rowsToDisplay[midPointer];
49493 if (this.isRowInPixel(currentRowNode, pixelToMatch)) {
49494 return midPointer;
49495 }
49496 if (currentRowNode.rowTop < pixelToMatch) {
49497 bottomPointer = midPointer + 1;
49498 }
49499 else if (currentRowNode.rowTop > pixelToMatch) {
49500 topPointer = midPointer - 1;
49501 }
49502 }
49503 };
49504 ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {
49505 var topPixel = rowNode.rowTop;
49506 var bottomPixel = rowNode.rowTop + rowNode.rowHeight;
49507 var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;
49508 return pixelInRow;
49509 };
49510 ClientSideRowModel.prototype.forEachLeafNode = function (callback) {
49511 if (this.rootNode.allLeafChildren) {
49512 this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });
49513 }
49514 };
49515 ClientSideRowModel.prototype.forEachNode = function (callback) {
49516 this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterGroup, callback, RecursionType.Normal, 0);
49517 };
49518 ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback) {
49519 this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterFilter, callback, RecursionType.AfterFilter, 0);
49520 };
49521 ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {
49522 this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterSort, callback, RecursionType.AfterFilterAndSort, 0);
49523 };
49524 ClientSideRowModel.prototype.forEachPivotNode = function (callback) {
49525 this.recursivelyWalkNodesAndCallback([this.rootNode], callback, RecursionType.PivotNodes, 0);
49526 };
49527 // iterates through each item in memory, and calls the callback function
49528 // nodes - the rowNodes to traverse
49529 // callback - the user provided callback
49530 // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc
49531 // index - works similar to the index in forEach in javascript's array function
49532 ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (nodes, callback, recursionType, index) {
49533 if (!nodes) {
49534 return index;
49535 }
49536 for (var i = 0; i < nodes.length; i++) {
49537 var node = nodes[i];
49538 callback(node, index++);
49539 // go to the next level if it is a group
49540 if (node.hasChildren()) {
49541 // depending on the recursion type, we pick a difference set of children
49542 var nodeChildren = null;
49543 switch (recursionType) {
49544 case RecursionType.Normal:
49545 nodeChildren = node.childrenAfterGroup;
49546 break;
49547 case RecursionType.AfterFilter:
49548 nodeChildren = node.childrenAfterFilter;
49549 break;
49550 case RecursionType.AfterFilterAndSort:
49551 nodeChildren = node.childrenAfterSort;
49552 break;
49553 case RecursionType.PivotNodes:
49554 // for pivot, we don't go below leafGroup levels
49555 nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;
49556 break;
49557 }
49558 if (nodeChildren) {
49559 index = this.recursivelyWalkNodesAndCallback(nodeChildren, callback, recursionType, index);
49560 }
49561 }
49562 }
49563 return index;
49564 };
49565 // it's possible to recompute the aggregate without doing the other parts
49566 // + gridApi.recomputeAggregates()
49567 ClientSideRowModel.prototype.doAggregate = function (changedPath) {
49568 if (this.aggregationStage) {
49569 this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
49570 }
49571 };
49572 // + gridApi.expandAll()
49573 // + gridApi.collapseAll()
49574 ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {
49575 var usingTreeData = this.gridOptionsWrapper.isTreeData();
49576 if (this.rootNode) {
49577 recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);
49578 }
49579 function recursiveExpandOrCollapse(rowNodes) {
49580 if (!rowNodes) {
49581 return;
49582 }
49583 rowNodes.forEach(function (rowNode) {
49584 var shouldExpandOrCollapse = usingTreeData ? _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(rowNode.childrenAfterGroup) : rowNode.group;
49585 if (shouldExpandOrCollapse) {
49586 rowNode.expanded = expand;
49587 recursiveExpandOrCollapse(rowNode.childrenAfterGroup);
49588 }
49589 });
49590 }
49591 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP });
49592 var eventSource = expand ? 'expandAll' : 'collapseAll';
49593 var event = {
49594 api: this.gridApi,
49595 columnApi: this.columnApi,
49596 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_EXPAND_COLLAPSE_ALL,
49597 source: eventSource
49598 };
49599 this.eventService.dispatchEvent(event);
49600 };
49601 ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {
49602 this.sortStage.execute({
49603 rowNode: this.rootNode,
49604 rowNodeTransactions: rowNodeTransactions,
49605 changedPath: changedPath
49606 });
49607 };
49608 ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {
49609 if (this.groupStage) {
49610 if (rowNodeTransactions) {
49611 this.groupStage.execute({
49612 rowNode: this.rootNode,
49613 rowNodeTransactions: rowNodeTransactions,
49614 rowNodeOrder: rowNodeOrder,
49615 changedPath: changedPath
49616 });
49617 }
49618 else {
49619 // groups are about to get disposed, so need to deselect any that are selected
49620 this.selectionController.removeGroupsFromSelection();
49621 this.groupStage.execute({
49622 rowNode: this.rootNode,
49623 changedPath: changedPath,
49624 afterColumnsChanged: afterColumnsChanged
49625 });
49626 // set open/closed state on groups
49627 this.restoreGroupState(groupState);
49628 }
49629 if (this.gridOptionsWrapper.isGroupSelectsChildren()) {
49630 this.selectionController.updateGroupsFromChildrenSelections(changedPath);
49631 }
49632 }
49633 else {
49634 this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;
49635 this.rootNode.updateHasChildren();
49636 }
49637 };
49638 ClientSideRowModel.prototype.restoreGroupState = function (groupState) {
49639 if (!groupState) {
49640 return;
49641 }
49642 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {
49643 // if the group was open last time, then open it this time. however
49644 // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'
49645 // setting will take effect.
49646 if (typeof groupState[key] === 'boolean') {
49647 node.expanded = groupState[key];
49648 }
49649 });
49650 };
49651 ClientSideRowModel.prototype.doFilter = function (changedPath) {
49652 this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
49653 };
49654 ClientSideRowModel.prototype.doPivot = function (changedPath) {
49655 if (this.pivotStage) {
49656 this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
49657 }
49658 };
49659 ClientSideRowModel.prototype.getGroupState = function () {
49660 if (!this.rootNode.childrenAfterGroup || !this.gridOptionsWrapper.isRememberGroupStateWhenNewData()) {
49661 return null;
49662 }
49663 var result = {};
49664 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });
49665 return result;
49666 };
49667 ClientSideRowModel.prototype.getCopyOfNodesMap = function () {
49668 return this.nodeManager.getCopyOfNodesMap();
49669 };
49670 ClientSideRowModel.prototype.getRowNode = function (id) {
49671 // although id is typed a string, this could be called by the user, and they could have passed a number
49672 var idIsGroup = typeof id == 'string' && id.indexOf(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"].ID_PREFIX_ROW_GROUP) == 0;
49673 if (idIsGroup) {
49674 // only one users complained about getRowNode not working for groups, after years of
49675 // this working for normal rows. so have done quick implementation. if users complain
49676 // about performance, then GroupStage should store / manage created groups in a map,
49677 // which is a chunk of work.
49678 var res_1 = null;
49679 this.forEachNode(function (node) {
49680 if (node.id === id) {
49681 res_1 = node;
49682 }
49683 });
49684 return res_1;
49685 }
49686 else {
49687 return this.nodeManager.getRowNode(id);
49688 }
49689 };
49690 // rows: the rows to put into the model
49691 ClientSideRowModel.prototype.setRowData = function (rowData) {
49692 // no need to invalidate cache, as the cache is stored on the rowNode,
49693 // so new rowNodes means the cache is wiped anyway.
49694 // remember group state, so we can expand groups that should be expanded
49695 var groupState = this.getGroupState();
49696 this.nodeManager.setRowData(rowData);
49697 // this event kicks off:
49698 // - clears selection
49699 // - updates filters
49700 // - shows 'no rows' overlay if needed
49701 var rowDataChangedEvent = {
49702 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_DATA_CHANGED,
49703 api: this.gridApi,
49704 columnApi: this.columnApi
49705 };
49706 this.eventService.dispatchEvent(rowDataChangedEvent);
49707 this.refreshModel({
49708 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49709 groupState: groupState,
49710 newData: true
49711 });
49712 };
49713 ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {
49714 var _this = this;
49715 if (this.applyAsyncTransactionsTimeout == null) {
49716 this.rowDataTransactionBatch = [];
49717 var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();
49718 this.applyAsyncTransactionsTimeout = window.setTimeout(function () {
49719 _this.executeBatchUpdateRowData();
49720 }, waitMillis);
49721 }
49722 this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });
49723 };
49724 ClientSideRowModel.prototype.flushAsyncTransactions = function () {
49725 if (this.applyAsyncTransactionsTimeout != null) {
49726 clearTimeout(this.applyAsyncTransactionsTimeout);
49727 this.executeBatchUpdateRowData();
49728 }
49729 };
49730 ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {
49731 var _this = this;
49732 this.valueCache.onDataChanged();
49733 var callbackFuncsBound = [];
49734 var rowNodeTrans = [];
49735 // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to
49736 // commonUpdateRowData, using addIndex would have no effect when grouping.
49737 var forceRowNodeOrder = false;
49738 if (this.rowDataTransactionBatch) {
49739 this.rowDataTransactionBatch.forEach(function (tranItem) {
49740 var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);
49741 rowNodeTrans.push(rowNodeTran);
49742 if (tranItem.callback) {
49743 callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));
49744 }
49745 if (typeof tranItem.rowDataTransaction.addIndex === 'number') {
49746 forceRowNodeOrder = true;
49747 }
49748 });
49749 }
49750 this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);
49751 // do callbacks in next VM turn so it's async
49752 if (callbackFuncsBound.length > 0) {
49753 window.setTimeout(function () {
49754 callbackFuncsBound.forEach(function (func) { return func(); });
49755 }, 0);
49756 }
49757 if (rowNodeTrans.length > 0) {
49758 var event_1 = {
49759 api: this.gridOptionsWrapper.getApi(),
49760 columnApi: this.gridOptionsWrapper.getColumnApi(),
49761 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ASYNC_TRANSACTIONS_FLUSHED,
49762 results: rowNodeTrans
49763 };
49764 this.eventService.dispatchEvent(event_1);
49765 }
49766 this.rowDataTransactionBatch = null;
49767 this.applyAsyncTransactionsTimeout = undefined;
49768 };
49769 ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {
49770 this.valueCache.onDataChanged();
49771 var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);
49772 // if doing immutableData, addIndex is never present. however if doing standard transaction, and user
49773 // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup
49774 // stage also uses the
49775 var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';
49776 this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);
49777 return rowNodeTran;
49778 };
49779 ClientSideRowModel.prototype.createRowNodeOrder = function () {
49780 var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();
49781 if (suppressSortOrder) {
49782 return;
49783 }
49784 var orderMap = {};
49785 if (this.rootNode && this.rootNode.allLeafChildren) {
49786 for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {
49787 var node = this.rootNode.allLeafChildren[index];
49788 orderMap[node.id] = index;
49789 }
49790 }
49791 return orderMap;
49792 };
49793 // common to updateRowData and batchUpdateRowData
49794 ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {
49795 if (forceRowNodeOrder) {
49796 rowNodeOrder = this.createRowNodeOrder();
49797 }
49798 this.refreshModel({
49799 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
49800 rowNodeTransactions: rowNodeTrans,
49801 rowNodeOrder: rowNodeOrder,
49802 keepRenderedRows: true,
49803 animate: true,
49804 keepEditingRows: true
49805 });
49806 var event = {
49807 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_DATA_UPDATED,
49808 api: this.gridApi,
49809 columnApi: this.columnApi
49810 };
49811 this.eventService.dispatchEvent(event);
49812 };
49813 ClientSideRowModel.prototype.doRowsToDisplay = function () {
49814 this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });
49815 };
49816 ClientSideRowModel.prototype.onRowHeightChanged = function () {
49817 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP, keepRenderedRows: true, keepEditingRows: true });
49818 };
49819 ClientSideRowModel.prototype.resetRowHeights = function () {
49820 var atLeastOne = false;
49821 this.forEachNode(function (rowNode) {
49822 rowNode.setRowHeight(rowNode.rowHeight, true);
49823 // we keep the height each row is at, however we set estimated=true rather than clear the height.
49824 // this means the grid will not reset the row heights back to defaults, rather it will re-calc
49825 // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.
49826 var detailNode = rowNode.detailNode;
49827 if (detailNode) {
49828 detailNode.setRowHeight(detailNode.rowHeight, true);
49829 }
49830 atLeastOne = true;
49831 });
49832 if (atLeastOne) {
49833 this.onRowHeightChanged();
49834 }
49835 };
49836 __decorate([
49837 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
49838 ], ClientSideRowModel.prototype, "columnController", void 0);
49839 __decorate([
49840 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('$scope')
49841 ], ClientSideRowModel.prototype, "$scope", void 0);
49842 __decorate([
49843 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
49844 ], ClientSideRowModel.prototype, "selectionController", void 0);
49845 __decorate([
49846 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
49847 ], ClientSideRowModel.prototype, "valueCache", void 0);
49848 __decorate([
49849 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
49850 ], ClientSideRowModel.prototype, "columnApi", void 0);
49851 __decorate([
49852 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
49853 ], ClientSideRowModel.prototype, "gridApi", void 0);
49854 __decorate([
49855 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
49856 ], ClientSideRowModel.prototype, "animationFrameService", void 0);
49857 __decorate([
49858 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterStage')
49859 ], ClientSideRowModel.prototype, "filterStage", void 0);
49860 __decorate([
49861 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortStage')
49862 ], ClientSideRowModel.prototype, "sortStage", void 0);
49863 __decorate([
49864 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('flattenStage')
49865 ], ClientSideRowModel.prototype, "flattenStage", void 0);
49866 __decorate([
49867 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('groupStage')
49868 ], ClientSideRowModel.prototype, "groupStage", void 0);
49869 __decorate([
49870 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('aggregationStage')
49871 ], ClientSideRowModel.prototype, "aggregationStage", void 0);
49872 __decorate([
49873 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('pivotStage')
49874 ], ClientSideRowModel.prototype, "pivotStage", void 0);
49875 __decorate([
49876 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
49877 ], ClientSideRowModel.prototype, "init", null);
49878 ClientSideRowModel = __decorate([
49879 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowModel')
49880 ], ClientSideRowModel);
49881 return ClientSideRowModel;
49882}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
49883
49884
49885
49886/***/ }),
49887/* 234 */
49888/***/ (function(module, __webpack_exports__, __webpack_require__) {
49889
49890"use strict";
49891__webpack_require__.r(__webpack_exports__);
49892/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideNodeManager", function() { return ClientSideNodeManager; });
49893/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
49894var __spreadArrays = (undefined && undefined.__spreadArrays) || function () {
49895 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
49896 for (var r = Array(s), k = 0, i = 0; i < il; i++)
49897 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
49898 r[k] = a[j];
49899 return r;
49900};
49901
49902var ClientSideNodeManager = /** @class */ (function () {
49903 function ClientSideNodeManager(rootNode, gridOptionsWrapper, context, eventService, columnController, gridApi, columnApi, selectionController) {
49904 this.nextId = 0;
49905 // when user is provide the id's, we also keep a map of ids to row nodes for convenience
49906 this.allNodesMap = {};
49907 this.rootNode = rootNode;
49908 this.gridOptionsWrapper = gridOptionsWrapper;
49909 this.context = context;
49910 this.eventService = eventService;
49911 this.columnController = columnController;
49912 this.gridApi = gridApi;
49913 this.columnApi = columnApi;
49914 this.selectionController = selectionController;
49915 this.rootNode.group = true;
49916 this.rootNode.level = -1;
49917 this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;
49918 this.rootNode.allLeafChildren = [];
49919 this.rootNode.childrenAfterGroup = [];
49920 this.rootNode.childrenAfterSort = [];
49921 this.rootNode.childrenAfterFilter = [];
49922 // if we make this class a bean, then can annotate postConstruct
49923 this.postConstruct();
49924 }
49925 // @PostConstruct - this is not a bean, so postConstruct called by constructor
49926 ClientSideNodeManager.prototype.postConstruct = function () {
49927 // func below doesn't have 'this' pointer, so need to pull out these bits
49928 this.suppressParentsInRowNodes = this.gridOptionsWrapper.isSuppressParentsInRowNodes();
49929 this.isRowMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();
49930 this.doingTreeData = this.gridOptionsWrapper.isTreeData();
49931 this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();
49932 };
49933 ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {
49934 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].cloneObject(this.allNodesMap);
49935 };
49936 ClientSideNodeManager.prototype.getRowNode = function (id) {
49937 return this.allNodesMap[id];
49938 };
49939 ClientSideNodeManager.prototype.setRowData = function (rowData) {
49940 this.rootNode.childrenAfterFilter = null;
49941 this.rootNode.childrenAfterGroup = null;
49942 this.rootNode.childrenAfterSort = null;
49943 this.rootNode.childrenMapped = null;
49944 this.rootNode.updateHasChildren();
49945 this.nextId = 0;
49946 this.allNodesMap = {};
49947 if (!rowData) {
49948 this.rootNode.allLeafChildren = [];
49949 this.rootNode.childrenAfterGroup = [];
49950 return;
49951 }
49952 // kick off recursion
49953 // we add rootNode as the parent, however if using ag-grid-enterprise, the grouping stage
49954 // sets the parent node on each row (even if we are not grouping). so setting parent node
49955 // here is for benefit of ag-grid-community users
49956 this.rootNode.allLeafChildren = this.recursiveFunction(rowData, this.rootNode, ClientSideNodeManager.TOP_LEVEL);
49957 };
49958 ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {
49959 var rowNodeTransaction = {
49960 remove: [],
49961 update: [],
49962 add: []
49963 };
49964 var nodesToUnselect = [];
49965 this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);
49966 this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);
49967 this.executeAdd(rowDataTran, rowNodeTransaction);
49968 this.updateSelection(nodesToUnselect);
49969 if (rowNodeOrder) {
49970 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);
49971 }
49972 return rowNodeTransaction;
49973 };
49974 ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect) {
49975 var selectionChanged = nodesToUnselect.length > 0;
49976 if (selectionChanged) {
49977 nodesToUnselect.forEach(function (rowNode) {
49978 rowNode.setSelected(false, false, true);
49979 });
49980 }
49981 // we do this regardless of nodes to unselect or not, as it's possible
49982 // a new node was inserted, so a parent that was previously selected (as all
49983 // children were selected) should not be tri-state (as new one unselected against
49984 // all other selected children).
49985 this.selectionController.updateGroupsFromChildrenSelections();
49986 if (selectionChanged) {
49987 var event_1 = {
49988 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SELECTION_CHANGED,
49989 api: this.gridApi,
49990 columnApi: this.columnApi
49991 };
49992 this.eventService.dispatchEvent(event_1);
49993 }
49994 };
49995 ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {
49996 var _this = this;
49997 var add = rowDataTran.add, addIndex = rowDataTran.addIndex;
49998 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(add)) {
49999 return;
50000 }
50001 // create new row nodes for each data item
50002 var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });
50003 // add new row nodes to the root nodes 'allLeafChildren'
50004 var useIndex = typeof addIndex === 'number' && addIndex >= 0;
50005 if (useIndex) {
50006 // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.
50007 // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.
50008 var existingLeafChildren = this.rootNode.allLeafChildren;
50009 var nodesBeforeIndex = existingLeafChildren.slice(0, addIndex);
50010 var nodesAfterIndex = existingLeafChildren.slice(addIndex, existingLeafChildren.length);
50011 this.rootNode.allLeafChildren = __spreadArrays(nodesBeforeIndex, newNodes, nodesAfterIndex);
50012 }
50013 else {
50014 this.rootNode.allLeafChildren = __spreadArrays(this.rootNode.allLeafChildren, newNodes);
50015 }
50016 // add new row nodes to the transaction add items
50017 rowNodeTransaction.add = newNodes;
50018 };
50019 ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {
50020 var _this = this;
50021 var remove = rowDataTran.remove;
50022 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(remove)) {
50023 return;
50024 }
50025 var rowIdsRemoved = {};
50026 remove.forEach(function (item) {
50027 var rowNode = _this.lookupRowNode(item);
50028 if (!rowNode) {
50029 return;
50030 }
50031 // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for
50032 // each row node updated, instead it is raised once by the calling code if any selected nodes exist.
50033 if (rowNode.isSelected()) {
50034 nodesToUnselect.push(rowNode);
50035 }
50036 // so row renderer knows to fade row out (and not reposition it)
50037 rowNode.clearRowTopAndRowIndex();
50038 // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially
50039 // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list
50040 rowIdsRemoved[rowNode.id] = true;
50041 // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);
50042 delete _this.allNodesMap[rowNode.id];
50043 rowNodeTransaction.remove.push(rowNode);
50044 });
50045 this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });
50046 };
50047 ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {
50048 var _this = this;
50049 var update = rowDataTran.update;
50050 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(update)) {
50051 return;
50052 }
50053 update.forEach(function (item) {
50054 var rowNode = _this.lookupRowNode(item);
50055 if (!rowNode) {
50056 return;
50057 }
50058 rowNode.updateData(item);
50059 if (!rowNode.selectable && rowNode.isSelected()) {
50060 nodesToUnselect.push(rowNode);
50061 }
50062 _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);
50063 rowNodeTransaction.update.push(rowNode);
50064 });
50065 };
50066 ClientSideNodeManager.prototype.lookupRowNode = function (data) {
50067 var rowNodeIdFunc = this.gridOptionsWrapper.getRowNodeIdFunc();
50068 var rowNode;
50069 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(rowNodeIdFunc)) {
50070 // find rowNode using id
50071 var id = rowNodeIdFunc(data);
50072 rowNode = this.allNodesMap[id];
50073 if (!rowNode) {
50074 console.error("AG Grid: could not find row id=" + id + ", data item was not found for this id");
50075 return null;
50076 }
50077 }
50078 else {
50079 // find rowNode using object references
50080 rowNode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].find(this.rootNode.allLeafChildren, function (node) { return node.data === data; });
50081 if (!rowNode) {
50082 console.error("AG Grid: could not find data item as object was not found", data);
50083 return null;
50084 }
50085 }
50086 return rowNode;
50087 };
50088 ClientSideNodeManager.prototype.recursiveFunction = function (rowData, parent, level) {
50089 var _this = this;
50090 // make sure the rowData is an array and not a string of json - this was a commonly reported problem on the forum
50091 if (typeof rowData === 'string') {
50092 console.warn('AG Grid: rowData must be an array, however you passed in a string. If you are loading JSON, make sure you convert the JSON string to JavaScript objects first');
50093 return;
50094 }
50095 var rowNodes = [];
50096 rowData.forEach(function (dataItem) {
50097 var node = _this.createNode(dataItem, parent, level);
50098 rowNodes.push(node);
50099 });
50100 return rowNodes;
50101 };
50102 ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {
50103 var node = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
50104 this.context.createBean(node);
50105 node.group = false;
50106 this.setMasterForRow(node, dataItem, level, true);
50107 if (parent && !this.suppressParentsInRowNodes) {
50108 node.parent = parent;
50109 }
50110 node.level = level;
50111 node.setDataAndId(dataItem, this.nextId.toString());
50112 if (this.allNodesMap[node.id]) {
50113 console.warn("ag-grid: duplicate node id '" + node.id + "' detected from getRowNodeId callback, this could cause issues in your grid.");
50114 }
50115 this.allNodesMap[node.id] = node;
50116 this.nextId++;
50117 return node;
50118 };
50119 ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {
50120 if (this.doingTreeData) {
50121 rowNode.setMaster(false);
50122 if (setExpanded) {
50123 rowNode.expanded = false;
50124 }
50125 }
50126 else {
50127 // this is the default, for when doing grid data
50128 if (this.doingMasterDetail) {
50129 // if we are doing master detail, then the
50130 // default is that everything can be a Master Row.
50131 if (this.isRowMasterFunc) {
50132 rowNode.setMaster(this.isRowMasterFunc(data));
50133 }
50134 else {
50135 rowNode.setMaster(true);
50136 }
50137 }
50138 else {
50139 rowNode.setMaster(false);
50140 }
50141 if (setExpanded) {
50142 var rowGroupColumns = this.columnController.getRowGroupColumns();
50143 var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;
50144 // need to take row group into account when determining level
50145 var masterRowLevel = level + numRowGroupColumns;
50146 rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;
50147 }
50148 }
50149 };
50150 ClientSideNodeManager.prototype.isExpanded = function (level) {
50151 var expandByDefault = this.gridOptionsWrapper.getGroupDefaultExpanded();
50152 if (expandByDefault === -1) {
50153 return true;
50154 }
50155 return level < expandByDefault;
50156 };
50157 ClientSideNodeManager.TOP_LEVEL = 0;
50158 ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';
50159 return ClientSideNodeManager;
50160}());
50161
50162
50163
50164/***/ }),
50165/* 235 */
50166/***/ (function(module, __webpack_exports__, __webpack_require__) {
50167
50168"use strict";
50169__webpack_require__.r(__webpack_exports__);
50170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterStage", function() { return FilterStage; });
50171/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50172var __extends = (undefined && undefined.__extends) || (function () {
50173 var extendStatics = function (d, b) {
50174 extendStatics = Object.setPrototypeOf ||
50175 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50176 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50177 return extendStatics(d, b);
50178 };
50179 return function (d, b) {
50180 extendStatics(d, b);
50181 function __() { this.constructor = d; }
50182 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50183 };
50184})();
50185var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50186 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50187 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50188 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;
50189 return c > 3 && r && Object.defineProperty(target, key, r), r;
50190};
50191
50192var FilterStage = /** @class */ (function (_super) {
50193 __extends(FilterStage, _super);
50194 function FilterStage() {
50195 return _super !== null && _super.apply(this, arguments) || this;
50196 }
50197 FilterStage.prototype.execute = function (params) {
50198 var rowNode = params.rowNode, changedPath = params.changedPath;
50199 this.filterService.filter(changedPath);
50200 this.selectableService.updateSelectableAfterFiltering(rowNode);
50201 };
50202 __decorate([
50203 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectableService')
50204 ], FilterStage.prototype, "selectableService", void 0);
50205 __decorate([
50206 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterService')
50207 ], FilterStage.prototype, "filterService", void 0);
50208 FilterStage = __decorate([
50209 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('filterStage')
50210 ], FilterStage);
50211 return FilterStage;
50212}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50213
50214
50215
50216/***/ }),
50217/* 236 */
50218/***/ (function(module, __webpack_exports__, __webpack_require__) {
50219
50220"use strict";
50221__webpack_require__.r(__webpack_exports__);
50222/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortStage", function() { return SortStage; });
50223/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50224var __extends = (undefined && undefined.__extends) || (function () {
50225 var extendStatics = function (d, b) {
50226 extendStatics = Object.setPrototypeOf ||
50227 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50228 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50229 return extendStatics(d, b);
50230 };
50231 return function (d, b) {
50232 extendStatics(d, b);
50233 function __() { this.constructor = d; }
50234 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50235 };
50236})();
50237var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50238 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50239 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50240 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;
50241 return c > 3 && r && Object.defineProperty(target, key, r), r;
50242};
50243
50244var SortStage = /** @class */ (function (_super) {
50245 __extends(SortStage, _super);
50246 function SortStage() {
50247 return _super !== null && _super.apply(this, arguments) || this;
50248 }
50249 SortStage.prototype.execute = function (params) {
50250 var sortOptions = this.sortController.getSortOptions();
50251 var sortActive = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(sortOptions) && sortOptions.length > 0;
50252 var deltaSort = sortActive
50253 && _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(params.rowNodeTransactions)
50254 // in time we can remove this check, so that delta sort is always
50255 // on if transactions are present. it's off for now so that we can
50256 // selectively turn it on and test it with some select users before
50257 // rolling out to everyone.
50258 && this.gridOptionsWrapper.isDeltaSort();
50259 // we only need dirty nodes if doing delta sort
50260 var dirtyLeafNodes = deltaSort ? this.calculateDirtyNodes(params.rowNodeTransactions) : null;
50261 var valueColumns = this.columnController.getValueColumns();
50262 var noAggregations = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(valueColumns);
50263 this.sortService.sort(sortOptions, sortActive, deltaSort, dirtyLeafNodes, params.changedPath, noAggregations);
50264 };
50265 SortStage.prototype.calculateDirtyNodes = function (rowNodeTransactions) {
50266 var dirtyNodes = {};
50267 var addNodesFunc = function (rowNodes) {
50268 if (rowNodes) {
50269 rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });
50270 }
50271 };
50272 // all leaf level nodes in the transaction were impacted
50273 if (rowNodeTransactions) {
50274 rowNodeTransactions.forEach(function (tran) {
50275 addNodesFunc(tran.add);
50276 addNodesFunc(tran.update);
50277 addNodesFunc(tran.remove);
50278 });
50279 }
50280 return dirtyNodes;
50281 };
50282 __decorate([
50283 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortService')
50284 ], SortStage.prototype, "sortService", void 0);
50285 __decorate([
50286 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
50287 ], SortStage.prototype, "sortController", void 0);
50288 __decorate([
50289 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
50290 ], SortStage.prototype, "columnController", void 0);
50291 SortStage = __decorate([
50292 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortStage')
50293 ], SortStage);
50294 return SortStage;
50295}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50296
50297
50298
50299/***/ }),
50300/* 237 */
50301/***/ (function(module, __webpack_exports__, __webpack_require__) {
50302
50303"use strict";
50304__webpack_require__.r(__webpack_exports__);
50305/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FlattenStage", function() { return FlattenStage; });
50306/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50307var __extends = (undefined && undefined.__extends) || (function () {
50308 var extendStatics = function (d, b) {
50309 extendStatics = Object.setPrototypeOf ||
50310 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50311 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50312 return extendStatics(d, b);
50313 };
50314 return function (d, b) {
50315 extendStatics(d, b);
50316 function __() { this.constructor = d; }
50317 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50318 };
50319})();
50320var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50321 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50322 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50323 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;
50324 return c > 3 && r && Object.defineProperty(target, key, r), r;
50325};
50326
50327var FlattenStage = /** @class */ (function (_super) {
50328 __extends(FlattenStage, _super);
50329 function FlattenStage() {
50330 return _super !== null && _super.apply(this, arguments) || this;
50331 }
50332 FlattenStage.prototype.execute = function (params) {
50333 var rootNode = params.rowNode;
50334 // even if not doing grouping, we do the mapping, as the client might
50335 // of passed in data that already has a grouping in it somewhere
50336 var result = [];
50337 // putting value into a wrapper so it's passed by reference
50338 var nextRowTop = { value: 0 };
50339 var skipLeafNodes = this.columnController.isPivotMode();
50340 // if we are reducing, and not grouping, then we want to show the root node, as that
50341 // is where the pivot values are
50342 var showRootNode = skipLeafNodes && rootNode.leafGroup;
50343 var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;
50344 this.recursivelyAddToRowsToDisplay(topList, result, nextRowTop, skipLeafNodes, 0);
50345 // we do not want the footer total if the gris is empty
50346 var atLeastOneRowPresent = result.length > 0;
50347 var includeGroupTotalFooter = !showRootNode
50348 // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)
50349 && atLeastOneRowPresent
50350 && this.gridOptionsWrapper.isGroupIncludeTotalFooter();
50351 if (includeGroupTotalFooter) {
50352 this.ensureFooterNodeExists(rootNode);
50353 this.addRowNodeToRowsToDisplay(rootNode.sibling, result, nextRowTop, 0);
50354 }
50355 return result;
50356 };
50357 FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (rowsToFlatten, result, nextRowTop, skipLeafNodes, uiLevel) {
50358 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(rowsToFlatten)) {
50359 return;
50360 }
50361 var hideOpenParents = this.gridOptionsWrapper.isGroupHideOpenParents();
50362 // these two are mutually exclusive, so if first set, we don't set the second
50363 var groupRemoveSingleChildren = this.gridOptionsWrapper.isGroupRemoveSingleChildren();
50364 var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsWrapper.isGroupRemoveLowestSingleChildren();
50365 for (var i = 0; i < rowsToFlatten.length; i++) {
50366 var rowNode = rowsToFlatten[i];
50367 // check all these cases, for working out if this row should be included in the final mapped list
50368 var isParent = rowNode.hasChildren();
50369 var isSkippedLeafNode = skipLeafNodes && !isParent;
50370 var isRemovedSingleChildrenGroup = groupRemoveSingleChildren &&
50371 isParent &&
50372 rowNode.childrenAfterGroup.length === 1;
50373 var isRemovedLowestSingleChildrenGroup = groupRemoveLowestSingleChildren &&
50374 isParent &&
50375 rowNode.leafGroup &&
50376 rowNode.childrenAfterGroup.length === 1;
50377 // hide open parents means when group is open, we don't show it. we also need to make sure the
50378 // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).
50379 // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all')
50380 var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;
50381 var isHiddenOpenParent = hideOpenParents && rowNode.expanded && (!neverAllowToExpand);
50382 var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&
50383 !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;
50384 if (thisRowShouldBeRendered) {
50385 this.addRowNodeToRowsToDisplay(rowNode, result, nextRowTop, uiLevel);
50386 }
50387 // if we are pivoting, we never map below the leaf group
50388 if (skipLeafNodes && rowNode.leafGroup) {
50389 continue;
50390 }
50391 if (isParent) {
50392 var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;
50393 // we traverse the group if it is expended, however we always traverse if the parent node
50394 // was removed (as the group will never be opened if it is not displayed, we show the children instead)
50395 if (rowNode.expanded || excludedParent) {
50396 // if the parent was excluded, then ui level is that of the parent
50397 var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;
50398 this.recursivelyAddToRowsToDisplay(rowNode.childrenAfterSort, result, nextRowTop, skipLeafNodes, uiLevelForChildren);
50399 // put a footer in if user is looking for it
50400 if (this.gridOptionsWrapper.isGroupIncludeFooter()) {
50401 this.ensureFooterNodeExists(rowNode);
50402 this.addRowNodeToRowsToDisplay(rowNode.sibling, result, nextRowTop, uiLevel);
50403 }
50404 }
50405 }
50406 else if (rowNode.master && rowNode.expanded) {
50407 var detailNode = this.createDetailNode(rowNode);
50408 this.addRowNodeToRowsToDisplay(detailNode, result, nextRowTop, uiLevel);
50409 }
50410 }
50411 };
50412 // duplicated method, it's also in floatingRowModel
50413 FlattenStage.prototype.addRowNodeToRowsToDisplay = function (rowNode, result, nextRowTop, uiLevel) {
50414 var isGroupMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();
50415 result.push(rowNode);
50416 rowNode.setUiLevel(isGroupMultiAutoColumn ? 0 : uiLevel);
50417 };
50418 FlattenStage.prototype.ensureFooterNodeExists = function (groupNode) {
50419 // only create footer node once, otherwise we have daemons and
50420 // the animate screws up with the daemons hanging around
50421 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(groupNode.sibling)) {
50422 return;
50423 }
50424 var footerNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
50425 this.context.createBean(footerNode);
50426 Object.keys(groupNode).forEach(function (key) {
50427 footerNode[key] = groupNode[key];
50428 });
50429 footerNode.footer = true;
50430 footerNode.setRowTop(null);
50431 footerNode.setRowIndex(null);
50432 // manually set oldRowTop to null so we discard any
50433 // previous information about its position.
50434 footerNode.oldRowTop = null;
50435 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(footerNode.id)) {
50436 footerNode.id = 'rowGroupFooter_' + footerNode.id;
50437 }
50438 // get both header and footer to reference each other as siblings. this is never undone,
50439 // only overwritten. so if a group is expanded, then contracted, it will have a ghost
50440 // sibling - but that's fine, as we can ignore this if the header is contracted.
50441 footerNode.sibling = groupNode;
50442 groupNode.sibling = footerNode;
50443 };
50444 FlattenStage.prototype.createDetailNode = function (masterNode) {
50445 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(masterNode.detailNode)) {
50446 return masterNode.detailNode;
50447 }
50448 var detailNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]();
50449 this.context.createBean(detailNode);
50450 detailNode.detail = true;
50451 detailNode.selectable = false;
50452 detailNode.parent = masterNode;
50453 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(masterNode.id)) {
50454 detailNode.id = 'detail_' + masterNode.id;
50455 }
50456 detailNode.data = masterNode.data;
50457 detailNode.level = masterNode.level + 1;
50458 masterNode.detailNode = detailNode;
50459 return detailNode;
50460 };
50461 __decorate([
50462 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
50463 ], FlattenStage.prototype, "columnController", void 0);
50464 FlattenStage = __decorate([
50465 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('flattenStage')
50466 ], FlattenStage);
50467 return FlattenStage;
50468}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50469
50470
50471
50472/***/ }),
50473/* 238 */
50474/***/ (function(module, __webpack_exports__, __webpack_require__) {
50475
50476"use strict";
50477__webpack_require__.r(__webpack_exports__);
50478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortService", function() { return SortService; });
50479/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50480var __extends = (undefined && undefined.__extends) || (function () {
50481 var extendStatics = function (d, b) {
50482 extendStatics = Object.setPrototypeOf ||
50483 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50484 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50485 return extendStatics(d, b);
50486 };
50487 return function (d, b) {
50488 extendStatics(d, b);
50489 function __() { this.constructor = d; }
50490 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50491 };
50492})();
50493var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50494 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50495 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50496 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;
50497 return c > 3 && r && Object.defineProperty(target, key, r), r;
50498};
50499
50500var SortService = /** @class */ (function (_super) {
50501 __extends(SortService, _super);
50502 function SortService() {
50503 return _super !== null && _super.apply(this, arguments) || this;
50504 }
50505 SortService.prototype.init = function () {
50506 this.postSortFunc = this.gridOptionsWrapper.getPostSortFunc();
50507 };
50508 SortService.prototype.sort = function (sortOptions, sortActive, deltaSort, dirtyLeafNodes, changedPath, noAggregations) {
50509 var _this = this;
50510 var callback = function (rowNode) {
50511 // we clear out the 'pull down open parents' first, as the values mix up the sorting
50512 _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterFilter, true);
50513 // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,
50514 // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we
50515 // are going to inspect the original array position. This is what sortedRowNodes is for.
50516 if (sortActive) {
50517 rowNode.childrenAfterSort = deltaSort ?
50518 _this.doDeltaSort(rowNode, sortOptions, dirtyLeafNodes, changedPath, noAggregations)
50519 : _this.rowNodeSorter.doFullSort(rowNode.childrenAfterFilter, sortOptions);
50520 }
50521 else {
50522 rowNode.childrenAfterSort = rowNode.childrenAfterFilter.slice(0);
50523 }
50524 _this.updateChildIndexes(rowNode);
50525 if (_this.postSortFunc) {
50526 _this.postSortFunc(rowNode.childrenAfterSort);
50527 }
50528 };
50529 if (changedPath) {
50530 changedPath.forEachChangedNodeDepthFirst(callback);
50531 }
50532 this.updateGroupDataForHiddenOpenParents(changedPath);
50533 };
50534 SortService.prototype.mapNodeToSortedNode = function (rowNode, pos) {
50535 return { currentPos: pos, rowNode: rowNode };
50536 };
50537 SortService.prototype.doDeltaSort = function (rowNode, sortOptions, dirtyLeafNodes, changedPath, noAggregations) {
50538 // clean nodes will be a list of all row nodes that remain in the set
50539 // and ordered. we start with the old sorted set and take out any nodes
50540 // that were removed or changed (but not added, added doesn't make sense,
50541 // if a node was added, there is no way it could be here from last time).
50542 var cleanNodes = rowNode.childrenAfterSort
50543 .filter(function (node) {
50544 // take out all nodes that were changed as part of the current transaction.
50545 // a changed node could a) be in a different sort position or b) may
50546 // no longer be in this set as the changed node may not pass filtering,
50547 // or be in a different group.
50548 var passesDirtyNodesCheck = !dirtyLeafNodes[node.id];
50549 // also remove group nodes in the changed path, as they can have different aggregate
50550 // values which could impact the sort order.
50551 // note: changed path is not active if a) no value columns or b) no transactions. it is never
50552 // (b) in deltaSort as we only do deltaSort for transactions. for (a) if no value columns, then
50553 // there is no value in the group that could of changed (ie no aggregate values)
50554 var passesChangedPathCheck = noAggregations || (changedPath && changedPath.canSkip(node));
50555 return passesDirtyNodesCheck && passesChangedPathCheck;
50556 })
50557 .map(this.mapNodeToSortedNode.bind(this));
50558 // for fast access below, we map them
50559 var cleanNodesMapped = {};
50560 cleanNodes.forEach(function (sortedRowNode) { return cleanNodesMapped[sortedRowNode.rowNode.id] = sortedRowNode.rowNode; });
50561 // these are all nodes that need to be placed
50562 var changedNodes = rowNode.childrenAfterFilter
50563 // ignore nodes in the clean list
50564 .filter(function (node) { return !cleanNodesMapped[node.id]; })
50565 .map(this.mapNodeToSortedNode.bind(this));
50566 // sort changed nodes. note that we don't need to sort cleanNodes as they are
50567 // already sorted from last time.
50568 changedNodes.sort(this.rowNodeSorter.compareRowNodes.bind(this, sortOptions));
50569 var result;
50570 if (changedNodes.length === 0) {
50571 result = cleanNodes;
50572 }
50573 else if (cleanNodes.length === 0) {
50574 result = changedNodes;
50575 }
50576 else {
50577 result = this.mergeSortedArrays(sortOptions, cleanNodes, changedNodes);
50578 }
50579 return result.map(function (item) { return item.rowNode; });
50580 };
50581 // Merge two sorted arrays into each other
50582 SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {
50583 var res = [];
50584 var i = 0;
50585 var j = 0;
50586 // Traverse both array, adding them in order
50587 while (i < arr1.length && j < arr2.length) {
50588 // Check if current element of first
50589 // array is smaller than current element
50590 // of second array. If yes, store first
50591 // array element and increment first array
50592 // index. Otherwise do same with second array
50593 var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);
50594 if (compareResult < 0) {
50595 res.push(arr1[i++]);
50596 }
50597 else {
50598 res.push(arr2[j++]);
50599 }
50600 }
50601 // add remaining from arr1
50602 while (i < arr1.length) {
50603 res.push(arr1[i++]);
50604 }
50605 // add remaining from arr2
50606 while (j < arr2.length) {
50607 res.push(arr2[j++]);
50608 }
50609 return res;
50610 };
50611 SortService.prototype.updateChildIndexes = function (rowNode) {
50612 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNode.childrenAfterSort)) {
50613 return;
50614 }
50615 var listToSort = rowNode.childrenAfterSort;
50616 for (var i = 0; i < listToSort.length; i++) {
50617 var child = listToSort[i];
50618 var firstChild = i === 0;
50619 var lastChild = i === rowNode.childrenAfterSort.length - 1;
50620 child.setFirstChild(firstChild);
50621 child.setLastChild(lastChild);
50622 child.setChildIndex(i);
50623 }
50624 };
50625 SortService.prototype.updateGroupDataForHiddenOpenParents = function (changedPath) {
50626 var _this = this;
50627 if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {
50628 return;
50629 }
50630 // recurse breadth first over group nodes after sort to 'pull down' group data to child groups
50631 var callback = function (rowNode) {
50632 _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);
50633 rowNode.childrenAfterSort.forEach(function (child) {
50634 if (child.hasChildren()) {
50635 callback(child);
50636 }
50637 });
50638 };
50639 if (changedPath) {
50640 changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });
50641 }
50642 };
50643 SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {
50644 var _this = this;
50645 if (!this.gridOptionsWrapper.isGroupHideOpenParents() || _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNodes)) {
50646 return;
50647 }
50648 rowNodes.forEach(function (childRowNode) {
50649 var groupDisplayCols = _this.columnController.getGroupDisplayColumns();
50650 groupDisplayCols.forEach(function (groupDisplayCol) {
50651 var showRowGroup = groupDisplayCol.getColDef().showRowGroup;
50652 if (typeof showRowGroup !== 'string') {
50653 console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');
50654 return;
50655 }
50656 var displayingGroupKey = showRowGroup;
50657 var rowGroupColumn = _this.columnController.getPrimaryColumn(displayingGroupKey);
50658 var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;
50659 if (thisRowNodeMatches) {
50660 return;
50661 }
50662 if (clearOperation) {
50663 // if doing a clear operation, we clear down the value for every possible group column
50664 childRowNode.setGroupValue(groupDisplayCol.getId(), null);
50665 }
50666 else {
50667 // if doing a set operation, we set only where the pull down is to occur
50668 var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);
50669 if (parentToStealFrom) {
50670 childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);
50671 }
50672 }
50673 });
50674 });
50675 };
50676 __decorate([
50677 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
50678 ], SortService.prototype, "columnController", void 0);
50679 __decorate([
50680 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeSorter')
50681 ], SortService.prototype, "rowNodeSorter", void 0);
50682 __decorate([
50683 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50684 ], SortService.prototype, "init", null);
50685 SortService = __decorate([
50686 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortService')
50687 ], SortService);
50688 return SortService;
50689}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50690
50691
50692
50693/***/ }),
50694/* 239 */
50695/***/ (function(module, __webpack_exports__, __webpack_require__) {
50696
50697"use strict";
50698__webpack_require__.r(__webpack_exports__);
50699/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterService", function() { return FilterService; });
50700/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50701var __extends = (undefined && undefined.__extends) || (function () {
50702 var extendStatics = function (d, b) {
50703 extendStatics = Object.setPrototypeOf ||
50704 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50705 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50706 return extendStatics(d, b);
50707 };
50708 return function (d, b) {
50709 extendStatics(d, b);
50710 function __() { this.constructor = d; }
50711 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50712 };
50713})();
50714var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50715 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50716 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50717 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;
50718 return c > 3 && r && Object.defineProperty(target, key, r), r;
50719};
50720
50721var FilterService = /** @class */ (function (_super) {
50722 __extends(FilterService, _super);
50723 function FilterService() {
50724 return _super !== null && _super.apply(this, arguments) || this;
50725 }
50726 FilterService.prototype.postConstruct = function () {
50727 this.doingTreeData = this.gridOptionsWrapper.isTreeData();
50728 };
50729 FilterService.prototype.filter = function (changedPath) {
50730 var filterActive = this.filterManager.isAnyFilterPresent();
50731 this.filterNodes(filterActive, changedPath);
50732 };
50733 FilterService.prototype.filterNodes = function (filterActive, changedPath) {
50734 var _this = this;
50735 var filterCallback = function (rowNode, includeChildNodes) {
50736 // recursively get all children that are groups to also filter
50737 if (rowNode.hasChildren()) {
50738 // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes
50739 if (filterActive && !includeChildNodes) {
50740 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {
50741 // a group is included in the result if it has any children of it's own.
50742 // by this stage, the child groups are already filtered
50743 var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;
50744 // both leaf level nodes and tree data nodes have data. these get added if
50745 // the data passes the filter
50746 var passBecauseDataPasses = childNode.data
50747 && _this.filterManager.doesRowPassFilter({ rowNode: childNode });
50748 // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass
50749 return passBecauseChildren || passBecauseDataPasses;
50750 });
50751 }
50752 else {
50753 // if not filtering, the result is the original list
50754 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
50755 }
50756 _this.setAllChildrenCount(rowNode);
50757 }
50758 else {
50759 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
50760 rowNode.setAllChildrenCount(null);
50761 }
50762 };
50763 if (this.doingTreeDataFiltering()) {
50764 var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {
50765 // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes
50766 // filter, and parent nodes will be include if any children exist.
50767 if (rowNode.childrenAfterGroup) {
50768 for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {
50769 var childNode = rowNode.childrenAfterGroup[i];
50770 // first check if current node passes filter before invoking child nodes
50771 var foundInParent = alreadyFoundInParent
50772 || _this.filterManager.doesRowPassFilter({ rowNode: childNode });
50773 if (childNode.childrenAfterGroup) {
50774 treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);
50775 }
50776 else {
50777 filterCallback(childNode, foundInParent);
50778 }
50779 }
50780 }
50781 filterCallback(rowNode, alreadyFoundInParent);
50782 };
50783 var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };
50784 changedPath.executeFromRootNode(treeDataFilterCallback);
50785 }
50786 else {
50787 var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };
50788 changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);
50789 }
50790 };
50791 FilterService.prototype.setAllChildrenCountTreeData = function (rowNode) {
50792 // for tree data, we include all children, groups and leafs
50793 var allChildrenCount = 0;
50794 rowNode.childrenAfterFilter.forEach(function (child) {
50795 // include child itself
50796 allChildrenCount++;
50797 // include children of children
50798 allChildrenCount += child.allChildrenCount;
50799 });
50800 rowNode.setAllChildrenCount(allChildrenCount);
50801 };
50802 FilterService.prototype.setAllChildrenCountGridGrouping = function (rowNode) {
50803 // for grid data, we only count the leafs
50804 var allChildrenCount = 0;
50805 rowNode.childrenAfterFilter.forEach(function (child) {
50806 if (child.group) {
50807 allChildrenCount += child.allChildrenCount;
50808 }
50809 else {
50810 allChildrenCount++;
50811 }
50812 });
50813 rowNode.setAllChildrenCount(allChildrenCount);
50814 };
50815 FilterService.prototype.setAllChildrenCount = function (rowNode) {
50816 if (this.doingTreeData) {
50817 this.setAllChildrenCountTreeData(rowNode);
50818 }
50819 else {
50820 this.setAllChildrenCountGridGrouping(rowNode);
50821 }
50822 };
50823 FilterService.prototype.doingTreeDataFiltering = function () {
50824 return this.gridOptionsWrapper.isTreeData() && !this.gridOptionsWrapper.isExcludeChildrenWhenTreeDataFiltering();
50825 };
50826 __decorate([
50827 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
50828 ], FilterService.prototype, "filterManager", void 0);
50829 __decorate([
50830 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50831 ], FilterService.prototype, "postConstruct", null);
50832 FilterService = __decorate([
50833 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])("filterService")
50834 ], FilterService);
50835 return FilterService;
50836}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50837
50838
50839
50840/***/ }),
50841/* 240 */
50842/***/ (function(module, __webpack_exports__, __webpack_require__) {
50843
50844"use strict";
50845__webpack_require__.r(__webpack_exports__);
50846/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImmutableService", function() { return ImmutableService; });
50847/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50848var __extends = (undefined && undefined.__extends) || (function () {
50849 var extendStatics = function (d, b) {
50850 extendStatics = Object.setPrototypeOf ||
50851 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50852 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
50853 return extendStatics(d, b);
50854 };
50855 return function (d, b) {
50856 extendStatics(d, b);
50857 function __() { this.constructor = d; }
50858 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50859 };
50860})();
50861var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50862 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50863 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50864 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;
50865 return c > 3 && r && Object.defineProperty(target, key, r), r;
50866};
50867
50868var ImmutableService = /** @class */ (function (_super) {
50869 __extends(ImmutableService, _super);
50870 function ImmutableService() {
50871 return _super !== null && _super.apply(this, arguments) || this;
50872 }
50873 ImmutableService.prototype.postConstruct = function () {
50874 if (this.rowModel.getType() === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE) {
50875 this.clientSideRowModel = this.rowModel;
50876 }
50877 };
50878 // converts the setRowData() command to a transaction
50879 ImmutableService.prototype.createTransactionForRowData = function (data) {
50880 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.clientSideRowModel)) {
50881 console.error('AG Grid: ImmutableService only works with ClientSideRowModel');
50882 return;
50883 }
50884 var getRowNodeIdFunc = this.gridOptionsWrapper.getRowNodeIdFunc();
50885 if (!getRowNodeIdFunc || _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(getRowNodeIdFunc)) {
50886 console.error('AG Grid: ImmutableService requires getRowNodeId() callback to be implemented, your row data need IDs!');
50887 return;
50888 }
50889 // convert the data into a transaction object by working out adds, removes and updates
50890 var transaction = {
50891 remove: [],
50892 update: [],
50893 add: []
50894 };
50895 var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();
50896 var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();
50897 var orderMap = suppressSortOrder ? null : {};
50898 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(data)) {
50899 // split all the new data in the following:
50900 // if new, push to 'add'
50901 // if update, push to 'update'
50902 // if not changed, do not include in the transaction
50903 data.forEach(function (dataItem, index) {
50904 var id = getRowNodeIdFunc(dataItem);
50905 var existingNode = existingNodesMap[id];
50906 if (orderMap) {
50907 orderMap[id] = index;
50908 }
50909 if (existingNode) {
50910 var dataHasChanged = existingNode.data !== dataItem;
50911 if (dataHasChanged) {
50912 transaction.update.push(dataItem);
50913 }
50914 // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta
50915 // remove from list, so we know the item is not to be removed
50916 existingNodesMap[id] = undefined;
50917 }
50918 else {
50919 transaction.add.push(dataItem);
50920 }
50921 });
50922 }
50923 // at this point, all rows that are left, should be removed
50924 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].iterateObject(existingNodesMap, function (id, rowNode) {
50925 if (rowNode) {
50926 transaction.remove.push(rowNode.data);
50927 }
50928 });
50929 return [transaction, orderMap];
50930 };
50931 __decorate([
50932 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
50933 ], ImmutableService.prototype, "rowModel", void 0);
50934 __decorate([
50935 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50936 ], ImmutableService.prototype, "postConstruct", null);
50937 ImmutableService = __decorate([
50938 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('immutableService')
50939 ], ImmutableService);
50940 return ImmutableService;
50941}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50942
50943
50944
50945/***/ }),
50946/* 241 */
50947/***/ (function(module, __webpack_exports__, __webpack_require__) {
50948
50949"use strict";
50950__webpack_require__.r(__webpack_exports__);
50951/* harmony import */ var _csvExport_baseCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242);
50952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return _csvExport_baseCreator__WEBPACK_IMPORTED_MODULE_0__["BaseCreator"]; });
50953
50954/* harmony import */ var _csvExport_sessions_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243);
50955/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return _csvExport_sessions_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__["BaseGridSerializingSession"]; });
50956
50957/* harmony import */ var _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(244);
50958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_2__["CsvCreator"]; });
50959
50960/* harmony import */ var _csvExportModule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(247);
50961/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return _csvExportModule__WEBPACK_IMPORTED_MODULE_3__["CsvExportModule"]; });
50962
50963/* harmony import */ var _csvExport_downloader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(245);
50964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return _csvExport_downloader__WEBPACK_IMPORTED_MODULE_4__["Downloader"]; });
50965
50966/* harmony import */ var _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(248);
50967/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__["GridSerializer"]; });
50968
50969/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__["RowType"]; });
50970
50971/* harmony import */ var _csvExport_xmlFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(249);
50972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return _csvExport_xmlFactory__WEBPACK_IMPORTED_MODULE_6__["XmlFactory"]; });
50973
50974/* harmony import */ var _csvExport_zipContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(250);
50975/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return _csvExport_zipContainer__WEBPACK_IMPORTED_MODULE_7__["ZipContainer"]; });
50976
50977
50978
50979
50980
50981
50982
50983
50984
50985
50986
50987/***/ }),
50988/* 242 */
50989/***/ (function(module, __webpack_exports__, __webpack_require__) {
50990
50991"use strict";
50992__webpack_require__.r(__webpack_exports__);
50993/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return BaseCreator; });
50994/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
50995
50996var BaseCreator = /** @class */ (function () {
50997 function BaseCreator() {
50998 }
50999 BaseCreator.prototype.setBeans = function (beans) {
51000 this.beans = beans;
51001 };
51002 BaseCreator.prototype.getFileName = function (fileName) {
51003 var extension = this.getDefaultFileExtension();
51004 if (fileName == null || !fileName.length) {
51005 fileName = this.getDefaultFileName();
51006 }
51007 return fileName.indexOf('.') === -1 ? fileName + "." + extension : fileName;
51008 };
51009 BaseCreator.prototype.getMergedParamsAndData = function (userParams) {
51010 var mergedParams = this.mergeDefaultParams(userParams);
51011 var data = this.beans.gridSerializer.serialize(this.createSerializingSession(mergedParams), mergedParams);
51012 return { mergedParams: mergedParams, data: data };
51013 };
51014 BaseCreator.prototype.mergeDefaultParams = function (userParams) {
51015 var baseParams = this.getDefaultExportParams();
51016 var params = {};
51017 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].assign(params, baseParams);
51018 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].assign(params, userParams);
51019 return params;
51020 };
51021 return BaseCreator;
51022}());
51023
51024
51025
51026/***/ }),
51027/* 243 */
51028/***/ (function(module, __webpack_exports__, __webpack_require__) {
51029
51030"use strict";
51031__webpack_require__.r(__webpack_exports__);
51032/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return BaseGridSerializingSession; });
51033/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51034
51035var BaseGridSerializingSession = /** @class */ (function () {
51036 function BaseGridSerializingSession(config) {
51037 this.groupColumns = [];
51038 var columnController = config.columnController, valueService = config.valueService, gridOptionsWrapper = config.gridOptionsWrapper, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;
51039 this.columnController = columnController;
51040 this.valueService = valueService;
51041 this.gridOptionsWrapper = gridOptionsWrapper;
51042 this.processCellCallback = processCellCallback;
51043 this.processHeaderCallback = processHeaderCallback;
51044 this.processGroupHeaderCallback = processGroupHeaderCallback;
51045 this.processRowGroupCallback = processRowGroupCallback;
51046 }
51047 BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {
51048 this.groupColumns = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].filter(columnsToExport, function (col) { return !!col.getColDef().showRowGroup; });
51049 };
51050 BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {
51051 var value = this.getHeaderName(this.processHeaderCallback, column);
51052 return value != null ? value : '';
51053 };
51054 BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {
51055 // we render the group summary text e.g. "-> Parent -> Child"...
51056 var groupIndex = this.gridOptionsWrapper.isGroupMultiAutoColumn() ? node.rowGroupIndex : 0;
51057 var renderGroupSummaryCell =
51058 // on group rows
51059 node && node.group
51060 && (
51061 // in the group column if groups appear in regular grid cells
51062 index === groupIndex && this.groupColumns.indexOf(column) !== -1
51063 // or the first cell in the row, if we're doing full width rows
51064 || (index === 0 && this.gridOptionsWrapper.isGroupUseEntireRow(this.columnController.isPivotMode())));
51065 var valueForCell;
51066 if (renderGroupSummaryCell) {
51067 valueForCell = this.createValueForGroupNode(node);
51068 }
51069 else {
51070 valueForCell = this.valueService.getValue(column, node);
51071 }
51072 var value = this.processCell(accumulatedRowIndex, node, column, valueForCell, this.processCellCallback, type);
51073 return value != null ? value : '';
51074 };
51075 BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {
51076 if (callback) {
51077 return callback({
51078 column: column,
51079 api: this.gridOptionsWrapper.getApi(),
51080 columnApi: this.gridOptionsWrapper.getColumnApi(),
51081 context: this.gridOptionsWrapper.getContext()
51082 });
51083 }
51084 return this.columnController.getDisplayNameForColumn(column, 'csv', true);
51085 };
51086 BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {
51087 if (this.processRowGroupCallback) {
51088 return this.processRowGroupCallback({
51089 node: node,
51090 api: this.gridOptionsWrapper.getApi(),
51091 columnApi: this.gridOptionsWrapper.getColumnApi(),
51092 context: this.gridOptionsWrapper.getContext(),
51093 });
51094 }
51095 var keys = [node.key];
51096 if (!this.gridOptionsWrapper.isGroupMultiAutoColumn()) {
51097 while (node.parent) {
51098 node = node.parent;
51099 keys.push(node.key);
51100 }
51101 }
51102 return keys.reverse().join(' -> ');
51103 };
51104 BaseGridSerializingSession.prototype.processCell = function (accumulatedRowIndex, rowNode, column, value, processCellCallback, type) {
51105 if (processCellCallback) {
51106 return processCellCallback({
51107 accumulatedRowIndex: accumulatedRowIndex,
51108 column: column,
51109 node: rowNode,
51110 value: value,
51111 api: this.gridOptionsWrapper.getApi(),
51112 columnApi: this.gridOptionsWrapper.getColumnApi(),
51113 context: this.gridOptionsWrapper.getContext(),
51114 type: type
51115 });
51116 }
51117 return value != null ? value : '';
51118 };
51119 return BaseGridSerializingSession;
51120}());
51121
51122
51123
51124/***/ }),
51125/* 244 */
51126/***/ (function(module, __webpack_exports__, __webpack_require__) {
51127
51128"use strict";
51129__webpack_require__.r(__webpack_exports__);
51130/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return CsvCreator; });
51131/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51132/* harmony import */ var _baseCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(242);
51133/* harmony import */ var _downloader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(245);
51134/* harmony import */ var _sessions_csvSerializingSession__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(246);
51135var __extends = (undefined && undefined.__extends) || (function () {
51136 var extendStatics = function (d, b) {
51137 extendStatics = Object.setPrototypeOf ||
51138 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51139 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
51140 return extendStatics(d, b);
51141 };
51142 return function (d, b) {
51143 extendStatics(d, b);
51144 function __() { this.constructor = d; }
51145 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51146 };
51147})();
51148var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51149 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51150 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51151 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;
51152 return c > 3 && r && Object.defineProperty(target, key, r), r;
51153};
51154
51155
51156
51157
51158var CsvCreator = /** @class */ (function (_super) {
51159 __extends(CsvCreator, _super);
51160 function CsvCreator() {
51161 return _super !== null && _super.apply(this, arguments) || this;
51162 }
51163 CsvCreator.prototype.postConstruct = function () {
51164 this.setBeans({
51165 gridSerializer: this.gridSerializer,
51166 gridOptionsWrapper: this.gridOptionsWrapper
51167 });
51168 };
51169 CsvCreator.prototype.getDefaultExportParams = function () {
51170 return this.gridOptionsWrapper.getDefaultExportParams('csv');
51171 };
51172 CsvCreator.prototype.export = function (userParams) {
51173 if (this.isExportSuppressed()) {
51174 console.warn("ag-grid: Export cancelled. Export is not allowed as per your configuration.");
51175 return '';
51176 }
51177 var _a = this.getMergedParamsAndData(userParams), mergedParams = _a.mergedParams, data = _a.data;
51178 var packagedFile = new Blob(["\ufeff", data], {
51179 // @ts-ignore
51180 type: window.navigator.msSaveOrOpenBlob ? this.getMimeType() : 'octet/stream'
51181 });
51182 _downloader__WEBPACK_IMPORTED_MODULE_2__["Downloader"].download(this.getFileName(mergedParams.fileName), packagedFile);
51183 return data;
51184 };
51185 CsvCreator.prototype.exportDataAsCsv = function (params) {
51186 return this.export(params);
51187 };
51188 CsvCreator.prototype.getDataAsCsv = function (params) {
51189 return this.getMergedParamsAndData(params).data;
51190 };
51191 CsvCreator.prototype.getMimeType = function () {
51192 return 'text/csv;charset=utf-8;';
51193 };
51194 CsvCreator.prototype.getDefaultFileName = function () {
51195 return 'export.csv';
51196 };
51197 CsvCreator.prototype.getDefaultFileExtension = function () {
51198 return 'csv';
51199 };
51200 CsvCreator.prototype.createSerializingSession = function (params) {
51201 var _a = this, columnController = _a.columnController, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;
51202 var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;
51203 return new _sessions_csvSerializingSession__WEBPACK_IMPORTED_MODULE_3__["CsvSerializingSession"]({
51204 columnController: columnController,
51205 valueService: valueService,
51206 gridOptionsWrapper: gridOptionsWrapper,
51207 processCellCallback: processCellCallback || undefined,
51208 processHeaderCallback: processHeaderCallback || undefined,
51209 processGroupHeaderCallback: processGroupHeaderCallback || undefined,
51210 processRowGroupCallback: processRowGroupCallback || undefined,
51211 suppressQuotes: suppressQuotes || false,
51212 columnSeparator: columnSeparator || ','
51213 });
51214 };
51215 CsvCreator.prototype.isExportSuppressed = function () {
51216 return this.gridOptionsWrapper.isSuppressCsvExport();
51217 };
51218 __decorate([
51219 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
51220 ], CsvCreator.prototype, "columnController", void 0);
51221 __decorate([
51222 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
51223 ], CsvCreator.prototype, "valueService", void 0);
51224 __decorate([
51225 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridSerializer')
51226 ], CsvCreator.prototype, "gridSerializer", void 0);
51227 __decorate([
51228 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsWrapper')
51229 ], CsvCreator.prototype, "gridOptionsWrapper", void 0);
51230 __decorate([
51231 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
51232 ], CsvCreator.prototype, "postConstruct", null);
51233 CsvCreator = __decorate([
51234 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('csvCreator')
51235 ], CsvCreator);
51236 return CsvCreator;
51237}(_baseCreator__WEBPACK_IMPORTED_MODULE_1__["BaseCreator"]));
51238
51239
51240
51241/***/ }),
51242/* 245 */
51243/***/ (function(module, __webpack_exports__, __webpack_require__) {
51244
51245"use strict";
51246__webpack_require__.r(__webpack_exports__);
51247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return Downloader; });
51248var Downloader = /** @class */ (function () {
51249 function Downloader() {
51250 }
51251 Downloader.download = function (fileName, content) {
51252 var win = document.defaultView || window;
51253 if (!win) {
51254 console.warn('AG Grid: There is no `window` associated with the current `document`');
51255 return;
51256 }
51257 // Internet Explorer
51258 if (win.navigator.msSaveOrOpenBlob) {
51259 win.navigator.msSaveOrOpenBlob(content, fileName);
51260 }
51261 else {
51262 // Other Browsers
51263 var element = document.createElement('a');
51264 // @ts-ignore
51265 var url_1 = win.URL.createObjectURL(content);
51266 element.setAttribute('href', url_1);
51267 element.setAttribute('download', fileName);
51268 element.style.display = 'none';
51269 document.body.appendChild(element);
51270 element.dispatchEvent(new MouseEvent('click', {
51271 bubbles: false,
51272 cancelable: true,
51273 view: win
51274 }));
51275 document.body.removeChild(element);
51276 win.setTimeout(function () {
51277 // @ts-ignore
51278 win.URL.revokeObjectURL(url_1);
51279 }, 0);
51280 }
51281 };
51282 return Downloader;
51283}());
51284
51285
51286
51287/***/ }),
51288/* 246 */
51289/***/ (function(module, __webpack_exports__, __webpack_require__) {
51290
51291"use strict";
51292__webpack_require__.r(__webpack_exports__);
51293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvSerializingSession", function() { return CsvSerializingSession; });
51294/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51295/* harmony import */ var _baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243);
51296var __extends = (undefined && undefined.__extends) || (function () {
51297 var extendStatics = function (d, b) {
51298 extendStatics = Object.setPrototypeOf ||
51299 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51300 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
51301 return extendStatics(d, b);
51302 };
51303 return function (d, b) {
51304 extendStatics(d, b);
51305 function __() { this.constructor = d; }
51306 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51307 };
51308})();
51309
51310
51311var LINE_SEPARATOR = '\r\n';
51312var CsvSerializingSession = /** @class */ (function (_super) {
51313 __extends(CsvSerializingSession, _super);
51314 function CsvSerializingSession(config) {
51315 var _this = _super.call(this, config) || this;
51316 _this.isFirstLine = true;
51317 _this.result = '';
51318 var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;
51319 _this.suppressQuotes = suppressQuotes;
51320 _this.columnSeparator = columnSeparator;
51321 return _this;
51322 }
51323 CsvSerializingSession.prototype.addCustomContent = function (content) {
51324 var _this = this;
51325 if (!content) {
51326 return;
51327 }
51328 if (typeof content === 'string') {
51329 if (!/^\s*\n/.test(content)) {
51330 this.beginNewLine();
51331 }
51332 // replace whatever newlines are supplied with the style we're using
51333 content = content.replace(/\r?\n/g, LINE_SEPARATOR);
51334 this.result += content;
51335 }
51336 else {
51337 content.forEach(function (row) {
51338 _this.beginNewLine();
51339 row.forEach(function (cell, index) {
51340 if (index !== 0) {
51341 _this.result += _this.columnSeparator;
51342 }
51343 _this.result += _this.putInQuotes(cell.data.value || '');
51344 if (cell.mergeAcross) {
51345 _this.appendEmptyCells(cell.mergeAcross);
51346 }
51347 });
51348 });
51349 }
51350 };
51351 CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {
51352 this.beginNewLine();
51353 return {
51354 onColumn: this.onNewHeaderGroupingRowColumn.bind(this)
51355 };
51356 };
51357 CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (header, index, span) {
51358 if (index != 0) {
51359 this.result += this.columnSeparator;
51360 }
51361 this.result += this.putInQuotes(header);
51362 this.appendEmptyCells(span);
51363 };
51364 CsvSerializingSession.prototype.appendEmptyCells = function (count) {
51365 for (var i = 1; i <= count; i++) {
51366 this.result += this.columnSeparator + this.putInQuotes("");
51367 }
51368 };
51369 CsvSerializingSession.prototype.onNewHeaderRow = function () {
51370 this.beginNewLine();
51371 return {
51372 onColumn: this.onNewHeaderRowColumn.bind(this)
51373 };
51374 };
51375 CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {
51376 if (index != 0) {
51377 this.result += this.columnSeparator;
51378 }
51379 this.result += this.putInQuotes(this.extractHeaderValue(column));
51380 };
51381 CsvSerializingSession.prototype.onNewBodyRow = function () {
51382 this.beginNewLine();
51383 return {
51384 onColumn: this.onNewBodyRowColumn.bind(this)
51385 };
51386 };
51387 CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {
51388 if (index != 0) {
51389 this.result += this.columnSeparator;
51390 }
51391 this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].EXPORT_TYPE_CSV, node));
51392 };
51393 CsvSerializingSession.prototype.putInQuotes = function (value) {
51394 if (this.suppressQuotes) {
51395 return value;
51396 }
51397 if (value === null || value === undefined) {
51398 return '""';
51399 }
51400 var stringValue;
51401 if (typeof value === 'string') {
51402 stringValue = value;
51403 }
51404 else if (typeof value.toString === 'function') {
51405 stringValue = value.toString();
51406 }
51407 else {
51408 console.warn('unknown value type during csv conversion');
51409 stringValue = '';
51410 }
51411 // replace each " with "" (ie two sets of double quotes is how to do double quotes in csv)
51412 var valueEscaped = stringValue.replace(/"/g, "\"\"");
51413 return '"' + valueEscaped + '"';
51414 };
51415 CsvSerializingSession.prototype.parse = function () {
51416 return this.result;
51417 };
51418 CsvSerializingSession.prototype.beginNewLine = function () {
51419 if (!this.isFirstLine) {
51420 this.result += LINE_SEPARATOR;
51421 }
51422 this.isFirstLine = false;
51423 };
51424 return CsvSerializingSession;
51425}(_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__["BaseGridSerializingSession"]));
51426
51427
51428
51429/***/ }),
51430/* 247 */
51431/***/ (function(module, __webpack_exports__, __webpack_require__) {
51432
51433"use strict";
51434__webpack_require__.r(__webpack_exports__);
51435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return CsvExportModule; });
51436/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51437/* harmony import */ var _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(244);
51438/* harmony import */ var _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(248);
51439
51440
51441
51442var CsvExportModule = {
51443 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].CsvExportModule,
51444 beans: [_csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_1__["CsvCreator"], _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_2__["GridSerializer"]]
51445};
51446
51447
51448/***/ }),
51449/* 248 */
51450/***/ (function(module, __webpack_exports__, __webpack_require__) {
51451
51452"use strict";
51453__webpack_require__.r(__webpack_exports__);
51454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return RowType; });
51455/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return GridSerializer; });
51456/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51457var __extends = (undefined && undefined.__extends) || (function () {
51458 var extendStatics = function (d, b) {
51459 extendStatics = Object.setPrototypeOf ||
51460 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51461 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
51462 return extendStatics(d, b);
51463 };
51464 return function (d, b) {
51465 extendStatics(d, b);
51466 function __() { this.constructor = d; }
51467 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51468 };
51469})();
51470var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51471 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51472 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51473 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;
51474 return c > 3 && r && Object.defineProperty(target, key, r), r;
51475};
51476
51477var RowType;
51478(function (RowType) {
51479 RowType[RowType["HEADER_GROUPING"] = 0] = "HEADER_GROUPING";
51480 RowType[RowType["HEADER"] = 1] = "HEADER";
51481 RowType[RowType["BODY"] = 2] = "BODY";
51482})(RowType || (RowType = {}));
51483var GridSerializer = /** @class */ (function (_super) {
51484 __extends(GridSerializer, _super);
51485 function GridSerializer() {
51486 return _super !== null && _super.apply(this, arguments) || this;
51487 }
51488 GridSerializer.prototype.serialize = function (gridSerializingSession, params) {
51489 if (params === void 0) { params = {}; }
51490 var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);
51491 var serializeChain = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].compose(
51492 // first pass, put in the header names of the cols
51493 this.prepareSession(columnsToExport), this.prependContent(params), this.exportColumnGroups(params, columnsToExport), this.exportHeaders(params, columnsToExport), this.processPinnedTopRows(params, columnsToExport), this.processRows(params, columnsToExport), this.processPinnedBottomRows(params, columnsToExport), this.appendContent(params));
51494 return serializeChain(gridSerializingSession).parse();
51495 };
51496 GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {
51497 var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });
51498 var gridOptionsWrapper = this.gridOptionsWrapper;
51499 var context = gridOptionsWrapper.getContext();
51500 var api = gridOptionsWrapper.getApi();
51501 var columnApi = gridOptionsWrapper.getColumnApi();
51502 var skipSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveSingleChildren();
51503 var hideOpenParents = gridOptionsWrapper.isGroupHideOpenParents();
51504 var skipLowestSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveLowestSingleChildren();
51505 var isLeafNode = this.columnController.isPivotMode() ? node.leafGroup : !node.group;
51506 var skipRowGroups = params.skipGroups || params.skipRowGroups;
51507 var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;
51508 var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);
51509 if (skipRowGroups && params.skipGroups) {
51510 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn('AG Grid: Since v25.2 `skipGroups` has been renamed to `skipRowGroups`.'); }, 'gridSerializer-skipGroups');
51511 }
51512 if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||
51513 (params.onlySelected && !node.isSelected()) ||
51514 (params.skipPinnedTop && node.rowPinned === 'top') ||
51515 (params.skipPinnedBottom && node.rowPinned === 'bottom')) {
51516 return;
51517 }
51518 // if we are in pivotMode, then the grid will show the root node only
51519 // if it's not a leaf group
51520 var nodeIsRootNode = node.level === -1;
51521 if (nodeIsRootNode && !node.leafGroup) {
51522 return;
51523 }
51524 var shouldRowBeSkipped = rowSkipper({ node: node, api: api, context: context });
51525 if (shouldRowBeSkipped) {
51526 return;
51527 }
51528 var rowAccumulator = gridSerializingSession.onNewBodyRow();
51529 columnsToExport.forEach(function (column, index) {
51530 rowAccumulator.onColumn(column, index, node);
51531 });
51532 if (params.getCustomContentBelowRow) {
51533 var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });
51534 if (content) {
51535 gridSerializingSession.addCustomContent(content);
51536 }
51537 }
51538 };
51539 GridSerializer.prototype.appendContent = function (params) {
51540 return function (gridSerializingSession) {
51541 var appendContent = params.customFooter || params.appendContent;
51542 if (appendContent) {
51543 if (params.customFooter) {
51544 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customFooter` param has been deprecated. Use `appendContent` instead.'); }, 'gridSerializer-customFooter');
51545 }
51546 gridSerializingSession.addCustomContent(appendContent);
51547 }
51548 return gridSerializingSession;
51549 };
51550 };
51551 GridSerializer.prototype.prependContent = function (params) {
51552 return function (gridSerializingSession) {
51553 var prependContent = params.customHeader || params.prependContent;
51554 if (prependContent) {
51555 if (params.customHeader) {
51556 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customHeader` param has been deprecated. Use `prependContent` instead.'); }, 'gridSerializer-customHeader');
51557 }
51558 gridSerializingSession.addCustomContent(prependContent);
51559 }
51560 return gridSerializingSession;
51561 };
51562 };
51563 GridSerializer.prototype.prepareSession = function (columnsToExport) {
51564 return function (gridSerializingSession) {
51565 gridSerializingSession.prepare(columnsToExport);
51566 return gridSerializingSession;
51567 };
51568 };
51569 GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {
51570 var _this = this;
51571 return function (gridSerializingSession) {
51572 if (!params.skipColumnGroupHeaders) {
51573 var groupInstanceIdCreator = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GroupInstanceIdCreator"]();
51574 var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnController.getGridBalancedTree(), groupInstanceIdCreator, null);
51575 _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);
51576 }
51577 else if (params.columnGroups) {
51578 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn('AG Grid: Since v25.2 the `columnGroups` param has deprecated, and groups are exported by default.'); }, 'gridSerializer-columnGroups');
51579 }
51580 return gridSerializingSession;
51581 };
51582 };
51583 GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {
51584 return function (gridSerializingSession) {
51585 if (!params.skipHeader && !params.skipColumnHeaders) {
51586 var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();
51587 columnsToExport.forEach(function (column, index) {
51588 gridRowIterator_1.onColumn(column, index, undefined);
51589 });
51590 }
51591 else if (params.skipHeader) {
51592 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn('AG Grid: Since v25.2 the `skipHeader` param has been renamed to `skipColumnHeaders`.'); }, 'gridSerializer-skipHeader');
51593 }
51594 return gridSerializingSession;
51595 };
51596 };
51597 GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {
51598 var _this = this;
51599 return function (gridSerializingSession) {
51600 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
51601 _this.pinnedRowModel.forEachPinnedTopRow(processRow);
51602 return gridSerializingSession;
51603 };
51604 };
51605 GridSerializer.prototype.processRows = function (params, columnsToExport) {
51606 var _this = this;
51607 return function (gridSerializingSession) {
51608 // when in pivot mode, we always render cols on screen, never 'all columns'
51609 var rowModel = _this.rowModel;
51610 var rowModelType = rowModel.getType();
51611 var usingCsrm = rowModelType === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_CLIENT_SIDE;
51612 var usingSsrm = rowModelType === _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_SERVER_SIDE;
51613 var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;
51614 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
51615 if (_this.columnController.isPivotMode()) {
51616 if (usingCsrm) {
51617 rowModel.forEachPivotNode(processRow);
51618 }
51619 else {
51620 // must be enterprise, so we can just loop through all the nodes
51621 rowModel.forEachNode(processRow);
51622 }
51623 }
51624 else {
51625 // onlySelectedAllPages: user doing pagination and wants selected items from
51626 // other pages, so cannot use the standard row model as it won't have rows from
51627 // other pages.
51628 // onlySelectedNonStandardModel: if user wants selected in non standard row model
51629 // (eg viewport) then again RowModel cannot be used, so need to use selected instead.
51630 if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {
51631 var selectedNodes = _this.selectionController.getSelectedNodes();
51632 selectedNodes.forEach(processRow);
51633 }
51634 else {
51635 // here is everything else - including standard row model and selected. we don't use
51636 // the selection model even when just using selected, so that the result is the order
51637 // of the rows appearing on the screen.
51638 if (usingCsrm) {
51639 rowModel.forEachNodeAfterFilterAndSort(processRow);
51640 }
51641 else if (usingSsrm) {
51642 rowModel.forEachNodeAfterFilterAndSort(processRow);
51643 }
51644 else {
51645 rowModel.forEachNode(processRow);
51646 }
51647 }
51648 }
51649 return gridSerializingSession;
51650 };
51651 };
51652 GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {
51653 var _this = this;
51654 return function (gridSerializingSession) {
51655 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
51656 _this.pinnedRowModel.forEachPinnedBottomRow(processRow);
51657 return gridSerializingSession;
51658 };
51659 };
51660 GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {
51661 if (allColumns === void 0) { allColumns = false; }
51662 var isPivotMode = this.columnController.isPivotMode();
51663 if (columnKeys && columnKeys.length) {
51664 return this.columnController.getGridColumns(columnKeys);
51665 }
51666 if (allColumns && !isPivotMode) {
51667 // add auto group column for tree data
51668 var columns = this.gridOptionsWrapper.isTreeData()
51669 ? this.columnController.getGridColumns([_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].GROUP_AUTO_COLUMN_ID])
51670 : [];
51671 return columns.concat(this.columnController.getAllPrimaryColumns() || []);
51672 }
51673 return this.columnController.getAllDisplayedColumns();
51674 };
51675 GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {
51676 var directChildrenHeaderGroups = [];
51677 displayedGroups.forEach(function (columnGroupChild) {
51678 var columnGroup = columnGroupChild;
51679 if (!columnGroup.getChildren) {
51680 return;
51681 }
51682 columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });
51683 });
51684 if (displayedGroups.length > 0 && displayedGroups[0] instanceof _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
51685 this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);
51686 }
51687 if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {
51688 this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);
51689 }
51690 };
51691 GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {
51692 var _this = this;
51693 var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();
51694 var columnIndex = 0;
51695 displayedGroups.forEach(function (columnGroupChild) {
51696 var columnGroup = columnGroupChild;
51697 var name;
51698 if (processGroupHeaderCallback) {
51699 name = processGroupHeaderCallback({
51700 columnGroup: columnGroup,
51701 api: _this.gridOptionsWrapper.getApi(),
51702 columnApi: _this.gridOptionsWrapper.getColumnApi(),
51703 context: _this.gridOptionsWrapper.getContext()
51704 });
51705 }
51706 else {
51707 name = _this.columnController.getDisplayNameForColumnGroup(columnGroup, 'header');
51708 }
51709 gridRowIterator.onColumn(name || '', columnIndex++, columnGroup.getLeafColumns().length - 1);
51710 });
51711 };
51712 __decorate([
51713 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('displayedGroupCreator')
51714 ], GridSerializer.prototype, "displayedGroupCreator", void 0);
51715 __decorate([
51716 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnController')
51717 ], GridSerializer.prototype, "columnController", void 0);
51718 __decorate([
51719 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
51720 ], GridSerializer.prototype, "rowModel", void 0);
51721 __decorate([
51722 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
51723 ], GridSerializer.prototype, "pinnedRowModel", void 0);
51724 __decorate([
51725 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
51726 ], GridSerializer.prototype, "selectionController", void 0);
51727 GridSerializer = __decorate([
51728 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])("gridSerializer")
51729 ], GridSerializer);
51730 return GridSerializer;
51731}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
51732
51733
51734
51735/***/ }),
51736/* 249 */
51737/***/ (function(module, __webpack_exports__, __webpack_require__) {
51738
51739"use strict";
51740__webpack_require__.r(__webpack_exports__);
51741/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return XmlFactory; });
51742var LINE_SEPARATOR = '\r\n';
51743var XmlFactory = /** @class */ (function () {
51744 function XmlFactory() {
51745 }
51746 XmlFactory.createHeader = function (headerElement) {
51747 if (headerElement === void 0) { headerElement = {}; }
51748 var headerStart = '<?';
51749 var headerEnd = '?>';
51750 var keys = ['version'];
51751 if (!headerElement.version) {
51752 headerElement.version = "1.0";
51753 }
51754 if (headerElement.encoding) {
51755 keys.push('encoding');
51756 }
51757 if (headerElement.standalone) {
51758 keys.push('standalone');
51759 }
51760 var att = keys.map(function (key) { return key + "=\"" + headerElement[key] + "\""; }).join(' ');
51761 return headerStart + "xml " + att + " " + headerEnd;
51762 };
51763 XmlFactory.createXml = function (xmlElement, booleanTransformer) {
51764 var _this = this;
51765 var props = '';
51766 if (xmlElement.properties) {
51767 if (xmlElement.properties.prefixedAttributes) {
51768 xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {
51769 Object.keys(prefixedSet.map).forEach(function (key) {
51770 props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);
51771 });
51772 });
51773 }
51774 if (xmlElement.properties.rawMap) {
51775 Object.keys(xmlElement.properties.rawMap).forEach(function (key) {
51776 props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);
51777 });
51778 }
51779 }
51780 var result = '<' + xmlElement.name + props;
51781 if (!xmlElement.children && xmlElement.textNode == null) {
51782 return result + '/>' + LINE_SEPARATOR;
51783 }
51784 if (xmlElement.textNode != null) {
51785 return result + '>' + xmlElement.textNode + '</' + xmlElement.name + '>' + LINE_SEPARATOR;
51786 }
51787 result += '>' + LINE_SEPARATOR;
51788 if (xmlElement.children) {
51789 xmlElement.children.forEach(function (it) {
51790 result += _this.createXml(it, booleanTransformer);
51791 });
51792 }
51793 return result + '</' + xmlElement.name + '>' + LINE_SEPARATOR;
51794 };
51795 XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {
51796 if (!value && value !== '' && value !== 0) {
51797 return '';
51798 }
51799 var xmlValue = value;
51800 if ((typeof (value) === 'boolean')) {
51801 if (booleanTransformer) {
51802 xmlValue = booleanTransformer(value);
51803 }
51804 }
51805 return " " + key + "=\"" + xmlValue + "\"";
51806 };
51807 return XmlFactory;
51808}());
51809
51810
51811
51812/***/ }),
51813/* 250 */
51814/***/ (function(module, __webpack_exports__, __webpack_require__) {
51815
51816"use strict";
51817__webpack_require__.r(__webpack_exports__);
51818/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return ZipContainer; });
51819/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
51820
51821// table for crc calculation
51822// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references
51823var crcTable = new Uint32Array([
51824 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
51825 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
51826 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
51827 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
51828 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
51829 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
51830 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
51831 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
51832 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
51833 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
51834 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
51835 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
51836 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
51837 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
51838 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
51839 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
51840 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
51841 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
51842 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
51843 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
51844 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
51845 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
51846 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
51847 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
51848 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
51849 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
51850 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
51851 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
51852 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
51853 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
51854 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
51855 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
51856 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
51857 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
51858 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
51859 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
51860 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
51861 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
51862 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
51863 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
51864 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
51865 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
51866 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
51867]);
51868var ZipContainer = /** @class */ (function () {
51869 function ZipContainer() {
51870 }
51871 ZipContainer.addFolders = function (paths) {
51872 paths.forEach(this.addFolder.bind(this));
51873 };
51874 ZipContainer.addFolder = function (path) {
51875 this.folders.push({
51876 path: path,
51877 created: new Date(),
51878 isBase64: false
51879 });
51880 };
51881 ZipContainer.addFile = function (path, content, isBase64) {
51882 if (isBase64 === void 0) { isBase64 = false; }
51883 this.files.push({
51884 path: path,
51885 created: new Date(),
51886 content: content,
51887 isBase64: isBase64
51888 });
51889 };
51890 ZipContainer.getContent = function (mimeType) {
51891 if (mimeType === void 0) { mimeType = 'application/zip'; }
51892 var textOutput = this.buildFileStream();
51893 var uInt8Output = this.buildUint8Array(textOutput);
51894 this.clearStream();
51895 return new Blob([uInt8Output], { type: mimeType });
51896 };
51897 ZipContainer.clearStream = function () {
51898 this.folders = [];
51899 this.files = [];
51900 };
51901 ZipContainer.buildFileStream = function (fData) {
51902 if (fData === void 0) { fData = ''; }
51903 var totalFiles = this.folders.concat(this.files);
51904 var len = totalFiles.length;
51905 var foData = '';
51906 var lL = 0;
51907 var cL = 0;
51908 for (var _i = 0, totalFiles_1 = totalFiles; _i < totalFiles_1.length; _i++) {
51909 var currentFile = totalFiles_1[_i];
51910 var _a = this.getHeader(currentFile, lL), fileHeader = _a.fileHeader, folderHeader = _a.folderHeader, content = _a.content;
51911 lL += fileHeader.length + content.length;
51912 cL += folderHeader.length;
51913 fData += fileHeader + content;
51914 foData += folderHeader;
51915 }
51916 var foEnd = this.buildFolderEnd(len, cL, lL);
51917 return fData + foData + foEnd;
51918 };
51919 ZipContainer.getHeader = function (currentFile, offset) {
51920 var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;
51921 var utf8_encode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].utf8_encode, decToHex = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].decToHex;
51922 var utfPath = utf8_encode(path);
51923 var isUTF8 = utfPath !== path;
51924 var time = this.convertTime(created);
51925 var dt = this.convertDate(created);
51926 var extraFields = '';
51927 if (isUTF8) {
51928 var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;
51929 extraFields = "\x75\x70" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;
51930 }
51931 var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;
51932 var header = '\x0A\x00' +
51933 (isUTF8 ? '\x00\x08' : '\x00\x00') +
51934 '\x00\x00' +
51935 decToHex(time, 2) + // last modified time
51936 decToHex(dt, 2) + // last modified date
51937 decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +
51938 decToHex(size, 4) + // compressed size
51939 decToHex(size, 4) + // uncompressed size
51940 decToHex(utfPath.length, 2) + // file name length
51941 decToHex(extraFields.length, 2); // extra field length
51942 var fileHeader = 'PK\x03\x04' + header + utfPath + extraFields;
51943 var folderHeader = 'PK\x01\x02' + // central header
51944 '\x14\x00' +
51945 header + // file header
51946 '\x00\x00' +
51947 '\x00\x00' +
51948 '\x00\x00' +
51949 (content ? '\x00\x00\x00\x00' : '\x10\x00\x00\x00') + // external file attributes
51950 decToHex(offset, 4) + // relative offset of local header
51951 utfPath + // file name
51952 extraFields; // extra field
51953 return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };
51954 };
51955 ZipContainer.getConvertedContent = function (content, isBase64) {
51956 if (isBase64 === void 0) { isBase64 = false; }
51957 if (isBase64) {
51958 content = content.split(';base64,')[1];
51959 }
51960 content = isBase64 ? atob(content) : content;
51961 return {
51962 size: content.length,
51963 content: content
51964 };
51965 };
51966 ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {
51967 var decToHex = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].decToHex;
51968 return 'PK\x05\x06' + // central folder end
51969 '\x00\x00' +
51970 '\x00\x00' +
51971 decToHex(tLen, 2) + // total number of entries in the central folder
51972 decToHex(tLen, 2) + // total number of entries in the central folder
51973 decToHex(cLen, 4) + // size of the central folder
51974 decToHex(lLen, 4) + // central folder start offset
51975 '\x00\x00';
51976 };
51977 ZipContainer.buildUint8Array = function (content) {
51978 var uint8 = new Uint8Array(content.length);
51979 for (var i = 0; i < uint8.length; i++) {
51980 uint8[i] = content.charCodeAt(i);
51981 }
51982 return uint8;
51983 };
51984 ZipContainer.getFromCrc32Table = function (content) {
51985 if (!content.length) {
51986 return 0;
51987 }
51988 var size = content.length;
51989 var iterable = new Uint8Array(size);
51990 for (var i = 0; i < size; i++) {
51991 iterable[i] = content.charCodeAt(i);
51992 }
51993 var crc = 0 ^ (-1);
51994 var j = 0;
51995 var k = 0;
51996 var l = 0;
51997 for (var i = 0; i < size; i++) {
51998 j = iterable[i];
51999 k = (crc ^ j) & 0xFF;
52000 l = crcTable[k];
52001 crc = (crc >>> 8) ^ l;
52002 }
52003 return crc ^ (-1);
52004 };
52005 ZipContainer.convertTime = function (date) {
52006 var time = date.getHours();
52007 time <<= 6;
52008 time = time | date.getMinutes();
52009 time <<= 5;
52010 time = time | date.getSeconds() / 2;
52011 return time;
52012 };
52013 ZipContainer.convertDate = function (date) {
52014 var dt = date.getFullYear() - 1980;
52015 dt <<= 4;
52016 dt = dt | (date.getMonth() + 1);
52017 dt <<= 5;
52018 dt = dt | date.getDate();
52019 return dt;
52020 };
52021 ZipContainer.folders = [];
52022 ZipContainer.files = [];
52023 return ZipContainer;
52024}());
52025
52026
52027
52028/***/ }),
52029/* 251 */
52030/***/ (function(module, __webpack_exports__, __webpack_require__) {
52031
52032"use strict";
52033__webpack_require__.r(__webpack_exports__);
52034/* harmony import */ var _infiniteRowModelModule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(252);
52035/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return _infiniteRowModelModule__WEBPACK_IMPORTED_MODULE_0__["InfiniteRowModelModule"]; });
52036
52037
52038
52039
52040/***/ }),
52041/* 252 */
52042/***/ (function(module, __webpack_exports__, __webpack_require__) {
52043
52044"use strict";
52045__webpack_require__.r(__webpack_exports__);
52046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return InfiniteRowModelModule; });
52047/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52048/* harmony import */ var _infiniteRowModel_infiniteRowModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(253);
52049
52050
52051var InfiniteRowModelModule = {
52052 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].InfiniteRowModelModule,
52053 rowModels: { infinite: _infiniteRowModel_infiniteRowModel__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModel"] }
52054};
52055
52056
52057/***/ }),
52058/* 253 */
52059/***/ (function(module, __webpack_exports__, __webpack_require__) {
52060
52061"use strict";
52062__webpack_require__.r(__webpack_exports__);
52063/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModel", function() { return InfiniteRowModel; });
52064/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52065/* harmony import */ var _infiniteCache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(254);
52066var __extends = (undefined && undefined.__extends) || (function () {
52067 var extendStatics = function (d, b) {
52068 extendStatics = Object.setPrototypeOf ||
52069 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52070 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
52071 return extendStatics(d, b);
52072 };
52073 return function (d, b) {
52074 extendStatics(d, b);
52075 function __() { this.constructor = d; }
52076 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52077 };
52078})();
52079var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52080 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52081 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52082 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;
52083 return c > 3 && r && Object.defineProperty(target, key, r), r;
52084};
52085
52086
52087var InfiniteRowModel = /** @class */ (function (_super) {
52088 __extends(InfiniteRowModel, _super);
52089 function InfiniteRowModel() {
52090 return _super !== null && _super.apply(this, arguments) || this;
52091 }
52092 InfiniteRowModel.prototype.getRowBounds = function (index) {
52093 return {
52094 rowHeight: this.rowHeight,
52095 rowTop: this.rowHeight * index
52096 };
52097 };
52098 // we don't implement as lazy row heights is not supported in this row model
52099 InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
52100 return false;
52101 };
52102 InfiniteRowModel.prototype.init = function () {
52103 var _this = this;
52104 if (!this.gridOptionsWrapper.isRowModelInfinite()) {
52105 return;
52106 }
52107 this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();
52108 this.addEventListeners();
52109 this.addDestroyFunc(function () { return _this.destroyCache(); });
52110 this.verifyProps();
52111 };
52112 InfiniteRowModel.prototype.verifyProps = function () {
52113 if (this.gridOptionsWrapper.getDefaultGroupSortComparator() != null) {
52114 var message_1 = "AG Grid: defaultGroupSortComparator cannot be used with Infinite Row Model. If using Infinite Row Model, then sorting is done on the server side, nothing to do with the client.";
52115 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn(message_1); }, 'IRM.DefaultGroupSortComparator');
52116 }
52117 };
52118 InfiniteRowModel.prototype.start = function () {
52119 this.setDatasource(this.gridOptionsWrapper.getDatasource());
52120 };
52121 InfiniteRowModel.prototype.destroyDatasource = function () {
52122 if (this.datasource) {
52123 this.getContext().destroyBean(this.datasource);
52124 this.rowRenderer.datasourceChanged();
52125 this.datasource = null;
52126 }
52127 };
52128 InfiniteRowModel.prototype.addEventListeners = function () {
52129 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
52130 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
52131 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));
52132 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));
52133 };
52134 InfiniteRowModel.prototype.onFilterChanged = function () {
52135 this.reset();
52136 };
52137 InfiniteRowModel.prototype.onSortChanged = function () {
52138 this.reset();
52139 };
52140 InfiniteRowModel.prototype.onColumnEverything = function () {
52141 var resetRequired;
52142 // if cache params, we require reset only if sort model has changed. we don't need to check
52143 // for filter model, as the filter manager will fire an event when columns change that result
52144 // in the filter changing.
52145 if (this.cacheParams) {
52146 resetRequired = this.isSortModelDifferent();
52147 }
52148 else {
52149 // if no cacheParams, means first time creating the cache, so always create one
52150 resetRequired = true;
52151 }
52152 if (resetRequired) {
52153 this.reset();
52154 }
52155 };
52156 InfiniteRowModel.prototype.isSortModelDifferent = function () {
52157 return !_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());
52158 };
52159 InfiniteRowModel.prototype.getType = function () {
52160 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Constants"].ROW_MODEL_TYPE_INFINITE;
52161 };
52162 InfiniteRowModel.prototype.setDatasource = function (datasource) {
52163 this.destroyDatasource();
52164 this.datasource = datasource;
52165 // only reset if we have a valid datasource to working with
52166 if (datasource) {
52167 this.reset();
52168 }
52169 };
52170 InfiniteRowModel.prototype.isEmpty = function () {
52171 return !this.infiniteCache;
52172 };
52173 InfiniteRowModel.prototype.isRowsToRender = function () {
52174 return !!this.infiniteCache;
52175 };
52176 InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
52177 return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];
52178 };
52179 InfiniteRowModel.prototype.reset = function () {
52180 // important to return here, as the user could be setting filter or sort before
52181 // data-source is set
52182 if (!this.datasource) {
52183 return;
52184 }
52185 // if user is providing id's, then this means we can keep the selection between datasource hits,
52186 // as the rows will keep their unique id's even if, for example, server side sorting or filtering
52187 // is done.
52188 var userGeneratingIds = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(this.gridOptionsWrapper.getRowNodeIdFunc());
52189 if (!userGeneratingIds) {
52190 this.selectionController.reset();
52191 }
52192 this.resetCache();
52193 var event = this.createModelUpdatedEvent();
52194 this.eventService.dispatchEvent(event);
52195 };
52196 InfiniteRowModel.prototype.createModelUpdatedEvent = function () {
52197 return {
52198 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MODEL_UPDATED,
52199 api: this.gridApi,
52200 columnApi: this.columnApi,
52201 // not sure if these should all be false - noticed if after implementing,
52202 // maybe they should be true?
52203 newPage: false,
52204 newData: false,
52205 keepRenderedRows: true,
52206 animate: false
52207 };
52208 };
52209 InfiniteRowModel.prototype.resetCache = function () {
52210 // if not first time creating a cache, need to destroy the old one
52211 this.destroyCache();
52212 var maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();
52213 this.cacheParams = {
52214 // the user provided datasource
52215 datasource: this.datasource,
52216 // sort and filter model
52217 filterModel: this.filterManager.getFilterModel(),
52218 sortModel: this.sortController.getSortModel(),
52219 rowNodeBlockLoader: this.rowNodeBlockLoader,
52220 // properties - this way we take a snapshot of them, so if user changes any, they will be
52221 // used next time we create a new cache, which is generally after a filter or sort change,
52222 // or a new datasource is set
52223 maxConcurrentRequests: this.defaultIfInvalid(maxConcurrentRequests, 2),
52224 initialRowCount: this.defaultIfInvalid(this.gridOptionsWrapper.getInfiniteInitialRowCount(), 1),
52225 maxBlocksInCache: this.gridOptionsWrapper.getMaxBlocksInCache(),
52226 rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),
52227 // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past
52228 // the current page and request first row of next page
52229 overflowSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheOverflowSize(), 1),
52230 // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the
52231 // server for one page at a time. so the default if not specified is 100.
52232 blockSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheBlockSize(), 100),
52233 // the cache could create this, however it is also used by the pages, so handy to create it
52234 // here as the settings are also passed to the pages
52235 lastAccessedSequence: new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]()
52236 };
52237 this.infiniteCache = this.createBean(new _infiniteCache__WEBPACK_IMPORTED_MODULE_1__["InfiniteCache"](this.cacheParams));
52238 };
52239 InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {
52240 return value > 0 ? value : defaultValue;
52241 };
52242 InfiniteRowModel.prototype.destroyCache = function () {
52243 if (this.infiniteCache) {
52244 this.infiniteCache = this.destroyBean(this.infiniteCache);
52245 }
52246 };
52247 InfiniteRowModel.prototype.onCacheUpdated = function () {
52248 var event = this.createModelUpdatedEvent();
52249 this.eventService.dispatchEvent(event);
52250 };
52251 InfiniteRowModel.prototype.getRow = function (rowIndex) {
52252 return this.infiniteCache ? this.infiniteCache.getRow(rowIndex) : null;
52253 };
52254 InfiniteRowModel.prototype.getRowNode = function (id) {
52255 var result = null;
52256 this.forEachNode(function (rowNode) {
52257 if (rowNode.id === id) {
52258 result = rowNode;
52259 }
52260 });
52261 return result;
52262 };
52263 InfiniteRowModel.prototype.forEachNode = function (callback) {
52264 if (this.infiniteCache) {
52265 this.infiniteCache.forEachNodeDeep(callback);
52266 }
52267 };
52268 InfiniteRowModel.prototype.getTopLevelRowCount = function () {
52269 return this.getRowCount();
52270 };
52271 InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {
52272 return topLevelIndex;
52273 };
52274 InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {
52275 if (this.rowHeight !== 0) { // avoid divide by zero error
52276 var rowIndexForPixel = Math.floor(pixel / this.rowHeight);
52277 var lastRowIndex = this.getRowCount() - 1;
52278 if (rowIndexForPixel > lastRowIndex) {
52279 return lastRowIndex;
52280 }
52281 else {
52282 return rowIndexForPixel;
52283 }
52284 }
52285 else {
52286 return 0;
52287 }
52288 };
52289 InfiniteRowModel.prototype.getRowCount = function () {
52290 return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;
52291 };
52292 InfiniteRowModel.prototype.isRowPresent = function (rowNode) {
52293 var foundRowNode = this.getRowNode(rowNode.id);
52294 return !!foundRowNode;
52295 };
52296 InfiniteRowModel.prototype.refreshCache = function () {
52297 if (this.infiniteCache) {
52298 this.infiniteCache.refreshCache();
52299 }
52300 };
52301 InfiniteRowModel.prototype.purgeCache = function () {
52302 if (this.infiniteCache) {
52303 this.infiniteCache.purgeCache();
52304 }
52305 };
52306 // for iRowModel
52307 InfiniteRowModel.prototype.isLastRowIndexKnown = function () {
52308 if (this.infiniteCache) {
52309 return this.infiniteCache.isLastRowIndexKnown();
52310 }
52311 else {
52312 return false;
52313 }
52314 };
52315 InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {
52316 if (this.infiniteCache) {
52317 this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);
52318 }
52319 };
52320 __decorate([
52321 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
52322 ], InfiniteRowModel.prototype, "filterManager", void 0);
52323 __decorate([
52324 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
52325 ], InfiniteRowModel.prototype, "sortController", void 0);
52326 __decorate([
52327 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionController')
52328 ], InfiniteRowModel.prototype, "selectionController", void 0);
52329 __decorate([
52330 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
52331 ], InfiniteRowModel.prototype, "gridApi", void 0);
52332 __decorate([
52333 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
52334 ], InfiniteRowModel.prototype, "columnApi", void 0);
52335 __decorate([
52336 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
52337 ], InfiniteRowModel.prototype, "rowRenderer", void 0);
52338 __decorate([
52339 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeBlockLoader')
52340 ], InfiniteRowModel.prototype, "rowNodeBlockLoader", void 0);
52341 __decorate([
52342 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
52343 ], InfiniteRowModel.prototype, "init", null);
52344 __decorate([
52345 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
52346 ], InfiniteRowModel.prototype, "destroyDatasource", null);
52347 InfiniteRowModel = __decorate([
52348 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowModel')
52349 ], InfiniteRowModel);
52350 return InfiniteRowModel;
52351}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52352
52353
52354
52355/***/ }),
52356/* 254 */
52357/***/ (function(module, __webpack_exports__, __webpack_require__) {
52358
52359"use strict";
52360__webpack_require__.r(__webpack_exports__);
52361/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteCache", function() { return InfiniteCache; });
52362/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52363/* harmony import */ var _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(255);
52364var __extends = (undefined && undefined.__extends) || (function () {
52365 var extendStatics = function (d, b) {
52366 extendStatics = Object.setPrototypeOf ||
52367 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52368 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
52369 return extendStatics(d, b);
52370 };
52371 return function (d, b) {
52372 extendStatics(d, b);
52373 function __() { this.constructor = d; }
52374 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52375 };
52376})();
52377var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52378 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52379 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52380 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;
52381 return c > 3 && r && Object.defineProperty(target, key, r), r;
52382};
52383var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
52384 return function (target, key) { decorator(target, key, paramIndex); }
52385};
52386
52387
52388var InfiniteCache = /** @class */ (function (_super) {
52389 __extends(InfiniteCache, _super);
52390 function InfiniteCache(params) {
52391 var _this = _super.call(this) || this;
52392 _this.lastRowIndexKnown = false;
52393 _this.blocks = {};
52394 _this.blockCount = 0;
52395 _this.rowCount = params.initialRowCount;
52396 _this.params = params;
52397 return _this;
52398 }
52399 InfiniteCache.prototype.setBeans = function (loggerFactory) {
52400 this.logger = loggerFactory.create('InfiniteCache');
52401 };
52402 // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,
52403 // it will want new pages in the cache as it asks for rows. only when we are inserting /
52404 // removing rows via the api is dontCreatePage set, where we move rows between the pages.
52405 InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {
52406 if (dontCreatePage === void 0) { dontCreatePage = false; }
52407 var blockId = Math.floor(rowIndex / this.params.blockSize);
52408 var block = this.blocks[blockId];
52409 if (!block) {
52410 if (dontCreatePage) {
52411 return null;
52412 }
52413 block = this.createBlock(blockId);
52414 }
52415 return block.getRow(rowIndex);
52416 };
52417 InfiniteCache.prototype.createBlock = function (blockNumber) {
52418 var newBlock = this.createBean(new _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__["InfiniteBlock"](blockNumber, this, this.params));
52419 this.blocks[newBlock.getId()] = newBlock;
52420 this.blockCount++;
52421 this.purgeBlocksIfNeeded(newBlock);
52422 this.params.rowNodeBlockLoader.addBlock(newBlock);
52423 return newBlock;
52424 };
52425 // we have this on infinite row model only, not server side row model,
52426 // because for server side, it would leave the children in inconsistent
52427 // state - eg if a node had children, but after the refresh it had data
52428 // for a different row, then the children would be with the wrong row node.
52429 InfiniteCache.prototype.refreshCache = function () {
52430 var nothingToRefresh = this.blockCount == 0;
52431 if (nothingToRefresh) {
52432 this.purgeCache();
52433 return;
52434 }
52435 this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });
52436 this.params.rowNodeBlockLoader.checkBlockToLoad();
52437 };
52438 InfiniteCache.prototype.destroyAllBlocks = function () {
52439 var _this = this;
52440 this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });
52441 };
52442 InfiniteCache.prototype.getRowCount = function () {
52443 return this.rowCount;
52444 };
52445 InfiniteCache.prototype.isLastRowIndexKnown = function () {
52446 return this.lastRowIndexKnown;
52447 };
52448 // block calls this, when page loaded
52449 InfiniteCache.prototype.pageLoaded = function (block, lastRow) {
52450 // if we are not active, then we ignore all events, otherwise we could end up getting the
52451 // grid to refresh even though we are no longer the active cache
52452 if (!this.isAlive()) {
52453 return;
52454 }
52455 this.logger.log("onPageLoaded: page = " + block.getId() + ", lastRow = " + lastRow);
52456 this.checkRowCount(block, lastRow);
52457 // we fire cacheUpdated even if the row count has not changed, as some items need updating even
52458 // if no new rows to render. for example the pagination panel has '?' as the total rows when loading
52459 // is underway, which would need to get updated when loading finishes.
52460 this.onCacheUpdated();
52461 };
52462 InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {
52463 var _this = this;
52464 // we exclude checking for the page just created, as this has yet to be accessed and hence
52465 // the lastAccessed stamp will not be updated for the first time yet
52466 var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });
52467 var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };
52468 blocksForPurging.sort(lastAccessedComparator);
52469 // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.
52470 // in other words, after the splice operation below, we have taken out the blocks
52471 // we want to keep, which means we are left with blocks that we can potentially purge
52472 var maxBlocksProvided = this.params.maxBlocksInCache > 0;
52473 var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;
52474 var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;
52475 blocksForPurging.forEach(function (block, index) {
52476 var purgeBecauseBlockEmpty = block.getState() === _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__["InfiniteBlock"].STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;
52477 var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;
52478 if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {
52479 // if the block currently has rows been displayed, then don't remove it either.
52480 // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)
52481 // but the screen is showing 20 rows, so at least 4 blocks are needed.
52482 if (_this.isBlockCurrentlyDisplayed(block)) {
52483 return;
52484 }
52485 // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.
52486 if (_this.isBlockFocused(block)) {
52487 return;
52488 }
52489 // at this point, block is not needed, so burn baby burn
52490 _this.removeBlockFromCache(block);
52491 }
52492 });
52493 };
52494 InfiniteCache.prototype.isBlockFocused = function (block) {
52495 var focusedCell = this.focusController.getFocusCellToUseAfterRefresh();
52496 if (!focusedCell) {
52497 return false;
52498 }
52499 if (focusedCell.rowPinned != null) {
52500 return false;
52501 }
52502 var blockIndexStart = block.getStartRow();
52503 var blockIndexEnd = block.getEndRow();
52504 var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;
52505 return hasFocus;
52506 };
52507 InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {
52508 var startIndex = block.getStartRow();
52509 var endIndex = block.getEndRow() - 1;
52510 return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);
52511 };
52512 InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {
52513 if (!blockToRemove) {
52514 return;
52515 }
52516 this.destroyBlock(blockToRemove);
52517 // we do not want to remove the 'loaded' event listener, as the
52518 // concurrent loads count needs to be updated when the load is complete
52519 // if the purged page is in loading state
52520 };
52521 InfiniteCache.prototype.checkRowCount = function (block, lastRow) {
52522 // if client provided a last row, we always use it, as it could change between server calls
52523 // if user deleted data and then called refresh on the grid.
52524 if (typeof lastRow === 'number' && lastRow >= 0) {
52525 this.rowCount = lastRow;
52526 this.lastRowIndexKnown = true;
52527 }
52528 else if (!this.lastRowIndexKnown) {
52529 // otherwise, see if we need to add some virtual rows
52530 var lastRowIndex = (block.getId() + 1) * this.params.blockSize;
52531 var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;
52532 if (this.rowCount < lastRowIndexPlusOverflow) {
52533 this.rowCount = lastRowIndexPlusOverflow;
52534 }
52535 }
52536 };
52537 InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {
52538 this.rowCount = rowCount;
52539 // if undefined is passed, we do not set this value, if one of {true,false}
52540 // is passed, we do set the value.
52541 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(lastRowIndexKnown)) {
52542 this.lastRowIndexKnown = lastRowIndexKnown;
52543 }
52544 // if we are still searching, then the row count must not end at the end
52545 // of a particular page, otherwise the searching will not pop into the
52546 // next page
52547 if (!this.lastRowIndexKnown) {
52548 if (this.rowCount % this.params.blockSize === 0) {
52549 this.rowCount++;
52550 }
52551 }
52552 this.onCacheUpdated();
52553 };
52554 InfiniteCache.prototype.forEachNodeDeep = function (callback) {
52555 var _this = this;
52556 var sequence = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]();
52557 this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });
52558 };
52559 InfiniteCache.prototype.getBlocksInOrder = function () {
52560 // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order
52561 var blockComparator = function (a, b) { return a.getId() - b.getId(); };
52562 var blocks = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].getAllValuesInObject(this.blocks).sort(blockComparator);
52563 return blocks;
52564 };
52565 InfiniteCache.prototype.destroyBlock = function (block) {
52566 delete this.blocks[block.getId()];
52567 this.destroyBean(block);
52568 this.blockCount--;
52569 this.params.rowNodeBlockLoader.removeBlock(block);
52570 };
52571 // gets called 1) row count changed 2) cache purged 3) items inserted
52572 InfiniteCache.prototype.onCacheUpdated = function () {
52573 if (this.isAlive()) {
52574 // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer
52575 // in the valid range. so we must remove these. this can happen if user explicitly sets
52576 // the virtual row count, or the datasource returns a result and sets lastRow to something
52577 // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).
52578 this.destroyAllBlocksPastVirtualRowCount();
52579 // this results in both row models (infinite and server side) firing ModelUpdated,
52580 // however server side row model also updates the row indexes first
52581 var event_1 = {
52582 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED
52583 };
52584 this.eventService.dispatchEvent(event_1);
52585 }
52586 };
52587 InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {
52588 var _this = this;
52589 var blocksToDestroy = [];
52590 this.getBlocksInOrder().forEach(function (block) {
52591 var startRow = block.getId() * _this.params.blockSize;
52592 if (startRow >= _this.rowCount) {
52593 blocksToDestroy.push(block);
52594 }
52595 });
52596 if (blocksToDestroy.length > 0) {
52597 blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });
52598 }
52599 };
52600 InfiniteCache.prototype.purgeCache = function () {
52601 var _this = this;
52602 this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });
52603 this.lastRowIndexKnown = false;
52604 // if zero rows in the cache, we need to get the SSRM to start asking for rows again.
52605 // otherwise if set to zero rows last time, and we don't update the row count, then after
52606 // the purge there will still be zero rows, meaning the SSRM won't request any rows.
52607 // to kick things off, at least one row needs to be asked for.
52608 if (this.rowCount === 0) {
52609 this.rowCount = this.params.initialRowCount;
52610 }
52611 this.onCacheUpdated();
52612 };
52613 InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {
52614 var _this = this;
52615 var result = [];
52616 var lastBlockId = -1;
52617 var inActiveRange = false;
52618 var numberSequence = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]();
52619 // if only one node passed, we start the selection at the top
52620 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(firstInRange)) {
52621 inActiveRange = true;
52622 }
52623 var foundGapInSelection = false;
52624 this.getBlocksInOrder().forEach(function (block) {
52625 if (foundGapInSelection) {
52626 return;
52627 }
52628 if (inActiveRange && (lastBlockId + 1 !== block.getId())) {
52629 foundGapInSelection = true;
52630 return;
52631 }
52632 lastBlockId = block.getId();
52633 block.forEachNode(function (rowNode) {
52634 var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;
52635 if (inActiveRange || hitFirstOrLast) {
52636 result.push(rowNode);
52637 }
52638 if (hitFirstOrLast) {
52639 inActiveRange = !inActiveRange;
52640 }
52641 }, numberSequence, _this.rowCount);
52642 });
52643 // inActiveRange will be still true if we never hit the second rowNode
52644 var invalidRange = foundGapInSelection || inActiveRange;
52645 return invalidRange ? [] : result;
52646 };
52647 // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10
52648 // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly
52649 // scrolled over are not needed to be loaded.
52650 InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;
52651 __decorate([
52652 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
52653 ], InfiniteCache.prototype, "rowRenderer", void 0);
52654 __decorate([
52655 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("focusController")
52656 ], InfiniteCache.prototype, "focusController", void 0);
52657 __decorate([
52658 __param(0, Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
52659 ], InfiniteCache.prototype, "setBeans", null);
52660 __decorate([
52661 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
52662 ], InfiniteCache.prototype, "destroyAllBlocks", null);
52663 return InfiniteCache;
52664}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52665
52666
52667
52668/***/ }),
52669/* 255 */
52670/***/ (function(module, __webpack_exports__, __webpack_require__) {
52671
52672"use strict";
52673__webpack_require__.r(__webpack_exports__);
52674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteBlock", function() { return InfiniteBlock; });
52675/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
52676var __extends = (undefined && undefined.__extends) || (function () {
52677 var extendStatics = function (d, b) {
52678 extendStatics = Object.setPrototypeOf ||
52679 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52680 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
52681 return extendStatics(d, b);
52682 };
52683 return function (d, b) {
52684 extendStatics(d, b);
52685 function __() { this.constructor = d; }
52686 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52687 };
52688})();
52689var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52690 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52691 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52692 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;
52693 return c > 3 && r && Object.defineProperty(target, key, r), r;
52694};
52695
52696var InfiniteBlock = /** @class */ (function (_super) {
52697 __extends(InfiniteBlock, _super);
52698 function InfiniteBlock(id, parentCache, params) {
52699 var _this = _super.call(this, id) || this;
52700 _this.parentCache = parentCache;
52701 _this.params = params;
52702 // we don't need to calculate these now, as the inputs don't change,
52703 // however it makes the code easier to read if we work them out up front
52704 _this.startRow = id * params.blockSize;
52705 _this.endRow = _this.startRow + params.blockSize;
52706 return _this;
52707 }
52708 InfiniteBlock.prototype.postConstruct = function () {
52709 this.createRowNodes();
52710 };
52711 InfiniteBlock.prototype.getBlockStateJson = function () {
52712 return {
52713 id: '' + this.getId(),
52714 state: {
52715 blockNumber: this.getId(),
52716 startRow: this.getStartRow(),
52717 endRow: this.getEndRow(),
52718 pageStatus: this.getState()
52719 }
52720 };
52721 };
52722 InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {
52723 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(data)) {
52724 // this means if the user is not providing id's we just use the
52725 // index for the row. this will allow selection to work (that is based
52726 // on index) as long user is not inserting or deleting rows,
52727 // or wanting to keep selection between server side sorting or filtering
52728 rowNode.setDataAndId(data, index.toString());
52729 }
52730 else {
52731 rowNode.setDataAndId(undefined, undefined);
52732 }
52733 };
52734 InfiniteBlock.prototype.loadFromDatasource = function () {
52735 var _this = this;
52736 var params = this.createLoadParams();
52737 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.params.datasource.getRows)) {
52738 console.warn("AG Grid: datasource is missing getRows method");
52739 return;
52740 }
52741 // put in timeout, to force result to be async
52742 window.setTimeout(function () {
52743 _this.params.datasource.getRows(params);
52744 }, 0);
52745 };
52746 InfiniteBlock.prototype.processServerFail = function () {
52747 // todo - this method has better handling in SSRM
52748 };
52749 InfiniteBlock.prototype.createLoadParams = function () {
52750 // PROBLEM . . . . when the user sets sort via colDef.sort, then this code
52751 // is executing before the sort is set up, so server is not getting the sort
52752 // model. need to change with regards order - so the server side request is
52753 // AFTER thus it gets the right sort model.
52754 var params = {
52755 startRow: this.getStartRow(),
52756 endRow: this.getEndRow(),
52757 successCallback: this.pageLoaded.bind(this, this.getVersion()),
52758 failCallback: this.pageLoadFailed.bind(this, this.getVersion()),
52759 sortModel: this.params.sortModel,
52760 filterModel: this.params.filterModel,
52761 context: this.gridOptionsWrapper.getContext()
52762 };
52763 return params;
52764 };
52765 InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {
52766 var _this = this;
52767 this.rowNodes.forEach(function (rowNode, index) {
52768 var rowIndex = _this.startRow + index;
52769 if (rowIndex < rowCount) {
52770 callback(rowNode, sequence.next());
52771 }
52772 });
52773 };
52774 InfiniteBlock.prototype.getLastAccessed = function () {
52775 return this.lastAccessed;
52776 };
52777 InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {
52778 if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }
52779 if (!dontTouchLastAccessed) {
52780 this.lastAccessed = this.params.lastAccessedSequence.next();
52781 }
52782 var localIndex = rowIndex - this.startRow;
52783 return this.rowNodes[localIndex];
52784 };
52785 InfiniteBlock.prototype.getStartRow = function () {
52786 return this.startRow;
52787 };
52788 InfiniteBlock.prototype.getEndRow = function () {
52789 return this.endRow;
52790 };
52791 // creates empty row nodes, data is missing as not loaded yet
52792 InfiniteBlock.prototype.createRowNodes = function () {
52793 this.rowNodes = [];
52794 for (var i = 0; i < this.params.blockSize; i++) {
52795 var rowIndex = this.startRow + i;
52796 var rowNode = this.getContext().createBean(new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"]());
52797 rowNode.setRowHeight(this.params.rowHeight);
52798 rowNode.uiLevel = 0;
52799 rowNode.setRowIndex(rowIndex);
52800 rowNode.setRowTop(this.params.rowHeight * rowIndex);
52801 this.rowNodes.push(rowNode);
52802 }
52803 };
52804 InfiniteBlock.prototype.processServerResult = function (params) {
52805 var _this = this;
52806 this.rowNodes.forEach(function (rowNode, index) {
52807 var data = params.rowData ? params.rowData[index] : undefined;
52808 _this.setDataAndId(rowNode, data, _this.startRow + index);
52809 });
52810 var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;
52811 this.parentCache.pageLoaded(this, finalRowCount);
52812 };
52813 InfiniteBlock.prototype.destroyRowNodes = function () {
52814 this.rowNodes.forEach(function (rowNode) {
52815 // this is needed, so row render knows to fade out the row, otherwise it
52816 // sees row top is present, and thinks the row should be shown.
52817 rowNode.clearRowTopAndRowIndex();
52818 });
52819 };
52820 __decorate([
52821 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
52822 ], InfiniteBlock.prototype, "postConstruct", null);
52823 __decorate([
52824 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
52825 ], InfiniteBlock.prototype, "destroyRowNodes", null);
52826 return InfiniteBlock;
52827}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"]));
52828
52829
52830
52831/***/ }),
52832/* 256 */
52833/***/ (function(module, __webpack_exports__, __webpack_require__) {
52834
52835"use strict";
52836__webpack_require__.r(__webpack_exports__);
52837/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AllCommunityModules", function() { return AllCommunityModules; });
52838/* harmony import */ var _ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
52839/* harmony import */ var _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251);
52840/* harmony import */ var _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(241);
52841/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return _ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"]; });
52842
52843/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["BaseCreator"]; });
52844
52845/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["BaseGridSerializingSession"]; });
52846
52847/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvCreator"]; });
52848
52849/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvExportModule"]; });
52850
52851/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["Downloader"]; });
52852
52853/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["GridSerializer"]; });
52854
52855/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["RowType"]; });
52856
52857/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["XmlFactory"]; });
52858
52859/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["ZipContainer"]; });
52860
52861/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModelModule"]; });
52862
52863/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
52864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnFactory"]; });
52865
52866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnController"]; });
52867
52868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnKeyCreator"]; });
52869
52870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnUtils"]; });
52871
52872/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DisplayedGroupCreator"]; });
52873
52874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupInstanceIdCreator"]; });
52875
52876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeadlessService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeadlessService"]; });
52877
52878/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TestHeadless", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TestHeadless"]; });
52879
52880/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ComponentUtil"]; });
52881
52882/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColDefUtil"]; });
52883
52884/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["UserComponentRegistry"]; });
52885
52886/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["UserComponentFactory"]; });
52887
52888/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithAngular1", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["initialiseAgGridWithAngular1"]; });
52889
52890/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "initialiseAgGridWithWebComponents", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["initialiseAgGridWithWebComponents"]; });
52891
52892/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]; });
52893
52894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Context"]; });
52895
52896/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Autowired"]; });
52897
52898/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]; });
52899
52900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PreConstruct"]; });
52901
52902/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Optional"]; });
52903
52904/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Bean"]; });
52905
52906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Qualifier"]; });
52907
52908/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PreDestroy"]; });
52909
52910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["QuerySelector"]; });
52911
52912/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GuiListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GuiListener"]; });
52913
52914/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RefSelector"]; });
52915
52916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridListener"]; });
52917
52918/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"]; });
52919
52920/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragAndDropService"]; });
52921
52922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragSourceType"]; });
52923
52924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HorizontalDirection"]; });
52925
52926/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VerticalDirection"]; });
52927
52928/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragService"]; });
52929
52930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Column"]; });
52931
52932/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnGroup"]; });
52933
52934/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "OriginalColumnGroup", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["OriginalColumnGroup"]; });
52935
52936/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNode"]; });
52937
52938/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FilterManager"]; });
52939
52940/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ProvidedFilter"]; });
52941
52942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SimpleFilter"]; });
52943
52944/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"]; });
52945
52946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NumberFilter"]; });
52947
52948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextFilter"]; });
52949
52950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DateFilter"]; });
52951
52952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextFloatingFilter"]; });
52953
52954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterWrapper"]; });
52955
52956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterMapper"]; });
52957
52958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridBodyComp"]; });
52959
52960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridBodyController"]; });
52961
52962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ScrollVisibleService"]; });
52963
52964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["MouseEventService"]; });
52965
52966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BodyDropPivotTarget"]; });
52967
52968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BodyDropTarget"]; });
52969
52970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CssClassApplier"]; });
52971
52972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderContainer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderContainer"]; });
52973
52974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRootComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRootComp"]; });
52975
52976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowComp"]; });
52977
52978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HorizontalResizeService"]; });
52979
52980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveColumnController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["MoveColumnController"]; });
52981
52982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["StandardMenuFactory"]; });
52983
52984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TabbedLayout"]; });
52985
52986/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["simpleHttpRequest"]; });
52987
52988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ResizeObserverService"]; });
52989
52990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimationFrameService"]; });
52991
52992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LargeTextCellEditor"]; });
52993
52994/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupEditorWrapper"]; });
52995
52996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupSelectCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupSelectCellEditor"]; });
52997
52998/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupTextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupTextCellEditor"]; });
52999
53000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectCellEditor"]; });
53001
53002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextCellEditor"]; });
53003
53004/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimateShowChangeCellRenderer"]; });
53005
53006/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimateSlideCellRenderer"]; });
53007
53008/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupCellRenderer"]; });
53009
53010/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SetLeftFeature"]; });
53011
53012/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AutoWidthCalculator"]; });
53013
53014/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CheckboxSelectionComponent"]; });
53015
53016/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellComp"]; });
53017
53018/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowController"]; });
53019
53020/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowRenderer"]; });
53021
53022/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueFormatterService"]; });
53023
53024/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PinnedRowModel"]; });
53025
53026/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ServerSideTransactionResultStatus"]; });
53027
53028/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ChangedPath"]; });
53029
53030/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeBlock"]; });
53031
53032/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeBlockLoader"]; });
53033
53034/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PaginationProxy"]; });
53035
53036/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ClientSideRowModelSteps"]; });
53037
53038/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["StylingService"]; });
53039
53040/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LayoutCssClasses"]; });
53041
53042/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"]; });
53043
53044/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgCheckbox"]; });
53045
53046/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgRadioButton"]; });
53047
53048/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgToggleButton"]; });
53049
53050/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputTextField"]; });
53051
53052/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputTextArea"]; });
53053
53054/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputNumberField"]; });
53055
53056/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputRange"]; });
53057
53058/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgSelect"]; });
53059
53060/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgSlider"]; });
53061
53062/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAngleSelect", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgAngleSelect"]; });
53063
53064/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgColorPicker", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgColorPicker"]; });
53065
53066/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgGroupComponent"]; });
53067
53068/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgDialog"]; });
53069
53070/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPanel"]; });
53071
53072/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Component"]; });
53073
53074/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ManagedFocusComponent"]; });
53075
53076/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupComponent"]; });
53077
53078/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupService"]; });
53079
53080/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TouchListener"]; });
53081
53082/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VirtualList"]; });
53083
53084/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellRangeType"]; });
53085
53086/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectionHandleType"]; });
53087
53088/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VanillaFrameworkOverrides"]; });
53089
53090/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellNavigationService"]; });
53091
53092/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AlignedGridsService"]; });
53093
53094/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Constants", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Constants"]; });
53095
53096/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["KeyCode"]; });
53097
53098/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyName", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["KeyName"]; });
53099
53100/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Grid"]; });
53101
53102/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridCoreCreator"]; });
53103
53104/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridApi"]; });
53105
53106/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Events"]; });
53107
53108/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FocusController"]; });
53109
53110/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultGroupComparator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["defaultGroupComparator"]; });
53111
53112/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridOptionsWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridOptionsWrapper"]; });
53113
53114/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["EventService"]; });
53115
53116/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectableService"]; });
53117
53118/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeSorter"]; });
53119
53120/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ControllersService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ControllersService"]; });
53121
53122/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridComp"]; });
53123
53124/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCompController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridCompController"]; });
53125
53126/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Logger"]; });
53127
53128/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LoggerFactory"]; });
53129
53130/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectionController"]; });
53131
53132/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SortController"]; });
53133
53134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TemplateService"]; });
53135
53136/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Color", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Color"]; });
53137
53138/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stringToArray", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["stringToArray"]; });
53139
53140/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["_"]; });
53141
53142/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NumberSequence"]; });
53143
53144/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPromiseStatus"]; });
53145
53146/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPromise"]; });
53147
53148/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Timer"]; });
53149
53150/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueService"]; });
53151
53152/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueCache"]; });
53153
53154/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ExpressionService"]; });
53155
53156/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellPositionUtils"]; });
53157
53158/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowPositionUtils"]; });
53159
53160/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderPositionUtils"]; });
53161
53162/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderNavigationService"]; });
53163
53164/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderNavigationDirection"]; });
53165
53166/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideStoreType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ServerSideStoreType"]; });
53167
53168/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PropertyKeys"]; });
53169
53170/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnApi"]; });
53171
53172/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BaseComponentWrapper"]; });
53173
53174/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Environment"]; });
53175
53176/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TooltipFeature"]; });
53177
53178/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChartType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ChartType"]; });
53179
53180/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LegendPosition", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LegendPosition"]; });
53181
53182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"]; });
53183
53184/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"]; });
53185
53186
53187
53188
53189var AllCommunityModules = [_ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"], _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModelModule"], _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvExportModule"]];
53190
53191
53192
53193
53194
53195
53196/***/ })
53197/******/ ]);
53198});
\No newline at end of file