UNPKG

3.44 MBJavaScriptView Raw
1/**
2 * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3 * @version v29.2.0
4 * @link https://www.ag-grid.com/
5 * @license MIT
6 */
7// @ag-grid-community/all-modules v29.2.0
8define("agGrid", [], function() { return /******/ (function(modules) { // webpackBootstrap
9/******/ // The module cache
10/******/ var installedModules = {};
11/******/
12/******/ // The require function
13/******/ function __webpack_require__(moduleId) {
14/******/
15/******/ // Check if module is in cache
16/******/ if(installedModules[moduleId]) {
17/******/ return installedModules[moduleId].exports;
18/******/ }
19/******/ // Create a new module (and put it into the cache)
20/******/ var module = installedModules[moduleId] = {
21/******/ i: moduleId,
22/******/ l: false,
23/******/ exports: {}
24/******/ };
25/******/
26/******/ // Execute the module function
27/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
28/******/
29/******/ // Flag the module as loaded
30/******/ module.l = true;
31/******/
32/******/ // Return the exports of the module
33/******/ return module.exports;
34/******/ }
35/******/
36/******/
37/******/ // expose the modules object (__webpack_modules__)
38/******/ __webpack_require__.m = modules;
39/******/
40/******/ // expose the module cache
41/******/ __webpack_require__.c = installedModules;
42/******/
43/******/ // define getter function for harmony exports
44/******/ __webpack_require__.d = function(exports, name, getter) {
45/******/ if(!__webpack_require__.o(exports, name)) {
46/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
47/******/ }
48/******/ };
49/******/
50/******/ // define __esModule on exports
51/******/ __webpack_require__.r = function(exports) {
52/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
53/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
54/******/ }
55/******/ Object.defineProperty(exports, '__esModule', { value: true });
56/******/ };
57/******/
58/******/ // create a fake namespace object
59/******/ // mode & 1: value is a module id, require it
60/******/ // mode & 2: merge all properties of value into the ns
61/******/ // mode & 4: return value when already ns object
62/******/ // mode & 8|1: behave like require
63/******/ __webpack_require__.t = function(value, mode) {
64/******/ if(mode & 1) value = __webpack_require__(value);
65/******/ if(mode & 8) return value;
66/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
67/******/ var ns = Object.create(null);
68/******/ __webpack_require__.r(ns);
69/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
70/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
71/******/ return ns;
72/******/ };
73/******/
74/******/ // getDefaultExport function for compatibility with non-harmony modules
75/******/ __webpack_require__.n = function(module) {
76/******/ var getter = module && module.__esModule ?
77/******/ function getDefault() { return module['default']; } :
78/******/ function getModuleExports() { return module; };
79/******/ __webpack_require__.d(getter, 'a', getter);
80/******/ return getter;
81/******/ };
82/******/
83/******/ // Object.prototype.hasOwnProperty.call
84/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
85/******/
86/******/ // __webpack_public_path__
87/******/ __webpack_require__.p = "";
88/******/
89/******/
90/******/ // Load entry module and return exports
91/******/ return __webpack_require__(__webpack_require__.s = 0);
92/******/ })
93/************************************************************************/
94/******/ ([
95/* 0 */
96/***/ (function(module, exports, __webpack_require__) {
97
98/**
99 * AUTOMATICALLY GENERATED FILE, DO NOT EDIT MANUALLY!
100 * Update this file by running `lerna run webpack-updater` in the monorepo root folder.
101 */
102var ClientSideRowModelModule = __webpack_require__(1);
103var GridCoreModule = __webpack_require__(3);
104var CsvExportModule = __webpack_require__(258);
105var InfiniteRowModelModule = __webpack_require__(269);
106var agGrid = __webpack_require__(275);
107Object.keys(agGrid).forEach(function(key) {
108 exports[key] = agGrid[key];
109});
110agGrid.ModuleRegistry.register(ClientSideRowModelModule.ClientSideRowModelModule);
111agGrid.ModuleRegistry.register(CsvExportModule.CsvExportModule);
112agGrid.ModuleRegistry.register(InfiniteRowModelModule.InfiniteRowModelModule);
113agGrid.ModuleRegistry.setIsBundled();
114__webpack_require__(276);
115__webpack_require__(280);
116__webpack_require__(282);
117__webpack_require__(284);
118__webpack_require__(286);
119__webpack_require__(288);
120__webpack_require__(290);
121__webpack_require__(292);
122__webpack_require__(294);
123__webpack_require__(296);
124__webpack_require__(298);
125__webpack_require__(300);
126
127/***/ }),
128/* 1 */
129/***/ (function(module, __webpack_exports__, __webpack_require__) {
130
131"use strict";
132__webpack_require__.r(__webpack_exports__);
133/* harmony import */ var _clientSideRowModelModule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
134/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return _clientSideRowModelModule__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"]; });
135
136
137
138
139/***/ }),
140/* 2 */
141/***/ (function(module, __webpack_exports__, __webpack_require__) {
142
143"use strict";
144__webpack_require__.r(__webpack_exports__);
145/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return ClientSideRowModelModule; });
146/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
147/* harmony import */ var _clientSideRowModel_clientSideRowModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(249);
148/* harmony import */ var _clientSideRowModel_filterStage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(251);
149/* harmony import */ var _clientSideRowModel_sortStage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(252);
150/* harmony import */ var _clientSideRowModel_flattenStage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(253);
151/* harmony import */ var _clientSideRowModel_sortService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(254);
152/* harmony import */ var _clientSideRowModel_filterService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(255);
153/* harmony import */ var _clientSideRowModel_immutableService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(256);
154/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(257);
155
156
157
158
159
160
161
162
163
164var ClientSideRowModelModule = {
165 version: _version__WEBPACK_IMPORTED_MODULE_8__["VERSION"],
166 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].ClientSideRowModelModule,
167 rowModel: 'clientSide',
168 beans: [_clientSideRowModel_clientSideRowModel__WEBPACK_IMPORTED_MODULE_1__["ClientSideRowModel"], _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"]],
169};
170
171
172/***/ }),
173/* 3 */
174/***/ (function(module, __webpack_exports__, __webpack_require__) {
175
176"use strict";
177__webpack_require__.r(__webpack_exports__);
178/* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _columns_columnFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
179/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return _columns_columnFactory__WEBPACK_IMPORTED_MODULE_0__["ColumnFactory"]; });
180
181/* harmony import */ var _columns_columnModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20);
182/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnModel", function() { return _columns_columnModel__WEBPACK_IMPORTED_MODULE_1__["ColumnModel"]; });
183
184/* harmony import */ var _columns_columnKeyCreator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6);
185/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return _columns_columnKeyCreator__WEBPACK_IMPORTED_MODULE_2__["ColumnKeyCreator"]; });
186
187/* harmony import */ var _columns_columnUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33);
188/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return _columns_columnUtils__WEBPACK_IMPORTED_MODULE_3__["ColumnUtils"]; });
189
190/* harmony import */ var _columns_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(34);
191/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return _columns_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_4__["DisplayedGroupCreator"]; });
192
193/* harmony import */ var _columns_groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
194/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return _columns_groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__["GroupInstanceIdCreator"]; });
195
196/* harmony import */ var _columns_autoGroupColService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(30);
197/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GROUP_AUTO_COLUMN_ID", function() { return _columns_autoGroupColService__WEBPACK_IMPORTED_MODULE_6__["GROUP_AUTO_COLUMN_ID"]; });
198
199/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(24);
200/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return _components_componentUtil__WEBPACK_IMPORTED_MODULE_7__["ComponentUtil"]; });
201
202/* harmony import */ var _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(35);
203/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgStackComponentsRegistry", function() { return _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_8__["AgStackComponentsRegistry"]; });
204
205/* harmony import */ var _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(36);
206/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_9__["UserComponentRegistry"]; });
207
208/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(105);
209/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_10__["UserComponentFactory"]; });
210
211/* harmony import */ var _components_colDefUtil__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(23);
212/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return _components_colDefUtil__WEBPACK_IMPORTED_MODULE_11__["ColDefUtil"]; });
213
214/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(17);
215/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return _context_beanStub__WEBPACK_IMPORTED_MODULE_12__["BeanStub"]; });
216
217/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(11);
218/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["Context"]; });
219
220/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["Autowired"]; });
221
222/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["PostConstruct"]; });
223
224/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["PreConstruct"]; });
225
226/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["Optional"]; });
227
228/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["Bean"]; });
229
230/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["Qualifier"]; });
231
232/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return _context_context__WEBPACK_IMPORTED_MODULE_13__["PreDestroy"]; });
233
234/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(57);
235/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_14__["QuerySelector"]; });
236
237/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_14__["RefSelector"]; });
238
239/* harmony import */ var _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(108);
240/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_15__["ExcelFactoryMode"]; });
241
242/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(100);
243/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_16__["DragAndDropService"]; });
244
245/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_16__["DragSourceType"]; });
246
247/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_16__["HorizontalDirection"]; });
248
249/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_16__["VerticalDirection"]; });
250
251/* harmony import */ var _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(109);
252/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_17__["DragService"]; });
253
254/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(9);
255/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return _entities_column__WEBPACK_IMPORTED_MODULE_18__["Column"]; });
256
257/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(21);
258/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return _entities_columnGroup__WEBPACK_IMPORTED_MODULE_19__["ColumnGroup"]; });
259
260/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(8);
261/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedColumnGroup", function() { return _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_20__["ProvidedColumnGroup"]; });
262
263/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(97);
264/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return _entities_rowNode__WEBPACK_IMPORTED_MODULE_21__["RowNode"]; });
265
266/* harmony import */ var _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(110);
267/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowHighlightPosition", function() { return _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_22__["RowHighlightPosition"]; });
268
269/* harmony import */ var _filter_filterManager__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(111);
270/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return _filter_filterManager__WEBPACK_IMPORTED_MODULE_23__["FilterManager"]; });
271
272/* harmony import */ var _filter_provided_providedFilter__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(62);
273/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return _filter_provided_providedFilter__WEBPACK_IMPORTED_MODULE_24__["ProvidedFilter"]; });
274
275/* harmony import */ var _filter_provided_simpleFilter__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(60);
276/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return _filter_provided_simpleFilter__WEBPACK_IMPORTED_MODULE_25__["SimpleFilter"]; });
277
278/* harmony import */ var _filter_provided_scalarFilter__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(74);
279/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return _filter_provided_scalarFilter__WEBPACK_IMPORTED_MODULE_26__["ScalarFilter"]; });
280
281/* harmony import */ var _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(78);
282/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_27__["NumberFilter"]; });
283
284/* harmony import */ var _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(83);
285/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_28__["TextFilter"]; });
286
287/* harmony import */ var _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(58);
288/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_29__["DateFilter"]; });
289
290/* harmony import */ var _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(84);
291/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_30__["TextFloatingFilter"]; });
292
293/* harmony import */ var _headerRendering_cells_floatingFilter_headerFilterCellComp__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(114);
294/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderFilterCellComp", function() { return _headerRendering_cells_floatingFilter_headerFilterCellComp__WEBPACK_IMPORTED_MODULE_31__["HeaderFilterCellComp"]; });
295
296/* harmony import */ var _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(107);
297/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_32__["FloatingFilterMapper"]; });
298
299/* harmony import */ var _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(116);
300/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_33__["GridBodyComp"]; });
301
302/* harmony import */ var _gridBodyComp_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(118);
303/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyCtrl", function() { return _gridBodyComp_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_34__["GridBodyCtrl"]; });
304
305/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowAnimationCssClasses", function() { return _gridBodyComp_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_34__["RowAnimationCssClasses"]; });
306
307/* harmony import */ var _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(141);
308/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_35__["ScrollVisibleService"]; });
309
310/* harmony import */ var _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(142);
311/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_36__["MouseEventService"]; });
312
313/* harmony import */ var _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(143);
314/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavigationService", function() { return _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_37__["NavigationService"]; });
315
316/* harmony import */ var _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(144);
317/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerComp", function() { return _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_38__["RowContainerComp"]; });
318
319/* harmony import */ var _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(122);
320/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerName", function() { return _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_39__["RowContainerName"]; });
321
322/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerCtrl", function() { return _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_39__["RowContainerCtrl"]; });
323
324/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerType", function() { return _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_39__["RowContainerType"]; });
325
326/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRowContainerTypeForName", function() { return _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_39__["getRowContainerTypeForName"]; });
327
328/* harmony import */ var _headerRendering_columnDrag_bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(148);
329/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return _headerRendering_columnDrag_bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_40__["BodyDropPivotTarget"]; });
330
331/* harmony import */ var _headerRendering_columnDrag_bodyDropTarget__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(149);
332/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return _headerRendering_columnDrag_bodyDropTarget__WEBPACK_IMPORTED_MODULE_41__["BodyDropTarget"]; });
333
334/* harmony import */ var _headerRendering_cells_cssClassApplier__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(151);
335/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return _headerRendering_cells_cssClassApplier__WEBPACK_IMPORTED_MODULE_42__["CssClassApplier"]; });
336
337/* harmony import */ var _headerRendering_rowContainer_headerRowContainerComp__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(152);
338/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowContainerComp", function() { return _headerRendering_rowContainer_headerRowContainerComp__WEBPACK_IMPORTED_MODULE_43__["HeaderRowContainerComp"]; });
339
340/* harmony import */ var _headerRendering_gridHeaderComp__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(168);
341/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridHeaderComp", function() { return _headerRendering_gridHeaderComp__WEBPACK_IMPORTED_MODULE_44__["GridHeaderComp"]; });
342
343/* harmony import */ var _headerRendering_gridHeaderCtrl__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(169);
344/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridHeaderCtrl", function() { return _headerRendering_gridHeaderCtrl__WEBPACK_IMPORTED_MODULE_45__["GridHeaderCtrl"]; });
345
346/* harmony import */ var _headerRendering_row_headerRowComp__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(153);
347/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return _headerRendering_row_headerRowComp__WEBPACK_IMPORTED_MODULE_46__["HeaderRowComp"]; });
348
349/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowType", function() { return _headerRendering_row_headerRowComp__WEBPACK_IMPORTED_MODULE_46__["HeaderRowType"]; });
350
351/* harmony import */ var _headerRendering_row_headerRowCtrl__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(157);
352/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowCtrl", function() { return _headerRendering_row_headerRowCtrl__WEBPACK_IMPORTED_MODULE_47__["HeaderRowCtrl"]; });
353
354/* harmony import */ var _headerRendering_cells_column_headerCellCtrl__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(162);
355/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderCellCtrl", function() { return _headerRendering_cells_column_headerCellCtrl__WEBPACK_IMPORTED_MODULE_48__["HeaderCellCtrl"]; });
356
357/* harmony import */ var _headerRendering_cells_column_sortIndicatorComp__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(87);
358/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortIndicatorComp", function() { return _headerRendering_cells_column_sortIndicatorComp__WEBPACK_IMPORTED_MODULE_49__["SortIndicatorComp"]; });
359
360/* harmony import */ var _headerRendering_cells_floatingFilter_headerFilterCellCtrl__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(158);
361/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderFilterCellCtrl", function() { return _headerRendering_cells_floatingFilter_headerFilterCellCtrl__WEBPACK_IMPORTED_MODULE_50__["HeaderFilterCellCtrl"]; });
362
363/* harmony import */ var _headerRendering_cells_columnGroup_headerGroupCellCtrl__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(165);
364/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupCellCtrl", function() { return _headerRendering_cells_columnGroup_headerGroupCellCtrl__WEBPACK_IMPORTED_MODULE_51__["HeaderGroupCellCtrl"]; });
365
366/* harmony import */ var _headerRendering_cells_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(159);
367/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AbstractHeaderCellCtrl", function() { return _headerRendering_cells_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_52__["AbstractHeaderCellCtrl"]; });
368
369/* harmony import */ var _headerRendering_rowContainer_headerRowContainerCtrl__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(156);
370/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowContainerCtrl", function() { return _headerRendering_rowContainer_headerRowContainerCtrl__WEBPACK_IMPORTED_MODULE_53__["HeaderRowContainerCtrl"]; });
371
372/* harmony import */ var _headerRendering_common_horizontalResizeService__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(171);
373/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return _headerRendering_common_horizontalResizeService__WEBPACK_IMPORTED_MODULE_54__["HorizontalResizeService"]; });
374
375/* harmony import */ var _headerRendering_columnDrag_moveColumnFeature__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(150);
376/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveColumnFeature", function() { return _headerRendering_columnDrag_moveColumnFeature__WEBPACK_IMPORTED_MODULE_55__["MoveColumnFeature"]; });
377
378/* harmony import */ var _headerRendering_cells_column_standardMenu__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(172);
379/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return _headerRendering_cells_column_standardMenu__WEBPACK_IMPORTED_MODULE_56__["StandardMenuFactory"]; });
380
381/* harmony import */ var _layout_tabbedLayout__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(173);
382/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return _layout_tabbedLayout__WEBPACK_IMPORTED_MODULE_57__["TabbedLayout"]; });
383
384/* harmony import */ var _misc_simpleHttpRequest__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(174);
385/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return _misc_simpleHttpRequest__WEBPACK_IMPORTED_MODULE_58__["simpleHttpRequest"]; });
386
387/* harmony import */ var _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(175);
388/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_59__["ResizeObserverService"]; });
389
390/* harmony import */ var _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(176);
391/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_60__["AnimationFrameService"]; });
392
393/* harmony import */ var _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(89);
394/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_61__["LargeTextCellEditor"]; });
395
396/* harmony import */ var _rendering_cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(147);
397/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return _rendering_cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_62__["PopupEditorWrapper"]; });
398
399/* harmony import */ var _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(91);
400/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_63__["SelectCellEditor"]; });
401
402/* harmony import */ var _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(92);
403/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_64__["TextCellEditor"]; });
404
405/* harmony import */ var _rendering_beans__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(132);
406/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Beans", function() { return _rendering_beans__WEBPACK_IMPORTED_MODULE_65__["Beans"]; });
407
408/* harmony import */ var _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(93);
409/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_66__["AnimateShowChangeCellRenderer"]; });
410
411/* harmony import */ var _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(94);
412/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_67__["AnimateSlideCellRenderer"]; });
413
414/* harmony import */ var _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(95);
415/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_68__["GroupCellRenderer"]; });
416
417/* harmony import */ var _rendering_cellRenderers_groupCellRendererCtrl__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(96);
418/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRendererCtrl", function() { return _rendering_cellRenderers_groupCellRendererCtrl__WEBPACK_IMPORTED_MODULE_69__["GroupCellRendererCtrl"]; });
419
420/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(160);
421/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_70__["SetLeftFeature"]; });
422
423/* harmony import */ var _rendering_features_positionableFeature__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(65);
424/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositionableFeature", function() { return _rendering_features_positionableFeature__WEBPACK_IMPORTED_MODULE_71__["PositionableFeature"]; });
425
426/* harmony import */ var _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(177);
427/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_72__["AutoWidthCalculator"]; });
428
429/* harmony import */ var _rendering_checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(98);
430/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return _rendering_checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_73__["CheckboxSelectionComponent"]; });
431
432/* harmony import */ var _rendering_cell_cellComp__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(146);
433/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return _rendering_cell_cellComp__WEBPACK_IMPORTED_MODULE_74__["CellComp"]; });
434
435/* harmony import */ var _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(125);
436/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellCtrl", function() { return _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_75__["CellCtrl"]; });
437
438/* harmony import */ var _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(124);
439/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowCtrl", function() { return _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_76__["RowCtrl"]; });
440
441/* harmony import */ var _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(178);
442/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_77__["RowRenderer"]; });
443
444/* harmony import */ var _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(180);
445/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_78__["ValueFormatterService"]; });
446
447/* harmony import */ var _rendering_cssClassManager__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(56);
448/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassManager", function() { return _rendering_cssClassManager__WEBPACK_IMPORTED_MODULE_79__["CssClassManager"]; });
449
450/* harmony import */ var _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(181);
451/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_80__["PinnedRowModel"]; });
452
453/* harmony import */ var _interfaces_serverSideTransaction__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(182);
454/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return _interfaces_serverSideTransaction__WEBPACK_IMPORTED_MODULE_81__["ServerSideTransactionResultStatus"]; });
455
456/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(183);
457/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return _utils_changedPath__WEBPACK_IMPORTED_MODULE_82__["ChangedPath"]; });
458
459/* harmony import */ var _rowNodeCache_rowNodeBlock__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(184);
460/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return _rowNodeCache_rowNodeBlock__WEBPACK_IMPORTED_MODULE_83__["RowNodeBlock"]; });
461
462/* harmony import */ var _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(185);
463/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_84__["RowNodeBlockLoader"]; });
464
465/* harmony import */ var _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(186);
466/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_85__["PaginationProxy"]; });
467
468/* harmony import */ var _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(113);
469/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_86__["ClientSideRowModelSteps"]; });
470
471/* harmony import */ var _styling_stylingService__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(187);
472/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return _styling_stylingService__WEBPACK_IMPORTED_MODULE_87__["StylingService"]; });
473
474/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(117);
475/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_88__["LayoutCssClasses"]; });
476
477/* harmony import */ var _widgets_agAbstractField__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(67);
478/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return _widgets_agAbstractField__WEBPACK_IMPORTED_MODULE_89__["AgAbstractField"]; });
479
480/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(72);
481/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_90__["AgCheckbox"]; });
482
483/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(71);
484/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_91__["AgRadioButton"]; });
485
486/* harmony import */ var _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(188);
487/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_92__["AgToggleButton"]; });
488
489/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(79);
490/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_93__["AgInputTextField"]; });
491
492/* harmony import */ var _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(189);
493/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_94__["AgInputTextArea"]; });
494
495/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(80);
496/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_95__["AgInputNumberField"]; });
497
498/* harmony import */ var _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(190);
499/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_96__["AgInputRange"]; });
500
501/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(66);
502/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return _widgets_agSelect__WEBPACK_IMPORTED_MODULE_97__["AgSelect"]; });
503
504/* harmony import */ var _widgets_agSlider__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(191);
505/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return _widgets_agSlider__WEBPACK_IMPORTED_MODULE_98__["AgSlider"]; });
506
507/* harmony import */ var _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(192);
508/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_99__["AgGroupComponent"]; });
509
510/* harmony import */ var _widgets_agMenuItemComponent__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(193);
511/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgMenuItemComponent", function() { return _widgets_agMenuItemComponent__WEBPACK_IMPORTED_MODULE_100__["AgMenuItemComponent"]; });
512
513/* harmony import */ var _widgets_agMenuList__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(194);
514/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgMenuList", function() { return _widgets_agMenuList__WEBPACK_IMPORTED_MODULE_101__["AgMenuList"]; });
515
516/* harmony import */ var _widgets_agMenuPanel__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(197);
517/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgMenuPanel", function() { return _widgets_agMenuPanel__WEBPACK_IMPORTED_MODULE_102__["AgMenuPanel"]; });
518
519/* harmony import */ var _widgets_agDialog__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(198);
520/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return _widgets_agDialog__WEBPACK_IMPORTED_MODULE_103__["AgDialog"]; });
521
522/* harmony import */ var _widgets_agPanel__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(199);
523/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return _widgets_agPanel__WEBPACK_IMPORTED_MODULE_104__["AgPanel"]; });
524
525/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(38);
526/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _widgets_component__WEBPACK_IMPORTED_MODULE_105__["Component"]; });
527
528/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(64);
529/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusFeature", function() { return _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_106__["ManagedFocusFeature"]; });
530
531/* harmony import */ var _widgets_tabGuardComp__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(195);
532/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabGuardComp", function() { return _widgets_tabGuardComp__WEBPACK_IMPORTED_MODULE_107__["TabGuardComp"]; });
533
534/* harmony import */ var _widgets_tabGuardCtrl__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(196);
535/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabGuardCtrl", function() { return _widgets_tabGuardCtrl__WEBPACK_IMPORTED_MODULE_108__["TabGuardCtrl"]; });
536
537/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabGuardClassNames", function() { return _widgets_tabGuardCtrl__WEBPACK_IMPORTED_MODULE_108__["TabGuardClassNames"]; });
538
539/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(90);
540/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_109__["PopupComponent"]; });
541
542/* harmony import */ var _widgets_popupService__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(200);
543/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return _widgets_popupService__WEBPACK_IMPORTED_MODULE_110__["PopupService"]; });
544
545/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(86);
546/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return _widgets_touchListener__WEBPACK_IMPORTED_MODULE_111__["TouchListener"]; });
547
548/* harmony import */ var _widgets_virtualList__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(202);
549/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return _widgets_virtualList__WEBPACK_IMPORTED_MODULE_112__["VirtualList"]; });
550
551/* harmony import */ var _widgets_agAbstractLabel__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(68);
552/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractLabel", function() { return _widgets_agAbstractLabel__WEBPACK_IMPORTED_MODULE_113__["AgAbstractLabel"]; });
553
554/* harmony import */ var _widgets_agPickerField__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(69);
555/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPickerField", function() { return _widgets_agPickerField__WEBPACK_IMPORTED_MODULE_114__["AgPickerField"]; });
556
557/* harmony import */ var _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(127);
558/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_115__["CellRangeType"]; });
559
560/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_115__["SelectionHandleType"]; });
561
562/* harmony import */ var _autoScrollService__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(121);
563/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoScrollService", function() { return _autoScrollService__WEBPACK_IMPORTED_MODULE_116__["AutoScrollService"]; });
564
565/* harmony import */ var _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(203);
566/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_117__["VanillaFrameworkOverrides"]; });
567
568/* harmony import */ var _cellNavigationService__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(204);
569/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return _cellNavigationService__WEBPACK_IMPORTED_MODULE_118__["CellNavigationService"]; });
570
571/* harmony import */ var _alignedGridsService__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(205);
572/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return _alignedGridsService__WEBPACK_IMPORTED_MODULE_119__["AlignedGridsService"]; });
573
574/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(48);
575/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return _constants_keyCode__WEBPACK_IMPORTED_MODULE_120__["KeyCode"]; });
576
577/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(206);
578/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _grid__WEBPACK_IMPORTED_MODULE_121__["Grid"]; });
579
580/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return _grid__WEBPACK_IMPORTED_MODULE_121__["GridCoreCreator"]; });
581
582/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(112);
583/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return _gridApi__WEBPACK_IMPORTED_MODULE_122__["GridApi"]; });
584
585/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(26);
586/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _eventKeys__WEBPACK_IMPORTED_MODULE_123__["Events"]; });
587
588/* harmony import */ var _focusService__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(201);
589/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusService", function() { return _focusService__WEBPACK_IMPORTED_MODULE_124__["FocusService"]; });
590
591/* harmony import */ var _gridOptionsService__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(242);
592/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridOptionsService", function() { return _gridOptionsService__WEBPACK_IMPORTED_MODULE_125__["GridOptionsService"]; });
593
594/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(10);
595/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return _eventService__WEBPACK_IMPORTED_MODULE_126__["EventService"]; });
596
597/* harmony import */ var _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(225);
598/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_127__["SelectableService"]; });
599
600/* harmony import */ var _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(235);
601/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_128__["RowNodeSorter"]; });
602
603/* harmony import */ var _ctrlsService__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(236);
604/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CtrlsService", function() { return _ctrlsService__WEBPACK_IMPORTED_MODULE_129__["CtrlsService"]; });
605
606/* harmony import */ var _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(213);
607/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_130__["GridComp"]; });
608
609/* harmony import */ var _gridComp_gridCtrl__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(214);
610/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCtrl", function() { return _gridComp_gridCtrl__WEBPACK_IMPORTED_MODULE_131__["GridCtrl"]; });
611
612/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(212);
613/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _logger__WEBPACK_IMPORTED_MODULE_132__["Logger"]; });
614
615/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return _logger__WEBPACK_IMPORTED_MODULE_132__["LoggerFactory"]; });
616
617/* harmony import */ var _sortController__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(215);
618/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return _sortController__WEBPACK_IMPORTED_MODULE_133__["SortController"]; });
619
620/* harmony import */ var _templateService__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(211);
621/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _templateService__WEBPACK_IMPORTED_MODULE_134__["TemplateService"]; });
622
623/* harmony import */ var _localeService__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(243);
624/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LocaleService", function() { return _localeService__WEBPACK_IMPORTED_MODULE_135__["LocaleService"]; });
625
626/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(39);
627/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _utils__WEBPACK_IMPORTED_MODULE_136__["_"]; });
628
629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _utils__WEBPACK_IMPORTED_MODULE_136__["NumberSequence"]; });
630
631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _utils__WEBPACK_IMPORTED_MODULE_136__["AgPromiseStatus"]; });
632
633/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _utils__WEBPACK_IMPORTED_MODULE_136__["AgPromise"]; });
634
635/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _utils__WEBPACK_IMPORTED_MODULE_136__["Timer"]; });
636
637/* harmony import */ var _valueService_valueService__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(209);
638/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return _valueService_valueService__WEBPACK_IMPORTED_MODULE_137__["ValueService"]; });
639
640/* harmony import */ var _valueService_valueCache__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(219);
641/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return _valueService_valueCache__WEBPACK_IMPORTED_MODULE_138__["ValueCache"]; });
642
643/* harmony import */ var _valueService_expressionService__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(210);
644/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return _valueService_expressionService__WEBPACK_IMPORTED_MODULE_139__["ExpressionService"]; });
645
646/* harmony import */ var _entities_cellPositionUtils__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(229);
647/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return _entities_cellPositionUtils__WEBPACK_IMPORTED_MODULE_140__["CellPositionUtils"]; });
648
649/* harmony import */ var _entities_rowPositionUtils__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(228);
650/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return _entities_rowPositionUtils__WEBPACK_IMPORTED_MODULE_141__["RowPositionUtils"]; });
651
652/* harmony import */ var _headerRendering_common_headerPosition__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(232);
653/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return _headerRendering_common_headerPosition__WEBPACK_IMPORTED_MODULE_142__["HeaderPositionUtils"]; });
654
655/* harmony import */ var _headerRendering_common_headerNavigationService__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(170);
656/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return _headerRendering_common_headerNavigationService__WEBPACK_IMPORTED_MODULE_143__["HeaderNavigationService"]; });
657
658/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return _headerRendering_common_headerNavigationService__WEBPACK_IMPORTED_MODULE_143__["HeaderNavigationDirection"]; });
659
660/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(27);
661/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return _propertyKeys__WEBPACK_IMPORTED_MODULE_144__["PropertyKeys"]; });
662
663/* harmony import */ var _columns_columnApi__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(208);
664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return _columns_columnApi__WEBPACK_IMPORTED_MODULE_145__["ColumnApi"]; });
665
666/* harmony import */ var _components_framework_frameworkComponentWrapper__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(245);
667/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return _components_framework_frameworkComponentWrapper__WEBPACK_IMPORTED_MODULE_146__["BaseComponentWrapper"]; });
668
669/* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(223);
670/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _environment__WEBPACK_IMPORTED_MODULE_147__["Environment"]; });
671
672/* harmony import */ var _widgets_customTooltipFeature__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(55);
673/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomTooltipFeature", function() { return _widgets_customTooltipFeature__WEBPACK_IMPORTED_MODULE_148__["CustomTooltipFeature"]; });
674
675/* harmony import */ var _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(246);
676/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_CHART_GROUPS", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_149__["DEFAULT_CHART_GROUPS"]; });
677
678/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOL_PANEL_ALLOW_LIST", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_149__["CHART_TOOL_PANEL_ALLOW_LIST"]; });
679
680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOLBAR_ALLOW_LIST", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_149__["CHART_TOOLBAR_ALLOW_LIST"]; });
681
682/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOL_PANEL_MENU_OPTIONS", function() { return _interfaces_iChartOptions__WEBPACK_IMPORTED_MODULE_149__["CHART_TOOL_PANEL_MENU_OPTIONS"]; });
683
684/* harmony import */ var _interfaces_iAgChartOptions__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(247);
685/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__FORCE_MODULE_DETECTION", function() { return _interfaces_iAgChartOptions__WEBPACK_IMPORTED_MODULE_150__["__FORCE_MODULE_DETECTION"]; });
686
687/* harmony import */ var _interfaces_iSparklineCellRendererParams__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(248);
688/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BarColumnLabelPlacement", function() { return _interfaces_iSparklineCellRendererParams__WEBPACK_IMPORTED_MODULE_151__["BarColumnLabelPlacement"]; });
689
690/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(14);
691/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return _modules_moduleNames__WEBPACK_IMPORTED_MODULE_152__["ModuleNames"]; });
692
693/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(15);
694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_153__["ModuleRegistry"]; });
695
696/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(25);
697/* empty/unused harmony star reexport *//**
698 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
699 * @version v29.2.0
700 * @link https://www.ag-grid.com/
701 * @license MIT
702 */
703var globalObj = typeof global === 'undefined' ? {} : global;
704globalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;
705globalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;
706globalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;
707globalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;
708globalObj.Node = typeof Node === 'undefined' ? {} : Node;
709globalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;
710// columns
711
712
713
714
715
716
717
718// components
719
720
721
722
723
724// context
725
726
727
728// excel
729
730// dragAndDrop
731
732
733// entities
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749// gridPanel
750
751
752
753
754
755// rowContainer
756
757
758// headerRendering
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776// layout
777
778// misc
779
780
781
782
783
784
785
786// rendering / cellRenderers
787
788
789
790
791
792// features
793
794
795// rendering
796
797
798
799
800
801
802
803
804// row models
805
806
807
808
809
810
811
812//styling
813
814
815// widgets
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842// range
843
844// root
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878// charts
879
880
881// sparklines
882
883
884
885// events
886
887
888/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)))
889
890/***/ }),
891/* 4 */
892/***/ (function(module, exports) {
893
894var g;
895
896// This works in non-strict mode
897g = (function() {
898 return this;
899})();
900
901try {
902 // This works if eval is allowed (see CSP)
903 g = g || new Function("return this")();
904} catch (e) {
905 // This works if the window reference is available
906 if (typeof window === "object") g = window;
907}
908
909// g can still be undefined, but nothing to do about it...
910// We return undefined, instead of nothing here, so it's
911// easier to handle this case. if(!global) { ...}
912
913module.exports = g;
914
915
916/***/ }),
917/* 5 */
918/***/ (function(module, __webpack_exports__, __webpack_require__) {
919
920"use strict";
921__webpack_require__.r(__webpack_exports__);
922/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return ColumnFactory; });
923/* harmony import */ var _columnKeyCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
924/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
925/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
926/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);
927/* harmony import */ var _entities_defaultColumnTypes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16);
928/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
929/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
930/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
931/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19);
932/**
933 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
934 * @version v29.2.0
935 * @link https://www.ag-grid.com/
936 * @license MIT
937 */
938var __extends = (undefined && undefined.__extends) || (function () {
939 var extendStatics = function (d, b) {
940 extendStatics = Object.setPrototypeOf ||
941 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
942 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
943 return extendStatics(d, b);
944 };
945 return function (d, b) {
946 extendStatics(d, b);
947 function __() { this.constructor = d; }
948 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
949 };
950})();
951var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
952 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
953 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
954 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;
955 return c > 3 && r && Object.defineProperty(target, key, r), r;
956};
957var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
958 return function (target, key) { decorator(target, key, paramIndex); }
959};
960
961
962
963
964
965
966
967
968
969// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups
970var ColumnFactory = /** @class */ (function (_super) {
971 __extends(ColumnFactory, _super);
972 function ColumnFactory() {
973 return _super !== null && _super.apply(this, arguments) || this;
974 }
975 ColumnFactory.prototype.setBeans = function (loggerFactory) {
976 this.logger = loggerFactory.create('ColumnFactory');
977 };
978 ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {
979 // column key creator dishes out unique column id's in a deterministic way,
980 // so if we have two grids (that could be master/slave) with same column definitions,
981 // then this ensures the two grids use identical id's.
982 var columnKeyCreator = new _columnKeyCreator__WEBPACK_IMPORTED_MODULE_0__["ColumnKeyCreator"]();
983 var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;
984 columnKeyCreator.addExistingKeys(existingColKeys);
985 // create am unbalanced tree that maps the provided definitions
986 var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);
987 var treeDept = this.findMaxDept(unbalancedTree, 0);
988 this.logger.log('Number of levels for grouped columns is ' + treeDept);
989 var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);
990 var deptFirstCallback = function (child, parent) {
991 if (child instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
992 child.setupExpandable();
993 }
994 // we set the original parents at the end, rather than when we go along, as balancing the tree
995 // adds extra levels into the tree. so we can only set parents when balancing is done.
996 child.setOriginalParent(parent);
997 };
998 this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);
999 return {
1000 columnTree: columnTree,
1001 treeDept: treeDept
1002 };
1003 };
1004 ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {
1005 var existingCols = [];
1006 var existingGroups = [];
1007 var existingColKeys = [];
1008 if (existingTree) {
1009 this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {
1010 if (item instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
1011 var group = item;
1012 existingGroups.push(group);
1013 }
1014 else {
1015 var col = item;
1016 existingColKeys.push(col.getId());
1017 existingCols.push(col);
1018 }
1019 });
1020 }
1021 return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };
1022 };
1023 ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {
1024 var _this = this;
1025 return autoGroupCols.map(function (col) { return _this.createAutoGroupTreeItem(gridBalancedTree, col); });
1026 };
1027 ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {
1028 var dept = this.findDepth(balancedColumnTree);
1029 // at the end, this will be the top of the tree item.
1030 var nextChild = column;
1031 for (var i = dept - 1; i >= 0; i--) {
1032 var autoGroup = new _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"](null, "FAKE_PATH_" + column.getId() + "}_" + i, true, i);
1033 this.createBean(autoGroup);
1034 autoGroup.setChildren([nextChild]);
1035 nextChild.setOriginalParent(autoGroup);
1036 nextChild = autoGroup;
1037 }
1038 // at this point, the nextChild is the top most item in the tree
1039 return nextChild;
1040 };
1041 ColumnFactory.prototype.findDepth = function (balancedColumnTree) {
1042 var dept = 0;
1043 var pointer = balancedColumnTree;
1044 while (pointer && pointer[0] && pointer[0] instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
1045 dept++;
1046 pointer = pointer[0].getChildren();
1047 }
1048 return dept;
1049 };
1050 ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {
1051 var result = [];
1052 // go through each child, for groups, recurse a level deeper,
1053 // for columns we need to pad
1054 for (var i = 0; i < unbalancedTree.length; i++) {
1055 var child = unbalancedTree[i];
1056 if (child instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
1057 // child is a group, all we do is go to the next level of recursion
1058 var originalGroup = child;
1059 var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);
1060 originalGroup.setChildren(newChildren);
1061 result.push(originalGroup);
1062 }
1063 else {
1064 // child is a column - so here we add in the padded column groups if needed
1065 var firstPaddedGroup = void 0;
1066 var currentPaddedGroup = void 0;
1067 // this for loop will NOT run any loops if no padded column groups are needed
1068 for (var j = columnDept - 1; j >= currentDept; j--) {
1069 var newColId = columnKeyCreator.getUniqueKey(null, null);
1070 var colGroupDefMerged = this.createMergedColGroupDef(null);
1071 var paddedGroup = new _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"](colGroupDefMerged, newColId, true, currentDept);
1072 this.createBean(paddedGroup);
1073 if (currentPaddedGroup) {
1074 currentPaddedGroup.setChildren([paddedGroup]);
1075 }
1076 currentPaddedGroup = paddedGroup;
1077 if (!firstPaddedGroup) {
1078 firstPaddedGroup = currentPaddedGroup;
1079 }
1080 }
1081 // likewise this if statement will not run if no padded groups
1082 if (firstPaddedGroup && currentPaddedGroup) {
1083 result.push(firstPaddedGroup);
1084 var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]; });
1085 if (hasGroups) {
1086 currentPaddedGroup.setChildren([child]);
1087 continue;
1088 }
1089 else {
1090 currentPaddedGroup.setChildren(unbalancedTree);
1091 break;
1092 }
1093 }
1094 result.push(child);
1095 }
1096 }
1097 return result;
1098 };
1099 ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {
1100 var maxDeptThisLevel = dept;
1101 for (var i = 0; i < treeChildren.length; i++) {
1102 var abstractColumn = treeChildren[i];
1103 if (abstractColumn instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
1104 var originalGroup = abstractColumn;
1105 var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);
1106 if (maxDeptThisLevel < newDept) {
1107 maxDeptThisLevel = newDept;
1108 }
1109 }
1110 }
1111 return maxDeptThisLevel;
1112 };
1113 ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {
1114 var _this = this;
1115 return (defs || []).map(function (def) {
1116 if (_this.isColumnGroup(def)) {
1117 return _this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);
1118 }
1119 else {
1120 return _this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);
1121 }
1122 });
1123 };
1124 ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {
1125 var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);
1126 var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);
1127 var existingGroup = this.findExistingGroup(colGroupDef, existingGroups);
1128 var providedGroup;
1129 if (existingGroup) {
1130 providedGroup = existingGroup;
1131 providedGroup.reset(colGroupDefMerged, level);
1132 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(existingGroups, existingGroup);
1133 }
1134 else {
1135 providedGroup = new _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"](colGroupDefMerged, groupId, false, level);
1136 this.createBean(providedGroup);
1137 }
1138 var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);
1139 providedGroup.setChildren(children);
1140 return providedGroup;
1141 };
1142 ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {
1143 var colGroupDefMerged = {};
1144 Object.assign(colGroupDefMerged, this.gridOptionsService.get('defaultColGroupDef'));
1145 Object.assign(colGroupDefMerged, colGroupDef);
1146 return colGroupDefMerged;
1147 };
1148 ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {
1149 var colDefMerged = this.mergeColDefs(colDef);
1150 // see if column already exists
1151 var column = this.findExistingColumn(colDef, existingColsCopy);
1152 // make sure we remove, so if user provided duplicate id, then we don't have more than
1153 // one column instance for colDef with common id
1154 if (existingColsCopy && column) {
1155 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(existingColsCopy, column);
1156 }
1157 if (!column) {
1158 // no existing column, need to create one
1159 var colId = columnKeyCreator.getUniqueKey(colDefMerged.colId, colDefMerged.field);
1160 column = new _entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"](colDefMerged, colDef, colId, primaryColumns);
1161 this.context.createBean(column);
1162 }
1163 else {
1164 column.setColDef(colDefMerged, colDef);
1165 this.applyColumnState(column, colDefMerged);
1166 }
1167 return column;
1168 };
1169 ColumnFactory.prototype.applyColumnState = function (column, colDef) {
1170 // flex
1171 var flex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["attrToNumber"])(colDef.flex);
1172 if (flex !== undefined) {
1173 column.setFlex(flex);
1174 }
1175 // width - we only set width if column is not flexing
1176 var noFlexThisCol = column.getFlex() <= 0;
1177 if (noFlexThisCol) {
1178 // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)
1179 var width = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["attrToNumber"])(colDef.width);
1180 if (width != null) {
1181 column.setActualWidth(width);
1182 }
1183 else {
1184 // otherwise set the width again, in case min or max width has changed,
1185 // and width needs to be adjusted.
1186 var widthBeforeUpdate = column.getActualWidth();
1187 column.setActualWidth(widthBeforeUpdate);
1188 }
1189 }
1190 // sort - anything but undefined will set sort, thus null or empty string will clear the sort
1191 if (colDef.sort !== undefined) {
1192 if (colDef.sort == 'asc' || colDef.sort == 'desc') {
1193 column.setSort(colDef.sort);
1194 }
1195 else {
1196 column.setSort(undefined);
1197 }
1198 }
1199 // sorted at - anything but undefined, thus null will clear the sortIndex
1200 var sortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["attrToNumber"])(colDef.sortIndex);
1201 if (sortIndex !== undefined) {
1202 column.setSortIndex(sortIndex);
1203 }
1204 // hide - anything but undefined, thus null will clear the hide
1205 var hide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["attrToBoolean"])(colDef.hide);
1206 if (hide !== undefined) {
1207 column.setVisible(!hide);
1208 }
1209 // pinned - anything but undefined, thus null or empty string will remove pinned
1210 if (colDef.pinned !== undefined) {
1211 column.setPinned(colDef.pinned);
1212 }
1213 };
1214 ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {
1215 return (existingColsCopy || []).find(function (existingCol) {
1216 var existingColDef = existingCol.getUserProvidedColDef();
1217 if (!existingColDef) {
1218 return false;
1219 }
1220 var newHasId = newColDef.colId != null;
1221 var newHasField = newColDef.field != null;
1222 if (newHasId) {
1223 return existingCol.getId() === newColDef.colId;
1224 }
1225 if (newHasField) {
1226 return existingColDef.field === newColDef.field;
1227 }
1228 // if no id or field present, then try object equivalence.
1229 if (existingColDef === newColDef) {
1230 return true;
1231 }
1232 return false;
1233 });
1234 };
1235 ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {
1236 return existingGroups.find(function (existingGroup) {
1237 var existingDef = existingGroup.getColGroupDef();
1238 if (!existingDef) {
1239 return false;
1240 }
1241 var newHasId = newGroupDef.groupId != null;
1242 if (newHasId) {
1243 return existingGroup.getId() === newGroupDef.groupId;
1244 }
1245 return false;
1246 });
1247 };
1248 ColumnFactory.prototype.mergeColDefs = function (colDef) {
1249 // start with empty merged definition
1250 var colDefMerged = {};
1251 // merge properties from default column definitions
1252 var defaultColDef = this.gridOptionsService.get('defaultColDef');
1253 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["mergeDeep"])(colDefMerged, defaultColDef, false, true);
1254 // merge properties from column type properties
1255 var columnType = colDef.type;
1256 if (!columnType) {
1257 columnType = defaultColDef && defaultColDef.type;
1258 }
1259 // if type of both colDef and defaultColDef, then colDef gets preference
1260 if (columnType) {
1261 this.assignColumnTypes(columnType, colDefMerged);
1262 }
1263 // merge properties from column definitions
1264 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["mergeDeep"])(colDefMerged, colDef, false, true);
1265 var autoGroupColDef = this.gridOptionsService.get('autoGroupColumnDef');
1266 var isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();
1267 if (colDef.rowGroup && autoGroupColDef && isSortingCoupled) {
1268 // override the sort for row group columns where the autoGroupColDef defines these values.
1269 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["mergeDeep"])(colDefMerged, { sort: autoGroupColDef.sort, initialSort: autoGroupColDef.initialSort }, false, true);
1270 }
1271 return colDefMerged;
1272 };
1273 ColumnFactory.prototype.assignColumnTypes = function (type, colDefMerged) {
1274 var typeKeys = [];
1275 if (type instanceof Array) {
1276 var invalidArray = type.some(function (a) { return typeof a !== 'string'; });
1277 if (invalidArray) {
1278 console.warn("AG Grid: if colDef.type is supplied an array it should be of type 'string[]'");
1279 }
1280 else {
1281 typeKeys = type;
1282 }
1283 }
1284 else if (typeof type === 'string') {
1285 typeKeys = type.split(',');
1286 }
1287 else {
1288 console.warn("AG Grid: colDef.type should be of type 'string' | 'string[]'");
1289 return;
1290 }
1291 // merge user defined with default column types
1292 var allColumnTypes = Object.assign({}, _entities_defaultColumnTypes__WEBPACK_IMPORTED_MODULE_4__["DefaultColumnTypes"]);
1293 var userTypes = this.gridOptionsService.get('columnTypes') || {};
1294 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["iterateObject"])(userTypes, function (key, value) {
1295 if (key in allColumnTypes) {
1296 console.warn("AG Grid: the column type '" + key + "' is a default column type and cannot be overridden.");
1297 }
1298 else {
1299 allColumnTypes[key] = value;
1300 }
1301 });
1302 typeKeys.forEach(function (t) {
1303 var typeColDef = allColumnTypes[t.trim()];
1304 if (typeColDef) {
1305 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["mergeDeep"])(colDefMerged, typeColDef, false, true);
1306 }
1307 else {
1308 console.warn("AG Grid: colDef.type '" + t + "' does not correspond to defined gridOptions.columnTypes");
1309 }
1310 });
1311 };
1312 // if object has children, we assume it's a group
1313 ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {
1314 return abstractColDef.children !== undefined;
1315 };
1316 __decorate([
1317 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnUtils')
1318 ], ColumnFactory.prototype, "columnUtils", void 0);
1319 __decorate([
1320 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Qualifier"])('loggerFactory'))
1321 ], ColumnFactory.prototype, "setBeans", null);
1322 ColumnFactory = __decorate([
1323 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Bean"])('columnFactory')
1324 ], ColumnFactory);
1325 return ColumnFactory;
1326}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
1327
1328
1329
1330/***/ }),
1331/* 6 */
1332/***/ (function(module, __webpack_exports__, __webpack_require__) {
1333
1334"use strict";
1335__webpack_require__.r(__webpack_exports__);
1336/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return ColumnKeyCreator; });
1337/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
1338/**
1339 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
1340 * @version v29.2.0
1341 * @link https://www.ag-grid.com/
1342 * @license MIT
1343 */
1344// class returns a unique id to use for the column. it checks the existing columns, and if the requested
1345// id is already taken, it will start appending numbers until it gets a unique id.
1346// eg, if the col field is 'name', it will try ids: {name, name_1, name_2...}
1347// if no field or id provided in the col, it will try the ids of natural numbers
1348
1349var ColumnKeyCreator = /** @class */ (function () {
1350 function ColumnKeyCreator() {
1351 this.existingKeys = {};
1352 }
1353 ColumnKeyCreator.prototype.addExistingKeys = function (keys) {
1354 for (var i = 0; i < keys.length; i++) {
1355 this.existingKeys[keys[i]] = true;
1356 }
1357 };
1358 ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {
1359 // in case user passed in number for colId, convert to string
1360 colId = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["toStringOrNull"])(colId);
1361 var count = 0;
1362 while (true) {
1363 var idToTry = void 0;
1364 if (colId) {
1365 idToTry = colId;
1366 if (count !== 0) {
1367 idToTry += '_' + count;
1368 }
1369 }
1370 else if (colField) {
1371 idToTry = colField;
1372 if (count !== 0) {
1373 idToTry += '_' + count;
1374 }
1375 }
1376 else {
1377 idToTry = '' + count;
1378 }
1379 if (!this.existingKeys[idToTry]) {
1380 this.existingKeys[idToTry] = true;
1381 return idToTry;
1382 }
1383 count++;
1384 }
1385 };
1386 return ColumnKeyCreator;
1387}());
1388
1389
1390
1391/***/ }),
1392/* 7 */
1393/***/ (function(module, __webpack_exports__, __webpack_require__) {
1394
1395"use strict";
1396__webpack_require__.r(__webpack_exports__);
1397/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "makeNull", function() { return makeNull; });
1398/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exists", function() { return exists; });
1399/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missing", function() { return missing; });
1400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingOrEmpty", function() { return missingOrEmpty; });
1401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toStringOrNull", function() { return toStringOrNull; });
1402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToNumber", function() { return attrToNumber; });
1403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToBoolean", function() { return attrToBoolean; });
1404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attrToString", function() { return attrToString; });
1405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "referenceCompare", function() { return referenceCompare; });
1406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "jsonEquals", function() { return jsonEquals; });
1407/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultComparator", function() { return defaultComparator; });
1408/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "values", function() { return values; });
1409/**
1410 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
1411 * @version v29.2.0
1412 * @link https://www.ag-grid.com/
1413 * @license MIT
1414 */
1415/**
1416 * If value is undefined, null or blank, returns null, otherwise returns the value
1417 * @param {T} value
1418 * @returns {T | null}
1419 */
1420function makeNull(value) {
1421 if (value == null || value === '') {
1422 return null;
1423 }
1424 return value;
1425}
1426function exists(value, allowEmptyString) {
1427 if (allowEmptyString === void 0) { allowEmptyString = false; }
1428 return value != null && (value !== '' || allowEmptyString);
1429}
1430function missing(value) {
1431 return !exists(value);
1432}
1433function missingOrEmpty(value) {
1434 return value == null || value.length === 0;
1435}
1436function toStringOrNull(value) {
1437 return value != null && typeof value.toString === 'function' ? value.toString() : null;
1438}
1439// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1440function attrToNumber(value) {
1441 if (value === undefined) {
1442 // undefined or empty means ignore the value
1443 return;
1444 }
1445 if (value === null || value === '') {
1446 // null or blank means clear
1447 return null;
1448 }
1449 if (typeof value === 'number') {
1450 return isNaN(value) ? undefined : value;
1451 }
1452 var valueParsed = parseInt(value, 10);
1453 return isNaN(valueParsed) ? undefined : valueParsed;
1454}
1455// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1456function attrToBoolean(value) {
1457 if (value === undefined) {
1458 // undefined or empty means ignore the value
1459 return;
1460 }
1461 if (value === null || value === '') {
1462 // null means clear
1463 return false;
1464 }
1465 if (typeof value === 'boolean') {
1466 // if simple boolean, return the boolean
1467 return value;
1468 }
1469 // if equal to the string 'true' (ignoring case) then return true
1470 return (/true/i).test(value);
1471}
1472// for parsing html attributes, where we want empty strings and missing attributes to be undefined
1473function attrToString(value) {
1474 if (value == null || value === '') {
1475 return;
1476 }
1477 return value;
1478}
1479/** @deprecated */
1480function referenceCompare(left, right) {
1481 if (left == null && right == null) {
1482 return true;
1483 }
1484 if (left == null && right != null) {
1485 return false;
1486 }
1487 if (left != null && right == null) {
1488 return false;
1489 }
1490 return left === right;
1491}
1492function jsonEquals(val1, val2) {
1493 var val1Json = val1 ? JSON.stringify(val1) : null;
1494 var val2Json = val2 ? JSON.stringify(val2) : null;
1495 return val1Json === val2Json;
1496}
1497function defaultComparator(valueA, valueB, accentedCompare) {
1498 if (accentedCompare === void 0) { accentedCompare = false; }
1499 var valueAMissing = valueA == null;
1500 var valueBMissing = valueB == null;
1501 // this is for aggregations sum and avg, where the result can be a number that is wrapped.
1502 // if we didn't do this, then the toString() value would be used, which would result in
1503 // the strings getting used instead of the numbers.
1504 if (valueA && valueA.toNumber) {
1505 valueA = valueA.toNumber();
1506 }
1507 if (valueB && valueB.toNumber) {
1508 valueB = valueB.toNumber();
1509 }
1510 if (valueAMissing && valueBMissing) {
1511 return 0;
1512 }
1513 if (valueAMissing) {
1514 return -1;
1515 }
1516 if (valueBMissing) {
1517 return 1;
1518 }
1519 function doQuickCompare(a, b) {
1520 return (a > b ? 1 : (a < b ? -1 : 0));
1521 }
1522 if (typeof valueA !== 'string') {
1523 return doQuickCompare(valueA, valueB);
1524 }
1525 if (!accentedCompare) {
1526 return doQuickCompare(valueA, valueB);
1527 }
1528 try {
1529 // using local compare also allows chinese comparisons
1530 return valueA.localeCompare(valueB);
1531 }
1532 catch (e) {
1533 // if something wrong with localeCompare, eg not supported
1534 // by browser, then just continue with the quick one
1535 return doQuickCompare(valueA, valueB);
1536 }
1537}
1538function values(object) {
1539 if (object instanceof Set || object instanceof Map) {
1540 var arr_1 = [];
1541 object.forEach(function (value) { return arr_1.push(value); });
1542 return arr_1;
1543 }
1544 return Object.values(object);
1545}
1546
1547
1548/***/ }),
1549/* 8 */
1550/***/ (function(module, __webpack_exports__, __webpack_require__) {
1551
1552"use strict";
1553__webpack_require__.r(__webpack_exports__);
1554/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProvidedColumnGroup", function() { return ProvidedColumnGroup; });
1555/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
1556/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
1557/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
1558/**
1559 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
1560 * @version v29.2.0
1561 * @link https://www.ag-grid.com/
1562 * @license MIT
1563 */
1564var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1565 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1566 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1567 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;
1568 return c > 3 && r && Object.defineProperty(target, key, r), r;
1569};
1570
1571
1572
1573var ProvidedColumnGroup = /** @class */ (function () {
1574 function ProvidedColumnGroup(colGroupDef, groupId, padding, level) {
1575 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_1__["EventService"]();
1576 this.expandable = false;
1577 // used by React (and possibly other frameworks) as key for rendering. also used to
1578 // identify old vs new columns for destroying cols when no longer used.
1579 this.instanceId = Object(_column__WEBPACK_IMPORTED_MODULE_0__["getNextColInstanceId"])();
1580 this.expandableListenerRemoveCallback = null;
1581 this.colGroupDef = colGroupDef;
1582 this.groupId = groupId;
1583 this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;
1584 this.padding = padding;
1585 this.level = level;
1586 }
1587 ProvidedColumnGroup.prototype.destroy = function () {
1588 if (this.expandableListenerRemoveCallback) {
1589 this.reset(null, undefined);
1590 }
1591 };
1592 ProvidedColumnGroup.prototype.reset = function (colGroupDef, level) {
1593 this.colGroupDef = colGroupDef;
1594 this.level = level;
1595 this.originalParent = null;
1596 if (this.expandableListenerRemoveCallback) {
1597 this.expandableListenerRemoveCallback();
1598 }
1599 // we use ! below, as we want to set the object back to the
1600 // way it was when it was first created
1601 this.children = undefined;
1602 this.expandable = undefined;
1603 };
1604 ProvidedColumnGroup.prototype.getInstanceId = function () {
1605 return this.instanceId;
1606 };
1607 ProvidedColumnGroup.prototype.setOriginalParent = function (originalParent) {
1608 this.originalParent = originalParent;
1609 };
1610 ProvidedColumnGroup.prototype.getOriginalParent = function () {
1611 return this.originalParent;
1612 };
1613 ProvidedColumnGroup.prototype.getLevel = function () {
1614 return this.level;
1615 };
1616 ProvidedColumnGroup.prototype.isVisible = function () {
1617 // return true if at least one child is visible
1618 if (this.children) {
1619 return this.children.some(function (child) { return child.isVisible(); });
1620 }
1621 return false;
1622 };
1623 ProvidedColumnGroup.prototype.isPadding = function () {
1624 return this.padding;
1625 };
1626 ProvidedColumnGroup.prototype.setExpanded = function (expanded) {
1627 this.expanded = expanded === undefined ? false : expanded;
1628 var event = {
1629 type: ProvidedColumnGroup.EVENT_EXPANDED_CHANGED
1630 };
1631 this.localEventService.dispatchEvent(event);
1632 };
1633 ProvidedColumnGroup.prototype.isExpandable = function () {
1634 return this.expandable;
1635 };
1636 ProvidedColumnGroup.prototype.isExpanded = function () {
1637 return this.expanded;
1638 };
1639 ProvidedColumnGroup.prototype.getGroupId = function () {
1640 return this.groupId;
1641 };
1642 ProvidedColumnGroup.prototype.getId = function () {
1643 return this.getGroupId();
1644 };
1645 ProvidedColumnGroup.prototype.setChildren = function (children) {
1646 this.children = children;
1647 };
1648 ProvidedColumnGroup.prototype.getChildren = function () {
1649 return this.children;
1650 };
1651 ProvidedColumnGroup.prototype.getColGroupDef = function () {
1652 return this.colGroupDef;
1653 };
1654 ProvidedColumnGroup.prototype.getLeafColumns = function () {
1655 var result = [];
1656 this.addLeafColumns(result);
1657 return result;
1658 };
1659 ProvidedColumnGroup.prototype.addLeafColumns = function (leafColumns) {
1660 if (!this.children) {
1661 return;
1662 }
1663 this.children.forEach(function (child) {
1664 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
1665 leafColumns.push(child);
1666 }
1667 else if (child instanceof ProvidedColumnGroup) {
1668 child.addLeafColumns(leafColumns);
1669 }
1670 });
1671 };
1672 ProvidedColumnGroup.prototype.getColumnGroupShow = function () {
1673 var colGroupDef = this.colGroupDef;
1674 if (!colGroupDef) {
1675 return;
1676 }
1677 return colGroupDef.columnGroupShow;
1678 };
1679 // need to check that this group has at least one col showing when both expanded and contracted.
1680 // if not, then we don't allow expanding and contracting on this group
1681 ProvidedColumnGroup.prototype.setupExpandable = function () {
1682 var _this = this;
1683 this.setExpandable();
1684 if (this.expandableListenerRemoveCallback) {
1685 this.expandableListenerRemoveCallback();
1686 }
1687 var listener = this.onColumnVisibilityChanged.bind(this);
1688 this.getLeafColumns().forEach(function (col) { return col.addEventListener('visibleChanged', listener); });
1689 this.expandableListenerRemoveCallback = function () {
1690 _this.getLeafColumns().forEach(function (col) { return col.removeEventListener('visibleChanged', listener); });
1691 _this.expandableListenerRemoveCallback = null;
1692 };
1693 };
1694 ProvidedColumnGroup.prototype.setExpandable = function () {
1695 if (this.isPadding()) {
1696 return;
1697 }
1698 // want to make sure the group doesn't disappear when it's open
1699 var atLeastOneShowingWhenOpen = false;
1700 // want to make sure the group doesn't disappear when it's closed
1701 var atLeastOneShowingWhenClosed = false;
1702 // want to make sure the group has something to show / hide
1703 var atLeastOneChangeable = false;
1704 var children = this.findChildrenRemovingPadding();
1705 for (var i = 0, j = children.length; i < j; i++) {
1706 var abstractColumn = children[i];
1707 if (!abstractColumn.isVisible()) {
1708 continue;
1709 }
1710 // if the abstractColumn is a grid generated group, there will be no colDef
1711 var headerGroupShow = abstractColumn.getColumnGroupShow();
1712 if (headerGroupShow === 'open') {
1713 atLeastOneShowingWhenOpen = true;
1714 atLeastOneChangeable = true;
1715 }
1716 else if (headerGroupShow === 'closed') {
1717 atLeastOneShowingWhenClosed = true;
1718 atLeastOneChangeable = true;
1719 }
1720 else {
1721 atLeastOneShowingWhenOpen = true;
1722 atLeastOneShowingWhenClosed = true;
1723 }
1724 }
1725 var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;
1726 if (this.expandable !== expandable) {
1727 this.expandable = expandable;
1728 var event_1 = {
1729 type: ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED
1730 };
1731 this.localEventService.dispatchEvent(event_1);
1732 }
1733 };
1734 ProvidedColumnGroup.prototype.findChildrenRemovingPadding = function () {
1735 var res = [];
1736 var process = function (items) {
1737 items.forEach(function (item) {
1738 // if padding, we add this children instead of the padding
1739 var skipBecausePadding = item instanceof ProvidedColumnGroup && item.isPadding();
1740 if (skipBecausePadding) {
1741 process(item.children);
1742 }
1743 else {
1744 res.push(item);
1745 }
1746 });
1747 };
1748 process(this.children);
1749 return res;
1750 };
1751 ProvidedColumnGroup.prototype.onColumnVisibilityChanged = function () {
1752 this.setExpandable();
1753 };
1754 ProvidedColumnGroup.prototype.addEventListener = function (eventType, listener) {
1755 this.localEventService.addEventListener(eventType, listener);
1756 };
1757 ProvidedColumnGroup.prototype.removeEventListener = function (eventType, listener) {
1758 this.localEventService.removeEventListener(eventType, listener);
1759 };
1760 ProvidedColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';
1761 ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';
1762 __decorate([
1763 _context_context__WEBPACK_IMPORTED_MODULE_2__["PreDestroy"]
1764 ], ProvidedColumnGroup.prototype, "destroy", null);
1765 return ProvidedColumnGroup;
1766}());
1767
1768
1769
1770/***/ }),
1771/* 9 */
1772/***/ (function(module, __webpack_exports__, __webpack_require__) {
1773
1774"use strict";
1775__webpack_require__.r(__webpack_exports__);
1776/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNextColInstanceId", function() { return getNextColInstanceId; });
1777/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return Column; });
1778/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
1779/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
1780/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14);
1781/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15);
1782/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
1783/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
1784/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
1785/**
1786 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
1787 * @version v29.2.0
1788 * @link https://www.ag-grid.com/
1789 * @license MIT
1790 */
1791var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
1792 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1793 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1794 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;
1795 return c > 3 && r && Object.defineProperty(target, key, r), r;
1796};
1797
1798
1799
1800
1801
1802
1803
1804var instanceIdSequence = 0;
1805function getNextColInstanceId() {
1806 return instanceIdSequence++;
1807}
1808// Wrapper around a user provide column definition. The grid treats the column definition as ready only.
1809// This class contains all the runtime information about a column, plus some logic (the definition has no logic).
1810// This class implements both interfaces ColumnGroupChild and ProvidedColumnGroupChild as the class can
1811// appear as a child of either the original tree or the displayed tree. However the relevant group classes
1812// for each type only implements one, as each group can only appear in it's associated tree (eg ProvidedColumnGroup
1813// can only appear in OriginalColumn tree).
1814var Column = /** @class */ (function () {
1815 function Column(colDef, userProvidedColDef, colId, primary) {
1816 // used by React (and possibly other frameworks) as key for rendering. also used to
1817 // identify old vs new columns for destroying cols when no longer used.
1818 this.instanceId = getNextColInstanceId();
1819 // The measured height of this column's header when autoHeaderHeight is enabled
1820 this.autoHeaderHeight = null;
1821 this.moving = false;
1822 this.menuVisible = false;
1823 this.filterActive = false;
1824 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
1825 this.rowGroupActive = false;
1826 this.pivotActive = false;
1827 this.aggregationActive = false;
1828 this.colDef = colDef;
1829 this.userProvidedColDef = userProvidedColDef;
1830 this.colId = colId;
1831 this.primary = primary;
1832 this.setState(colDef);
1833 }
1834 Column.prototype.getInstanceId = function () {
1835 return this.instanceId;
1836 };
1837 Column.prototype.setState = function (colDef) {
1838 // sort
1839 if (colDef.sort !== undefined) {
1840 if (colDef.sort === 'asc' || colDef.sort === 'desc') {
1841 this.sort = colDef.sort;
1842 }
1843 }
1844 else {
1845 if (colDef.initialSort === 'asc' || colDef.initialSort === 'desc') {
1846 this.sort = colDef.initialSort;
1847 }
1848 }
1849 // sortIndex
1850 var sortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToNumber"])(colDef.sortIndex);
1851 var initialSortIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToNumber"])(colDef.initialSortIndex);
1852 if (sortIndex !== undefined) {
1853 if (sortIndex !== null) {
1854 this.sortIndex = sortIndex;
1855 }
1856 }
1857 else {
1858 if (initialSortIndex !== null) {
1859 this.sortIndex = initialSortIndex;
1860 }
1861 }
1862 // hide
1863 var hide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToBoolean"])(colDef.hide);
1864 var initialHide = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToBoolean"])(colDef.initialHide);
1865 if (hide !== undefined) {
1866 this.visible = !hide;
1867 }
1868 else {
1869 this.visible = !initialHide;
1870 }
1871 // pinned
1872 if (colDef.pinned !== undefined) {
1873 this.setPinned(colDef.pinned);
1874 }
1875 else {
1876 this.setPinned(colDef.initialPinned);
1877 }
1878 // flex
1879 var flex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToNumber"])(colDef.flex);
1880 var initialFlex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToNumber"])(colDef.initialFlex);
1881 if (flex !== undefined) {
1882 this.flex = flex;
1883 }
1884 else if (initialFlex !== undefined) {
1885 this.flex = initialFlex;
1886 }
1887 };
1888 // gets called when user provides an alternative colDef, eg
1889 Column.prototype.setColDef = function (colDef, userProvidedColDef) {
1890 this.colDef = colDef;
1891 this.userProvidedColDef = userProvidedColDef;
1892 this.initMinAndMaxWidths();
1893 this.initDotNotation();
1894 this.eventService.dispatchEvent(this.createColumnEvent('colDefChanged', "api"));
1895 };
1896 /**
1897 * Returns the column definition provided by the application.
1898 * This may not be correct, as items can be superseded by default column options.
1899 * However it's useful for comparison, eg to know which application column definition matches that column.
1900 */
1901 Column.prototype.getUserProvidedColDef = function () {
1902 return this.userProvidedColDef;
1903 };
1904 Column.prototype.setParent = function (parent) {
1905 this.parent = parent;
1906 };
1907 /** Returns the parent column group, if column grouping is active. */
1908 Column.prototype.getParent = function () {
1909 return this.parent;
1910 };
1911 Column.prototype.setOriginalParent = function (originalParent) {
1912 this.originalParent = originalParent;
1913 };
1914 Column.prototype.getOriginalParent = function () {
1915 return this.originalParent;
1916 };
1917 // this is done after constructor as it uses gridOptionsService
1918 Column.prototype.initialise = function () {
1919 this.initMinAndMaxWidths();
1920 this.resetActualWidth('gridInitializing');
1921 this.initDotNotation();
1922 this.validate();
1923 };
1924 Column.prototype.initDotNotation = function () {
1925 var suppressDotNotation = this.gridOptionsService.is('suppressFieldDotNotation');
1926 this.fieldContainsDots = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;
1927 this.tooltipFieldContainsDots = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;
1928 };
1929 Column.prototype.initMinAndMaxWidths = function () {
1930 var colDef = this.colDef;
1931 this.minWidth = this.columnUtils.calculateColMinWidth(colDef);
1932 this.maxWidth = this.columnUtils.calculateColMaxWidth(colDef);
1933 };
1934 Column.prototype.resetActualWidth = function (source) {
1935 if (source === void 0) { source = 'api'; }
1936 var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);
1937 this.setActualWidth(initialWidth, source, true);
1938 };
1939 Column.prototype.isEmptyGroup = function () {
1940 return false;
1941 };
1942 Column.prototype.isRowGroupDisplayed = function (colId) {
1943 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.colDef) || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.colDef.showRowGroup)) {
1944 return false;
1945 }
1946 var showingAllGroups = this.colDef.showRowGroup === true;
1947 var showingThisGroup = this.colDef.showRowGroup === colId;
1948 return showingAllGroups || showingThisGroup;
1949 };
1950 /** Returns `true` if column is a primary column, `false` if secondary. Secondary columns are used for pivoting. */
1951 Column.prototype.isPrimary = function () {
1952 return this.primary;
1953 };
1954 /** Returns `true` if column filtering is allowed. */
1955 Column.prototype.isFilterAllowed = function () {
1956 // filter defined means it's a string, class or true.
1957 // if its false, null or undefined then it's false.
1958 var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;
1959 return filterDefined;
1960 };
1961 Column.prototype.isFieldContainsDots = function () {
1962 return this.fieldContainsDots;
1963 };
1964 Column.prototype.isTooltipFieldContainsDots = function () {
1965 return this.tooltipFieldContainsDots;
1966 };
1967 Column.prototype.validate = function () {
1968 var colDefAny = this.colDef;
1969 function warnOnce(msg, key, obj) {
1970 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["doOnce"])(function () {
1971 if (obj) {
1972 console.warn(msg, obj);
1973 }
1974 else {
1975 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["doOnce"])(function () { return console.warn(msg); }, key);
1976 }
1977 }, key);
1978 }
1979 var usingCSRM = this.gridOptionsService.isRowModelType('clientSide');
1980 if (usingCSRM && !_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__["ModuleNames"].RowGroupingModule)) {
1981 var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];
1982 var itemsUsed = rowGroupingItems.filter(function (x) { return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(colDefAny[x]); });
1983 if (itemsUsed.length > 0) {
1984 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__["ModuleNames"].RowGroupingModule, itemsUsed.map(function (i) { return 'colDef.' + i; }).join(', '));
1985 }
1986 }
1987 if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {
1988 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__["ModuleNames"].RichSelectModule, this.colDef.cellEditor);
1989 }
1990 if (this.gridOptionsService.isTreeData()) {
1991 var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];
1992 var itemsUsed = itemsNotAllowedWithTreeData.filter(function (x) { return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(colDefAny[x]); });
1993 if (itemsUsed.length > 0) {
1994 warnOnce("AG Grid: " + itemsUsed.join() + " is not possible when doing tree data, your column definition should not have " + itemsUsed.join(), 'TreeDataCannotRowGroup');
1995 }
1996 }
1997 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(colDefAny.menuTabs)) {
1998 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__["ModuleNames"].MenuModule, 'menuTabs');
1999 }
2000 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(colDefAny.columnsMenuParams)) {
2001 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__["ModuleNames"].MenuModule, 'columnsMenuParams');
2002 }
2003 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(colDefAny.columnsMenuParams)) {
2004 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_2__["ModuleNames"].ColumnsToolPanelModule, 'columnsMenuParams');
2005 }
2006 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.colDef.width) && typeof this.colDef.width !== 'number') {
2007 warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck');
2008 }
2009 if (colDefAny.pinnedRowCellRenderer || colDefAny.pinnedRowCellRendererParams || colDefAny.pinnedRowCellRendererFramework) {
2010 warnOnce('AG Grid: pinnedRowCellRenderer[Params,Framework] no longer exist. Use cellRendererSelector if you want a different Cell Renderer for pinned rows. Check params.node.rowPinned.', 'colDef.pinnedRowCellRenderer-deprecated');
2011 }
2012 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(colDefAny.columnGroupShow) && colDefAny.columnGroupShow !== 'closed' && colDefAny.columnGroupShow !== 'open') {
2013 warnOnce("AG Grid: '" + colDefAny.columnGroupShow + "' is not valid for columnGroupShow. Valid values are 'open', 'closed', undefined, null", 'columnGroupShow_invalid');
2014 }
2015 };
2016 /** Add an event listener to the column. */
2017 Column.prototype.addEventListener = function (eventType, listener) {
2018 this.eventService.addEventListener(eventType, listener);
2019 };
2020 /** Remove event listener from the column. */
2021 Column.prototype.removeEventListener = function (eventType, listener) {
2022 this.eventService.removeEventListener(eventType, listener);
2023 };
2024 Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {
2025 return {
2026 node: rowNode,
2027 data: rowNode.data,
2028 column: this,
2029 colDef: this.colDef,
2030 context: this.gridOptionsService.context,
2031 api: this.gridOptionsService.api,
2032 columnApi: this.gridOptionsService.columnApi
2033 };
2034 };
2035 Column.prototype.isSuppressNavigable = function (rowNode) {
2036 // if boolean set, then just use it
2037 if (typeof this.colDef.suppressNavigable === 'boolean') {
2038 return this.colDef.suppressNavigable;
2039 }
2040 // if function, then call the function to find out
2041 if (typeof this.colDef.suppressNavigable === 'function') {
2042 var params = this.createColumnFunctionCallbackParams(rowNode);
2043 var userFunc = this.colDef.suppressNavigable;
2044 return userFunc(params);
2045 }
2046 return false;
2047 };
2048 Column.prototype.isCellEditable = function (rowNode) {
2049 // only allow editing of groups if the user has this option enabled
2050 if (rowNode.group && !this.gridOptionsService.is('enableGroupEdit')) {
2051 return false;
2052 }
2053 return this.isColumnFunc(rowNode, this.colDef.editable);
2054 };
2055 Column.prototype.isSuppressFillHandle = function () {
2056 return !!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToBoolean"])(this.colDef.suppressFillHandle);
2057 };
2058 Column.prototype.isAutoHeight = function () {
2059 return !!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToBoolean"])(this.colDef.autoHeight);
2060 };
2061 Column.prototype.isAutoHeaderHeight = function () {
2062 return !!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToBoolean"])(this.colDef.autoHeaderHeight);
2063 };
2064 Column.prototype.isRowDrag = function (rowNode) {
2065 return this.isColumnFunc(rowNode, this.colDef.rowDrag);
2066 };
2067 Column.prototype.isDndSource = function (rowNode) {
2068 return this.isColumnFunc(rowNode, this.colDef.dndSource);
2069 };
2070 Column.prototype.isCellCheckboxSelection = function (rowNode) {
2071 return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);
2072 };
2073 Column.prototype.isSuppressPaste = function (rowNode) {
2074 return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);
2075 };
2076 Column.prototype.isResizable = function () {
2077 return !!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToBoolean"])(this.colDef.resizable);
2078 };
2079 Column.prototype.isColumnFunc = function (rowNode, value) {
2080 // if boolean set, then just use it
2081 if (typeof value === 'boolean') {
2082 return value;
2083 }
2084 // if function, then call the function to find out
2085 if (typeof value === 'function') {
2086 var params = this.createColumnFunctionCallbackParams(rowNode);
2087 var editableFunc = value;
2088 return editableFunc(params);
2089 }
2090 return false;
2091 };
2092 Column.prototype.setMoving = function (moving, source) {
2093 if (source === void 0) { source = "api"; }
2094 this.moving = moving;
2095 this.eventService.dispatchEvent(this.createColumnEvent('movingChanged', source));
2096 };
2097 Column.prototype.createColumnEvent = function (type, source) {
2098 return {
2099 type: type,
2100 column: this,
2101 columns: [this],
2102 source: source,
2103 api: this.gridOptionsService.api,
2104 columnApi: this.gridOptionsService.columnApi,
2105 context: this.gridOptionsService.context
2106 };
2107 };
2108 Column.prototype.isMoving = function () {
2109 return this.moving;
2110 };
2111 /** If sorting is active, returns the sort direction e.g. `'asc'` or `'desc'`. */
2112 Column.prototype.getSort = function () {
2113 return this.sort;
2114 };
2115 Column.prototype.setSort = function (sort, source) {
2116 if (source === void 0) { source = "api"; }
2117 if (this.sort !== sort) {
2118 this.sort = sort;
2119 this.eventService.dispatchEvent(this.createColumnEvent('sortChanged', source));
2120 }
2121 };
2122 Column.prototype.setMenuVisible = function (visible, source) {
2123 if (source === void 0) { source = "api"; }
2124 if (this.menuVisible !== visible) {
2125 this.menuVisible = visible;
2126 this.eventService.dispatchEvent(this.createColumnEvent('menuVisibleChanged', source));
2127 }
2128 };
2129 Column.prototype.isMenuVisible = function () {
2130 return this.menuVisible;
2131 };
2132 Column.prototype.isSortAscending = function () {
2133 return this.sort === 'asc';
2134 };
2135 Column.prototype.isSortDescending = function () {
2136 return this.sort === 'desc';
2137 };
2138 Column.prototype.isSortNone = function () {
2139 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.sort);
2140 };
2141 Column.prototype.isSorting = function () {
2142 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.sort);
2143 };
2144 Column.prototype.getSortIndex = function () {
2145 return this.sortIndex;
2146 };
2147 Column.prototype.setSortIndex = function (sortOrder) {
2148 this.sortIndex = sortOrder;
2149 };
2150 Column.prototype.setAggFunc = function (aggFunc) {
2151 this.aggFunc = aggFunc;
2152 };
2153 /** If aggregation is set for the column, returns the aggregation function. */
2154 Column.prototype.getAggFunc = function () {
2155 return this.aggFunc;
2156 };
2157 Column.prototype.getLeft = function () {
2158 return this.left;
2159 };
2160 Column.prototype.getOldLeft = function () {
2161 return this.oldLeft;
2162 };
2163 Column.prototype.getRight = function () {
2164 return this.left + this.actualWidth;
2165 };
2166 Column.prototype.setLeft = function (left, source) {
2167 if (source === void 0) { source = "api"; }
2168 this.oldLeft = this.left;
2169 if (this.left !== left) {
2170 this.left = left;
2171 this.eventService.dispatchEvent(this.createColumnEvent('leftChanged', source));
2172 }
2173 };
2174 /** Returns `true` if filter is active on the column. */
2175 Column.prototype.isFilterActive = function () {
2176 return this.filterActive;
2177 };
2178 // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event
2179 Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {
2180 if (source === void 0) { source = "api"; }
2181 if (this.filterActive !== active) {
2182 this.filterActive = active;
2183 this.eventService.dispatchEvent(this.createColumnEvent('filterActiveChanged', source));
2184 }
2185 var filterChangedEvent = this.createColumnEvent('filterChanged', source);
2186 if (additionalEventAttributes) {
2187 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["mergeDeep"])(filterChangedEvent, additionalEventAttributes);
2188 }
2189 this.eventService.dispatchEvent(filterChangedEvent);
2190 };
2191 Column.prototype.setPinned = function (pinned) {
2192 if (pinned === true || pinned === 'left') {
2193 this.pinned = 'left';
2194 }
2195 else if (pinned === 'right') {
2196 this.pinned = 'right';
2197 }
2198 else {
2199 this.pinned = null;
2200 }
2201 };
2202 Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {
2203 if (source === void 0) { source = "api"; }
2204 if (this.firstRightPinned !== firstRightPinned) {
2205 this.firstRightPinned = firstRightPinned;
2206 this.eventService.dispatchEvent(this.createColumnEvent('firstRightPinnedChanged', source));
2207 }
2208 };
2209 Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {
2210 if (source === void 0) { source = "api"; }
2211 if (this.lastLeftPinned !== lastLeftPinned) {
2212 this.lastLeftPinned = lastLeftPinned;
2213 this.eventService.dispatchEvent(this.createColumnEvent('lastLeftPinnedChanged', source));
2214 }
2215 };
2216 Column.prototype.isFirstRightPinned = function () {
2217 return this.firstRightPinned;
2218 };
2219 Column.prototype.isLastLeftPinned = function () {
2220 return this.lastLeftPinned;
2221 };
2222 Column.prototype.isPinned = function () {
2223 return this.pinned === 'left' || this.pinned === 'right';
2224 };
2225 Column.prototype.isPinnedLeft = function () {
2226 return this.pinned === 'left';
2227 };
2228 Column.prototype.isPinnedRight = function () {
2229 return this.pinned === 'right';
2230 };
2231 Column.prototype.getPinned = function () {
2232 return this.pinned;
2233 };
2234 Column.prototype.setVisible = function (visible, source) {
2235 if (source === void 0) { source = "api"; }
2236 var newValue = visible === true;
2237 if (this.visible !== newValue) {
2238 this.visible = newValue;
2239 this.eventService.dispatchEvent(this.createColumnEvent('visibleChanged', source));
2240 }
2241 };
2242 Column.prototype.isVisible = function () {
2243 return this.visible;
2244 };
2245 Column.prototype.isSpanHeaderHeight = function () {
2246 return !!this.getColDef().spanHeaderHeight;
2247 };
2248 /** Returns the column definition for this column.
2249 * The column definition will be the result of merging the application provided column definition with any provided defaults
2250 * (e.g. `defaultColDef` grid option, or column types.
2251 *
2252 * Equivalent: `getDefinition` */
2253 Column.prototype.getColDef = function () {
2254 return this.colDef;
2255 };
2256 Column.prototype.getColumnGroupShow = function () {
2257 return this.colDef.columnGroupShow;
2258 };
2259 /**
2260 * Returns the unique ID for the column.
2261 *
2262 * Equivalent: `getId`, `getUniqueId` */
2263 Column.prototype.getColId = function () {
2264 return this.colId;
2265 };
2266 /**
2267 * Returns the unique ID for the column.
2268 *
2269 * Equivalent: `getColId`, `getUniqueId` */
2270 Column.prototype.getId = function () {
2271 return this.getColId();
2272 };
2273 /**
2274 * Returns the unique ID for the column.
2275 *
2276 * Equivalent: `getColId`, `getId` */
2277 Column.prototype.getUniqueId = function () {
2278 return this.getId();
2279 };
2280 Column.prototype.getDefinition = function () {
2281 return this.colDef;
2282 };
2283 /** Returns the current width of the column. If the column is resized, the actual width is the new size. */
2284 Column.prototype.getActualWidth = function () {
2285 return this.actualWidth;
2286 };
2287 Column.prototype.getAutoHeaderHeight = function () {
2288 return this.autoHeaderHeight;
2289 };
2290 /** Returns true if the header height has changed */
2291 Column.prototype.setAutoHeaderHeight = function (height) {
2292 var changed = height !== this.autoHeaderHeight;
2293 this.autoHeaderHeight = height;
2294 return changed;
2295 };
2296 Column.prototype.createBaseColDefParams = function (rowNode) {
2297 var params = {
2298 node: rowNode,
2299 data: rowNode.data,
2300 colDef: this.colDef,
2301 column: this,
2302 api: this.gridOptionsService.api,
2303 columnApi: this.gridOptionsService.columnApi,
2304 context: this.gridOptionsService.context
2305 };
2306 return params;
2307 };
2308 Column.prototype.getColSpan = function (rowNode) {
2309 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.colDef.colSpan)) {
2310 return 1;
2311 }
2312 var params = this.createBaseColDefParams(rowNode);
2313 var colSpan = this.colDef.colSpan(params);
2314 // colSpan must be number equal to or greater than 1
2315 return Math.max(colSpan, 1);
2316 };
2317 Column.prototype.getRowSpan = function (rowNode) {
2318 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.colDef.rowSpan)) {
2319 return 1;
2320 }
2321 var params = this.createBaseColDefParams(rowNode);
2322 var rowSpan = this.colDef.rowSpan(params);
2323 // rowSpan must be number equal to or greater than 1
2324 return Math.max(rowSpan, 1);
2325 };
2326 Column.prototype.setActualWidth = function (actualWidth, source, silent) {
2327 if (source === void 0) { source = "api"; }
2328 if (silent === void 0) { silent = false; }
2329 if (this.minWidth != null) {
2330 actualWidth = Math.max(actualWidth, this.minWidth);
2331 }
2332 if (this.maxWidth != null) {
2333 actualWidth = Math.min(actualWidth, this.maxWidth);
2334 }
2335 if (this.actualWidth !== actualWidth) {
2336 // disable flex for this column if it was manually resized.
2337 this.actualWidth = actualWidth;
2338 if (this.flex && source !== 'flex' && source !== 'gridInitializing') {
2339 this.flex = null;
2340 }
2341 if (!silent) {
2342 this.fireColumnWidthChangedEvent(source);
2343 }
2344 }
2345 };
2346 Column.prototype.fireColumnWidthChangedEvent = function (source) {
2347 this.eventService.dispatchEvent(this.createColumnEvent('widthChanged', source));
2348 };
2349 Column.prototype.isGreaterThanMax = function (width) {
2350 if (this.maxWidth != null) {
2351 return width > this.maxWidth;
2352 }
2353 return false;
2354 };
2355 Column.prototype.getMinWidth = function () {
2356 return this.minWidth;
2357 };
2358 Column.prototype.getMaxWidth = function () {
2359 return this.maxWidth;
2360 };
2361 Column.prototype.getFlex = function () {
2362 return this.flex || 0;
2363 };
2364 // this method should only be used by the columnModel to
2365 // change flex when required by the applyColumnState method.
2366 Column.prototype.setFlex = function (flex) {
2367 if (this.flex !== flex) {
2368 this.flex = flex;
2369 }
2370 };
2371 Column.prototype.setMinimum = function (source) {
2372 if (source === void 0) { source = "api"; }
2373 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.minWidth)) {
2374 this.setActualWidth(this.minWidth, source);
2375 }
2376 };
2377 Column.prototype.setRowGroupActive = function (rowGroup, source) {
2378 if (source === void 0) { source = "api"; }
2379 if (this.rowGroupActive !== rowGroup) {
2380 this.rowGroupActive = rowGroup;
2381 this.eventService.dispatchEvent(this.createColumnEvent('columnRowGroupChanged', source));
2382 }
2383 };
2384 /** Returns `true` if row group is currently active for this column. */
2385 Column.prototype.isRowGroupActive = function () {
2386 return this.rowGroupActive;
2387 };
2388 Column.prototype.setPivotActive = function (pivot, source) {
2389 if (source === void 0) { source = "api"; }
2390 if (this.pivotActive !== pivot) {
2391 this.pivotActive = pivot;
2392 this.eventService.dispatchEvent(this.createColumnEvent('columnPivotChanged', source));
2393 }
2394 };
2395 /** Returns `true` if pivot is currently active for this column. */
2396 Column.prototype.isPivotActive = function () {
2397 return this.pivotActive;
2398 };
2399 Column.prototype.isAnyFunctionActive = function () {
2400 return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();
2401 };
2402 Column.prototype.isAnyFunctionAllowed = function () {
2403 return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();
2404 };
2405 Column.prototype.setValueActive = function (value, source) {
2406 if (source === void 0) { source = "api"; }
2407 if (this.aggregationActive !== value) {
2408 this.aggregationActive = value;
2409 this.eventService.dispatchEvent(this.createColumnEvent('columnValueChanged', source));
2410 }
2411 };
2412 /** Returns `true` if value (aggregation) is currently active for this column. */
2413 Column.prototype.isValueActive = function () {
2414 return this.aggregationActive;
2415 };
2416 Column.prototype.isAllowPivot = function () {
2417 return this.colDef.enablePivot === true;
2418 };
2419 Column.prototype.isAllowValue = function () {
2420 return this.colDef.enableValue === true;
2421 };
2422 Column.prototype.isAllowRowGroup = function () {
2423 return this.colDef.enableRowGroup === true;
2424 };
2425 Column.prototype.getMenuTabs = function (defaultValues) {
2426 var menuTabs = this.getColDef().menuTabs;
2427 if (menuTabs == null) {
2428 menuTabs = defaultValues;
2429 }
2430 return menuTabs;
2431 };
2432 // + renderedHeaderCell - for making header cell transparent when moving
2433 Column.EVENT_MOVING_CHANGED = 'movingChanged';
2434 // + renderedCell - changing left position
2435 Column.EVENT_LEFT_CHANGED = 'leftChanged';
2436 // + renderedCell - changing width
2437 Column.EVENT_WIDTH_CHANGED = 'widthChanged';
2438 // + renderedCell - for changing pinned classes
2439 Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';
2440 Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';
2441 // + renderedColumn - for changing visibility icon
2442 Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';
2443 // + every time the filter changes, used in the floating filters
2444 Column.EVENT_FILTER_CHANGED = 'filterChanged';
2445 // + renderedHeaderCell - marks the header with filter icon
2446 Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';
2447 // + renderedHeaderCell - marks the header with sort icon
2448 Column.EVENT_SORT_CHANGED = 'sortChanged';
2449 // + renderedHeaderCell - marks the header with sort icon
2450 Column.EVENT_COL_DEF_CHANGED = 'colDefChanged';
2451 Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';
2452 // + toolpanel, for gui updates
2453 Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';
2454 // + toolpanel, for gui updates
2455 Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';
2456 // + toolpanel, for gui updates
2457 Column.EVENT_VALUE_CHANGED = 'columnValueChanged';
2458 __decorate([
2459 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsService')
2460 ], Column.prototype, "gridOptionsService", void 0);
2461 __decorate([
2462 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnUtils')
2463 ], Column.prototype, "columnUtils", void 0);
2464 __decorate([
2465 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
2466 ], Column.prototype, "initialise", null);
2467 return Column;
2468}());
2469
2470
2471
2472/***/ }),
2473/* 10 */
2474/***/ (function(module, __webpack_exports__, __webpack_require__) {
2475
2476"use strict";
2477__webpack_require__.r(__webpack_exports__);
2478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return EventService; });
2479/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
2480/**
2481 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
2482 * @version v29.2.0
2483 * @link https://www.ag-grid.com/
2484 * @license MIT
2485 */
2486var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
2487 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
2488 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
2489 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;
2490 return c > 3 && r && Object.defineProperty(target, key, r), r;
2491};
2492var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
2493 return function (target, key) { decorator(target, key, paramIndex); }
2494};
2495
2496var EventService = /** @class */ (function () {
2497 function EventService() {
2498 this.allSyncListeners = new Map();
2499 this.allAsyncListeners = new Map();
2500 this.globalSyncListeners = new Set();
2501 this.globalAsyncListeners = new Set();
2502 this.asyncFunctionsQueue = [];
2503 this.scheduled = false;
2504 // using an object performs better than a Set for the number of different events we have
2505 this.firedEvents = {};
2506 }
2507 // because this class is used both inside the context and outside the context, we do not
2508 // use autowired attributes, as that would be confusing, as sometimes the attributes
2509 // would be wired, and sometimes not.
2510 //
2511 // the global event servers used by AG Grid is autowired by the context once, and this
2512 // setBeans method gets called once.
2513 //
2514 // the times when this class is used outside of the context (eg RowNode has an instance of this
2515 // class) then it is not a bean, and this setBeans method is not called.
2516 EventService.prototype.setBeans = function (loggerFactory, gridOptionsService, frameworkOverrides, globalEventListener) {
2517 if (globalEventListener === void 0) { globalEventListener = null; }
2518 this.frameworkOverrides = frameworkOverrides;
2519 this.gridOptionsService = gridOptionsService;
2520 if (globalEventListener) {
2521 var async = gridOptionsService.useAsyncEvents();
2522 this.addGlobalListener(globalEventListener, async);
2523 }
2524 };
2525 EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {
2526 var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
2527 var listeners = listenerMap.get(eventType);
2528 // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance
2529 // getListeners() is also called during event dispatch even though no listeners are added. This measure protects
2530 // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after
2531 // the RowComp is destroyed, see noRegisteredListenersExist() below.
2532 if (!listeners && autoCreateListenerCollection) {
2533 listeners = new Set();
2534 listenerMap.set(eventType, listeners);
2535 }
2536 return listeners;
2537 };
2538 EventService.prototype.noRegisteredListenersExist = function () {
2539 return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&
2540 this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;
2541 };
2542 EventService.prototype.addEventListener = function (eventType, listener, async) {
2543 if (async === void 0) { async = false; }
2544 this.getListeners(eventType, async, true).add(listener);
2545 };
2546 EventService.prototype.removeEventListener = function (eventType, listener, async) {
2547 if (async === void 0) { async = false; }
2548 var listeners = this.getListeners(eventType, async, false);
2549 if (!listeners) {
2550 return;
2551 }
2552 listeners.delete(listener);
2553 if (listeners.size === 0) {
2554 var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;
2555 listenerMap.delete(eventType);
2556 }
2557 };
2558 EventService.prototype.addGlobalListener = function (listener, async) {
2559 if (async === void 0) { async = false; }
2560 (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);
2561 };
2562 EventService.prototype.removeGlobalListener = function (listener, async) {
2563 if (async === void 0) { async = false; }
2564 (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);
2565 };
2566 EventService.prototype.dispatchEvent = function (event) {
2567 var agEvent = event;
2568 if (this.gridOptionsService) {
2569 // Apply common properties to all dispatched events if this event service has had its beans set with gridOptionsService.
2570 // Note there are multiple instances of EventService that are used local to components which do not set gridOptionsService.
2571 var _a = this.gridOptionsService, api = _a.api, columnApi = _a.columnApi, context = _a.context;
2572 agEvent.api = api;
2573 agEvent.columnApi = columnApi;
2574 agEvent.context = context;
2575 }
2576 this.dispatchToListeners(agEvent, true);
2577 this.dispatchToListeners(agEvent, false);
2578 this.firedEvents[agEvent.type] = true;
2579 };
2580 EventService.prototype.dispatchEventOnce = function (event) {
2581 if (!this.firedEvents[event.type]) {
2582 this.dispatchEvent(event);
2583 }
2584 };
2585 EventService.prototype.dispatchToListeners = function (event, async) {
2586 var _this = this;
2587 var eventType = event.type;
2588 if (async && 'event' in event) {
2589 var browserEvent = event.event;
2590 if (browserEvent instanceof Event) {
2591 // AG-7893 - Persist composedPath() so that its result can still be accessed by the user asynchronously.
2592 // Within an async event handler if they call composedPath() on the event it will always return an empty [].
2593 event.eventPath = browserEvent.composedPath();
2594 }
2595 }
2596 var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {
2597 if (async) {
2598 _this.dispatchAsync(function () { return listener(event); });
2599 }
2600 else {
2601 listener(event);
2602 }
2603 }); };
2604 var listeners = this.getListeners(eventType, async, false);
2605 if (listeners) {
2606 processEventListeners(listeners);
2607 }
2608 var globalListeners = async ? this.globalAsyncListeners : this.globalSyncListeners;
2609 globalListeners.forEach(function (listener) {
2610 if (async) {
2611 _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true); });
2612 }
2613 else {
2614 _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true);
2615 }
2616 });
2617 };
2618 // this gets called inside the grid's thread, for each event that it
2619 // wants to set async. the grid then batches the events into one setTimeout()
2620 // because setTimeout() is an expensive operation. ideally we would have
2621 // each event in it's own setTimeout(), but we batch for performance.
2622 EventService.prototype.dispatchAsync = function (func) {
2623 // add to the queue for executing later in the next VM turn
2624 this.asyncFunctionsQueue.push(func);
2625 // check if timeout is already scheduled. the first time the grid calls
2626 // this within it's thread turn, this should be false, so it will schedule
2627 // the 'flush queue' method the first time it comes here. then the flag is
2628 // set to 'true' so it will know it's already scheduled for subsequent calls.
2629 if (!this.scheduled) {
2630 // if not scheduled, schedule one
2631 window.setTimeout(this.flushAsyncQueue.bind(this), 0);
2632 // mark that it is scheduled
2633 this.scheduled = true;
2634 }
2635 };
2636 // this happens in the next VM turn only, and empties the queue of events
2637 EventService.prototype.flushAsyncQueue = function () {
2638 this.scheduled = false;
2639 // we take a copy, because the event listener could be using
2640 // the grid, which would cause more events, which would be potentially
2641 // added to the queue, so safe to take a copy, the new events will
2642 // get executed in a later VM turn rather than risk updating the
2643 // queue as we are flushing it.
2644 var queueCopy = this.asyncFunctionsQueue.slice();
2645 this.asyncFunctionsQueue = [];
2646 // execute the queue
2647 queueCopy.forEach(function (func) { return func(); });
2648 };
2649 __decorate([
2650 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory')),
2651 __param(1, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('gridOptionsService')),
2652 __param(2, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('frameworkOverrides')),
2653 __param(3, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('globalEventListener'))
2654 ], EventService.prototype, "setBeans", null);
2655 EventService = __decorate([
2656 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('eventService')
2657 ], EventService);
2658 return EventService;
2659}());
2660
2661
2662
2663/***/ }),
2664/* 11 */
2665/***/ (function(module, __webpack_exports__, __webpack_require__) {
2666
2667"use strict";
2668__webpack_require__.r(__webpack_exports__);
2669/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return Context; });
2670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return PreConstruct; });
2671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return PostConstruct; });
2672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return PreDestroy; });
2673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return Bean; });
2674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return Autowired; });
2675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return Optional; });
2676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return Qualifier; });
2677/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
2678/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
2679/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
2680/**
2681 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
2682 * @version v29.2.0
2683 * @link https://www.ag-grid.com/
2684 * @license MIT
2685 */
2686var __read = (undefined && undefined.__read) || function (o, n) {
2687 var m = typeof Symbol === "function" && o[Symbol.iterator];
2688 if (!m) return o;
2689 var i = m.call(o), r, ar = [], e;
2690 try {
2691 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
2692 }
2693 catch (error) { e = { error: error }; }
2694 finally {
2695 try {
2696 if (r && !r.done && (m = i["return"])) m.call(i);
2697 }
2698 finally { if (e) throw e.error; }
2699 }
2700 return ar;
2701};
2702var __spread = (undefined && undefined.__spread) || function () {
2703 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
2704 return ar;
2705};
2706
2707
2708
2709var Context = /** @class */ (function () {
2710 function Context(params, logger) {
2711 this.beanWrappers = {};
2712 this.destroyed = false;
2713 if (!params || !params.beanClasses) {
2714 return;
2715 }
2716 this.contextParams = params;
2717 this.logger = logger;
2718 this.logger.log(">> creating ag-Application Context");
2719 this.createBeans();
2720 var beanInstances = this.getBeanInstances();
2721 this.wireBeans(beanInstances);
2722 this.logger.log(">> ag-Application Context ready - component is alive");
2723 }
2724 Context.prototype.getBeanInstances = function () {
2725 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["values"])(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });
2726 };
2727 Context.prototype.createBean = function (bean, afterPreCreateCallback) {
2728 if (!bean) {
2729 throw Error("Can't wire to bean since it is null");
2730 }
2731 this.wireBeans([bean], afterPreCreateCallback);
2732 return bean;
2733 };
2734 Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {
2735 this.autoWireBeans(beanInstances);
2736 this.methodWireBeans(beanInstances);
2737 this.callLifeCycleMethods(beanInstances, 'preConstructMethods');
2738 // the callback sets the attributes, so the component has access to attributes
2739 // before postConstruct methods in the component are executed
2740 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(afterPreCreateCallback)) {
2741 beanInstances.forEach(afterPreCreateCallback);
2742 }
2743 this.callLifeCycleMethods(beanInstances, 'postConstructMethods');
2744 };
2745 Context.prototype.createBeans = function () {
2746 var _this = this;
2747 // register all normal beans
2748 this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));
2749 // register override beans, these will overwrite beans above of same name
2750 // instantiate all beans - overridden beans will be left out
2751 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(this.beanWrappers, function (key, beanEntry) {
2752 var constructorParamsMeta;
2753 if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {
2754 constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;
2755 }
2756 var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);
2757 var newInstance = new (beanEntry.bean.bind.apply(beanEntry.bean, __spread([null], constructorParams)));
2758 beanEntry.beanInstance = newInstance;
2759 });
2760 var createdBeanNames = Object.keys(this.beanWrappers).join(', ');
2761 this.logger.log("created beans: " + createdBeanNames);
2762 };
2763 // tslint:disable-next-line
2764 Context.prototype.createBeanWrapper = function (BeanClass) {
2765 var metaData = BeanClass.__agBeanMetaData;
2766 if (!metaData) {
2767 var beanName = void 0;
2768 if (BeanClass.prototype.constructor) {
2769 beanName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["getFunctionName"])(BeanClass.prototype.constructor);
2770 }
2771 else {
2772 beanName = "" + BeanClass;
2773 }
2774 console.error("Context item " + beanName + " is not a bean");
2775 return;
2776 }
2777 var beanEntry = {
2778 bean: BeanClass,
2779 beanInstance: null,
2780 beanName: metaData.beanName
2781 };
2782 this.beanWrappers[metaData.beanName] = beanEntry;
2783 };
2784 Context.prototype.autoWireBeans = function (beanInstances) {
2785 var _this = this;
2786 beanInstances.forEach(function (beanInstance) {
2787 _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {
2788 var attributes = metaData.agClassAttributes;
2789 if (!attributes) {
2790 return;
2791 }
2792 attributes.forEach(function (attribute) {
2793 var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);
2794 beanInstance[attribute.attributeName] = otherBean;
2795 });
2796 });
2797 });
2798 };
2799 Context.prototype.methodWireBeans = function (beanInstances) {
2800 var _this = this;
2801 beanInstances.forEach(function (beanInstance) {
2802 _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {
2803 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(metaData.autowireMethods, function (methodName, wireParams) {
2804 // skip constructor, as this is dealt with elsewhere
2805 if (methodName === "agConstructor") {
2806 return;
2807 }
2808 var initParams = _this.getBeansForParameters(wireParams, beanName);
2809 beanInstance[methodName].apply(beanInstance, initParams);
2810 });
2811 });
2812 });
2813 };
2814 Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {
2815 var prototype = Object.getPrototypeOf(beanInstance);
2816 while (prototype != null) {
2817 var constructor = prototype.constructor;
2818 if (constructor.hasOwnProperty('__agBeanMetaData')) {
2819 var metaData = constructor.__agBeanMetaData;
2820 var beanName = this.getBeanName(constructor);
2821 callback(metaData, beanName);
2822 }
2823 prototype = Object.getPrototypeOf(prototype);
2824 }
2825 };
2826 Context.prototype.getBeanName = function (constructor) {
2827 if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {
2828 return constructor.__agBeanMetaData.beanName;
2829 }
2830 var constructorString = constructor.toString();
2831 var beanName = constructorString.substring(9, constructorString.indexOf("("));
2832 return beanName;
2833 };
2834 Context.prototype.getBeansForParameters = function (parameters, beanName) {
2835 var _this = this;
2836 var beansList = [];
2837 if (parameters) {
2838 Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["iterateObject"])(parameters, function (paramIndex, otherBeanName) {
2839 var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);
2840 beansList[Number(paramIndex)] = otherBean;
2841 });
2842 }
2843 return beansList;
2844 };
2845 Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {
2846 if (optional === void 0) { optional = false; }
2847 if (beanName === "context") {
2848 return this;
2849 }
2850 if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {
2851 return this.contextParams.providedBeanInstances[beanName];
2852 }
2853 var beanEntry = this.beanWrappers[beanName];
2854 if (beanEntry) {
2855 return beanEntry.beanInstance;
2856 }
2857 if (!optional) {
2858 console.error("AG Grid: unable to find bean reference " + beanName + " while initialising " + wiringBean);
2859 }
2860 return null;
2861 };
2862 Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {
2863 var _this = this;
2864 beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });
2865 };
2866 Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {
2867 // putting all methods into a map removes duplicates
2868 var allMethods = {};
2869 // dump methods from each level of the metadata hierarchy
2870 this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {
2871 var methods = metaData[lifeCycleMethod];
2872 if (methods) {
2873 methods.forEach(function (methodName) {
2874 if (methodName != methodToIgnore) {
2875 allMethods[methodName] = true;
2876 }
2877 });
2878 }
2879 });
2880 var allMethodsList = Object.keys(allMethods);
2881 allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });
2882 };
2883 Context.prototype.getBean = function (name) {
2884 return this.lookupBeanInstance("getBean", name, true);
2885 };
2886 Context.prototype.destroy = function () {
2887 if (this.destroyed) {
2888 return;
2889 }
2890 this.logger.log(">> Shutting down ag-Application Context");
2891 var beanInstances = this.getBeanInstances();
2892 this.destroyBeans(beanInstances);
2893 this.contextParams.providedBeanInstances = null;
2894 this.destroyed = true;
2895 this.logger.log(">> ag-Application Context shut down - component is dead");
2896 };
2897 Context.prototype.destroyBean = function (bean) {
2898 if (!bean) {
2899 return;
2900 }
2901 this.destroyBeans([bean]);
2902 };
2903 Context.prototype.destroyBeans = function (beans) {
2904 var _this = this;
2905 if (!beans) {
2906 return [];
2907 }
2908 beans.forEach(function (bean) {
2909 _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');
2910 // call destroy() explicitly if it exists
2911 var beanAny = bean;
2912 if (typeof beanAny.destroy === 'function') {
2913 beanAny.destroy();
2914 }
2915 });
2916 return [];
2917 };
2918 return Context;
2919}());
2920
2921function PreConstruct(target, methodName, descriptor) {
2922 var props = getOrCreateProps(target.constructor);
2923 if (!props.preConstructMethods) {
2924 props.preConstructMethods = [];
2925 }
2926 props.preConstructMethods.push(methodName);
2927}
2928function PostConstruct(target, methodName, descriptor) {
2929 var props = getOrCreateProps(target.constructor);
2930 if (!props.postConstructMethods) {
2931 props.postConstructMethods = [];
2932 }
2933 props.postConstructMethods.push(methodName);
2934}
2935function PreDestroy(target, methodName, descriptor) {
2936 var props = getOrCreateProps(target.constructor);
2937 if (!props.preDestroyMethods) {
2938 props.preDestroyMethods = [];
2939 }
2940 props.preDestroyMethods.push(methodName);
2941}
2942function Bean(beanName) {
2943 return function (classConstructor) {
2944 var props = getOrCreateProps(classConstructor);
2945 props.beanName = beanName;
2946 };
2947}
2948function Autowired(name) {
2949 return function (target, propertyKey, descriptor) {
2950 autowiredFunc(target, name, false, target, propertyKey, null);
2951 };
2952}
2953function Optional(name) {
2954 return function (target, propertyKey, descriptor) {
2955 autowiredFunc(target, name, true, target, propertyKey, null);
2956 };
2957}
2958function autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {
2959 if (name === null) {
2960 console.error("AG Grid: Autowired name should not be null");
2961 return;
2962 }
2963 if (typeof index === "number") {
2964 console.error("AG Grid: Autowired should be on an attribute");
2965 return;
2966 }
2967 // it's an attribute on the class
2968 var props = getOrCreateProps(target.constructor);
2969 if (!props.agClassAttributes) {
2970 props.agClassAttributes = [];
2971 }
2972 props.agClassAttributes.push({
2973 attributeName: methodOrAttributeName,
2974 beanName: name,
2975 optional: optional
2976 });
2977}
2978function Qualifier(name) {
2979 return function (classPrototype, methodOrAttributeName, index) {
2980 var constructor = typeof classPrototype == "function" ? classPrototype : classPrototype.constructor;
2981 var props;
2982 if (typeof index === "number") {
2983 // it's a parameter on a method
2984 var methodName = void 0;
2985 if (methodOrAttributeName) {
2986 props = getOrCreateProps(constructor);
2987 methodName = methodOrAttributeName;
2988 }
2989 else {
2990 props = getOrCreateProps(constructor);
2991 methodName = "agConstructor";
2992 }
2993 if (!props.autowireMethods) {
2994 props.autowireMethods = {};
2995 }
2996 if (!props.autowireMethods[methodName]) {
2997 props.autowireMethods[methodName] = {};
2998 }
2999 props.autowireMethods[methodName][index] = name;
3000 }
3001 };
3002}
3003function getOrCreateProps(target) {
3004 if (!target.hasOwnProperty("__agBeanMetaData")) {
3005 target.__agBeanMetaData = {};
3006 }
3007 return target.__agBeanMetaData;
3008}
3009
3010
3011/***/ }),
3012/* 12 */
3013/***/ (function(module, __webpack_exports__, __webpack_require__) {
3014
3015"use strict";
3016__webpack_require__.r(__webpack_exports__);
3017/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterateObject", function() { return iterateObject; });
3018/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cloneObject", function() { return cloneObject; });
3019/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCloneObject", function() { return deepCloneObject; });
3020/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCloneDefinition", function() { return deepCloneDefinition; });
3021/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getProperty", function() { return getProperty; });
3022/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setProperty", function() { return setProperty; });
3023/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyPropertiesIfPresent", function() { return copyPropertiesIfPresent; });
3024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyPropertyIfPresent", function() { return copyPropertyIfPresent; });
3025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllKeysInObjects", function() { return getAllKeysInObjects; });
3026/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllValuesInObject", function() { return getAllValuesInObject; });
3027/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeDeep", function() { return mergeDeep; });
3028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "missingOrEmptyObject", function() { return missingOrEmptyObject; });
3029/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "get", function() { return get; });
3030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "set", function() { return set; });
3031/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getValueUsingField", function() { return getValueUsingField; });
3032/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllReferences", function() { return removeAllReferences; });
3033/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNonNullObject", function() { return isNonNullObject; });
3034/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
3035/**
3036 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3037 * @version v29.2.0
3038 * @link https://www.ag-grid.com/
3039 * @license MIT
3040 */
3041
3042function iterateObject(object, callback) {
3043 if (object == null) {
3044 return;
3045 }
3046 if (Array.isArray(object)) {
3047 object.forEach(function (value, index) { return callback("" + index, value); });
3048 }
3049 else {
3050 Object.keys(object).forEach(function (key) { return callback(key, object[key]); });
3051 }
3052}
3053function cloneObject(object) {
3054 var copy = {};
3055 var keys = Object.keys(object);
3056 for (var i = 0; i < keys.length; i++) {
3057 var key = keys[i];
3058 var value = object[key];
3059 copy[key] = value;
3060 }
3061 return copy;
3062}
3063function deepCloneObject(object) {
3064 return JSON.parse(JSON.stringify(object));
3065}
3066// returns copy of an object, doing a deep clone of any objects with that object.
3067// this is used for eg creating copies of Column Definitions, where we want to
3068// deep copy all objects, but do not want to deep copy functions (eg when user provides
3069// a function or class for colDef.cellRenderer)
3070function deepCloneDefinition(object, keysToSkip) {
3071 if (!object) {
3072 return;
3073 }
3074 var obj = object;
3075 var res = {};
3076 Object.keys(obj).forEach(function (key) {
3077 if (keysToSkip && keysToSkip.indexOf(key) >= 0) {
3078 return;
3079 }
3080 var value = obj[key];
3081 // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does
3082 // NOT include the following:
3083 // 1) arrays
3084 // 2) functions or classes (eg ColumnAPI instance)
3085 var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;
3086 if (sourceIsSimpleObject) {
3087 res[key] = deepCloneDefinition(value);
3088 }
3089 else {
3090 res[key] = value;
3091 }
3092 });
3093 return res;
3094}
3095function getProperty(object, key) {
3096 return object[key];
3097}
3098function setProperty(object, key, value) {
3099 object[key] = value;
3100}
3101/**
3102 * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with
3103 * a value of `undefined`.
3104 */
3105function copyPropertiesIfPresent(source, target) {
3106 var properties = [];
3107 for (var _i = 2; _i < arguments.length; _i++) {
3108 properties[_i - 2] = arguments[_i];
3109 }
3110 properties.forEach(function (p) { return copyPropertyIfPresent(source, target, p); });
3111}
3112/**
3113 * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a
3114 * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.
3115 */
3116function copyPropertyIfPresent(source, target, property, transform) {
3117 var value = getProperty(source, property);
3118 if (value !== undefined) {
3119 setProperty(target, property, transform ? transform(value) : value);
3120 }
3121}
3122function getAllKeysInObjects(objects) {
3123 var allValues = {};
3124 objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {
3125 Object.keys(obj).forEach(function (key) { return allValues[key] = null; });
3126 });
3127 return Object.keys(allValues);
3128}
3129function getAllValuesInObject(obj) {
3130 if (!obj) {
3131 return [];
3132 }
3133 var anyObject = Object;
3134 if (typeof anyObject.values === 'function') {
3135 return anyObject.values(obj);
3136 }
3137 var ret = [];
3138 for (var key in obj) {
3139 if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {
3140 ret.push(obj[key]);
3141 }
3142 }
3143 return ret;
3144}
3145function mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {
3146 if (copyUndefined === void 0) { copyUndefined = true; }
3147 if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }
3148 if (!Object(_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(source)) {
3149 return;
3150 }
3151 iterateObject(source, function (key, sourceValue) {
3152 var destValue = dest[key];
3153 if (destValue === sourceValue) {
3154 return;
3155 }
3156 // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef
3157 // and Column Types) would result in params getting shared between objects.
3158 // by putting an empty value into destValue first, it means we end up copying over values from
3159 // the source object, rather than just copying in the source object in it's entirety.
3160 if (makeCopyOfSimpleObjects) {
3161 var objectIsDueToBeCopied = destValue == null && sourceValue != null;
3162 if (objectIsDueToBeCopied) {
3163 // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed
3164 // to a Class instance (such as ColumnAPI instance).
3165 var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;
3166 var dontCopy = sourceIsSimpleObject;
3167 if (dontCopy) {
3168 destValue = {};
3169 dest[key] = destValue;
3170 }
3171 }
3172 }
3173 if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {
3174 mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);
3175 }
3176 else if (copyUndefined || sourceValue !== undefined) {
3177 dest[key] = sourceValue;
3178 }
3179 });
3180}
3181function missingOrEmptyObject(value) {
3182 return Object(_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(value) || Object.keys(value).length === 0;
3183}
3184function get(source, expression, defaultValue) {
3185 if (source == null) {
3186 return defaultValue;
3187 }
3188 var keys = expression.split('.');
3189 var objectToRead = source;
3190 while (keys.length > 1) {
3191 objectToRead = objectToRead[keys.shift()];
3192 if (objectToRead == null) {
3193 return defaultValue;
3194 }
3195 }
3196 var value = objectToRead[keys[0]];
3197 return value != null ? value : defaultValue;
3198}
3199function set(target, expression, value) {
3200 if (target == null) {
3201 return;
3202 }
3203 var keys = expression.split('.');
3204 var objectToUpdate = target;
3205 // Create empty objects
3206 keys.forEach(function (key, i) {
3207 if (!objectToUpdate[key]) {
3208 objectToUpdate[key] = {};
3209 }
3210 if (i < keys.length - 1) {
3211 objectToUpdate = objectToUpdate[key];
3212 }
3213 });
3214 objectToUpdate[keys[keys.length - 1]] = value;
3215}
3216function getValueUsingField(data, field, fieldContainsDots) {
3217 if (!field || !data) {
3218 return;
3219 }
3220 // if no '.', then it's not a deep value
3221 if (!fieldContainsDots) {
3222 return data[field];
3223 }
3224 // otherwise it is a deep value, so need to dig for it
3225 var fields = field.split('.');
3226 var currentObject = data;
3227 for (var i = 0; i < fields.length; i++) {
3228 if (currentObject == null) {
3229 return undefined;
3230 }
3231 currentObject = currentObject[fields[i]];
3232 }
3233 return currentObject;
3234}
3235// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a
3236// memory leak if user is not disposing of the GridAPI or ColumnApi references
3237function removeAllReferences(obj, objectName) {
3238 Object.keys(obj).forEach(function (key) {
3239 var value = obj[key];
3240 // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)
3241 // we don't care about
3242 if (typeof value === 'object') {
3243 obj[key] = undefined;
3244 }
3245 });
3246 var proto = Object.getPrototypeOf(obj);
3247 var properties = {};
3248 Object.keys(proto).forEach(function (key) {
3249 var value = proto[key];
3250 // leave all basic types - this is needed for GridAPI to leave the "destroyed: boolean" attribute alone
3251 if (typeof value === 'function') {
3252 var func = function () {
3253 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.");
3254 };
3255 properties[key] = { value: func, writable: true };
3256 }
3257 });
3258 Object.defineProperties(obj, properties);
3259}
3260function isNonNullObject(value) {
3261 return typeof value === 'object' && value !== null;
3262}
3263
3264
3265/***/ }),
3266/* 13 */
3267/***/ (function(module, __webpack_exports__, __webpack_require__) {
3268
3269"use strict";
3270__webpack_require__.r(__webpack_exports__);
3271/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "doOnce", function() { return doOnce; });
3272/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFunctionName", function() { return getFunctionName; });
3273/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFunction", function() { return isFunction; });
3274/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeInAWhile", function() { return executeInAWhile; });
3275/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeNextVMTurn", function() { return executeNextVMTurn; });
3276/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "executeAfter", function() { return executeAfter; });
3277/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; });
3278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; });
3279/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waitUntil", function() { return waitUntil; });
3280/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return compose; });
3281/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "callIfPresent", function() { return callIfPresent; });
3282/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; });
3283/**
3284 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3285 * @version v29.2.0
3286 * @link https://www.ag-grid.com/
3287 * @license MIT
3288 */
3289var doOnceFlags = {};
3290/**
3291 * If the key was passed before, then doesn't execute the func
3292 * @param {Function} func
3293 * @param {string} key
3294 */
3295function doOnce(func, key) {
3296 if (doOnceFlags[key]) {
3297 return;
3298 }
3299 func();
3300 doOnceFlags[key] = true;
3301}
3302function getFunctionName(funcConstructor) {
3303 // for every other browser in the world
3304 if (funcConstructor.name) {
3305 return funcConstructor.name;
3306 }
3307 // for the pestilence that is ie11
3308 var matches = /function\s+([^\(]+)/.exec(funcConstructor.toString());
3309 return matches && matches.length === 2 ? matches[1].trim() : null;
3310}
3311function isFunction(val) {
3312 return !!(val && val.constructor && val.call && val.apply);
3313}
3314function executeInAWhile(funcs) {
3315 executeAfter(funcs, 400);
3316}
3317var executeNextVMTurnFuncs = [];
3318var executeNextVMTurnPending = false;
3319function executeNextVMTurn(func) {
3320 executeNextVMTurnFuncs.push(func);
3321 if (executeNextVMTurnPending) {
3322 return;
3323 }
3324 executeNextVMTurnPending = true;
3325 window.setTimeout(function () {
3326 var funcsCopy = executeNextVMTurnFuncs.slice();
3327 executeNextVMTurnFuncs.length = 0;
3328 executeNextVMTurnPending = false;
3329 funcsCopy.forEach(function (func) { return func(); });
3330 }, 0);
3331}
3332function executeAfter(funcs, milliseconds) {
3333 if (milliseconds === void 0) { milliseconds = 0; }
3334 if (funcs.length > 0) {
3335 window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);
3336 }
3337}
3338/**
3339 * @param {Function} func The function to be debounced
3340 * @param {number} delay The time in ms to debounce
3341 * @return {Function} The debounced function
3342 */
3343function debounce(func, delay) {
3344 var timeout;
3345 // Calling debounce returns a new anonymous function
3346 return function () {
3347 var args = [];
3348 for (var _i = 0; _i < arguments.length; _i++) {
3349 args[_i] = arguments[_i];
3350 }
3351 var context = this;
3352 window.clearTimeout(timeout);
3353 // Set the new timeout
3354 timeout = window.setTimeout(function () {
3355 func.apply(context, args);
3356 }, delay);
3357 };
3358}
3359/**
3360 * @param {Function} func The function to be throttled
3361 * @param {number} wait The time in ms to throttle
3362 * @return {Function} The throttled function
3363 */
3364function throttle(func, wait) {
3365 var previousCall = 0;
3366 return function () {
3367 var args = [];
3368 for (var _i = 0; _i < arguments.length; _i++) {
3369 args[_i] = arguments[_i];
3370 }
3371 var context = this;
3372 var currentCall = new Date().getTime();
3373 if (currentCall - previousCall < wait) {
3374 return;
3375 }
3376 previousCall = currentCall;
3377 func.apply(context, args);
3378 };
3379}
3380function waitUntil(condition, callback, timeout, timeoutMessage) {
3381 if (timeout === void 0) { timeout = 100; }
3382 var timeStamp = new Date().getTime();
3383 var interval = null;
3384 var executed = false;
3385 var internalCallback = function () {
3386 var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;
3387 if (condition() || reachedTimeout) {
3388 callback();
3389 executed = true;
3390 if (interval != null) {
3391 window.clearInterval(interval);
3392 interval = null;
3393 }
3394 if (reachedTimeout && timeoutMessage) {
3395 console.warn(timeoutMessage);
3396 }
3397 }
3398 };
3399 internalCallback();
3400 if (!executed) {
3401 interval = window.setInterval(internalCallback, 10);
3402 }
3403}
3404function compose() {
3405 var fns = [];
3406 for (var _i = 0; _i < arguments.length; _i++) {
3407 fns[_i] = arguments[_i];
3408 }
3409 return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };
3410}
3411function callIfPresent(func) {
3412 if (func) {
3413 func();
3414 }
3415}
3416var noop = function () { return; };
3417
3418
3419/***/ }),
3420/* 14 */
3421/***/ (function(module, __webpack_exports__, __webpack_require__) {
3422
3423"use strict";
3424__webpack_require__.r(__webpack_exports__);
3425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return ModuleNames; });
3426/**
3427 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3428 * @version v29.2.0
3429 * @link https://www.ag-grid.com/
3430 * @license MIT
3431 */
3432var ModuleNames;
3433(function (ModuleNames) {
3434 ModuleNames["CommunityCoreModule"] = "@ag-grid-community/core";
3435 // community modules
3436 ModuleNames["InfiniteRowModelModule"] = "@ag-grid-community/infinite-row-model";
3437 ModuleNames["ClientSideRowModelModule"] = "@ag-grid-community/client-side-row-model";
3438 ModuleNames["CsvExportModule"] = "@ag-grid-community/csv-export";
3439 // enterprise core - users don't need to import on this, but other enterprise modules do
3440 ModuleNames["EnterpriseCoreModule"] = "@ag-grid-enterprise/core";
3441 // enterprise modules
3442 ModuleNames["RowGroupingModule"] = "@ag-grid-enterprise/row-grouping";
3443 ModuleNames["ColumnsToolPanelModule"] = "@ag-grid-enterprise/column-tool-panel";
3444 ModuleNames["FiltersToolPanelModule"] = "@ag-grid-enterprise/filter-tool-panel";
3445 ModuleNames["MenuModule"] = "@ag-grid-enterprise/menu";
3446 ModuleNames["SetFilterModule"] = "@ag-grid-enterprise/set-filter";
3447 ModuleNames["MultiFilterModule"] = "@ag-grid-enterprise/multi-filter";
3448 ModuleNames["StatusBarModule"] = "@ag-grid-enterprise/status-bar";
3449 ModuleNames["SideBarModule"] = "@ag-grid-enterprise/side-bar";
3450 ModuleNames["RangeSelectionModule"] = "@ag-grid-enterprise/range-selection";
3451 ModuleNames["MasterDetailModule"] = "@ag-grid-enterprise/master-detail";
3452 ModuleNames["RichSelectModule"] = "@ag-grid-enterprise/rich-select";
3453 ModuleNames["GridChartsModule"] = "@ag-grid-enterprise/charts";
3454 ModuleNames["ViewportRowModelModule"] = "@ag-grid-enterprise/viewport-row-model";
3455 ModuleNames["ServerSideRowModelModule"] = "@ag-grid-enterprise/server-side-row-model";
3456 ModuleNames["ExcelExportModule"] = "@ag-grid-enterprise/excel-export";
3457 ModuleNames["ClipboardModule"] = "@ag-grid-enterprise/clipboard";
3458 ModuleNames["SparklinesModule"] = "@ag-grid-enterprise/sparklines";
3459 // framework wrappers currently don't provide beans, comps etc, so no need to be modules,
3460 // however i argue they should be as in theory they 'could' provide beans etc
3461 ModuleNames["AngularModule"] = "@ag-grid-community/angular";
3462 ModuleNames["ReactModule"] = "@ag-grid-community/react";
3463 ModuleNames["VueModule"] = "@ag-grid-community/vue";
3464 // and then this, which is definitely not a grid module, as it should not have any dependency
3465 // on the grid (ie shouldn't even reference the Module interface)
3466 // ChartsModule = "@ag-grid-community/charts-core",
3467})(ModuleNames || (ModuleNames = {}));
3468
3469
3470/***/ }),
3471/* 15 */
3472/***/ (function(module, __webpack_exports__, __webpack_require__) {
3473
3474"use strict";
3475__webpack_require__.r(__webpack_exports__);
3476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return ModuleRegistry; });
3477/* harmony import */ var _moduleNames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14);
3478/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
3479/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
3480/**
3481 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3482 * @version v29.2.0
3483 * @link https://www.ag-grid.com/
3484 * @license MIT
3485 */
3486var __read = (undefined && undefined.__read) || function (o, n) {
3487 var m = typeof Symbol === "function" && o[Symbol.iterator];
3488 if (!m) return o;
3489 var i = m.call(o), r, ar = [], e;
3490 try {
3491 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
3492 }
3493 catch (error) { e = { error: error }; }
3494 finally {
3495 try {
3496 if (r && !r.done && (m = i["return"])) m.call(i);
3497 }
3498 finally { if (e) throw e.error; }
3499 }
3500 return ar;
3501};
3502
3503
3504
3505var ModuleRegistry = /** @class */ (function () {
3506 function ModuleRegistry() {
3507 }
3508 ModuleRegistry.register = function (module, moduleBased) {
3509 if (moduleBased === void 0) { moduleBased = true; }
3510 ModuleRegistry.runVersionChecks(module);
3511 ModuleRegistry.modulesMap[module.moduleName] = module;
3512 ModuleRegistry.setModuleBased(moduleBased);
3513 };
3514 ModuleRegistry.runVersionChecks = function (module) {
3515 if (!ModuleRegistry.currentModuleVersion) {
3516 ModuleRegistry.currentModuleVersion = module.version;
3517 }
3518 if (!module.version) {
3519 console.error("AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '" + module.moduleName + "' is incompatible. Please update all modules to the same version.");
3520 }
3521 else if (module.version !== ModuleRegistry.currentModuleVersion) {
3522 console.error("AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '" + module.moduleName + "' is version " + module.version + " but the other modules are version " + this.currentModuleVersion + ". Please update all modules to the same version.");
3523 }
3524 if (module.validate) {
3525 var result = module.validate();
3526 if (!result.isValid) {
3527 var errorResult = result;
3528 console.error("AG Grid: " + errorResult.message);
3529 }
3530 }
3531 };
3532 ModuleRegistry.setModuleBased = function (moduleBased) {
3533 if (ModuleRegistry.moduleBased === undefined) {
3534 ModuleRegistry.moduleBased = moduleBased;
3535 }
3536 else {
3537 if (ModuleRegistry.moduleBased !== moduleBased) {
3538 Object(_utils_function__WEBPACK_IMPORTED_MODULE_1__["doOnce"])(function () {
3539 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.");
3540 console.warn('Please see https://www.ag-grid.com/javascript-grid/packages-modules/ for more information.');
3541 }, 'ModulePackageCheck');
3542 }
3543 }
3544 };
3545 /**
3546 * INTERNAL - Set if files are being served from a single UMD bundle to provide accurate enterprise upgrade steps.
3547 */
3548 ModuleRegistry.setIsBundled = function () {
3549 ModuleRegistry.isBundled = true;
3550 };
3551 // noinspection JSUnusedGlobalSymbols
3552 ModuleRegistry.registerModules = function (modules, moduleBased) {
3553 if (moduleBased === void 0) { moduleBased = true; }
3554 ModuleRegistry.setModuleBased(moduleBased);
3555 if (!modules) {
3556 return;
3557 }
3558 modules.forEach(function (module) { return ModuleRegistry.register(module, moduleBased); });
3559 };
3560 ModuleRegistry.assertRegistered = function (moduleName, reason) {
3561 var _a;
3562 if (this.isRegistered(moduleName)) {
3563 return true;
3564 }
3565 var warningKey = reason + moduleName;
3566 var warningMessage;
3567 if (ModuleRegistry.isBundled) {
3568 {
3569 warningMessage =
3570 "AG Grid: unable to use " + reason + " as 'ag-grid-enterprise' has not been loaded. Check you are using the Enterprise bundle:\n \n <script src=\"https://cdn.jsdelivr.net/npm/ag-grid-enterprise@AG_GRID_VERSION/dist/ag-grid-enterprise.min.js\"></script>\n \nFor more info see: https://ag-grid.com/javascript-data-grid/getting-started/#getting-started-with-ag-grid-enterprise";
3571 }
3572 }
3573 else if (ModuleRegistry.moduleBased || ModuleRegistry.moduleBased === undefined) {
3574 var modName = (_a = Object.entries(_moduleNames__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"]).find(function (_a) {
3575 var _b = __read(_a, 2), k = _b[0], v = _b[1];
3576 return v === moduleName;
3577 })) === null || _a === void 0 ? void 0 : _a[0];
3578 warningMessage =
3579 "AG Grid: unable to use " + reason + " as the " + modName + " is not registered. Check if you have registered the module:\n \n import { ModuleRegistry } from '@ag-grid-community/core';\n import { " + modName + " } from '" + moduleName + "';\n \n ModuleRegistry.registerModules([ " + modName + " ]);\n\nFor more info see: https://www.ag-grid.com/javascript-grid/modules/";
3580 }
3581 else {
3582 warningMessage =
3583 "AG Grid: unable to use " + reason + " as package 'ag-grid-enterprise' has not been imported. Check that you have imported the package:\n \n import 'ag-grid-enterprise';\n \nFor more info see: https://www.ag-grid.com/javascript-grid/packages/";
3584 }
3585 Object(_utils_function__WEBPACK_IMPORTED_MODULE_1__["doOnce"])(function () {
3586 console.warn(warningMessage);
3587 }, warningKey);
3588 return false;
3589 };
3590 ModuleRegistry.isRegistered = function (moduleName) {
3591 return !!ModuleRegistry.modulesMap[moduleName];
3592 };
3593 ModuleRegistry.getRegisteredModules = function () {
3594 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["values"])(ModuleRegistry.modulesMap);
3595 };
3596 ModuleRegistry.isPackageBased = function () {
3597 return !ModuleRegistry.moduleBased;
3598 };
3599 // having in a map a) removes duplicates and b) allows fast lookup
3600 ModuleRegistry.modulesMap = {};
3601 return ModuleRegistry;
3602}());
3603
3604
3605
3606/***/ }),
3607/* 16 */
3608/***/ (function(module, __webpack_exports__, __webpack_require__) {
3609
3610"use strict";
3611__webpack_require__.r(__webpack_exports__);
3612/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultColumnTypes", function() { return DefaultColumnTypes; });
3613/**
3614 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3615 * @version v29.2.0
3616 * @link https://www.ag-grid.com/
3617 * @license MIT
3618 */
3619var DefaultColumnTypes = {
3620 numericColumn: {
3621 headerClass: 'ag-right-aligned-header',
3622 cellClass: 'ag-right-aligned-cell'
3623 },
3624 rightAligned: {
3625 headerClass: 'ag-right-aligned-header',
3626 cellClass: 'ag-right-aligned-cell'
3627 }
3628};
3629
3630
3631/***/ }),
3632/* 17 */
3633/***/ (function(module, __webpack_exports__, __webpack_require__) {
3634
3635"use strict";
3636__webpack_require__.r(__webpack_exports__);
3637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return BeanStub; });
3638/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
3639/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
3640/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
3641/**
3642 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3643 * @version v29.2.0
3644 * @link https://www.ag-grid.com/
3645 * @license MIT
3646 */
3647var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3648 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3649 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3650 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;
3651 return c > 3 && r && Object.defineProperty(target, key, r), r;
3652};
3653
3654
3655
3656var BeanStub = /** @class */ (function () {
3657 function BeanStub() {
3658 var _this = this;
3659 this.destroyFunctions = [];
3660 this.destroyed = false;
3661 // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive
3662 // prevents vue from creating proxies for created objects and prevents identity related issues
3663 this.__v_skip = true;
3664 this.isAlive = function () { return !_this.destroyed; };
3665 }
3666 // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are
3667 // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed
3668 // points to a bean or component that was not properly disposed of.
3669 // constructor() {
3670 // setTimeout(()=> {
3671 // if (this.isAlive()) {
3672 // let prototype: any = Object.getPrototypeOf(this);
3673 // const constructor: any = prototype.constructor;
3674 // const constructorString = constructor.toString();
3675 // const beanName = constructorString.substring(9, constructorString.indexOf("("));
3676 // console.log('is alive ' + beanName);
3677 // }
3678 // }, 5000);
3679 // }
3680 // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean
3681 BeanStub.prototype.getFrameworkOverrides = function () {
3682 return this.frameworkOverrides;
3683 };
3684 BeanStub.prototype.getContext = function () {
3685 return this.context;
3686 };
3687 BeanStub.prototype.destroy = function () {
3688 // let prototype: any = Object.getPrototypeOf(this);
3689 // const constructor: any = prototype.constructor;
3690 // const constructorString = constructor.toString();
3691 // const beanName = constructorString.substring(9, constructorString.indexOf("("));
3692 this.destroyFunctions.forEach(function (func) { return func(); });
3693 this.destroyFunctions.length = 0;
3694 this.destroyed = true;
3695 this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });
3696 };
3697 BeanStub.prototype.addEventListener = function (eventType, listener) {
3698 if (!this.localEventService) {
3699 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
3700 }
3701 this.localEventService.addEventListener(eventType, listener);
3702 };
3703 BeanStub.prototype.removeEventListener = function (eventType, listener) {
3704 if (this.localEventService) {
3705 this.localEventService.removeEventListener(eventType, listener);
3706 }
3707 };
3708 BeanStub.prototype.dispatchEventAsync = function (event) {
3709 var _this = this;
3710 window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);
3711 };
3712 BeanStub.prototype.dispatchEvent = function (event) {
3713 if (this.localEventService) {
3714 this.localEventService.dispatchEvent(event);
3715 }
3716 };
3717 BeanStub.prototype.addManagedListener = function (object, event, listener) {
3718 var _this = this;
3719 if (this.destroyed) {
3720 return;
3721 }
3722 if (object instanceof HTMLElement) {
3723 Object(_utils_event__WEBPACK_IMPORTED_MODULE_2__["addSafePassiveEventListener"])(this.getFrameworkOverrides(), object, event, listener);
3724 }
3725 else {
3726 object.addEventListener(event, listener);
3727 }
3728 var destroyFunc = function () {
3729 object.removeEventListener(event, listener);
3730 _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });
3731 return null;
3732 };
3733 this.destroyFunctions.push(destroyFunc);
3734 return destroyFunc;
3735 };
3736 BeanStub.prototype.addManagedPropertyListener = function (event, listener) {
3737 var _this = this;
3738 if (this.destroyed) {
3739 return;
3740 }
3741 this.gridOptionsService.addEventListener(event, listener);
3742 var destroyFunc = function () {
3743 _this.gridOptionsService.removeEventListener(event, listener);
3744 _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });
3745 return null;
3746 };
3747 this.destroyFunctions.push(destroyFunc);
3748 return destroyFunc;
3749 };
3750 BeanStub.prototype.addDestroyFunc = function (func) {
3751 // if we are already destroyed, we execute the func now
3752 if (this.isAlive()) {
3753 this.destroyFunctions.push(func);
3754 }
3755 else {
3756 func();
3757 }
3758 };
3759 BeanStub.prototype.createManagedBean = function (bean, context) {
3760 var res = this.createBean(bean, context);
3761 this.addDestroyFunc(this.destroyBean.bind(this, bean, context));
3762 return res;
3763 };
3764 BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {
3765 return (context || this.getContext()).createBean(bean, afterPreCreateCallback);
3766 };
3767 BeanStub.prototype.destroyBean = function (bean, context) {
3768 return (context || this.getContext()).destroyBean(bean);
3769 };
3770 BeanStub.prototype.destroyBeans = function (beans, context) {
3771 var _this = this;
3772 if (beans) {
3773 beans.forEach(function (bean) { return _this.destroyBean(bean, context); });
3774 }
3775 return [];
3776 };
3777 BeanStub.EVENT_DESTROYED = 'destroyed';
3778 __decorate([
3779 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('frameworkOverrides')
3780 ], BeanStub.prototype, "frameworkOverrides", void 0);
3781 __decorate([
3782 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('context')
3783 ], BeanStub.prototype, "context", void 0);
3784 __decorate([
3785 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('eventService')
3786 ], BeanStub.prototype, "eventService", void 0);
3787 __decorate([
3788 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsService')
3789 ], BeanStub.prototype, "gridOptionsService", void 0);
3790 __decorate([
3791 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('localeService')
3792 ], BeanStub.prototype, "localeService", void 0);
3793 __decorate([
3794 Object(_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('environment')
3795 ], BeanStub.prototype, "environment", void 0);
3796 __decorate([
3797 _context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
3798 ], BeanStub.prototype, "destroy", null);
3799 return BeanStub;
3800}());
3801
3802
3803
3804/***/ }),
3805/* 18 */
3806/***/ (function(module, __webpack_exports__, __webpack_require__) {
3807
3808"use strict";
3809__webpack_require__.r(__webpack_exports__);
3810/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopPropagationForAgGrid", function() { return stopPropagationForAgGrid; });
3811/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStopPropagationForAgGrid", function() { return isStopPropagationForAgGrid; });
3812/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventSupported", function() { return isEventSupported; });
3813/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCtrlForEvent", function() { return getCtrlForEvent; });
3814/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementInEventPath", function() { return isElementInEventPath; });
3815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createEventPath", function() { return createEventPath; });
3816/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEventPath", function() { return getEventPath; });
3817/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSafePassiveEventListener", function() { return addSafePassiveEventListener; });
3818/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
3819/**
3820 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3821 * @version v29.2.0
3822 * @link https://www.ag-grid.com/
3823 * @license MIT
3824 */
3825
3826var AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';
3827var PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel', 'scroll'];
3828var supports = {};
3829/**
3830 * a user once raised an issue - they said that when you opened a popup (eg context menu)
3831 * and then clicked on a selection checkbox, the popup wasn't closed. this is because the
3832 * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the
3833 * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).
3834 * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,
3835 * but we still let the event pass back to the body.
3836 * @param {Event} event
3837 */
3838function stopPropagationForAgGrid(event) {
3839 event[AG_GRID_STOP_PROPAGATION] = true;
3840}
3841function isStopPropagationForAgGrid(event) {
3842 return event[AG_GRID_STOP_PROPAGATION] === true;
3843}
3844var isEventSupported = (function () {
3845 var tags = {
3846 select: 'input',
3847 change: 'input',
3848 submit: 'form',
3849 reset: 'form',
3850 error: 'img',
3851 load: 'img',
3852 abort: 'img'
3853 };
3854 var eventChecker = function (eventName) {
3855 if (typeof supports[eventName] === 'boolean') {
3856 return supports[eventName];
3857 }
3858 var el = document.createElement(tags[eventName] || 'div');
3859 eventName = 'on' + eventName;
3860 return supports[eventName] = (eventName in el);
3861 };
3862 return eventChecker;
3863})();
3864function getCtrlForEvent(gridOptionsService, event, type) {
3865 var sourceElement = event.target;
3866 while (sourceElement) {
3867 var renderedComp = gridOptionsService.getDomData(sourceElement, type);
3868 if (renderedComp) {
3869 return renderedComp;
3870 }
3871 sourceElement = sourceElement.parentElement;
3872 }
3873 return null;
3874}
3875function isElementInEventPath(element, event) {
3876 if (!event || !element) {
3877 return false;
3878 }
3879 return getEventPath(event).indexOf(element) >= 0;
3880}
3881function createEventPath(event) {
3882 var res = [];
3883 var pointer = event.target;
3884 while (pointer) {
3885 res.push(pointer);
3886 pointer = pointer.parentElement;
3887 }
3888 return res;
3889}
3890/**
3891 * Gets the path for a browser Event or from the target on an AG Grid Event
3892 * https://developer.mozilla.org/en-US/docs/Web/API/Event
3893 * @param {Event| { target: EventTarget }} event
3894 * @returns {EventTarget[]}
3895 */
3896function getEventPath(event) {
3897 // This can be called with either a browser event or an AG Grid Event that has a target property.
3898 var eventNoType = event;
3899 if (eventNoType.path) {
3900 return eventNoType.path;
3901 }
3902 if (eventNoType.composedPath) {
3903 return eventNoType.composedPath();
3904 }
3905 // If this is an AG Grid event build the path ourselves
3906 return createEventPath(eventNoType);
3907}
3908function addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {
3909 var isPassive = Object(_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(PASSIVE_EVENTS, event);
3910 var options = isPassive ? { passive: true } : undefined;
3911 // this check is here for certain scenarios where I believe the user must be destroying
3912 // the grid somehow but continuing for it to be used
3913 if (frameworkOverrides && frameworkOverrides.addEventListener) {
3914 frameworkOverrides.addEventListener(eElement, event, listener, options);
3915 }
3916}
3917
3918
3919/***/ }),
3920/* 19 */
3921/***/ (function(module, __webpack_exports__, __webpack_require__) {
3922
3923"use strict";
3924__webpack_require__.r(__webpack_exports__);
3925/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "firstExistingValue", function() { return firstExistingValue; });
3926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "existsAndNotEmpty", function() { return existsAndNotEmpty; });
3927/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; });
3928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areEqual", function() { return areEqual; });
3929/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowCompare", function() { return shallowCompare; });
3930/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortNumerically", function() { return sortNumerically; });
3931/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeRepeatsFromArray", function() { return removeRepeatsFromArray; });
3932/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFromArray", function() { return removeFromArray; });
3933/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAllFromArray", function() { return removeAllFromArray; });
3934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertIntoArray", function() { return insertIntoArray; });
3935/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertArrayIntoArray", function() { return insertArrayIntoArray; });
3936/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "moveInArray", function() { return moveInArray; });
3937/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "includes", function() { return includes; });
3938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flatten", function() { return flatten; });
3939/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pushAll", function() { return pushAll; });
3940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toStrings", function() { return toStrings; });
3941/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEachReverse", function() { return forEachReverse; });
3942/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
3943/**
3944 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
3945 * @version v29.2.0
3946 * @link https://www.ag-grid.com/
3947 * @license MIT
3948 */
3949
3950function firstExistingValue() {
3951 var values = [];
3952 for (var _i = 0; _i < arguments.length; _i++) {
3953 values[_i] = arguments[_i];
3954 }
3955 for (var i = 0; i < values.length; i++) {
3956 var value = values[i];
3957 if (Object(_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(value)) {
3958 return value;
3959 }
3960 }
3961 return null;
3962}
3963function existsAndNotEmpty(value) {
3964 return value != null && value.length > 0;
3965}
3966function last(arr) {
3967 if (!arr || !arr.length) {
3968 return;
3969 }
3970 return arr[arr.length - 1];
3971}
3972function areEqual(a, b, comparator) {
3973 if (a == null && b == null) {
3974 return true;
3975 }
3976 return a != null &&
3977 b != null &&
3978 a.length === b.length &&
3979 a.every(function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });
3980}
3981/** @deprecated */
3982function shallowCompare(arr1, arr2) {
3983 return areEqual(arr1, arr2);
3984}
3985function sortNumerically(array) {
3986 return array.sort(function (a, b) { return a - b; });
3987}
3988function removeRepeatsFromArray(array, object) {
3989 if (!array) {
3990 return;
3991 }
3992 for (var index = array.length - 2; index >= 0; index--) {
3993 var thisOneMatches = array[index] === object;
3994 var nextOneMatches = array[index + 1] === object;
3995 if (thisOneMatches && nextOneMatches) {
3996 array.splice(index + 1, 1);
3997 }
3998 }
3999}
4000function removeFromArray(array, object) {
4001 var index = array.indexOf(object);
4002 if (index >= 0) {
4003 array.splice(index, 1);
4004 }
4005}
4006function removeAllFromArray(array, toRemove) {
4007 toRemove.forEach(function (item) { return removeFromArray(array, item); });
4008}
4009function insertIntoArray(array, object, toIndex) {
4010 array.splice(toIndex, 0, object);
4011}
4012function insertArrayIntoArray(dest, src, toIndex) {
4013 if (dest == null || src == null) {
4014 return;
4015 }
4016 // put items in backwards, otherwise inserted items end up in reverse order
4017 for (var i = src.length - 1; i >= 0; i--) {
4018 var item = src[i];
4019 insertIntoArray(dest, item, toIndex);
4020 }
4021}
4022function moveInArray(array, objectsToMove, toIndex) {
4023 // first take out items from the array
4024 removeAllFromArray(array, objectsToMove);
4025 // now add the objects, in same order as provided to us, that means we start at the end
4026 // as the objects will be pushed to the right as they are inserted
4027 objectsToMove.slice().reverse().forEach(function (obj) { return insertIntoArray(array, obj, toIndex); });
4028}
4029function includes(array, value) {
4030 return array.indexOf(value) > -1;
4031}
4032function flatten(arrayOfArrays) {
4033 return [].concat.apply([], arrayOfArrays);
4034}
4035function pushAll(target, source) {
4036 if (source == null || target == null) {
4037 return;
4038 }
4039 source.forEach(function (value) { return target.push(value); });
4040}
4041function toStrings(array) {
4042 return array.map(_generic__WEBPACK_IMPORTED_MODULE_0__["toStringOrNull"]);
4043}
4044function forEachReverse(list, action) {
4045 if (list == null) {
4046 return;
4047 }
4048 for (var i = list.length - 1; i >= 0; i--) {
4049 action(list[i], i);
4050 }
4051}
4052
4053
4054/***/ }),
4055/* 20 */
4056/***/ (function(module, __webpack_exports__, __webpack_require__) {
4057
4058"use strict";
4059__webpack_require__.r(__webpack_exports__);
4060/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnModel", function() { return ColumnModel; });
4061/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21);
4062/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
4063/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
4064/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
4065/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
4066/* harmony import */ var _groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29);
4067/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(11);
4068/* harmony import */ var _autoGroupColService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(30);
4069/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19);
4070/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
4071/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(31);
4072/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(32);
4073/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(13);
4074/* harmony import */ var _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(22);
4075/**
4076 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
4077 * @version v29.2.0
4078 * @link https://www.ag-grid.com/
4079 * @license MIT
4080 */
4081var __extends = (undefined && undefined.__extends) || (function () {
4082 var extendStatics = function (d, b) {
4083 extendStatics = Object.setPrototypeOf ||
4084 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
4085 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
4086 return extendStatics(d, b);
4087 };
4088 return function (d, b) {
4089 extendStatics(d, b);
4090 function __() { this.constructor = d; }
4091 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
4092 };
4093})();
4094var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4095 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4096 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4097 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;
4098 return c > 3 && r && Object.defineProperty(target, key, r), r;
4099};
4100var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
4101 return function (target, key) { decorator(target, key, paramIndex); }
4102};
4103var __rest = (undefined && undefined.__rest) || function (s, e) {
4104 var t = {};
4105 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4106 t[p] = s[p];
4107 if (s != null && typeof Object.getOwnPropertySymbols === "function")
4108 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
4109 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
4110 t[p[i]] = s[p[i]];
4111 }
4112 return t;
4113};
4114var __values = (undefined && undefined.__values) || function(o) {
4115 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4116 if (m) return m.call(o);
4117 if (o && typeof o.length === "number") return {
4118 next: function () {
4119 if (o && i >= o.length) o = void 0;
4120 return { value: o && o[i++], done: !o };
4121 }
4122 };
4123 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
4124};
4125var __read = (undefined && undefined.__read) || function (o, n) {
4126 var m = typeof Symbol === "function" && o[Symbol.iterator];
4127 if (!m) return o;
4128 var i = m.call(o), r, ar = [], e;
4129 try {
4130 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
4131 }
4132 catch (error) { e = { error: error }; }
4133 finally {
4134 try {
4135 if (r && !r.done && (m = i["return"])) m.call(i);
4136 }
4137 finally { if (e) throw e.error; }
4138 }
4139 return ar;
4140};
4141var __spread = (undefined && undefined.__spread) || function () {
4142 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
4143 return ar;
4144};
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159var ColumnModel = /** @class */ (function (_super) {
4160 __extends(ColumnModel, _super);
4161 function ColumnModel() {
4162 var _this = _super !== null && _super.apply(this, arguments) || this;
4163 // header row count, based on user provided columns
4164 _this.primaryHeaderRowCount = 0;
4165 _this.secondaryHeaderRowCount = 0;
4166 // header row count, either above, or based on pivoting if we are pivoting
4167 _this.gridHeaderRowCount = 0;
4168 // leave level columns of the displayed trees
4169 _this.displayedColumnsLeft = [];
4170 _this.displayedColumnsRight = [];
4171 _this.displayedColumnsCenter = [];
4172 // all three lists above combined
4173 _this.displayedColumns = [];
4174 // for fast lookup, to see if a column or group is still displayed
4175 _this.displayedColumnsAndGroupsMap = {};
4176 // all columns to be rendered
4177 _this.viewportColumns = [];
4178 // A hash key to keep track of changes in viewport columns
4179 _this.viewportColumnsHash = '';
4180 // same as viewportColumns, except we always include columns with headerAutoHeight
4181 _this.headerViewportColumns = [];
4182 // all columns to be rendered in the centre
4183 _this.viewportColumnsCenter = [];
4184 // same as viewportColumnsCenter, except we always include columns with headerAutoHeight
4185 _this.headerViewportColumnsCenter = [];
4186 _this.autoHeightActiveAtLeastOnce = false;
4187 _this.rowGroupColumns = [];
4188 _this.valueColumns = [];
4189 _this.pivotColumns = [];
4190 _this.ready = false;
4191 _this.autoGroupsNeedBuilding = false;
4192 _this.forceRecreateAutoGroups = false;
4193 _this.pivotMode = false;
4194 _this.bodyWidth = 0;
4195 _this.leftWidth = 0;
4196 _this.rightWidth = 0;
4197 _this.bodyWidthDirty = true;
4198 _this.flexColsCalculatedAtLestOnce = false;
4199 return _this;
4200 }
4201 ColumnModel.prototype.init = function () {
4202 var _this = this;
4203 this.suppressColumnVirtualisation = this.gridOptionsService.is('suppressColumnVirtualisation');
4204 var pivotMode = this.gridOptionsService.is('pivotMode');
4205 if (this.isPivotSettingAllowed(pivotMode)) {
4206 this.pivotMode = pivotMode;
4207 }
4208 this.usingTreeData = this.gridOptionsService.isTreeData();
4209 this.addManagedPropertyListener('groupDisplayType', function () { return _this.onAutoGroupColumnDefChanged(); });
4210 this.addManagedPropertyListener('autoGroupColumnDef', function () { return _this.onAutoGroupColumnDefChanged(); });
4211 this.addManagedPropertyListener('defaultColDef', function (params) { return _this.onSharedColDefChanged(params.source); });
4212 this.addManagedPropertyListener('columnTypes', function (params) { return _this.onSharedColDefChanged(params.source); });
4213 };
4214 ColumnModel.prototype.onAutoGroupColumnDefChanged = function () {
4215 this.autoGroupsNeedBuilding = true;
4216 this.forceRecreateAutoGroups = true;
4217 this.updateGridColumns();
4218 this.updateDisplayedColumns('gridOptionsChanged');
4219 };
4220 ColumnModel.prototype.onSharedColDefChanged = function (source) {
4221 if (source === void 0) { source = 'api'; }
4222 // likewise for autoGroupCol, the default col def impacts this
4223 this.forceRecreateAutoGroups = true;
4224 this.createColumnsFromColumnDefs(true, source);
4225 };
4226 ColumnModel.prototype.setColumnDefs = function (columnDefs, source) {
4227 if (source === void 0) { source = 'api'; }
4228 var colsPreviouslyExisted = !!this.columnDefs;
4229 this.columnDefs = columnDefs;
4230 this.createColumnsFromColumnDefs(colsPreviouslyExisted, source);
4231 };
4232 ColumnModel.prototype.destroyOldColumns = function (oldTree, newTree) {
4233 var oldObjectsById = {};
4234 if (!oldTree) {
4235 return;
4236 }
4237 // add in all old columns to be destroyed
4238 this.columnUtils.depthFirstOriginalTreeSearch(null, oldTree, function (child) {
4239 oldObjectsById[child.getInstanceId()] = child;
4240 });
4241 // however we don't destroy anything in the new tree. if destroying the grid, there is no new tree
4242 if (newTree) {
4243 this.columnUtils.depthFirstOriginalTreeSearch(null, newTree, function (child) {
4244 oldObjectsById[child.getInstanceId()] = null;
4245 });
4246 }
4247 // what's left can be destroyed
4248 var colsToDestroy = Object.values(oldObjectsById).filter(function (item) { return item != null; });
4249 this.destroyBeans(colsToDestroy);
4250 };
4251 ColumnModel.prototype.destroyColumns = function () {
4252 this.destroyOldColumns(this.primaryColumnTree);
4253 this.destroyOldColumns(this.secondaryBalancedTree);
4254 this.destroyOldColumns(this.groupAutoColsBalancedTree);
4255 };
4256 ColumnModel.prototype.createColumnsFromColumnDefs = function (colsPreviouslyExisted, source) {
4257 var _this = this;
4258 if (source === void 0) { source = 'api'; }
4259 // only need to dispatch before/after events if updating columns, never if setting columns for first time
4260 var dispatchEventsFunc = colsPreviouslyExisted ? this.compareColumnStatesAndDispatchEvents(source) : undefined;
4261 // always invalidate cache on changing columns, as the column id's for the new columns
4262 // could overlap with the old id's, so the cache would return old values for new columns.
4263 this.valueCache.expire();
4264 // NOTE ==================
4265 // we should be destroying the existing columns and groups if they exist, for example, the original column
4266 // group adds a listener to the columns, it should be also removing the listeners
4267 this.autoGroupsNeedBuilding = true;
4268 var oldPrimaryColumns = this.primaryColumns;
4269 var oldPrimaryTree = this.primaryColumnTree;
4270 var balancedTreeResult = this.columnFactory.createColumnTree(this.columnDefs, true, oldPrimaryTree);
4271 this.destroyOldColumns(this.primaryColumnTree, balancedTreeResult.columnTree);
4272 this.primaryColumnTree = balancedTreeResult.columnTree;
4273 this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;
4274 this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);
4275 this.primaryColumnsMap = {};
4276 this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });
4277 this.extractRowGroupColumns(source, oldPrimaryColumns);
4278 this.extractPivotColumns(source, oldPrimaryColumns);
4279 this.extractValueColumns(source, oldPrimaryColumns);
4280 this.ready = true;
4281 // if we are showing secondary columns, then no need to update grid columns
4282 // at this point, as it's the pivot service responsibility to change these
4283 // if we are no longer pivoting (ie and need to revert back to primary, otherwise
4284 // we shouldn't be touching the primary).
4285 var gridColsNotProcessed = this.gridColsArePrimary === undefined;
4286 var processGridCols = this.gridColsArePrimary || gridColsNotProcessed;
4287 if (processGridCols) {
4288 this.updateGridColumns();
4289 if (colsPreviouslyExisted && !this.gridOptionsService.is('maintainColumnOrder')) {
4290 this.orderGridColumnsLikePrimary();
4291 }
4292 this.updateDisplayedColumns(source);
4293 this.checkViewportColumns();
4294 }
4295 // this event is not used by AG Grid, but left here for backwards compatibility,
4296 // in case applications use it
4297 this.dispatchEverythingChanged(source);
4298 if (dispatchEventsFunc) {
4299 dispatchEventsFunc();
4300 }
4301 this.dispatchNewColumnsLoaded();
4302 };
4303 ColumnModel.prototype.dispatchNewColumnsLoaded = function () {
4304 var newColumnsLoadedEvent = {
4305 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED
4306 };
4307 this.eventService.dispatchEvent(newColumnsLoadedEvent);
4308 };
4309 // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded
4310 ColumnModel.prototype.dispatchEverythingChanged = function (source) {
4311 if (source === void 0) { source = 'api'; }
4312 var eventEverythingChanged = {
4313 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_EVERYTHING_CHANGED,
4314 source: source
4315 };
4316 this.eventService.dispatchEvent(eventEverythingChanged);
4317 };
4318 ColumnModel.prototype.orderGridColumnsLikePrimary = function () {
4319 var _this = this;
4320 var primaryColumns = this.primaryColumns;
4321 if (!primaryColumns) {
4322 return;
4323 }
4324 this.gridColumns.sort(function (colA, colB) {
4325 var primaryIndexA = primaryColumns.indexOf(colA);
4326 var primaryIndexB = primaryColumns.indexOf(colB);
4327 // if both cols are present in primary, then we just return the position,
4328 // so position is maintained.
4329 var indexAPresent = primaryIndexA >= 0;
4330 var indexBPresent = primaryIndexB >= 0;
4331 if (indexAPresent && indexBPresent) {
4332 return primaryIndexA - primaryIndexB;
4333 }
4334 if (indexAPresent) {
4335 // B is auto group column, so put B first
4336 return 1;
4337 }
4338 if (indexBPresent) {
4339 // A is auto group column, so put A first
4340 return -1;
4341 }
4342 // otherwise both A and B are auto-group columns. so we just keep the order
4343 // as they were already in.
4344 var gridIndexA = _this.gridColumns.indexOf(colA);
4345 var gridIndexB = _this.gridColumns.indexOf(colB);
4346 return gridIndexA - gridIndexB;
4347 });
4348 this.gridColumns = this.placeLockedColumns(this.gridColumns);
4349 };
4350 ColumnModel.prototype.getAllDisplayedAutoHeightCols = function () {
4351 return this.displayedAutoHeightCols;
4352 };
4353 ColumnModel.prototype.setViewport = function () {
4354 if (this.gridOptionsService.is('enableRtl')) {
4355 this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;
4356 this.viewportRight = this.bodyWidth - this.scrollPosition;
4357 }
4358 else {
4359 this.viewportLeft = this.scrollPosition;
4360 this.viewportRight = this.scrollWidth + this.scrollPosition;
4361 }
4362 };
4363 // used by clipboard service, to know what columns to paste into
4364 ColumnModel.prototype.getDisplayedColumnsStartingAt = function (column) {
4365 var currentColumn = column;
4366 var columns = [];
4367 while (currentColumn != null) {
4368 columns.push(currentColumn);
4369 currentColumn = this.getDisplayedColAfter(currentColumn);
4370 }
4371 return columns;
4372 };
4373 // checks what columns are currently displayed due to column virtualisation. dispatches an event
4374 // if the list of columns has changed.
4375 // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()
4376 ColumnModel.prototype.checkViewportColumns = function () {
4377 // check displayCenterColumnTree exists first, as it won't exist when grid is initialising
4378 if (this.displayedColumnsCenter == null) {
4379 return;
4380 }
4381 var viewportColumnsChanged = this.extractViewport();
4382 if (!viewportColumnsChanged) {
4383 return;
4384 }
4385 var event = {
4386 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED
4387 };
4388 this.eventService.dispatchEvent(event);
4389 };
4390 ColumnModel.prototype.setViewportPosition = function (scrollWidth, scrollPosition) {
4391 if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {
4392 this.scrollWidth = scrollWidth;
4393 this.scrollPosition = scrollPosition;
4394 // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,
4395 // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the
4396 // virtual columns again
4397 this.bodyWidthDirty = true;
4398 this.setViewport();
4399 if (this.ready) {
4400 this.checkViewportColumns();
4401 }
4402 }
4403 };
4404 ColumnModel.prototype.isPivotMode = function () {
4405 return this.pivotMode;
4406 };
4407 ColumnModel.prototype.isPivotSettingAllowed = function (pivot) {
4408 if (pivot && this.gridOptionsService.isTreeData()) {
4409 console.warn("AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'");
4410 return false;
4411 }
4412 return true;
4413 };
4414 ColumnModel.prototype.setPivotMode = function (pivotMode, source) {
4415 if (source === void 0) { source = 'api'; }
4416 if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {
4417 return;
4418 }
4419 this.pivotMode = pivotMode;
4420 // we need to update grid columns to cover the scenario where user has groupDisplayType = 'custom', as
4421 // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),
4422 // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed
4423 this.autoGroupsNeedBuilding = true;
4424 this.updateGridColumns();
4425 this.updateDisplayedColumns(source);
4426 var event = {
4427 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED
4428 };
4429 this.eventService.dispatchEvent(event);
4430 };
4431 ColumnModel.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {
4432 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.secondaryColumns)) {
4433 return null;
4434 }
4435 var valueColumnToFind = this.getPrimaryColumn(valueColKey);
4436 var foundColumn = null;
4437 this.secondaryColumns.forEach(function (column) {
4438 var thisPivotKeys = column.getColDef().pivotKeys;
4439 var pivotValueColumn = column.getColDef().pivotValueColumn;
4440 var pivotKeyMatches = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(thisPivotKeys, pivotKeys);
4441 var pivotValueMatches = pivotValueColumn === valueColumnToFind;
4442 if (pivotKeyMatches && pivotValueMatches) {
4443 foundColumn = column;
4444 }
4445 });
4446 return foundColumn;
4447 };
4448 ColumnModel.prototype.setBeans = function (loggerFactory) {
4449 this.logger = loggerFactory.create('columnModel');
4450 };
4451 ColumnModel.prototype.setFirstRightAndLastLeftPinned = function (source) {
4452 var lastLeft;
4453 var firstRight;
4454 if (this.gridOptionsService.is('enableRtl')) {
4455 lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;
4456 firstRight = this.displayedColumnsRight ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.displayedColumnsRight) : null;
4457 }
4458 else {
4459 lastLeft = this.displayedColumnsLeft ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.displayedColumnsLeft) : null;
4460 firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;
4461 }
4462 this.gridColumns.forEach(function (column) {
4463 column.setLastLeftPinned(column === lastLeft, source);
4464 column.setFirstRightPinned(column === firstRight, source);
4465 });
4466 };
4467 ColumnModel.prototype.autoSizeColumns = function (params) {
4468 var _this = this;
4469 var columns = params.columns, skipHeader = params.skipHeader, skipHeaderGroups = params.skipHeaderGroups, stopAtGroup = params.stopAtGroup, _a = params.source, source = _a === void 0 ? 'api' : _a;
4470 // because of column virtualisation, we can only do this function on columns that are
4471 // actually rendered, as non-rendered columns (outside the viewport and not rendered
4472 // due to column virtualisation) are not present. this can result in all rendered columns
4473 // getting narrowed, which in turn introduces more rendered columns on the RHS which
4474 // did not get autosized in the original run, leaving the visible grid with columns on
4475 // the LHS sized, but RHS no. so we keep looping through the visible columns until
4476 // no more cols are available (rendered) to be resized
4477 // we autosize after animation frames finish in case any cell renderers need to complete first. this can
4478 // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid
4479 // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).
4480 this.animationFrameService.flushAllFrames();
4481 // keep track of which cols we have resized in here
4482 var columnsAutosized = [];
4483 // initialise with anything except 0 so that while loop executes at least once
4484 var changesThisTimeAround = -1;
4485 var shouldSkipHeader = skipHeader != null ? skipHeader : this.gridOptionsService.is('skipHeaderOnAutoSize');
4486 var shouldSkipHeaderGroups = skipHeaderGroups != null ? skipHeaderGroups : shouldSkipHeader;
4487 while (changesThisTimeAround !== 0) {
4488 changesThisTimeAround = 0;
4489 this.actionOnGridColumns(columns, function (column) {
4490 // if already autosized, skip it
4491 if (columnsAutosized.indexOf(column) >= 0) {
4492 return false;
4493 }
4494 // get how wide this col should be
4495 var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, shouldSkipHeader);
4496 // preferredWidth = -1 if this col is not on the screen
4497 if (preferredWidth > 0) {
4498 var newWidth = _this.normaliseColumnWidth(column, preferredWidth);
4499 column.setActualWidth(newWidth, source);
4500 columnsAutosized.push(column);
4501 changesThisTimeAround++;
4502 }
4503 return true;
4504 }, source);
4505 }
4506 if (!shouldSkipHeaderGroups) {
4507 this.autoSizeColumnGroupsByColumns(columns, stopAtGroup);
4508 }
4509 this.dispatchColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');
4510 };
4511 ColumnModel.prototype.dispatchColumnResizedEvent = function (columns, finished, source, flexColumns) {
4512 if (flexColumns === void 0) { flexColumns = null; }
4513 if (columns && columns.length) {
4514 var event_1 = {
4515 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_RESIZED,
4516 columns: columns,
4517 column: columns.length === 1 ? columns[0] : null,
4518 flexColumns: flexColumns,
4519 finished: finished,
4520 source: source
4521 };
4522 this.eventService.dispatchEvent(event_1);
4523 }
4524 };
4525 ColumnModel.prototype.dispatchColumnChangedEvent = function (type, columns, source) {
4526 var event = {
4527 type: type,
4528 columns: columns,
4529 column: (columns && columns.length == 1) ? columns[0] : null,
4530 source: source
4531 };
4532 this.eventService.dispatchEvent(event);
4533 };
4534 ColumnModel.prototype.dispatchColumnMovedEvent = function (params) {
4535 var movedColumns = params.movedColumns, source = params.source, toIndex = params.toIndex, finished = params.finished;
4536 var event = {
4537 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_MOVED,
4538 columns: movedColumns,
4539 column: movedColumns && movedColumns.length === 1 ? movedColumns[0] : null,
4540 toIndex: toIndex,
4541 finished: finished,
4542 source: source
4543 };
4544 this.eventService.dispatchEvent(event);
4545 };
4546 ColumnModel.prototype.dispatchColumnPinnedEvent = function (changedColumns, source) {
4547 if (!changedColumns.length) {
4548 return;
4549 }
4550 // if just one column, we use this, otherwise we don't include the col
4551 var column = changedColumns.length === 1 ? changedColumns[0] : null;
4552 // only include visible if it's common in all columns
4553 var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });
4554 var event = {
4555 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PINNED,
4556 // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'
4557 pinned: pinned != null ? pinned : null,
4558 columns: changedColumns,
4559 column: column,
4560 source: source
4561 };
4562 this.eventService.dispatchEvent(event);
4563 };
4564 ColumnModel.prototype.dispatchColumnVisibleEvent = function (changedColumns, source) {
4565 if (!changedColumns.length) {
4566 return;
4567 }
4568 // if just one column, we use this, otherwise we don't include the col
4569 var column = changedColumns.length === 1 ? changedColumns[0] : null;
4570 // only include visible if it's common in all columns
4571 var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });
4572 var event = {
4573 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VISIBLE,
4574 visible: visible,
4575 columns: changedColumns,
4576 column: column,
4577 source: source
4578 };
4579 this.eventService.dispatchEvent(event);
4580 };
4581 ColumnModel.prototype.autoSizeColumn = function (key, skipHeader, source) {
4582 if (source === void 0) { source = "api"; }
4583 if (key) {
4584 this.autoSizeColumns({ columns: [key], skipHeader: skipHeader, skipHeaderGroups: true, source: source });
4585 }
4586 };
4587 ColumnModel.prototype.autoSizeColumnGroupsByColumns = function (keys, stopAtGroup) {
4588 var e_1, _a, e_2, _b;
4589 var columnGroups = new Set();
4590 var columns = this.getGridColumns(keys);
4591 columns.forEach(function (col) {
4592 var parent = col.getParent();
4593 while (parent && parent != stopAtGroup) {
4594 if (!parent.isPadding()) {
4595 columnGroups.add(parent);
4596 }
4597 parent = parent.getParent();
4598 }
4599 });
4600 var headerGroupCtrl;
4601 var resizedColumns = [];
4602 try {
4603 for (var columnGroups_1 = __values(columnGroups), columnGroups_1_1 = columnGroups_1.next(); !columnGroups_1_1.done; columnGroups_1_1 = columnGroups_1.next()) {
4604 var columnGroup = columnGroups_1_1.value;
4605 try {
4606 for (var _c = (e_2 = void 0, __values(this.ctrlsService.getHeaderRowContainerCtrls())), _d = _c.next(); !_d.done; _d = _c.next()) {
4607 var headerContainerCtrl = _d.value;
4608 headerGroupCtrl = headerContainerCtrl.getHeaderCtrlForColumn(columnGroup);
4609 if (headerGroupCtrl) {
4610 break;
4611 }
4612 }
4613 }
4614 catch (e_2_1) { e_2 = { error: e_2_1 }; }
4615 finally {
4616 try {
4617 if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
4618 }
4619 finally { if (e_2) throw e_2.error; }
4620 }
4621 if (headerGroupCtrl) {
4622 headerGroupCtrl.resizeLeafColumnsToFit();
4623 }
4624 }
4625 }
4626 catch (e_1_1) { e_1 = { error: e_1_1 }; }
4627 finally {
4628 try {
4629 if (columnGroups_1_1 && !columnGroups_1_1.done && (_a = columnGroups_1.return)) _a.call(columnGroups_1);
4630 }
4631 finally { if (e_1) throw e_1.error; }
4632 }
4633 return resizedColumns;
4634 };
4635 ColumnModel.prototype.autoSizeAllColumns = function (skipHeader, source) {
4636 if (source === void 0) { source = "api"; }
4637 var allDisplayedColumns = this.getAllDisplayedColumns();
4638 this.autoSizeColumns({ columns: allDisplayedColumns, skipHeader: skipHeader, source: source });
4639 };
4640 // Possible candidate for reuse (alot of recursive traversal duplication)
4641 ColumnModel.prototype.getColumnsFromTree = function (rootColumns) {
4642 var result = [];
4643 var recursiveFindColumns = function (childColumns) {
4644 for (var i = 0; i < childColumns.length; i++) {
4645 var child = childColumns[i];
4646 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
4647 result.push(child);
4648 }
4649 else if (child instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"]) {
4650 recursiveFindColumns(child.getChildren());
4651 }
4652 }
4653 };
4654 recursiveFindColumns(rootColumns);
4655 return result;
4656 };
4657 ColumnModel.prototype.getAllDisplayedTrees = function () {
4658 if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {
4659 return this.displayedTreeLeft
4660 .concat(this.displayedTreeCentre)
4661 .concat(this.displayedTreeRight);
4662 }
4663 return null;
4664 };
4665 // + columnSelectPanel
4666 ColumnModel.prototype.getPrimaryColumnTree = function () {
4667 return this.primaryColumnTree;
4668 };
4669 // + gridPanel -> for resizing the body and setting top margin
4670 ColumnModel.prototype.getHeaderRowCount = function () {
4671 return this.gridHeaderRowCount;
4672 };
4673 // + headerRenderer -> setting pinned body width
4674 ColumnModel.prototype.getDisplayedTreeLeft = function () {
4675 return this.displayedTreeLeft;
4676 };
4677 // + headerRenderer -> setting pinned body width
4678 ColumnModel.prototype.getDisplayedTreeRight = function () {
4679 return this.displayedTreeRight;
4680 };
4681 // + headerRenderer -> setting pinned body width
4682 ColumnModel.prototype.getDisplayedTreeCentre = function () {
4683 return this.displayedTreeCentre;
4684 };
4685 // gridPanel -> ensureColumnVisible
4686 ColumnModel.prototype.isColumnDisplayed = function (column) {
4687 return this.getAllDisplayedColumns().indexOf(column) >= 0;
4688 };
4689 // + csvCreator
4690 ColumnModel.prototype.getAllDisplayedColumns = function () {
4691 return this.displayedColumns;
4692 };
4693 ColumnModel.prototype.getViewportColumns = function () {
4694 return this.viewportColumns;
4695 };
4696 ColumnModel.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {
4697 if (!this.colSpanActive) {
4698 return this.displayedColumnsLeft;
4699 }
4700 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);
4701 };
4702 ColumnModel.prototype.getDisplayedRightColumnsForRow = function (rowNode) {
4703 if (!this.colSpanActive) {
4704 return this.displayedColumnsRight;
4705 }
4706 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);
4707 };
4708 ColumnModel.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {
4709 var result = [];
4710 var lastConsideredCol = null;
4711 var _loop_1 = function (i) {
4712 var col = displayedColumns[i];
4713 var maxAllowedColSpan = displayedColumns.length - i;
4714 var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);
4715 var columnsToCheckFilter = [col];
4716 if (colSpan > 1) {
4717 var colsToRemove = colSpan - 1;
4718 for (var j = 1; j <= colsToRemove; j++) {
4719 columnsToCheckFilter.push(displayedColumns[i + j]);
4720 }
4721 i += colsToRemove;
4722 }
4723 // see which cols we should take out for column virtualisation
4724 var filterPasses;
4725 if (filterCallback) {
4726 // if user provided a callback, means some columns may not be in the viewport.
4727 // the user will NOT provide a callback if we are talking about pinned areas,
4728 // as pinned areas have no horizontal scroll and do not virtualise the columns.
4729 // if lots of columns, that means column spanning, and we set filterPasses = true
4730 // if one or more of the columns spanned pass the filter.
4731 filterPasses = false;
4732 columnsToCheckFilter.forEach(function (colForFilter) {
4733 if (filterCallback(colForFilter)) {
4734 filterPasses = true;
4735 }
4736 });
4737 }
4738 else {
4739 filterPasses = true;
4740 }
4741 if (filterPasses) {
4742 if (result.length === 0 && lastConsideredCol) {
4743 var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;
4744 if (gapBeforeColumn) {
4745 result.push(lastConsideredCol);
4746 }
4747 }
4748 result.push(col);
4749 }
4750 lastConsideredCol = col;
4751 out_i_1 = i;
4752 };
4753 var out_i_1;
4754 for (var i = 0; i < displayedColumns.length; i++) {
4755 _loop_1(i);
4756 i = out_i_1;
4757 }
4758 return result;
4759 };
4760 // + rowRenderer
4761 // if we are not column spanning, this just returns back the virtual centre columns,
4762 // however if we are column spanning, then different rows can have different virtual
4763 // columns, so we have to work out the list for each individual row.
4764 ColumnModel.prototype.getViewportCenterColumnsForRow = function (rowNode) {
4765 var _this = this;
4766 if (!this.colSpanActive) {
4767 return this.viewportColumnsCenter;
4768 }
4769 var emptySpaceBeforeColumn = function (col) {
4770 var left = col.getLeft();
4771 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(left) && left > _this.viewportLeft;
4772 };
4773 // if doing column virtualisation, then we filter based on the viewport.
4774 var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInRowViewport.bind(this);
4775 return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);
4776 };
4777 ColumnModel.prototype.getAriaColumnIndex = function (col) {
4778 return this.getAllGridColumns().indexOf(col) + 1;
4779 };
4780 ColumnModel.prototype.isColumnInHeaderViewport = function (col) {
4781 // for headers, we never filter out autoHeaderHeight columns, if calculating
4782 if (col.isAutoHeaderHeight()) {
4783 return true;
4784 }
4785 return this.isColumnInRowViewport(col);
4786 };
4787 ColumnModel.prototype.isColumnInRowViewport = function (col) {
4788 // we never filter out autoHeight columns, as we need them in the DOM for calculating Auto Height
4789 if (col.isAutoHeight()) {
4790 return true;
4791 }
4792 var columnLeft = col.getLeft() || 0;
4793 var columnRight = columnLeft + col.getActualWidth();
4794 // adding 200 for buffer size, so some cols off viewport are rendered.
4795 // this helps horizontal scrolling so user rarely sees white space (unless
4796 // they scroll horizontally fast). however we are conservative, as the more
4797 // buffer the slower the vertical redraw speed
4798 var leftBounds = this.viewportLeft - 200;
4799 var rightBounds = this.viewportRight + 200;
4800 var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;
4801 var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;
4802 return !columnToMuchLeft && !columnToMuchRight;
4803 };
4804 // used by:
4805 // + angularGrid -> setting pinned body width
4806 // note: this should be cached
4807 ColumnModel.prototype.getDisplayedColumnsLeftWidth = function () {
4808 return this.getWidthOfColsInList(this.displayedColumnsLeft);
4809 };
4810 // note: this should be cached
4811 ColumnModel.prototype.getDisplayedColumnsRightWidth = function () {
4812 return this.getWidthOfColsInList(this.displayedColumnsRight);
4813 };
4814 ColumnModel.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {
4815 var _this = this;
4816 if (source === void 0) { source = "api"; }
4817 if (!keys || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(keys)) {
4818 return;
4819 }
4820 var atLeastOne = false;
4821 keys.forEach(function (key) {
4822 var columnToAdd = _this.getPrimaryColumn(key);
4823 if (!columnToAdd) {
4824 return;
4825 }
4826 if (actionIsAdd) {
4827 if (masterList.indexOf(columnToAdd) >= 0) {
4828 return;
4829 }
4830 masterList.push(columnToAdd);
4831 }
4832 else {
4833 if (masterList.indexOf(columnToAdd) < 0) {
4834 return;
4835 }
4836 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(masterList, columnToAdd);
4837 }
4838 columnCallback(columnToAdd);
4839 atLeastOne = true;
4840 });
4841 if (!atLeastOne) {
4842 return;
4843 }
4844 if (this.autoGroupsNeedBuilding) {
4845 this.updateGridColumns();
4846 }
4847 this.updateDisplayedColumns(source);
4848 var event = {
4849 type: eventType,
4850 columns: masterList,
4851 column: masterList.length === 1 ? masterList[0] : null,
4852 source: source
4853 };
4854 this.eventService.dispatchEvent(event);
4855 };
4856 ColumnModel.prototype.setRowGroupColumns = function (colKeys, source) {
4857 if (source === void 0) { source = "api"; }
4858 this.autoGroupsNeedBuilding = true;
4859 this.setPrimaryColumnList(colKeys, this.rowGroupColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.setRowGroupActive.bind(this), source);
4860 };
4861 ColumnModel.prototype.setRowGroupActive = function (active, column, source) {
4862 if (active === column.isRowGroupActive()) {
4863 return;
4864 }
4865 column.setRowGroupActive(active, source);
4866 if (active && !this.gridOptionsService.is('suppressRowGroupHidesColumns')) {
4867 this.setColumnVisible(column, false, source);
4868 }
4869 if (!active && !this.gridOptionsService.is('suppressMakeColumnVisibleAfterUnGroup')) {
4870 this.setColumnVisible(column, true, source);
4871 }
4872 };
4873 ColumnModel.prototype.addRowGroupColumn = function (key, source) {
4874 if (source === void 0) { source = "api"; }
4875 if (key) {
4876 this.addRowGroupColumns([key], source);
4877 }
4878 };
4879 ColumnModel.prototype.addRowGroupColumns = function (keys, source) {
4880 if (source === void 0) { source = "api"; }
4881 this.autoGroupsNeedBuilding = true;
4882 this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, source);
4883 };
4884 ColumnModel.prototype.removeRowGroupColumns = function (keys, source) {
4885 if (source === void 0) { source = "api"; }
4886 this.autoGroupsNeedBuilding = true;
4887 this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, source);
4888 };
4889 ColumnModel.prototype.removeRowGroupColumn = function (key, source) {
4890 if (source === void 0) { source = "api"; }
4891 if (key) {
4892 this.removeRowGroupColumns([key], source);
4893 }
4894 };
4895 ColumnModel.prototype.addPivotColumns = function (keys, source) {
4896 if (source === void 0) { source = "api"; }
4897 this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, source);
4898 };
4899 ColumnModel.prototype.setPivotColumns = function (colKeys, source) {
4900 if (source === void 0) { source = "api"; }
4901 this.setPrimaryColumnList(colKeys, this.pivotColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, function (added, column) {
4902 column.setPivotActive(added, source);
4903 }, source);
4904 };
4905 ColumnModel.prototype.addPivotColumn = function (key, source) {
4906 if (source === void 0) { source = "api"; }
4907 this.addPivotColumns([key], source);
4908 };
4909 ColumnModel.prototype.removePivotColumns = function (keys, source) {
4910 if (source === void 0) { source = "api"; }
4911 this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, source);
4912 };
4913 ColumnModel.prototype.removePivotColumn = function (key, source) {
4914 if (source === void 0) { source = "api"; }
4915 this.removePivotColumns([key], source);
4916 };
4917 ColumnModel.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, columnCallback, source) {
4918 var _this = this;
4919 masterList.length = 0;
4920 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(colKeys)) {
4921 colKeys.forEach(function (key) {
4922 var column = _this.getPrimaryColumn(key);
4923 if (column) {
4924 masterList.push(column);
4925 }
4926 });
4927 }
4928 (this.primaryColumns || []).forEach(function (column) {
4929 var added = masterList.indexOf(column) >= 0;
4930 columnCallback(added, column);
4931 });
4932 if (this.autoGroupsNeedBuilding) {
4933 this.updateGridColumns();
4934 }
4935 this.updateDisplayedColumns(source);
4936 this.dispatchColumnChangedEvent(eventName, masterList, source);
4937 };
4938 ColumnModel.prototype.setValueColumns = function (colKeys, source) {
4939 if (source === void 0) { source = "api"; }
4940 this.setPrimaryColumnList(colKeys, this.valueColumns, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.setValueActive.bind(this), source);
4941 };
4942 ColumnModel.prototype.setValueActive = function (active, column, source) {
4943 if (active === column.isValueActive()) {
4944 return;
4945 }
4946 column.setValueActive(active, source);
4947 if (active && !column.getAggFunc()) {
4948 var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);
4949 column.setAggFunc(initialAggFunc);
4950 }
4951 };
4952 ColumnModel.prototype.addValueColumns = function (keys, source) {
4953 if (source === void 0) { source = "api"; }
4954 this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, source);
4955 };
4956 ColumnModel.prototype.addValueColumn = function (colKey, source) {
4957 if (source === void 0) { source = "api"; }
4958 if (colKey) {
4959 this.addValueColumns([colKey], source);
4960 }
4961 };
4962 ColumnModel.prototype.removeValueColumn = function (colKey, source) {
4963 if (source === void 0) { source = "api"; }
4964 this.removeValueColumns([colKey], source);
4965 };
4966 ColumnModel.prototype.removeValueColumns = function (keys, source) {
4967 if (source === void 0) { source = "api"; }
4968 this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, source);
4969 };
4970 // returns the width we can set to this col, taking into consideration min and max widths
4971 ColumnModel.prototype.normaliseColumnWidth = function (column, newWidth) {
4972 var minWidth = column.getMinWidth();
4973 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && newWidth < minWidth) {
4974 newWidth = minWidth;
4975 }
4976 var maxWidth = column.getMaxWidth();
4977 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && column.isGreaterThanMax(newWidth)) {
4978 newWidth = maxWidth;
4979 }
4980 return newWidth;
4981 };
4982 ColumnModel.prototype.getPrimaryOrGridColumn = function (key) {
4983 var column = this.getPrimaryColumn(key);
4984 return column || this.getGridColumn(key);
4985 };
4986 ColumnModel.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column
4987 finished, // @finished - ends up in the event, tells the user if more events are to come
4988 source) {
4989 var _this = this;
4990 if (source === void 0) { source = "api"; }
4991 var sets = [];
4992 columnWidths.forEach(function (columnWidth) {
4993 var col = _this.getPrimaryOrGridColumn(columnWidth.key);
4994 if (!col) {
4995 return;
4996 }
4997 sets.push({
4998 width: columnWidth.newWidth,
4999 ratios: [1],
5000 columns: [col]
5001 });
5002 // if user wants to do shift resize by default, then we invert the shift operation
5003 var defaultIsShift = _this.gridOptionsService.get('colResizeDefault') === 'shift';
5004 if (defaultIsShift) {
5005 shiftKey = !shiftKey;
5006 }
5007 if (shiftKey) {
5008 var otherCol = _this.getDisplayedColAfter(col);
5009 if (!otherCol) {
5010 return;
5011 }
5012 var widthDiff = col.getActualWidth() - columnWidth.newWidth;
5013 var otherColWidth = otherCol.getActualWidth() + widthDiff;
5014 sets.push({
5015 width: otherColWidth,
5016 ratios: [1],
5017 columns: [otherCol]
5018 });
5019 }
5020 });
5021 if (sets.length === 0) {
5022 return;
5023 }
5024 this.resizeColumnSets({
5025 resizeSets: sets,
5026 finished: finished,
5027 source: source
5028 });
5029 };
5030 ColumnModel.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {
5031 var columns = columnResizeSet.columns, width = columnResizeSet.width;
5032 // every col has a min width, so sum them all up and see if we have enough room
5033 // for all the min widths
5034 var minWidthAccumulated = 0;
5035 var maxWidthAccumulated = 0;
5036 var maxWidthActive = true;
5037 columns.forEach(function (col) {
5038 var minWidth = col.getMinWidth();
5039 minWidthAccumulated += minWidth || 0;
5040 var maxWidth = col.getMaxWidth();
5041 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && maxWidth > 0) {
5042 maxWidthAccumulated += maxWidth;
5043 }
5044 else {
5045 // if at least one columns has no max width, it means the group of columns
5046 // then has no max width, as at least one column can take as much width as possible
5047 maxWidthActive = false;
5048 }
5049 });
5050 var minWidthPasses = width >= minWidthAccumulated;
5051 var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);
5052 return minWidthPasses && maxWidthPasses;
5053 };
5054 // method takes sets of columns and resizes them. either all sets will be resized, or nothing
5055 // be resized. this is used for example when user tries to resize a group and holds shift key,
5056 // then both the current group (grows), and the adjacent group (shrinks), will get resized,
5057 // so that's two sets for this method.
5058 ColumnModel.prototype.resizeColumnSets = function (params) {
5059 var _this = this;
5060 var resizeSets = params.resizeSets, finished = params.finished, source = params.source;
5061 var passMinMaxCheck = !resizeSets || resizeSets.every(function (columnResizeSet) { return _this.checkMinAndMaxWidthsForSet(columnResizeSet); });
5062 if (!passMinMaxCheck) {
5063 // even though we are not going to resize beyond min/max size, we still need to dispatch event when finished
5064 if (finished) {
5065 var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;
5066 this.dispatchColumnResizedEvent(columns, finished, source);
5067 }
5068 return; // don't resize!
5069 }
5070 var changedCols = [];
5071 var allResizedCols = [];
5072 resizeSets.forEach(function (set) {
5073 var width = set.width, columns = set.columns, ratios = set.ratios;
5074 // keep track of pixels used, and last column gets the remaining,
5075 // to cater for rounding errors, and min width adjustments
5076 var newWidths = {};
5077 var finishedCols = {};
5078 columns.forEach(function (col) { return allResizedCols.push(col); });
5079 // the loop below goes through each col. if a col exceeds it's min/max width,
5080 // it then gets set to its min/max width and the column is removed marked as 'finished'
5081 // and the calculation is done again leaving this column out. take for example columns
5082 // {A, width: 50, maxWidth: 100}
5083 // {B, width: 50}
5084 // {C, width: 50}
5085 // and then the set is set to width 600 - on the first pass the grid tries to set each column
5086 // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked
5087 // as 'finished' and the calculation is done again with the remaining cols B and C, which end up
5088 // splitting the remaining 500 pixels.
5089 var finishedColsGrew = true;
5090 var loopCount = 0;
5091 var _loop_2 = function () {
5092 loopCount++;
5093 if (loopCount > 1000) {
5094 // this should never happen, but in the future, someone might introduce a bug here,
5095 // so we stop the browser from hanging and report bug properly
5096 console.error('AG Grid: infinite loop in resizeColumnSets');
5097 return "break";
5098 }
5099 finishedColsGrew = false;
5100 var subsetCols = [];
5101 var subsetRatioTotal = 0;
5102 var pixelsToDistribute = width;
5103 columns.forEach(function (col, index) {
5104 var thisColFinished = finishedCols[col.getId()];
5105 if (thisColFinished) {
5106 pixelsToDistribute -= newWidths[col.getId()];
5107 }
5108 else {
5109 subsetCols.push(col);
5110 var ratioThisCol = ratios[index];
5111 subsetRatioTotal += ratioThisCol;
5112 }
5113 });
5114 // because we are not using all of the ratios (cols can be missing),
5115 // we scale the ratio. if all columns are included, then subsetRatioTotal=1,
5116 // and so the ratioScale will be 1.
5117 var ratioScale = 1 / subsetRatioTotal;
5118 subsetCols.forEach(function (col, index) {
5119 var lastCol = index === (subsetCols.length - 1);
5120 var colNewWidth;
5121 if (lastCol) {
5122 colNewWidth = pixelsToDistribute;
5123 }
5124 else {
5125 colNewWidth = Math.round(ratios[index] * width * ratioScale);
5126 pixelsToDistribute -= colNewWidth;
5127 }
5128 var minWidth = col.getMinWidth();
5129 var maxWidth = col.getMaxWidth();
5130 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && colNewWidth < minWidth) {
5131 colNewWidth = minWidth;
5132 finishedCols[col.getId()] = true;
5133 finishedColsGrew = true;
5134 }
5135 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {
5136 colNewWidth = maxWidth;
5137 finishedCols[col.getId()] = true;
5138 finishedColsGrew = true;
5139 }
5140 newWidths[col.getId()] = colNewWidth;
5141 });
5142 };
5143 while (finishedColsGrew) {
5144 var state_1 = _loop_2();
5145 if (state_1 === "break")
5146 break;
5147 }
5148 columns.forEach(function (col) {
5149 var newWidth = newWidths[col.getId()];
5150 var actualWidth = col.getActualWidth();
5151 if (actualWidth !== newWidth) {
5152 col.setActualWidth(newWidth, source);
5153 changedCols.push(col);
5154 }
5155 });
5156 });
5157 // if no cols changed, then no need to update more or send event.
5158 var atLeastOneColChanged = changedCols.length > 0;
5159 var flexedCols = [];
5160 if (atLeastOneColChanged) {
5161 flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });
5162 this.setLeftValues(source);
5163 this.updateBodyWidths();
5164 this.checkViewportColumns();
5165 }
5166 // check for change first, to avoid unnecessary firing of events
5167 // however we always dispatch 'finished' events. this is important
5168 // when groups are resized, as if the group is changing slowly,
5169 // eg 1 pixel at a time, then each change will dispatch change events
5170 // in all the columns in the group, but only one with get the pixel.
5171 var colsForEvent = allResizedCols.concat(flexedCols);
5172 if (atLeastOneColChanged || finished) {
5173 this.dispatchColumnResizedEvent(colsForEvent, finished, source, flexedCols);
5174 }
5175 };
5176 ColumnModel.prototype.setColumnAggFunc = function (key, aggFunc, source) {
5177 if (source === void 0) { source = "api"; }
5178 if (!key) {
5179 return;
5180 }
5181 var column = this.getPrimaryColumn(key);
5182 if (!column) {
5183 return;
5184 }
5185 column.setAggFunc(aggFunc);
5186 this.dispatchColumnChangedEvent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, [column], source);
5187 };
5188 ColumnModel.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {
5189 if (source === void 0) { source = "api"; }
5190 var column = this.rowGroupColumns[fromIndex];
5191 this.rowGroupColumns.splice(fromIndex, 1);
5192 this.rowGroupColumns.splice(toIndex, 0, column);
5193 var event = {
5194 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED,
5195 columns: this.rowGroupColumns,
5196 column: this.rowGroupColumns.length === 1 ? this.rowGroupColumns[0] : null,
5197 source: source
5198 };
5199 this.eventService.dispatchEvent(event);
5200 };
5201 ColumnModel.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source, finished) {
5202 if (source === void 0) { source = "api"; }
5203 if (finished === void 0) { finished = true; }
5204 this.columnAnimationService.start();
5205 if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {
5206 console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);
5207 console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');
5208 return;
5209 }
5210 // we want to pull all the columns out first and put them into an ordered list
5211 var movedColumns = this.getGridColumns(columnsToMoveKeys);
5212 var failedRules = !this.doesMovePassRules(movedColumns, toIndex);
5213 if (failedRules) {
5214 return;
5215 }
5216 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["moveInArray"])(this.gridColumns, movedColumns, toIndex);
5217 this.updateDisplayedColumns(source);
5218 this.dispatchColumnMovedEvent({ movedColumns: movedColumns, source: source, toIndex: toIndex, finished: finished });
5219 this.columnAnimationService.finish();
5220 };
5221 ColumnModel.prototype.doesMovePassRules = function (columnsToMove, toIndex) {
5222 // make a copy of what the grid columns would look like after the move
5223 var proposedColumnOrder = this.getProposedColumnOrder(columnsToMove, toIndex);
5224 return this.doesOrderPassRules(proposedColumnOrder);
5225 };
5226 ColumnModel.prototype.doesOrderPassRules = function (gridOrder) {
5227 if (!this.doesMovePassMarryChildren(gridOrder)) {
5228 return false;
5229 }
5230 if (!this.doesMovePassLockedPositions(gridOrder)) {
5231 return false;
5232 }
5233 return true;
5234 };
5235 ColumnModel.prototype.getProposedColumnOrder = function (columnsToMove, toIndex) {
5236 var proposedColumnOrder = this.gridColumns.slice();
5237 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["moveInArray"])(proposedColumnOrder, columnsToMove, toIndex);
5238 return proposedColumnOrder;
5239 };
5240 // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns
5241 // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]
5242 ColumnModel.prototype.sortColumnsLikeGridColumns = function (cols) {
5243 var _this = this;
5244 if (!cols || cols.length <= 1) {
5245 return;
5246 }
5247 var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;
5248 if (notAllColsInGridColumns) {
5249 return;
5250 }
5251 cols.sort(function (a, b) {
5252 var indexA = _this.gridColumns.indexOf(a);
5253 var indexB = _this.gridColumns.indexOf(b);
5254 return indexA - indexB;
5255 });
5256 };
5257 ColumnModel.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {
5258 // Placement is a number indicating 'left' 'center' or 'right' as 0 1 2
5259 var lastPlacement = 0;
5260 var rulePassed = true;
5261 var lockPositionToPlacement = function (position) {
5262 if (!position) { // false or undefined
5263 return 1;
5264 }
5265 if (position === true) {
5266 return 0;
5267 }
5268 return position === 'left' ? 0 : 2; // Otherwise 'right'
5269 };
5270 proposedColumnOrder.forEach(function (col) {
5271 var placement = lockPositionToPlacement(col.getColDef().lockPosition);
5272 if (placement < lastPlacement) { // If placement goes down, we're not in the correct order
5273 rulePassed = false;
5274 }
5275 lastPlacement = placement;
5276 });
5277 return rulePassed;
5278 };
5279 ColumnModel.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {
5280 var rulePassed = true;
5281 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {
5282 if (!(child instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"])) {
5283 return;
5284 }
5285 var columnGroup = child;
5286 var colGroupDef = columnGroup.getColGroupDef();
5287 var marryChildren = colGroupDef && colGroupDef.marryChildren;
5288 if (!marryChildren) {
5289 return;
5290 }
5291 var newIndexes = [];
5292 columnGroup.getLeafColumns().forEach(function (col) {
5293 var newColIndex = allColumnsCopy.indexOf(col);
5294 newIndexes.push(newColIndex);
5295 });
5296 var maxIndex = Math.max.apply(Math, newIndexes);
5297 var minIndex = Math.min.apply(Math, newIndexes);
5298 // spread is how far the first column in this group is away from the last column
5299 var spread = maxIndex - minIndex;
5300 var maxSpread = columnGroup.getLeafColumns().length - 1;
5301 // if the columns
5302 if (spread > maxSpread) {
5303 rulePassed = false;
5304 }
5305 // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)
5306 // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));
5307 });
5308 return rulePassed;
5309 };
5310 ColumnModel.prototype.moveColumn = function (key, toIndex, source) {
5311 if (source === void 0) { source = "api"; }
5312 this.moveColumns([key], toIndex, source);
5313 };
5314 ColumnModel.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {
5315 if (source === void 0) { source = "api"; }
5316 var column = this.gridColumns[fromIndex];
5317 this.moveColumn(column, toIndex, source);
5318 };
5319 ColumnModel.prototype.getColumnDefs = function () {
5320 var _this = this;
5321 if (!this.primaryColumns) {
5322 return;
5323 }
5324 var cols = this.primaryColumns.slice();
5325 if (this.gridColsArePrimary) {
5326 cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });
5327 }
5328 else if (this.lastPrimaryOrder) {
5329 cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });
5330 }
5331 return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);
5332 };
5333 // used by:
5334 // + angularGrid -> for setting body width
5335 // + rowController -> setting main row widths (when inserting and resizing)
5336 // need to cache this
5337 ColumnModel.prototype.getBodyContainerWidth = function () {
5338 return this.bodyWidth;
5339 };
5340 ColumnModel.prototype.getContainerWidth = function (pinned) {
5341 switch (pinned) {
5342 case 'left':
5343 return this.leftWidth;
5344 case 'right':
5345 return this.rightWidth;
5346 default:
5347 return this.bodyWidth;
5348 }
5349 };
5350 // after setColumnWidth or updateGroupsAndDisplayedColumns
5351 ColumnModel.prototype.updateBodyWidths = function () {
5352 var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);
5353 var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);
5354 var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);
5355 // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed
5356 // columns, due to RTL inverting the y coordinates
5357 this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;
5358 var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;
5359 if (atLeastOneChanged) {
5360 this.bodyWidth = newBodyWidth;
5361 this.leftWidth = newLeftWidth;
5362 this.rightWidth = newRightWidth;
5363 // when this fires, it is picked up by the gridPanel, which ends up in
5364 // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()
5365 var event_2 = {
5366 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,
5367 };
5368 this.eventService.dispatchEvent(event_2);
5369 }
5370 };
5371 // + rowController
5372 ColumnModel.prototype.getValueColumns = function () {
5373 return this.valueColumns ? this.valueColumns : [];
5374 };
5375 // + rowController
5376 ColumnModel.prototype.getPivotColumns = function () {
5377 return this.pivotColumns ? this.pivotColumns : [];
5378 };
5379 // + clientSideRowModel
5380 ColumnModel.prototype.isPivotActive = function () {
5381 return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;
5382 };
5383 // + toolPanel
5384 ColumnModel.prototype.getRowGroupColumns = function () {
5385 return this.rowGroupColumns ? this.rowGroupColumns : [];
5386 };
5387 // + rowController -> while inserting rows
5388 ColumnModel.prototype.getDisplayedCenterColumns = function () {
5389 return this.displayedColumnsCenter;
5390 };
5391 // + rowController -> while inserting rows
5392 ColumnModel.prototype.getDisplayedLeftColumns = function () {
5393 return this.displayedColumnsLeft;
5394 };
5395 ColumnModel.prototype.getDisplayedRightColumns = function () {
5396 return this.displayedColumnsRight;
5397 };
5398 ColumnModel.prototype.getDisplayedColumns = function (type) {
5399 switch (type) {
5400 case 'left':
5401 return this.getDisplayedLeftColumns();
5402 case 'right':
5403 return this.getDisplayedRightColumns();
5404 default:
5405 return this.getDisplayedCenterColumns();
5406 }
5407 };
5408 // used by:
5409 // + clientSideRowController -> sorting, building quick filter text
5410 // + headerRenderer -> sorting (clearing icon)
5411 ColumnModel.prototype.getAllPrimaryColumns = function () {
5412 return this.primaryColumns ? this.primaryColumns.slice() : null;
5413 };
5414 ColumnModel.prototype.getSecondaryColumns = function () {
5415 return this.secondaryColumns ? this.secondaryColumns.slice() : null;
5416 };
5417 ColumnModel.prototype.getAllColumnsForQuickFilter = function () {
5418 return this.columnsForQuickFilter;
5419 };
5420 // + moveColumnController
5421 ColumnModel.prototype.getAllGridColumns = function () {
5422 return this.gridColumns;
5423 };
5424 ColumnModel.prototype.isEmpty = function () {
5425 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.gridColumns);
5426 };
5427 ColumnModel.prototype.isRowGroupEmpty = function () {
5428 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.rowGroupColumns);
5429 };
5430 ColumnModel.prototype.setColumnVisible = function (key, visible, source) {
5431 if (source === void 0) { source = "api"; }
5432 this.setColumnsVisible([key], visible, source);
5433 };
5434 ColumnModel.prototype.setColumnsVisible = function (keys, visible, source) {
5435 if (visible === void 0) { visible = false; }
5436 if (source === void 0) { source = "api"; }
5437 this.applyColumnState({
5438 state: keys.map(function (key) { return ({
5439 colId: typeof key === 'string' ? key : key.getColId(),
5440 hide: !visible,
5441 }); }),
5442 }, source);
5443 };
5444 ColumnModel.prototype.setColumnPinned = function (key, pinned, source) {
5445 if (source === void 0) { source = "api"; }
5446 if (key) {
5447 this.setColumnsPinned([key], pinned, source);
5448 }
5449 };
5450 ColumnModel.prototype.setColumnsPinned = function (keys, pinned, source) {
5451 if (source === void 0) { source = "api"; }
5452 if (this.gridOptionsService.isDomLayout('print')) {
5453 console.warn("AG Grid: Changing the column pinning status is not allowed with domLayout='print'");
5454 return;
5455 }
5456 this.columnAnimationService.start();
5457 var actualPinned;
5458 if (pinned === true || pinned === 'left') {
5459 actualPinned = 'left';
5460 }
5461 else if (pinned === 'right') {
5462 actualPinned = 'right';
5463 }
5464 else {
5465 actualPinned = null;
5466 }
5467 this.actionOnGridColumns(keys, function (col) {
5468 if (col.getPinned() !== actualPinned) {
5469 col.setPinned(actualPinned);
5470 return true;
5471 }
5472 return false;
5473 }, source, function () {
5474 var event = {
5475 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PINNED,
5476 pinned: actualPinned,
5477 column: null,
5478 columns: null,
5479 source: source
5480 };
5481 return event;
5482 });
5483 this.columnAnimationService.finish();
5484 };
5485 // does an action on a set of columns. provides common functionality for looking up the
5486 // columns based on key, getting a list of effected columns, and then updated the event
5487 // with either one column (if it was just one col) or a list of columns
5488 // used by: autoResize, setVisible, setPinned
5489 ColumnModel.prototype.actionOnGridColumns = function (// the column keys this action will be on
5490 keys,
5491 // the action to do - if this returns false, the column was skipped
5492 // and won't be included in the event
5493 action,
5494 // should return back a column event of the right type
5495 source, createEvent) {
5496 var _this = this;
5497 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(keys)) {
5498 return;
5499 }
5500 var updatedColumns = [];
5501 keys.forEach(function (key) {
5502 var column = _this.getGridColumn(key);
5503 if (!column) {
5504 return;
5505 }
5506 // need to check for false with type (ie !== instead of !=)
5507 // as not returning anything (undefined) would also be false
5508 var resultOfAction = action(column);
5509 if (resultOfAction !== false) {
5510 updatedColumns.push(column);
5511 }
5512 });
5513 if (!updatedColumns.length) {
5514 return;
5515 }
5516 this.updateDisplayedColumns(source);
5517 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(createEvent) && createEvent) {
5518 var event_3 = createEvent();
5519 event_3.columns = updatedColumns;
5520 event_3.column = updatedColumns.length === 1 ? updatedColumns[0] : null;
5521 this.eventService.dispatchEvent(event_3);
5522 }
5523 };
5524 ColumnModel.prototype.getDisplayedColBefore = function (col) {
5525 var allDisplayedColumns = this.getAllDisplayedColumns();
5526 var oldIndex = allDisplayedColumns.indexOf(col);
5527 if (oldIndex > 0) {
5528 return allDisplayedColumns[oldIndex - 1];
5529 }
5530 return null;
5531 };
5532 // used by:
5533 // + rowRenderer -> for navigation
5534 ColumnModel.prototype.getDisplayedColAfter = function (col) {
5535 var allDisplayedColumns = this.getAllDisplayedColumns();
5536 var oldIndex = allDisplayedColumns.indexOf(col);
5537 if (oldIndex < (allDisplayedColumns.length - 1)) {
5538 return allDisplayedColumns[oldIndex + 1];
5539 }
5540 return null;
5541 };
5542 ColumnModel.prototype.getDisplayedGroupAfter = function (columnGroup) {
5543 return this.getDisplayedGroupAtDirection(columnGroup, 'After');
5544 };
5545 ColumnModel.prototype.getDisplayedGroupBefore = function (columnGroup) {
5546 return this.getDisplayedGroupAtDirection(columnGroup, 'Before');
5547 };
5548 ColumnModel.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {
5549 // pick the last displayed column in this group
5550 var requiredLevel = columnGroup.getProvidedColumnGroup().getLevel() + columnGroup.getPaddingLevel();
5551 var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();
5552 var col = direction === 'After' ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(colGroupLeafColumns) : colGroupLeafColumns[0];
5553 var getDisplayColMethod = "getDisplayedCol" + direction;
5554 while (true) {
5555 // keep moving to the next col, until we get to another group
5556 var column = this[getDisplayColMethod](col);
5557 if (!column) {
5558 return null;
5559 }
5560 var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);
5561 if (groupPointer !== columnGroup) {
5562 return groupPointer;
5563 }
5564 }
5565 };
5566 ColumnModel.prototype.getColumnGroupAtLevel = function (column, level) {
5567 // get group at same level as the one we are looking for
5568 var groupPointer = column.getParent();
5569 var originalGroupLevel;
5570 var groupPointerLevel;
5571 while (true) {
5572 var groupPointerProvidedColumnGroup = groupPointer.getProvidedColumnGroup();
5573 originalGroupLevel = groupPointerProvidedColumnGroup.getLevel();
5574 groupPointerLevel = groupPointer.getPaddingLevel();
5575 if (originalGroupLevel + groupPointerLevel <= level) {
5576 break;
5577 }
5578 groupPointer = groupPointer.getParent();
5579 }
5580 return groupPointer;
5581 };
5582 ColumnModel.prototype.isPinningLeft = function () {
5583 return this.displayedColumnsLeft.length > 0;
5584 };
5585 ColumnModel.prototype.isPinningRight = function () {
5586 return this.displayedColumnsRight.length > 0;
5587 };
5588 ColumnModel.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {
5589 var _a;
5590 return (_a = []).concat.apply(_a, __spread([
5591 this.primaryColumns || [],
5592 this.groupAutoColumns || [],
5593 this.secondaryColumns || [],
5594 ]));
5595 };
5596 ColumnModel.prototype.createStateItemFromColumn = function (column) {
5597 var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;
5598 var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;
5599 var aggFunc = column.isValueActive() ? column.getAggFunc() : null;
5600 var sort = column.getSort() != null ? column.getSort() : null;
5601 var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;
5602 var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;
5603 var res = {
5604 colId: column.getColId(),
5605 width: column.getActualWidth(),
5606 hide: !column.isVisible(),
5607 pinned: column.getPinned(),
5608 sort: sort,
5609 sortIndex: sortIndex,
5610 aggFunc: aggFunc,
5611 rowGroup: column.isRowGroupActive(),
5612 rowGroupIndex: rowGroupIndex,
5613 pivot: column.isPivotActive(),
5614 pivotIndex: pivotIndex,
5615 flex: flex
5616 };
5617 return res;
5618 };
5619 ColumnModel.prototype.getColumnState = function () {
5620 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.primaryColumns) || !this.isAlive()) {
5621 return [];
5622 }
5623 var colsForState = this.getPrimaryAndSecondaryAndAutoColumns();
5624 var res = colsForState.map(this.createStateItemFromColumn.bind(this));
5625 this.orderColumnStateList(res);
5626 return res;
5627 };
5628 ColumnModel.prototype.orderColumnStateList = function (columnStateList) {
5629 // for fast looking, store the index of each column
5630 var colIdToGridIndexMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));
5631 columnStateList.sort(function (itemA, itemB) {
5632 var posA = colIdToGridIndexMap.has(itemA.colId) ? colIdToGridIndexMap.get(itemA.colId) : -1;
5633 var posB = colIdToGridIndexMap.has(itemB.colId) ? colIdToGridIndexMap.get(itemB.colId) : -1;
5634 return posA - posB;
5635 });
5636 };
5637 ColumnModel.prototype.resetColumnState = function (source) {
5638 // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,
5639 // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.
5640 // As a work around, developers should just put lockPosition columns first in their colDef list.
5641 if (source === void 0) { source = "api"; }
5642 // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list
5643 var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);
5644 var columnStates = [];
5645 // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.
5646 // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,
5647 // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000
5648 var letRowGroupIndex = 1000;
5649 var letPivotIndex = 1000;
5650 var colsToProcess = [];
5651 if (this.groupAutoColumns) {
5652 colsToProcess = colsToProcess.concat(this.groupAutoColumns);
5653 }
5654 if (primaryColumns) {
5655 colsToProcess = colsToProcess.concat(primaryColumns);
5656 }
5657 colsToProcess.forEach(function (column) {
5658 var getValueOrNull = function (a, b) { return a != null ? a : b != null ? b : null; };
5659 var colDef = column.getColDef();
5660 var sort = getValueOrNull(colDef.sort, colDef.initialSort);
5661 var sortIndex = getValueOrNull(colDef.sortIndex, colDef.initialSortIndex);
5662 var hide = getValueOrNull(colDef.hide, colDef.initialHide);
5663 var pinned = getValueOrNull(colDef.pinned, colDef.initialPinned);
5664 var width = getValueOrNull(colDef.width, colDef.initialWidth);
5665 var flex = getValueOrNull(colDef.flex, colDef.initialFlex);
5666 var rowGroupIndex = getValueOrNull(colDef.rowGroupIndex, colDef.initialRowGroupIndex);
5667 var rowGroup = getValueOrNull(colDef.rowGroup, colDef.initialRowGroup);
5668 if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {
5669 rowGroupIndex = null;
5670 rowGroup = null;
5671 }
5672 var pivotIndex = getValueOrNull(colDef.pivotIndex, colDef.initialPivotIndex);
5673 var pivot = getValueOrNull(colDef.pivot, colDef.initialPivot);
5674 if (pivotIndex == null && (pivot == null || pivot == false)) {
5675 pivotIndex = null;
5676 pivot = null;
5677 }
5678 var aggFunc = getValueOrNull(colDef.aggFunc, colDef.initialAggFunc);
5679 var stateItem = {
5680 colId: column.getColId(),
5681 sort: sort,
5682 sortIndex: sortIndex,
5683 hide: hide,
5684 pinned: pinned,
5685 width: width,
5686 flex: flex,
5687 rowGroup: rowGroup,
5688 rowGroupIndex: rowGroupIndex,
5689 pivot: pivot,
5690 pivotIndex: pivotIndex,
5691 aggFunc: aggFunc,
5692 };
5693 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(rowGroupIndex) && rowGroup) {
5694 stateItem.rowGroupIndex = letRowGroupIndex++;
5695 }
5696 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(pivotIndex) && pivot) {
5697 stateItem.pivotIndex = letPivotIndex++;
5698 }
5699 columnStates.push(stateItem);
5700 });
5701 this.applyColumnState({ state: columnStates, applyOrder: true }, source);
5702 };
5703 ColumnModel.prototype.applyColumnState = function (params, source) {
5704 var _this = this;
5705 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(this.primaryColumns)) {
5706 return false;
5707 }
5708 if (params && params.state && !params.state.forEach) {
5709 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.');
5710 return false;
5711 }
5712 var applyStates = function (states, existingColumns, getById) {
5713 var dispatchEventsFunc = _this.compareColumnStatesAndDispatchEvents(source);
5714 _this.autoGroupsNeedBuilding = true;
5715 // at the end below, this list will have all columns we got no state for
5716 var columnsWithNoState = existingColumns.slice();
5717 var rowGroupIndexes = {};
5718 var pivotIndexes = {};
5719 var autoGroupColumnStates = [];
5720 // If pivoting is modified, these are the states we try to reapply after
5721 // the secondary columns are re-generated
5722 var unmatchedAndAutoStates = [];
5723 var unmatchedCount = 0;
5724 var previousRowGroupCols = _this.rowGroupColumns.slice();
5725 var previousPivotCols = _this.pivotColumns.slice();
5726 states.forEach(function (state) {
5727 var colId = state.colId || '';
5728 // auto group columns are re-created so deferring syncing with ColumnState
5729 var isAutoGroupColumn = colId.startsWith(_autoGroupColService__WEBPACK_IMPORTED_MODULE_7__["GROUP_AUTO_COLUMN_ID"]);
5730 if (isAutoGroupColumn) {
5731 autoGroupColumnStates.push(state);
5732 unmatchedAndAutoStates.push(state);
5733 return;
5734 }
5735 var column = getById(colId);
5736 if (!column) {
5737 unmatchedAndAutoStates.push(state);
5738 unmatchedCount += 1;
5739 }
5740 else {
5741 _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);
5742 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(columnsWithNoState, column);
5743 }
5744 });
5745 // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden
5746 var applyDefaultsFunc = function (col) {
5747 return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);
5748 };
5749 columnsWithNoState.forEach(applyDefaultsFunc);
5750 // sort the lists according to the indexes that were provided
5751 var comparator = function (indexes, oldList, colA, colB) {
5752 var indexA = indexes[colA.getId()];
5753 var indexB = indexes[colB.getId()];
5754 var aHasIndex = indexA != null;
5755 var bHasIndex = indexB != null;
5756 if (aHasIndex && bHasIndex) {
5757 // both a and b are new cols with index, so sort on index
5758 return indexA - indexB;
5759 }
5760 if (aHasIndex) {
5761 // a has an index, so it should be before a
5762 return -1;
5763 }
5764 if (bHasIndex) {
5765 // b has an index, so it should be before a
5766 return 1;
5767 }
5768 var oldIndexA = oldList.indexOf(colA);
5769 var oldIndexB = oldList.indexOf(colB);
5770 var aHasOldIndex = oldIndexA >= 0;
5771 var bHasOldIndex = oldIndexB >= 0;
5772 if (aHasOldIndex && bHasOldIndex) {
5773 // both a and b are old cols, so sort based on last order
5774 return oldIndexA - oldIndexB;
5775 }
5776 if (aHasOldIndex) {
5777 // a is old, b is new, so b is first
5778 return -1;
5779 }
5780 // this bit does matter, means both are new cols
5781 // but without index or that b is old and a is new
5782 return 1;
5783 };
5784 _this.rowGroupColumns.sort(comparator.bind(_this, rowGroupIndexes, previousRowGroupCols));
5785 _this.pivotColumns.sort(comparator.bind(_this, pivotIndexes, previousPivotCols));
5786 _this.updateGridColumns();
5787 // sync newly created auto group columns with ColumnState
5788 var autoGroupColsCopy = _this.groupAutoColumns ? _this.groupAutoColumns.slice() : [];
5789 autoGroupColumnStates.forEach(function (stateItem) {
5790 var autoCol = _this.getAutoColumn(stateItem.colId);
5791 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(autoGroupColsCopy, autoCol);
5792 _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);
5793 });
5794 // autogroup cols with nothing else, apply the default
5795 autoGroupColsCopy.forEach(applyDefaultsFunc);
5796 _this.applyOrderAfterApplyState(params);
5797 _this.updateDisplayedColumns(source);
5798 _this.dispatchEverythingChanged(source);
5799 dispatchEventsFunc(); // Will trigger secondary column changes if pivoting modified
5800 return { unmatchedAndAutoStates: unmatchedAndAutoStates, unmatchedCount: unmatchedCount };
5801 };
5802 this.columnAnimationService.start();
5803 var _a = applyStates(params.state || [], this.primaryColumns || [], function (id) { return _this.getPrimaryColumn(id); }), unmatchedAndAutoStates = _a.unmatchedAndAutoStates, unmatchedCount = _a.unmatchedCount;
5804 // If there are still states left over, see if we can apply them to newly generated
5805 // secondary or auto columns. Also if defaults exist, ensure they are applied to secondary cols
5806 if (unmatchedAndAutoStates.length > 0 || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(params.defaultState)) {
5807 unmatchedCount = applyStates(unmatchedAndAutoStates, this.secondaryColumns || [], function (id) { return _this.getSecondaryColumn(id); }).unmatchedCount;
5808 }
5809 this.columnAnimationService.finish();
5810 return unmatchedCount === 0; // Successful if no states unaccounted for
5811 };
5812 ColumnModel.prototype.applyOrderAfterApplyState = function (params) {
5813 var _this = this;
5814 if (!params.applyOrder || !params.state) {
5815 return;
5816 }
5817 var newOrder = [];
5818 var processedColIds = {};
5819 params.state.forEach(function (item) {
5820 if (!item.colId || processedColIds[item.colId]) {
5821 return;
5822 }
5823 var col = _this.gridColumnsMap[item.colId];
5824 if (col) {
5825 newOrder.push(col);
5826 processedColIds[item.colId] = true;
5827 }
5828 });
5829 // add in all other columns
5830 var autoGroupInsertIndex = 0;
5831 this.gridColumns.forEach(function (col) {
5832 var colId = col.getColId();
5833 var alreadyProcessed = processedColIds[colId] != null;
5834 if (alreadyProcessed) {
5835 return;
5836 }
5837 var isAutoGroupCol = colId.startsWith(_autoGroupColService__WEBPACK_IMPORTED_MODULE_7__["GROUP_AUTO_COLUMN_ID"]);
5838 if (isAutoGroupCol) {
5839 // auto group columns, if missing from state list, are added to the start.
5840 // it's common to have autoGroup missing, as grouping could be on by default
5841 // on a column, but the user could of since removed the grouping via the UI.
5842 // if we don't inc the insert index, autoGroups will be inserted in reverse order
5843 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["insertIntoArray"])(newOrder, col, autoGroupInsertIndex++);
5844 }
5845 else {
5846 // normal columns, if missing from state list, are added at the end
5847 newOrder.push(col);
5848 }
5849 });
5850 // this is already done in updateGridColumns, however we changed the order above (to match the order of the state
5851 // columns) so we need to do it again. we could of put logic into the order above to take into account fixed
5852 // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here
5853 // is less sexy for the code here, but it keeps consistency.
5854 newOrder = this.placeLockedColumns(newOrder);
5855 if (!this.doesMovePassMarryChildren(newOrder)) {
5856 console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');
5857 return;
5858 }
5859 this.gridColumns = newOrder;
5860 };
5861 ColumnModel.prototype.compareColumnStatesAndDispatchEvents = function (source) {
5862 var _this = this;
5863 var startState = {
5864 rowGroupColumns: this.rowGroupColumns.slice(),
5865 pivotColumns: this.pivotColumns.slice(),
5866 valueColumns: this.valueColumns.slice()
5867 };
5868 var columnStateBefore = this.getColumnState();
5869 var columnStateBeforeMap = {};
5870 columnStateBefore.forEach(function (col) {
5871 columnStateBeforeMap[col.colId] = col;
5872 });
5873 return function () {
5874 var colsForState = _this.getPrimaryAndSecondaryAndAutoColumns();
5875 // dispatches generic ColumnEvents where all columns are returned rather than what has changed
5876 var dispatchWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {
5877 var beforeList = colsBefore.map(idMapper);
5878 var afterList = colsAfter.map(idMapper);
5879 var unchanged = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(beforeList, afterList);
5880 if (unchanged) {
5881 return;
5882 }
5883 // returning all columns rather than what has changed!
5884 var event = {
5885 type: eventType,
5886 columns: colsAfter,
5887 column: colsAfter.length === 1 ? colsAfter[0] : null,
5888 source: source
5889 };
5890 _this.eventService.dispatchEvent(event);
5891 };
5892 // determines which columns have changed according to supplied predicate
5893 var getChangedColumns = function (changedPredicate) {
5894 var changedColumns = [];
5895 colsForState.forEach(function (column) {
5896 var colStateBefore = columnStateBeforeMap[column.getColId()];
5897 if (colStateBefore && changedPredicate(colStateBefore, column)) {
5898 changedColumns.push(column);
5899 }
5900 });
5901 return changedColumns;
5902 };
5903 var columnIdMapper = function (c) { return c.getColId(); };
5904 dispatchWhenListsDifferent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);
5905 dispatchWhenListsDifferent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);
5906 var valueChangePredicate = function (cs, c) {
5907 var oldActive = cs.aggFunc != null;
5908 var activeChanged = oldActive != c.isValueActive();
5909 // we only check aggFunc if the agg is active
5910 var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();
5911 return activeChanged || aggFuncChanged;
5912 };
5913 var changedValues = getChangedColumns(valueChangePredicate);
5914 if (changedValues.length > 0) {
5915 // we pass all value columns, now the ones that changed. this is the same
5916 // as pivot and rowGroup cols, but different to all other properties below.
5917 // this is more for backwards compatibility, as it's always been this way.
5918 // really it should be the other way, as the order of the cols makes no difference
5919 // for valueColumns (apart from displaying them in the tool panel).
5920 _this.dispatchColumnChangedEvent(_events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, _this.valueColumns, source);
5921 }
5922 var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };
5923 _this.dispatchColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);
5924 var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };
5925 _this.dispatchColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);
5926 var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };
5927 _this.dispatchColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);
5928 var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };
5929 if (getChangedColumns(sortChangePredicate).length > 0) {
5930 _this.sortController.dispatchSortChangedEvents(source);
5931 }
5932 // special handling for moved column events
5933 _this.normaliseColumnMovedEventForColumnState(columnStateBefore, source);
5934 };
5935 };
5936 ColumnModel.prototype.getCommonValue = function (cols, valueGetter) {
5937 if (!cols || cols.length == 0) {
5938 return undefined;
5939 }
5940 // compare each value to the first value. if nothing differs, then value is common so return it.
5941 var firstValue = valueGetter(cols[0]);
5942 for (var i = 1; i < cols.length; i++) {
5943 if (firstValue !== valueGetter(cols[i])) {
5944 // values differ, no common value
5945 return undefined;
5946 }
5947 }
5948 return firstValue;
5949 };
5950 ColumnModel.prototype.normaliseColumnMovedEventForColumnState = function (colStateBefore, source) {
5951 // we are only interested in columns that were both present and visible before and after
5952 var _this = this;
5953 var colStateAfter = this.getColumnState();
5954 var colStateAfterMapped = {};
5955 colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });
5956 // get id's of cols in both before and after lists
5957 var colsIntersectIds = {};
5958 colStateBefore.forEach(function (s) {
5959 if (colStateAfterMapped[s.colId]) {
5960 colsIntersectIds[s.colId] = true;
5961 }
5962 });
5963 // filter state lists, so we only have cols that were present before and after
5964 var beforeFiltered = colStateBefore.filter(function (c) { return colsIntersectIds[c.colId]; });
5965 var afterFiltered = colStateAfter.filter(function (c) { return colsIntersectIds[c.colId]; });
5966 // see if any cols are in a different location
5967 var movedColumns = [];
5968 afterFiltered.forEach(function (csAfter, index) {
5969 var csBefore = beforeFiltered && beforeFiltered[index];
5970 if (csBefore && csBefore.colId !== csAfter.colId) {
5971 var gridCol = _this.getGridColumn(csBefore.colId);
5972 if (gridCol) {
5973 movedColumns.push(gridCol);
5974 }
5975 }
5976 });
5977 if (!movedColumns.length) {
5978 return;
5979 }
5980 this.dispatchColumnMovedEvent({ movedColumns: movedColumns, source: source, finished: true });
5981 };
5982 ColumnModel.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {
5983 if (!column) {
5984 return;
5985 }
5986 var getValue = function (key1, key2) {
5987 var obj = { value1: undefined, value2: undefined };
5988 var calculated = false;
5989 if (stateItem) {
5990 if (stateItem[key1] !== undefined) {
5991 obj.value1 = stateItem[key1];
5992 calculated = true;
5993 }
5994 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(key2) && stateItem[key2] !== undefined) {
5995 obj.value2 = stateItem[key2];
5996 calculated = true;
5997 }
5998 }
5999 if (!calculated && defaultState) {
6000 if (defaultState[key1] !== undefined) {
6001 obj.value1 = defaultState[key1];
6002 }
6003 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(key2) && defaultState[key2] !== undefined) {
6004 obj.value2 = defaultState[key2];
6005 }
6006 }
6007 return obj;
6008 };
6009 // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true
6010 var hide = getValue('hide').value1;
6011 if (hide !== undefined) {
6012 column.setVisible(!hide, source);
6013 }
6014 // sets pinned to 'left' or 'right'
6015 var pinned = getValue('pinned').value1;
6016 if (pinned !== undefined) {
6017 column.setPinned(pinned);
6018 }
6019 // if width provided and valid, use it, otherwise stick with the old width
6020 var minColWidth = this.columnUtils.calculateColMinWidth(column.getColDef());
6021 // flex
6022 var flex = getValue('flex').value1;
6023 if (flex !== undefined) {
6024 column.setFlex(flex);
6025 }
6026 // width - we only set width if column is not flexing
6027 var noFlexThisCol = column.getFlex() <= 0;
6028 if (noFlexThisCol) {
6029 // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)
6030 var width = getValue('width').value1;
6031 if (width != null) {
6032 if (minColWidth != null && width >= minColWidth) {
6033 column.setActualWidth(width, source);
6034 }
6035 }
6036 }
6037 var sort = getValue('sort').value1;
6038 if (sort !== undefined) {
6039 if (sort === 'desc' || sort === 'asc') {
6040 column.setSort(sort, source);
6041 }
6042 else {
6043 column.setSort(undefined, source);
6044 }
6045 }
6046 var sortIndex = getValue('sortIndex').value1;
6047 if (sortIndex !== undefined) {
6048 column.setSortIndex(sortIndex);
6049 }
6050 // we do not do aggFunc, rowGroup or pivot for auto cols or secondary cols
6051 if (autoCol || !column.isPrimary()) {
6052 return;
6053 }
6054 var aggFunc = getValue('aggFunc').value1;
6055 if (aggFunc !== undefined) {
6056 if (typeof aggFunc === 'string') {
6057 column.setAggFunc(aggFunc);
6058 if (!column.isValueActive()) {
6059 column.setValueActive(true, source);
6060 this.valueColumns.push(column);
6061 }
6062 }
6063 else {
6064 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(aggFunc)) {
6065 console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +
6066 'functions, register the functions first before using them in get/set state. This is because it is ' +
6067 'intended for the column state to be stored and retrieved as simple JSON.');
6068 }
6069 // Note: we do not call column.setAggFunc(null), so that next time we aggregate
6070 // by this column (eg drag the column to the agg section int he toolpanel) it will
6071 // default to the last aggregation function.
6072 if (column.isValueActive()) {
6073 column.setValueActive(false, source);
6074 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.valueColumns, column);
6075 }
6076 }
6077 }
6078 var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;
6079 if (rowGroup !== undefined || rowGroupIndex !== undefined) {
6080 if (typeof rowGroupIndex === 'number' || rowGroup) {
6081 if (!column.isRowGroupActive()) {
6082 column.setRowGroupActive(true, source);
6083 this.rowGroupColumns.push(column);
6084 }
6085 if (rowGroupIndexes && typeof rowGroupIndex === 'number') {
6086 rowGroupIndexes[column.getId()] = rowGroupIndex;
6087 }
6088 }
6089 else {
6090 if (column.isRowGroupActive()) {
6091 column.setRowGroupActive(false, source);
6092 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.rowGroupColumns, column);
6093 }
6094 }
6095 }
6096 var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;
6097 if (pivot !== undefined || pivotIndex !== undefined) {
6098 if (typeof pivotIndex === 'number' || pivot) {
6099 if (!column.isPivotActive()) {
6100 column.setPivotActive(true, source);
6101 this.pivotColumns.push(column);
6102 }
6103 if (pivotIndexes && typeof pivotIndex === 'number') {
6104 pivotIndexes[column.getId()] = pivotIndex;
6105 }
6106 }
6107 else {
6108 if (column.isPivotActive()) {
6109 column.setPivotActive(false, source);
6110 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(this.pivotColumns, column);
6111 }
6112 }
6113 }
6114 };
6115 ColumnModel.prototype.getGridColumns = function (keys) {
6116 return this.getColumns(keys, this.getGridColumn.bind(this));
6117 };
6118 ColumnModel.prototype.getColumns = function (keys, columnLookupCallback) {
6119 var foundColumns = [];
6120 if (keys) {
6121 keys.forEach(function (key) {
6122 var column = columnLookupCallback(key);
6123 if (column) {
6124 foundColumns.push(column);
6125 }
6126 });
6127 }
6128 return foundColumns;
6129 };
6130 // used by growGroupPanel
6131 ColumnModel.prototype.getColumnWithValidation = function (key) {
6132 if (key == null) {
6133 return null;
6134 }
6135 var column = this.getGridColumn(key);
6136 if (!column) {
6137 console.warn('AG Grid: could not find column ' + key);
6138 }
6139 return column;
6140 };
6141 ColumnModel.prototype.getPrimaryColumn = function (key) {
6142 if (!this.primaryColumns) {
6143 return null;
6144 }
6145 return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);
6146 };
6147 ColumnModel.prototype.getGridColumn = function (key) {
6148 return this.getColumn(key, this.gridColumns, this.gridColumnsMap);
6149 };
6150 ColumnModel.prototype.getSecondaryColumn = function (key) {
6151 if (!this.secondaryColumns) {
6152 return null;
6153 }
6154 return this.getColumn(key, this.secondaryColumns, this.secondaryColumnsMap);
6155 };
6156 ColumnModel.prototype.getColumn = function (key, columnList, columnMap) {
6157 if (!key) {
6158 return null;
6159 }
6160 // most of the time this method gets called the key is a string, so we put this shortcut in
6161 // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)
6162 if (typeof key == 'string' && columnMap[key]) {
6163 return columnMap[key];
6164 }
6165 for (var i = 0; i < columnList.length; i++) {
6166 if (this.columnsMatch(columnList[i], key)) {
6167 return columnList[i];
6168 }
6169 }
6170 return this.getAutoColumn(key);
6171 };
6172 ColumnModel.prototype.getSourceColumnsForGroupColumn = function (groupCol) {
6173 var sourceColumnId = groupCol.getColDef().showRowGroup;
6174 if (!sourceColumnId) {
6175 return null;
6176 }
6177 if (sourceColumnId === true) {
6178 return this.rowGroupColumns.slice(0);
6179 }
6180 var column = this.getPrimaryColumn(sourceColumnId);
6181 return column ? [column] : null;
6182 };
6183 ColumnModel.prototype.getAutoColumn = function (key) {
6184 var _this = this;
6185 if (!this.groupAutoColumns ||
6186 !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.groupAutoColumns) ||
6187 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.groupAutoColumns)) {
6188 return null;
6189 }
6190 return this.groupAutoColumns.find(function (groupCol) { return _this.columnsMatch(groupCol, key); }) || null;
6191 };
6192 ColumnModel.prototype.columnsMatch = function (column, key) {
6193 var columnMatches = column === key;
6194 var colDefMatches = column.getColDef() === key;
6195 var idMatches = column.getColId() == key;
6196 return columnMatches || colDefMatches || idMatches;
6197 };
6198 ColumnModel.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {
6199 if (includeAggFunc === void 0) { includeAggFunc = false; }
6200 if (!column) {
6201 return null;
6202 }
6203 var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);
6204 if (includeAggFunc) {
6205 return this.wrapHeaderNameWithAggFunc(column, headerName);
6206 }
6207 return headerName;
6208 };
6209 ColumnModel.prototype.getDisplayNameForProvidedColumnGroup = function (columnGroup, providedColumnGroup, location) {
6210 var colGroupDef = providedColumnGroup ? providedColumnGroup.getColGroupDef() : null;
6211 if (colGroupDef) {
6212 return this.getHeaderName(colGroupDef, null, columnGroup, providedColumnGroup, location);
6213 }
6214 return null;
6215 };
6216 ColumnModel.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {
6217 return this.getDisplayNameForProvidedColumnGroup(columnGroup, columnGroup.getProvidedColumnGroup(), location);
6218 };
6219 // location is where the column is going to appear, ie who is calling us
6220 ColumnModel.prototype.getHeaderName = function (colDef, column, columnGroup, providedColumnGroup, location) {
6221 var headerValueGetter = colDef.headerValueGetter;
6222 if (headerValueGetter) {
6223 var params = {
6224 colDef: colDef,
6225 column: column,
6226 columnGroup: columnGroup,
6227 providedColumnGroup: providedColumnGroup,
6228 location: location,
6229 api: this.gridOptionsService.api,
6230 columnApi: this.gridOptionsService.columnApi,
6231 context: this.gridOptionsService.context
6232 };
6233 if (typeof headerValueGetter === 'function') {
6234 // valueGetter is a function, so just call it
6235 return headerValueGetter(params);
6236 }
6237 else if (typeof headerValueGetter === 'string') {
6238 // valueGetter is an expression, so execute the expression
6239 return this.expressionService.evaluate(headerValueGetter, params);
6240 }
6241 console.warn('AG Grid: headerValueGetter must be a function or a string');
6242 return '';
6243 }
6244 else if (colDef.headerName != null) {
6245 return colDef.headerName;
6246 }
6247 else if (colDef.field) {
6248 return Object(_utils_string__WEBPACK_IMPORTED_MODULE_10__["camelCaseToHumanText"])(colDef.field);
6249 }
6250 return '';
6251 };
6252 ColumnModel.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {
6253 if (this.gridOptionsService.is('suppressAggFuncInHeader')) {
6254 return headerName;
6255 }
6256 // only columns with aggregation active can have aggregations
6257 var pivotValueColumn = column.getColDef().pivotValueColumn;
6258 var pivotActiveOnThisColumn = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(pivotValueColumn);
6259 var aggFunc = null;
6260 var aggFuncFound;
6261 // otherwise we have a measure that is active, and we are doing aggregation on it
6262 if (pivotActiveOnThisColumn) {
6263 var isCollapsedHeaderEnabled = this.gridOptionsService.is('removePivotHeaderRowWhenSingleValueColumn') && this.valueColumns.length === 1;
6264 var isTotalColumn = column.getColDef().pivotTotalColumnIds !== undefined;
6265 if (isCollapsedHeaderEnabled && !isTotalColumn) {
6266 return headerName; // Skip decorating the header - in this case the label is the pivot key, not the value col
6267 }
6268 aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;
6269 aggFuncFound = true;
6270 }
6271 else {
6272 var measureActive = column.isValueActive();
6273 var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();
6274 if (measureActive && aggregationPresent) {
6275 aggFunc = column.getAggFunc();
6276 aggFuncFound = true;
6277 }
6278 else {
6279 aggFuncFound = false;
6280 }
6281 }
6282 if (aggFuncFound) {
6283 var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';
6284 var localeTextFunc = this.localeService.getLocaleTextFunc();
6285 var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);
6286 return aggFuncStringTranslated + "(" + headerName + ")";
6287 }
6288 return headerName;
6289 };
6290 // returns the group with matching colId and instanceId. If instanceId is missing,
6291 // matches only on the colId.
6292 ColumnModel.prototype.getColumnGroup = function (colId, partId) {
6293 if (!colId) {
6294 return null;
6295 }
6296 if (colId instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6297 return colId;
6298 }
6299 var allColumnGroups = this.getAllDisplayedTrees();
6300 var checkPartId = typeof partId === 'number';
6301 var result = null;
6302 this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {
6303 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6304 var columnGroup = child;
6305 var matched = void 0;
6306 if (checkPartId) {
6307 matched = colId === columnGroup.getGroupId() && partId === columnGroup.getPartId();
6308 }
6309 else {
6310 matched = colId === columnGroup.getGroupId();
6311 }
6312 if (matched) {
6313 result = columnGroup;
6314 }
6315 }
6316 });
6317 return result;
6318 };
6319 ColumnModel.prototype.isReady = function () {
6320 return this.ready;
6321 };
6322 ColumnModel.prototype.extractValueColumns = function (source, oldPrimaryColumns) {
6323 this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); },
6324 // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null
6325 function () { return undefined; }, function () { return undefined; },
6326 // aggFunc is a string, so return it's existence
6327 function (colDef) {
6328 var aggFunc = colDef.aggFunc;
6329 // null or empty string means clear
6330 if (aggFunc === null || aggFunc === '') {
6331 return null;
6332 }
6333 if (aggFunc === undefined) {
6334 return;
6335 }
6336 return !!aggFunc;
6337 }, function (colDef) {
6338 // return false if any of the following: null, undefined, empty string
6339 return colDef.initialAggFunc != null && colDef.initialAggFunc != '';
6340 });
6341 // all new columns added will have aggFunc missing, so set it to what is in the colDef
6342 this.valueColumns.forEach(function (col) {
6343 var colDef = col.getColDef();
6344 // if aggFunc provided, we always override, as reactive property
6345 if (colDef.aggFunc != null && colDef.aggFunc != '') {
6346 col.setAggFunc(colDef.aggFunc);
6347 }
6348 else {
6349 // otherwise we use initialAggFunc only if no agg func set - which happens when new column only
6350 if (!col.getAggFunc()) {
6351 col.setAggFunc(colDef.initialAggFunc);
6352 }
6353 }
6354 });
6355 };
6356 ColumnModel.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {
6357 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; });
6358 };
6359 ColumnModel.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {
6360 if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }
6361 if (previousCols === void 0) { previousCols = []; }
6362 var colsWithIndex = [];
6363 var colsWithValue = [];
6364 // go though all cols.
6365 // if value, change
6366 // if default only, change only if new
6367 (this.primaryColumns || []).forEach(function (col) {
6368 var colIsNew = oldPrimaryColumns.indexOf(col) < 0;
6369 var colDef = col.getColDef();
6370 var value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToBoolean"])(getValueFunc(colDef));
6371 var initialValue = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToBoolean"])(getInitialValueFunc(colDef));
6372 var index = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToNumber"])(getIndexFunc(colDef));
6373 var initialIndex = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["attrToNumber"])(getInitialIndexFunc(colDef));
6374 var include;
6375 var valuePresent = value !== undefined;
6376 var indexPresent = index !== undefined;
6377 var initialValuePresent = initialValue !== undefined;
6378 var initialIndexPresent = initialIndex !== undefined;
6379 if (valuePresent) {
6380 include = value; // boolean value is guaranteed as attrToBoolean() is used above
6381 }
6382 else if (indexPresent) {
6383 if (index === null) {
6384 // if col is new we don't want to use the default / initial if index is set to null. Similarly,
6385 // we don't want to include the property for existing columns, i.e. we want to 'clear' it.
6386 include = false;
6387 }
6388 else {
6389 // note that 'null >= 0' evaluates to true which means 'rowGroupIndex = null' would enable row
6390 // grouping if the null check didn't exist above.
6391 include = index >= 0;
6392 }
6393 }
6394 else {
6395 if (colIsNew) {
6396 // as no value or index is 'present' we use the default / initial when col is new
6397 if (initialValuePresent) {
6398 include = initialValue;
6399 }
6400 else if (initialIndexPresent) {
6401 include = initialIndex != null && initialIndex >= 0;
6402 }
6403 else {
6404 include = false;
6405 }
6406 }
6407 else {
6408 // otherwise include it if included last time, e.g. if we are extracting row group cols and this col
6409 // is an existing row group col (i.e. it exists in 'previousCols') then we should include it.
6410 include = previousCols.indexOf(col) >= 0;
6411 }
6412 }
6413 if (include) {
6414 var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;
6415 useIndex ? colsWithIndex.push(col) : colsWithValue.push(col);
6416 }
6417 });
6418 var getIndexForCol = function (col) {
6419 var index = getIndexFunc(col.getColDef());
6420 var defaultIndex = getInitialIndexFunc(col.getColDef());
6421 return index != null ? index : defaultIndex;
6422 };
6423 // sort cols with index, and add these first
6424 colsWithIndex.sort(function (colA, colB) {
6425 var indexA = getIndexForCol(colA);
6426 var indexB = getIndexForCol(colB);
6427 if (indexA === indexB) {
6428 return 0;
6429 }
6430 if (indexA < indexB) {
6431 return -1;
6432 }
6433 return 1;
6434 });
6435 var res = [].concat(colsWithIndex);
6436 // second add columns that were there before and in the same order as they were before,
6437 // so we are preserving order of current grouping of columns that simply have rowGroup=true
6438 previousCols.forEach(function (col) {
6439 if (colsWithValue.indexOf(col) >= 0) {
6440 res.push(col);
6441 }
6442 });
6443 // lastly put in all remaining cols
6444 colsWithValue.forEach(function (col) {
6445 if (res.indexOf(col) < 0) {
6446 res.push(col);
6447 }
6448 });
6449 // set flag=false for removed cols
6450 previousCols.forEach(function (col) {
6451 if (res.indexOf(col) < 0) {
6452 setFlagFunc(col, false);
6453 }
6454 });
6455 // set flag=true for newly added cols
6456 res.forEach(function (col) {
6457 if (previousCols.indexOf(col) < 0) {
6458 setFlagFunc(col, true);
6459 }
6460 });
6461 return res;
6462 };
6463 ColumnModel.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {
6464 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; });
6465 };
6466 ColumnModel.prototype.resetColumnGroupState = function (source) {
6467 if (source === void 0) { source = "api"; }
6468 var stateItems = [];
6469 this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {
6470 if (child instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"]) {
6471 var colGroupDef = child.getColGroupDef();
6472 var groupState = {
6473 groupId: child.getGroupId(),
6474 open: !colGroupDef ? undefined : colGroupDef.openByDefault
6475 };
6476 stateItems.push(groupState);
6477 }
6478 });
6479 this.setColumnGroupState(stateItems, source);
6480 };
6481 ColumnModel.prototype.getColumnGroupState = function () {
6482 var columnGroupState = [];
6483 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {
6484 if (node instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"]) {
6485 columnGroupState.push({
6486 groupId: node.getGroupId(),
6487 open: node.isExpanded()
6488 });
6489 }
6490 });
6491 return columnGroupState;
6492 };
6493 ColumnModel.prototype.setColumnGroupState = function (stateItems, source) {
6494 var _this = this;
6495 if (source === void 0) { source = "api"; }
6496 this.columnAnimationService.start();
6497 var impactedGroups = [];
6498 stateItems.forEach(function (stateItem) {
6499 var groupKey = stateItem.groupId;
6500 var newValue = stateItem.open;
6501 var providedColumnGroup = _this.getProvidedColumnGroup(groupKey);
6502 if (!providedColumnGroup) {
6503 return;
6504 }
6505 if (providedColumnGroup.isExpanded() === newValue) {
6506 return;
6507 }
6508 _this.logger.log('columnGroupOpened(' + providedColumnGroup.getGroupId() + ',' + newValue + ')');
6509 providedColumnGroup.setExpanded(newValue);
6510 impactedGroups.push(providedColumnGroup);
6511 });
6512 this.updateGroupsAndDisplayedColumns(source);
6513 this.setFirstRightAndLastLeftPinned(source);
6514 impactedGroups.forEach(function (providedColumnGroup) {
6515 var event = {
6516 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_GROUP_OPENED,
6517 columnGroup: providedColumnGroup
6518 };
6519 _this.eventService.dispatchEvent(event);
6520 });
6521 this.columnAnimationService.finish();
6522 };
6523 // called by headerRenderer - when a header is opened or closed
6524 ColumnModel.prototype.setColumnGroupOpened = function (key, newValue, source) {
6525 if (source === void 0) { source = "api"; }
6526 var keyAsString;
6527 if (key instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"]) {
6528 keyAsString = key.getId();
6529 }
6530 else {
6531 keyAsString = key || '';
6532 }
6533 this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);
6534 };
6535 ColumnModel.prototype.getProvidedColumnGroup = function (key) {
6536 // if (key instanceof ProvidedColumnGroup) { return key; }
6537 if (typeof key !== 'string') {
6538 console.error('AG Grid: group key must be a string');
6539 }
6540 // otherwise, search for the column group by id
6541 var res = null;
6542 this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {
6543 if (node instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"]) {
6544 if (node.getId() === key) {
6545 res = node;
6546 }
6547 }
6548 });
6549 return res;
6550 };
6551 ColumnModel.prototype.calculateColumnsForDisplay = function () {
6552 var _this = this;
6553 var columnsForDisplay;
6554 if (this.pivotMode && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.secondaryColumns)) {
6555 // pivot mode is on, but we are not pivoting, so we only
6556 // show columns we are aggregating on
6557 columnsForDisplay = this.gridColumns.filter(function (column) {
6558 var isAutoGroupCol = _this.groupAutoColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.groupAutoColumns, column);
6559 var isValueCol = _this.valueColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.valueColumns, column);
6560 return isAutoGroupCol || isValueCol;
6561 });
6562 }
6563 else {
6564 // otherwise continue as normal. this can be working on the primary
6565 // or secondary columns, whatever the gridColumns are set to
6566 columnsForDisplay = this.gridColumns.filter(function (column) {
6567 // keep col if a) it's auto-group or b) it's visible
6568 var isAutoGroupCol = _this.groupAutoColumns && Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["includes"])(_this.groupAutoColumns, column);
6569 return isAutoGroupCol || column.isVisible();
6570 });
6571 }
6572 return columnsForDisplay;
6573 };
6574 ColumnModel.prototype.checkColSpanActiveInCols = function (columns) {
6575 var result = false;
6576 columns.forEach(function (col) {
6577 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(col.getColDef().colSpan)) {
6578 result = true;
6579 }
6580 });
6581 return result;
6582 };
6583 ColumnModel.prototype.calculateColumnsForGroupDisplay = function () {
6584 var _this = this;
6585 this.groupDisplayColumns = [];
6586 this.groupDisplayColumnsMap = {};
6587 var checkFunc = function (col) {
6588 var colDef = col.getColDef();
6589 var underlyingColumn = colDef.showRowGroup;
6590 if (colDef && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(underlyingColumn)) {
6591 _this.groupDisplayColumns.push(col);
6592 if (typeof underlyingColumn === 'string') {
6593 _this.groupDisplayColumnsMap[underlyingColumn] = col;
6594 }
6595 else if (underlyingColumn === true) {
6596 _this.getRowGroupColumns().forEach(function (rowGroupCol) {
6597 _this.groupDisplayColumnsMap[rowGroupCol.getId()] = col;
6598 });
6599 }
6600 }
6601 };
6602 this.gridColumns.forEach(checkFunc);
6603 if (this.groupAutoColumns) {
6604 this.groupAutoColumns.forEach(checkFunc);
6605 }
6606 };
6607 ColumnModel.prototype.getGroupDisplayColumns = function () {
6608 return this.groupDisplayColumns;
6609 };
6610 ColumnModel.prototype.getGroupDisplayColumnForGroup = function (rowGroupColumnId) {
6611 return this.groupDisplayColumnsMap[rowGroupColumnId];
6612 };
6613 ColumnModel.prototype.updateDisplayedColumns = function (source) {
6614 var columnsForDisplay = this.calculateColumnsForDisplay();
6615 this.buildDisplayedTrees(columnsForDisplay);
6616 this.calculateColumnsForGroupDisplay();
6617 // also called when group opened/closed
6618 this.updateGroupsAndDisplayedColumns(source);
6619 // also called when group opened/closed
6620 this.setFirstRightAndLastLeftPinned(source);
6621 };
6622 ColumnModel.prototype.isSecondaryColumnsPresent = function () {
6623 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(this.secondaryColumns);
6624 };
6625 ColumnModel.prototype.setSecondaryColumns = function (colDefs, source) {
6626 var _this = this;
6627 if (source === void 0) { source = "api"; }
6628 var newColsPresent = colDefs && colDefs.length > 0;
6629 // if not cols passed, and we had no cols anyway, then do nothing
6630 if (!newColsPresent && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.secondaryColumns)) {
6631 return;
6632 }
6633 if (newColsPresent) {
6634 this.processSecondaryColumnDefinitions(colDefs);
6635 var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false, this.secondaryBalancedTree || this.previousSecondaryColumns || undefined);
6636 this.destroyOldColumns(this.secondaryBalancedTree, balancedTreeResult.columnTree);
6637 this.secondaryBalancedTree = balancedTreeResult.columnTree;
6638 this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;
6639 this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);
6640 this.secondaryColumnsMap = {};
6641 this.secondaryColumns.forEach(function (col) { return _this.secondaryColumnsMap[col.getId()] = col; });
6642 this.previousSecondaryColumns = null;
6643 }
6644 else {
6645 this.previousSecondaryColumns = this.secondaryBalancedTree;
6646 this.secondaryBalancedTree = null;
6647 this.secondaryHeaderRowCount = -1;
6648 this.secondaryColumns = null;
6649 this.secondaryColumnsMap = {};
6650 }
6651 this.updateGridColumns();
6652 this.updateDisplayedColumns(source);
6653 };
6654 ColumnModel.prototype.processSecondaryColumnDefinitions = function (colDefs) {
6655 var columnCallback = this.gridOptionsService.get('processPivotResultColDef') || this.gridOptionsService.get('processSecondaryColDef');
6656 var groupCallback = this.gridOptionsService.get('processPivotResultColGroupDef') || this.gridOptionsService.get('processSecondaryColGroupDef');
6657 if (!columnCallback && !groupCallback) {
6658 return undefined;
6659 }
6660 var searchForColDefs = function (colDefs2) {
6661 colDefs2.forEach(function (abstractColDef) {
6662 var isGroup = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(abstractColDef.children);
6663 if (isGroup) {
6664 var colGroupDef = abstractColDef;
6665 if (groupCallback) {
6666 groupCallback(colGroupDef);
6667 }
6668 searchForColDefs(colGroupDef.children);
6669 }
6670 else {
6671 var colDef = abstractColDef;
6672 if (columnCallback) {
6673 columnCallback(colDef);
6674 }
6675 }
6676 });
6677 };
6678 if (colDefs) {
6679 searchForColDefs(colDefs);
6680 }
6681 };
6682 // called from: applyColumnState, setColumnDefs, setSecondaryColumns
6683 ColumnModel.prototype.updateGridColumns = function () {
6684 var _this = this;
6685 var prevGridCols = this.gridBalancedTree;
6686 if (this.gridColsArePrimary) {
6687 this.lastPrimaryOrder = this.gridColumns;
6688 }
6689 else {
6690 this.lastSecondaryOrder = this.gridColumns;
6691 }
6692 var sortOrderToRecover;
6693 if (this.secondaryColumns && this.secondaryBalancedTree) {
6694 var hasSameColumns = this.secondaryColumns.every(function (col) {
6695 return _this.gridColumnsMap[col.getColId()] !== undefined;
6696 });
6697 this.gridBalancedTree = this.secondaryBalancedTree.slice();
6698 this.gridHeaderRowCount = this.secondaryHeaderRowCount;
6699 this.gridColumns = this.secondaryColumns.slice();
6700 this.gridColsArePrimary = false;
6701 // If the current columns are the same or a subset of the previous
6702 // we keep the previous order, otherwise we go back to the order the pivot
6703 // cols are generated in
6704 if (hasSameColumns) {
6705 sortOrderToRecover = this.lastSecondaryOrder;
6706 }
6707 }
6708 else if (this.primaryColumns) {
6709 this.gridBalancedTree = this.primaryColumnTree.slice();
6710 this.gridHeaderRowCount = this.primaryHeaderRowCount;
6711 this.gridColumns = this.primaryColumns.slice();
6712 this.gridColsArePrimary = true;
6713 // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns
6714 // when this happens (eg if user moved a column) rather than revert back to the original column order.
6715 // likewise if changing in/out of pivot mode, we want to maintain the order of the cols
6716 sortOrderToRecover = this.lastPrimaryOrder;
6717 }
6718 // create the new auto columns
6719 var areAutoColsChanged = this.createGroupAutoColumnsIfNeeded();
6720 // if auto group cols have changed, and we have a sort order, we need to move auto cols to the start
6721 if (areAutoColsChanged && sortOrderToRecover) {
6722 var groupAutoColsMap_1 = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.groupAutoColumns.map(function (col) { return [col, true]; }));
6723 // if group columns has changed, we don't preserve the group column order, so remove them from the old order
6724 sortOrderToRecover = sortOrderToRecover.filter(function (col) { return !groupAutoColsMap_1.has(col); });
6725 // and add them to the start of the order
6726 sortOrderToRecover = __spread(this.groupAutoColumns, sortOrderToRecover);
6727 }
6728 this.addAutoGroupToGridColumns();
6729 this.orderGridColsLike(sortOrderToRecover);
6730 this.gridColumns = this.placeLockedColumns(this.gridColumns);
6731 this.refreshQuickFilterColumns();
6732 this.clearDisplayedAndViewportColumns();
6733 this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);
6734 this.gridColumnsMap = {};
6735 this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });
6736 this.setAutoHeightActive();
6737 if (!Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(prevGridCols, this.gridBalancedTree)) {
6738 var event_4 = {
6739 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_GRID_COLUMNS_CHANGED
6740 };
6741 this.eventService.dispatchEvent(event_4);
6742 }
6743 };
6744 ColumnModel.prototype.setAutoHeightActive = function () {
6745 this.autoHeightActive = this.gridColumns.filter(function (col) { return col.isAutoHeight(); }).length > 0;
6746 if (this.autoHeightActive) {
6747 this.autoHeightActiveAtLeastOnce = true;
6748 var rowModelType = this.rowModel.getType();
6749 var supportedRowModel = rowModelType === 'clientSide' || rowModelType === 'serverSide';
6750 if (!supportedRowModel) {
6751 var message_1 = 'AG Grid - autoHeight columns only work with Client Side Row Model and Server Side Row Model.';
6752 Object(_utils_function__WEBPACK_IMPORTED_MODULE_12__["doOnce"])(function () { return console.warn(message_1); }, 'autoHeightActive.wrongRowModel');
6753 }
6754 }
6755 };
6756 ColumnModel.prototype.orderGridColsLike = function (colsOrder) {
6757 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(colsOrder)) {
6758 return;
6759 }
6760 var lastOrderMapped = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(colsOrder.map(function (col, index) { return [col, index]; }));
6761 // only do the sort if at least one column is accounted for. columns will be not accounted for
6762 // if changing from secondary to primary columns
6763 var noColsFound = true;
6764 this.gridColumns.forEach(function (col) {
6765 if (lastOrderMapped.has(col)) {
6766 noColsFound = false;
6767 }
6768 });
6769 if (noColsFound) {
6770 return;
6771 }
6772 // order cols in the same order as before. we need to make sure that all
6773 // cols still exists, so filter out any that no longer exist.
6774 var gridColsMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(this.gridColumns.map(function (col) { return [col, true]; }));
6775 var oldColsOrdered = colsOrder.filter(function (col) { return gridColsMap.has(col); });
6776 var oldColsMap = Object(_utils_map__WEBPACK_IMPORTED_MODULE_11__["convertToMap"])(oldColsOrdered.map(function (col) { return [col, true]; }));
6777 var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });
6778 // add in the new columns, at the end (if no group), or at the end of the group (if a group)
6779 var newGridColumns = oldColsOrdered.slice();
6780 newColsOrdered.forEach(function (newCol) {
6781 var parent = newCol.getOriginalParent();
6782 // if no parent, means we are not grouping, so just add the column to the end
6783 if (!parent) {
6784 newGridColumns.push(newCol);
6785 return;
6786 }
6787 // find the group the column belongs to. if no siblings at the current level (eg col in group on it's
6788 // own) then go up one level and look for siblings there.
6789 var siblings = [];
6790 while (!siblings.length && parent) {
6791 var leafCols = parent.getLeafColumns();
6792 leafCols.forEach(function (leafCol) {
6793 var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;
6794 var noYetInSiblings = siblings.indexOf(leafCol) < 0;
6795 if (presentInNewGriColumns && noYetInSiblings) {
6796 siblings.push(leafCol);
6797 }
6798 });
6799 parent = parent.getOriginalParent();
6800 }
6801 // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own
6802 if (!siblings.length) {
6803 newGridColumns.push(newCol);
6804 return;
6805 }
6806 // find index of last column in the group
6807 var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });
6808 var lastIndex = Math.max.apply(Math, __spread(indexes));
6809 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["insertIntoArray"])(newGridColumns, newCol, lastIndex + 1);
6810 });
6811 this.gridColumns = newGridColumns;
6812 };
6813 ColumnModel.prototype.isPrimaryColumnGroupsPresent = function () {
6814 return this.primaryHeaderRowCount > 1;
6815 };
6816 // if we are using autoGroupCols, then they should be included for quick filter. this covers the
6817 // following scenarios:
6818 // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on
6819 // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this
6820 // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)
6821 ColumnModel.prototype.refreshQuickFilterColumns = function () {
6822 var _a;
6823 var columnsForQuickFilter;
6824 if (this.groupAutoColumns) {
6825 columnsForQuickFilter = ((_a = this.primaryColumns) !== null && _a !== void 0 ? _a : []).concat(this.groupAutoColumns);
6826 }
6827 else if (this.primaryColumns) {
6828 columnsForQuickFilter = this.primaryColumns;
6829 }
6830 columnsForQuickFilter = columnsForQuickFilter !== null && columnsForQuickFilter !== void 0 ? columnsForQuickFilter : [];
6831 this.columnsForQuickFilter = this.gridOptionsService.is('excludeHiddenColumnsFromQuickFilter')
6832 ? columnsForQuickFilter.filter(function (col) { return col.isVisible(); })
6833 : columnsForQuickFilter;
6834 };
6835 ColumnModel.prototype.placeLockedColumns = function (cols) {
6836 var left = [];
6837 var normal = [];
6838 var right = [];
6839 cols.forEach(function (col) {
6840 var position = col.getColDef().lockPosition;
6841 if (position === 'right') {
6842 right.push(col);
6843 }
6844 else if (position === 'left' || position === true) {
6845 left.push(col);
6846 }
6847 else {
6848 normal.push(col);
6849 }
6850 });
6851 return __spread(left, normal, right);
6852 };
6853 ColumnModel.prototype.addAutoGroupToGridColumns = function () {
6854 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(this.groupAutoColumns)) {
6855 this.destroyOldColumns(this.groupAutoColsBalancedTree);
6856 this.groupAutoColsBalancedTree = null;
6857 return;
6858 }
6859 this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;
6860 var newAutoColsTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);
6861 this.destroyOldColumns(this.groupAutoColsBalancedTree, newAutoColsTree);
6862 this.groupAutoColsBalancedTree = newAutoColsTree;
6863 this.gridBalancedTree = newAutoColsTree.concat(this.gridBalancedTree);
6864 };
6865 // gets called after we copy down grid columns, to make sure any part of the gui
6866 // that tries to draw, eg the header, it will get empty lists of columns rather
6867 // than stale columns. for example, the header will received gridColumnsChanged
6868 // event, so will try and draw, but it will draw successfully when it acts on the
6869 // virtualColumnsChanged event
6870 ColumnModel.prototype.clearDisplayedAndViewportColumns = function () {
6871 this.viewportRowLeft = {};
6872 this.viewportRowRight = {};
6873 this.viewportRowCenter = {};
6874 this.displayedColumnsLeft = [];
6875 this.displayedColumnsRight = [];
6876 this.displayedColumnsCenter = [];
6877 this.displayedColumns = [];
6878 this.viewportColumns = [];
6879 this.headerViewportColumns = [];
6880 this.viewportColumnsHash = '';
6881 };
6882 ColumnModel.prototype.updateGroupsAndDisplayedColumns = function (source) {
6883 this.updateOpenClosedVisibilityInColumnGroups();
6884 this.deriveDisplayedColumns(source);
6885 this.refreshFlexedColumns();
6886 this.extractViewport();
6887 this.updateBodyWidths();
6888 // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display
6889 var event = {
6890 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED
6891 };
6892 this.eventService.dispatchEvent(event);
6893 };
6894 ColumnModel.prototype.deriveDisplayedColumns = function (source) {
6895 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);
6896 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);
6897 this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);
6898 this.joinDisplayedColumns();
6899 this.setLeftValues(source);
6900 this.displayedAutoHeightCols = this.displayedColumns.filter(function (col) { return col.isAutoHeight(); });
6901 };
6902 ColumnModel.prototype.isAutoRowHeightActive = function () {
6903 return this.autoHeightActive;
6904 };
6905 ColumnModel.prototype.wasAutoRowHeightEverActive = function () {
6906 return this.autoHeightActiveAtLeastOnce;
6907 };
6908 ColumnModel.prototype.joinDisplayedColumns = function () {
6909 if (this.gridOptionsService.is('enableRtl')) {
6910 this.displayedColumns = this.displayedColumnsRight
6911 .concat(this.displayedColumnsCenter)
6912 .concat(this.displayedColumnsLeft);
6913 }
6914 else {
6915 this.displayedColumns = this.displayedColumnsLeft
6916 .concat(this.displayedColumnsCenter)
6917 .concat(this.displayedColumnsRight);
6918 }
6919 };
6920 // sets the left pixel position of each column
6921 ColumnModel.prototype.setLeftValues = function (source) {
6922 this.setLeftValuesOfColumns(source);
6923 this.setLeftValuesOfGroups();
6924 };
6925 ColumnModel.prototype.setLeftValuesOfColumns = function (source) {
6926 var _this = this;
6927 if (!this.primaryColumns) {
6928 return;
6929 }
6930 // go through each list of displayed columns
6931 var allColumns = this.primaryColumns.slice(0);
6932 // let totalColumnWidth = this.getWidthOfColsInList()
6933 var doingRtl = this.gridOptionsService.is('enableRtl');
6934 [
6935 this.displayedColumnsLeft,
6936 this.displayedColumnsRight,
6937 this.displayedColumnsCenter
6938 ].forEach(function (columns) {
6939 if (doingRtl) {
6940 // when doing RTL, we start at the top most pixel (ie RHS) and work backwards
6941 var left_1 = _this.getWidthOfColsInList(columns);
6942 columns.forEach(function (column) {
6943 left_1 -= column.getActualWidth();
6944 column.setLeft(left_1, source);
6945 });
6946 }
6947 else {
6948 // otherwise normal LTR, we start at zero
6949 var left_2 = 0;
6950 columns.forEach(function (column) {
6951 column.setLeft(left_2, source);
6952 left_2 += column.getActualWidth();
6953 });
6954 }
6955 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeAllFromArray"])(allColumns, columns);
6956 });
6957 // items left in allColumns are columns not displayed, so remove the left position. this is
6958 // important for the rows, as if a col is made visible, then taken out, then made visible again,
6959 // we don't want the animation of the cell floating in from the old position, whatever that was.
6960 allColumns.forEach(function (column) {
6961 column.setLeft(null, source);
6962 });
6963 };
6964 ColumnModel.prototype.setLeftValuesOfGroups = function () {
6965 // a groups left value is the lest left value of it's children
6966 [
6967 this.displayedTreeLeft,
6968 this.displayedTreeRight,
6969 this.displayedTreeCentre
6970 ].forEach(function (columns) {
6971 columns.forEach(function (column) {
6972 if (column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
6973 var columnGroup = column;
6974 columnGroup.checkLeft();
6975 }
6976 });
6977 });
6978 };
6979 ColumnModel.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {
6980 columns.length = 0;
6981 this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {
6982 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
6983 columns.push(child);
6984 }
6985 });
6986 };
6987 ColumnModel.prototype.extractViewportColumns = function () {
6988 if (this.suppressColumnVirtualisation) {
6989 // no virtualisation, so don't filter
6990 this.viewportColumnsCenter = this.displayedColumnsCenter;
6991 this.headerViewportColumnsCenter = this.displayedColumnsCenter;
6992 }
6993 else {
6994 // filter out what should be visible
6995 this.viewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInRowViewport.bind(this));
6996 this.headerViewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInHeaderViewport.bind(this));
6997 }
6998 this.viewportColumns = this.viewportColumnsCenter
6999 .concat(this.displayedColumnsLeft)
7000 .concat(this.displayedColumnsRight);
7001 this.headerViewportColumns = this.headerViewportColumnsCenter
7002 .concat(this.displayedColumnsLeft)
7003 .concat(this.displayedColumnsRight);
7004 };
7005 ColumnModel.prototype.getVirtualHeaderGroupRow = function (type, dept) {
7006 var result;
7007 switch (type) {
7008 case 'left':
7009 result = this.viewportRowLeft[dept];
7010 break;
7011 case 'right':
7012 result = this.viewportRowRight[dept];
7013 break;
7014 default:
7015 result = this.viewportRowCenter[dept];
7016 break;
7017 }
7018 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missing"])(result)) {
7019 result = [];
7020 }
7021 return result;
7022 };
7023 ColumnModel.prototype.calculateHeaderRows = function () {
7024 // go through each group, see if any of it's cols are displayed, and if yes,
7025 // then this group is included
7026 this.viewportRowLeft = {};
7027 this.viewportRowRight = {};
7028 this.viewportRowCenter = {};
7029 // for easy lookup when building the groups.
7030 var virtualColIds = {};
7031 this.headerViewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });
7032 var testGroup = function (children, result, dept) {
7033 var returnValue = false;
7034 for (var i = 0; i < children.length; i++) {
7035 // see if this item is within viewport
7036 var child = children[i];
7037 var addThisItem = false;
7038 if (child instanceof _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"]) {
7039 // for column, test if column is included
7040 addThisItem = virtualColIds[child.getId()] === true;
7041 }
7042 else {
7043 // if group, base decision on children
7044 var columnGroup = child;
7045 var displayedChildren = columnGroup.getDisplayedChildren();
7046 if (displayedChildren) {
7047 addThisItem = testGroup(displayedChildren, result, dept + 1);
7048 }
7049 }
7050 if (addThisItem) {
7051 returnValue = true;
7052 if (!result[dept]) {
7053 result[dept] = [];
7054 }
7055 result[dept].push(child);
7056 }
7057 }
7058 return returnValue;
7059 };
7060 testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);
7061 testGroup(this.displayedTreeRight, this.viewportRowRight, 0);
7062 testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);
7063 };
7064 ColumnModel.prototype.extractViewport = function () {
7065 var hashColumn = function (c) { return c.getId() + "-" + (c.getPinned() || 'normal'); };
7066 this.extractViewportColumns();
7067 var newHash = this.viewportColumns.map(hashColumn).join('#');
7068 var changed = this.viewportColumnsHash !== newHash;
7069 if (changed) {
7070 this.viewportColumnsHash = newHash;
7071 this.calculateHeaderRows();
7072 }
7073 return changed;
7074 };
7075 ColumnModel.prototype.refreshFlexedColumns = function (params) {
7076 var _this = this;
7077 if (params === void 0) { params = {}; }
7078 var source = params.source ? params.source : 'flex';
7079 if (params.viewportWidth != null) {
7080 this.flexViewportWidth = params.viewportWidth;
7081 }
7082 if (!this.flexViewportWidth) {
7083 return [];
7084 }
7085 // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.
7086 // A "flexing column" is one that has a 'flex' value set and is not currently being constrained by its
7087 // minWidth or maxWidth rules.
7088 var flexAfterDisplayIndex = -1;
7089 if (params.resizingCols) {
7090 params.resizingCols.forEach(function (col) {
7091 var indexOfCol = _this.displayedColumnsCenter.indexOf(col);
7092 if (flexAfterDisplayIndex < indexOfCol) {
7093 flexAfterDisplayIndex = indexOfCol;
7094 }
7095 });
7096 }
7097 var isColFlex = function (col) {
7098 var afterResizingCols = _this.displayedColumnsCenter.indexOf(col) > flexAfterDisplayIndex;
7099 return col.getFlex() && afterResizingCols;
7100 };
7101 var knownWidthColumns = this.displayedColumnsCenter.filter(function (col) { return !isColFlex(col); });
7102 var flexingColumns = this.displayedColumnsCenter.filter(function (col) { return isColFlex(col); });
7103 var changedColumns = [];
7104 if (!flexingColumns.length) {
7105 return [];
7106 }
7107 var flexingColumnSizes = [];
7108 var spaceForFlexingColumns;
7109 outer: while (true) {
7110 var totalFlex = flexingColumns.reduce(function (count, col) { return count + col.getFlex(); }, 0);
7111 spaceForFlexingColumns = this.flexViewportWidth - this.getWidthOfColsInList(knownWidthColumns);
7112 for (var i = 0; i < flexingColumns.length; i++) {
7113 var col = flexingColumns[i];
7114 var widthByFlexRule = spaceForFlexingColumns * col.getFlex() / totalFlex;
7115 var constrainedWidth = 0;
7116 var minWidth = col.getMinWidth();
7117 var maxWidth = col.getMaxWidth();
7118 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && widthByFlexRule < minWidth) {
7119 constrainedWidth = minWidth;
7120 }
7121 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && widthByFlexRule > maxWidth) {
7122 constrainedWidth = maxWidth;
7123 }
7124 if (constrainedWidth) {
7125 // This column is not in fact flexing as it is being constrained to a specific size
7126 // so remove it from the list of flexing columns and start again
7127 col.setActualWidth(constrainedWidth, source);
7128 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(flexingColumns, col);
7129 changedColumns.push(col);
7130 knownWidthColumns.push(col);
7131 continue outer;
7132 }
7133 flexingColumnSizes[i] = Math.round(widthByFlexRule);
7134 }
7135 break;
7136 }
7137 var remainingSpace = spaceForFlexingColumns;
7138 flexingColumns.forEach(function (col, i) {
7139 col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);
7140 changedColumns.push(col);
7141 remainingSpace -= flexingColumnSizes[i];
7142 });
7143 if (!params.skipSetLeft) {
7144 this.setLeftValues(source);
7145 }
7146 if (params.updateBodyWidths) {
7147 this.updateBodyWidths();
7148 }
7149 if (params.fireResizedEvent) {
7150 this.dispatchColumnResizedEvent(changedColumns, true, source, flexingColumns);
7151 }
7152 // if the user sets rowData directly into GridOptions, then the row data is set before
7153 // grid is attached to the DOM. this means the columns are not flexed, and then the rows
7154 // have the wrong height (as they depend on column widths). so once the columns have
7155 // been flexed for the first time (only happens once grid is attached to DOM, as dependency
7156 // on getting the grid width, which only happens after attached after ResizeObserver fires)
7157 // we get get rows to re-calc their heights.
7158 if (!this.flexColsCalculatedAtLestOnce) {
7159 if (this.gridOptionsService.isRowModelType('clientSide')) {
7160 this.rowModel.resetRowHeights();
7161 }
7162 this.flexColsCalculatedAtLestOnce = true;
7163 }
7164 return flexingColumns;
7165 };
7166 // called from api
7167 ColumnModel.prototype.sizeColumnsToFit = function (gridWidth, source, silent, params) {
7168 var _a, _b, _c, _d, _e;
7169 if (source === void 0) { source = "sizeColumnsToFit"; }
7170 var limitsMap = {};
7171 if (params) {
7172 (_a = params === null || params === void 0 ? void 0 : params.columnLimits) === null || _a === void 0 ? void 0 : _a.forEach(function (_a) {
7173 var key = _a.key, dimensions = __rest(_a, ["key"]);
7174 limitsMap[typeof key === 'string' ? key : key.getColId()] = dimensions;
7175 });
7176 }
7177 // avoid divide by zero
7178 var allDisplayedColumns = this.getAllDisplayedColumns();
7179 var doColumnsAlreadyFit = gridWidth === this.getWidthOfColsInList(allDisplayedColumns);
7180 if (gridWidth <= 0 || !allDisplayedColumns.length || doColumnsAlreadyFit) {
7181 return;
7182 }
7183 var colsToSpread = [];
7184 var colsToNotSpread = [];
7185 allDisplayedColumns.forEach(function (column) {
7186 if (column.getColDef().suppressSizeToFit === true) {
7187 colsToNotSpread.push(column);
7188 }
7189 else {
7190 colsToSpread.push(column);
7191 }
7192 });
7193 // make a copy of the cols that are going to be resized
7194 var colsToDispatchEventFor = colsToSpread.slice(0);
7195 var finishedResizing = false;
7196 var moveToNotSpread = function (column) {
7197 Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["removeFromArray"])(colsToSpread, column);
7198 colsToNotSpread.push(column);
7199 };
7200 // resetting cols to their original width makes the sizeColumnsToFit more deterministic,
7201 // rather than depending on the current size of the columns. most users call sizeColumnsToFit
7202 // immediately after grid is created, so will make no difference. however if application is calling
7203 // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want
7204 // the columns to start shrinking / growing over time.
7205 //
7206 // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events
7207 // for this reason we need to manually dispatch resize events after the resize has been done for each column.
7208 colsToSpread.forEach(function (column) { return column.resetActualWidth(source); });
7209 while (!finishedResizing) {
7210 finishedResizing = true;
7211 var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);
7212 if (availablePixels <= 0) {
7213 // no width, set everything to minimum
7214 colsToSpread.forEach(function (column) {
7215 var _a, _b;
7216 var widthOverride = (_b = (_a = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()]) === null || _a === void 0 ? void 0 : _a.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth;
7217 if (typeof widthOverride === 'number') {
7218 column.setActualWidth(widthOverride);
7219 return;
7220 }
7221 column.setMinimum(source);
7222 });
7223 }
7224 else {
7225 var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);
7226 // we set the pixels for the last col based on what's left, as otherwise
7227 // we could be a pixel or two short or extra because of rounding errors.
7228 var pixelsForLastCol = availablePixels;
7229 // backwards through loop, as we are removing items as we go
7230 for (var i = colsToSpread.length - 1; i >= 0; i--) {
7231 var column = colsToSpread[i];
7232 var widthOverride = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];
7233 var minOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth);
7234 var maxOverride = ((_c = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _c !== void 0 ? _c : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);
7235 var colMinWidth = (_d = column.getMinWidth()) !== null && _d !== void 0 ? _d : 0;
7236 var colMaxWidth = (_e = column.getMaxWidth()) !== null && _e !== void 0 ? _e : Number.MAX_VALUE;
7237 var minWidth = typeof minOverride === 'number' && minOverride > colMinWidth ? minOverride : column.getMinWidth();
7238 var maxWidth = typeof maxOverride === 'number' && maxOverride < colMaxWidth ? maxOverride : column.getMaxWidth();
7239 var newWidth = Math.round(column.getActualWidth() * scale);
7240 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(minWidth) && newWidth < minWidth) {
7241 newWidth = minWidth;
7242 moveToNotSpread(column);
7243 finishedResizing = false;
7244 }
7245 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["exists"])(maxWidth) && newWidth > maxWidth) {
7246 newWidth = maxWidth;
7247 moveToNotSpread(column);
7248 finishedResizing = false;
7249 }
7250 else if (i === 0) { // if this is the last column
7251 newWidth = pixelsForLastCol;
7252 }
7253 column.setActualWidth(newWidth, source, true);
7254 pixelsForLastCol -= newWidth;
7255 }
7256 }
7257 }
7258 // see notes above
7259 colsToDispatchEventFor.forEach(function (col) {
7260 col.fireColumnWidthChangedEvent(source);
7261 });
7262 this.setLeftValues(source);
7263 this.updateBodyWidths();
7264 if (silent) {
7265 return;
7266 }
7267 this.dispatchColumnResizedEvent(colsToDispatchEventFor, true, source);
7268 };
7269 ColumnModel.prototype.buildDisplayedTrees = function (visibleColumns) {
7270 var leftVisibleColumns = [];
7271 var rightVisibleColumns = [];
7272 var centerVisibleColumns = [];
7273 visibleColumns.forEach(function (column) {
7274 switch (column.getPinned()) {
7275 case "left":
7276 leftVisibleColumns.push(column);
7277 break;
7278 case "right":
7279 rightVisibleColumns.push(column);
7280 break;
7281 default:
7282 centerVisibleColumns.push(column);
7283 break;
7284 }
7285 });
7286 var groupInstanceIdCreator = new _groupInstanceIdCreator__WEBPACK_IMPORTED_MODULE_5__["GroupInstanceIdCreator"]();
7287 this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, 'left', this.displayedTreeLeft);
7288 this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, 'right', this.displayedTreeRight);
7289 this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, null, this.displayedTreeCentre);
7290 this.updateDisplayedMap();
7291 };
7292 ColumnModel.prototype.updateDisplayedMap = function () {
7293 var _this = this;
7294 this.displayedColumnsAndGroupsMap = {};
7295 var func = function (child) {
7296 _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;
7297 };
7298 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);
7299 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);
7300 this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);
7301 };
7302 ColumnModel.prototype.isDisplayed = function (item) {
7303 var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];
7304 // check for reference, in case new column / group with same id is now present
7305 return fromMap === item;
7306 };
7307 ColumnModel.prototype.updateOpenClosedVisibilityInColumnGroups = function () {
7308 var allColumnGroups = this.getAllDisplayedTrees();
7309 this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {
7310 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
7311 var columnGroup = child;
7312 columnGroup.calculateDisplayedColumns();
7313 }
7314 });
7315 };
7316 ColumnModel.prototype.getGroupAutoColumns = function () {
7317 return this.groupAutoColumns;
7318 };
7319 /**
7320 * Creates new auto group columns if required
7321 * @returns whether auto cols have changed
7322 */
7323 ColumnModel.prototype.createGroupAutoColumnsIfNeeded = function () {
7324 if (!this.autoGroupsNeedBuilding) {
7325 return false;
7326 }
7327 this.autoGroupsNeedBuilding = false;
7328 var groupFullWidthRow = this.gridOptionsService.isGroupUseEntireRow(this.pivotMode);
7329 // we need to allow suppressing auto-column separately for group and pivot as the normal situation
7330 // is CSRM and user provides group column themselves for normal view, but when they go into pivot the
7331 // columns are generated by the grid so no opportunity for user to provide group column. so need a way
7332 // to suppress auto-col for grouping only, and not pivot.
7333 // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control
7334 // of the group column in this instance.
7335 var suppressAutoColumn = this.pivotMode ?
7336 this.gridOptionsService.is('pivotSuppressAutoColumn') : this.isGroupSuppressAutoColumn();
7337 var groupingActive = this.rowGroupColumns.length > 0 || this.usingTreeData;
7338 var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;
7339 if (needAutoColumns) {
7340 var existingCols = this.groupAutoColumns || [];
7341 var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(existingCols, this.rowGroupColumns);
7342 var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);
7343 // we force recreate so new group cols pick up the new
7344 // definitions. otherwise we could ignore the new cols because they appear to be the same.
7345 if (autoColsDifferent || this.forceRecreateAutoGroups) {
7346 this.groupAutoColumns = newAutoGroupCols;
7347 return true;
7348 }
7349 }
7350 else {
7351 this.groupAutoColumns = null;
7352 }
7353 return false;
7354 };
7355 ColumnModel.prototype.isGroupSuppressAutoColumn = function () {
7356 var groupDisplayType = this.gridOptionsService.get('groupDisplayType');
7357 var isCustomRowGroups = groupDisplayType ? Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_13__["matchesGroupDisplayType"])('custom', groupDisplayType) : false;
7358 if (isCustomRowGroups) {
7359 return true;
7360 }
7361 var treeDataDisplayType = this.gridOptionsService.get('treeDataDisplayType');
7362 return treeDataDisplayType ? Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_13__["matchesTreeDataDisplayType"])('custom', treeDataDisplayType) : false;
7363 };
7364 ColumnModel.prototype.autoColsEqual = function (colsA, colsB) {
7365 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["areEqual"])(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });
7366 };
7367 ColumnModel.prototype.getWidthOfColsInList = function (columnList) {
7368 return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);
7369 };
7370 ColumnModel.prototype.getGridBalancedTree = function () {
7371 return this.gridBalancedTree;
7372 };
7373 ColumnModel.prototype.hasFloatingFilters = function () {
7374 if (!this.gridColumns) {
7375 return false;
7376 }
7377 var res = this.gridColumns.some(function (col) { return col.getColDef().floatingFilter; });
7378 return res;
7379 };
7380 ColumnModel.prototype.getFirstDisplayedColumn = function () {
7381 var isRtl = this.gridOptionsService.is('enableRtl');
7382 var queryOrder = [
7383 'getDisplayedLeftColumns',
7384 'getDisplayedCenterColumns',
7385 'getDisplayedRightColumns'
7386 ];
7387 if (isRtl) {
7388 queryOrder.reverse();
7389 }
7390 for (var i = 0; i < queryOrder.length; i++) {
7391 var container = this[queryOrder[i]]();
7392 if (container.length) {
7393 return isRtl ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(container) : container[0];
7394 }
7395 }
7396 return null;
7397 };
7398 ColumnModel.prototype.setColumnHeaderHeight = function (col, height) {
7399 var changed = col.setAutoHeaderHeight(height);
7400 if (changed) {
7401 var event_5 = {
7402 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_HEADER_HEIGHT_CHANGED,
7403 column: col,
7404 columns: [col],
7405 source: 'autosizeColumnHeaderHeight',
7406 };
7407 this.eventService.dispatchEvent(event_5);
7408 }
7409 };
7410 ColumnModel.prototype.getColumnGroupHeaderRowHeight = function () {
7411 if (this.isPivotMode()) {
7412 return this.getPivotGroupHeaderHeight();
7413 }
7414 return this.getGroupHeaderHeight();
7415 };
7416 ColumnModel.prototype.getColumnHeaderRowHeight = function () {
7417 var defaultHeight = (this.isPivotMode() ?
7418 this.getPivotHeaderHeight() :
7419 this.getHeaderHeight());
7420 var displayedHeights = this.getAllDisplayedColumns()
7421 .filter(function (col) { return col.isAutoHeaderHeight(); })
7422 .map(function (col) { return col.getAutoHeaderHeight() || 0; });
7423 return Math.max.apply(Math, __spread([defaultHeight], displayedHeights));
7424 };
7425 ColumnModel.prototype.getHeaderHeight = function () {
7426 var _a;
7427 return (_a = this.gridOptionsService.getNum('headerHeight')) !== null && _a !== void 0 ? _a : this.environment.getFromTheme(25, 'headerHeight');
7428 };
7429 ColumnModel.prototype.getFloatingFiltersHeight = function () {
7430 var _a;
7431 return (_a = this.gridOptionsService.getNum('floatingFiltersHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();
7432 };
7433 ColumnModel.prototype.getGroupHeaderHeight = function () {
7434 var _a;
7435 return (_a = this.gridOptionsService.getNum('groupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();
7436 };
7437 ColumnModel.prototype.getPivotHeaderHeight = function () {
7438 var _a;
7439 return (_a = this.gridOptionsService.getNum('pivotHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();
7440 };
7441 ColumnModel.prototype.getPivotGroupHeaderHeight = function () {
7442 var _a;
7443 return (_a = this.gridOptionsService.getNum('pivotGroupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getGroupHeaderHeight();
7444 };
7445 __decorate([
7446 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('expressionService')
7447 ], ColumnModel.prototype, "expressionService", void 0);
7448 __decorate([
7449 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnFactory')
7450 ], ColumnModel.prototype, "columnFactory", void 0);
7451 __decorate([
7452 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('displayedGroupCreator')
7453 ], ColumnModel.prototype, "displayedGroupCreator", void 0);
7454 __decorate([
7455 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('ctrlsService')
7456 ], ColumnModel.prototype, "ctrlsService", void 0);
7457 __decorate([
7458 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('autoWidthCalculator')
7459 ], ColumnModel.prototype, "autoWidthCalculator", void 0);
7460 __decorate([
7461 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnUtils')
7462 ], ColumnModel.prototype, "columnUtils", void 0);
7463 __decorate([
7464 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnAnimationService')
7465 ], ColumnModel.prototype, "columnAnimationService", void 0);
7466 __decorate([
7467 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('autoGroupColService')
7468 ], ColumnModel.prototype, "autoGroupColService", void 0);
7469 __decorate([
7470 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('aggFuncService')
7471 ], ColumnModel.prototype, "aggFuncService", void 0);
7472 __decorate([
7473 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('valueCache')
7474 ], ColumnModel.prototype, "valueCache", void 0);
7475 __decorate([
7476 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Optional"])('animationFrameService')
7477 ], ColumnModel.prototype, "animationFrameService", void 0);
7478 __decorate([
7479 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('rowModel')
7480 ], ColumnModel.prototype, "rowModel", void 0);
7481 __decorate([
7482 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('sortController')
7483 ], ColumnModel.prototype, "sortController", void 0);
7484 __decorate([
7485 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Autowired"])('columnDefFactory')
7486 ], ColumnModel.prototype, "columnDefFactory", void 0);
7487 __decorate([
7488 _context_context__WEBPACK_IMPORTED_MODULE_6__["PostConstruct"]
7489 ], ColumnModel.prototype, "init", null);
7490 __decorate([
7491 _context_context__WEBPACK_IMPORTED_MODULE_6__["PreDestroy"]
7492 ], ColumnModel.prototype, "destroyColumns", null);
7493 __decorate([
7494 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Qualifier"])('loggerFactory'))
7495 ], ColumnModel.prototype, "setBeans", null);
7496 ColumnModel = __decorate([
7497 Object(_context_context__WEBPACK_IMPORTED_MODULE_6__["Bean"])('columnModel')
7498 ], ColumnModel);
7499 return ColumnModel;
7500}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
7501
7502
7503
7504/***/ }),
7505/* 21 */
7506/***/ (function(module, __webpack_exports__, __webpack_require__) {
7507
7508"use strict";
7509__webpack_require__.r(__webpack_exports__);
7510/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return ColumnGroup; });
7511/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
7512/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
7513/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
7514/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
7515/* harmony import */ var _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22);
7516/**
7517 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
7518 * @version v29.2.0
7519 * @link https://www.ag-grid.com/
7520 * @license MIT
7521 */
7522var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7523 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7524 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7525 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;
7526 return c > 3 && r && Object.defineProperty(target, key, r), r;
7527};
7528
7529
7530
7531
7532
7533var ColumnGroup = /** @class */ (function () {
7534 function ColumnGroup(providedColumnGroup, groupId, partId, pinned) {
7535 // depends on the open/closed state of the group, only displaying columns are stored here
7536 this.displayedChildren = [];
7537 this.localEventService = new _eventService__WEBPACK_IMPORTED_MODULE_1__["EventService"]();
7538 this.groupId = groupId;
7539 this.partId = partId;
7540 this.providedColumnGroup = providedColumnGroup;
7541 this.pinned = pinned;
7542 }
7543 // this is static, a it is used outside of this class
7544 ColumnGroup.createUniqueId = function (groupId, instanceId) {
7545 return groupId + '_' + instanceId;
7546 };
7547 // as the user is adding and removing columns, the groups are recalculated.
7548 // this reset clears out all children, ready for children to be added again
7549 ColumnGroup.prototype.reset = function () {
7550 this.parent = null;
7551 this.children = null;
7552 this.displayedChildren = null;
7553 };
7554 ColumnGroup.prototype.getParent = function () {
7555 return this.parent;
7556 };
7557 ColumnGroup.prototype.setParent = function (parent) {
7558 this.parent = parent;
7559 };
7560 ColumnGroup.prototype.getUniqueId = function () {
7561 return ColumnGroup.createUniqueId(this.groupId, this.partId);
7562 };
7563 ColumnGroup.prototype.isEmptyGroup = function () {
7564 return this.displayedChildren.length === 0;
7565 };
7566 ColumnGroup.prototype.isMoving = function () {
7567 var allLeafColumns = this.getProvidedColumnGroup().getLeafColumns();
7568 if (!allLeafColumns || allLeafColumns.length === 0) {
7569 return false;
7570 }
7571 return allLeafColumns.every(function (col) { return col.isMoving(); });
7572 };
7573 ColumnGroup.prototype.checkLeft = function () {
7574 // first get all children to setLeft, as it impacts our decision below
7575 this.displayedChildren.forEach(function (child) {
7576 if (child instanceof ColumnGroup) {
7577 child.checkLeft();
7578 }
7579 });
7580 // set our left based on first displayed column
7581 if (this.displayedChildren.length > 0) {
7582 if (this.gridOptionsService.is('enableRtl')) {
7583 var lastChild = Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(this.displayedChildren);
7584 var lastChildLeft = lastChild.getLeft();
7585 this.setLeft(lastChildLeft);
7586 }
7587 else {
7588 var firstChildLeft = this.displayedChildren[0].getLeft();
7589 this.setLeft(firstChildLeft);
7590 }
7591 }
7592 else {
7593 // this should never happen, as if we have no displayed columns, then
7594 // this groups should not even exist.
7595 this.setLeft(null);
7596 }
7597 };
7598 ColumnGroup.prototype.getLeft = function () {
7599 return this.left;
7600 };
7601 ColumnGroup.prototype.getOldLeft = function () {
7602 return this.oldLeft;
7603 };
7604 ColumnGroup.prototype.setLeft = function (left) {
7605 this.oldLeft = left;
7606 if (this.left !== left) {
7607 this.left = left;
7608 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));
7609 }
7610 };
7611 ColumnGroup.prototype.getPinned = function () {
7612 return this.pinned;
7613 };
7614 ColumnGroup.prototype.createAgEvent = function (type) {
7615 return { type: type };
7616 };
7617 ColumnGroup.prototype.addEventListener = function (eventType, listener) {
7618 this.localEventService.addEventListener(eventType, listener);
7619 };
7620 ColumnGroup.prototype.removeEventListener = function (eventType, listener) {
7621 this.localEventService.removeEventListener(eventType, listener);
7622 };
7623 ColumnGroup.prototype.getGroupId = function () {
7624 return this.groupId;
7625 };
7626 ColumnGroup.prototype.getPartId = function () {
7627 return this.partId;
7628 };
7629 ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {
7630 var result = false;
7631 this.children.forEach(function (foundChild) {
7632 if (wantedChild === foundChild) {
7633 result = true;
7634 }
7635 if (foundChild instanceof ColumnGroup) {
7636 if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {
7637 result = true;
7638 }
7639 }
7640 });
7641 return result;
7642 };
7643 ColumnGroup.prototype.getActualWidth = function () {
7644 var groupActualWidth = 0;
7645 if (this.displayedChildren) {
7646 this.displayedChildren.forEach(function (child) {
7647 groupActualWidth += child.getActualWidth();
7648 });
7649 }
7650 return groupActualWidth;
7651 };
7652 ColumnGroup.prototype.isResizable = function () {
7653 if (!this.displayedChildren) {
7654 return false;
7655 }
7656 // if at least one child is resizable, then the group is resizable
7657 var result = false;
7658 this.displayedChildren.forEach(function (child) {
7659 if (child.isResizable()) {
7660 result = true;
7661 }
7662 });
7663 return result;
7664 };
7665 ColumnGroup.prototype.getMinWidth = function () {
7666 var result = 0;
7667 this.displayedChildren.forEach(function (groupChild) {
7668 result += groupChild.getMinWidth() || 0;
7669 });
7670 return result;
7671 };
7672 ColumnGroup.prototype.addChild = function (child) {
7673 if (!this.children) {
7674 this.children = [];
7675 }
7676 this.children.push(child);
7677 };
7678 ColumnGroup.prototype.getDisplayedChildren = function () {
7679 return this.displayedChildren;
7680 };
7681 ColumnGroup.prototype.getLeafColumns = function () {
7682 var result = [];
7683 this.addLeafColumns(result);
7684 return result;
7685 };
7686 ColumnGroup.prototype.getDisplayedLeafColumns = function () {
7687 var result = [];
7688 this.addDisplayedLeafColumns(result);
7689 return result;
7690 };
7691 ColumnGroup.prototype.getDefinition = function () {
7692 return this.providedColumnGroup.getColGroupDef();
7693 };
7694 ColumnGroup.prototype.getColGroupDef = function () {
7695 return this.providedColumnGroup.getColGroupDef();
7696 };
7697 ColumnGroup.prototype.isPadding = function () {
7698 return this.providedColumnGroup.isPadding();
7699 };
7700 ColumnGroup.prototype.isExpandable = function () {
7701 return this.providedColumnGroup.isExpandable();
7702 };
7703 ColumnGroup.prototype.isExpanded = function () {
7704 return this.providedColumnGroup.isExpanded();
7705 };
7706 ColumnGroup.prototype.setExpanded = function (expanded) {
7707 this.providedColumnGroup.setExpanded(expanded);
7708 };
7709 ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {
7710 this.displayedChildren.forEach(function (child) {
7711 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
7712 leafColumns.push(child);
7713 }
7714 else if (child instanceof ColumnGroup) {
7715 child.addDisplayedLeafColumns(leafColumns);
7716 }
7717 });
7718 };
7719 ColumnGroup.prototype.addLeafColumns = function (leafColumns) {
7720 this.children.forEach(function (child) {
7721 if (child instanceof _column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
7722 leafColumns.push(child);
7723 }
7724 else if (child instanceof ColumnGroup) {
7725 child.addLeafColumns(leafColumns);
7726 }
7727 });
7728 };
7729 ColumnGroup.prototype.getChildren = function () {
7730 return this.children;
7731 };
7732 ColumnGroup.prototype.getColumnGroupShow = function () {
7733 return this.providedColumnGroup.getColumnGroupShow();
7734 };
7735 ColumnGroup.prototype.getProvidedColumnGroup = function () {
7736 return this.providedColumnGroup;
7737 };
7738 /** @deprecated v27 getOriginalColumnGroup is deprecated, use getProvidedColumnGroup. */
7739 ColumnGroup.prototype.getOriginalColumnGroup = function () {
7740 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_4__["logDeprecation"])('27', 'getOriginalColumnGroup', 'getProvidedColumnGroup');
7741 return this.getProvidedColumnGroup();
7742 };
7743 ColumnGroup.prototype.getPaddingLevel = function () {
7744 var parent = this.getParent();
7745 if (!this.isPadding() || !parent || !parent.isPadding()) {
7746 return 0;
7747 }
7748 return 1 + parent.getPaddingLevel();
7749 };
7750 ColumnGroup.prototype.calculateDisplayedColumns = function () {
7751 var _this = this;
7752 // clear out last time we calculated
7753 this.displayedChildren = [];
7754 // find the column group that is controlling expandable. this is relevant when we have padding (empty)
7755 // groups, where the expandable is actually the first parent that is not a padding group.
7756 var parentWithExpansion = this;
7757 while (parentWithExpansion != null && parentWithExpansion.isPadding()) {
7758 parentWithExpansion = parentWithExpansion.getParent();
7759 }
7760 var isExpandable = parentWithExpansion ? parentWithExpansion.providedColumnGroup.isExpandable() : false;
7761 // it not expandable, everything is visible
7762 if (!isExpandable) {
7763 this.displayedChildren = this.children;
7764 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));
7765 return;
7766 }
7767 // Add cols based on columnGroupShow
7768 // Note - the below also adds padding groups, these are always added because they never have
7769 // colDef.columnGroupShow set.
7770 this.children.forEach(function (child) {
7771 // never add empty groups
7772 var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);
7773 if (emptyGroup) {
7774 return;
7775 }
7776 var headerGroupShow = child.getColumnGroupShow();
7777 switch (headerGroupShow) {
7778 case 'open':
7779 // when set to open, only show col if group is open
7780 if (parentWithExpansion.providedColumnGroup.isExpanded()) {
7781 _this.displayedChildren.push(child);
7782 }
7783 break;
7784 case 'closed':
7785 // when set to open, only show col if group is open
7786 if (!parentWithExpansion.providedColumnGroup.isExpanded()) {
7787 _this.displayedChildren.push(child);
7788 }
7789 break;
7790 default:
7791 _this.displayedChildren.push(child);
7792 break;
7793 }
7794 });
7795 this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));
7796 };
7797 ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';
7798 ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';
7799 __decorate([
7800 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsService')
7801 ], ColumnGroup.prototype, "gridOptionsService", void 0);
7802 return ColumnGroup;
7803}());
7804
7805
7806
7807/***/ }),
7808/* 22 */
7809/***/ (function(module, __webpack_exports__, __webpack_require__) {
7810
7811"use strict";
7812__webpack_require__.r(__webpack_exports__);
7813/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logDeprecation", function() { return logDeprecation; });
7814/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridOptionsValidator", function() { return GridOptionsValidator; });
7815/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matchesGroupDisplayType", function() { return matchesGroupDisplayType; });
7816/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "matchesTreeDataDisplayType", function() { return matchesTreeDataDisplayType; });
7817/* harmony import */ var _components_colDefUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23);
7818/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24);
7819/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
7820/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
7821/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);
7822/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(27);
7823/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13);
7824/* harmony import */ var _utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(28);
7825/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12);
7826/**
7827 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
7828 * @version v29.2.0
7829 * @link https://www.ag-grid.com/
7830 * @license MIT
7831 */
7832var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
7833 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
7834 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7835 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;
7836 return c > 3 && r && Object.defineProperty(target, key, r), r;
7837};
7838var __read = (undefined && undefined.__read) || function (o, n) {
7839 var m = typeof Symbol === "function" && o[Symbol.iterator];
7840 if (!m) return o;
7841 var i = m.call(o), r, ar = [], e;
7842 try {
7843 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
7844 }
7845 catch (error) { e = { error: error }; }
7846 finally {
7847 try {
7848 if (r && !r.done && (m = i["return"])) m.call(i);
7849 }
7850 finally { if (e) throw e.error; }
7851 }
7852 return ar;
7853};
7854var __spread = (undefined && undefined.__spread) || function () {
7855 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
7856 return ar;
7857};
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867function logDeprecation(version, oldProp, newProp, message) {
7868 var newPropMsg = newProp ? "Please use '" + newProp + "' instead. " : '';
7869 Object(_utils_function__WEBPACK_IMPORTED_MODULE_6__["doOnce"])(function () { return console.warn("AG Grid: since v" + version + ", '" + oldProp + "' is deprecated. " + newPropMsg + (message !== null && message !== void 0 ? message : '')); }, "Deprecated_" + oldProp);
7870}
7871var GridOptionsValidator = /** @class */ (function () {
7872 function GridOptionsValidator() {
7873 this.deprecatedProperties = {
7874 serverSideInfiniteScroll: { version: '29', message: 'Infinite Scrolling is now the default behaviour. This can be suppressed with `suppressServerSideInfiniteScroll`.' },
7875 rememberGroupStateWhenNewData: { version: '24', message: 'Now that transaction updates are possible and they keep group state, this feature is no longer needed.' },
7876 suppressEnterpriseResetOnNewColumns: { version: '25', message: 'Now that it is possible to dynamically change columns in the grid, this is no longer needed.' },
7877 suppressColumnStateEvents: { version: '25', message: 'Events should be ignored based on the `event.source`, which will be "api" if the event was due to setting column state via the API.' },
7878 defaultExportParams: { version: '25.2', message: 'The property `defaultExportParams` has been replaced by `defaultCsvExportParams` and `defaultExcelExportParams`' },
7879 stopEditingWhenGridLosesFocus: { version: '25.2.2', newProp: 'stopEditingWhenCellsLoseFocus', copyToNewProp: true },
7880 applyColumnDefOrder: { version: '26', message: 'The property `applyColumnDefOrder` is no longer needed, as this is the default behaviour. To turn this behaviour off, set maintainColumnOrder=true' },
7881 groupMultiAutoColumn: { version: '26', newProp: 'groupDisplayType', copyToNewProp: true, newPropValue: 'multipleColumns' },
7882 groupUseEntireRow: { version: '26', newProp: 'groupDisplayType', copyToNewProp: true, newPropValue: 'groupRows' },
7883 defaultGroupSortComparator: { version: '26', newProp: 'initialGroupOrderComparator' },
7884 enableMultiRowDragging: { version: '26.1', newProp: 'rowDragMultiRow', copyToNewProp: true },
7885 colWidth: { version: '26.1', newProp: 'defaultColDef.width' },
7886 minColWidth: { version: '26.1', newProp: 'defaultColDef.minWidth' },
7887 maxColWidth: { version: '26.1', newProp: 'defaultColDef.maxWidth' },
7888 reactUi: { version: '26.1', message: 'React UI is on by default, so no need for reactUi=true. To turn it off, set suppressReactUi=true.' },
7889 suppressCellSelection: { version: '27', newProp: 'suppressCellFocus', copyToNewProp: true },
7890 clipboardDeliminator: { version: '27.1', newProp: 'clipboardDelimiter', copyToNewProp: true },
7891 getRowNodeId: { version: '27.1', newProp: 'getRowId', message: 'The difference: if getRowId() is implemented then immutable data is enabled by default.' },
7892 defaultGroupOrderComparator: { version: '27.2', newProp: 'initialGroupOrderComparator' },
7893 groupRowAggNodes: { version: '27.2', newProp: 'getGroupRowAgg' },
7894 postSort: { version: '27.2', newProp: 'postSortRows' },
7895 isFullWidthCell: { version: '27.2', newProp: 'isFullWidthRow' },
7896 localeTextFunc: { version: '27.2', newProp: 'getLocaleText' },
7897 serverSideFilteringAlwaysResets: { version: '28.0', newProp: 'serverSideFilterAllLevels', copyToNewProp: true, },
7898 serverSideSortingAlwaysResets: { version: '28.0', newProp: 'serverSideSortAllLevels', copyToNewProp: true, },
7899 suppressReactUi: { version: '28', message: 'The legacy React rendering engine is deprecated and will be removed in the next major version of the grid.' },
7900 processSecondaryColDef: { version: '28', newProp: 'processPivotResultColDef', copyToNewProp: true },
7901 processSecondaryColGroupDef: { version: '28', newProp: 'processPivotResultColGroupDef', copyToNewProp: true },
7902 getServerSideStoreParams: { version: '28', newProp: 'getServerSideGroupLevelParams', copyToNewProp: true },
7903 enableChartToolPanelsButton: { version: '29', message: 'The Chart Tool Panels button is now enabled by default. To hide the Chart Tool Panels button and display the hamburger button instead, set suppressChartToolPanelsButton=true.' },
7904 functionsPassive: { version: '29.2' },
7905 onColumnRowGroupChangeRequest: { version: '29.2' },
7906 onColumnPivotChangeRequest: { version: '29.2' },
7907 onColumnValueChangeRequest: { version: '29.2' },
7908 onColumnAggFuncChangeRequest: { version: '29.2' },
7909 };
7910 }
7911 GridOptionsValidator.prototype.pickOneWarning = function (prop1, prop2) {
7912 console.warn("AG Grid: " + prop1 + " and " + prop2 + " do not work with each other, you need to pick one.");
7913 };
7914 GridOptionsValidator.prototype.init = function () {
7915 var _this = this;
7916 this.checkForDeprecated();
7917 this.checkForViolations();
7918 if (this.gridOptions.suppressPropertyNamesCheck !== true) {
7919 this.checkGridOptionsProperties();
7920 this.checkColumnDefProperties();
7921 }
7922 this.checkColumnDefViolations();
7923 if (this.gridOptionsService.is('groupSelectsChildren') && this.gridOptionsService.is('suppressParentsInRowNodes')) {
7924 console.warn("AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work");
7925 }
7926 if (this.gridOptionsService.is('groupSelectsChildren')) {
7927 if (this.gridOptionsService.get('rowSelection') !== 'multiple') {
7928 console.warn("AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense");
7929 }
7930 }
7931 if (this.gridOptionsService.is('groupRemoveSingleChildren') && this.gridOptionsService.is('groupHideOpenParents')) {
7932 this.pickOneWarning('groupRemoveSingleChildren', 'groupHideOpenParents');
7933 }
7934 if (this.gridOptionsService.isRowModelType('serverSide')) {
7935 var msg = function (prop, alt) { return ("AG Grid: '" + prop + "' is not supported on the Server-Side Row Model." + (alt ? " Please use " + alt + " instead." : '')); };
7936 if (this.gridOptionsService.exists('groupDefaultExpanded')) {
7937 console.warn(msg('groupDefaultExpanded', 'isServerSideGroupOpenByDefault callback'));
7938 }
7939 if (this.gridOptionsService.exists('groupIncludeFooter')) {
7940 console.warn(msg('groupIncludeFooter'));
7941 }
7942 if (this.gridOptionsService.exists('groupIncludeTotalFooter')) {
7943 console.warn(msg('groupIncludeTotalFooter'));
7944 }
7945 }
7946 if (this.gridOptionsService.is('enableRangeSelection')) {
7947 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RangeSelectionModule, 'enableRangeSelection');
7948 }
7949 else if (this.gridOptionsService.is('enableRangeHandle') || this.gridOptionsService.is('enableFillHandle')) {
7950 console.warn("AG Grid: 'enableRangeHandle' or 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true");
7951 }
7952 var validateRegistered = function (prop, module) { return _this.gridOptionsService.exists(prop) && _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].assertRegistered(module, prop); };
7953 // Ensure the SideBar is registered which will then lead them to register Column / Filter Tool panels as required by their config.
7954 // It is possible to use the SideBar only with your own custom tool panels.
7955 validateRegistered('sideBar', _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SideBarModule);
7956 validateRegistered('statusBar', _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].StatusBarModule);
7957 validateRegistered('enableCharts', _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].GridChartsModule);
7958 validateRegistered('getMainMenuItems', _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].MenuModule);
7959 validateRegistered('getContextMenuItems', _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].MenuModule);
7960 validateRegistered('allowContextMenuWithControlKey', _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].MenuModule);
7961 if (this.gridOptionsService.is('groupRowsSticky')) {
7962 if (this.gridOptionsService.is('groupHideOpenParents')) {
7963 this.pickOneWarning('groupRowsSticky', 'groupHideOpenParents');
7964 }
7965 if (this.gridOptionsService.is('masterDetail')) {
7966 this.pickOneWarning('groupRowsSticky', 'masterDetail');
7967 }
7968 if (this.gridOptionsService.is('pagination')) {
7969 this.pickOneWarning('groupRowsSticky', 'pagination');
7970 }
7971 }
7972 };
7973 GridOptionsValidator.prototype.checkColumnDefProperties = function () {
7974 var _this = this;
7975 if (this.gridOptions.columnDefs == null) {
7976 return;
7977 }
7978 this.gridOptions.columnDefs.forEach(function (colDef) {
7979 var userProperties = Object.getOwnPropertyNames(colDef);
7980 var validProperties = __spread(_components_colDefUtil__WEBPACK_IMPORTED_MODULE_0__["ColDefUtil"].ALL_PROPERTIES, _components_colDefUtil__WEBPACK_IMPORTED_MODULE_0__["ColDefUtil"].FRAMEWORK_PROPERTIES);
7981 _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-data-grid/column-properties/');
7982 });
7983 };
7984 GridOptionsValidator.prototype.checkColumnDefViolations = function () {
7985 var _a;
7986 var rowModel = (_a = this.gridOptionsService.get('rowModelType')) !== null && _a !== void 0 ? _a : 'clientSide';
7987 var unsupportedPropertiesMap = {
7988 infinite: ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],
7989 viewport: ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],
7990 serverSide: ['headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],
7991 clientSide: [],
7992 };
7993 var unsupportedProperties = unsupportedPropertiesMap[rowModel];
7994 if (!(unsupportedProperties === null || unsupportedProperties === void 0 ? void 0 : unsupportedProperties.length)) {
7995 return;
7996 }
7997 var validateColDef = function (colDef) {
7998 unsupportedProperties.forEach(function (property) {
7999 if (property in colDef && !!colDef[property]) {
8000 console.warn("AG Grid: Column property " + property + " is not supported with the row model type " + rowModel + ".");
8001 }
8002 });
8003 };
8004 if (this.gridOptions.columnDefs != null) {
8005 this.gridOptions.columnDefs.forEach(function (colDef) { return validateColDef(colDef); });
8006 }
8007 if (this.gridOptions.autoGroupColumnDef != null) {
8008 validateColDef(this.gridOptions.autoGroupColumnDef);
8009 }
8010 if (this.gridOptions.defaultColDef != null) {
8011 validateColDef(this.gridOptions.defaultColDef);
8012 }
8013 };
8014 GridOptionsValidator.prototype.checkGridOptionsProperties = function () {
8015 var userProperties = Object.getOwnPropertyNames(this.gridOptions);
8016 var validProperties = __spread(_propertyKeys__WEBPACK_IMPORTED_MODULE_5__["PropertyKeys"].ALL_PROPERTIES, _propertyKeys__WEBPACK_IMPORTED_MODULE_5__["PropertyKeys"].FRAMEWORK_PROPERTIES, _components_componentUtil__WEBPACK_IMPORTED_MODULE_1__["ComponentUtil"].EVENT_CALLBACKS);
8017 var validPropertiesAndExceptions = __spread(validProperties, ['api', 'columnApi'], Object.keys(this.deprecatedProperties));
8018 this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-data-grid/grid-options/');
8019 };
8020 GridOptionsValidator.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {
8021 var invalidProperties = Object(_utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_7__["fuzzyCheckStrings"])(userProperties, validPropertiesAndExceptions, validProperties);
8022 Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["iterateObject"])(invalidProperties, function (key, value) {
8023 console.warn("AG Grid: invalid " + containerName + " property '" + key + "' did you mean any of these: " + value.slice(0, 8).join(", "));
8024 });
8025 if (Object.keys(invalidProperties).length > 0) {
8026 console.warn("AG Grid: to see all the valid " + containerName + " properties please check: " + docsUrl);
8027 }
8028 };
8029 GridOptionsValidator.prototype.checkForDeprecated = function () {
8030 // casting to generic object, so typescript compiles even though
8031 // we are looking for attributes that don't exist
8032 var options = this.gridOptions;
8033 Object.entries(this.deprecatedProperties).forEach(function (_a) {
8034 var _b;
8035 var _c = __read(_a, 2), oldProp = _c[0], details = _c[1];
8036 var oldPropValue = options[oldProp];
8037 if (oldPropValue) {
8038 logDeprecation(details.version, oldProp, details.newProp, details.message);
8039 if (details.copyToNewProp && details.newProp && options[details.newProp] == null) {
8040 options[details.newProp] = (_b = details.newPropValue) !== null && _b !== void 0 ? _b : oldPropValue;
8041 }
8042 }
8043 });
8044 // Manual messages and deprecation behaviour that don't fit our standard approach above.
8045 if (options.groupSuppressAutoColumn) {
8046 var propName = options.treeData ? 'treeDataDisplayType' : 'groupDisplayType';
8047 console.warn("AG Grid: since v26.0, the grid property `groupSuppressAutoColumn` has been replaced by `" + propName + " = 'custom'`");
8048 options[propName] = 'custom';
8049 }
8050 if (options.immutableData) {
8051 if (options.getRowId) {
8052 console.warn('AG Grid: since v27.1, `immutableData` is deprecated. With the `getRowId` callback implemented, immutable data is enabled by default so you can remove `immutableData=true`.');
8053 }
8054 else {
8055 console.warn('AG Grid: since v27.1, `immutableData` is deprecated. To enable immutable data you must implement the `getRowId()` callback.');
8056 }
8057 }
8058 if (options.serverSideStoreType) {
8059 console.warn('AG Grid: since v29.0, `serverSideStoreType` has been replaced by `suppressServerSideInfiniteScroll`. Set to false to use Partial Store, and true to use Full Store.');
8060 options.suppressServerSideInfiniteScroll = options.serverSideStoreType !== 'partial';
8061 }
8062 };
8063 GridOptionsValidator.prototype.checkForViolations = function () {
8064 if (this.gridOptionsService.is('treeData')) {
8065 this.treeDataViolations();
8066 }
8067 };
8068 GridOptionsValidator.prototype.treeDataViolations = function () {
8069 if (this.gridOptionsService.isRowModelType('clientSide')) {
8070 if (!this.gridOptionsService.exists('getDataPath')) {
8071 console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +
8072 'provide getDataPath function, please provide getDataPath function if using tree data.');
8073 }
8074 }
8075 if (this.gridOptionsService.isRowModelType('serverSide')) {
8076 if (!this.gridOptionsService.exists('isServerSideGroup')) {
8077 console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +
8078 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');
8079 }
8080 if (!this.gridOptionsService.exists('getServerSideGroupKey')) {
8081 console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +
8082 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');
8083 }
8084 }
8085 };
8086 __decorate([
8087 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptions')
8088 ], GridOptionsValidator.prototype, "gridOptions", void 0);
8089 __decorate([
8090 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsService')
8091 ], GridOptionsValidator.prototype, "gridOptionsService", void 0);
8092 __decorate([
8093 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
8094 ], GridOptionsValidator.prototype, "init", null);
8095 GridOptionsValidator = __decorate([
8096 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('gridOptionsValidator')
8097 ], GridOptionsValidator);
8098 return GridOptionsValidator;
8099}());
8100
8101function matchesGroupDisplayType(toMatch, supplied) {
8102 var groupDisplayTypeValues = ['groupRows', 'multipleColumns', 'custom', 'singleColumn'];
8103 if (groupDisplayTypeValues.indexOf(supplied) < 0) {
8104 console.warn("AG Grid: '" + supplied + "' is not a valid groupDisplayType value - possible values are: '" + groupDisplayTypeValues.join("', '") + "'");
8105 return false;
8106 }
8107 return supplied === toMatch;
8108}
8109function matchesTreeDataDisplayType(toMatch, supplied) {
8110 var treeDataDisplayTypeValues = ['auto', 'custom'];
8111 if (treeDataDisplayTypeValues.indexOf(supplied) < 0) {
8112 console.warn("AG Grid: '" + supplied + "' is not a valid treeDataDisplayType value - possible values are: '" + treeDataDisplayTypeValues.join("', '") + "'");
8113 return false;
8114 }
8115 return supplied === toMatch;
8116}
8117
8118
8119/***/ }),
8120/* 23 */
8121/***/ (function(module, __webpack_exports__, __webpack_require__) {
8122
8123"use strict";
8124__webpack_require__.r(__webpack_exports__);
8125/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return ColDefUtil; });
8126/**
8127 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8128 * @version v29.2.0
8129 * @link https://www.ag-grid.com/
8130 * @license MIT
8131 */
8132var ColDefUtil = /** @class */ (function () {
8133 function ColDefUtil() {
8134 }
8135 ColDefUtil.ColDefPropertyMap = {
8136 headerName: undefined,
8137 columnGroupShow: undefined,
8138 headerClass: undefined,
8139 toolPanelClass: undefined,
8140 headerValueGetter: undefined,
8141 pivotKeys: undefined,
8142 groupId: undefined,
8143 colId: undefined,
8144 sort: undefined,
8145 initialSort: undefined,
8146 field: undefined,
8147 type: undefined,
8148 tooltipComponent: undefined,
8149 tooltipField: undefined,
8150 headerTooltip: undefined,
8151 cellClass: undefined,
8152 showRowGroup: undefined,
8153 filter: undefined,
8154 initialAggFunc: undefined,
8155 defaultAggFunc: undefined,
8156 aggFunc: undefined,
8157 pinned: undefined,
8158 initialPinned: undefined,
8159 chartDataType: undefined,
8160 cellEditorPopupPosition: undefined,
8161 headerGroupComponent: undefined,
8162 headerGroupComponentFramework: undefined,
8163 headerGroupComponentParams: undefined,
8164 cellStyle: undefined,
8165 cellRenderer: undefined,
8166 cellRendererParams: undefined,
8167 cellRendererFramework: undefined,
8168 cellEditor: undefined,
8169 cellEditorFramework: undefined,
8170 cellEditorParams: undefined,
8171 filterFramework: undefined,
8172 filterParams: undefined,
8173 pivotValueColumn: undefined,
8174 headerComponent: undefined,
8175 headerComponentFramework: undefined,
8176 headerComponentParams: undefined,
8177 floatingFilterComponent: undefined,
8178 floatingFilterComponentParams: undefined,
8179 floatingFilterComponentFramework: undefined,
8180 tooltipComponentParams: undefined,
8181 tooltipComponentFramework: undefined,
8182 refData: undefined,
8183 columnsMenuParams: undefined,
8184 children: undefined,
8185 sortingOrder: undefined,
8186 allowedAggFuncs: undefined,
8187 menuTabs: undefined,
8188 pivotTotalColumnIds: undefined,
8189 cellClassRules: undefined,
8190 icons: undefined,
8191 sortIndex: undefined,
8192 initialSortIndex: undefined,
8193 flex: undefined,
8194 initialFlex: undefined,
8195 width: undefined,
8196 initialWidth: undefined,
8197 minWidth: undefined,
8198 maxWidth: undefined,
8199 rowGroupIndex: undefined,
8200 initialRowGroupIndex: undefined,
8201 pivotIndex: undefined,
8202 initialPivotIndex: undefined,
8203 suppressCellFlash: undefined,
8204 suppressColumnsToolPanel: undefined,
8205 suppressFiltersToolPanel: undefined,
8206 openByDefault: undefined,
8207 marryChildren: undefined,
8208 hide: undefined,
8209 initialHide: undefined,
8210 rowGroup: undefined,
8211 initialRowGroup: undefined,
8212 pivot: undefined,
8213 initialPivot: undefined,
8214 checkboxSelection: undefined,
8215 showDisabledCheckboxes: undefined,
8216 headerCheckboxSelection: undefined,
8217 headerCheckboxSelectionFilteredOnly: undefined,
8218 headerCheckboxSelectionCurrentPageOnly: undefined,
8219 suppressMenu: undefined,
8220 suppressMovable: undefined,
8221 lockPosition: undefined,
8222 lockVisible: undefined,
8223 lockPinned: undefined,
8224 unSortIcon: undefined,
8225 suppressSizeToFit: undefined,
8226 suppressAutoSize: undefined,
8227 enableRowGroup: undefined,
8228 enablePivot: undefined,
8229 enableValue: undefined,
8230 editable: undefined,
8231 suppressPaste: undefined,
8232 suppressNavigable: undefined,
8233 enableCellChangeFlash: undefined,
8234 rowDrag: undefined,
8235 dndSource: undefined,
8236 autoHeight: undefined,
8237 wrapText: undefined,
8238 sortable: undefined,
8239 resizable: undefined,
8240 singleClickEdit: undefined,
8241 floatingFilter: undefined,
8242 cellEditorPopup: undefined,
8243 suppressFillHandle: undefined,
8244 wrapHeaderText: undefined,
8245 autoHeaderHeight: undefined,
8246 dndSourceOnRowDrag: undefined,
8247 valueGetter: undefined,
8248 valueSetter: undefined,
8249 filterValueGetter: undefined,
8250 keyCreator: undefined,
8251 valueFormatter: undefined,
8252 valueParser: undefined,
8253 comparator: undefined,
8254 equals: undefined,
8255 pivotComparator: undefined,
8256 suppressKeyboardEvent: undefined,
8257 suppressHeaderKeyboardEvent: undefined,
8258 colSpan: undefined,
8259 rowSpan: undefined,
8260 getQuickFilterText: undefined,
8261 onCellValueChanged: undefined,
8262 onCellClicked: undefined,
8263 onCellDoubleClicked: undefined,
8264 onCellContextMenu: undefined,
8265 rowDragText: undefined,
8266 tooltipValueGetter: undefined,
8267 cellRendererSelector: undefined,
8268 cellEditorSelector: undefined,
8269 spanHeaderHeight: undefined
8270 };
8271 ColDefUtil.ALL_PROPERTIES = Object.keys(ColDefUtil.ColDefPropertyMap);
8272 // used when doing property checks - this causes noise when using frameworks which can add their own fw specific
8273 // properties to colDefs, gridOptions etc
8274 ColDefUtil.FRAMEWORK_PROPERTIES = [
8275 '__ob__',
8276 '__v_skip',
8277 '__metadata__',
8278 'mappedColumnProperties',
8279 'hasChildColumns',
8280 'toColDef',
8281 'createColDefFromGridColumn'
8282 ];
8283 return ColDefUtil;
8284}());
8285
8286
8287
8288/***/ }),
8289/* 24 */
8290/***/ (function(module, __webpack_exports__, __webpack_require__) {
8291
8292"use strict";
8293__webpack_require__.r(__webpack_exports__);
8294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return ComponentUtil; });
8295/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
8296/* harmony import */ var _propertyKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(27);
8297/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
8298/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
8299/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
8300/**
8301 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8302 * @version v29.2.0
8303 * @link https://www.ag-grid.com/
8304 * @license MIT
8305 */
8306var __assign = (undefined && undefined.__assign) || function () {
8307 __assign = Object.assign || function(t) {
8308 for (var s, i = 1, n = arguments.length; i < n; i++) {
8309 s = arguments[i];
8310 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
8311 t[p] = s[p];
8312 }
8313 return t;
8314 };
8315 return __assign.apply(this, arguments);
8316};
8317var __read = (undefined && undefined.__read) || function (o, n) {
8318 var m = typeof Symbol === "function" && o[Symbol.iterator];
8319 if (!m) return o;
8320 var i = m.call(o), r, ar = [], e;
8321 try {
8322 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8323 }
8324 catch (error) { e = { error: error }; }
8325 finally {
8326 try {
8327 if (r && !r.done && (m = i["return"])) m.call(i);
8328 }
8329 finally { if (e) throw e.error; }
8330 }
8331 return ar;
8332};
8333var __spread = (undefined && undefined.__spread) || function () {
8334 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
8335 return ar;
8336};
8337
8338
8339
8340
8341
8342var ComponentUtil = /** @class */ (function () {
8343 function ComponentUtil() {
8344 }
8345 ComponentUtil.getCallbackForEvent = function (eventName) {
8346 if (!eventName || eventName.length < 2) {
8347 return eventName;
8348 }
8349 return 'on' + eventName[0].toUpperCase() + eventName.substr(1);
8350 };
8351 ComponentUtil.getCoercionLookup = function () {
8352 var coercionLookup = {};
8353 __spread(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.FUNCTION_PROPERTIES, ComponentUtil.EVENT_CALLBACKS).forEach(function (key) { return coercionLookup[key] = 'none'; });
8354 ComponentUtil.BOOLEAN_PROPERTIES
8355 .forEach(function (key) { return coercionLookup[key] = 'boolean'; });
8356 ComponentUtil.NUMBER_PROPERTIES
8357 .forEach(function (key) { return coercionLookup[key] = 'number'; });
8358 return coercionLookup;
8359 };
8360 ComponentUtil.getValue = function (key, rawValue) {
8361 var coercionStep = ComponentUtil.coercionLookup[key];
8362 if (coercionStep) {
8363 var newValue = rawValue;
8364 switch (coercionStep) {
8365 case 'number': {
8366 newValue = ComponentUtil.toNumber(rawValue);
8367 break;
8368 }
8369 case 'boolean': {
8370 newValue = ComponentUtil.toBoolean(rawValue);
8371 break;
8372 }
8373 case 'none': {
8374 // if groupAggFiltering exists and isn't a function, handle as a boolean.
8375 if (key === 'groupAggFiltering' && typeof rawValue !== 'function') {
8376 newValue = ComponentUtil.toBoolean(rawValue);
8377 }
8378 break;
8379 }
8380 }
8381 return newValue;
8382 }
8383 return undefined;
8384 };
8385 ComponentUtil.getGridOptionKeys = function (component, isVue) {
8386 // Vue does not have keys in prod so instead need to run through all the
8387 // gridOptions checking for presence of a gridOption key.
8388 return isVue
8389 ? Object.keys(ComponentUtil.coercionLookup)
8390 : Object.keys(component);
8391 };
8392 ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, isVue) {
8393 if (isVue === void 0) { isVue = false; }
8394 // create empty grid options if none were passed
8395 if (typeof gridOptions !== 'object') {
8396 gridOptions = {};
8397 }
8398 // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'
8399 var pGridOptions = gridOptions;
8400 var keys = ComponentUtil.getGridOptionKeys(component, isVue);
8401 // Loop through component props, if they are not undefined and a valid gridOption copy to gridOptions
8402 keys.forEach(function (key) {
8403 var value = component[key];
8404 if (typeof value !== 'undefined') {
8405 var coercedValue = ComponentUtil.getValue(key, value);
8406 if (coercedValue !== undefined) {
8407 pGridOptions[key] = coercedValue;
8408 }
8409 }
8410 });
8411 return gridOptions;
8412 };
8413 ComponentUtil.processOnChange = function (changes, api) {
8414 if (!changes || Object.keys(changes).length === 0) {
8415 return;
8416 }
8417 var changesToApply = __assign({}, changes);
8418 // We manually call these updates so that we can provide a different source of gridOptionsChanged
8419 // We do not call setProperty as this will be called by the grid api methods
8420 if (changesToApply.columnTypes) {
8421 api.setColumnTypes(changesToApply.columnTypes.currentValue, "gridOptionsChanged");
8422 delete changesToApply.columnTypes;
8423 }
8424 if (changesToApply.autoGroupColumnDef) {
8425 api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, "gridOptionsChanged");
8426 delete changesToApply.autoGroupColumnDef;
8427 }
8428 if (changesToApply.defaultColDef) {
8429 api.setDefaultColDef(changesToApply.defaultColDef.currentValue, "gridOptionsChanged");
8430 delete changesToApply.defaultColDef;
8431 }
8432 if (changesToApply.columnDefs) {
8433 api.setColumnDefs(changesToApply.columnDefs.currentValue, "gridOptionsChanged");
8434 delete changesToApply.columnDefs;
8435 }
8436 Object.keys(changesToApply).forEach(function (key) {
8437 var gridKey = key;
8438 var coercedValue = ComponentUtil.getValue(gridKey, changesToApply[gridKey].currentValue);
8439 api.__setProperty(gridKey, coercedValue);
8440 });
8441 // copy changes into an event for dispatch
8442 var event = {
8443 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COMPONENT_STATE_CHANGED
8444 };
8445 Object(_utils_object__WEBPACK_IMPORTED_MODULE_2__["iterateObject"])(changes, function (key, value) {
8446 event[key] = value;
8447 });
8448 api.dispatchEvent(event);
8449 };
8450 ComponentUtil.toBoolean = function (value) {
8451 if (typeof value === 'boolean') {
8452 return value;
8453 }
8454 if (typeof value === 'string') {
8455 // for boolean, compare to empty String to allow attributes appearing with
8456 // no value to be treated as 'true'
8457 return value.toUpperCase() === 'TRUE' || value == '';
8458 }
8459 return false;
8460 };
8461 ComponentUtil.toNumber = function (value) {
8462 if (typeof value === 'number') {
8463 return value;
8464 }
8465 if (typeof value === 'string') {
8466 return Number(value);
8467 }
8468 };
8469 // all events
8470 ComponentUtil.EVENTS = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["values"])(_events__WEBPACK_IMPORTED_MODULE_0__["Events"]);
8471 // events that are internal to AG Grid and should not be exposed to users via documentation or generated framework components
8472 /** Exclude the following internal events from code generation to prevent exposing these events via framework components */
8473 ComponentUtil.EXCLUDED_INTERNAL_EVENTS = [
8474 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED,
8475 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CHECKBOX_CHANGED,
8476 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_HEIGHT_SCALE_CHANGED,
8477 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_BODY_HEIGHT_CHANGED,
8478 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,
8479 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED,
8480 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_HOVER_CHANGED,
8481 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FLASH_CELLS,
8482 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED,
8483 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_DISPLAYED_ROWS_CHANGED,
8484 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED,
8485 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED,
8486 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED,
8487 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_POPUP_TO_FRONT,
8488 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_KEYBOARD_FOCUS,
8489 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MOUSE_FOCUS,
8490 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED,
8491 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PANEL_ITEM_DRAG_START,
8492 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PANEL_ITEM_DRAG_END,
8493 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILL_START,
8494 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILL_END,
8495 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_KEY_SHORTCUT_CHANGED_CELL_START,
8496 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_KEY_SHORTCUT_CHANGED_CELL_END,
8497 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FULL_WIDTH_ROW_FOCUSED,
8498 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_HEADER_HEIGHT_CHANGED,
8499 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_HEADER_HEIGHT_CHANGED,
8500 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_INTERNAL_TOOL_PANEL_VISIBLE_CHANGED,
8501 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_FOCUS_CLEARED,
8502 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_GRID_STYLES_CHANGED,
8503 _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_DESTROYED
8504 ];
8505 // events that are available for use by users of AG Grid and so should be documented
8506 /** EVENTS that should be exposed via code generation for the framework components. */
8507 ComponentUtil.PUBLIC_EVENTS = ComponentUtil.EVENTS.filter(function (e) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["includes"])(ComponentUtil.EXCLUDED_INTERNAL_EVENTS, e); });
8508 // onXXX methods, based on the above events
8509 ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });
8510 ComponentUtil.STRING_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].STRING_PROPERTIES;
8511 ComponentUtil.OBJECT_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].OBJECT_PROPERTIES;
8512 ComponentUtil.ARRAY_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ARRAY_PROPERTIES;
8513 ComponentUtil.NUMBER_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].NUMBER_PROPERTIES;
8514 ComponentUtil.BOOLEAN_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].BOOLEAN_PROPERTIES;
8515 ComponentUtil.FUNCTION_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].FUNCTION_PROPERTIES;
8516 ComponentUtil.ALL_PROPERTIES = _propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ALL_PROPERTIES;
8517 ComponentUtil.ALL_PROPERTIES_SET = new Set(_propertyKeys__WEBPACK_IMPORTED_MODULE_1__["PropertyKeys"].ALL_PROPERTIES);
8518 ComponentUtil.coercionLookup = ComponentUtil.getCoercionLookup();
8519 return ComponentUtil;
8520}());
8521
8522
8523
8524/***/ }),
8525/* 25 */
8526/***/ (function(module, __webpack_exports__, __webpack_require__) {
8527
8528"use strict";
8529__webpack_require__.r(__webpack_exports__);
8530/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
8531/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"]; });
8532
8533/**
8534 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8535 * @version v29.2.0
8536 * @link https://www.ag-grid.com/
8537 * @license MIT
8538 */
8539
8540
8541
8542/***/ }),
8543/* 26 */
8544/***/ (function(module, __webpack_exports__, __webpack_require__) {
8545
8546"use strict";
8547__webpack_require__.r(__webpack_exports__);
8548/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return Events; });
8549/**
8550 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8551 * @version v29.2.0
8552 * @link https://www.ag-grid.com/
8553 * @license MIT
8554 */
8555var Events = /** @class */ (function () {
8556 function Events() {
8557 }
8558 /** Everything has changed with the columns. Either complete new set of columns set, or user called applyColumnState() */
8559 /** @deprecated - grid no longer uses this, and setSate() also fires individual events */
8560 Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';
8561 /** User has set in new columns. */
8562 Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';
8563 /** The pivot mode flag was changed */
8564 Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';
8565 /** A row group column was added, removed or order changed. */
8566 Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';
8567 /** expandAll / collapseAll was called from the api. */
8568 Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';
8569 /** A pivot column was added, removed or order changed. */
8570 Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';
8571 /** The list of grid columns has changed. */
8572 Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';
8573 /** A value column was added, removed or agg function was changed. */
8574 Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';
8575 /** A column was moved */
8576 Events.EVENT_COLUMN_MOVED = 'columnMoved';
8577 /** One or more columns was shown / hidden */
8578 Events.EVENT_COLUMN_VISIBLE = 'columnVisible';
8579 /** One or more columns was pinned / unpinned*/
8580 Events.EVENT_COLUMN_PINNED = 'columnPinned';
8581 /** A column group was opened / closed */
8582 Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';
8583 /** One or more columns was resized. If just one, the column in the event is set. */
8584 Events.EVENT_COLUMN_RESIZED = 'columnResized';
8585 /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */
8586 Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';
8587 /** The list of virtual columns has changed, results from viewport changing */
8588 Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';
8589 /** Async Transactions Executed */
8590 Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';
8591 /** A row group was opened / closed */
8592 Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';
8593 /** @deprecated v28 use EVENT_ROW_DATA_UPDATED instead */
8594 Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';
8595 /** The client has updated data for the grid */
8596 Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';
8597 /** The client has set new floating data into the grid */
8598 Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';
8599 /** Range selection has changed */
8600 Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';
8601 /** Chart was created */
8602 Events.EVENT_CHART_CREATED = 'chartCreated';
8603 /** Chart Range selection has changed */
8604 Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';
8605 /** Chart Options have changed */
8606 Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';
8607 /** Chart was destroyed */
8608 Events.EVENT_CHART_DESTROYED = 'chartDestroyed';
8609 /** For when the tool panel is shown / hidden */
8610 Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';
8611 Events.EVENT_TOOL_PANEL_SIZE_CHANGED = 'toolPanelSizeChanged';
8612 /**
8613 * This is a replacement event for EVENT_TOOL_PANEL_VISIBLE_CHANGED. In v30, the original event interface will be dropped
8614 * and replaced with the new event (but using the old event type and interface name)
8615 */
8616 Events.EVENT_INTERNAL_TOOL_PANEL_VISIBLE_CHANGED = 'internalToolPanelVisibleChanged';
8617 Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START = 'columnPanelItemDragStart';
8618 Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END = 'columnPanelItemDragEnd';
8619 /** Model was updated - grid updates the drawn rows when this happens */
8620 Events.EVENT_MODEL_UPDATED = 'modelUpdated';
8621 Events.EVENT_PASTE_START = 'pasteStart';
8622 Events.EVENT_PASTE_END = 'pasteEnd';
8623 Events.EVENT_FILL_START = 'fillStart';
8624 Events.EVENT_FILL_END = 'fillEnd';
8625 /** Undo operation has started. */
8626 Events.EVENT_UNDO_STARTED = 'undoStarted';
8627 /** Undo operation has ended. */
8628 Events.EVENT_UNDO_ENDED = 'undoEnded';
8629 /** Redo operation has started. */
8630 Events.EVENT_REDO_STARTED = 'redoStarted';
8631 /** Redo operation has ended. */
8632 Events.EVENT_REDO_ENDED = 'redoEnded';
8633 Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START = 'keyShortcutChangedCellStart';
8634 Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END = 'keyShortcutChangedCellEnd';
8635 Events.EVENT_CELL_CLICKED = 'cellClicked';
8636 Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';
8637 Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';
8638 Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';
8639 Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';
8640 Events.EVENT_CELL_EDIT_REQUEST = 'cellEditRequest';
8641 Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';
8642 Events.EVENT_CELL_FOCUSED = 'cellFocused';
8643 Events.EVENT_CELL_FOCUS_CLEARED = 'cellFocusCleared';
8644 Events.EVENT_FULL_WIDTH_ROW_FOCUSED = 'fullWidthRowFocused';
8645 Events.EVENT_ROW_SELECTED = 'rowSelected';
8646 Events.EVENT_SELECTION_CHANGED = 'selectionChanged';
8647 Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';
8648 Events.EVENT_CELL_KEY_PRESS = 'cellKeyPress';
8649 Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';
8650 Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';
8651 /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */
8652 Events.EVENT_FILTER_CHANGED = 'filterChanged';
8653 /** Filter was change but not applied. Only useful if apply buttons are used in filters. */
8654 Events.EVENT_FILTER_MODIFIED = 'filterModified';
8655 Events.EVENT_FILTER_OPENED = 'filterOpened';
8656 Events.EVENT_SORT_CHANGED = 'sortChanged';
8657 /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */
8658 Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';
8659 Events.EVENT_ROW_CLICKED = 'rowClicked';
8660 Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';
8661 /** Gets called once after the grid has finished initialising. */
8662 Events.EVENT_GRID_READY = 'gridReady';
8663 /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's
8664 * changed, so always filling the space it was given. */
8665 Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';
8666 /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */
8667 Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';
8668 /* The width of the scrollbar has been calculated */
8669 Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';
8670 /** Rows were rendered for the first time (ie on async data load). */
8671 Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';
8672 /** A column drag has started, either resizing a column or moving a column. */
8673 Events.EVENT_DRAG_STARTED = 'dragStarted';
8674 /** A column drag has stopped */
8675 Events.EVENT_DRAG_STOPPED = 'dragStopped';
8676 Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';
8677 Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';
8678 Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';
8679 Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';
8680 Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';
8681 /** Main body of grid has scrolled, either horizontally or vertically */
8682 Events.EVENT_BODY_SCROLL = 'bodyScroll';
8683 /** Main body of the grid has stopped scrolling, either horizontally or vertically */
8684 Events.EVENT_BODY_SCROLL_END = 'bodyScrollEnd';
8685 Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';
8686 /** The displayed page for pagination has changed. For example the data was filtered or sorted,
8687 * or the user has moved to a different page. */
8688 Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';
8689 /** Only used by React, Angular, Web Components and VueJS AG Grid components
8690 * (not used if doing plain JavaScript). If the grid receives changes due
8691 * to bound properties, this event fires after the grid has finished processing the change. */
8692 Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';
8693 /***************************** INTERNAL EVENTS: START ******************************************* */
8694 /** Please remember to add to ComponentUtil.EXCLUDED_INTERNAL_EVENTS to not have these events exposed to framework components. */
8695 /** All items from here down are used internally by the grid, not intended for external use. */
8696 // not documented, either experimental, or we just don't want users using an depending on them
8697 Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';
8698 Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';
8699 Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';
8700 Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';
8701 Events.EVENT_FLASH_CELLS = 'flashCells';
8702 Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';
8703 Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';
8704 Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';
8705 Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';
8706 Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';
8707 Events.EVENT_HEADER_HEIGHT_CHANGED = 'headerHeightChanged';
8708 Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED = 'columnHeaderHeightChanged';
8709 Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';
8710 Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';
8711 Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';
8712 Events.EVENT_ROW_DRAG_END = 'rowDragEnd';
8713 // environment
8714 Events.EVENT_GRID_STYLES_CHANGED = 'gridStylesChanged';
8715 // primarily for charts
8716 Events.EVENT_POPUP_TO_FRONT = 'popupToFront';
8717 // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is
8718 // to design these better around server side functions and then release to general public when fully working with
8719 // all the row models.
8720 Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';
8721 Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';
8722 Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';
8723 Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';
8724 Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';
8725 Events.EVENT_MOUSE_FOCUS = 'mouseFocus';
8726 Events.EVENT_STORE_UPDATED = 'storeUpdated';
8727 Events.EVENT_FILTER_DESTROYED = 'filterDestroyed';
8728 return Events;
8729}());
8730
8731
8732
8733/***/ }),
8734/* 27 */
8735/***/ (function(module, __webpack_exports__, __webpack_require__) {
8736
8737"use strict";
8738__webpack_require__.r(__webpack_exports__);
8739/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return PropertyKeys; });
8740/**
8741 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8742 * @version v29.2.0
8743 * @link https://www.ag-grid.com/
8744 * @license MIT
8745 */
8746var __read = (undefined && undefined.__read) || function (o, n) {
8747 var m = typeof Symbol === "function" && o[Symbol.iterator];
8748 if (!m) return o;
8749 var i = m.call(o), r, ar = [], e;
8750 try {
8751 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8752 }
8753 catch (error) { e = { error: error }; }
8754 finally {
8755 try {
8756 if (r && !r.done && (m = i["return"])) m.call(i);
8757 }
8758 finally { if (e) throw e.error; }
8759 }
8760 return ar;
8761};
8762var __spread = (undefined && undefined.__spread) || function () {
8763 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
8764 return ar;
8765};
8766/**
8767 * These keys are used for validating properties supplied on a gridOptions object, and for code generation.
8768 * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.
8769 */
8770var PropertyKeys = /** @class */ (function () {
8771 function PropertyKeys() {
8772 }
8773 PropertyKeys.STRING_PROPERTIES = [
8774 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate',
8775 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDelimiter', 'rowGroupPanelShow',
8776 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',
8777 'serverSideStoreType', 'groupDisplayType', 'treeDataDisplayType', 'colResizeDefault'
8778 ];
8779 PropertyKeys.OBJECT_PROPERTIES = [
8780 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',
8781 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',
8782 'defaultColGroupDef', 'defaultColDef', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',
8783 'rowClassRules', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',
8784 'noRowsOverlayComponentParams', 'popupParent', 'statusBar', 'sideBar', 'chartThemeOverrides',
8785 'customChartThemes', 'chartToolPanelsDef'
8786 ];
8787 PropertyKeys.ARRAY_PROPERTIES = [
8788 'sortingOrder', 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes', 'rowClass'
8789 ];
8790 PropertyKeys.NUMBER_PROPERTIES = [
8791 'rowHeight', 'detailRowHeight', 'rowBuffer', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',
8792 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'viewportRowModelPageSize',
8793 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',
8794 'tooltipHideDelay', 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'serverSideInitialRowCount', 'scrollbarWidth',
8795 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',
8796 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'
8797 ];
8798 PropertyKeys.BOOLEAN_PROPERTIES = [
8799 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellSelection', 'suppressCellFocus', 'suppressHorizontalScroll',
8800 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions', 'groupSelectsChildren',
8801 'groupIncludeFooter', 'groupIncludeTotalFooter', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection', 'unSortIcon',
8802 'suppressMultiSort', 'alwaysMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',
8803 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns', 'suppressFieldDotNotation',
8804 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction', 'deltaSort', 'suppressTouch', 'suppressAsyncEvents',
8805 'allowContextMenuWithControlKey', 'suppressContextMenu', 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns',
8806 'suppressRowGroupHidesColumns', 'suppressMiddleClickScrolls', 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard',
8807 'copyGroupHeadersToClipboard', 'pivotMode', 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh',
8808 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren', 'groupRemoveLowestSingleChildren', 'enableRtl',
8809 'suppressClickEdit', 'rowDragEntireRow', 'rowDragManaged', 'suppressRowDrag', 'suppressMoveWhenRowDragging', 'rowDragMultiRow', 'enableGroupEdit',
8810 'embedFullWidthRows', 'suppressPaginationPanel', 'groupHideOpenParents', 'groupAllowUnbalanced', 'pagination', 'paginationAutoPageSize', 'suppressScrollOnNewData',
8811 'suppressScrollWhenPopupsAreOpen', 'purgeClosedRowNodes', 'cacheQuickFilter', 'excludeHiddenColumnsFromQuickFilter', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection',
8812 'valueCache', 'valueCacheNeverExpires', 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData', 'masterDetail',
8813 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown', 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick', 'suppressRowHoverHighlight',
8814 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste', 'enableCharts', 'enableChartToolPanelsButton', 'suppressChartToolPanelsButton',
8815 'suppressMaintainUnsortedOrder', 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction', 'excludeChildrenWhenTreeDataFiltering',
8816 'tooltipMouseTrack', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu', 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'immutableData',
8817 'pivotSuppressAutoColumn', 'suppressExpandablePivotGroups', 'debounceVerticalScrollbar', 'detailRowAutoHeight', 'serverSideFilteringAlwaysResets',
8818 'serverSideSortingAlwaysResets', 'serverSideSortAllLevels', 'serverSideFilterAllLevels', 'serverSideSortOnServer', 'serverSideFilterOnServer', 'suppressAggFilteredOnly',
8819 'showOpenedGroup', 'suppressClipboardApi', 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus', 'maintainColumnOrder', 'groupMaintainOrder',
8820 'columnHoverHighlight', 'reactUi', 'suppressReactUi', 'readOnlyEdit', 'suppressRowVirtualisation', 'enableCellEditingOnBackspace', 'resetRowDataOnUpdate',
8821 'removePivotHeaderRowWhenSingleValueColumn', 'suppressCopySingleCellRanges', 'groupRowsSticky', 'suppressServerSideInfiniteScroll', 'rowGroupPanelSuppressSort',
8822 'allowShowChangeAfterFilter', 'suppressCutToClipboard'
8823 ];
8824 /** You do not need to include event callbacks in this list, as they are generated automatically. */
8825 PropertyKeys.FUNCTIONAL_PROPERTIES = [
8826 'localeTextFunc', 'doesExternalFilterPass', 'groupRowAggNodes', 'isFullWidthCell', 'processSecondaryColDef', 'processSecondaryColGroupDef', 'processPivotResultColDef',
8827 'processPivotResultColGroupDef', 'getBusinessKeyForNode', 'isRowSelectable', 'postSort', 'defaultGroupOrderComparator', 'rowDragText',
8828 'groupRowRenderer', 'groupRowRendererFramework', 'fullWidthCellRenderer', 'fullWidthCellRendererFramework',
8829 'loadingCellRenderer', 'loadingCellRendererFramework', 'loadingOverlayComponent', 'loadingOverlayComponentFramework', 'noRowsOverlayComponent', 'noRowsOverlayComponentFramework',
8830 'detailCellRenderer', 'detailCellRendererFramework'
8831 ];
8832 PropertyKeys.CALLBACK_PROPERTIES = [
8833 'getLocaleText', 'isExternalFilterPresent', 'getRowHeight', 'getRowClass', 'getRowStyle', 'getContextMenuItems', 'getMainMenuItems',
8834 'processRowPostCreate', 'processCellForClipboard', 'getGroupRowAgg', 'getRowNodeId', 'isFullWidthRow',
8835 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',
8836 'tabToNextCell', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath', 'isRowMaster', 'postSortRows', 'processHeaderForClipboard',
8837 'processGroupHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup',
8838 'createChartContainer', 'getChartToolbarItems', 'fillOperation', 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'getServerSideGroupLevelParams',
8839 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault', 'initialGroupOrderComparator',
8840 'loadingCellRendererSelector', 'getRowId', 'groupAggFiltering'
8841 ];
8842 PropertyKeys.FUNCTION_PROPERTIES = __spread(PropertyKeys.FUNCTIONAL_PROPERTIES, PropertyKeys.CALLBACK_PROPERTIES);
8843 PropertyKeys.ALL_PROPERTIES = __spread(PropertyKeys.ARRAY_PROPERTIES, PropertyKeys.OBJECT_PROPERTIES, PropertyKeys.STRING_PROPERTIES, PropertyKeys.NUMBER_PROPERTIES, PropertyKeys.FUNCTION_PROPERTIES, PropertyKeys.BOOLEAN_PROPERTIES);
8844 /**
8845 * Used when performing property checks. This avoids noise caused when using frameworks, which can add their own
8846 * framework-specific properties to colDefs, gridOptions etc.
8847 */
8848 PropertyKeys.FRAMEWORK_PROPERTIES = [
8849 '__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns', 'toColDef', 'createColDefFromGridColumn'
8850 ];
8851 return PropertyKeys;
8852}());
8853
8854
8855
8856/***/ }),
8857/* 28 */
8858/***/ (function(module, __webpack_exports__, __webpack_require__) {
8859
8860"use strict";
8861__webpack_require__.r(__webpack_exports__);
8862/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fuzzyCheckStrings", function() { return fuzzyCheckStrings; });
8863/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fuzzySuggestions", function() { return fuzzySuggestions; });
8864/**
8865 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8866 * @version v29.2.0
8867 * @link https://www.ag-grid.com/
8868 * @license MIT
8869 */
8870function fuzzyCheckStrings(inputValues, validValues, allSuggestions) {
8871 var fuzzyMatches = {};
8872 var invalidInputs = inputValues.filter(function (inputValue) {
8873 return !validValues.some(function (validValue) { return validValue === inputValue; });
8874 });
8875 if (invalidInputs.length > 0) {
8876 invalidInputs.forEach(function (invalidInput) {
8877 return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions);
8878 });
8879 }
8880 return fuzzyMatches;
8881}
8882/**
8883 *
8884 * @param {String} inputValue The value to be compared against a list of strings
8885 * @param allSuggestions The list of strings to be compared against
8886 */
8887function fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, filterByPercentageOfBestMatch) {
8888 var thisSuggestions = allSuggestions.map(function (text) { return ({
8889 value: text,
8890 relevance: stringWeightedDistances(inputValue.toLowerCase(), text.toLocaleLowerCase())
8891 }); });
8892 thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });
8893 if (hideIrrelevant) {
8894 thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });
8895 }
8896 if (filterByPercentageOfBestMatch && filterByPercentageOfBestMatch > 0) {
8897 var bestMatch = thisSuggestions[0].relevance;
8898 var limit_1 = bestMatch * filterByPercentageOfBestMatch;
8899 thisSuggestions = thisSuggestions.filter(function (suggestion) { return limit_1 - suggestion.relevance < 0; });
8900 }
8901 return thisSuggestions.map(function (suggestion) { return suggestion.value; });
8902}
8903function stringWeightedDistances(str1, str2) {
8904 var a = str1.replace(/\s/g, '');
8905 var b = str2.replace(/\s/g, '');
8906 var weight = 0;
8907 var lastIndex = -1;
8908 for (var i = 0; i < a.length; i++) {
8909 var idx = b.indexOf(a[i], lastIndex + 1);
8910 if (idx === -1) {
8911 continue;
8912 }
8913 lastIndex = idx;
8914 weight += (100 - (lastIndex * 100 / 10000) * 100);
8915 }
8916 return weight;
8917}
8918
8919
8920/***/ }),
8921/* 29 */
8922/***/ (function(module, __webpack_exports__, __webpack_require__) {
8923
8924"use strict";
8925__webpack_require__.r(__webpack_exports__);
8926/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return GroupInstanceIdCreator; });
8927/**
8928 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8929 * @version v29.2.0
8930 * @link https://www.ag-grid.com/
8931 * @license MIT
8932 */
8933// class returns unique instance id's for columns.
8934// eg, the following calls (in this order) will result in:
8935//
8936// getInstanceIdForKey('country') => 0
8937// getInstanceIdForKey('country') => 1
8938// getInstanceIdForKey('country') => 2
8939// getInstanceIdForKey('country') => 3
8940// getInstanceIdForKey('age') => 0
8941// getInstanceIdForKey('age') => 1
8942// getInstanceIdForKey('country') => 4
8943var GroupInstanceIdCreator = /** @class */ (function () {
8944 function GroupInstanceIdCreator() {
8945 // this map contains keys to numbers, so we remember what the last call was
8946 this.existingIds = {};
8947 }
8948 GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {
8949 var lastResult = this.existingIds[key];
8950 var result;
8951 if (typeof lastResult !== 'number') {
8952 // first time this key
8953 result = 0;
8954 }
8955 else {
8956 result = lastResult + 1;
8957 }
8958 this.existingIds[key] = result;
8959 return result;
8960 };
8961 return GroupInstanceIdCreator;
8962}());
8963
8964
8965
8966/***/ }),
8967/* 30 */
8968/***/ (function(module, __webpack_exports__, __webpack_require__) {
8969
8970"use strict";
8971__webpack_require__.r(__webpack_exports__);
8972/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GROUP_AUTO_COLUMN_ID", function() { return GROUP_AUTO_COLUMN_ID; });
8973/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoGroupColService", function() { return AutoGroupColService; });
8974/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
8975/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
8976/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
8977/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
8978/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
8979/**
8980 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
8981 * @version v29.2.0
8982 * @link https://www.ag-grid.com/
8983 * @license MIT
8984 */
8985var __extends = (undefined && undefined.__extends) || (function () {
8986 var extendStatics = function (d, b) {
8987 extendStatics = Object.setPrototypeOf ||
8988 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
8989 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
8990 return extendStatics(d, b);
8991 };
8992 return function (d, b) {
8993 extendStatics(d, b);
8994 function __() { this.constructor = d; }
8995 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
8996 };
8997})();
8998var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
8999 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9000 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9001 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;
9002 return c > 3 && r && Object.defineProperty(target, key, r), r;
9003};
9004
9005
9006
9007
9008
9009var GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';
9010var AutoGroupColService = /** @class */ (function (_super) {
9011 __extends(AutoGroupColService, _super);
9012 function AutoGroupColService() {
9013 return _super !== null && _super.apply(this, arguments) || this;
9014 }
9015 AutoGroupColService.prototype.createAutoGroupColumns = function (existingCols, rowGroupColumns) {
9016 var _this = this;
9017 var groupAutoColumns = [];
9018 var doingTreeData = this.gridOptionsService.isTreeData();
9019 var doingMultiAutoColumn = this.gridOptionsService.isGroupMultiAutoColumn();
9020 if (doingTreeData && doingMultiAutoColumn) {
9021 console.warn('AG Grid: you cannot mix groupDisplayType = "multipleColumns" with treeData, only one column can be used to display groups when doing tree data');
9022 doingMultiAutoColumn = false;
9023 }
9024 // if doing groupDisplayType = "multipleColumns", then we call the method multiple times, once
9025 // for each column we are grouping by
9026 if (doingMultiAutoColumn) {
9027 rowGroupColumns.forEach(function (rowGroupCol, index) {
9028 groupAutoColumns.push(_this.createOneAutoGroupColumn(existingCols, rowGroupCol, index));
9029 });
9030 }
9031 else {
9032 groupAutoColumns.push(this.createOneAutoGroupColumn(existingCols));
9033 }
9034 return groupAutoColumns;
9035 };
9036 // rowGroupCol and index are missing if groupDisplayType != "multipleColumns"
9037 AutoGroupColService.prototype.createOneAutoGroupColumn = function (existingCols, rowGroupCol, index) {
9038 // if one provided by user, use it, otherwise create one
9039 var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);
9040 // if doing multi, set the field
9041 var colId;
9042 if (rowGroupCol) {
9043 colId = GROUP_AUTO_COLUMN_ID + "-" + rowGroupCol.getId();
9044 }
9045 else {
9046 colId = GROUP_AUTO_COLUMN_ID;
9047 }
9048 var userAutoColDef = this.gridOptionsService.get('autoGroupColumnDef');
9049 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["mergeDeep"])(defaultAutoColDef, userAutoColDef);
9050 defaultAutoColDef = this.columnFactory.mergeColDefs(defaultAutoColDef);
9051 defaultAutoColDef.colId = colId;
9052 // For tree data the filter is always allowed
9053 if (!this.gridOptionsService.isTreeData()) {
9054 // we would only allow filter if the user has provided field or value getter. otherwise the filter
9055 // would not be able to work.
9056 var noFieldOrValueGetter = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(defaultAutoColDef.field) &&
9057 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(defaultAutoColDef.valueGetter) &&
9058 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(defaultAutoColDef.filterValueGetter) &&
9059 defaultAutoColDef.filter !== 'agGroupColumnFilter';
9060 if (noFieldOrValueGetter) {
9061 defaultAutoColDef.filter = false;
9062 }
9063 }
9064 // if showing many cols, we don't want to show more than one with a checkbox for selection
9065 if (index && index > 0) {
9066 defaultAutoColDef.headerCheckboxSelection = false;
9067 }
9068 var existingCol = existingCols.find(function (col) { return col.getId() == colId; });
9069 if (existingCol) {
9070 existingCol.setColDef(defaultAutoColDef, null);
9071 this.columnFactory.applyColumnState(existingCol, defaultAutoColDef);
9072 return existingCol;
9073 }
9074 var isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();
9075 if (isSortingCoupled && (defaultAutoColDef.sort || defaultAutoColDef.initialSort) && !defaultAutoColDef.field) {
9076 // if no field, then this column cannot hold its own sort state
9077 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["mergeDeep"])(defaultAutoColDef, { sort: null, initialSort: null }, true, true);
9078 }
9079 var newCol = new _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"](defaultAutoColDef, null, colId, true);
9080 this.context.createBean(newCol);
9081 return newCol;
9082 };
9083 AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {
9084 var userDef = this.gridOptionsService.get('autoGroupColumnDef');
9085 var localeTextFunc = this.localeService.getLocaleTextFunc();
9086 var res = {
9087 headerName: localeTextFunc('group', 'Group')
9088 };
9089 var userHasProvidedGroupCellRenderer = userDef &&
9090 (userDef.cellRenderer || userDef.cellRendererFramework || userDef.cellRendererSelector);
9091 // only add the default group cell renderer if user hasn't provided one
9092 if (!userHasProvidedGroupCellRenderer) {
9093 res.cellRenderer = 'agGroupCellRenderer';
9094 }
9095 // we never allow moving the group column
9096 // defaultAutoColDef.suppressMovable = true;
9097 if (rowGroupCol) {
9098 var colDef = rowGroupCol.getColDef();
9099 Object.assign(res, {
9100 // cellRendererParams.groupKey: colDefToCopy.field;
9101 headerName: this.columnModel.getDisplayNameForColumn(rowGroupCol, 'header'),
9102 headerValueGetter: colDef.headerValueGetter
9103 });
9104 if (colDef.cellRenderer || colDef.cellRendererFramework) {
9105 Object.assign(res, {
9106 cellRendererParams: {
9107 innerRenderer: colDef.cellRenderer,
9108 innerRendererFramework: colDef.cellRendererFramework,
9109 innerRendererParams: colDef.cellRendererParams
9110 }
9111 });
9112 }
9113 res.showRowGroup = rowGroupCol.getColId();
9114 }
9115 else {
9116 res.showRowGroup = true;
9117 }
9118 return res;
9119 };
9120 __decorate([
9121 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
9122 ], AutoGroupColService.prototype, "columnModel", void 0);
9123 __decorate([
9124 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnFactory')
9125 ], AutoGroupColService.prototype, "columnFactory", void 0);
9126 AutoGroupColService = __decorate([
9127 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoGroupColService')
9128 ], AutoGroupColService);
9129 return AutoGroupColService;
9130}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
9131
9132
9133
9134/***/ }),
9135/* 31 */
9136/***/ (function(module, __webpack_exports__, __webpack_require__) {
9137
9138"use strict";
9139__webpack_require__.r(__webpack_exports__);
9140/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8_encode", function() { return utf8_encode; });
9141/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "capitalise", function() { return capitalise; });
9142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "escapeString", function() { return escapeString; });
9143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "camelCaseToHumanText", function() { return camelCaseToHumanText; });
9144/**
9145 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9146 * @version v29.2.0
9147 * @link https://www.ag-grid.com/
9148 * @license MIT
9149 */
9150var reUnescapedHtml = /[&<>"']/g;
9151/**
9152 * HTML Escapes.
9153 */
9154var HTML_ESCAPES = {
9155 '&': '&amp;',
9156 '<': '&lt;',
9157 '>': '&gt;',
9158 '"': '&quot;',
9159 "'": '&#39;'
9160};
9161/**
9162 * It encodes any string in UTF-8 format
9163 * taken from https://github.com/mathiasbynens/utf8.js
9164 * @param {string} s
9165 * @returns {string}
9166 */
9167function utf8_encode(s) {
9168 var stringFromCharCode = String.fromCharCode;
9169 function ucs2decode(string) {
9170 var output = [];
9171 if (!string) {
9172 return [];
9173 }
9174 var len = string.length;
9175 var counter = 0;
9176 var value;
9177 var extra;
9178 while (counter < len) {
9179 value = string.charCodeAt(counter++);
9180 if (value >= 0xD800 && value <= 0xDBFF && counter < len) {
9181 // high surrogate, and there is a next character
9182 extra = string.charCodeAt(counter++);
9183 if ((extra & 0xFC00) == 0xDC00) { // low surrogate
9184 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
9185 }
9186 else {
9187 // unmatched surrogate; only append this code unit, in case the next
9188 // code unit is the high surrogate of a surrogate pair
9189 output.push(value);
9190 counter--;
9191 }
9192 }
9193 else {
9194 output.push(value);
9195 }
9196 }
9197 return output;
9198 }
9199 function checkScalarValue(point) {
9200 if (point >= 0xD800 && point <= 0xDFFF) {
9201 throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +
9202 ' is not a scalar value');
9203 }
9204 }
9205 function createByte(point, shift) {
9206 return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);
9207 }
9208 function encodeCodePoint(point) {
9209 if ((point >= 0 && point <= 31 && point !== 10)) {
9210 var convertedCode = point.toString(16).toUpperCase();
9211 var paddedCode = convertedCode.padStart(4, '0');
9212 return "_x" + paddedCode + "_";
9213 }
9214 if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence
9215 return stringFromCharCode(point);
9216 }
9217 var symbol = '';
9218 if ((point & 0xFFFFF800) == 0) { // 2-byte sequence
9219 symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);
9220 }
9221 else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence
9222 checkScalarValue(point);
9223 symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);
9224 symbol += createByte(point, 6);
9225 }
9226 else if ((point & 0xFFE00000) == 0) { // 4-byte sequence
9227 symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);
9228 symbol += createByte(point, 12);
9229 symbol += createByte(point, 6);
9230 }
9231 symbol += stringFromCharCode((point & 0x3F) | 0x80);
9232 return symbol;
9233 }
9234 var codePoints = ucs2decode(s);
9235 var length = codePoints.length;
9236 var index = -1;
9237 var codePoint;
9238 var byteString = '';
9239 while (++index < length) {
9240 codePoint = codePoints[index];
9241 byteString += encodeCodePoint(codePoint);
9242 }
9243 return byteString;
9244}
9245function capitalise(str) {
9246 return str[0].toUpperCase() + str.substr(1).toLowerCase();
9247}
9248function escapeString(toEscape, skipEscapingHtmlChars) {
9249 if (toEscape == null) {
9250 return null;
9251 }
9252 // we call toString() twice, in case value is an object, where user provides
9253 // a toString() method, and first call to toString() returns back something other
9254 // than a string (eg a number to render)
9255 var stringResult = toEscape.toString().toString();
9256 if (skipEscapingHtmlChars) {
9257 return stringResult;
9258 }
9259 // in react we don't need to escape html characters, as it's done by the framework
9260 return stringResult.replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });
9261}
9262/**
9263 * Converts a camelCase string into startCase
9264 * @param {string} camelCase
9265 * @return {string}
9266 */
9267function camelCaseToHumanText(camelCase) {
9268 if (!camelCase || camelCase == null) {
9269 return null;
9270 }
9271 // either split on a lowercase followed by uppercase ie asHereTo -> as Here To
9272 var rex = /([a-z])([A-Z])/g;
9273 // or starts with uppercase and we take all expect the last which is assumed to be part of next word if followed by lowercase HEREToThere -> HERE To There
9274 var rexCaps = /([A-Z]+)([A-Z])([a-z])/g;
9275 var words = camelCase
9276 .replace(rex, '$1 $2')
9277 .replace(rexCaps, '$1 $2$3')
9278 .replace(/\./g, ' ')
9279 .split(' ');
9280 return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');
9281}
9282
9283
9284/***/ }),
9285/* 32 */
9286/***/ (function(module, __webpack_exports__, __webpack_require__) {
9287
9288"use strict";
9289__webpack_require__.r(__webpack_exports__);
9290/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToMap", function() { return convertToMap; });
9291/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapById", function() { return mapById; });
9292/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keys", function() { return keys; });
9293/**
9294 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9295 * @version v29.2.0
9296 * @link https://www.ag-grid.com/
9297 * @license MIT
9298 */
9299function convertToMap(arr) {
9300 var map = new Map();
9301 arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });
9302 return map;
9303}
9304// handy for organising a list into a map, where each item is mapped by an attribute, eg mapping Columns by ID
9305function mapById(arr, callback) {
9306 var map = new Map();
9307 arr.forEach(function (item) { return map.set(callback(item), item); });
9308 return map;
9309}
9310function keys(map) {
9311 var arr = [];
9312 map.forEach(function (_, key) { return arr.push(key); });
9313 return arr;
9314}
9315
9316
9317/***/ }),
9318/* 33 */
9319/***/ (function(module, __webpack_exports__, __webpack_require__) {
9320
9321"use strict";
9322__webpack_require__.r(__webpack_exports__);
9323/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return ColumnUtils; });
9324/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21);
9325/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
9326/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
9327/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
9328/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
9329/**
9330 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9331 * @version v29.2.0
9332 * @link https://www.ag-grid.com/
9333 * @license MIT
9334 */
9335var __extends = (undefined && undefined.__extends) || (function () {
9336 var extendStatics = function (d, b) {
9337 extendStatics = Object.setPrototypeOf ||
9338 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9339 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
9340 return extendStatics(d, b);
9341 };
9342 return function (d, b) {
9343 extendStatics(d, b);
9344 function __() { this.constructor = d; }
9345 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9346 };
9347})();
9348var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9349 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9350 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9351 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;
9352 return c > 3 && r && Object.defineProperty(target, key, r), r;
9353};
9354
9355
9356
9357
9358
9359// takes in a list of columns, as specified by the column definitions, and returns column groups
9360var ColumnUtils = /** @class */ (function (_super) {
9361 __extends(ColumnUtils, _super);
9362 function ColumnUtils() {
9363 return _super !== null && _super.apply(this, arguments) || this;
9364 }
9365 ColumnUtils.prototype.calculateColMinWidth = function (colDef) {
9366 return colDef.minWidth != null ? colDef.minWidth : this.environment.getMinColWidth();
9367 };
9368 ColumnUtils.prototype.calculateColMaxWidth = function (colDef) {
9369 return colDef.maxWidth != null ? colDef.maxWidth : Number.MAX_SAFE_INTEGER;
9370 };
9371 ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {
9372 var minColWidth = this.calculateColMinWidth(colDef);
9373 var maxColWidth = this.calculateColMaxWidth(colDef);
9374 var width;
9375 var colDefWidth = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToNumber"])(colDef.width);
9376 var colDefInitialWidth = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["attrToNumber"])(colDef.initialWidth);
9377 if (colDefWidth != null) {
9378 width = colDefWidth;
9379 }
9380 else if (colDefInitialWidth != null) {
9381 width = colDefInitialWidth;
9382 }
9383 else {
9384 width = 200;
9385 }
9386 return Math.max(Math.min(width, maxColWidth), minColWidth);
9387 };
9388 ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {
9389 var result = [];
9390 var found = false;
9391 var recursePath = function (balancedColumnTree, dept) {
9392 for (var i = 0; i < balancedColumnTree.length; i++) {
9393 if (found) {
9394 return;
9395 }
9396 // quit the search, so 'result' is kept with the found result
9397 var node = balancedColumnTree[i];
9398 if (node instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
9399 var nextNode = node;
9400 recursePath(nextNode.getChildren(), dept + 1);
9401 result[dept] = node;
9402 }
9403 else if (node === column) {
9404 found = true;
9405 }
9406 }
9407 };
9408 recursePath(originalBalancedTree, 0);
9409 // we should always find the path, but in case there is a bug somewhere, returning null
9410 // will make it fail rather than provide a 'hard to track down' bug
9411 return found ? result : null;
9412 };
9413 ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {
9414 var _this = this;
9415 if (!tree) {
9416 return;
9417 }
9418 tree.forEach(function (child) {
9419 if (child instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
9420 _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);
9421 }
9422 callback(child, parent);
9423 });
9424 };
9425 ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {
9426 var _this = this;
9427 if (!tree) {
9428 return;
9429 }
9430 tree.forEach(function (child) {
9431 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
9432 _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);
9433 }
9434 callback(child);
9435 });
9436 };
9437 ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {
9438 var _this = this;
9439 if (!tree) {
9440 return;
9441 }
9442 tree.forEach(function (child) {
9443 if (child instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
9444 _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);
9445 }
9446 callback(child);
9447 });
9448 };
9449 ColumnUtils = __decorate([
9450 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('columnUtils')
9451 ], ColumnUtils);
9452 return ColumnUtils;
9453}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
9454
9455
9456
9457/***/ }),
9458/* 34 */
9459/***/ (function(module, __webpack_exports__, __webpack_require__) {
9460
9461"use strict";
9462__webpack_require__.r(__webpack_exports__);
9463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return DisplayedGroupCreator; });
9464/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21);
9465/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
9466/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
9467/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
9468/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
9469/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
9470/**
9471 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9472 * @version v29.2.0
9473 * @link https://www.ag-grid.com/
9474 * @license MIT
9475 */
9476var __extends = (undefined && undefined.__extends) || (function () {
9477 var extendStatics = function (d, b) {
9478 extendStatics = Object.setPrototypeOf ||
9479 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9480 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
9481 return extendStatics(d, b);
9482 };
9483 return function (d, b) {
9484 extendStatics(d, b);
9485 function __() { this.constructor = d; }
9486 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9487 };
9488})();
9489var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9490 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9491 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9492 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;
9493 return c > 3 && r && Object.defineProperty(target, key, r), r;
9494};
9495
9496
9497
9498
9499
9500
9501// takes in a list of columns, as specified by the column definitions, and returns column groups
9502var DisplayedGroupCreator = /** @class */ (function (_super) {
9503 __extends(DisplayedGroupCreator, _super);
9504 function DisplayedGroupCreator() {
9505 return _super !== null && _super.apply(this, arguments) || this;
9506 }
9507 DisplayedGroupCreator.prototype.createDisplayedGroups = function (
9508 // all displayed columns sorted - this is the columns the grid should show
9509 sortedVisibleColumns,
9510 // the tree of columns, as provided by the users, used to know what groups columns roll up into
9511 balancedColumnTree,
9512 // creates unique id's for the group
9513 groupInstanceIdCreator,
9514 // whether it's left, right or center col
9515 pinned,
9516 // we try to reuse old groups if we can, to allow gui to do animation
9517 oldDisplayedGroups) {
9518 var _this = this;
9519 var result = [];
9520 var previousRealPath;
9521 var previousOriginalPath;
9522 var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);
9523 // go through each column, then do a bottom up comparison to the previous column, and start
9524 // to share groups if they converge at any point.
9525 sortedVisibleColumns.forEach(function (currentColumn) {
9526 var currentOriginalPath = _this.getOriginalPathForColumn(balancedColumnTree, currentColumn);
9527 var currentRealPath = [];
9528 var firstColumn = !previousOriginalPath;
9529 for (var i = 0; i < currentOriginalPath.length; i++) {
9530 if (firstColumn || currentOriginalPath[i] !== previousOriginalPath[i]) {
9531 // new group needed
9532 var newGroup = _this.createColumnGroup(currentOriginalPath[i], groupInstanceIdCreator, oldColumnsMapped, pinned);
9533 currentRealPath[i] = newGroup;
9534 // if top level, add to result, otherwise add to parent
9535 if (i == 0) {
9536 result.push(newGroup);
9537 }
9538 else {
9539 currentRealPath[i - 1].addChild(newGroup);
9540 }
9541 }
9542 else {
9543 // reuse old group
9544 currentRealPath[i] = previousRealPath[i];
9545 }
9546 }
9547 var noColumnGroups = currentRealPath.length === 0;
9548 if (noColumnGroups) {
9549 // if we are not grouping, then the result of the above is an empty
9550 // path (no groups), and we just add the column to the root list.
9551 result.push(currentColumn);
9552 }
9553 else {
9554 var leafGroup = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(currentRealPath);
9555 leafGroup.addChild(currentColumn);
9556 }
9557 previousRealPath = currentRealPath;
9558 previousOriginalPath = currentOriginalPath;
9559 });
9560 this.setupParentsIntoColumns(result, null);
9561 return result;
9562 };
9563 DisplayedGroupCreator.prototype.createColumnGroup = function (providedGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {
9564 var groupId = providedGroup.getGroupId();
9565 var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);
9566 var uniqueId = _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"].createUniqueId(groupId, instanceId);
9567 var columnGroup = oldColumnsMapped[uniqueId];
9568 // if the user is setting new colDefs, it is possible that the id's overlap, and we
9569 // would have a false match from above. so we double check we are talking about the
9570 // same original column group.
9571 if (columnGroup && columnGroup.getProvidedColumnGroup() !== providedGroup) {
9572 columnGroup = null;
9573 }
9574 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(columnGroup)) {
9575 // clean out the old column group here, as we will be adding children into it again
9576 columnGroup.reset();
9577 }
9578 else {
9579 columnGroup = new _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"](providedGroup, groupId, instanceId, pinned);
9580 this.context.createBean(columnGroup);
9581 }
9582 return columnGroup;
9583 };
9584 // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup
9585 DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {
9586 var result = {};
9587 var recursive = function (columnsOrGroups) {
9588 columnsOrGroups.forEach(function (columnOrGroup) {
9589 if (columnOrGroup instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
9590 var columnGroup = columnOrGroup;
9591 result[columnOrGroup.getUniqueId()] = columnGroup;
9592 recursive(columnGroup.getChildren());
9593 }
9594 });
9595 };
9596 if (displayedGroups) {
9597 recursive(displayedGroups);
9598 }
9599 return result;
9600 };
9601 DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {
9602 var _this = this;
9603 columnsOrGroups.forEach(function (columnsOrGroup) {
9604 columnsOrGroup.setParent(parent);
9605 if (columnsOrGroup instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
9606 var columnGroup = columnsOrGroup;
9607 _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);
9608 }
9609 });
9610 };
9611 DisplayedGroupCreator.prototype.getOriginalPathForColumn = function (balancedColumnTree, column) {
9612 var result = [];
9613 var found = false;
9614 var recursePath = function (columnTree, dept) {
9615 for (var i = 0; i < columnTree.length; i++) {
9616 // quit the search, so 'result' is kept with the found result
9617 if (found) {
9618 return;
9619 }
9620 var node = columnTree[i];
9621 if (node instanceof _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"]) {
9622 recursePath(node.getChildren(), dept + 1);
9623 result[dept] = node;
9624 }
9625 else if (node === column) {
9626 found = true;
9627 }
9628 }
9629 };
9630 recursePath(balancedColumnTree, 0);
9631 // it's possible we didn't find a path. this happens if the column is generated
9632 // by the grid (auto-group), in that the definition didn't come from the client. in this case,
9633 // we create a fake original path.
9634 if (found) {
9635 return result;
9636 }
9637 console.warn('AG Grid: could not get path');
9638 return null;
9639 };
9640 DisplayedGroupCreator = __decorate([
9641 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('displayedGroupCreator')
9642 ], DisplayedGroupCreator);
9643 return DisplayedGroupCreator;
9644}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
9645
9646
9647
9648/***/ }),
9649/* 35 */
9650/***/ (function(module, __webpack_exports__, __webpack_require__) {
9651
9652"use strict";
9653__webpack_require__.r(__webpack_exports__);
9654/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgStackComponentsRegistry", function() { return AgStackComponentsRegistry; });
9655/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
9656/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
9657/**
9658 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9659 * @version v29.2.0
9660 * @link https://www.ag-grid.com/
9661 * @license MIT
9662 */
9663var __extends = (undefined && undefined.__extends) || (function () {
9664 var extendStatics = function (d, b) {
9665 extendStatics = Object.setPrototypeOf ||
9666 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9667 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
9668 return extendStatics(d, b);
9669 };
9670 return function (d, b) {
9671 extendStatics(d, b);
9672 function __() { this.constructor = d; }
9673 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9674 };
9675})();
9676var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9677 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9678 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9679 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;
9680 return c > 3 && r && Object.defineProperty(target, key, r), r;
9681};
9682
9683
9684var AgStackComponentsRegistry = /** @class */ (function (_super) {
9685 __extends(AgStackComponentsRegistry, _super);
9686 function AgStackComponentsRegistry() {
9687 var _this = _super !== null && _super.apply(this, arguments) || this;
9688 _this.componentsMappedByName = {};
9689 return _this;
9690 }
9691 AgStackComponentsRegistry.prototype.setupComponents = function (components) {
9692 var _this = this;
9693 if (components) {
9694 components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });
9695 }
9696 };
9697 AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {
9698 // get name of the class as a string
9699 // insert a dash after every capital letter
9700 // let classEscaped = className.replace(/([A-Z])/g, "-$1").toLowerCase();
9701 var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
9702 // put all to upper case
9703 var classUpperCase = classEscaped.toUpperCase();
9704 // finally store
9705 this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;
9706 };
9707 AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {
9708 return this.componentsMappedByName[htmlTag];
9709 };
9710 AgStackComponentsRegistry = __decorate([
9711 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('agStackComponentsRegistry')
9712 ], AgStackComponentsRegistry);
9713 return AgStackComponentsRegistry;
9714}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
9715
9716
9717
9718/***/ }),
9719/* 36 */
9720/***/ (function(module, __webpack_exports__, __webpack_require__) {
9721
9722"use strict";
9723__webpack_require__.r(__webpack_exports__);
9724/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return UserComponentRegistry; });
9725/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
9726/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
9727/* harmony import */ var _filter_floating_provided_readOnlyFloatingFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37);
9728/* harmony import */ var _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58);
9729/* harmony import */ var _filter_provided_date_dateFloatingFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75);
9730/* harmony import */ var _filter_provided_date_defaultDateComponent__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(77);
9731/* harmony import */ var _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(78);
9732/* harmony import */ var _filter_provided_number_numberFloatingFilter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(81);
9733/* harmony import */ var _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83);
9734/* harmony import */ var _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(84);
9735/* harmony import */ var _headerRendering_cells_column_headerComp__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(85);
9736/* harmony import */ var _headerRendering_cells_column_sortIndicatorComp__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(87);
9737/* harmony import */ var _headerRendering_cells_columnGroup_headerGroupComp__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(88);
9738/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(14);
9739/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(15);
9740/* harmony import */ var _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(89);
9741/* harmony import */ var _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(91);
9742/* harmony import */ var _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(92);
9743/* harmony import */ var _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(93);
9744/* harmony import */ var _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(94);
9745/* harmony import */ var _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(95);
9746/* harmony import */ var _rendering_cellRenderers_loadingCellRenderer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(101);
9747/* harmony import */ var _rendering_overlays_loadingOverlayComponent__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(102);
9748/* harmony import */ var _rendering_overlays_noRowsOverlayComponent__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(103);
9749/* harmony import */ var _rendering_tooltipComponent__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(104);
9750/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(13);
9751/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(12);
9752/* harmony import */ var _utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(28);
9753/**
9754 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9755 * @version v29.2.0
9756 * @link https://www.ag-grid.com/
9757 * @license MIT
9758 */
9759var __extends = (undefined && undefined.__extends) || (function () {
9760 var extendStatics = function (d, b) {
9761 extendStatics = Object.setPrototypeOf ||
9762 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9763 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
9764 return extendStatics(d, b);
9765 };
9766 return function (d, b) {
9767 extendStatics(d, b);
9768 function __() { this.constructor = d; }
9769 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
9770 };
9771})();
9772var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
9773 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9774 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
9775 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;
9776 return c > 3 && r && Object.defineProperty(target, key, r), r;
9777};
9778var __read = (undefined && undefined.__read) || function (o, n) {
9779 var m = typeof Symbol === "function" && o[Symbol.iterator];
9780 if (!m) return o;
9781 var i = m.call(o), r, ar = [], e;
9782 try {
9783 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
9784 }
9785 catch (error) { e = { error: error }; }
9786 finally {
9787 try {
9788 if (r && !r.done && (m = i["return"])) m.call(i);
9789 }
9790 finally { if (e) throw e.error; }
9791 }
9792 return ar;
9793};
9794var __spread = (undefined && undefined.__spread) || function () {
9795 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
9796 return ar;
9797};
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826var UserComponentRegistry = /** @class */ (function (_super) {
9827 __extends(UserComponentRegistry, _super);
9828 function UserComponentRegistry() {
9829 var _this = _super !== null && _super.apply(this, arguments) || this;
9830 _this.agGridDefaults = {
9831 //date
9832 agDateInput: _filter_provided_date_defaultDateComponent__WEBPACK_IMPORTED_MODULE_5__["DefaultDateComponent"],
9833 //header
9834 agColumnHeader: _headerRendering_cells_column_headerComp__WEBPACK_IMPORTED_MODULE_10__["HeaderComp"],
9835 agColumnGroupHeader: _headerRendering_cells_columnGroup_headerGroupComp__WEBPACK_IMPORTED_MODULE_12__["HeaderGroupComp"],
9836 agSortIndicator: _headerRendering_cells_column_sortIndicatorComp__WEBPACK_IMPORTED_MODULE_11__["SortIndicatorComp"],
9837 //floating filters
9838 agTextColumnFloatingFilter: _filter_provided_text_textFloatingFilter__WEBPACK_IMPORTED_MODULE_9__["TextFloatingFilter"],
9839 agNumberColumnFloatingFilter: _filter_provided_number_numberFloatingFilter__WEBPACK_IMPORTED_MODULE_7__["NumberFloatingFilter"],
9840 agDateColumnFloatingFilter: _filter_provided_date_dateFloatingFilter__WEBPACK_IMPORTED_MODULE_4__["DateFloatingFilter"],
9841 agReadOnlyFloatingFilter: _filter_floating_provided_readOnlyFloatingFilter__WEBPACK_IMPORTED_MODULE_2__["ReadOnlyFloatingFilter"],
9842 // renderers
9843 agAnimateShowChangeCellRenderer: _rendering_cellRenderers_animateShowChangeCellRenderer__WEBPACK_IMPORTED_MODULE_18__["AnimateShowChangeCellRenderer"],
9844 agAnimateSlideCellRenderer: _rendering_cellRenderers_animateSlideCellRenderer__WEBPACK_IMPORTED_MODULE_19__["AnimateSlideCellRenderer"],
9845 agGroupCellRenderer: _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_20__["GroupCellRenderer"],
9846 agGroupRowRenderer: _rendering_cellRenderers_groupCellRenderer__WEBPACK_IMPORTED_MODULE_20__["GroupCellRenderer"],
9847 agLoadingCellRenderer: _rendering_cellRenderers_loadingCellRenderer__WEBPACK_IMPORTED_MODULE_21__["LoadingCellRenderer"],
9848 //editors
9849 agCellEditor: _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_17__["TextCellEditor"],
9850 agTextCellEditor: _rendering_cellEditors_textCellEditor__WEBPACK_IMPORTED_MODULE_17__["TextCellEditor"],
9851 agSelectCellEditor: _rendering_cellEditors_selectCellEditor__WEBPACK_IMPORTED_MODULE_16__["SelectCellEditor"],
9852 agLargeTextCellEditor: _rendering_cellEditors_largeTextCellEditor__WEBPACK_IMPORTED_MODULE_15__["LargeTextCellEditor"],
9853 //filter
9854 agTextColumnFilter: _filter_provided_text_textFilter__WEBPACK_IMPORTED_MODULE_8__["TextFilter"],
9855 agNumberColumnFilter: _filter_provided_number_numberFilter__WEBPACK_IMPORTED_MODULE_6__["NumberFilter"],
9856 agDateColumnFilter: _filter_provided_date_dateFilter__WEBPACK_IMPORTED_MODULE_3__["DateFilter"],
9857 //overlays
9858 agLoadingOverlay: _rendering_overlays_loadingOverlayComponent__WEBPACK_IMPORTED_MODULE_22__["LoadingOverlayComponent"],
9859 agNoRowsOverlay: _rendering_overlays_noRowsOverlayComponent__WEBPACK_IMPORTED_MODULE_23__["NoRowsOverlayComponent"],
9860 // tooltips
9861 agTooltipComponent: _rendering_tooltipComponent__WEBPACK_IMPORTED_MODULE_24__["TooltipComponent"]
9862 };
9863 /** Used to provide useful error messages if a user is trying to use an enterprise component without loading the module. */
9864 _this.enterpriseAgDefaultCompsModule = {
9865 agSetColumnFilter: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].SetFilterModule,
9866 agSetColumnFloatingFilter: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].SetFilterModule,
9867 agMultiColumnFilter: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].MultiFilterModule,
9868 agMultiColumnFloatingFilter: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].MultiFilterModule,
9869 agGroupColumnFilter: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].RowGroupingModule,
9870 agGroupColumnFloatingFilter: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].RowGroupingModule,
9871 agRichSelect: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].RichSelectModule,
9872 agRichSelectCellEditor: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].RichSelectModule,
9873 agDetailCellRenderer: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].MasterDetailModule,
9874 agSparklineCellRenderer: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_13__["ModuleNames"].SparklinesModule
9875 };
9876 _this.deprecatedAgGridDefaults = {
9877 agPopupTextCellEditor: 'AG Grid: Since v27.1 The agPopupTextCellEditor is deprecated. Instead use { cellEditor: "agTextCellEditor", cellEditorPopup: true }',
9878 agPopupSelectCellEditor: 'AG Grid: Since v27.1 the agPopupSelectCellEditor is deprecated. Instead use { cellEditor: "agSelectCellEditor", cellEditorPopup: true }',
9879 };
9880 _this.jsComps = {};
9881 _this.fwComps = {};
9882 return _this;
9883 }
9884 UserComponentRegistry.prototype.init = function () {
9885 var _this = this;
9886 if (this.gridOptions.components != null) {
9887 Object(_utils_object__WEBPACK_IMPORTED_MODULE_26__["iterateObject"])(this.gridOptions.components, function (key, component) { return _this.registerJsComponent(key, component); });
9888 }
9889 if (this.gridOptions.frameworkComponents != null) {
9890 Object(_utils_object__WEBPACK_IMPORTED_MODULE_26__["iterateObject"])(this.gridOptions.frameworkComponents, function (key, component) { return _this.registerFwComponent(key, component); });
9891 }
9892 };
9893 UserComponentRegistry.prototype.registerDefaultComponent = function (name, component) {
9894 if (this.agGridDefaults[name]) {
9895 console.error("Trying to overwrite a default component. You should call registerComponent");
9896 return;
9897 }
9898 this.agGridDefaults[name] = component;
9899 };
9900 UserComponentRegistry.prototype.registerJsComponent = function (name, component) {
9901 if (this.fwComps[name]) {
9902 console.error("Trying to register a component that you have already registered for frameworks: " + name);
9903 return;
9904 }
9905 this.jsComps[name] = component;
9906 };
9907 /**
9908 * B the business interface (ie IHeader)
9909 * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
9910 */
9911 UserComponentRegistry.prototype.registerFwComponent = function (name, component) {
9912 var warningMessage = "AG Grid: As of v27, registering components via grid property frameworkComponents is deprecated. Instead register both JavaScript AND Framework Components via the components property.";
9913 Object(_utils_function__WEBPACK_IMPORTED_MODULE_25__["doOnce"])(function () { return console.warn(warningMessage); }, "UserComponentRegistry.frameworkComponentsDeprecated");
9914 this.fwComps[name] = component;
9915 };
9916 UserComponentRegistry.prototype.retrieve = function (propertyName, name) {
9917 var _this = this;
9918 var createResult = function (component, componentFromFramework) { return ({ componentFromFramework: componentFromFramework, component: component }); };
9919 // FrameworkOverrides.frameworkComponent() is used in two locations:
9920 // 1) for Vue, user provided components get registered via a framework specific way.
9921 // 2) for React, it's how the React UI provides alternative default components (eg GroupCellRenderer and DetailCellRenderer)
9922 var registeredViaFrameworkComp = this.getFrameworkOverrides().frameworkComponent(name, this.gridOptions.components);
9923 if (registeredViaFrameworkComp != null) {
9924 return createResult(registeredViaFrameworkComp, true);
9925 }
9926 var frameworkComponent = this.fwComps[name];
9927 if (frameworkComponent) {
9928 return createResult(frameworkComponent, true);
9929 }
9930 var jsComponent = this.jsComps[name];
9931 if (jsComponent) {
9932 var isFwkComp = this.getFrameworkOverrides().isFrameworkComponent(jsComponent);
9933 return createResult(jsComponent, isFwkComp);
9934 }
9935 var defaultComponent = this.agGridDefaults[name];
9936 if (defaultComponent) {
9937 return createResult(defaultComponent, false);
9938 }
9939 var moduleForComponent = this.enterpriseAgDefaultCompsModule[name];
9940 if (moduleForComponent) {
9941 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_14__["ModuleRegistry"].assertRegistered(moduleForComponent, "AG Grid '" + propertyName + "' component: " + name);
9942 }
9943 else if (this.deprecatedAgGridDefaults[name]) {
9944 Object(_utils_function__WEBPACK_IMPORTED_MODULE_25__["doOnce"])(function () { return console.warn(_this.deprecatedAgGridDefaults[name]); }, name);
9945 }
9946 else {
9947 Object(_utils_function__WEBPACK_IMPORTED_MODULE_25__["doOnce"])(function () { _this.warnAboutMissingComponent(propertyName, name); }, "MissingComp" + name);
9948 }
9949 return null;
9950 };
9951 UserComponentRegistry.prototype.warnAboutMissingComponent = function (propertyName, componentName) {
9952 var validComponents = __spread(Object.keys(this.agGridDefaults).filter(function (k) { return !['agCellEditor', 'agGroupRowRenderer', 'agSortIndicator'].includes(k); }), Object.keys(this.jsComps), Object.keys(this.fwComps));
9953 var suggestions = Object(_utils_fuzzyMatch__WEBPACK_IMPORTED_MODULE_27__["fuzzySuggestions"])(componentName, validComponents, true, 0.8);
9954 console.warn("AG Grid: Could not find '" + componentName + "' component. It was configured as \"" + propertyName + ": '" + componentName + "'\" but it wasn't found in the list of registered components.");
9955 if (suggestions.length > 0) {
9956 console.warn(" Did you mean: [" + suggestions.slice(0, 3) + "]?");
9957 }
9958 console.warn("If using a custom component check it has been registered as described in: https://ag-grid.com/javascript-data-grid/components/");
9959 };
9960 __decorate([
9961 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptions')
9962 ], UserComponentRegistry.prototype, "gridOptions", void 0);
9963 __decorate([
9964 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
9965 ], UserComponentRegistry.prototype, "init", null);
9966 UserComponentRegistry = __decorate([
9967 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('userComponentRegistry')
9968 ], UserComponentRegistry);
9969 return UserComponentRegistry;
9970}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
9971
9972
9973
9974/***/ }),
9975/* 37 */
9976/***/ (function(module, __webpack_exports__, __webpack_require__) {
9977
9978"use strict";
9979__webpack_require__.r(__webpack_exports__);
9980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReadOnlyFloatingFilter", function() { return ReadOnlyFloatingFilter; });
9981/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
9982/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
9983/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
9984/**
9985 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
9986 * @version v29.2.0
9987 * @link https://www.ag-grid.com/
9988 * @license MIT
9989 */
9990var __extends = (undefined && undefined.__extends) || (function () {
9991 var extendStatics = function (d, b) {
9992 extendStatics = Object.setPrototypeOf ||
9993 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9994 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
9995 return extendStatics(d, b);
9996 };
9997 return function (d, b) {
9998 extendStatics(d, b);
9999 function __() { this.constructor = d; }
10000 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10001 };
10002})();
10003var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10004 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10005 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10006 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;
10007 return c > 3 && r && Object.defineProperty(target, key, r), r;
10008};
10009
10010
10011
10012// optional floating filter for user provided filters - instead of providing a floating filter,
10013// they can provide a getModelAsString() method on the filter instead. this class just displays
10014// the string returned from getModelAsString()
10015var ReadOnlyFloatingFilter = /** @class */ (function (_super) {
10016 __extends(ReadOnlyFloatingFilter, _super);
10017 function ReadOnlyFloatingFilter() {
10018 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;
10019 }
10020 // this is a user component, and IComponent has "public destroy()" as part of the interface.
10021 // so we need to override destroy() just to make the method public.
10022 ReadOnlyFloatingFilter.prototype.destroy = function () {
10023 _super.prototype.destroy.call(this);
10024 };
10025 ReadOnlyFloatingFilter.prototype.init = function (params) {
10026 this.params = params;
10027 var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);
10028 var translate = this.localeService.getLocaleTextFunc();
10029 this.eFloatingFilterText
10030 .setDisabled(true)
10031 .setInputAriaLabel(displayName + " " + translate('ariaFilterInput', 'Filter Input'));
10032 };
10033 ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {
10034 var _this = this;
10035 if (!parentModel) {
10036 this.eFloatingFilterText.setValue('');
10037 return;
10038 }
10039 this.params.parentFilterInstance(function (filterInstance) {
10040 // it would be nice to check if getModelAsString was present before creating this component,
10041 // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until
10042 // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns
10043 // are drawn, but the parent filters are only created when needed).
10044 if (filterInstance.getModelAsString) {
10045 var modelAsString = filterInstance.getModelAsString(parentModel);
10046 _this.eFloatingFilterText.setValue(modelAsString);
10047 }
10048 });
10049 };
10050 __decorate([
10051 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eFloatingFilterText')
10052 ], ReadOnlyFloatingFilter.prototype, "eFloatingFilterText", void 0);
10053 __decorate([
10054 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnModel')
10055 ], ReadOnlyFloatingFilter.prototype, "columnModel", void 0);
10056 return ReadOnlyFloatingFilter;
10057}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
10058
10059
10060
10061/***/ }),
10062/* 38 */
10063/***/ (function(module, __webpack_exports__, __webpack_require__) {
10064
10065"use strict";
10066__webpack_require__.r(__webpack_exports__);
10067/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return Component; });
10068/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
10069/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
10070/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39);
10071/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
10072/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
10073/* harmony import */ var _customTooltipFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55);
10074/* harmony import */ var _rendering_cssClassManager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(56);
10075/**
10076 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10077 * @version v29.2.0
10078 * @link https://www.ag-grid.com/
10079 * @license MIT
10080 */
10081var __extends = (undefined && undefined.__extends) || (function () {
10082 var extendStatics = function (d, b) {
10083 extendStatics = Object.setPrototypeOf ||
10084 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
10085 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
10086 return extendStatics(d, b);
10087 };
10088 return function (d, b) {
10089 extendStatics(d, b);
10090 function __() { this.constructor = d; }
10091 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
10092 };
10093})();
10094var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
10095 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10096 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10097 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;
10098 return c > 3 && r && Object.defineProperty(target, key, r), r;
10099};
10100
10101
10102
10103
10104
10105
10106
10107var compIdSequence = new _utils__WEBPACK_IMPORTED_MODULE_2__["NumberSequence"]();
10108var Component = /** @class */ (function (_super) {
10109 __extends(Component, _super);
10110 function Component(template) {
10111 var _this = _super.call(this) || this;
10112 // if false, then CSS class "ag-hidden" is applied, which sets "display: none"
10113 _this.displayed = true;
10114 // if false, then CSS class "ag-invisible" is applied, which sets "visibility: hidden"
10115 _this.visible = true;
10116 // unique id for this row component. this is used for getting a reference to the HTML dom.
10117 // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying
10118 // around as we create a new rowComp instance for the same row node).
10119 _this.compId = compIdSequence.next();
10120 _this.cssClassManager = new _rendering_cssClassManager__WEBPACK_IMPORTED_MODULE_6__["CssClassManager"](function () { return _this.eGui; });
10121 if (template) {
10122 _this.setTemplate(template);
10123 }
10124 return _this;
10125 }
10126 Component.prototype.preConstructOnComponent = function () {
10127 this.usingBrowserTooltips = this.gridOptionsService.is('enableBrowserTooltips');
10128 };
10129 Component.prototype.getCompId = function () {
10130 return this.compId;
10131 };
10132 Component.prototype.getTooltipParams = function () {
10133 return {
10134 value: this.tooltipText,
10135 location: 'UNKNOWN'
10136 };
10137 };
10138 Component.prototype.setTooltip = function (newTooltipText) {
10139 var _this = this;
10140 var removeTooltip = function () {
10141 if (_this.usingBrowserTooltips) {
10142 _this.getGui().removeAttribute('title');
10143 }
10144 else {
10145 _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);
10146 }
10147 };
10148 var addTooltip = function () {
10149 if (_this.usingBrowserTooltips) {
10150 _this.getGui().setAttribute('title', _this.tooltipText);
10151 }
10152 else {
10153 _this.tooltipFeature = _this.createBean(new _customTooltipFeature__WEBPACK_IMPORTED_MODULE_5__["CustomTooltipFeature"](_this));
10154 }
10155 };
10156 if (this.tooltipText != newTooltipText) {
10157 if (this.tooltipText) {
10158 removeTooltip();
10159 }
10160 if (newTooltipText != null) {
10161 this.tooltipText = newTooltipText;
10162 if (this.tooltipText) {
10163 addTooltip();
10164 }
10165 }
10166 }
10167 };
10168 // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag
10169 Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {
10170 var _this = this;
10171 // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM
10172 // which messes up the traversal order of the children.
10173 var childNodeList = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["copyNodeList"])(parentNode.childNodes);
10174 childNodeList.forEach(function (childNode) {
10175 if (!(childNode instanceof HTMLElement)) {
10176 return;
10177 }
10178 var childComp = _this.createComponentFromElement(childNode, function (childComp) {
10179 // copy over all attributes, including css classes, so any attributes user put on the tag
10180 // wll be carried across
10181 var childGui = childComp.getGui();
10182 if (childGui) {
10183 _this.copyAttributesFromNode(childNode, childComp.getGui());
10184 }
10185 }, paramsMap);
10186 if (childComp) {
10187 if (childComp.addItems && childNode.children.length) {
10188 _this.createChildComponentsFromTags(childNode, paramsMap);
10189 // converting from HTMLCollection to Array
10190 var items = Array.prototype.slice.call(childNode.children);
10191 childComp.addItems(items);
10192 }
10193 // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom
10194 _this.swapComponentForNode(childComp, parentNode, childNode);
10195 }
10196 else if (childNode.childNodes) {
10197 _this.createChildComponentsFromTags(childNode, paramsMap);
10198 }
10199 });
10200 };
10201 Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {
10202 var key = element.nodeName;
10203 var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;
10204 var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);
10205 if (ComponentClass) {
10206 Component.elementGettingCreated = element;
10207 var newComponent = new ComponentClass(componentParams);
10208 newComponent.setParentComponent(this);
10209 this.createBean(newComponent, null, afterPreCreateCallback);
10210 return newComponent;
10211 }
10212 return null;
10213 };
10214 Component.prototype.copyAttributesFromNode = function (source, dest) {
10215 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["iterateNamedNodeMap"])(source.attributes, function (name, value) { return dest.setAttribute(name, value); });
10216 };
10217 Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {
10218 var eComponent = newComponent.getGui();
10219 parentNode.replaceChild(eComponent, childNode);
10220 parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);
10221 this.addDestroyFunc(this.destroyBean.bind(this, newComponent));
10222 this.swapInComponentForQuerySelectors(newComponent, childNode);
10223 };
10224 Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {
10225 var thisNoType = this;
10226 this.iterateOverQuerySelectors(function (querySelector) {
10227 if (thisNoType[querySelector.attributeName] === childNode) {
10228 thisNoType[querySelector.attributeName] = newComponent;
10229 }
10230 });
10231 };
10232 Component.prototype.iterateOverQuerySelectors = function (action) {
10233 var thisPrototype = Object.getPrototypeOf(this);
10234 while (thisPrototype != null) {
10235 var metaData = thisPrototype.__agComponentMetaData;
10236 var currentProtoName = Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["getFunctionName"])(thisPrototype.constructor);
10237 if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {
10238 metaData[currentProtoName].querySelectors.forEach(function (querySelector) { return action(querySelector); });
10239 }
10240 thisPrototype = Object.getPrototypeOf(thisPrototype);
10241 }
10242 };
10243 Component.prototype.setTemplate = function (template, paramsMap) {
10244 var eGui = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["loadTemplate"])(template);
10245 this.setTemplateFromElement(eGui, paramsMap);
10246 };
10247 Component.prototype.setTemplateFromElement = function (element, paramsMap) {
10248 this.eGui = element;
10249 this.eGui.__agComponent = this;
10250 this.wireQuerySelectors();
10251 // context will not be available when user sets template in constructor
10252 if (!!this.getContext()) {
10253 this.createChildComponentsFromTags(this.getGui(), paramsMap);
10254 }
10255 };
10256 Component.prototype.createChildComponentsPreConstruct = function () {
10257 // ui exists if user sets template in constructor. when this happens, we have to wait for the context
10258 // to be autoWired first before we can create child components.
10259 if (!!this.getGui()) {
10260 this.createChildComponentsFromTags(this.getGui());
10261 }
10262 };
10263 Component.prototype.wireQuerySelectors = function () {
10264 var _this = this;
10265 if (!this.eGui) {
10266 return;
10267 }
10268 var thisNoType = this;
10269 this.iterateOverQuerySelectors(function (querySelector) {
10270 var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };
10271 // if it's a ref selector, and match is on top level component, we return
10272 // the element. otherwise no way of components putting ref=xxx on the top
10273 // level element as querySelector only looks at children.
10274 var topLevelRefMatch = querySelector.refSelector
10275 && _this.eGui.getAttribute('ref') === querySelector.refSelector;
10276 if (topLevelRefMatch) {
10277 setResult(_this.eGui);
10278 }
10279 else {
10280 // otherwise use querySelector, which looks at children
10281 var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);
10282 if (resultOfQuery) {
10283 setResult(resultOfQuery.__agComponent || resultOfQuery);
10284 }
10285 }
10286 });
10287 };
10288 Component.prototype.getGui = function () {
10289 return this.eGui;
10290 };
10291 Component.prototype.getFocusableElement = function () {
10292 return this.eGui;
10293 };
10294 Component.prototype.setParentComponent = function (component) {
10295 this.parentComponent = component;
10296 };
10297 Component.prototype.getParentComponent = function () {
10298 return this.parentComponent;
10299 };
10300 // this method is for older code, that wants to provide the gui element,
10301 // it is not intended for this to be in ag-Stack
10302 Component.prototype.setGui = function (eGui) {
10303 this.eGui = eGui;
10304 };
10305 Component.prototype.queryForHtmlElement = function (cssSelector) {
10306 return this.eGui.querySelector(cssSelector);
10307 };
10308 Component.prototype.queryForHtmlInputElement = function (cssSelector) {
10309 return this.eGui.querySelector(cssSelector);
10310 };
10311 Component.prototype.appendChild = function (newChild, container) {
10312 if (newChild == null) {
10313 return;
10314 }
10315 if (!container) {
10316 container = this.eGui;
10317 }
10318 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["isNodeOrElement"])(newChild)) {
10319 container.appendChild(newChild);
10320 }
10321 else {
10322 var childComponent = newChild;
10323 container.appendChild(childComponent.getGui());
10324 }
10325 };
10326 Component.prototype.isDisplayed = function () {
10327 return this.displayed;
10328 };
10329 Component.prototype.setVisible = function (visible, options) {
10330 if (options === void 0) { options = {}; }
10331 if (visible !== this.visible) {
10332 this.visible = visible;
10333 var skipAriaHidden = options.skipAriaHidden;
10334 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setVisible"])(this.eGui, visible, { skipAriaHidden: skipAriaHidden });
10335 }
10336 };
10337 Component.prototype.setDisplayed = function (displayed, options) {
10338 if (options === void 0) { options = {}; }
10339 if (displayed !== this.displayed) {
10340 this.displayed = displayed;
10341 var skipAriaHidden = options.skipAriaHidden;
10342 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eGui, displayed, { skipAriaHidden: skipAriaHidden });
10343 var event_1 = {
10344 type: Component.EVENT_DISPLAYED_CHANGED,
10345 visible: this.displayed
10346 };
10347 this.dispatchEvent(event_1);
10348 }
10349 };
10350 Component.prototype.destroy = function () {
10351 if (this.tooltipFeature) {
10352 this.tooltipFeature = this.destroyBean(this.tooltipFeature);
10353 }
10354 if (this.parentComponent) {
10355 this.parentComponent = undefined;
10356 }
10357 var eGui = this.eGui;
10358 if (eGui && eGui.__agComponent) {
10359 eGui.__agComponent = undefined;
10360 }
10361 _super.prototype.destroy.call(this);
10362 };
10363 Component.prototype.addGuiEventListener = function (event, listener, options) {
10364 var _this = this;
10365 this.eGui.addEventListener(event, listener, options);
10366 this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });
10367 };
10368 Component.prototype.addCssClass = function (className) {
10369 this.cssClassManager.addCssClass(className);
10370 };
10371 Component.prototype.removeCssClass = function (className) {
10372 this.cssClassManager.removeCssClass(className);
10373 };
10374 Component.prototype.containsCssClass = function (className) {
10375 return this.cssClassManager.containsCssClass(className);
10376 };
10377 Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {
10378 this.cssClassManager.addOrRemoveCssClass(className, addOrRemove);
10379 };
10380 Component.prototype.getAttribute = function (key) {
10381 var eGui = this.eGui;
10382 return eGui ? eGui.getAttribute(key) : null;
10383 };
10384 Component.prototype.getRefElement = function (refName) {
10385 return this.queryForHtmlElement("[ref=\"" + refName + "\"]");
10386 };
10387 Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';
10388 __decorate([
10389 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('agStackComponentsRegistry')
10390 ], Component.prototype, "agStackComponentsRegistry", void 0);
10391 __decorate([
10392 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreConstruct"]
10393 ], Component.prototype, "preConstructOnComponent", null);
10394 __decorate([
10395 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreConstruct"]
10396 ], Component.prototype, "createChildComponentsPreConstruct", null);
10397 return Component;
10398}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
10399
10400
10401
10402/***/ }),
10403/* 39 */
10404/***/ (function(module, __webpack_exports__, __webpack_require__) {
10405
10406"use strict";
10407__webpack_require__.r(__webpack_exports__);
10408/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
10409/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _utils__WEBPACK_IMPORTED_MODULE_0__["_"]; });
10410
10411/* harmony import */ var _numberSequence__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52);
10412/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _numberSequence__WEBPACK_IMPORTED_MODULE_1__["NumberSequence"]; });
10413
10414/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53);
10415/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _promise__WEBPACK_IMPORTED_MODULE_2__["AgPromiseStatus"]; });
10416
10417/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _promise__WEBPACK_IMPORTED_MODULE_2__["AgPromise"]; });
10418
10419/* harmony import */ var _timer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(54);
10420/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _timer__WEBPACK_IMPORTED_MODULE_3__["Timer"]; });
10421
10422/**
10423 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10424 * @version v29.2.0
10425 * @link https://www.ag-grid.com/
10426 * @license MIT
10427 */
10428
10429
10430
10431
10432
10433
10434/***/ }),
10435/* 40 */
10436/***/ (function(module, __webpack_exports__, __webpack_require__) {
10437
10438"use strict";
10439__webpack_require__.r(__webpack_exports__);
10440/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _; });
10441/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
10442/* harmony import */ var _array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
10443/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
10444/* harmony import */ var _date__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43);
10445/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
10446/* harmony import */ var _event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);
10447/* harmony import */ var _function__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13);
10448/* harmony import */ var _fuzzyMatch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(28);
10449/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7);
10450/* harmony import */ var _icon__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(46);
10451/* harmony import */ var _keyboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(47);
10452/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(32);
10453/* harmony import */ var _mouse__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(49);
10454/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(44);
10455/* harmony import */ var _object__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(12);
10456/* harmony import */ var _rowNode__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(50);
10457/* harmony import */ var _set__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(51);
10458/* harmony import */ var _string__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(31);
10459/**
10460 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10461 * @version v29.2.0
10462 * @link https://www.ag-grid.com/
10463 * @license MIT
10464 */
10465var __assign = (undefined && undefined.__assign) || function () {
10466 __assign = Object.assign || function(t) {
10467 for (var s, i = 1, n = arguments.length; i < n; i++) {
10468 s = arguments[i];
10469 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
10470 t[p] = s[p];
10471 }
10472 return t;
10473 };
10474 return __assign.apply(this, arguments);
10475};
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494var utils = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, _aria__WEBPACK_IMPORTED_MODULE_0__), _array__WEBPACK_IMPORTED_MODULE_1__), _browser__WEBPACK_IMPORTED_MODULE_2__), _date__WEBPACK_IMPORTED_MODULE_3__), _dom__WEBPACK_IMPORTED_MODULE_4__), _event__WEBPACK_IMPORTED_MODULE_5__), _function__WEBPACK_IMPORTED_MODULE_6__), _fuzzyMatch__WEBPACK_IMPORTED_MODULE_7__), _generic__WEBPACK_IMPORTED_MODULE_8__), _icon__WEBPACK_IMPORTED_MODULE_9__), _keyboard__WEBPACK_IMPORTED_MODULE_10__), _map__WEBPACK_IMPORTED_MODULE_11__), _mouse__WEBPACK_IMPORTED_MODULE_12__), _number__WEBPACK_IMPORTED_MODULE_13__), _object__WEBPACK_IMPORTED_MODULE_14__), _rowNode__WEBPACK_IMPORTED_MODULE_15__), _set__WEBPACK_IMPORTED_MODULE_16__), _string__WEBPACK_IMPORTED_MODULE_17__);
10495var _ = utils;
10496
10497
10498/***/ }),
10499/* 41 */
10500/***/ (function(module, __webpack_exports__, __webpack_require__) {
10501
10502"use strict";
10503__webpack_require__.r(__webpack_exports__);
10504/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRole", function() { return setAriaRole; });
10505/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaSortState", function() { return getAriaSortState; });
10506/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaLevel", function() { return getAriaLevel; });
10507/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaPosInSet", function() { return getAriaPosInSet; });
10508/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAriaDescribedBy", function() { return getAriaDescribedBy; });
10509/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLabel", function() { return setAriaLabel; });
10510/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLabelledBy", function() { return setAriaLabelledBy; });
10511/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDescription", function() { return setAriaDescription; });
10512/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDescribedBy", function() { return setAriaDescribedBy; });
10513/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLive", function() { return setAriaLive; });
10514/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaLevel", function() { return setAriaLevel; });
10515/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaDisabled", function() { return setAriaDisabled; });
10516/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaHidden", function() { return setAriaHidden; });
10517/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaExpanded", function() { return setAriaExpanded; });
10518/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAriaExpanded", function() { return removeAriaExpanded; });
10519/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSetSize", function() { return setAriaSetSize; });
10520/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaPosInSet", function() { return setAriaPosInSet; });
10521/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaMultiSelectable", function() { return setAriaMultiSelectable; });
10522/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRowCount", function() { return setAriaRowCount; });
10523/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaRowIndex", function() { return setAriaRowIndex; });
10524/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColCount", function() { return setAriaColCount; });
10525/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColIndex", function() { return setAriaColIndex; });
10526/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaColSpan", function() { return setAriaColSpan; });
10527/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSort", function() { return setAriaSort; });
10528/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAriaSort", function() { return removeAriaSort; });
10529/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaSelected", function() { return setAriaSelected; });
10530/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setAriaChecked", function() { return setAriaChecked; });
10531/**
10532 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10533 * @version v29.2.0
10534 * @link https://www.ag-grid.com/
10535 * @license MIT
10536 */
10537// ARIA HELPER FUNCTIONS
10538function toggleAriaAttribute(element, attribute, value) {
10539 if (value == null || value == '') {
10540 removeAriaAttribute(element, attribute);
10541 }
10542 else {
10543 setAriaAttribute(element, attribute, value);
10544 }
10545}
10546function setAriaAttribute(element, attribute, value) {
10547 element.setAttribute(ariaAttributeName(attribute), value.toString());
10548}
10549function removeAriaAttribute(element, attribute) {
10550 element.removeAttribute(ariaAttributeName(attribute));
10551}
10552function ariaAttributeName(attribute) {
10553 return "aria-" + attribute;
10554}
10555function setAriaRole(element, role) {
10556 if (role) {
10557 element.setAttribute('role', role);
10558 }
10559 else {
10560 element.removeAttribute('role');
10561 }
10562}
10563function getAriaSortState(sortDirection) {
10564 var sort;
10565 if (sortDirection === 'asc') {
10566 sort = 'ascending';
10567 }
10568 else if (sortDirection === 'desc') {
10569 sort = 'descending';
10570 }
10571 else if (sortDirection === 'mixed') {
10572 sort = 'other';
10573 }
10574 else {
10575 sort = 'none';
10576 }
10577 return sort;
10578}
10579// ARIA ATTRIBUTE GETTERS
10580function getAriaLevel(element) {
10581 return parseInt(element.getAttribute('aria-level'), 10);
10582}
10583function getAriaPosInSet(element) {
10584 return parseInt(element.getAttribute('aria-posinset'), 10);
10585}
10586function getAriaDescribedBy(element) {
10587 return element.getAttribute('aria-describedby') || '';
10588}
10589// ARIA ATTRIBUTE SETTERS
10590function setAriaLabel(element, label) {
10591 toggleAriaAttribute(element, 'label', label);
10592}
10593function setAriaLabelledBy(element, labelledBy) {
10594 toggleAriaAttribute(element, 'labelledby', labelledBy);
10595}
10596function setAriaDescription(element, description) {
10597 toggleAriaAttribute(element, 'description', description);
10598}
10599function setAriaDescribedBy(element, describedby) {
10600 toggleAriaAttribute(element, 'describedby', describedby);
10601}
10602function setAriaLive(element, live) {
10603 toggleAriaAttribute(element, 'live', live);
10604}
10605function setAriaLevel(element, level) {
10606 toggleAriaAttribute(element, 'level', level);
10607}
10608function setAriaDisabled(element, disabled) {
10609 toggleAriaAttribute(element, 'disabled', disabled);
10610}
10611function setAriaHidden(element, hidden) {
10612 toggleAriaAttribute(element, 'hidden', hidden);
10613}
10614function setAriaExpanded(element, expanded) {
10615 setAriaAttribute(element, 'expanded', expanded);
10616}
10617function removeAriaExpanded(element) {
10618 removeAriaAttribute(element, 'expanded');
10619}
10620function setAriaSetSize(element, setsize) {
10621 setAriaAttribute(element, 'setsize', setsize);
10622}
10623function setAriaPosInSet(element, position) {
10624 setAriaAttribute(element, 'posinset', position);
10625}
10626function setAriaMultiSelectable(element, multiSelectable) {
10627 setAriaAttribute(element, 'multiselectable', multiSelectable);
10628}
10629function setAriaRowCount(element, rowCount) {
10630 setAriaAttribute(element, 'rowcount', rowCount);
10631}
10632function setAriaRowIndex(element, rowIndex) {
10633 setAriaAttribute(element, 'rowindex', rowIndex);
10634}
10635function setAriaColCount(element, colCount) {
10636 setAriaAttribute(element, 'colcount', colCount);
10637}
10638function setAriaColIndex(element, colIndex) {
10639 setAriaAttribute(element, 'colindex', colIndex);
10640}
10641function setAriaColSpan(element, colSpan) {
10642 setAriaAttribute(element, 'colspan', colSpan);
10643}
10644function setAriaSort(element, sort) {
10645 setAriaAttribute(element, 'sort', sort);
10646}
10647function removeAriaSort(element) {
10648 removeAriaAttribute(element, 'sort');
10649}
10650function setAriaSelected(element, selected) {
10651 toggleAriaAttribute(element, 'selected', selected);
10652}
10653function setAriaChecked(element, checked) {
10654 setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);
10655}
10656
10657
10658/***/ }),
10659/* 42 */
10660/***/ (function(module, __webpack_exports__, __webpack_require__) {
10661
10662"use strict";
10663__webpack_require__.r(__webpack_exports__);
10664/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserSafari", function() { return isBrowserSafari; });
10665/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSafariVersion", function() { return getSafariVersion; });
10666/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserChrome", function() { return isBrowserChrome; });
10667/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBrowserFirefox", function() { return isBrowserFirefox; });
10668/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isMacOsUserAgent", function() { return isMacOsUserAgent; });
10669/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIOSUserAgent", function() { return isIOSUserAgent; });
10670/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "browserSupportsPreventScroll", function() { return browserSupportsPreventScroll; });
10671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTabIndex", function() { return getTabIndex; });
10672/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMaxDivHeight", function() { return getMaxDivHeight; });
10673/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBodyWidth", function() { return getBodyWidth; });
10674/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBodyHeight", function() { return getBodyHeight; });
10675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollbarWidth", function() { return getScrollbarWidth; });
10676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInvisibleScrollbar", function() { return isInvisibleScrollbar; });
10677/**
10678 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10679 * @version v29.2.0
10680 * @link https://www.ag-grid.com/
10681 * @license MIT
10682 */
10683/**
10684 * These variables are lazy loaded, as otherwise they try and get initialised when we are loading
10685 * unit tests and we don't have references to window or document in the unit tests
10686 */
10687var isSafari;
10688var safariVersion;
10689var isChrome;
10690var isFirefox;
10691var isMacOs;
10692var isIOS;
10693var invisibleScrollbar;
10694var browserScrollbarWidth;
10695function isBrowserSafari() {
10696 if (isSafari === undefined) {
10697 isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
10698 }
10699 return isSafari;
10700}
10701function getSafariVersion() {
10702 if (safariVersion === undefined) {
10703 if (isBrowserSafari()) {
10704 var versionMatch = navigator.userAgent.match(/version\/(\d+)/i);
10705 if (versionMatch) {
10706 safariVersion = versionMatch[1] != null ? parseFloat(versionMatch[1]) : 0;
10707 }
10708 }
10709 else {
10710 safariVersion = 0;
10711 }
10712 }
10713 return safariVersion;
10714}
10715/**
10716 * Returns true for Chrome and also for Edge (Chromium)
10717 */
10718function isBrowserChrome() {
10719 if (isChrome === undefined) {
10720 var win = window;
10721 isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||
10722 (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));
10723 }
10724 return isChrome;
10725}
10726function isBrowserFirefox() {
10727 if (isFirefox === undefined) {
10728 isFirefox = /(firefox)/i.test(navigator.userAgent);
10729 }
10730 return isFirefox;
10731}
10732function isMacOsUserAgent() {
10733 if (isMacOs === undefined) {
10734 isMacOs = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);
10735 }
10736 return isMacOs;
10737}
10738function isIOSUserAgent() {
10739 if (isIOS === undefined) {
10740 isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
10741 // eslint-disable-next-line
10742 (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));
10743 }
10744 return isIOS;
10745}
10746function browserSupportsPreventScroll() {
10747 // all browsers except safari support focus({ preventScroll: true }).
10748 // this feature was added on Safari 15+
10749 return !isBrowserSafari() || getSafariVersion() >= 15;
10750}
10751function getTabIndex(el) {
10752 if (!el) {
10753 return null;
10754 }
10755 var numberTabIndex = el.tabIndex;
10756 var tabIndex = el.getAttribute('tabIndex');
10757 if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {
10758 return null;
10759 }
10760 return numberTabIndex.toString();
10761}
10762function getMaxDivHeight() {
10763 if (!document.body) {
10764 return -1;
10765 }
10766 var res = 1000000;
10767 // FF reports the height back but still renders blank after ~6M px
10768 var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;
10769 var div = document.createElement('div');
10770 document.body.appendChild(div);
10771 while (true) {
10772 var test = res * 2;
10773 div.style.height = test + 'px';
10774 if (test > testUpTo || div.clientHeight !== test) {
10775 break;
10776 }
10777 else {
10778 res = test;
10779 }
10780 }
10781 document.body.removeChild(div);
10782 return res;
10783}
10784function getBodyWidth() {
10785 var _a, _b, _c;
10786 return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientWidth) || -1);
10787}
10788function getBodyHeight() {
10789 var _a, _b, _c;
10790 return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientHeight) || -1);
10791}
10792function getScrollbarWidth() {
10793 if (browserScrollbarWidth == null) {
10794 initScrollbarWidthAndVisibility();
10795 }
10796 return browserScrollbarWidth;
10797}
10798function initScrollbarWidthAndVisibility() {
10799 var body = document.body;
10800 var div = document.createElement('div');
10801 div.style.width = div.style.height = '100px';
10802 div.style.opacity = '0';
10803 div.style.overflow = 'scroll';
10804 div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps
10805 div.style.position = 'absolute';
10806 body.appendChild(div);
10807 var width = div.offsetWidth - div.clientWidth;
10808 // if width is 0 and client width is 0, means the DOM isn't ready
10809 if (width === 0 && div.clientWidth === 0) {
10810 width = null;
10811 }
10812 // remove div
10813 if (div.parentNode) {
10814 div.parentNode.removeChild(div);
10815 }
10816 if (width != null) {
10817 browserScrollbarWidth = width;
10818 invisibleScrollbar = width === 0;
10819 }
10820}
10821function isInvisibleScrollbar() {
10822 if (invisibleScrollbar == null) {
10823 initScrollbarWidthAndVisibility();
10824 }
10825 return invisibleScrollbar;
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__, "serialiseDate", function() { return serialiseDate; });
10836/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dateToFormattedString", function() { return dateToFormattedString; });
10837/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseDateTimeFromString", function() { return parseDateTimeFromString; });
10838/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44);
10839/**
10840 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10841 * @version v29.2.0
10842 * @link https://www.ag-grid.com/
10843 * @license MIT
10844 */
10845var __read = (undefined && undefined.__read) || function (o, n) {
10846 var m = typeof Symbol === "function" && o[Symbol.iterator];
10847 if (!m) return o;
10848 var i = m.call(o), r, ar = [], e;
10849 try {
10850 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
10851 }
10852 catch (error) { e = { error: error }; }
10853 finally {
10854 try {
10855 if (r && !r.done && (m = i["return"])) m.call(i);
10856 }
10857 finally { if (e) throw e.error; }
10858 }
10859 return ar;
10860};
10861
10862/**
10863 * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.
10864 * An alternative separator can be provided to be used instead of hyphens.
10865 * @param date The date to serialise
10866 * @param includeTime Whether to include the time in the serialised string
10867 * @param separator The separator to use between date parts
10868 */
10869function serialiseDate(date, includeTime, separator) {
10870 if (includeTime === void 0) { includeTime = true; }
10871 if (separator === void 0) { separator = '-'; }
10872 if (!date) {
10873 return null;
10874 }
10875 var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(part, 2); }).join(separator);
10876 if (includeTime) {
10877 serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(part, 2); }).join(':');
10878 }
10879 return serialised;
10880}
10881var calculateOrdinal = function (value) {
10882 if (value > 3 && value < 21) {
10883 return 'th';
10884 }
10885 var remainder = value % 10;
10886 switch (remainder) {
10887 case 1: return "st";
10888 case 2: return "nd";
10889 case 3: return "rd";
10890 }
10891 return 'th';
10892};
10893/**
10894 * Serialises a Date to a string of format the defined format, does not include time.
10895 * @param date The date to serialise
10896 * @param format The string to format the date to, defaults to YYYY-MM-DD
10897 */
10898function dateToFormattedString(date, format) {
10899 if (format === void 0) { format = 'YYYY-MM-DD'; }
10900 var fullYear = Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(date.getFullYear(), 4);
10901 var months = [
10902 'January', 'February', 'March', 'April', 'May', 'June',
10903 'July', 'August', 'September', 'October', 'November', 'December',
10904 ];
10905 var days = [
10906 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',
10907 ];
10908 var replace = {
10909 YYYY: function () { return fullYear.slice(fullYear.length - 4, fullYear.length); },
10910 YY: function () { return fullYear.slice(fullYear.length - 2, fullYear.length); },
10911 Y: function () { return "" + date.getFullYear(); },
10912 MMMM: function () { return months[date.getMonth()]; },
10913 MMM: function () { return months[date.getMonth()].slice(0, 3); },
10914 MM: function () { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(date.getMonth() + 1, 2); },
10915 Mo: function () { return "" + (date.getMonth() + 1) + calculateOrdinal(date.getMonth() + 1); },
10916 M: function () { return "" + (date.getMonth() + 1); },
10917 Do: function () { return "" + date.getDate() + calculateOrdinal(date.getDate()); },
10918 DD: function () { return Object(_number__WEBPACK_IMPORTED_MODULE_0__["padStartWidthZeros"])(date.getDate(), 2); },
10919 D: function () { return "" + date.getDate(); },
10920 dddd: function () { return days[date.getDay()]; },
10921 ddd: function () { return days[date.getDay()].slice(0, 3); },
10922 dd: function () { return days[date.getDay()].slice(0, 2); },
10923 do: function () { return "" + date.getDay() + calculateOrdinal(date.getDay()); },
10924 d: function () { return "" + date.getDay(); },
10925 };
10926 var regexp = new RegExp(Object.keys(replace).join('|'), 'g');
10927 return format.replace(regexp, function (match) {
10928 if (match in replace) {
10929 return replace[match]();
10930 }
10931 return match;
10932 });
10933}
10934/**
10935 * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`
10936 */
10937function parseDateTimeFromString(value) {
10938 if (!value) {
10939 return null;
10940 }
10941 var _a = __read(value.split(' '), 2), dateStr = _a[0], timeStr = _a[1];
10942 if (!dateStr) {
10943 return null;
10944 }
10945 var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });
10946 if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {
10947 return null;
10948 }
10949 var _b = __read(fields, 3), year = _b[0], month = _b[1], day = _b[2];
10950 var date = new Date(year, month - 1, day);
10951 if (date.getFullYear() !== year ||
10952 date.getMonth() !== month - 1 ||
10953 date.getDate() !== day) {
10954 // date was not parsed as expected so must have been invalid
10955 return null;
10956 }
10957 if (!timeStr || timeStr === '00:00:00') {
10958 return date;
10959 }
10960 var _c = __read(timeStr.split(':').map(function (part) { return parseInt(part, 10); }), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];
10961 if (hours >= 0 && hours < 24) {
10962 date.setHours(hours);
10963 }
10964 if (minutes >= 0 && minutes < 60) {
10965 date.setMinutes(minutes);
10966 }
10967 if (seconds >= 0 && seconds < 60) {
10968 date.setSeconds(seconds);
10969 }
10970 return date;
10971}
10972
10973
10974/***/ }),
10975/* 44 */
10976/***/ (function(module, __webpack_exports__, __webpack_require__) {
10977
10978"use strict";
10979__webpack_require__.r(__webpack_exports__);
10980/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padStartWidthZeros", function() { return padStartWidthZeros; });
10981/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createArrayOfNumbers", function() { return createArrayOfNumbers; });
10982/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cleanNumber", function() { return cleanNumber; });
10983/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decToHex", function() { return decToHex; });
10984/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatNumberTwoDecimalPlacesAndCommas", function() { return formatNumberTwoDecimalPlacesAndCommas; });
10985/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatNumberCommas", function() { return formatNumberCommas; });
10986/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sum", function() { return sum; });
10987/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zeroOrGreater", function() { return zeroOrGreater; });
10988/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "oneOrGreater", function() { return oneOrGreater; });
10989/**
10990 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
10991 * @version v29.2.0
10992 * @link https://www.ag-grid.com/
10993 * @license MIT
10994 */
10995function padStartWidthZeros(value, totalStringSize) {
10996 return value.toString().padStart(totalStringSize, '0');
10997}
10998function createArrayOfNumbers(first, last) {
10999 var result = [];
11000 for (var i = first; i <= last; i++) {
11001 result.push(i);
11002 }
11003 return result;
11004}
11005function cleanNumber(value) {
11006 if (typeof value === 'string') {
11007 value = parseInt(value, 10);
11008 }
11009 if (typeof value === 'number') {
11010 return Math.floor(value);
11011 }
11012 return null;
11013}
11014function decToHex(number, bytes) {
11015 var hex = '';
11016 for (var i = 0; i < bytes; i++) {
11017 hex += String.fromCharCode(number & 0xff);
11018 number >>>= 8;
11019 }
11020 return hex;
11021}
11022function formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator) {
11023 if (typeof value !== 'number') {
11024 return '';
11025 }
11026 return formatNumberCommas(Math.round(value * 100) / 100, thousandSeparator, decimalSeparator);
11027}
11028/**
11029 * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})
11030 * puts in decimal places in IE, so we use this method instead
11031 * from: http://blog.tompawlak.org/number-currency-formatting-javascript
11032 * @param {number} value
11033 * @returns {string}
11034 */
11035function formatNumberCommas(value, thousandSeparator, decimalSeparator) {
11036 if (typeof value !== 'number') {
11037 return '';
11038 }
11039 return value.toString().replace('.', decimalSeparator).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + thousandSeparator);
11040}
11041function sum(values) {
11042 return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);
11043}
11044function zeroOrGreater(value, defaultValue) {
11045 if (value >= 0) {
11046 return value;
11047 }
11048 // zero gets returned if number is missing or the wrong type
11049 return defaultValue;
11050}
11051function oneOrGreater(value, defaultValue) {
11052 var valueNumber = parseInt(value, 10);
11053 if (!isNaN(valueNumber) && isFinite(valueNumber) && valueNumber > 0) {
11054 return valueNumber;
11055 }
11056 return defaultValue;
11057}
11058
11059
11060/***/ }),
11061/* 45 */
11062/***/ (function(module, __webpack_exports__, __webpack_require__) {
11063
11064"use strict";
11065__webpack_require__.r(__webpack_exports__);
11066/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "radioCssClass", function() { return radioCssClass; });
11067/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FOCUSABLE_SELECTOR", function() { return FOCUSABLE_SELECTOR; });
11068/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FOCUSABLE_EXCLUDE", function() { return FOCUSABLE_EXCLUDE; });
11069/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isFocusableFormField", function() { return isFocusableFormField; });
11070/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDisplayed", function() { return setDisplayed; });
11071/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setVisible", function() { return setVisible; });
11072/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDisabled", function() { return setDisabled; });
11073/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isElementChildOfClass", function() { return isElementChildOfClass; });
11074/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementSize", function() { return getElementSize; });
11075/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInnerHeight", function() { return getInnerHeight; });
11076/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInnerWidth", function() { return getInnerWidth; });
11077/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAbsoluteHeight", function() { return getAbsoluteHeight; });
11078/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAbsoluteWidth", function() { return getAbsoluteWidth; });
11079/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isRtlNegativeScroll", function() { return isRtlNegativeScroll; });
11080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getScrollLeft", function() { return getScrollLeft; });
11081/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setScrollLeft", function() { return setScrollLeft; });
11082/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearElement", function() { return clearElement; });
11083/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeElement", function() { return removeElement; });
11084/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeFromParent", function() { return removeFromParent; });
11085/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVisible", function() { return isVisible; });
11086/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadTemplate", function() { return loadTemplate; });
11087/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendHtml", function() { return appendHtml; });
11088/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementAttribute", function() { return getElementAttribute; });
11089/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offsetHeight", function() { return offsetHeight; });
11090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offsetWidth", function() { return offsetWidth; });
11091/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ensureDomOrder", function() { return ensureDomOrder; });
11092/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setDomChildOrder", function() { return setDomChildOrder; });
11093/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertWithDomOrder", function() { return insertWithDomOrder; });
11094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prependDC", function() { return prependDC; });
11095/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addStylesToElement", function() { return addStylesToElement; });
11096/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHorizontalScrollShowing", function() { return isHorizontalScrollShowing; });
11097/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isVerticalScrollShowing", function() { return isVerticalScrollShowing; });
11098/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementWidth", function() { return setElementWidth; });
11099/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFixedWidth", function() { return setFixedWidth; });
11100/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setElementHeight", function() { return setElementHeight; });
11101/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setFixedHeight", function() { return setFixedHeight; });
11102/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatSize", function() { return formatSize; });
11103/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNodeOrElement", function() { return isNodeOrElement; });
11104/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "copyNodeList", function() { return copyNodeList; });
11105/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterateNamedNodeMap", function() { return iterateNamedNodeMap; });
11106/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addOrRemoveAttribute", function() { return addOrRemoveAttribute; });
11107/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nodeListForEach", function() { return nodeListForEach; });
11108/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42);
11109/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
11110/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
11111/**
11112 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
11113 * @version v29.2.0
11114 * @link https://www.ag-grid.com/
11115 * @license MIT
11116 */
11117var __values = (undefined && undefined.__values) || function(o) {
11118 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
11119 if (m) return m.call(o);
11120 if (o && typeof o.length === "number") return {
11121 next: function () {
11122 if (o && i >= o.length) o = void 0;
11123 return { value: o && o[i++], done: !o };
11124 }
11125 };
11126 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
11127};
11128var __read = (undefined && undefined.__read) || function (o, n) {
11129 var m = typeof Symbol === "function" && o[Symbol.iterator];
11130 if (!m) return o;
11131 var i = m.call(o), r, ar = [], e;
11132 try {
11133 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
11134 }
11135 catch (error) { e = { error: error }; }
11136 finally {
11137 try {
11138 if (r && !r.done && (m = i["return"])) m.call(i);
11139 }
11140 finally { if (e) throw e.error; }
11141 }
11142 return ar;
11143};
11144
11145
11146
11147var rtlNegativeScroll;
11148/**
11149 * This method adds a class to an element and remove that class from all siblings.
11150 * Useful for toggling state.
11151 * @param {HTMLElement} element The element to receive the class
11152 * @param {string} elementClass The class to be assigned to the element
11153 * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself
11154 */
11155function radioCssClass(element, elementClass, otherElementClass) {
11156 var parent = element.parentElement;
11157 var sibling = parent && parent.firstChild;
11158 while (sibling) {
11159 if (elementClass) {
11160 sibling.classList.toggle(elementClass, sibling === element);
11161 }
11162 if (otherElementClass) {
11163 sibling.classList.toggle(otherElementClass, sibling !== element);
11164 }
11165 sibling = sibling.nextSibling;
11166 }
11167}
11168var FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea, [href]';
11169var FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled, .ag-disabled *';
11170function isFocusableFormField(element) {
11171 var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;
11172 var inputSelector = 'input, select, button, textarea';
11173 var isFocusable = matches.call(element, inputSelector);
11174 var isNotFocusable = matches.call(element, FOCUSABLE_EXCLUDE);
11175 var isElementVisible = isVisible(element);
11176 var focusable = isFocusable && !isNotFocusable && isElementVisible;
11177 return focusable;
11178}
11179function setDisplayed(element, displayed, options) {
11180 if (options === void 0) { options = {}; }
11181 var skipAriaHidden = options.skipAriaHidden;
11182 element.classList.toggle('ag-hidden', !displayed);
11183 if (!skipAriaHidden) {
11184 Object(_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaHidden"])(element, !displayed);
11185 }
11186}
11187function setVisible(element, visible, options) {
11188 if (options === void 0) { options = {}; }
11189 var skipAriaHidden = options.skipAriaHidden;
11190 element.classList.toggle('ag-invisible', !visible);
11191 if (!skipAriaHidden) {
11192 Object(_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaHidden"])(element, !visible);
11193 }
11194}
11195function setDisabled(element, disabled) {
11196 var attributeName = 'disabled';
11197 var addOrRemoveDisabledAttribute = disabled ?
11198 function (e) { return e.setAttribute(attributeName, ''); } :
11199 function (e) { return e.removeAttribute(attributeName); };
11200 addOrRemoveDisabledAttribute(element);
11201 nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });
11202}
11203function isElementChildOfClass(element, cls, maxNest) {
11204 var counter = 0;
11205 while (element) {
11206 if (element.classList.contains(cls)) {
11207 return true;
11208 }
11209 element = element.parentElement;
11210 if (typeof maxNest == 'number') {
11211 if (++counter > maxNest) {
11212 break;
11213 }
11214 }
11215 else if (element === maxNest) {
11216 break;
11217 }
11218 }
11219 return false;
11220}
11221// returns back sizes as doubles instead of strings. similar to
11222// getBoundingClientRect, however getBoundingClientRect does not:
11223// a) work with fractions (eg browser is zooming)
11224// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values
11225function getElementSize(el) {
11226 var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, borderTopWidth = _a.borderTopWidth, borderRightWidth = _a.borderRightWidth, borderBottomWidth = _a.borderBottomWidth, borderLeftWidth = _a.borderLeftWidth, 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;
11227 return {
11228 height: parseFloat(height),
11229 width: parseFloat(width),
11230 borderTopWidth: parseFloat(borderTopWidth),
11231 borderRightWidth: parseFloat(borderRightWidth),
11232 borderBottomWidth: parseFloat(borderBottomWidth),
11233 borderLeftWidth: parseFloat(borderLeftWidth),
11234 paddingTop: parseFloat(paddingTop),
11235 paddingRight: parseFloat(paddingRight),
11236 paddingBottom: parseFloat(paddingBottom),
11237 paddingLeft: parseFloat(paddingLeft),
11238 marginTop: parseFloat(marginTop),
11239 marginRight: parseFloat(marginRight),
11240 marginBottom: parseFloat(marginBottom),
11241 marginLeft: parseFloat(marginLeft),
11242 boxSizing: boxSizing
11243 };
11244}
11245function getInnerHeight(el) {
11246 var size = getElementSize(el);
11247 if (size.boxSizing === 'border-box') {
11248 return size.height - size.paddingTop - size.paddingBottom;
11249 }
11250 return size.height;
11251}
11252function getInnerWidth(el) {
11253 var size = getElementSize(el);
11254 if (size.boxSizing === 'border-box') {
11255 return size.width - size.paddingLeft - size.paddingRight;
11256 }
11257 return size.width;
11258}
11259function getAbsoluteHeight(el) {
11260 var size = getElementSize(el);
11261 var marginRight = size.marginBottom + size.marginTop;
11262 return Math.ceil(el.offsetHeight + marginRight);
11263}
11264function getAbsoluteWidth(el) {
11265 var size = getElementSize(el);
11266 var marginWidth = size.marginLeft + size.marginRight;
11267 return Math.ceil(el.offsetWidth + marginWidth);
11268}
11269function isRtlNegativeScroll() {
11270 if (typeof rtlNegativeScroll === "boolean") {
11271 return rtlNegativeScroll;
11272 }
11273 var template = document.createElement('div');
11274 template.style.direction = 'rtl';
11275 template.style.width = '1px';
11276 template.style.height = '1px';
11277 template.style.position = 'fixed';
11278 template.style.top = '0px';
11279 template.style.overflow = 'hidden';
11280 template.dir = 'rtl';
11281 template.innerHTML = /* html */
11282 "<div style=\"width: 2px\">\n <span style=\"display: inline-block; width: 1px\"></span>\n <span style=\"display: inline-block; width: 1px\"></span>\n </div>";
11283 document.body.appendChild(template);
11284 template.scrollLeft = 1;
11285 rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;
11286 document.body.removeChild(template);
11287 return rtlNegativeScroll;
11288}
11289function getScrollLeft(element, rtl) {
11290 var scrollLeft = element.scrollLeft;
11291 if (rtl) {
11292 // Absolute value - for FF that reports RTL scrolls in negative numbers
11293 scrollLeft = Math.abs(scrollLeft);
11294 if (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserChrome"])() && !isRtlNegativeScroll()) {
11295 scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;
11296 }
11297 }
11298 return scrollLeft;
11299}
11300function setScrollLeft(element, value, rtl) {
11301 if (rtl) {
11302 // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start
11303 if (isRtlNegativeScroll()) {
11304 value *= -1;
11305 }
11306 else if (Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserSafari"])() || Object(_browser__WEBPACK_IMPORTED_MODULE_0__["isBrowserChrome"])()) {
11307 value = element.scrollWidth - element.clientWidth - value;
11308 }
11309 }
11310 element.scrollLeft = value;
11311}
11312function clearElement(el) {
11313 while (el && el.firstChild) {
11314 el.removeChild(el.firstChild);
11315 }
11316}
11317/** @deprecated */
11318function removeElement(parent, cssSelector) {
11319 removeFromParent(parent.querySelector(cssSelector));
11320}
11321function removeFromParent(node) {
11322 if (node && node.parentNode) {
11323 node.parentNode.removeChild(node);
11324 }
11325}
11326function isVisible(element) {
11327 return element.offsetParent !== null;
11328}
11329/**
11330 * Loads the template and returns it as an element. makes up for no simple way in
11331 * the dom api to load html directly, eg we cannot do this: document.createElement(template)
11332 * @param {string} template
11333 * @returns {HTMLElement}
11334 */
11335function loadTemplate(template) {
11336 var tempDiv = document.createElement('div');
11337 tempDiv.innerHTML = (template || '').trim();
11338 return tempDiv.firstChild;
11339}
11340function appendHtml(eContainer, htmlTemplate) {
11341 if (eContainer.lastChild) {
11342 // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML
11343 // we put the items at the start, so new items appear underneath old items,
11344 // so when expanding/collapsing groups, the new rows don't go on top of the
11345 // rows below that are moving our of the way
11346 eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);
11347 }
11348 else {
11349 eContainer.innerHTML = htmlTemplate;
11350 }
11351}
11352/** @deprecated */
11353function getElementAttribute(element, attributeName) {
11354 if (element.attributes && element.attributes[attributeName]) {
11355 var attribute = element.attributes[attributeName];
11356 return attribute.value;
11357 }
11358 return null;
11359}
11360function offsetHeight(element) {
11361 return element && element.clientHeight ? element.clientHeight : 0;
11362}
11363function offsetWidth(element) {
11364 return element && element.clientWidth ? element.clientWidth : 0;
11365}
11366function ensureDomOrder(eContainer, eChild, eChildBefore) {
11367 // if already in right order, do nothing
11368 if (eChildBefore && eChildBefore.nextSibling === eChild) {
11369 return;
11370 }
11371 var focusedEl = document.activeElement;
11372 var eChildHasFocus = eChild.contains(focusedEl);
11373 if (eChildBefore) {
11374 if (eChildBefore.nextSibling) {
11375 // insert between the eRowBefore and the row after it
11376 eContainer.insertBefore(eChild, eChildBefore.nextSibling);
11377 }
11378 else {
11379 // if nextSibling is missing, means other row is at end, so just append new row at the end
11380 eContainer.appendChild(eChild);
11381 }
11382 }
11383 else {
11384 // otherwise put at start
11385 if (eContainer.firstChild && eContainer.firstChild !== eChild) {
11386 // insert it at the first location
11387 eContainer.insertAdjacentElement('afterbegin', eChild);
11388 }
11389 }
11390 if (eChildHasFocus && focusedEl && Object(_browser__WEBPACK_IMPORTED_MODULE_0__["browserSupportsPreventScroll"])()) {
11391 focusedEl.focus({ preventScroll: true });
11392 }
11393}
11394function setDomChildOrder(eContainer, orderedChildren) {
11395 for (var i = 0; i < orderedChildren.length; i++) {
11396 var correctCellAtIndex = orderedChildren[i];
11397 var actualCellAtIndex = eContainer.children[i];
11398 if (actualCellAtIndex !== correctCellAtIndex) {
11399 eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);
11400 }
11401 }
11402}
11403function insertWithDomOrder(eContainer, eToInsert, eChildBefore) {
11404 if (eChildBefore) {
11405 // if previous element exists, just slot in after the previous element
11406 eChildBefore.insertAdjacentElement('afterend', eToInsert);
11407 }
11408 else {
11409 if (eContainer.firstChild) {
11410 // insert it at the first location
11411 eContainer.insertAdjacentElement('afterbegin', eToInsert);
11412 }
11413 else {
11414 // otherwise eContainer is empty, so just append it
11415 eContainer.appendChild(eToInsert);
11416 }
11417 }
11418}
11419/** @deprecated */
11420function prependDC(parent, documentFragment) {
11421 if (Object(_generic__WEBPACK_IMPORTED_MODULE_1__["exists"])(parent.firstChild)) {
11422 parent.insertBefore(documentFragment, parent.firstChild);
11423 }
11424 else {
11425 parent.appendChild(documentFragment);
11426 }
11427}
11428function addStylesToElement(eElement, styles) {
11429 var e_1, _a;
11430 if (!styles) {
11431 return;
11432 }
11433 try {
11434 for (var _b = __values(Object.entries(styles)), _c = _b.next(); !_c.done; _c = _b.next()) {
11435 var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
11436 if (!key || !key.length || value == null) {
11437 continue;
11438 }
11439 // changes the key from camelCase into a hyphenated-string
11440 var parsedKey = key.replace(/[A-Z]/g, function (s) { return "-" + s.toLocaleLowerCase(); });
11441 var valueAsString = value.toString();
11442 var parsedValue = valueAsString.replace(/\s*!important/g, '');
11443 var priority = parsedValue.length != valueAsString.length ? 'important' : undefined;
11444 eElement.style.setProperty(parsedKey, value, priority);
11445 }
11446 }
11447 catch (e_1_1) { e_1 = { error: e_1_1 }; }
11448 finally {
11449 try {
11450 if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
11451 }
11452 finally { if (e_1) throw e_1.error; }
11453 }
11454}
11455function isHorizontalScrollShowing(element) {
11456 return element.clientWidth < element.scrollWidth;
11457}
11458function isVerticalScrollShowing(element) {
11459 return element.clientHeight < element.scrollHeight;
11460}
11461function setElementWidth(element, width) {
11462 if (width === 'flex') {
11463 element.style.removeProperty('width');
11464 element.style.removeProperty('minWidth');
11465 element.style.removeProperty('maxWidth');
11466 element.style.flex = '1 1 auto';
11467 }
11468 else {
11469 setFixedWidth(element, width);
11470 }
11471}
11472function setFixedWidth(element, width) {
11473 width = formatSize(width);
11474 element.style.width = width.toString();
11475 element.style.maxWidth = width.toString();
11476 element.style.minWidth = width.toString();
11477}
11478function setElementHeight(element, height) {
11479 if (height === 'flex') {
11480 element.style.removeProperty('height');
11481 element.style.removeProperty('minHeight');
11482 element.style.removeProperty('maxHeight');
11483 element.style.flex = '1 1 auto';
11484 }
11485 else {
11486 setFixedHeight(element, height);
11487 }
11488}
11489function setFixedHeight(element, height) {
11490 height = formatSize(height);
11491 element.style.height = height.toString();
11492 element.style.maxHeight = height.toString();
11493 element.style.minHeight = height.toString();
11494}
11495function formatSize(size) {
11496 if (typeof size === 'number') {
11497 return size + "px";
11498 }
11499 return size;
11500}
11501function isNodeOrElement(o) {
11502 return o instanceof Node || o instanceof HTMLElement;
11503}
11504/**
11505 * Makes a copy of a node list into a list
11506 * @param {NodeList} nodeList
11507 * @returns {Node[]}
11508 */
11509function copyNodeList(nodeList) {
11510 if (nodeList == null) {
11511 return [];
11512 }
11513 var result = [];
11514 nodeListForEach(nodeList, function (node) { return result.push(node); });
11515 return result;
11516}
11517function iterateNamedNodeMap(map, callback) {
11518 if (!map) {
11519 return;
11520 }
11521 for (var i = 0; i < map.length; i++) {
11522 var attr = map[i];
11523 callback(attr.name, attr.value);
11524 }
11525}
11526function addOrRemoveAttribute(element, name, value) {
11527 if (value == null) {
11528 element.removeAttribute(name);
11529 }
11530 else {
11531 element.setAttribute(name, value.toString());
11532 }
11533}
11534function nodeListForEach(nodeList, action) {
11535 if (nodeList == null) {
11536 return;
11537 }
11538 for (var i = 0; i < nodeList.length; i++) {
11539 action(nodeList[i]);
11540 }
11541}
11542
11543
11544/***/ }),
11545/* 46 */
11546/***/ (function(module, __webpack_exports__, __webpack_require__) {
11547
11548"use strict";
11549__webpack_require__.r(__webpack_exports__);
11550/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iconNameClassMap", function() { return iconNameClassMap; });
11551/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIcon", function() { return createIcon; });
11552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIconNoSpan", function() { return createIconNoSpan; });
11553/* harmony import */ var _dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45);
11554/* harmony import */ var _aria__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
11555/**
11556 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
11557 * @version v29.2.0
11558 * @link https://www.ag-grid.com/
11559 * @license MIT
11560 */
11561
11562
11563//
11564// IMPORTANT NOTE!
11565//
11566// If you change the list below, copy/paste the new content into the docs page javascript-grid-icons
11567//
11568var iconNameClassMap = {
11569 // header column group shown when expanded (click to contract)
11570 columnGroupOpened: 'expanded',
11571 // header column group shown when contracted (click to expand)
11572 columnGroupClosed: 'contracted',
11573 // tool panel column group contracted (click to expand)
11574 columnSelectClosed: 'tree-closed',
11575 // tool panel column group expanded (click to contract)
11576 columnSelectOpen: 'tree-open',
11577 // column tool panel header expand/collapse all button, shown when some children are expanded and
11578 // others are collapsed
11579 columnSelectIndeterminate: 'tree-indeterminate',
11580 // shown on ghost icon while dragging column to the side of the grid to pin
11581 columnMovePin: 'pin',
11582 // shown on ghost icon while dragging over part of the page that is not a drop zone
11583 columnMoveHide: 'eye-slash',
11584 // shown on ghost icon while dragging columns to reorder
11585 columnMoveMove: 'arrows',
11586 // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling
11587 columnMoveLeft: 'left',
11588 // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling
11589 columnMoveRight: 'right',
11590 // shown on ghost icon while dragging over Row Groups drop zone
11591 columnMoveGroup: 'group',
11592 // shown on ghost icon while dragging over Values drop zone
11593 columnMoveValue: 'aggregation',
11594 // shown on ghost icon while dragging over pivot drop zone
11595 columnMovePivot: 'pivot',
11596 // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.
11597 // string column over aggregation drop zone
11598 dropNotAllowed: 'not-allowed',
11599 // shown on row group when contracted (click to expand)
11600 groupContracted: 'tree-closed',
11601 // shown on row group when expanded (click to contract)
11602 groupExpanded: 'tree-open',
11603 // set filter tree list group contracted (click to expand)
11604 setFilterGroupClosed: 'tree-closed',
11605 // set filter tree list group expanded (click to contract)
11606 setFilterGroupOpen: 'tree-open',
11607 // set filter tree list expand/collapse all button, shown when some children are expanded and
11608 // others are collapsed
11609 setFilterGroupIndeterminate: 'tree-indeterminate',
11610 // context menu chart item
11611 chart: 'chart',
11612 // chart window title bar
11613 close: 'cross',
11614 // X (remove) on column 'pill' after adding it to a drop zone list
11615 cancel: 'cancel',
11616 // indicates the currently active pin state in the "Pin column" sub-menu of the column menu
11617 check: 'tick',
11618 // "go to first" button in pagination controls
11619 first: 'first',
11620 // "go to previous" button in pagination controls
11621 previous: 'previous',
11622 // "go to next" button in pagination controls
11623 next: 'next',
11624 // "go to last" button in pagination controls
11625 last: 'last',
11626 // shown on top right of chart when chart is linked to range data (click to unlink)
11627 linked: 'linked',
11628 // shown on top right of chart when chart is not linked to range data (click to link)
11629 unlinked: 'unlinked',
11630 // "Choose colour" button on chart settings tab
11631 colorPicker: 'color-picker',
11632 // rotating spinner shown by the loading cell renderer
11633 groupLoading: 'loading',
11634 // button to launch enterprise column menu
11635 menu: 'menu',
11636 // filter tool panel tab
11637 filter: 'filter',
11638 // column tool panel tab
11639 columns: 'columns',
11640 // button in chart regular size window title bar (click to maximise)
11641 maximize: 'maximize',
11642 // button in chart maximised window title bar (click to make regular size)
11643 minimize: 'minimize',
11644 // "Pin column" item in column header menu
11645 menuPin: 'pin',
11646 // "Value aggregation" column menu item (shown on numeric columns when grouping is active)"
11647 menuValue: 'aggregation',
11648 // "Group by {column-name}" item in column header menu
11649 menuAddRowGroup: 'group',
11650 // "Un-Group by {column-name}" item in column header menu
11651 menuRemoveRowGroup: 'group',
11652 // context menu copy item
11653 clipboardCopy: 'copy',
11654 // context menu cut item
11655 clipboardCut: 'cut',
11656 // context menu paste item
11657 clipboardPaste: 'paste',
11658 // identifies the pivot drop zone
11659 pivotPanel: 'pivot',
11660 // "Row groups" drop zone in column tool panel
11661 rowGroupPanel: 'group',
11662 // columns tool panel Values drop zone
11663 valuePanel: 'aggregation',
11664 // drag handle used to pick up draggable columns
11665 columnDrag: 'grip',
11666 // drag handle used to pick up draggable rows
11667 rowDrag: 'grip',
11668 // context menu export item
11669 save: 'save',
11670 // csv export
11671 csvExport: 'csv',
11672 // excel export,
11673 excelExport: 'excel',
11674 // icon on dropdown editors
11675 smallDown: 'small-down',
11676 // version of small-right used in RTL mode
11677 smallLeft: 'small-left',
11678 // separater between column 'pills' when you add multiple columns to the header drop zone
11679 smallRight: 'small-right',
11680 smallUp: 'small-up',
11681 // show on column header when column is sorted ascending
11682 sortAscending: 'asc',
11683 // show on column header when column is sorted descending
11684 sortDescending: 'desc',
11685 // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true
11686 sortUnSort: 'none'
11687};
11688/**
11689 * If icon provided, use this (either a string, or a function callback).
11690 * if not, then use the default icon from the theme
11691 * @param {string} iconName
11692 * @param {GridOptionsService} gridOptionsService
11693 * @param {Column | null} [column]
11694 * @returns {HTMLElement}
11695 */
11696function createIcon(iconName, gridOptionsService, column) {
11697 var iconContents = createIconNoSpan(iconName, gridOptionsService, column);
11698 if (iconContents && iconContents.className.indexOf('ag-icon') > -1) {
11699 return iconContents;
11700 }
11701 var eResult = document.createElement('span');
11702 eResult.appendChild(iconContents);
11703 return eResult;
11704}
11705function createIconNoSpan(iconName, gridOptionsService, column, forceCreate) {
11706 var userProvidedIcon = null;
11707 // check col for icon first
11708 var icons = column && column.getColDef().icons;
11709 if (icons) {
11710 userProvidedIcon = icons[iconName];
11711 }
11712 // if not in col, try grid options
11713 if (gridOptionsService && !userProvidedIcon) {
11714 var optionsIcons = gridOptionsService.get('icons');
11715 if (optionsIcons) {
11716 userProvidedIcon = optionsIcons[iconName];
11717 }
11718 }
11719 // now if user provided, use it
11720 if (userProvidedIcon) {
11721 var rendererResult = void 0;
11722 if (typeof userProvidedIcon === 'function') {
11723 rendererResult = userProvidedIcon();
11724 }
11725 else if (typeof userProvidedIcon === 'string') {
11726 rendererResult = userProvidedIcon;
11727 }
11728 else {
11729 throw new Error('icon from grid options needs to be a string or a function');
11730 }
11731 if (typeof rendererResult === 'string') {
11732 return Object(_dom__WEBPACK_IMPORTED_MODULE_0__["loadTemplate"])(rendererResult);
11733 }
11734 if (Object(_dom__WEBPACK_IMPORTED_MODULE_0__["isNodeOrElement"])(rendererResult)) {
11735 return rendererResult;
11736 }
11737 console.warn('AG Grid: iconRenderer should return back a string or a dom object');
11738 }
11739 else {
11740 var span = document.createElement('span');
11741 var cssClass = iconNameClassMap[iconName];
11742 if (!cssClass) {
11743 if (!forceCreate) {
11744 console.warn("AG Grid: Did not find icon " + iconName);
11745 cssClass = '';
11746 }
11747 else {
11748 cssClass = iconName;
11749 }
11750 }
11751 span.setAttribute('class', "ag-icon ag-icon-" + cssClass);
11752 span.setAttribute('unselectable', 'on');
11753 Object(_aria__WEBPACK_IMPORTED_MODULE_1__["setAriaRole"])(span, 'presentation');
11754 return span;
11755 }
11756}
11757
11758
11759/***/ }),
11760/* 47 */
11761/***/ (function(module, __webpack_exports__, __webpack_require__) {
11762
11763"use strict";
11764__webpack_require__.r(__webpack_exports__);
11765/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEventFromPrintableCharacter", function() { return isEventFromPrintableCharacter; });
11766/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUserSuppressingKeyboardEvent", function() { return isUserSuppressingKeyboardEvent; });
11767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isUserSuppressingHeaderKeyboardEvent", function() { return isUserSuppressingHeaderKeyboardEvent; });
11768/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "normaliseQwertyAzerty", function() { return normaliseQwertyAzerty; });
11769/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDeleteKey", function() { return isDeleteKey; });
11770/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
11771/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
11772/* harmony import */ var _generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
11773/**
11774 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
11775 * @version v29.2.0
11776 * @link https://www.ag-grid.com/
11777 * @license MIT
11778 */
11779
11780
11781
11782var A_KEYCODE = 65;
11783var C_KEYCODE = 67;
11784var V_KEYCODE = 86;
11785var D_KEYCODE = 68;
11786var Z_KEYCODE = 90;
11787var Y_KEYCODE = 89;
11788function isEventFromPrintableCharacter(event) {
11789 // no allowed printable chars have alt or ctrl key combinations
11790 if (event.altKey || event.ctrlKey || event.metaKey) {
11791 return false;
11792 }
11793 // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.
11794 // non-printable characters have names, eg 'Enter' or 'Backspace'.
11795 var printableCharacter = event.key.length === 1;
11796 return printableCharacter;
11797}
11798/**
11799 * Allows user to tell the grid to skip specific keyboard events
11800 * @param {GridOptionsService} gridOptionsService
11801 * @param {KeyboardEvent} keyboardEvent
11802 * @param {IRowNode} rowNode
11803 * @param {Column} column
11804 * @param {boolean} editing
11805 * @returns {boolean}
11806 */
11807function isUserSuppressingKeyboardEvent(gridOptionsService, keyboardEvent, rowNode, column, editing) {
11808 var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;
11809 // if no callbacks provided by user, then do nothing
11810 if (!colDefFunc) {
11811 return false;
11812 }
11813 var params = {
11814 event: keyboardEvent,
11815 editing: editing,
11816 column: column,
11817 api: gridOptionsService.api,
11818 node: rowNode,
11819 data: rowNode.data,
11820 colDef: column.getColDef(),
11821 context: gridOptionsService.context,
11822 columnApi: gridOptionsService.columnApi
11823 };
11824 // colDef get first preference on suppressing events
11825 if (colDefFunc) {
11826 var colDefFuncResult = colDefFunc(params);
11827 // if colDef func suppressed, then return now, no need to call gridOption func
11828 if (colDefFuncResult) {
11829 return true;
11830 }
11831 }
11832 // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions
11833 return false;
11834}
11835function isUserSuppressingHeaderKeyboardEvent(gridOptionsService, keyboardEvent, headerRowIndex, column) {
11836 var colDef = column.getDefinition();
11837 var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;
11838 if (!Object(_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(colDefFunc)) {
11839 return false;
11840 }
11841 var params = {
11842 api: gridOptionsService.api,
11843 columnApi: gridOptionsService.columnApi,
11844 context: gridOptionsService.context,
11845 colDef: colDef,
11846 column: column,
11847 headerRowIndex: headerRowIndex,
11848 event: keyboardEvent
11849 };
11850 return !!colDefFunc(params);
11851}
11852function normaliseQwertyAzerty(keyboardEvent) {
11853 var keyCode = keyboardEvent.keyCode;
11854 var code;
11855 switch (keyCode) {
11856 case A_KEYCODE:
11857 code = _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].A;
11858 break;
11859 case C_KEYCODE:
11860 code = _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].C;
11861 break;
11862 case V_KEYCODE:
11863 code = _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].V;
11864 break;
11865 case D_KEYCODE:
11866 code = _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].D;
11867 break;
11868 case Z_KEYCODE:
11869 code = _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].Z;
11870 break;
11871 case Y_KEYCODE:
11872 code = _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].Y;
11873 break;
11874 default:
11875 code = keyboardEvent.code;
11876 }
11877 return code;
11878}
11879function isDeleteKey(key, alwaysReturnFalseOnBackspace) {
11880 if (alwaysReturnFalseOnBackspace === void 0) { alwaysReturnFalseOnBackspace = false; }
11881 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].DELETE) {
11882 return true;
11883 }
11884 if (!alwaysReturnFalseOnBackspace && key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].BACKSPACE) {
11885 return Object(_browser__WEBPACK_IMPORTED_MODULE_1__["isMacOsUserAgent"])();
11886 }
11887 return false;
11888}
11889
11890
11891/***/ }),
11892/* 48 */
11893/***/ (function(module, __webpack_exports__, __webpack_require__) {
11894
11895"use strict";
11896__webpack_require__.r(__webpack_exports__);
11897/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return KeyCode; });
11898/**
11899 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
11900 * @version v29.2.0
11901 * @link https://www.ag-grid.com/
11902 * @license MIT
11903 */
11904var KeyCode = /** @class */ (function () {
11905 function KeyCode() {
11906 }
11907 KeyCode.BACKSPACE = 'Backspace';
11908 KeyCode.TAB = 'Tab';
11909 KeyCode.ENTER = 'Enter';
11910 KeyCode.ESCAPE = 'Escape';
11911 KeyCode.SPACE = ' ';
11912 KeyCode.LEFT = 'ArrowLeft';
11913 KeyCode.UP = 'ArrowUp';
11914 KeyCode.RIGHT = 'ArrowRight';
11915 KeyCode.DOWN = 'ArrowDown';
11916 KeyCode.DELETE = 'Delete';
11917 KeyCode.F2 = 'F2';
11918 KeyCode.PAGE_UP = 'PageUp';
11919 KeyCode.PAGE_DOWN = 'PageDown';
11920 KeyCode.PAGE_HOME = 'Home';
11921 KeyCode.PAGE_END = 'End';
11922 // these should be used with `event.code` instead of `event.key`
11923 // as `event.key` changes when non-latin keyboards are used
11924 KeyCode.A = 'KeyA';
11925 KeyCode.C = 'KeyC';
11926 KeyCode.D = 'KeyD';
11927 KeyCode.V = 'KeyV';
11928 KeyCode.X = 'KeyX';
11929 KeyCode.Y = 'KeyY';
11930 KeyCode.Z = 'KeyZ';
11931 return KeyCode;
11932}());
11933
11934
11935
11936/***/ }),
11937/* 49 */
11938/***/ (function(module, __webpack_exports__, __webpack_require__) {
11939
11940"use strict";
11941__webpack_require__.r(__webpack_exports__);
11942/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "areEventsNear", function() { return areEventsNear; });
11943/**
11944 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
11945 * @version v29.2.0
11946 * @link https://www.ag-grid.com/
11947 * @license MIT
11948 */
11949/**
11950 * `True` if the event is close to the original event by X pixels either vertically or horizontally.
11951 * we only start dragging after X pixels so this allows us to know if we should start dragging yet.
11952 * @param {MouseEvent | TouchEvent} e1
11953 * @param {MouseEvent | TouchEvent} e2
11954 * @param {number} pixelCount
11955 * @returns {boolean}
11956 */
11957function areEventsNear(e1, e2, pixelCount) {
11958 // by default, we wait 4 pixels before starting the drag
11959 if (pixelCount === 0) {
11960 return false;
11961 }
11962 var diffX = Math.abs(e1.clientX - e2.clientX);
11963 var diffY = Math.abs(e1.clientY - e2.clientY);
11964 return Math.max(diffX, diffY) <= pixelCount;
11965}
11966
11967
11968/***/ }),
11969/* 50 */
11970/***/ (function(module, __webpack_exports__, __webpack_require__) {
11971
11972"use strict";
11973__webpack_require__.r(__webpack_exports__);
11974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sortRowNodesByOrder", function() { return sortRowNodesByOrder; });
11975/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "traverseNodesWithKey", function() { return traverseNodesWithKey; });
11976/**
11977 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
11978 * @version v29.2.0
11979 * @link https://www.ag-grid.com/
11980 * @license MIT
11981 */
11982/**
11983 * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.
11984 * when in ClientSideNodeManager we always have indexes (as this sorts the items the
11985 * user provided) but when in GroupStage, the nodes can contain filler nodes that
11986 * don't have order id's
11987 * @param {RowNode[]} rowNodes
11988 * @param {Object} rowNodeOrder
11989 *
11990 * @returns a boolean representing whether nodes were reordered
11991 */
11992function sortRowNodesByOrder(rowNodes, rowNodeOrder) {
11993 if (!rowNodes) {
11994 return false;
11995 }
11996 var comparator = function (nodeA, nodeB) {
11997 var positionA = rowNodeOrder[nodeA.id];
11998 var positionB = rowNodeOrder[nodeB.id];
11999 var aHasIndex = positionA !== undefined;
12000 var bHasIndex = positionB !== undefined;
12001 var bothNodesAreUserNodes = aHasIndex && bHasIndex;
12002 var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;
12003 if (bothNodesAreUserNodes) {
12004 // when comparing two nodes the user has provided, they always
12005 // have indexes
12006 return positionA - positionB;
12007 }
12008 if (bothNodesAreFillerNodes) {
12009 // when comparing two filler nodes, we have no index to compare them
12010 // against, however we want this sorting to be deterministic, so that
12011 // the rows don't jump around as the user does delta updates. so we
12012 // want the same sort result. so we use the __objectId - which doesn't make sense
12013 // from a sorting point of view, but does give consistent behaviour between
12014 // calls. otherwise groups jump around as delta updates are done.
12015 // note: previously here we used nodeId, however this gave a strange order
12016 // as string ordering of numbers is wrong, so using id based on creation order
12017 // as least gives better looking order.
12018 return nodeA.__objectId - nodeB.__objectId;
12019 }
12020 if (aHasIndex) {
12021 return 1;
12022 }
12023 return -1;
12024 };
12025 // check if the list first needs sorting
12026 var rowNodeA;
12027 var rowNodeB;
12028 var atLeastOneOutOfOrder = false;
12029 for (var i = 0; i < rowNodes.length - 1; i++) {
12030 rowNodeA = rowNodes[i];
12031 rowNodeB = rowNodes[i + 1];
12032 if (comparator(rowNodeA, rowNodeB) > 0) {
12033 atLeastOneOutOfOrder = true;
12034 break;
12035 }
12036 }
12037 if (atLeastOneOutOfOrder) {
12038 rowNodes.sort(comparator);
12039 return true;
12040 }
12041 return false;
12042}
12043function traverseNodesWithKey(nodes, callback) {
12044 var keyParts = [];
12045 recursiveSearchNodes(nodes);
12046 function recursiveSearchNodes(currentNodes) {
12047 if (!currentNodes) {
12048 return;
12049 }
12050 currentNodes.forEach(function (node) {
12051 // also checking for children for tree data
12052 if (node.group || node.hasChildren()) {
12053 keyParts.push(node.key);
12054 var key = keyParts.join('|');
12055 callback(node, key);
12056 recursiveSearchNodes(node.childrenAfterGroup);
12057 keyParts.pop();
12058 }
12059 });
12060 }
12061}
12062
12063
12064/***/ }),
12065/* 51 */
12066/***/ (function(module, __webpack_exports__, __webpack_require__) {
12067
12068"use strict";
12069__webpack_require__.r(__webpack_exports__);
12070/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertToSet", function() { return convertToSet; });
12071/**
12072 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12073 * @version v29.2.0
12074 * @link https://www.ag-grid.com/
12075 * @license MIT
12076 */
12077function convertToSet(list) {
12078 var set = new Set();
12079 list.forEach(function (x) { return set.add(x); });
12080 return set;
12081}
12082
12083
12084/***/ }),
12085/* 52 */
12086/***/ (function(module, __webpack_exports__, __webpack_require__) {
12087
12088"use strict";
12089__webpack_require__.r(__webpack_exports__);
12090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return NumberSequence; });
12091/**
12092 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12093 * @version v29.2.0
12094 * @link https://www.ag-grid.com/
12095 * @license MIT
12096 */
12097var NumberSequence = /** @class */ (function () {
12098 function NumberSequence(initValue, step) {
12099 if (initValue === void 0) { initValue = 0; }
12100 if (step === void 0) { step = 1; }
12101 this.nextValue = initValue;
12102 this.step = step;
12103 }
12104 NumberSequence.prototype.next = function () {
12105 var valToReturn = this.nextValue;
12106 this.nextValue += this.step;
12107 return valToReturn;
12108 };
12109 NumberSequence.prototype.peek = function () {
12110 return this.nextValue;
12111 };
12112 NumberSequence.prototype.skip = function (count) {
12113 this.nextValue += count;
12114 };
12115 return NumberSequence;
12116}());
12117
12118
12119
12120/***/ }),
12121/* 53 */
12122/***/ (function(module, __webpack_exports__, __webpack_require__) {
12123
12124"use strict";
12125__webpack_require__.r(__webpack_exports__);
12126/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return AgPromiseStatus; });
12127/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return AgPromise; });
12128/**
12129 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12130 * @version v29.2.0
12131 * @link https://www.ag-grid.com/
12132 * @license MIT
12133 */
12134var AgPromiseStatus;
12135(function (AgPromiseStatus) {
12136 AgPromiseStatus[AgPromiseStatus["IN_PROGRESS"] = 0] = "IN_PROGRESS";
12137 AgPromiseStatus[AgPromiseStatus["RESOLVED"] = 1] = "RESOLVED";
12138})(AgPromiseStatus || (AgPromiseStatus = {}));
12139var AgPromise = /** @class */ (function () {
12140 function AgPromise(callback) {
12141 var _this = this;
12142 this.status = AgPromiseStatus.IN_PROGRESS;
12143 this.resolution = null;
12144 this.waiters = [];
12145 callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });
12146 }
12147 AgPromise.all = function (promises) {
12148 return new AgPromise(function (resolve) {
12149 var remainingToResolve = promises.length;
12150 var combinedValues = new Array(remainingToResolve);
12151 promises.forEach(function (promise, index) {
12152 promise.then(function (value) {
12153 combinedValues[index] = value;
12154 remainingToResolve--;
12155 if (remainingToResolve === 0) {
12156 resolve(combinedValues);
12157 }
12158 });
12159 });
12160 });
12161 };
12162 AgPromise.resolve = function (value) {
12163 if (value === void 0) { value = null; }
12164 return new AgPromise(function (resolve) { return resolve(value); });
12165 };
12166 AgPromise.prototype.then = function (func) {
12167 var _this = this;
12168 return new AgPromise(function (resolve) {
12169 if (_this.status === AgPromiseStatus.RESOLVED) {
12170 resolve(func(_this.resolution));
12171 }
12172 else {
12173 _this.waiters.push(function (value) { return resolve(func(value)); });
12174 }
12175 });
12176 };
12177 AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {
12178 return this.status === AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;
12179 };
12180 AgPromise.prototype.onDone = function (value) {
12181 this.status = AgPromiseStatus.RESOLVED;
12182 this.resolution = value;
12183 this.waiters.forEach(function (waiter) { return waiter(value); });
12184 };
12185 AgPromise.prototype.onReject = function (params) {
12186 console.warn('TBI');
12187 };
12188 return AgPromise;
12189}());
12190
12191
12192
12193/***/ }),
12194/* 54 */
12195/***/ (function(module, __webpack_exports__, __webpack_require__) {
12196
12197"use strict";
12198__webpack_require__.r(__webpack_exports__);
12199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return Timer; });
12200/**
12201 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12202 * @version v29.2.0
12203 * @link https://www.ag-grid.com/
12204 * @license MIT
12205 */
12206/**
12207 * A Util Class only used when debugging for printing time to console
12208 */
12209var Timer = /** @class */ (function () {
12210 function Timer() {
12211 this.timestamp = new Date().getTime();
12212 }
12213 Timer.prototype.print = function (msg) {
12214 var duration = (new Date().getTime()) - this.timestamp;
12215 console.info(msg + " = " + duration);
12216 this.timestamp = new Date().getTime();
12217 };
12218 return Timer;
12219}());
12220
12221
12222
12223/***/ }),
12224/* 55 */
12225/***/ (function(module, __webpack_exports__, __webpack_require__) {
12226
12227"use strict";
12228__webpack_require__.r(__webpack_exports__);
12229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CustomTooltipFeature", function() { return CustomTooltipFeature; });
12230/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
12231/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
12232/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
12233/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
12234/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31);
12235/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
12236/**
12237 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12238 * @version v29.2.0
12239 * @link https://www.ag-grid.com/
12240 * @license MIT
12241 */
12242var __extends = (undefined && undefined.__extends) || (function () {
12243 var extendStatics = function (d, b) {
12244 extendStatics = Object.setPrototypeOf ||
12245 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
12246 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
12247 return extendStatics(d, b);
12248 };
12249 return function (d, b) {
12250 extendStatics(d, b);
12251 function __() { this.constructor = d; }
12252 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12253 };
12254})();
12255var __assign = (undefined && undefined.__assign) || function () {
12256 __assign = Object.assign || function(t) {
12257 for (var s, i = 1, n = arguments.length; i < n; i++) {
12258 s = arguments[i];
12259 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12260 t[p] = s[p];
12261 }
12262 return t;
12263 };
12264 return __assign.apply(this, arguments);
12265};
12266var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12267 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12268 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12269 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;
12270 return c > 3 && r && Object.defineProperty(target, key, r), r;
12271};
12272
12273
12274
12275
12276
12277
12278var TooltipStates;
12279(function (TooltipStates) {
12280 TooltipStates[TooltipStates["NOTHING"] = 0] = "NOTHING";
12281 TooltipStates[TooltipStates["WAITING_TO_SHOW"] = 1] = "WAITING_TO_SHOW";
12282 TooltipStates[TooltipStates["SHOWING"] = 2] = "SHOWING";
12283})(TooltipStates || (TooltipStates = {}));
12284var CustomTooltipFeature = /** @class */ (function (_super) {
12285 __extends(CustomTooltipFeature, _super);
12286 function CustomTooltipFeature(parentComp) {
12287 var _this = _super.call(this) || this;
12288 _this.DEFAULT_SHOW_TOOLTIP_DELAY = 2000;
12289 _this.DEFAULT_HIDE_TOOLTIP_DELAY = 10000;
12290 _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;
12291 _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;
12292 _this.state = TooltipStates.NOTHING;
12293 // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to
12294 // async we could request two tooltips before the first instance returns, in which case we should
12295 // disregard the second instance.
12296 _this.tooltipInstanceCount = 0;
12297 _this.tooltipMouseTrack = false;
12298 _this.parentComp = parentComp;
12299 return _this;
12300 }
12301 CustomTooltipFeature.prototype.postConstruct = function () {
12302 this.tooltipShowDelay = this.getTooltipDelay('show') || this.DEFAULT_SHOW_TOOLTIP_DELAY;
12303 this.tooltipHideDelay = this.getTooltipDelay('hide') || this.DEFAULT_HIDE_TOOLTIP_DELAY;
12304 this.tooltipMouseTrack = this.gridOptionsService.is('tooltipMouseTrack');
12305 var el = this.parentComp.getGui();
12306 this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));
12307 this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));
12308 this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));
12309 this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));
12310 this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));
12311 };
12312 CustomTooltipFeature.prototype.destroy = function () {
12313 // if this component gets destroyed while tooltip is showing, need to make sure
12314 // we don't end with no mouseLeave event resulting in zombie tooltip
12315 this.setToDoNothing();
12316 _super.prototype.destroy.call(this);
12317 };
12318 CustomTooltipFeature.prototype.onMouseEnter = function (e) {
12319 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isIOSUserAgent"])()) {
12320 return;
12321 }
12322 // every mouseenter should be following by a mouseleave, however for some unkonwn, it's possible for
12323 // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported
12324 // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if
12325 // state is !=nothing, then we know mouseenter was already received.
12326 if (this.state != TooltipStates.NOTHING) {
12327 return;
12328 }
12329 // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time
12330 var delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;
12331 this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);
12332 this.lastMouseEvent = e;
12333 this.state = TooltipStates.WAITING_TO_SHOW;
12334 };
12335 CustomTooltipFeature.prototype.onMouseLeave = function () {
12336 this.setToDoNothing();
12337 };
12338 CustomTooltipFeature.prototype.onKeyDown = function () {
12339 this.setToDoNothing();
12340 };
12341 CustomTooltipFeature.prototype.setToDoNothing = function () {
12342 if (this.state === TooltipStates.SHOWING) {
12343 this.hideTooltip();
12344 }
12345 this.clearTimeouts();
12346 this.state = TooltipStates.NOTHING;
12347 };
12348 CustomTooltipFeature.prototype.onMouseMove = function (e) {
12349 // there is a delay from the time we mouseOver a component and the time the
12350 // tooltip is displayed, so we need to track mousemove to be able to correctly
12351 // position the tooltip when showTooltip is called.
12352 this.lastMouseEvent = e;
12353 if (this.tooltipMouseTrack &&
12354 this.state === TooltipStates.SHOWING &&
12355 this.tooltipComp) {
12356 this.positionTooltipUnderLastMouseEvent();
12357 }
12358 };
12359 CustomTooltipFeature.prototype.onMouseDown = function () {
12360 this.setToDoNothing();
12361 };
12362 CustomTooltipFeature.prototype.getTooltipDelay = function (type) {
12363 var tooltipShowDelay = this.gridOptionsService.getNum('tooltipShowDelay');
12364 var tooltipHideDelay = this.gridOptionsService.getNum('tooltipHideDelay');
12365 var delay = type === 'show' ? tooltipShowDelay : tooltipHideDelay;
12366 var capitalisedType = Object(_utils_string__WEBPACK_IMPORTED_MODULE_4__["capitalise"])(type);
12367 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(delay)) {
12368 if (delay < 0) {
12369 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["doOnce"])(function () { return console.warn("AG Grid: tooltip" + capitalisedType + "Delay should not be lower than 0"); }, "tooltip" + capitalisedType + "DelayWarn");
12370 }
12371 return Math.max(200, delay);
12372 }
12373 return null;
12374 };
12375 CustomTooltipFeature.prototype.hideTooltip = function () {
12376 // check if comp exists - due to async, although we asked for
12377 // one, the instance may not be back yet
12378 if (this.tooltipComp) {
12379 this.destroyTooltipComp();
12380 CustomTooltipFeature.lastTooltipHideTime = new Date().getTime();
12381 }
12382 this.state = TooltipStates.NOTHING;
12383 };
12384 CustomTooltipFeature.prototype.destroyTooltipComp = function () {
12385 var _this = this;
12386 // add class to fade out the tooltip
12387 this.tooltipComp.getGui().classList.add('ag-tooltip-hiding');
12388 // make local copies of these variables, as we use them in the async function below,
12389 // and we clear then to 'undefined' later, so need to take a copy before they are undefined.
12390 var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;
12391 var tooltipComp = this.tooltipComp;
12392 window.setTimeout(function () {
12393 tooltipPopupDestroyFunc();
12394 _this.getContext().destroyBean(tooltipComp);
12395 }, this.FADE_OUT_TOOLTIP_TIMEOUT);
12396 this.tooltipPopupDestroyFunc = undefined;
12397 this.tooltipComp = undefined;
12398 };
12399 CustomTooltipFeature.prototype.isLastTooltipHiddenRecently = function () {
12400 // return true if <1000ms since last time we hid a tooltip
12401 var now = new Date().getTime();
12402 var then = CustomTooltipFeature.lastTooltipHideTime;
12403 return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;
12404 };
12405 CustomTooltipFeature.prototype.showTooltip = function () {
12406 var params = __assign({}, this.parentComp.getTooltipParams());
12407 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value)) {
12408 this.setToDoNothing();
12409 return;
12410 }
12411 this.state = TooltipStates.SHOWING;
12412 this.tooltipInstanceCount++;
12413 // we pass in tooltipInstanceCount so the callback knows what the count was when
12414 // we requested the tooltip, so if another tooltip was requested in the mean time
12415 // we disregard it
12416 var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);
12417 var userDetails = this.userComponentFactory.getTooltipCompDetails(params);
12418 userDetails.newAgStackInstance().then(callback);
12419 };
12420 CustomTooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {
12421 var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;
12422 if (compNoLongerNeeded) {
12423 this.getContext().destroyBean(tooltipComp);
12424 return;
12425 }
12426 var eGui = tooltipComp.getGui();
12427 this.tooltipComp = tooltipComp;
12428 if (!eGui.classList.contains('ag-tooltip')) {
12429 eGui.classList.add('ag-tooltip-custom');
12430 }
12431 var translate = this.localeService.getLocaleTextFunc();
12432 var addPopupRes = this.popupService.addPopup({
12433 eChild: eGui,
12434 ariaLabel: translate('ariaLabelTooltip', 'Tooltip')
12435 });
12436 if (addPopupRes) {
12437 this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;
12438 }
12439 // this.tooltipPopupDestroyFunc = this.popupService.addPopup(false, eGui, false);
12440 this.positionTooltipUnderLastMouseEvent();
12441 this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.tooltipHideDelay);
12442 };
12443 CustomTooltipFeature.prototype.positionTooltipUnderLastMouseEvent = function () {
12444 this.popupService.positionPopupUnderMouseEvent({
12445 type: 'tooltip',
12446 mouseEvent: this.lastMouseEvent,
12447 ePopup: this.tooltipComp.getGui(),
12448 nudgeY: 18,
12449 skipObserver: this.tooltipMouseTrack
12450 });
12451 };
12452 CustomTooltipFeature.prototype.clearTimeouts = function () {
12453 if (this.showTooltipTimeoutId) {
12454 window.clearTimeout(this.showTooltipTimeoutId);
12455 this.showTooltipTimeoutId = undefined;
12456 }
12457 if (this.hideTooltipTimeoutId) {
12458 window.clearTimeout(this.hideTooltipTimeoutId);
12459 this.hideTooltipTimeoutId = undefined;
12460 }
12461 };
12462 __decorate([
12463 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
12464 ], CustomTooltipFeature.prototype, "popupService", void 0);
12465 __decorate([
12466 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
12467 ], CustomTooltipFeature.prototype, "userComponentFactory", void 0);
12468 __decorate([
12469 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
12470 ], CustomTooltipFeature.prototype, "columnApi", void 0);
12471 __decorate([
12472 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
12473 ], CustomTooltipFeature.prototype, "gridApi", void 0);
12474 __decorate([
12475 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
12476 ], CustomTooltipFeature.prototype, "postConstruct", null);
12477 return CustomTooltipFeature;
12478}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
12479
12480
12481
12482/***/ }),
12483/* 56 */
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__, "CssClassManager", function() { return CssClassManager; });
12489/**
12490 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12491 * @version v29.2.0
12492 * @link https://www.ag-grid.com/
12493 * @license MIT
12494 */
12495var CssClassManager = /** @class */ (function () {
12496 function CssClassManager(getGui) {
12497 // to minimise DOM hits, we only apply CSS classes if they have changed. as adding a CSS class that is already
12498 // there, or removing one that wasn't present, all takes CPU.
12499 this.cssClassStates = {};
12500 this.getGui = getGui;
12501 }
12502 CssClassManager.prototype.addCssClass = function (className) {
12503 var _this = this;
12504 var list = (className || '').split(' ');
12505 if (list.length > 1) {
12506 list.forEach(function (cls) { return _this.addCssClass(cls); });
12507 return;
12508 }
12509 var updateNeeded = this.cssClassStates[className] !== true;
12510 if (updateNeeded && className.length) {
12511 var eGui = this.getGui();
12512 if (eGui) {
12513 eGui.classList.add(className);
12514 }
12515 this.cssClassStates[className] = true;
12516 }
12517 };
12518 CssClassManager.prototype.removeCssClass = function (className) {
12519 var _this = this;
12520 var list = (className || '').split(' ');
12521 if (list.length > 1) {
12522 list.forEach(function (cls) { return _this.removeCssClass(cls); });
12523 return;
12524 }
12525 var updateNeeded = this.cssClassStates[className] !== false;
12526 if (updateNeeded && className.length) {
12527 var eGui = this.getGui();
12528 if (eGui) {
12529 eGui.classList.remove(className);
12530 }
12531 this.cssClassStates[className] = false;
12532 }
12533 };
12534 CssClassManager.prototype.containsCssClass = function (className) {
12535 var eGui = this.getGui();
12536 if (!eGui) {
12537 return false;
12538 }
12539 return eGui.classList.contains(className);
12540 };
12541 CssClassManager.prototype.addOrRemoveCssClass = function (className, addOrRemove) {
12542 var _this = this;
12543 if (!className) {
12544 return;
12545 }
12546 // we check for spaces before doing the split, as doing the split
12547 // created a performance problem (on windows only, see AG-6765)
12548 if (className.indexOf(' ') >= 0) {
12549 var list = (className || '').split(' ');
12550 if (list.length > 1) {
12551 list.forEach(function (cls) { return _this.addOrRemoveCssClass(cls, addOrRemove); });
12552 return;
12553 }
12554 }
12555 var updateNeeded = this.cssClassStates[className] !== addOrRemove;
12556 if (updateNeeded && className.length) {
12557 var eGui = this.getGui();
12558 if (eGui) {
12559 eGui.classList.toggle(className, addOrRemove);
12560 }
12561 this.cssClassStates[className] = addOrRemove;
12562 }
12563 };
12564 return CssClassManager;
12565}());
12566
12567
12568
12569/***/ }),
12570/* 57 */
12571/***/ (function(module, __webpack_exports__, __webpack_require__) {
12572
12573"use strict";
12574__webpack_require__.r(__webpack_exports__);
12575/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return QuerySelector; });
12576/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return RefSelector; });
12577/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13);
12578/**
12579 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12580 * @version v29.2.0
12581 * @link https://www.ag-grid.com/
12582 * @license MIT
12583 */
12584
12585function QuerySelector(selector) {
12586 return querySelectorFunc.bind(this, selector, undefined);
12587}
12588function RefSelector(ref) {
12589 return querySelectorFunc.bind(this, "[ref=" + ref + "]", ref);
12590}
12591function querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {
12592 if (selector === null) {
12593 console.error('AG Grid: QuerySelector selector should not be null');
12594 return;
12595 }
12596 if (typeof index === 'number') {
12597 console.error('AG Grid: QuerySelector should be on an attribute');
12598 return;
12599 }
12600 addToObjectProps(classPrototype, 'querySelectors', {
12601 attributeName: methodOrAttributeName,
12602 querySelector: selector,
12603 refSelector: refSelector
12604 });
12605}
12606// // think we should take this out, put property bindings on the
12607// export function Method(eventName?: string): Function {
12608// return methodFunc.bind(this, eventName);
12609// }
12610//
12611// function methodFunc(alias: string, target: Object, methodName: string) {
12612// if (alias === null) {
12613// console.error("AG Grid: EventListener eventName should not be null");
12614// return;
12615// }
12616//
12617// addToObjectProps(target, 'methods', {
12618// methodName: methodName,
12619// alias: alias
12620// });
12621// }
12622function addToObjectProps(target, key, value) {
12623 // it's an attribute on the class
12624 var props = getOrCreateProps(target, Object(_utils_function__WEBPACK_IMPORTED_MODULE_0__["getFunctionName"])(target.constructor));
12625 if (!props[key]) {
12626 props[key] = [];
12627 }
12628 props[key].push(value);
12629}
12630function getOrCreateProps(target, instanceName) {
12631 if (!target.__agComponentMetaData) {
12632 target.__agComponentMetaData = {};
12633 }
12634 if (!target.__agComponentMetaData[instanceName]) {
12635 target.__agComponentMetaData[instanceName] = {};
12636 }
12637 return target.__agComponentMetaData[instanceName];
12638}
12639
12640
12641/***/ }),
12642/* 58 */
12643/***/ (function(module, __webpack_exports__, __webpack_require__) {
12644
12645"use strict";
12646__webpack_require__.r(__webpack_exports__);
12647/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFilterModelFormatter", function() { return DateFilterModelFormatter; });
12648/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return DateFilter; });
12649/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
12650/* harmony import */ var _dateCompWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59);
12651/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60);
12652/* harmony import */ var _scalarFilter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74);
12653/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(43);
12654/**
12655 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12656 * @version v29.2.0
12657 * @link https://www.ag-grid.com/
12658 * @license MIT
12659 */
12660var __extends = (undefined && undefined.__extends) || (function () {
12661 var extendStatics = function (d, b) {
12662 extendStatics = Object.setPrototypeOf ||
12663 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
12664 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
12665 return extendStatics(d, b);
12666 };
12667 return function (d, b) {
12668 extendStatics(d, b);
12669 function __() { this.constructor = d; }
12670 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12671 };
12672})();
12673var __assign = (undefined && undefined.__assign) || function () {
12674 __assign = Object.assign || function(t) {
12675 for (var s, i = 1, n = arguments.length; i < n; i++) {
12676 s = arguments[i];
12677 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12678 t[p] = s[p];
12679 }
12680 return t;
12681 };
12682 return __assign.apply(this, arguments);
12683};
12684var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12685 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12686 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12687 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;
12688 return c > 3 && r && Object.defineProperty(target, key, r), r;
12689};
12690
12691
12692
12693
12694
12695var DEFAULT_MIN_YEAR = 1000;
12696var DEFAULT_MAX_YEAR = Infinity;
12697var DateFilterModelFormatter = /** @class */ (function (_super) {
12698 __extends(DateFilterModelFormatter, _super);
12699 function DateFilterModelFormatter(dateFilterParams, localeService, optionsFactory) {
12700 var _this = _super.call(this, localeService, optionsFactory) || this;
12701 _this.dateFilterParams = dateFilterParams;
12702 return _this;
12703 }
12704 DateFilterModelFormatter.prototype.conditionToString = function (condition, options) {
12705 var type = condition.type;
12706 var numberOfInputs = (options || {}).numberOfInputs;
12707 var isRange = type == _simpleFilter__WEBPACK_IMPORTED_MODULE_2__["SimpleFilter"].IN_RANGE || numberOfInputs === 2;
12708 var dateFrom = Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["parseDateTimeFromString"])(condition.dateFrom);
12709 var dateTo = Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["parseDateTimeFromString"])(condition.dateTo);
12710 var format = this.dateFilterParams.inRangeFloatingFilterDateFormat;
12711 if (isRange) {
12712 var formattedFrom = dateFrom !== null ? Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["dateToFormattedString"])(dateFrom, format) : 'null';
12713 var formattedTo = dateTo !== null ? Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["dateToFormattedString"])(dateTo, format) : 'null';
12714 return formattedFrom + "-" + formattedTo;
12715 }
12716 if (dateFrom != null) {
12717 return Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["dateToFormattedString"])(dateFrom, format);
12718 }
12719 // cater for when the type doesn't need a value
12720 return "" + type;
12721 };
12722 return DateFilterModelFormatter;
12723}(_simpleFilter__WEBPACK_IMPORTED_MODULE_2__["SimpleFilterModelFormatter"]));
12724
12725var DateFilter = /** @class */ (function (_super) {
12726 __extends(DateFilter, _super);
12727 function DateFilter() {
12728 var _this = _super.call(this, 'dateFilter') || this;
12729 _this.eConditionPanelsFrom = [];
12730 _this.eConditionPanelsTo = [];
12731 _this.dateConditionFromComps = [];
12732 _this.dateConditionToComps = [];
12733 _this.minValidYear = DEFAULT_MIN_YEAR;
12734 _this.maxValidYear = DEFAULT_MAX_YEAR;
12735 return _this;
12736 }
12737 DateFilter.prototype.afterGuiAttached = function (params) {
12738 _super.prototype.afterGuiAttached.call(this, params);
12739 this.dateConditionFromComps[0].afterGuiAttached(params);
12740 };
12741 DateFilter.prototype.mapValuesFromModel = function (filterModel) {
12742 // unlike the other filters, we do two things here:
12743 // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'
12744 // are in different locations in Date and Number filter models)
12745 // 2) convert the type (because Date filter uses Dates, however model is 'string')
12746 //
12747 // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks
12748 // a date from the UI, it will have timezone info in it. This is lost when creating
12749 // the model. When we recreate the date again here, it's without a timezone.
12750 var _a = filterModel || {}, dateFrom = _a.dateFrom, dateTo = _a.dateTo, type = _a.type;
12751 return [
12752 dateFrom && Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["parseDateTimeFromString"])(dateFrom) || null,
12753 dateTo && Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["parseDateTimeFromString"])(dateTo) || null,
12754 ].slice(0, this.getNumberOfInputs(type));
12755 };
12756 DateFilter.prototype.comparator = function () {
12757 return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);
12758 };
12759 DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {
12760 // The default comparator assumes that the cellValue is a date
12761 var cellAsDate = cellValue;
12762 if (cellValue == null || cellAsDate < filterDate) {
12763 return -1;
12764 }
12765 if (cellAsDate > filterDate) {
12766 return 1;
12767 }
12768 return 0;
12769 };
12770 DateFilter.prototype.setParams = function (params) {
12771 this.dateFilterParams = params;
12772 _super.prototype.setParams.call(this, params);
12773 var yearParser = function (param, fallback) {
12774 if (params[param] != null) {
12775 if (!isNaN(params[param])) {
12776 return params[param] == null ? fallback : Number(params[param]);
12777 }
12778 else {
12779 console.warn("AG Grid: DateFilter " + param + " is not a number");
12780 }
12781 }
12782 return fallback;
12783 };
12784 this.minValidYear = yearParser('minValidYear', DEFAULT_MIN_YEAR);
12785 this.maxValidYear = yearParser('maxValidYear', DEFAULT_MAX_YEAR);
12786 if (this.minValidYear > this.maxValidYear) {
12787 console.warn("AG Grid: DateFilter minValidYear should be <= maxValidYear");
12788 }
12789 this.filterModelFormatter = new DateFilterModelFormatter(this.dateFilterParams, this.localeService, this.optionsFactory);
12790 };
12791 DateFilter.prototype.createDateCompWrapper = function (element) {
12792 var _this = this;
12793 var dateCompWrapper = new _dateCompWrapper__WEBPACK_IMPORTED_MODULE_1__["DateCompWrapper"](this.getContext(), this.userComponentFactory, {
12794 onDateChanged: function () { return _this.onUiChanged(); },
12795 filterParams: this.dateFilterParams
12796 }, element);
12797 this.addDestroyFunc(function () { return dateCompWrapper.destroy(); });
12798 return dateCompWrapper;
12799 };
12800 DateFilter.prototype.setElementValue = function (element, value) {
12801 element.setDate(value);
12802 };
12803 DateFilter.prototype.setElementDisplayed = function (element, displayed) {
12804 element.setDisplayed(displayed);
12805 };
12806 DateFilter.prototype.setElementDisabled = function (element, disabled) {
12807 element.setDisabled(disabled);
12808 };
12809 DateFilter.prototype.getDefaultFilterOptions = function () {
12810 return DateFilter.DEFAULT_FILTER_OPTIONS;
12811 };
12812 DateFilter.prototype.createValueElement = function () {
12813 var eCondition = document.createElement('div');
12814 eCondition.classList.add('ag-filter-body');
12815 this.createFromToElement(eCondition, this.eConditionPanelsFrom, this.dateConditionFromComps, 'from');
12816 this.createFromToElement(eCondition, this.eConditionPanelsTo, this.dateConditionToComps, 'to');
12817 return eCondition;
12818 };
12819 DateFilter.prototype.createFromToElement = function (eCondition, eConditionPanels, dateConditionComps, fromTo) {
12820 var eConditionPanel = document.createElement('div');
12821 eConditionPanel.classList.add("ag-filter-" + fromTo);
12822 eConditionPanel.classList.add("ag-filter-date-" + fromTo);
12823 eConditionPanels.push(eConditionPanel);
12824 eCondition.appendChild(eConditionPanel);
12825 dateConditionComps.push(this.createDateCompWrapper(eConditionPanel));
12826 };
12827 DateFilter.prototype.removeValueElements = function (startPosition, deleteCount) {
12828 this.removeDateComps(this.dateConditionFromComps, startPosition, deleteCount);
12829 this.removeDateComps(this.dateConditionToComps, startPosition, deleteCount);
12830 this.removeItems(this.eConditionPanelsFrom, startPosition, deleteCount);
12831 this.removeItems(this.eConditionPanelsTo, startPosition, deleteCount);
12832 };
12833 DateFilter.prototype.removeDateComps = function (components, startPosition, deleteCount) {
12834 var removedComponents = this.removeItems(components, startPosition, deleteCount);
12835 removedComponents.forEach(function (comp) { return comp.destroy(); });
12836 };
12837 DateFilter.prototype.isConditionUiComplete = function (position) {
12838 var _this = this;
12839 if (!_super.prototype.isConditionUiComplete.call(this, position)) {
12840 return false;
12841 }
12842 var isValidDate = function (value) { return value != null
12843 && value.getUTCFullYear() >= _this.minValidYear
12844 && value.getUTCFullYear() <= _this.maxValidYear; };
12845 var valid = true;
12846 this.forEachInput(function (element, index, elPosition, numberOfInputs) {
12847 if (elPosition !== position || !valid || index >= numberOfInputs) {
12848 return;
12849 }
12850 valid = valid && isValidDate(element.getDate());
12851 });
12852 return valid;
12853 };
12854 DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
12855 return aSimple.dateFrom === bSimple.dateFrom
12856 && aSimple.dateTo === bSimple.dateTo
12857 && aSimple.type === bSimple.type;
12858 };
12859 DateFilter.prototype.getFilterType = function () {
12860 return 'date';
12861 };
12862 DateFilter.prototype.createCondition = function (position) {
12863 var type = this.getConditionType(position);
12864 var model = {};
12865 var values = this.getValues(position);
12866 if (values.length > 0) {
12867 model.dateFrom = Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["serialiseDate"])(values[0]);
12868 }
12869 if (values.length > 1) {
12870 model.dateTo = Object(_utils_date__WEBPACK_IMPORTED_MODULE_4__["serialiseDate"])(values[1]);
12871 }
12872 return __assign({ dateFrom: null, dateTo: null, filterType: this.getFilterType(), type: type }, model);
12873 };
12874 DateFilter.prototype.resetPlaceholder = function () {
12875 var globalTranslate = this.localeService.getLocaleTextFunc();
12876 var placeholder = this.translate('dateFormatOoo');
12877 var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');
12878 this.forEachInput(function (element) {
12879 element.setInputPlaceholder(placeholder);
12880 element.setInputAriaLabel(ariaLabel);
12881 });
12882 };
12883 DateFilter.prototype.getInputs = function (position) {
12884 if (position >= this.dateConditionFromComps.length) {
12885 return [null, null];
12886 }
12887 return [this.dateConditionFromComps[position], this.dateConditionToComps[position]];
12888 };
12889 DateFilter.prototype.getValues = function (position) {
12890 var result = [];
12891 this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {
12892 if (index < numberOfInputs) {
12893 result.push(element.getDate());
12894 }
12895 });
12896 return result;
12897 };
12898 DateFilter.prototype.getModelAsString = function (model) {
12899 var _a;
12900 return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';
12901 };
12902 DateFilter.DEFAULT_FILTER_OPTIONS = [
12903 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].EQUALS,
12904 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].GREATER_THAN,
12905 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].LESS_THAN,
12906 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].NOT_EQUAL,
12907 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].IN_RANGE,
12908 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].BLANK,
12909 _scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"].NOT_BLANK,
12910 ];
12911 __decorate([
12912 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
12913 ], DateFilter.prototype, "userComponentFactory", void 0);
12914 return DateFilter;
12915}(_scalarFilter__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"]));
12916
12917
12918
12919/***/ }),
12920/* 59 */
12921/***/ (function(module, __webpack_exports__, __webpack_require__) {
12922
12923"use strict";
12924__webpack_require__.r(__webpack_exports__);
12925/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateCompWrapper", function() { return DateCompWrapper; });
12926/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45);
12927/**
12928 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
12929 * @version v29.2.0
12930 * @link https://www.ag-grid.com/
12931 * @license MIT
12932 */
12933
12934/** Provides sync access to async component. Date component can be lazy created - this class encapsulates
12935 * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */
12936var DateCompWrapper = /** @class */ (function () {
12937 function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {
12938 var _this = this;
12939 this.alive = true;
12940 this.context = context;
12941 this.eParent = eParent;
12942 var compDetails = userComponentFactory.getDateCompDetails(dateComponentParams);
12943 var promise = compDetails.newAgStackInstance();
12944 promise.then(function (dateComp) {
12945 // because async, check the filter still exists after component comes back
12946 if (!_this.alive) {
12947 context.destroyBean(dateComp);
12948 return;
12949 }
12950 _this.dateComp = dateComp;
12951 if (!dateComp) {
12952 return;
12953 }
12954 eParent.appendChild(dateComp.getGui());
12955 if (dateComp.afterGuiAttached) {
12956 dateComp.afterGuiAttached();
12957 }
12958 if (_this.tempValue) {
12959 dateComp.setDate(_this.tempValue);
12960 }
12961 if (_this.disabled != null) {
12962 _this.setDateCompDisabled(_this.disabled);
12963 }
12964 });
12965 }
12966 DateCompWrapper.prototype.destroy = function () {
12967 this.alive = false;
12968 this.dateComp = this.context.destroyBean(this.dateComp);
12969 };
12970 DateCompWrapper.prototype.getDate = function () {
12971 return this.dateComp ? this.dateComp.getDate() : this.tempValue;
12972 };
12973 DateCompWrapper.prototype.setDate = function (value) {
12974 if (this.dateComp) {
12975 this.dateComp.setDate(value);
12976 }
12977 else {
12978 this.tempValue = value;
12979 }
12980 };
12981 DateCompWrapper.prototype.setDisabled = function (disabled) {
12982 if (this.dateComp) {
12983 this.setDateCompDisabled(disabled);
12984 }
12985 else {
12986 this.disabled = disabled;
12987 }
12988 };
12989 DateCompWrapper.prototype.setDisplayed = function (displayed) {
12990 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_0__["setDisplayed"])(this.eParent, displayed);
12991 };
12992 DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {
12993 if (this.dateComp && this.dateComp.setInputPlaceholder) {
12994 this.dateComp.setInputPlaceholder(placeholder);
12995 }
12996 };
12997 DateCompWrapper.prototype.setInputAriaLabel = function (label) {
12998 if (this.dateComp && this.dateComp.setInputAriaLabel) {
12999 this.dateComp.setInputAriaLabel(label);
13000 }
13001 };
13002 DateCompWrapper.prototype.afterGuiAttached = function (params) {
13003 if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {
13004 this.dateComp.afterGuiAttached(params);
13005 }
13006 };
13007 DateCompWrapper.prototype.setDateCompDisabled = function (disabled) {
13008 if (this.dateComp == null) {
13009 return;
13010 }
13011 if (this.dateComp.setDisabled == null) {
13012 return;
13013 }
13014 this.dateComp.setDisabled(disabled);
13015 };
13016 return DateCompWrapper;
13017}());
13018
13019
13020
13021/***/ }),
13022/* 60 */
13023/***/ (function(module, __webpack_exports__, __webpack_require__) {
13024
13025"use strict";
13026__webpack_require__.r(__webpack_exports__);
13027/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFilterModelFormatter", function() { return SimpleFilterModelFormatter; });
13028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return SimpleFilter; });
13029/* harmony import */ var _optionsFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61);
13030/* harmony import */ var _providedFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62);
13031/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39);
13032/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(66);
13033/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(71);
13034/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19);
13035/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45);
13036/* harmony import */ var _filterLocaleText__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(63);
13037/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(38);
13038/* harmony import */ var _widgets_agAbstractInputField__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(73);
13039/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13);
13040/**
13041 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
13042 * @version v29.2.0
13043 * @link https://www.ag-grid.com/
13044 * @license MIT
13045 */
13046var __extends = (undefined && undefined.__extends) || (function () {
13047 var extendStatics = function (d, b) {
13048 extendStatics = Object.setPrototypeOf ||
13049 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13050 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
13051 return extendStatics(d, b);
13052 };
13053 return function (d, b) {
13054 extendStatics(d, b);
13055 function __() { this.constructor = d; }
13056 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13057 };
13058})();
13059var __read = (undefined && undefined.__read) || function (o, n) {
13060 var m = typeof Symbol === "function" && o[Symbol.iterator];
13061 if (!m) return o;
13062 var i = m.call(o), r, ar = [], e;
13063 try {
13064 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
13065 }
13066 catch (error) { e = { error: error }; }
13067 finally {
13068 try {
13069 if (r && !r.done && (m = i["return"])) m.call(i);
13070 }
13071 finally { if (e) throw e.error; }
13072 }
13073 return ar;
13074};
13075var __spread = (undefined && undefined.__spread) || function () {
13076 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
13077 return ar;
13078};
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090var SimpleFilterModelFormatter = /** @class */ (function () {
13091 function SimpleFilterModelFormatter(localeService, optionsFactory) {
13092 this.localeService = localeService;
13093 this.optionsFactory = optionsFactory;
13094 }
13095 // used by:
13096 // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.
13097 // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)
13098 SimpleFilterModelFormatter.prototype.getModelAsString = function (model) {
13099 var _this = this;
13100 if (!model) {
13101 return null;
13102 }
13103 var isCombined = model.operator != null;
13104 var translate = this.localeService.getLocaleTextFunc();
13105 if (isCombined) {
13106 var combinedModel = model;
13107 var conditions = combinedModel.conditions;
13108 if (!conditions) {
13109 var condition1 = combinedModel.condition1, condition2 = combinedModel.condition2;
13110 conditions = [condition1, condition2];
13111 }
13112 var customOptions = conditions.map(function (condition) { return _this.getModelAsString(condition); });
13113 var joinOperatorTranslateKey = combinedModel.operator === 'AND' ? 'andCondition' : 'orCondition';
13114 return customOptions.join(" " + translate(joinOperatorTranslateKey, _filterLocaleText__WEBPACK_IMPORTED_MODULE_7__["DEFAULT_FILTER_LOCALE_TEXT"][joinOperatorTranslateKey]) + " ");
13115 }
13116 else if (model.type === SimpleFilter.BLANK || model.type === SimpleFilter.NOT_BLANK) {
13117 return translate(model.type, model.type);
13118 }
13119 else {
13120 var condition = model;
13121 var customOption = this.optionsFactory.getCustomOption(condition.type);
13122 // For custom filter options we display the Name of the filter instead
13123 // of displaying the `from` value, as it wouldn't be relevant
13124 var _a = customOption || {}, displayKey = _a.displayKey, displayName = _a.displayName, numberOfInputs = _a.numberOfInputs;
13125 if (displayKey && displayName && numberOfInputs === 0) {
13126 translate(displayKey, displayName);
13127 return displayName;
13128 }
13129 return this.conditionToString(condition, customOption);
13130 }
13131 };
13132 return SimpleFilterModelFormatter;
13133}());
13134
13135/**
13136 * Every filter with a dropdown where the user can specify a comparing type against the filter values.
13137 *
13138 * @param M type of filter-model managed by the concrete sub-class that extends this type
13139 * @param V type of value managed by the concrete sub-class that extends this type
13140 * @param E type of UI element used for collecting user-input
13141 */
13142var SimpleFilter = /** @class */ (function (_super) {
13143 __extends(SimpleFilter, _super);
13144 function SimpleFilter() {
13145 var _this = _super !== null && _super.apply(this, arguments) || this;
13146 _this.eTypes = [];
13147 _this.eJoinOperatorPanels = [];
13148 _this.eJoinOperatorsAnd = [];
13149 _this.eJoinOperatorsOr = [];
13150 _this.eConditionBodies = [];
13151 _this.listener = function () { return _this.onUiChanged(); };
13152 _this.lastUiCompletePosition = null;
13153 _this.joinOperatorId = 0;
13154 return _this;
13155 }
13156 SimpleFilter.prototype.getNumberOfInputs = function (type) {
13157 var customOpts = this.optionsFactory.getCustomOption(type);
13158 if (customOpts) {
13159 var numberOfInputs = customOpts.numberOfInputs;
13160 return numberOfInputs != null ? numberOfInputs : 1;
13161 }
13162 var zeroInputTypes = [
13163 SimpleFilter.EMPTY, SimpleFilter.NOT_BLANK, SimpleFilter.BLANK,
13164 ];
13165 if (type && zeroInputTypes.indexOf(type) >= 0) {
13166 return 0;
13167 }
13168 else if (type === SimpleFilter.IN_RANGE) {
13169 return 2;
13170 }
13171 return 1;
13172 };
13173 // floating filter calls this when user applies filter from floating filter
13174 SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {
13175 this.setTypeFromFloatingFilter(type);
13176 this.setValueFromFloatingFilter(value);
13177 this.onUiChanged(true);
13178 };
13179 SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {
13180 var _this = this;
13181 this.eTypes.forEach(function (eType, position) {
13182 if (position === 0) {
13183 eType.setValue(type, true);
13184 }
13185 else {
13186 eType.setValue(_this.optionsFactory.getDefaultOption(), true);
13187 }
13188 });
13189 };
13190 SimpleFilter.prototype.getModelFromUi = function () {
13191 var conditions = this.getUiCompleteConditions();
13192 if (conditions.length === 0) {
13193 return null;
13194 }
13195 if (this.maxNumConditions > 1 && conditions.length > 1) {
13196 return {
13197 filterType: this.getFilterType(),
13198 operator: this.getJoinOperator(),
13199 condition1: conditions[0],
13200 condition2: conditions[1],
13201 conditions: conditions
13202 };
13203 }
13204 return conditions[0];
13205 };
13206 SimpleFilter.prototype.getConditionTypes = function () {
13207 return this.eTypes.map(function (eType) { return eType.getValue(); });
13208 };
13209 SimpleFilter.prototype.getConditionType = function (position) {
13210 return this.eTypes[position].getValue();
13211 };
13212 SimpleFilter.prototype.getJoinOperator = function () {
13213 if (this.eJoinOperatorsOr.length === 0) {
13214 return this.defaultJoinOperator;
13215 }
13216 return this.eJoinOperatorsOr[0].getValue() === true ? 'OR' : 'AND';
13217 };
13218 SimpleFilter.prototype.areModelsEqual = function (a, b) {
13219 var _this = this;
13220 // both are missing
13221 if (!a && !b) {
13222 return true;
13223 }
13224 // one is missing, other present
13225 if ((!a && b) || (a && !b)) {
13226 return false;
13227 }
13228 // one is combined, the other is not
13229 var aIsSimple = !a.operator;
13230 var bIsSimple = !b.operator;
13231 var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);
13232 if (oneSimpleOneCombined) {
13233 return false;
13234 }
13235 var res;
13236 // otherwise both present, so compare
13237 if (aIsSimple) {
13238 var aSimple = a;
13239 var bSimple = b;
13240 res = this.areSimpleModelsEqual(aSimple, bSimple);
13241 }
13242 else {
13243 var aCombined = a;
13244 var bCombined = b;
13245 res = aCombined.operator === bCombined.operator
13246 && Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["areEqual"])(aCombined.conditions, bCombined.conditions, function (aModel, bModel) { return _this.areSimpleModelsEqual(aModel, bModel); });
13247 }
13248 return res;
13249 };
13250 SimpleFilter.prototype.setModelIntoUi = function (model) {
13251 var _this = this;
13252 var isCombined = model.operator;
13253 if (isCombined) {
13254 var combinedModel = model;
13255 if (!combinedModel.conditions) {
13256 combinedModel.conditions = [
13257 combinedModel.condition1,
13258 combinedModel.condition2
13259 ];
13260 }
13261 var numConditions = this.validateAndUpdateConditions(combinedModel.conditions);
13262 var numPrevConditions = this.getNumConditions();
13263 if (numConditions < numPrevConditions) {
13264 this.removeConditionsAndOperators(numConditions);
13265 }
13266 else if (numConditions > numPrevConditions) {
13267 for (var i = numPrevConditions; i < numConditions; i++) {
13268 this.createJoinOperatorPanel();
13269 this.createOption();
13270 }
13271 }
13272 var orChecked_1 = combinedModel.operator === 'OR';
13273 this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd) { return eJoinOperatorAnd.setValue(!orChecked_1, true); });
13274 this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr) { return eJoinOperatorOr.setValue(orChecked_1, true); });
13275 combinedModel.conditions.forEach(function (condition, position) {
13276 _this.eTypes[position].setValue(condition.type, true);
13277 _this.setConditionIntoUi(condition, position);
13278 });
13279 }
13280 else {
13281 var simpleModel = model;
13282 if (this.getNumConditions() > 1) {
13283 this.removeConditionsAndOperators(1);
13284 }
13285 this.eTypes[0].setValue(simpleModel.type, true);
13286 this.setConditionIntoUi(simpleModel, 0);
13287 }
13288 this.lastUiCompletePosition = this.getNumConditions() - 1;
13289 this.createMissingConditionsAndOperators();
13290 this.onUiChanged();
13291 return _utils__WEBPACK_IMPORTED_MODULE_2__["AgPromise"].resolve();
13292 };
13293 SimpleFilter.prototype.validateAndUpdateConditions = function (conditions) {
13294 var numConditions = conditions.length;
13295 if (numConditions > this.maxNumConditions) {
13296 conditions.splice(this.maxNumConditions);
13297 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn('AG Grid: Filter Model contains more conditions than "filterParams.maxNumConditions". Additional conditions have been ignored.'); }, 'simpleFilterSetModelMaxNumConditions');
13298 numConditions = this.maxNumConditions;
13299 }
13300 return numConditions;
13301 };
13302 SimpleFilter.prototype.doesFilterPass = function (params) {
13303 var _this = this;
13304 var _a;
13305 var model = this.getModel();
13306 if (model == null) {
13307 return true;
13308 }
13309 var operator = model.operator;
13310 var models = [];
13311 if (operator) {
13312 var combinedModel = model;
13313 models.push.apply(models, __spread(((_a = combinedModel.conditions) !== null && _a !== void 0 ? _a : [])));
13314 }
13315 else {
13316 models.push(model);
13317 }
13318 var combineFunction = operator && operator === 'OR' ? 'some' : 'every';
13319 return models[combineFunction](function (m) { return _this.individualConditionPasses(params, m); });
13320 };
13321 SimpleFilter.prototype.setParams = function (params) {
13322 _super.prototype.setParams.call(this, params);
13323 this.setNumConditions(params);
13324 this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);
13325 this.filterPlaceholder = params.filterPlaceholder;
13326 this.optionsFactory = new _optionsFactory__WEBPACK_IMPORTED_MODULE_0__["OptionsFactory"]();
13327 this.optionsFactory.init(params, this.getDefaultFilterOptions());
13328 this.createOption();
13329 this.createMissingConditionsAndOperators();
13330 };
13331 SimpleFilter.prototype.setNumConditions = function (params) {
13332 var _a, _b;
13333 if (params.suppressAndOrCondition != null) {
13334 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn('AG Grid: Since v29.2 "filterParams.suppressAndOrCondition" is deprecated. Use "filterParams.maxNumConditions = 1" instead.'); }, 'simpleFilterSuppressAndOrCondition');
13335 }
13336 if (params.alwaysShowBothConditions != null) {
13337 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn('AG Grid: Since v29.2 "filterParams.alwaysShowBothConditions" is deprecated. Use "filterParams.numAlwaysVisibleConditions = 2" instead.'); }, 'simpleFilterAlwaysShowBothConditions');
13338 }
13339 this.maxNumConditions = (_a = params.maxNumConditions) !== null && _a !== void 0 ? _a : (params.suppressAndOrCondition ? 1 : 2);
13340 if (this.maxNumConditions < 1) {
13341 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn('AG Grid: "filterParams.maxNumConditions" must be greater than or equal to zero.'); }, 'simpleFilterMaxNumConditions');
13342 this.maxNumConditions = 1;
13343 }
13344 this.numAlwaysVisibleConditions = (_b = params.numAlwaysVisibleConditions) !== null && _b !== void 0 ? _b : (params.alwaysShowBothConditions ? 2 : 1);
13345 if (this.numAlwaysVisibleConditions < 1) {
13346 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn('AG Grid: "filterParams.numAlwaysVisibleConditions" must be greater than or equal to zero.'); }, 'simpleFilterNumAlwaysVisibleConditions');
13347 this.numAlwaysVisibleConditions = 1;
13348 }
13349 if (this.numAlwaysVisibleConditions > this.maxNumConditions) {
13350 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () { return console.warn('AG Grid: "filterParams.numAlwaysVisibleConditions" cannot be greater than "filterParams.maxNumConditions".'); }, 'simpleFilterNumAlwaysVisibleGreaterThanMaxNumConditions');
13351 this.numAlwaysVisibleConditions = this.maxNumConditions;
13352 }
13353 };
13354 SimpleFilter.prototype.createOption = function () {
13355 var _this = this;
13356 var eType = this.createManagedBean(new _widgets_agSelect__WEBPACK_IMPORTED_MODULE_3__["AgSelect"]());
13357 this.eTypes.push(eType);
13358 eType.addCssClass('ag-filter-select');
13359 this.eFilterBody.appendChild(eType.getGui());
13360 var eConditionBody = this.createValueElement();
13361 this.eConditionBodies.push(eConditionBody);
13362 this.eFilterBody.appendChild(eConditionBody);
13363 this.putOptionsIntoDropdown(eType);
13364 this.resetType(eType);
13365 var position = this.getNumConditions() - 1;
13366 this.forEachPositionInput(position, function (element) { return _this.resetInput(element); });
13367 this.addChangedListeners(eType, position);
13368 };
13369 SimpleFilter.prototype.createJoinOperatorPanel = function () {
13370 var eJoinOperatorPanel = document.createElement('div');
13371 this.eJoinOperatorPanels.push(eJoinOperatorPanel);
13372 eJoinOperatorPanel.classList.add('ag-filter-condition');
13373 var eJoinOperatorAnd = this.createJoinOperator(this.eJoinOperatorsAnd, eJoinOperatorPanel, 'and');
13374 var eJoinOperatorOr = this.createJoinOperator(this.eJoinOperatorsOr, eJoinOperatorPanel, 'or');
13375 this.eFilterBody.appendChild(eJoinOperatorPanel);
13376 var index = this.eJoinOperatorPanels.length - 1;
13377 var uniqueGroupId = this.joinOperatorId++;
13378 this.resetJoinOperatorAnd(eJoinOperatorAnd, index, uniqueGroupId);
13379 this.resetJoinOperatorOr(eJoinOperatorOr, index, uniqueGroupId);
13380 if (!this.isReadOnly()) {
13381 eJoinOperatorAnd.onValueChange(this.listener);
13382 eJoinOperatorOr.onValueChange(this.listener);
13383 }
13384 };
13385 SimpleFilter.prototype.createJoinOperator = function (eJoinOperators, eJoinOperatorPanel, andOr) {
13386 var eJoinOperator = this.createManagedBean(new _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_4__["AgRadioButton"]());
13387 eJoinOperators.push(eJoinOperator);
13388 eJoinOperator.addCssClass('ag-filter-condition-operator');
13389 eJoinOperator.addCssClass("ag-filter-condition-operator-" + andOr);
13390 eJoinOperatorPanel.appendChild(eJoinOperator.getGui());
13391 return eJoinOperator;
13392 };
13393 SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {
13394 return defaultJoinOperator === 'AND' || defaultJoinOperator === 'OR' ? defaultJoinOperator : 'AND';
13395 };
13396 SimpleFilter.prototype.putOptionsIntoDropdown = function (eType) {
13397 var _this = this;
13398 var filterOptions = this.optionsFactory.getFilterOptions();
13399 // Add specified options to all condition drop-downs.
13400 filterOptions.forEach(function (option) {
13401 var listOption = typeof option === 'string' ?
13402 _this.createBoilerplateListOption(option) :
13403 _this.createCustomListOption(option);
13404 eType.addOption(listOption);
13405 });
13406 // Make drop-downs read-only if there is only one option.
13407 eType.setDisabled(filterOptions.length <= 1);
13408 };
13409 SimpleFilter.prototype.createBoilerplateListOption = function (option) {
13410 return { value: option, text: this.translate(option) };
13411 };
13412 SimpleFilter.prototype.createCustomListOption = function (option) {
13413 var displayKey = option.displayKey;
13414 var customOption = this.optionsFactory.getCustomOption(option.displayKey);
13415 return {
13416 value: displayKey,
13417 text: customOption ?
13418 this.localeService.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :
13419 this.translate(displayKey),
13420 };
13421 };
13422 /**
13423 * @deprecated As of v29.2 filters can have more than two conditions. Check `colDef.filterParams.maxNumConditions` instead.
13424 */
13425 SimpleFilter.prototype.isAllowTwoConditions = function () {
13426 return this.maxNumConditions >= 2;
13427 };
13428 SimpleFilter.prototype.createBodyTemplate = function () {
13429 // created dynamically
13430 return '';
13431 };
13432 SimpleFilter.prototype.getCssIdentifier = function () {
13433 return 'simple-filter';
13434 };
13435 SimpleFilter.prototype.updateUiVisibility = function () {
13436 var joinOperator = this.getJoinOperator();
13437 this.updateNumConditions();
13438 // from here, the number of elements in all the collections is correct, so can just update the values/statuses
13439 this.updateConditionStatusesAndValues(this.lastUiCompletePosition, joinOperator);
13440 };
13441 SimpleFilter.prototype.updateNumConditions = function () {
13442 var _a;
13443 // Collection sizes are already correct if updated via API, so only need to handle UI updates here
13444 var lastUiCompletePosition = -1;
13445 var areAllConditionsUiComplete = true;
13446 for (var position = 0; position < this.getNumConditions(); position++) {
13447 if (this.isConditionUiComplete(position)) {
13448 lastUiCompletePosition = position;
13449 }
13450 else {
13451 areAllConditionsUiComplete = false;
13452 }
13453 }
13454 if (this.shouldAddNewConditionAtEnd(areAllConditionsUiComplete)) {
13455 this.createJoinOperatorPanel();
13456 this.createOption();
13457 }
13458 else {
13459 var activePosition = (_a = this.lastUiCompletePosition) !== null && _a !== void 0 ? _a : this.getNumConditions() - 2;
13460 if (lastUiCompletePosition < activePosition) {
13461 // remove any incomplete conditions at the end, excluding the active position
13462 this.removeConditionsAndOperators(activePosition + 1);
13463 var removeStartPosition = lastUiCompletePosition + 1;
13464 var numConditionsToRemove = activePosition - removeStartPosition;
13465 if (numConditionsToRemove > 0) {
13466 this.removeConditionsAndOperators(removeStartPosition, numConditionsToRemove);
13467 }
13468 this.createMissingConditionsAndOperators();
13469 }
13470 }
13471 this.lastUiCompletePosition = lastUiCompletePosition;
13472 };
13473 SimpleFilter.prototype.updateConditionStatusesAndValues = function (lastUiCompletePosition, joinOperator) {
13474 var _this = this;
13475 this.eTypes.forEach(function (eType, position) {
13476 var disabled = _this.isConditionDisabled(position, lastUiCompletePosition);
13477 var group = position === 1 ? [eType, _this.eJoinOperatorPanels[0], _this.eJoinOperatorsAnd[0], _this.eJoinOperatorsOr[0]] : [eType];
13478 group.forEach(function (element) {
13479 if (element instanceof _widgets_agAbstractInputField__WEBPACK_IMPORTED_MODULE_9__["AgAbstractInputField"] || element instanceof _widgets_agSelect__WEBPACK_IMPORTED_MODULE_3__["AgSelect"]) {
13480 element.setDisabled(disabled);
13481 }
13482 else {
13483 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisabled"])(element, disabled);
13484 }
13485 });
13486 });
13487 this.eConditionBodies.forEach(function (element, index) {
13488 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(element, _this.isConditionBodyVisible(index));
13489 });
13490 var orChecked = (joinOperator !== null && joinOperator !== void 0 ? joinOperator : this.getJoinOperator()) === 'OR';
13491 this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd, index) {
13492 eJoinOperatorAnd.setValue(!orChecked, true);
13493 });
13494 this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr, index) {
13495 eJoinOperatorOr.setValue(orChecked, true);
13496 });
13497 this.forEachInput(function (element, index, position, numberOfInputs) {
13498 _this.setElementDisplayed(element, index < numberOfInputs);
13499 _this.setElementDisabled(element, _this.isConditionDisabled(position, lastUiCompletePosition));
13500 });
13501 this.resetPlaceholder();
13502 };
13503 SimpleFilter.prototype.shouldAddNewConditionAtEnd = function (areAllConditionsUiComplete) {
13504 return areAllConditionsUiComplete && this.getNumConditions() < this.maxNumConditions && !this.isReadOnly();
13505 };
13506 SimpleFilter.prototype.removeConditionsAndOperators = function (startPosition, deleteCount) {
13507 if (startPosition >= this.getNumConditions()) {
13508 return;
13509 }
13510 this.removeComponents(this.eTypes, startPosition, deleteCount);
13511 this.removeElements(this.eConditionBodies, startPosition, deleteCount);
13512 this.removeValueElements(startPosition, deleteCount);
13513 var joinOperatorIndex = Math.max(startPosition - 1, 0);
13514 this.removeElements(this.eJoinOperatorPanels, joinOperatorIndex, deleteCount);
13515 this.removeComponents(this.eJoinOperatorsAnd, joinOperatorIndex, deleteCount);
13516 this.removeComponents(this.eJoinOperatorsOr, joinOperatorIndex, deleteCount);
13517 };
13518 SimpleFilter.prototype.removeElements = function (elements, startPosition, deleteCount) {
13519 var removedElements = this.removeItems(elements, startPosition, deleteCount);
13520 removedElements.forEach(function (element) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["removeFromParent"])(element); });
13521 };
13522 SimpleFilter.prototype.removeComponents = function (components, startPosition, deleteCount) {
13523 var _this = this;
13524 var removedComponents = this.removeItems(components, startPosition, deleteCount);
13525 removedComponents.forEach(function (comp) {
13526 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["removeFromParent"])(comp.getGui());
13527 _this.destroyBean(comp);
13528 });
13529 };
13530 SimpleFilter.prototype.removeItems = function (items, startPosition, deleteCount) {
13531 return deleteCount == null ? items.splice(startPosition) : items.splice(startPosition, deleteCount);
13532 };
13533 SimpleFilter.prototype.afterGuiAttached = function (params) {
13534 _super.prototype.afterGuiAttached.call(this, params);
13535 this.resetPlaceholder();
13536 if (!params || (!params.suppressFocus && !this.isReadOnly())) {
13537 var firstInput = this.getInputs(0)[0];
13538 if (!firstInput) {
13539 return;
13540 }
13541 if (firstInput instanceof _widgets_agAbstractInputField__WEBPACK_IMPORTED_MODULE_9__["AgAbstractInputField"]) {
13542 firstInput.getInputElement().focus();
13543 }
13544 }
13545 };
13546 SimpleFilter.prototype.afterGuiDetached = function () {
13547 _super.prototype.afterGuiDetached.call(this);
13548 var appliedModel = this.getModel();
13549 if (!this.areModelsEqual(appliedModel, this.getModelFromUi())) {
13550 this.resetUiToActiveModel(appliedModel);
13551 }
13552 // remove incomplete positions
13553 var lastUiCompletePosition = -1;
13554 // as we remove incomplete positions, the last UI complete position will change
13555 var updatedLastUiCompletePosition = -1;
13556 var conditionsRemoved = false;
13557 var joinOperator = this.getJoinOperator();
13558 for (var position = this.getNumConditions() - 1; position >= 0; position--) {
13559 if (this.isConditionUiComplete(position)) {
13560 if (lastUiCompletePosition === -1) {
13561 lastUiCompletePosition = position;
13562 updatedLastUiCompletePosition = position;
13563 }
13564 }
13565 else {
13566 var shouldRemovePositionAtEnd = position >= this.numAlwaysVisibleConditions && !this.isConditionUiComplete(position - 1);
13567 var positionBeforeLastUiCompletePosition = position < lastUiCompletePosition;
13568 if (shouldRemovePositionAtEnd || positionBeforeLastUiCompletePosition) {
13569 this.removeConditionsAndOperators(position, 1);
13570 conditionsRemoved = true;
13571 if (positionBeforeLastUiCompletePosition) {
13572 updatedLastUiCompletePosition--;
13573 }
13574 }
13575 }
13576 }
13577 var shouldUpdateConditionStatusesAndValues = false;
13578 if (this.getNumConditions() < this.numAlwaysVisibleConditions) {
13579 // if conditions have been removed, need to recreate new ones at the end up to the number required
13580 this.createMissingConditionsAndOperators();
13581 shouldUpdateConditionStatusesAndValues = true;
13582 }
13583 if (this.shouldAddNewConditionAtEnd(updatedLastUiCompletePosition === this.getNumConditions() - 1)) {
13584 this.createJoinOperatorPanel();
13585 this.createOption();
13586 shouldUpdateConditionStatusesAndValues = true;
13587 }
13588 if (shouldUpdateConditionStatusesAndValues) {
13589 this.updateConditionStatusesAndValues(updatedLastUiCompletePosition, joinOperator);
13590 }
13591 if (conditionsRemoved) {
13592 this.updateJoinOperatorsDisabled();
13593 }
13594 this.lastUiCompletePosition = updatedLastUiCompletePosition;
13595 };
13596 SimpleFilter.prototype.getPlaceholderText = function (defaultPlaceholder, position) {
13597 var placeholder = this.translate(defaultPlaceholder);
13598 if (Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["isFunction"])(this.filterPlaceholder)) {
13599 var filterPlaceholderFn = this.filterPlaceholder;
13600 var filterOptionKey = this.eTypes[position].getValue();
13601 var filterOption = this.translate(filterOptionKey);
13602 placeholder = filterPlaceholderFn({
13603 filterOptionKey: filterOptionKey,
13604 filterOption: filterOption,
13605 placeholder: placeholder
13606 });
13607 }
13608 else if (typeof this.filterPlaceholder === 'string') {
13609 placeholder = this.filterPlaceholder;
13610 }
13611 return placeholder;
13612 };
13613 // allow sub-classes to reset HTML placeholders after UI update.
13614 SimpleFilter.prototype.resetPlaceholder = function () {
13615 var _this = this;
13616 var globalTranslate = this.localeService.getLocaleTextFunc();
13617 this.forEachInput(function (element, index, position, numberOfInputs) {
13618 if (!(element instanceof _widgets_agAbstractInputField__WEBPACK_IMPORTED_MODULE_9__["AgAbstractInputField"])) {
13619 return;
13620 }
13621 var placeholder = index === 0 && numberOfInputs > 1 ? 'inRangeStart' :
13622 index === 0 ? 'filterOoo' :
13623 'inRangeEnd';
13624 var ariaLabel = index === 0 && numberOfInputs > 1 ? globalTranslate('ariaFilterFromValue', 'Filter from value') :
13625 index === 0 ? globalTranslate('ariaFilterValue', 'Filter Value') :
13626 globalTranslate('ariaFilterToValue', 'Filter to Value');
13627 element.setInputPlaceholder(_this.getPlaceholderText(placeholder, position));
13628 element.setInputAriaLabel(ariaLabel);
13629 });
13630 };
13631 SimpleFilter.prototype.setElementValue = function (element, value) {
13632 if (element instanceof _widgets_agAbstractInputField__WEBPACK_IMPORTED_MODULE_9__["AgAbstractInputField"]) {
13633 element.setValue(value != null ? String(value) : null, true);
13634 }
13635 };
13636 SimpleFilter.prototype.setElementDisplayed = function (element, displayed) {
13637 if (element instanceof _widgets_component__WEBPACK_IMPORTED_MODULE_8__["Component"]) {
13638 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(element.getGui(), displayed);
13639 }
13640 };
13641 SimpleFilter.prototype.setElementDisabled = function (element, disabled) {
13642 if (element instanceof _widgets_component__WEBPACK_IMPORTED_MODULE_8__["Component"]) {
13643 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisabled"])(element.getGui(), disabled);
13644 }
13645 };
13646 SimpleFilter.prototype.attachElementOnChange = function (element, listener) {
13647 if (element instanceof _widgets_agAbstractInputField__WEBPACK_IMPORTED_MODULE_9__["AgAbstractInputField"]) {
13648 element.onValueChange(listener);
13649 }
13650 };
13651 SimpleFilter.prototype.forEachInput = function (cb) {
13652 var _this = this;
13653 this.getConditionTypes().forEach(function (type, position) {
13654 _this.forEachPositionTypeInput(position, type, cb);
13655 });
13656 };
13657 SimpleFilter.prototype.forEachPositionInput = function (position, cb) {
13658 var type = this.getConditionType(position);
13659 this.forEachPositionTypeInput(position, type, cb);
13660 };
13661 SimpleFilter.prototype.forEachPositionTypeInput = function (position, type, cb) {
13662 var numberOfInputs = this.getNumberOfInputs(type);
13663 var inputs = this.getInputs(position);
13664 for (var index = 0; index < inputs.length; index++) {
13665 var input = inputs[index];
13666 if (input != null) {
13667 cb(input, index, position, numberOfInputs);
13668 }
13669 }
13670 };
13671 SimpleFilter.prototype.isConditionDisabled = function (position, lastUiCompletePosition) {
13672 if (this.isReadOnly()) {
13673 return true;
13674 } // Read-only mode trumps everything.
13675 if (position === 0) {
13676 return false;
13677 } // Position 0 should typically be editable.
13678 // Only allow editing of a 2nd or later condition if the previous condition is complete and no subsequent conditions are complete.
13679 return position > lastUiCompletePosition + 1;
13680 };
13681 SimpleFilter.prototype.isConditionBodyVisible = function (position) {
13682 // Check that the condition needs inputs.
13683 var type = this.getConditionType(position);
13684 var numberOfInputs = this.getNumberOfInputs(type);
13685 return numberOfInputs > 0;
13686 };
13687 // returns true if the UI represents a working filter, eg all parts are filled out.
13688 // eg if text filter and textfield blank then returns false.
13689 SimpleFilter.prototype.isConditionUiComplete = function (position) {
13690 if (position >= this.getNumConditions()) {
13691 return false;
13692 } // Condition doesn't exist.
13693 var type = this.getConditionType(position);
13694 if (type === SimpleFilter.EMPTY) {
13695 return false;
13696 }
13697 if (this.getValues(position).some(function (v) { return v == null; })) {
13698 return false;
13699 }
13700 return true;
13701 };
13702 SimpleFilter.prototype.getNumConditions = function () {
13703 return this.eTypes.length;
13704 };
13705 SimpleFilter.prototype.getUiCompleteConditions = function () {
13706 var conditions = [];
13707 for (var position = 0; position < this.getNumConditions(); position++) {
13708 if (this.isConditionUiComplete(position)) {
13709 conditions.push(this.createCondition(position));
13710 }
13711 }
13712 return conditions;
13713 };
13714 SimpleFilter.prototype.createMissingConditionsAndOperators = function () {
13715 if (this.isReadOnly()) {
13716 return;
13717 } // don't show incomplete conditions when read only
13718 for (var i = this.getNumConditions(); i < this.numAlwaysVisibleConditions; i++) {
13719 this.createJoinOperatorPanel();
13720 this.createOption();
13721 }
13722 };
13723 SimpleFilter.prototype.resetUiToDefaults = function (silent) {
13724 var _this = this;
13725 this.removeConditionsAndOperators(this.isReadOnly() ? 1 : this.numAlwaysVisibleConditions);
13726 this.eTypes.forEach(function (eType) { return _this.resetType(eType); });
13727 this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd, index) { return _this.resetJoinOperatorAnd(eJoinOperatorAnd, index, _this.joinOperatorId + index); });
13728 this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr, index) { return _this.resetJoinOperatorOr(eJoinOperatorOr, index, _this.joinOperatorId + index); });
13729 this.joinOperatorId++;
13730 this.forEachInput(function (element) { return _this.resetInput(element); });
13731 this.resetPlaceholder();
13732 this.createMissingConditionsAndOperators();
13733 this.lastUiCompletePosition = null;
13734 if (!silent) {
13735 this.onUiChanged();
13736 }
13737 return _utils__WEBPACK_IMPORTED_MODULE_2__["AgPromise"].resolve();
13738 };
13739 SimpleFilter.prototype.resetType = function (eType) {
13740 var translate = this.localeService.getLocaleTextFunc();
13741 var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');
13742 eType
13743 .setValue(this.optionsFactory.getDefaultOption(), true)
13744 .setAriaLabel(filteringLabel)
13745 .setDisabled(this.isReadOnly());
13746 };
13747 SimpleFilter.prototype.resetJoinOperatorAnd = function (eJoinOperatorAnd, index, uniqueGroupId) {
13748 this.resetJoinOperator(eJoinOperatorAnd, index, this.isDefaultOperator('AND'), this.translate('andCondition'), uniqueGroupId);
13749 };
13750 SimpleFilter.prototype.resetJoinOperatorOr = function (eJoinOperatorOr, index, uniqueGroupId) {
13751 this.resetJoinOperator(eJoinOperatorOr, index, this.isDefaultOperator('OR'), this.translate('orCondition'), uniqueGroupId);
13752 };
13753 SimpleFilter.prototype.resetJoinOperator = function (eJoinOperator, index, value, label, uniqueGroupId) {
13754 this.updateJoinOperatorDisabled(eJoinOperator
13755 .setValue(value, true)
13756 .setName("ag-simple-filter-and-or-" + this.getCompId() + "-" + uniqueGroupId)
13757 .setLabel(label), index);
13758 };
13759 SimpleFilter.prototype.updateJoinOperatorsDisabled = function () {
13760 var _this = this;
13761 this.eJoinOperatorsAnd.forEach(function (eJoinOperator, index) { return _this.updateJoinOperatorDisabled(eJoinOperator, index); });
13762 this.eJoinOperatorsOr.forEach(function (eJoinOperator, index) { return _this.updateJoinOperatorDisabled(eJoinOperator, index); });
13763 };
13764 SimpleFilter.prototype.updateJoinOperatorDisabled = function (eJoinOperator, index) {
13765 eJoinOperator.setDisabled(this.isReadOnly() || index > 0);
13766 };
13767 SimpleFilter.prototype.resetInput = function (element) {
13768 this.setElementValue(element, null);
13769 this.setElementDisabled(element, this.isReadOnly());
13770 };
13771 // puts model values into the UI
13772 SimpleFilter.prototype.setConditionIntoUi = function (model, position) {
13773 var _this = this;
13774 var values = this.mapValuesFromModel(model);
13775 this.forEachInput(function (element, index, elPosition, _) {
13776 if (elPosition !== position) {
13777 return;
13778 }
13779 _this.setElementValue(element, values[index] != null ? values[index] : null);
13780 });
13781 };
13782 // after floating filter changes, this sets the 'value' section. this is implemented by the base class
13783 // (as that's where value is controlled), the 'type' part from the floating filter is dealt with in this class.
13784 SimpleFilter.prototype.setValueFromFloatingFilter = function (value) {
13785 var _this = this;
13786 this.forEachInput(function (element, index, position, _) {
13787 _this.setElementValue(element, index === 0 && position === 0 ? value : null);
13788 });
13789 };
13790 SimpleFilter.prototype.isDefaultOperator = function (operator) {
13791 return operator === this.defaultJoinOperator;
13792 };
13793 SimpleFilter.prototype.addChangedListeners = function (eType, position) {
13794 var _this = this;
13795 if (this.isReadOnly()) {
13796 return;
13797 }
13798 eType.onValueChange(this.listener);
13799 this.forEachPositionInput(position, function (element) {
13800 _this.attachElementOnChange(element, _this.listener);
13801 });
13802 };
13803 /** returns true if the row passes the said condition */
13804 SimpleFilter.prototype.individualConditionPasses = function (params, filterModel) {
13805 var cellValue = this.getCellValue(params.node);
13806 var values = this.mapValuesFromModel(filterModel);
13807 var customFilterOption = this.optionsFactory.getCustomOption(filterModel.type);
13808 var customFilterResult = this.evaluateCustomFilter(customFilterOption, values, cellValue);
13809 if (customFilterResult != null) {
13810 return customFilterResult;
13811 }
13812 if (cellValue == null) {
13813 return this.evaluateNullValue(filterModel.type);
13814 }
13815 return this.evaluateNonNullValue(values, cellValue, filterModel, params);
13816 };
13817 SimpleFilter.prototype.evaluateCustomFilter = function (customFilterOption, values, cellValue) {
13818 if (customFilterOption == null) {
13819 return;
13820 }
13821 var predicate = customFilterOption.predicate;
13822 // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden
13823 if (predicate != null && !values.some(function (v) { return v == null; })) {
13824 return predicate(values, cellValue);
13825 }
13826 // No custom filter invocation, indicate that to the caller.
13827 return;
13828 };
13829 SimpleFilter.prototype.isBlank = function (cellValue) {
13830 return cellValue == null ||
13831 (typeof cellValue === 'string' && cellValue.trim().length === 0);
13832 };
13833 SimpleFilter.EMPTY = 'empty';
13834 SimpleFilter.BLANK = 'blank';
13835 SimpleFilter.NOT_BLANK = 'notBlank';
13836 SimpleFilter.EQUALS = 'equals';
13837 SimpleFilter.NOT_EQUAL = 'notEqual';
13838 SimpleFilter.LESS_THAN = 'lessThan';
13839 SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';
13840 SimpleFilter.GREATER_THAN = 'greaterThan';
13841 SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';
13842 SimpleFilter.IN_RANGE = 'inRange';
13843 SimpleFilter.CONTAINS = 'contains';
13844 SimpleFilter.NOT_CONTAINS = 'notContains';
13845 SimpleFilter.STARTS_WITH = 'startsWith';
13846 SimpleFilter.ENDS_WITH = 'endsWith';
13847 return SimpleFilter;
13848}(_providedFilter__WEBPACK_IMPORTED_MODULE_1__["ProvidedFilter"]));
13849
13850
13851
13852/***/ }),
13853/* 61 */
13854/***/ (function(module, __webpack_exports__, __webpack_require__) {
13855
13856"use strict";
13857__webpack_require__.r(__webpack_exports__);
13858/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OptionsFactory", function() { return OptionsFactory; });
13859/**
13860 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
13861 * @version v29.2.0
13862 * @link https://www.ag-grid.com/
13863 * @license MIT
13864 */
13865var __assign = (undefined && undefined.__assign) || function () {
13866 __assign = Object.assign || function(t) {
13867 for (var s, i = 1, n = arguments.length; i < n; i++) {
13868 s = arguments[i];
13869 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
13870 t[p] = s[p];
13871 }
13872 return t;
13873 };
13874 return __assign.apply(this, arguments);
13875};
13876/* Common logic for options, used by both filters and floating filters. */
13877var OptionsFactory = /** @class */ (function () {
13878 function OptionsFactory() {
13879 this.customFilterOptions = {};
13880 }
13881 OptionsFactory.prototype.init = function (params, defaultOptions) {
13882 this.filterOptions = params.filterOptions || defaultOptions;
13883 this.mapCustomOptions();
13884 this.selectDefaultItem(params);
13885 this.checkForDeprecatedParams();
13886 };
13887 OptionsFactory.prototype.checkForDeprecatedParams = function () {
13888 if (this.filterOptions.some(function (opt) { return typeof opt != 'string' && opt.test != null; })) {
13889 console.warn("AG Grid: [IFilterOptionDef] since v26.2.0, test() has been replaced with predicate().");
13890 }
13891 if (this.filterOptions.some(function (opt) { return typeof opt != 'string' && opt.hideFilterInput != null; })) {
13892 console.warn("AG Grid: [IFilterOptionDef] since v26.2.0, useOfHideFilterInput has been replaced with numberOfInputs.");
13893 }
13894 };
13895 OptionsFactory.prototype.getFilterOptions = function () {
13896 return this.filterOptions;
13897 };
13898 OptionsFactory.prototype.mapCustomOptions = function () {
13899 var _this = this;
13900 if (!this.filterOptions) {
13901 return;
13902 }
13903 this.filterOptions.forEach(function (filterOption) {
13904 if (typeof filterOption === 'string') {
13905 return;
13906 }
13907 var requiredProperties = [['displayKey'], ['displayName'], ['predicate', 'test']];
13908 var propertyCheck = function (keys) {
13909 if (!keys.some(function (key) { return filterOption[key] != null; })) {
13910 console.warn("AG Grid: ignoring FilterOptionDef as it doesn't contain one of '" + keys + "'");
13911 return false;
13912 }
13913 return true;
13914 };
13915 if (!requiredProperties.every(propertyCheck)) {
13916 _this.filterOptions = _this.filterOptions.filter(function (v) { return v === filterOption; }) || [];
13917 return;
13918 }
13919 var test = filterOption.test;
13920 var mutatedFilterOptions = __assign({}, filterOption);
13921 if (test != null && filterOption.predicate == null) {
13922 mutatedFilterOptions.predicate = function (v, cv) { return test(v[0], cv); };
13923 delete mutatedFilterOptions.test;
13924 }
13925 if (mutatedFilterOptions.hideFilterInput && mutatedFilterOptions.numberOfInputs == null) {
13926 mutatedFilterOptions.numberOfInputs = 0;
13927 delete mutatedFilterOptions.hideFilterInput;
13928 }
13929 _this.customFilterOptions[filterOption.displayKey] = mutatedFilterOptions;
13930 });
13931 };
13932 OptionsFactory.prototype.selectDefaultItem = function (params) {
13933 if (params.defaultOption) {
13934 this.defaultOption = params.defaultOption;
13935 }
13936 else if (this.filterOptions.length >= 1) {
13937 var firstFilterOption = this.filterOptions[0];
13938 if (typeof firstFilterOption === 'string') {
13939 this.defaultOption = firstFilterOption;
13940 }
13941 else if (firstFilterOption.displayKey) {
13942 this.defaultOption = firstFilterOption.displayKey;
13943 }
13944 else {
13945 console.warn("AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'");
13946 }
13947 }
13948 else {
13949 console.warn('AG Grid: no filter options for filter');
13950 }
13951 };
13952 OptionsFactory.prototype.getDefaultOption = function () {
13953 return this.defaultOption;
13954 };
13955 OptionsFactory.prototype.getCustomOption = function (name) {
13956 return this.customFilterOptions[name];
13957 };
13958 return OptionsFactory;
13959}());
13960
13961
13962
13963/***/ }),
13964/* 62 */
13965/***/ (function(module, __webpack_exports__, __webpack_require__) {
13966
13967"use strict";
13968__webpack_require__.r(__webpack_exports__);
13969/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return ProvidedFilter; });
13970/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
13971/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
13972/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
13973/* harmony import */ var _filterLocaleText__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63);
13974/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64);
13975/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51);
13976/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38);
13977/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(57);
13978/* harmony import */ var _rendering_features_positionableFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(65);
13979/**
13980 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
13981 * @version v29.2.0
13982 * @link https://www.ag-grid.com/
13983 * @license MIT
13984 */
13985var __extends = (undefined && undefined.__extends) || (function () {
13986 var extendStatics = function (d, b) {
13987 extendStatics = Object.setPrototypeOf ||
13988 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
13989 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
13990 return extendStatics(d, b);
13991 };
13992 return function (d, b) {
13993 extendStatics(d, b);
13994 function __() { this.constructor = d; }
13995 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13996 };
13997})();
13998var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13999 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14000 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14001 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;
14002 return c > 3 && r && Object.defineProperty(target, key, r), r;
14003};
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013/**
14014 * Contains common logic to all provided filters (apply button, clear button, etc).
14015 * All the filters that come with AG Grid extend this class. User filters do not
14016 * extend this class.
14017 *
14018 * @param M type of filter-model managed by the concrete sub-class that extends this type
14019 * @param V type of value managed by the concrete sub-class that extends this type
14020 */
14021var ProvidedFilter = /** @class */ (function (_super) {
14022 __extends(ProvidedFilter, _super);
14023 function ProvidedFilter(filterNameKey) {
14024 var _this = _super.call(this) || this;
14025 _this.filterNameKey = filterNameKey;
14026 _this.applyActive = false;
14027 _this.hidePopup = null;
14028 _this.debouncePending = false;
14029 // after the user hits 'apply' the model gets copied to here. this is then the model that we use for
14030 // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.
14031 // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is
14032 // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter
14033 // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter
14034 // not active) then this appliedModel will be null/undefined.
14035 _this.appliedModel = null;
14036 return _this;
14037 }
14038 ProvidedFilter.prototype.postConstruct = function () {
14039 this.resetTemplate(); // do this first to create the DOM
14040 this.createManagedBean(new _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_4__["ManagedFocusFeature"](this.getFocusableElement(), {
14041 handleKeyDown: this.handleKeyDown.bind(this)
14042 }));
14043 this.positionableFeature = new _rendering_features_positionableFeature__WEBPACK_IMPORTED_MODULE_8__["PositionableFeature"](this.getPositionableElement(), { forcePopupParentAsOffsetParent: true });
14044 this.createBean(this.positionableFeature);
14045 };
14046 // override
14047 ProvidedFilter.prototype.handleKeyDown = function (e) { };
14048 ProvidedFilter.prototype.getFilterTitle = function () {
14049 return this.translate(this.filterNameKey);
14050 };
14051 ProvidedFilter.prototype.isFilterActive = function () {
14052 // filter is active if we have a valid applied model
14053 return !!this.appliedModel;
14054 };
14055 ProvidedFilter.prototype.resetTemplate = function (paramsMap) {
14056 var eGui = this.getGui();
14057 if (eGui) {
14058 eGui.removeEventListener('submit', this.onFormSubmit);
14059 }
14060 var templateString = /* html */ "\n <form class=\"ag-filter-wrapper\">\n <div class=\"ag-filter-body-wrapper ag-" + this.getCssIdentifier() + "-body-wrapper\" ref=\"eFilterBody\">\n " + this.createBodyTemplate() + "\n </div>\n </form>";
14061 this.setTemplate(templateString, paramsMap);
14062 eGui = this.getGui();
14063 if (eGui) {
14064 eGui.addEventListener('submit', this.onFormSubmit);
14065 }
14066 };
14067 ProvidedFilter.prototype.isReadOnly = function () {
14068 return !!this.providedFilterParams.readOnly;
14069 };
14070 ProvidedFilter.prototype.init = function (params) {
14071 var _this = this;
14072 this.setParams(params);
14073 this.resetUiToDefaults(true).then(function () {
14074 _this.updateUiVisibility();
14075 _this.setupOnBtApplyDebounce();
14076 });
14077 };
14078 ProvidedFilter.prototype.setParams = function (params) {
14079 this.providedFilterParams = params;
14080 this.applyActive = ProvidedFilter.isUseApplyButton(params);
14081 this.createButtonPanel();
14082 };
14083 ProvidedFilter.prototype.createButtonPanel = function () {
14084 var _this = this;
14085 var buttons = this.providedFilterParams.buttons;
14086 if (!buttons || buttons.length < 1 || this.isReadOnly()) {
14087 return;
14088 }
14089 var eButtonsPanel = document.createElement('div');
14090 eButtonsPanel.classList.add('ag-filter-apply-panel');
14091 var addButton = function (type) {
14092 var text;
14093 var clickListener;
14094 switch (type) {
14095 case 'apply':
14096 text = _this.translate('applyFilter');
14097 clickListener = function (e) { return _this.onBtApply(false, false, e); };
14098 break;
14099 case 'clear':
14100 text = _this.translate('clearFilter');
14101 clickListener = function () { return _this.onBtClear(); };
14102 break;
14103 case 'reset':
14104 text = _this.translate('resetFilter');
14105 clickListener = function () { return _this.onBtReset(); };
14106 break;
14107 case 'cancel':
14108 text = _this.translate('cancelFilter');
14109 clickListener = function (e) { _this.onBtCancel(e); };
14110 break;
14111 default:
14112 console.warn('AG Grid: Unknown button type specified');
14113 return;
14114 }
14115 var buttonType = type === 'apply' ? 'submit' : 'button';
14116 var button = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["loadTemplate"])(
14117 /* html */
14118 "<button\n type=\"" + buttonType + "\"\n ref=\"" + type + "FilterButton\"\n class=\"ag-standard-button ag-filter-apply-panel-button\"\n >" + text + "\n </button>");
14119 eButtonsPanel.appendChild(button);
14120 _this.addManagedListener(button, 'click', clickListener);
14121 };
14122 Object(_utils_set__WEBPACK_IMPORTED_MODULE_5__["convertToSet"])(buttons).forEach(function (type) { return addButton(type); });
14123 this.getGui().appendChild(eButtonsPanel);
14124 };
14125 // subclasses can override this to provide alternative debounce defaults
14126 ProvidedFilter.prototype.getDefaultDebounceMs = function () {
14127 return 0;
14128 };
14129 ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {
14130 var _this = this;
14131 var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());
14132 var debounceFunc = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["debounce"])(this.checkApplyDebounce.bind(this), debounceMs);
14133 this.onBtApplyDebounce = function () {
14134 _this.debouncePending = true;
14135 debounceFunc();
14136 };
14137 };
14138 ProvidedFilter.prototype.checkApplyDebounce = function () {
14139 if (this.debouncePending) {
14140 // May already have been applied, so don't apply again (e.g. closing filter before debounce timeout)
14141 this.debouncePending = false;
14142 this.onBtApply();
14143 }
14144 };
14145 ProvidedFilter.prototype.getModel = function () {
14146 return this.appliedModel ? this.appliedModel : null;
14147 };
14148 ProvidedFilter.prototype.setModel = function (model) {
14149 var _this = this;
14150 var promise = model != null ? this.setModelIntoUi(model) : this.resetUiToDefaults();
14151 return promise.then(function () {
14152 _this.updateUiVisibility();
14153 // we set the model from the GUI, rather than the provided model,
14154 // so the model is consistent, e.g. handling of null/undefined will be the same,
14155 // or if model is case insensitive, then casing is removed.
14156 _this.applyModel('api');
14157 });
14158 };
14159 ProvidedFilter.prototype.onBtCancel = function (e) {
14160 var _this = this;
14161 this.resetUiToActiveModel(this.getModel(), function () {
14162 if (_this.providedFilterParams.closeOnApply) {
14163 _this.close(e);
14164 }
14165 });
14166 };
14167 ProvidedFilter.prototype.resetUiToActiveModel = function (currentModel, afterUiUpdatedFunc) {
14168 var _this = this;
14169 var afterAppliedFunc = function () {
14170 _this.onUiChanged(false, 'prevent');
14171 afterUiUpdatedFunc === null || afterUiUpdatedFunc === void 0 ? void 0 : afterUiUpdatedFunc();
14172 };
14173 if (currentModel != null) {
14174 this.setModelIntoUi(currentModel).then(afterAppliedFunc);
14175 }
14176 else {
14177 this.resetUiToDefaults().then(afterAppliedFunc);
14178 }
14179 };
14180 ProvidedFilter.prototype.onBtClear = function () {
14181 var _this = this;
14182 this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });
14183 };
14184 ProvidedFilter.prototype.onBtReset = function () {
14185 this.onBtClear();
14186 this.onBtApply();
14187 };
14188 /**
14189 * Applies changes made in the UI to the filter, and returns true if the model has changed.
14190 */
14191 ProvidedFilter.prototype.applyModel = function (source) {
14192 if (source === void 0) { source = 'api'; }
14193 var newModel = this.getModelFromUi();
14194 if (!this.isModelValid(newModel)) {
14195 return false;
14196 }
14197 var previousModel = this.appliedModel;
14198 this.appliedModel = newModel;
14199 // models can be same if user pasted same content into text field, or maybe just changed the case
14200 // and it's a case insensitive filter
14201 return !this.areModelsEqual(previousModel, newModel);
14202 };
14203 ProvidedFilter.prototype.isModelValid = function (model) {
14204 return true;
14205 };
14206 ProvidedFilter.prototype.onFormSubmit = function (e) {
14207 e.preventDefault();
14208 };
14209 ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {
14210 if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }
14211 if (afterDataChange === void 0) { afterDataChange = false; }
14212 // Prevent form submission
14213 if (e) {
14214 e.preventDefault();
14215 }
14216 if (this.applyModel(afterDataChange ? 'rowDataUpdated' : 'ui')) {
14217 // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change
14218 // came from floating filter
14219 this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange });
14220 }
14221 var closeOnApply = this.providedFilterParams.closeOnApply;
14222 // only close if an apply button is visible, otherwise we'd be closing every time a change was made!
14223 if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {
14224 this.close(e);
14225 }
14226 };
14227 ProvidedFilter.prototype.onNewRowsLoaded = function () {
14228 };
14229 ProvidedFilter.prototype.close = function (e) {
14230 if (!this.hidePopup) {
14231 return;
14232 }
14233 var keyboardEvent = e;
14234 var key = keyboardEvent && keyboardEvent.key;
14235 var params;
14236 if (key === 'Enter' || key === 'Space') {
14237 params = { keyboardEvent: keyboardEvent };
14238 }
14239 this.hidePopup(params);
14240 this.hidePopup = null;
14241 };
14242 /**
14243 * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no
14244 * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can
14245 * be adjusted by using the apply parameter.
14246 */
14247 ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {
14248 if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }
14249 this.updateUiVisibility();
14250 this.providedFilterParams.filterModifiedCallback();
14251 if (this.applyActive && !this.isReadOnly()) {
14252 var isValid = this.isModelValid(this.getModelFromUi());
14253 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisabled"])(this.getRefElement('applyFilterButton'), !isValid);
14254 }
14255 if ((fromFloatingFilter && !apply) || apply === 'immediately') {
14256 this.onBtApply(fromFloatingFilter);
14257 }
14258 else if ((!this.applyActive && !apply) || apply === 'debounce') {
14259 this.onBtApplyDebounce();
14260 }
14261 };
14262 ProvidedFilter.prototype.afterGuiAttached = function (params) {
14263 if ((params === null || params === void 0 ? void 0 : params.container) === 'floatingFilter') {
14264 this.positionableFeature.restoreLastSize();
14265 this.positionableFeature.setResizable(this.gridOptionsService.is('enableRtl')
14266 ? { bottom: true, bottomLeft: true, left: true }
14267 : { bottom: true, bottomRight: true, right: true });
14268 }
14269 else {
14270 this.positionableFeature.removeSizeFromEl();
14271 this.positionableFeature.setResizable(false);
14272 }
14273 if (params == null) {
14274 return;
14275 }
14276 this.hidePopup = params.hidePopup;
14277 };
14278 ProvidedFilter.prototype.afterGuiDetached = function () {
14279 this.checkApplyDebounce();
14280 };
14281 // static, as used by floating filter also
14282 ProvidedFilter.getDebounceMs = function (params, debounceDefault) {
14283 if (ProvidedFilter.isUseApplyButton(params)) {
14284 if (params.debounceMs != null) {
14285 console.warn('AG Grid: debounceMs is ignored when apply button is present');
14286 }
14287 return 0;
14288 }
14289 return params.debounceMs != null ? params.debounceMs : debounceDefault;
14290 };
14291 // static, as used by floating filter also
14292 ProvidedFilter.isUseApplyButton = function (params) {
14293 return !!params.buttons && params.buttons.indexOf('apply') >= 0;
14294 };
14295 ProvidedFilter.prototype.destroy = function () {
14296 var eGui = this.getGui();
14297 if (eGui) {
14298 eGui.removeEventListener('submit', this.onFormSubmit);
14299 }
14300 this.hidePopup = null;
14301 _super.prototype.destroy.call(this);
14302 };
14303 ProvidedFilter.prototype.translate = function (key) {
14304 var translate = this.localeService.getLocaleTextFunc();
14305 return translate(key, _filterLocaleText__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_FILTER_LOCALE_TEXT"][key]);
14306 };
14307 ProvidedFilter.prototype.getCellValue = function (rowNode) {
14308 var _a = this.providedFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;
14309 return this.providedFilterParams.valueGetter({
14310 api: api,
14311 colDef: colDef,
14312 column: column,
14313 columnApi: columnApi,
14314 context: context,
14315 data: rowNode.data,
14316 getValue: function (field) { return rowNode.data[field]; },
14317 node: rowNode,
14318 });
14319 };
14320 // override to control positionable feature
14321 ProvidedFilter.prototype.getPositionableElement = function () {
14322 return this.eFilterBody;
14323 };
14324 __decorate([
14325 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
14326 ], ProvidedFilter.prototype, "rowModel", void 0);
14327 __decorate([
14328 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_7__["RefSelector"])('eFilterBody')
14329 ], ProvidedFilter.prototype, "eFilterBody", void 0);
14330 __decorate([
14331 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
14332 ], ProvidedFilter.prototype, "postConstruct", null);
14333 return ProvidedFilter;
14334}(_widgets_component__WEBPACK_IMPORTED_MODULE_6__["Component"]));
14335
14336
14337
14338/***/ }),
14339/* 63 */
14340/***/ (function(module, __webpack_exports__, __webpack_require__) {
14341
14342"use strict";
14343__webpack_require__.r(__webpack_exports__);
14344/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_FILTER_LOCALE_TEXT", function() { return DEFAULT_FILTER_LOCALE_TEXT; });
14345/**
14346 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
14347 * @version v29.2.0
14348 * @link https://www.ag-grid.com/
14349 * @license MIT
14350 */
14351var DEFAULT_FILTER_LOCALE_TEXT = {
14352 applyFilter: 'Apply',
14353 clearFilter: 'Clear',
14354 resetFilter: 'Reset',
14355 cancelFilter: 'Cancel',
14356 textFilter: 'Text Filter',
14357 numberFilter: 'Number Filter',
14358 dateFilter: 'Date Filter',
14359 setFilter: 'Set Filter',
14360 filterOoo: 'Filter...',
14361 empty: 'Choose One',
14362 equals: 'Equals',
14363 notEqual: 'Not equal',
14364 lessThan: 'Less than',
14365 greaterThan: 'Greater than',
14366 inRange: 'In range',
14367 inRangeStart: 'From',
14368 inRangeEnd: 'To',
14369 lessThanOrEqual: 'Less than or equals',
14370 greaterThanOrEqual: 'Greater than or equals',
14371 contains: 'Contains',
14372 notContains: 'Not contains',
14373 startsWith: 'Starts with',
14374 endsWith: 'Ends with',
14375 blank: 'Blank',
14376 notBlank: 'Not blank',
14377 andCondition: 'AND',
14378 orCondition: 'OR',
14379 dateFormatOoo: 'yyyy-mm-dd',
14380};
14381
14382
14383/***/ }),
14384/* 64 */
14385/***/ (function(module, __webpack_exports__, __webpack_require__) {
14386
14387"use strict";
14388__webpack_require__.r(__webpack_exports__);
14389/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusFeature", function() { return ManagedFocusFeature; });
14390/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
14391/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48);
14392/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18);
14393/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
14394/**
14395 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
14396 * @version v29.2.0
14397 * @link https://www.ag-grid.com/
14398 * @license MIT
14399 */
14400var __extends = (undefined && undefined.__extends) || (function () {
14401 var extendStatics = function (d, b) {
14402 extendStatics = Object.setPrototypeOf ||
14403 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14404 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
14405 return extendStatics(d, b);
14406 };
14407 return function (d, b) {
14408 extendStatics(d, b);
14409 function __() { this.constructor = d; }
14410 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14411 };
14412})();
14413var __assign = (undefined && undefined.__assign) || function () {
14414 __assign = Object.assign || function(t) {
14415 for (var s, i = 1, n = arguments.length; i < n; i++) {
14416 s = arguments[i];
14417 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
14418 t[p] = s[p];
14419 }
14420 return t;
14421 };
14422 return __assign.apply(this, arguments);
14423};
14424var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14425 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14426 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14427 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;
14428 return c > 3 && r && Object.defineProperty(target, key, r), r;
14429};
14430
14431
14432
14433
14434var ManagedFocusFeature = /** @class */ (function (_super) {
14435 __extends(ManagedFocusFeature, _super);
14436 function ManagedFocusFeature(eFocusableElement, callbacks) {
14437 if (callbacks === void 0) { callbacks = {}; }
14438 var _this = _super.call(this) || this;
14439 _this.eFocusableElement = eFocusableElement;
14440 _this.callbacks = callbacks;
14441 _this.callbacks = __assign({ shouldStopEventPropagation: function () { return false; }, onTabKeyDown: function (e) {
14442 if (e.defaultPrevented) {
14443 return;
14444 }
14445 var nextRoot = _this.focusService.findNextFocusableElement(_this.eFocusableElement, false, e.shiftKey);
14446 if (!nextRoot) {
14447 return;
14448 }
14449 nextRoot.focus();
14450 e.preventDefault();
14451 } }, callbacks);
14452 return _this;
14453 }
14454 ManagedFocusFeature.prototype.postConstruct = function () {
14455 this.eFocusableElement.classList.add(ManagedFocusFeature.FOCUS_MANAGED_CLASS);
14456 this.addKeyDownListeners(this.eFocusableElement);
14457 if (this.callbacks.onFocusIn) {
14458 this.addManagedListener(this.eFocusableElement, 'focusin', this.callbacks.onFocusIn);
14459 }
14460 if (this.callbacks.onFocusOut) {
14461 this.addManagedListener(this.eFocusableElement, 'focusout', this.callbacks.onFocusOut);
14462 }
14463 };
14464 ManagedFocusFeature.prototype.addKeyDownListeners = function (eGui) {
14465 var _this = this;
14466 this.addManagedListener(eGui, 'keydown', function (e) {
14467 if (e.defaultPrevented || Object(_utils_event__WEBPACK_IMPORTED_MODULE_2__["isStopPropagationForAgGrid"])(e)) {
14468 return;
14469 }
14470 if (_this.callbacks.shouldStopEventPropagation(e)) {
14471 Object(_utils_event__WEBPACK_IMPORTED_MODULE_2__["stopPropagationForAgGrid"])(e);
14472 return;
14473 }
14474 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].TAB) {
14475 _this.callbacks.onTabKeyDown(e);
14476 }
14477 else if (_this.callbacks.handleKeyDown) {
14478 _this.callbacks.handleKeyDown(e);
14479 }
14480 });
14481 };
14482 ManagedFocusFeature.FOCUS_MANAGED_CLASS = 'ag-focus-managed';
14483 __decorate([
14484 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
14485 ], ManagedFocusFeature.prototype, "focusService", void 0);
14486 __decorate([
14487 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
14488 ], ManagedFocusFeature.prototype, "postConstruct", null);
14489 return ManagedFocusFeature;
14490}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
14491
14492
14493
14494/***/ }),
14495/* 65 */
14496/***/ (function(module, __webpack_exports__, __webpack_require__) {
14497
14498"use strict";
14499__webpack_require__.r(__webpack_exports__);
14500/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PositionableFeature", function() { return PositionableFeature; });
14501/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
14502/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
14503/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
14504/**
14505 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
14506 * @version v29.2.0
14507 * @link https://www.ag-grid.com/
14508 * @license MIT
14509 */
14510var __extends = (undefined && undefined.__extends) || (function () {
14511 var extendStatics = function (d, b) {
14512 extendStatics = Object.setPrototypeOf ||
14513 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
14514 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
14515 return extendStatics(d, b);
14516 };
14517 return function (d, b) {
14518 extendStatics(d, b);
14519 function __() { this.constructor = d; }
14520 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14521 };
14522})();
14523var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14524 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14525 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14526 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;
14527 return c > 3 && r && Object.defineProperty(target, key, r), r;
14528};
14529
14530
14531
14532var RESIZE_CONTAINER_STYLE = 'ag-resizer-wrapper';
14533var RESIZE_TEMPLATE = /* html */ "<div class=\"" + RESIZE_CONTAINER_STYLE + "\">\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>";
14534var PositionableFeature = /** @class */ (function (_super) {
14535 __extends(PositionableFeature, _super);
14536 function PositionableFeature(element, config) {
14537 var _this = _super.call(this) || this;
14538 _this.element = element;
14539 _this.dragStartPosition = {
14540 x: 0,
14541 y: 0
14542 };
14543 _this.position = {
14544 x: 0,
14545 y: 0
14546 };
14547 _this.lastSize = {
14548 width: -1,
14549 height: -1
14550 };
14551 _this.positioned = false;
14552 _this.resizersAdded = false;
14553 _this.resizeListeners = [];
14554 _this.boundaryEl = null;
14555 _this.isResizing = false;
14556 _this.isMoving = false;
14557 _this.resizable = {};
14558 _this.movable = false;
14559 _this.currentResizer = null;
14560 _this.config = Object.assign({}, { popup: false }, config);
14561 return _this;
14562 }
14563 PositionableFeature.prototype.center = function () {
14564 var _a = this.offsetParent, clientHeight = _a.clientHeight, clientWidth = _a.clientWidth;
14565 var x = (clientWidth / 2) - (this.getWidth() / 2);
14566 var y = (clientHeight / 2) - (this.getHeight() / 2);
14567 this.offsetElement(x, y);
14568 };
14569 PositionableFeature.prototype.initialisePosition = function () {
14570 var _a = this.config, centered = _a.centered, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, x = _a.x, y = _a.y;
14571 if (!this.offsetParent) {
14572 this.setOffsetParent();
14573 }
14574 var computedMinHeight = 0;
14575 var computedMinWidth = 0;
14576 // here we don't use the main offset parent but the element's offsetParent
14577 // in order to calculated the minWidth and minHeight correctly
14578 var isVisible = !!this.element.offsetParent;
14579 if (isVisible) {
14580 var boundaryEl = this.findBoundaryElement();
14581 var offsetParentComputedStyles = window.getComputedStyle(boundaryEl);
14582 if (offsetParentComputedStyles.minWidth != null) {
14583 var paddingWidth = boundaryEl.offsetWidth - this.element.offsetWidth;
14584 computedMinWidth = parseInt(offsetParentComputedStyles.minWidth, 10) - paddingWidth;
14585 }
14586 if (offsetParentComputedStyles.minHeight != null) {
14587 var paddingHeight = boundaryEl.offsetHeight - this.element.offsetHeight;
14588 computedMinHeight = parseInt(offsetParentComputedStyles.minHeight, 10) - paddingHeight;
14589 }
14590 }
14591 this.minHeight = minHeight || computedMinHeight;
14592 this.minWidth = minWidth || computedMinWidth;
14593 if (width) {
14594 this.setWidth(width);
14595 }
14596 if (height) {
14597 this.setHeight(height);
14598 }
14599 if (!width || !height) {
14600 this.refreshSize();
14601 }
14602 if (centered) {
14603 this.center();
14604 }
14605 else if (x || y) {
14606 this.offsetElement(x, y);
14607 }
14608 else if (isVisible && forcePopupParentAsOffsetParent && this.boundaryEl) {
14609 var top_1 = parseFloat(this.boundaryEl.style.top);
14610 var left = parseFloat(this.boundaryEl.style.left);
14611 this.offsetElement(isNaN(left) ? 0 : left, isNaN(top_1) ? 0 : top_1);
14612 }
14613 this.positioned = !!this.offsetParent;
14614 };
14615 PositionableFeature.prototype.isPositioned = function () {
14616 return this.positioned;
14617 };
14618 PositionableFeature.prototype.getPosition = function () {
14619 return this.position;
14620 };
14621 PositionableFeature.prototype.setMovable = function (movable, moveElement) {
14622 if (!this.config.popup || movable === this.movable) {
14623 return;
14624 }
14625 this.movable = movable;
14626 var params = this.moveElementDragListener || {
14627 eElement: moveElement,
14628 onDragStart: this.onMoveStart.bind(this),
14629 onDragging: this.onMove.bind(this),
14630 onDragStop: this.onMoveEnd.bind(this)
14631 };
14632 if (movable) {
14633 this.dragService.addDragSource(params);
14634 this.moveElementDragListener = params;
14635 }
14636 else {
14637 this.dragService.removeDragSource(params);
14638 this.moveElementDragListener = undefined;
14639 }
14640 };
14641 PositionableFeature.prototype.setResizable = function (resizable) {
14642 var _this = this;
14643 this.clearResizeListeners();
14644 if (resizable) {
14645 this.addResizers();
14646 }
14647 else {
14648 this.removeResizers();
14649 }
14650 if (typeof resizable === 'boolean') {
14651 if (resizable === false) {
14652 return;
14653 }
14654 resizable = {
14655 topLeft: resizable,
14656 top: resizable,
14657 topRight: resizable,
14658 right: resizable,
14659 bottomRight: resizable,
14660 bottom: resizable,
14661 bottomLeft: resizable,
14662 left: resizable
14663 };
14664 }
14665 Object.keys(resizable).forEach(function (side) {
14666 var resizableStructure = resizable;
14667 var isSideResizable = !!resizableStructure[side];
14668 var resizerEl = _this.getResizerElement(side);
14669 var params = {
14670 dragStartPixels: 0,
14671 eElement: resizerEl,
14672 onDragStart: function (e) { return _this.onResizeStart(e, side); },
14673 onDragging: _this.onResize.bind(_this),
14674 onDragStop: function (e) { return _this.onResizeEnd(e, side); },
14675 };
14676 if (isSideResizable || (!_this.isAlive() && !isSideResizable)) {
14677 if (isSideResizable) {
14678 _this.dragService.addDragSource(params);
14679 _this.resizeListeners.push(params);
14680 resizerEl.style.pointerEvents = 'all';
14681 }
14682 else {
14683 resizerEl.style.pointerEvents = 'none';
14684 }
14685 _this.resizable[side] = isSideResizable;
14686 }
14687 });
14688 };
14689 PositionableFeature.prototype.removeSizeFromEl = function () {
14690 this.element.style.removeProperty('height');
14691 this.element.style.removeProperty('width');
14692 this.element.style.removeProperty('flex');
14693 };
14694 PositionableFeature.prototype.restoreLastSize = function () {
14695 this.element.style.flex = '0 0 auto';
14696 var _a = this.lastSize, height = _a.height, width = _a.width;
14697 if (width !== -1) {
14698 this.element.style.width = width + "px";
14699 }
14700 if (height !== -1) {
14701 this.element.style.height = height + "px";
14702 }
14703 };
14704 PositionableFeature.prototype.getHeight = function () {
14705 return this.element.offsetHeight;
14706 };
14707 PositionableFeature.prototype.setHeight = function (height) {
14708 var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;
14709 var eGui = this.element;
14710 var isPercent = false;
14711 if (typeof height === 'string' && height.indexOf('%') !== -1) {
14712 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedHeight"])(eGui, height);
14713 height = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getAbsoluteHeight"])(eGui);
14714 isPercent = true;
14715 }
14716 else if (this.positioned) {
14717 var elRect = this.element.getBoundingClientRect();
14718 var parentRect = this.offsetParent.getBoundingClientRect();
14719 height = Math.max(this.minHeight, height);
14720 var clientHeight = this.offsetParent.clientHeight;
14721 if (clientHeight) {
14722 var yPosition = popup ? this.position.y : elRect.top;
14723 var parentTop = popup ? 0 : parentRect.top;
14724 // When `forcePopupParentAsOffsetParent`, there may be elements that appear after the resizable element, but aren't included in the height.
14725 // Take these into account here
14726 var additionalHeight = 0;
14727 if (forcePopupParentAsOffsetParent && this.boundaryEl) {
14728 var bottom = this.boundaryEl.getBoundingClientRect().bottom;
14729 additionalHeight = bottom - elRect.bottom;
14730 }
14731 var availableHeight = clientHeight + parentTop - yPosition - additionalHeight;
14732 if (height > availableHeight) {
14733 height = availableHeight;
14734 }
14735 }
14736 }
14737 if (this.getHeight() === height) {
14738 return;
14739 }
14740 if (!isPercent) {
14741 if (popup) {
14742 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedHeight"])(eGui, height);
14743 }
14744 else {
14745 eGui.style.height = height + "px";
14746 eGui.style.flex = '0 0 auto';
14747 this.lastSize.height = typeof height === 'number' ? height : parseFloat(height);
14748 }
14749 }
14750 else {
14751 eGui.style.maxHeight = 'unset';
14752 eGui.style.minHeight = 'unset';
14753 }
14754 };
14755 PositionableFeature.prototype.getWidth = function () {
14756 return this.element.offsetWidth;
14757 };
14758 PositionableFeature.prototype.setWidth = function (width) {
14759 var eGui = this.element;
14760 var popup = this.config.popup;
14761 var isPercent = false;
14762 if (typeof width === 'string' && width.indexOf('%') !== -1) {
14763 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(eGui, width);
14764 width = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getAbsoluteWidth"])(eGui);
14765 isPercent = true;
14766 }
14767 else if (this.positioned) {
14768 width = Math.max(this.minWidth, width);
14769 var clientWidth = this.offsetParent.clientWidth;
14770 var xPosition = popup ? this.position.x : this.element.getBoundingClientRect().left;
14771 if (clientWidth && (width + xPosition > clientWidth)) {
14772 width = clientWidth - xPosition;
14773 }
14774 }
14775 if (this.getWidth() === width) {
14776 return;
14777 }
14778 if (!isPercent) {
14779 if (this.config.popup) {
14780 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(eGui, width);
14781 }
14782 else {
14783 eGui.style.width = width + "px";
14784 eGui.style.flex = ' unset';
14785 this.lastSize.width = typeof width === 'number' ? width : parseFloat(width);
14786 }
14787 }
14788 else {
14789 eGui.style.maxWidth = 'unset';
14790 eGui.style.minWidth = 'unset';
14791 }
14792 };
14793 PositionableFeature.prototype.offsetElement = function (x, y) {
14794 if (x === void 0) { x = 0; }
14795 if (y === void 0) { y = 0; }
14796 var ePopup = this.config.forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;
14797 this.popupService.positionPopup({
14798 ePopup: ePopup,
14799 keepWithinBounds: true,
14800 skipObserver: this.movable || this.isResizable(),
14801 updatePosition: function () { return ({ x: x, y: y }); }
14802 });
14803 this.setPosition(parseFloat(ePopup.style.left), parseFloat(ePopup.style.top));
14804 };
14805 PositionableFeature.prototype.setPosition = function (x, y) {
14806 this.position.x = x;
14807 this.position.y = y;
14808 };
14809 PositionableFeature.prototype.updateDragStartPosition = function (x, y) {
14810 this.dragStartPosition = { x: x, y: y };
14811 };
14812 PositionableFeature.prototype.calculateMouseMovement = function (params) {
14813 var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;
14814 var xDiff = e.clientX - this.dragStartPosition.x;
14815 var yDiff = e.clientY - this.dragStartPosition.y;
14816 var movementX = this.shouldSkipX(e, !!isLeft, !!anywhereWithin, xDiff) ? 0 : xDiff;
14817 var movementY = this.shouldSkipY(e, !!isTop, topBuffer, yDiff) ? 0 : yDiff;
14818 return { movementX: movementX, movementY: movementY };
14819 };
14820 PositionableFeature.prototype.shouldSkipX = function (e, isLeft, anywhereWithin, diff) {
14821 var elRect = this.element.getBoundingClientRect();
14822 var parentRect = this.offsetParent.getBoundingClientRect();
14823 var boundaryElRect = this.boundaryEl.getBoundingClientRect();
14824 var xPosition = this.config.popup ? this.position.x : elRect.left;
14825 // skip if cursor is outside of popupParent horizontally
14826 var skipX = ((xPosition <= 0 && parentRect.left >= e.clientX) ||
14827 (parentRect.right <= e.clientX && parentRect.right <= boundaryElRect.right));
14828 if (skipX) {
14829 return true;
14830 }
14831 if (isLeft) {
14832 skipX = (
14833 // skip if we are moving to the left and the cursor
14834 // is positioned to the right of the left side anchor
14835 (diff < 0 && e.clientX > xPosition + parentRect.left) ||
14836 // skip if we are moving to the right and the cursor
14837 // is positioned to the left of the dialog
14838 (diff > 0 && e.clientX < xPosition + parentRect.left));
14839 }
14840 else {
14841 if (anywhereWithin) {
14842 // if anywhereWithin is true, we allow to move
14843 // as long as the cursor is within the dialog
14844 skipX = ((diff < 0 && e.clientX > boundaryElRect.right) ||
14845 (diff > 0 && e.clientX < xPosition + parentRect.left));
14846 }
14847 else {
14848 skipX = (
14849 // if the movement is bound to the right side of the dialog
14850 // we skip if we are moving to the left and the cursor
14851 // is to the right of the dialog
14852 (diff < 0 && e.clientX > boundaryElRect.right) ||
14853 // or skip if we are moving to the right and the cursor
14854 // is to the left of the right side anchor
14855 (diff > 0 && e.clientX < boundaryElRect.right));
14856 }
14857 }
14858 return skipX;
14859 };
14860 PositionableFeature.prototype.shouldSkipY = function (e, isTop, topBuffer, diff) {
14861 if (topBuffer === void 0) { topBuffer = 0; }
14862 var elRect = this.element.getBoundingClientRect();
14863 var parentRect = this.offsetParent.getBoundingClientRect();
14864 var boundaryElRect = this.boundaryEl.getBoundingClientRect();
14865 var yPosition = this.config.popup ? this.position.y : elRect.top;
14866 // skip if cursor is outside of popupParent vertically
14867 var skipY = ((yPosition <= 0 && parentRect.top >= e.clientY) ||
14868 (parentRect.bottom <= e.clientY && parentRect.bottom <= boundaryElRect.bottom));
14869 if (skipY) {
14870 return true;
14871 }
14872 if (isTop) {
14873 skipY = (
14874 // skip if we are moving to towards top and the cursor is
14875 // below the top anchor + topBuffer
14876 // note: topBuffer is used when moving the dialog using the title bar
14877 (diff < 0 && e.clientY > yPosition + parentRect.top + topBuffer) ||
14878 // skip if we are moving to the bottom and the cursor is
14879 // above the top anchor
14880 (diff > 0 && e.clientY < yPosition + parentRect.top));
14881 }
14882 else {
14883 skipY = (
14884 // skip if we are moving towards the top and the cursor
14885 // is below the bottom anchor
14886 (diff < 0 && e.clientY > boundaryElRect.bottom) ||
14887 // skip if we are moving towards the bottom and the cursor
14888 // is above the bottom anchor
14889 (diff > 0 && e.clientY < boundaryElRect.bottom));
14890 }
14891 return skipY;
14892 };
14893 PositionableFeature.prototype.createResizeMap = function () {
14894 var eGui = this.element;
14895 this.resizerMap = {
14896 topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },
14897 top: { element: eGui.querySelector('[ref=eTopResizer]') },
14898 topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },
14899 right: { element: eGui.querySelector('[ref=eRightResizer]') },
14900 bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },
14901 bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },
14902 bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },
14903 left: { element: eGui.querySelector('[ref=eLeftResizer]') }
14904 };
14905 };
14906 PositionableFeature.prototype.addResizers = function () {
14907 if (this.resizersAdded) {
14908 return;
14909 }
14910 var eGui = this.element;
14911 if (!eGui) {
14912 return;
14913 }
14914 var parser = new DOMParser();
14915 var resizers = parser.parseFromString(RESIZE_TEMPLATE, 'text/html').body;
14916 eGui.appendChild(resizers.firstChild);
14917 this.createResizeMap();
14918 this.resizersAdded = true;
14919 };
14920 PositionableFeature.prototype.removeResizers = function () {
14921 this.resizerMap = undefined;
14922 var resizerEl = this.element.querySelector("." + RESIZE_CONTAINER_STYLE);
14923 if (resizerEl) {
14924 this.element.removeChild(resizerEl);
14925 }
14926 this.resizersAdded = false;
14927 };
14928 PositionableFeature.prototype.getResizerElement = function (side) {
14929 return this.resizerMap[side].element;
14930 };
14931 PositionableFeature.prototype.onResizeStart = function (e, side) {
14932 this.boundaryEl = this.findBoundaryElement();
14933 if (!this.positioned) {
14934 this.initialisePosition();
14935 }
14936 this.currentResizer = {
14937 isTop: !!side.match(/top/i),
14938 isRight: !!side.match(/right/i),
14939 isBottom: !!side.match(/bottom/i),
14940 isLeft: !!side.match(/left/i),
14941 };
14942 this.element.classList.add('ag-resizing');
14943 this.resizerMap[side].element.classList.add('ag-active');
14944 var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;
14945 if (!popup && !forcePopupParentAsOffsetParent) {
14946 this.applySizeToSiblings(this.currentResizer.isBottom || this.currentResizer.isTop);
14947 }
14948 this.isResizing = true;
14949 this.updateDragStartPosition(e.clientX, e.clientY);
14950 };
14951 PositionableFeature.prototype.getSiblings = function () {
14952 var element = this.element;
14953 var parent = element.parentElement;
14954 if (!parent) {
14955 return null;
14956 }
14957 return Array.prototype.slice.call(parent.children).filter(function (el) { return !el.classList.contains('ag-hidden'); });
14958 };
14959 PositionableFeature.prototype.getMinSizeOfSiblings = function () {
14960 var siblings = this.getSiblings() || [];
14961 var height = 0;
14962 var width = 0;
14963 for (var i = 0; i < siblings.length; i++) {
14964 var currentEl = siblings[i];
14965 var isFlex = !!currentEl.style.flex && currentEl.style.flex !== '0 0 auto';
14966 if (currentEl === this.element) {
14967 continue;
14968 }
14969 var nextHeight = this.minHeight || 0;
14970 var nextWidth = this.minWidth || 0;
14971 if (isFlex) {
14972 var computedStyle = window.getComputedStyle(currentEl);
14973 if (computedStyle.minHeight) {
14974 nextHeight = parseInt(computedStyle.minHeight, 10);
14975 }
14976 if (computedStyle.minWidth) {
14977 nextWidth = parseInt(computedStyle.minWidth, 10);
14978 }
14979 }
14980 else {
14981 nextHeight = currentEl.offsetHeight;
14982 nextWidth = currentEl.offsetWidth;
14983 }
14984 height += nextHeight;
14985 width += nextWidth;
14986 }
14987 return { height: height, width: width };
14988 };
14989 PositionableFeature.prototype.applySizeToSiblings = function (vertical) {
14990 var containerToFlex = null;
14991 var siblings = this.getSiblings();
14992 if (!siblings) {
14993 return;
14994 }
14995 for (var i = 0; i < siblings.length; i++) {
14996 var el = siblings[i];
14997 if (el === containerToFlex) {
14998 continue;
14999 }
15000 if (vertical) {
15001 el.style.height = el.offsetHeight + "px";
15002 }
15003 else {
15004 el.style.width = el.offsetWidth + "px";
15005 }
15006 el.style.flex = '0 0 auto';
15007 if (el === this.element) {
15008 containerToFlex = siblings[i + 1];
15009 }
15010 }
15011 if (containerToFlex) {
15012 containerToFlex.style.removeProperty('height');
15013 containerToFlex.style.removeProperty('min-height');
15014 containerToFlex.style.removeProperty('max-height');
15015 containerToFlex.style.flex = '1 1 auto';
15016 }
15017 };
15018 PositionableFeature.prototype.isResizable = function () {
15019 return Object.values(this.resizable).some(function (value) { return value; });
15020 };
15021 PositionableFeature.prototype.onResize = function (e) {
15022 if (!this.isResizing || !this.currentResizer) {
15023 return;
15024 }
15025 var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;
15026 var _b = this.currentResizer, isTop = _b.isTop, isRight = _b.isRight, isBottom = _b.isBottom, isLeft = _b.isLeft;
15027 var isHorizontal = isRight || isLeft;
15028 var isVertical = isBottom || isTop;
15029 var _c = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _c.movementX, movementY = _c.movementY;
15030 var xPosition = this.position.x;
15031 var yPosition = this.position.y;
15032 var offsetLeft = 0;
15033 var offsetTop = 0;
15034 if (isHorizontal && movementX) {
15035 var direction = isLeft ? -1 : 1;
15036 var oldWidth = this.getWidth();
15037 var newWidth = oldWidth + (movementX * direction);
15038 var skipWidth = false;
15039 if (isLeft) {
15040 offsetLeft = oldWidth - newWidth;
15041 if (xPosition + offsetLeft <= 0 || newWidth <= this.minWidth) {
15042 skipWidth = true;
15043 offsetLeft = 0;
15044 }
15045 }
15046 if (!skipWidth) {
15047 this.setWidth(newWidth);
15048 }
15049 }
15050 if (isVertical && movementY) {
15051 var direction = isTop ? -1 : 1;
15052 var oldHeight = this.getHeight();
15053 var newHeight = oldHeight + (movementY * direction);
15054 var skipHeight = false;
15055 if (isTop) {
15056 offsetTop = oldHeight - newHeight;
15057 if (yPosition + offsetTop <= 0 || newHeight <= this.minHeight) {
15058 skipHeight = true;
15059 offsetTop = 0;
15060 }
15061 }
15062 else {
15063 // do not let the size of all siblings be higher than the parent container
15064 if (!this.config.popup &&
15065 !this.config.forcePopupParentAsOffsetParent &&
15066 oldHeight < newHeight &&
15067 (this.getMinSizeOfSiblings().height + newHeight) > this.element.parentElement.offsetHeight) {
15068 skipHeight = true;
15069 }
15070 }
15071 if (!skipHeight) {
15072 this.setHeight(newHeight);
15073 }
15074 }
15075 this.updateDragStartPosition(e.clientX, e.clientY);
15076 if ((popup || forcePopupParentAsOffsetParent) && offsetLeft || offsetTop) {
15077 this.offsetElement(xPosition + offsetLeft, yPosition + offsetTop);
15078 }
15079 };
15080 PositionableFeature.prototype.onResizeEnd = function (e, side) {
15081 this.isResizing = false;
15082 this.currentResizer = null;
15083 this.boundaryEl = null;
15084 var params = {
15085 type: 'resize',
15086 api: this.gridOptionsService.api,
15087 columnApi: this.gridOptionsService.columnApi
15088 };
15089 this.element.classList.remove('ag-resizing');
15090 this.resizerMap[side].element.classList.remove('ag-active');
15091 this.dispatchEvent(params);
15092 };
15093 PositionableFeature.prototype.refreshSize = function () {
15094 var eGui = this.element;
15095 if (this.config.popup) {
15096 if (!this.config.width) {
15097 this.setWidth(eGui.offsetWidth);
15098 }
15099 if (!this.config.height) {
15100 this.setHeight(eGui.offsetHeight);
15101 }
15102 }
15103 };
15104 PositionableFeature.prototype.onMoveStart = function (e) {
15105 this.boundaryEl = this.findBoundaryElement();
15106 if (!this.positioned) {
15107 this.initialisePosition();
15108 }
15109 this.isMoving = true;
15110 this.element.classList.add('ag-moving');
15111 this.updateDragStartPosition(e.clientX, e.clientY);
15112 };
15113 PositionableFeature.prototype.onMove = function (e) {
15114 if (!this.isMoving) {
15115 return;
15116 }
15117 var _a = this.position, x = _a.x, y = _a.y;
15118 var topBuffer;
15119 if (this.config.calculateTopBuffer) {
15120 topBuffer = this.config.calculateTopBuffer();
15121 }
15122 var _b = this.calculateMouseMovement({
15123 e: e,
15124 isTop: true,
15125 anywhereWithin: true,
15126 topBuffer: topBuffer
15127 }), movementX = _b.movementX, movementY = _b.movementY;
15128 this.offsetElement(x + movementX, y + movementY);
15129 this.updateDragStartPosition(e.clientX, e.clientY);
15130 };
15131 PositionableFeature.prototype.onMoveEnd = function () {
15132 this.isMoving = false;
15133 this.boundaryEl = null;
15134 this.element.classList.remove('ag-moving');
15135 };
15136 PositionableFeature.prototype.setOffsetParent = function () {
15137 if (this.config.forcePopupParentAsOffsetParent) {
15138 this.offsetParent = this.popupService.getPopupParent();
15139 }
15140 else {
15141 this.offsetParent = this.element.offsetParent;
15142 }
15143 };
15144 PositionableFeature.prototype.findBoundaryElement = function () {
15145 var el = this.element;
15146 while (el) {
15147 if (window.getComputedStyle(el).position !== 'static') {
15148 return el;
15149 }
15150 el = el.parentElement;
15151 }
15152 return this.element;
15153 };
15154 PositionableFeature.prototype.clearResizeListeners = function () {
15155 while (this.resizeListeners.length) {
15156 var params = this.resizeListeners.pop();
15157 this.dragService.removeDragSource(params);
15158 }
15159 };
15160 PositionableFeature.prototype.destroy = function () {
15161 _super.prototype.destroy.call(this);
15162 if (this.moveElementDragListener) {
15163 this.dragService.removeDragSource(this.moveElementDragListener);
15164 }
15165 this.clearResizeListeners();
15166 this.removeResizers();
15167 };
15168 __decorate([
15169 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('popupService')
15170 ], PositionableFeature.prototype, "popupService", void 0);
15171 __decorate([
15172 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
15173 ], PositionableFeature.prototype, "dragService", void 0);
15174 return PositionableFeature;
15175}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
15176
15177
15178
15179/***/ }),
15180/* 66 */
15181/***/ (function(module, __webpack_exports__, __webpack_require__) {
15182
15183"use strict";
15184__webpack_require__.r(__webpack_exports__);
15185/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return AgSelect; });
15186/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67);
15187/* harmony import */ var _agPickerField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(69);
15188/* harmony import */ var _agList__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70);
15189/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);
15190/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
15191/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41);
15192/**
15193 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15194 * @version v29.2.0
15195 * @link https://www.ag-grid.com/
15196 * @license MIT
15197 */
15198var __extends = (undefined && undefined.__extends) || (function () {
15199 var extendStatics = function (d, b) {
15200 extendStatics = Object.setPrototypeOf ||
15201 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15202 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15203 return extendStatics(d, b);
15204 };
15205 return function (d, b) {
15206 extendStatics(d, b);
15207 function __() { this.constructor = d; }
15208 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15209 };
15210})();
15211var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15212 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15213 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15214 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;
15215 return c > 3 && r && Object.defineProperty(target, key, r), r;
15216};
15217
15218
15219
15220
15221
15222
15223var AgSelect = /** @class */ (function (_super) {
15224 __extends(AgSelect, _super);
15225 function AgSelect(config) {
15226 return _super.call(this, config, 'ag-select', 'smallDown', 'listbox') || this;
15227 }
15228 AgSelect.prototype.init = function () {
15229 var _this = this;
15230 this.listComponent = this.createBean(new _agList__WEBPACK_IMPORTED_MODULE_2__["AgList"]('select'));
15231 this.listComponent.setParentComponent(this);
15232 this.eWrapper.tabIndex = 0;
15233 this.listComponent.addManagedListener(this.listComponent, _agList__WEBPACK_IMPORTED_MODULE_2__["AgList"].EVENT_ITEM_SELECTED, function () {
15234 if (_this.hideList) {
15235 _this.hideList();
15236 }
15237 _this.dispatchEvent({ type: AgSelect.EVENT_ITEM_SELECTED });
15238 });
15239 this.listComponent.addManagedListener(this.listComponent, _agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"].EVENT_CHANGED, function () {
15240 _this.setValue(_this.listComponent.getValue(), false, true);
15241 if (_this.hideList) {
15242 _this.hideList();
15243 }
15244 });
15245 };
15246 AgSelect.prototype.showPicker = function () {
15247 var _this = this;
15248 var listGui = this.listComponent.getGui();
15249 var eDocument = this.gridOptionsService.getDocument();
15250 var destroyMouseWheelFunc = this.addManagedListener(eDocument.body, 'wheel', function (e) {
15251 if (!listGui.contains(e.target) && _this.hideList) {
15252 _this.hideList();
15253 }
15254 });
15255 var destroyFocusOutFunc = this.addManagedListener(listGui, 'focusout', function (e) {
15256 if (!listGui.contains(e.relatedTarget) && _this.hideList) {
15257 _this.hideList();
15258 }
15259 });
15260 var translate = this.localeService.getLocaleTextFunc();
15261 var addPopupRes = this.popupService.addPopup({
15262 modal: true,
15263 eChild: listGui,
15264 closeOnEsc: true,
15265 closedCallback: function () {
15266 _this.hideList = null;
15267 _this.isPickerDisplayed = false;
15268 destroyFocusOutFunc();
15269 destroyMouseWheelFunc();
15270 if (_this.isAlive()) {
15271 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaExpanded"])(_this.eWrapper, false);
15272 _this.getFocusableElement().focus();
15273 }
15274 },
15275 ariaLabel: translate('ariaLabelSelectField', 'Select Field')
15276 });
15277 if (addPopupRes) {
15278 this.hideList = addPopupRes.hideFunc;
15279 }
15280 this.isPickerDisplayed = true;
15281 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setElementWidth"])(listGui, Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getAbsoluteWidth"])(this.eWrapper));
15282 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaExpanded"])(this.eWrapper, true);
15283 listGui.style.maxHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getInnerHeight"])(this.popupService.getPopupParent()) + 'px';
15284 listGui.style.position = 'absolute';
15285 this.popupService.positionPopupByComponent({
15286 type: 'ag-list',
15287 eventSource: this.eWrapper,
15288 ePopup: listGui,
15289 position: 'under',
15290 keepWithinBounds: true
15291 });
15292 this.listComponent.refreshHighlighted();
15293 return this.listComponent;
15294 };
15295 AgSelect.prototype.addOptions = function (options) {
15296 var _this = this;
15297 options.forEach(function (option) { return _this.addOption(option); });
15298 return this;
15299 };
15300 AgSelect.prototype.addOption = function (option) {
15301 this.listComponent.addOption(option);
15302 return this;
15303 };
15304 AgSelect.prototype.setValue = function (value, silent, fromPicker) {
15305 if (this.value === value) {
15306 return this;
15307 }
15308 if (!fromPicker) {
15309 this.listComponent.setValue(value, true);
15310 }
15311 var newValue = this.listComponent.getValue();
15312 if (newValue === this.getValue()) {
15313 return this;
15314 }
15315 this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();
15316 return _super.prototype.setValue.call(this, value, silent);
15317 };
15318 AgSelect.prototype.destroy = function () {
15319 if (this.hideList) {
15320 this.hideList();
15321 }
15322 this.destroyBean(this.listComponent);
15323 _super.prototype.destroy.call(this);
15324 };
15325 AgSelect.EVENT_ITEM_SELECTED = 'selectedItem';
15326 __decorate([
15327 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('popupService')
15328 ], AgSelect.prototype, "popupService", void 0);
15329 __decorate([
15330 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
15331 ], AgSelect.prototype, "init", null);
15332 return AgSelect;
15333}(_agPickerField__WEBPACK_IMPORTED_MODULE_1__["AgPickerField"]));
15334
15335
15336
15337/***/ }),
15338/* 67 */
15339/***/ (function(module, __webpack_exports__, __webpack_require__) {
15340
15341"use strict";
15342__webpack_require__.r(__webpack_exports__);
15343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return AgAbstractField; });
15344/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68);
15345/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
15346/**
15347 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15348 * @version v29.2.0
15349 * @link https://www.ag-grid.com/
15350 * @license MIT
15351 */
15352var __extends = (undefined && undefined.__extends) || (function () {
15353 var extendStatics = function (d, b) {
15354 extendStatics = Object.setPrototypeOf ||
15355 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15356 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15357 return extendStatics(d, b);
15358 };
15359 return function (d, b) {
15360 extendStatics(d, b);
15361 function __() { this.constructor = d; }
15362 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15363 };
15364})();
15365
15366
15367var AgAbstractField = /** @class */ (function (_super) {
15368 __extends(AgAbstractField, _super);
15369 function AgAbstractField(config, template, className) {
15370 var _this = _super.call(this, config, template) || this;
15371 _this.className = className;
15372 return _this;
15373 }
15374 AgAbstractField.prototype.postConstruct = function () {
15375 _super.prototype.postConstruct.call(this);
15376 if (this.className) {
15377 this.addCssClass(this.className);
15378 }
15379 };
15380 AgAbstractField.prototype.onValueChange = function (callbackFn) {
15381 var _this = this;
15382 this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () { return callbackFn(_this.getValue()); });
15383 return this;
15384 };
15385 AgAbstractField.prototype.getWidth = function () {
15386 return this.getGui().clientWidth;
15387 };
15388 AgAbstractField.prototype.setWidth = function (width) {
15389 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setFixedWidth"])(this.getGui(), width);
15390 return this;
15391 };
15392 AgAbstractField.prototype.getPreviousValue = function () {
15393 return this.previousValue;
15394 };
15395 AgAbstractField.prototype.getValue = function () {
15396 return this.value;
15397 };
15398 AgAbstractField.prototype.setValue = function (value, silent) {
15399 if (this.value === value) {
15400 return this;
15401 }
15402 this.previousValue = this.value;
15403 this.value = value;
15404 if (!silent) {
15405 this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });
15406 }
15407 return this;
15408 };
15409 AgAbstractField.EVENT_CHANGED = 'valueChange';
15410 return AgAbstractField;
15411}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_0__["AgAbstractLabel"]));
15412
15413
15414
15415/***/ }),
15416/* 68 */
15417/***/ (function(module, __webpack_exports__, __webpack_require__) {
15418
15419"use strict";
15420__webpack_require__.r(__webpack_exports__);
15421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractLabel", function() { return AgAbstractLabel; });
15422/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
15423/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
15424/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
15425/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41);
15426/**
15427 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15428 * @version v29.2.0
15429 * @link https://www.ag-grid.com/
15430 * @license MIT
15431 */
15432var __extends = (undefined && undefined.__extends) || (function () {
15433 var extendStatics = function (d, b) {
15434 extendStatics = Object.setPrototypeOf ||
15435 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15436 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15437 return extendStatics(d, b);
15438 };
15439 return function (d, b) {
15440 extendStatics(d, b);
15441 function __() { this.constructor = d; }
15442 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15443 };
15444})();
15445var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15446 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15447 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15448 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;
15449 return c > 3 && r && Object.defineProperty(target, key, r), r;
15450};
15451
15452
15453
15454
15455var AgAbstractLabel = /** @class */ (function (_super) {
15456 __extends(AgAbstractLabel, _super);
15457 function AgAbstractLabel(config, template) {
15458 var _this = _super.call(this, template) || this;
15459 _this.labelSeparator = '';
15460 _this.labelAlignment = 'left';
15461 _this.disabled = false;
15462 _this.label = '';
15463 _this.config = config || {};
15464 return _this;
15465 }
15466 AgAbstractLabel.prototype.postConstruct = function () {
15467 this.addCssClass('ag-labeled');
15468 this.eLabel.classList.add('ag-label');
15469 var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;
15470 if (labelSeparator != null) {
15471 this.setLabelSeparator(labelSeparator);
15472 }
15473 if (label != null) {
15474 this.setLabel(label);
15475 }
15476 if (labelWidth != null) {
15477 this.setLabelWidth(labelWidth);
15478 }
15479 this.setLabelAlignment(labelAlignment || this.labelAlignment);
15480 this.refreshLabel();
15481 };
15482 AgAbstractLabel.prototype.refreshLabel = function () {
15483 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eLabel);
15484 if (typeof this.label === 'string') {
15485 this.eLabel.innerText = this.label + this.labelSeparator;
15486 }
15487 else if (this.label) {
15488 this.eLabel.appendChild(this.label);
15489 }
15490 if (this.label === '') {
15491 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eLabel, false);
15492 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaRole"])(this.eLabel, 'presentation');
15493 }
15494 else {
15495 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eLabel, true);
15496 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaRole"])(this.eLabel, null);
15497 }
15498 };
15499 AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {
15500 if (this.labelSeparator === labelSeparator) {
15501 return this;
15502 }
15503 this.labelSeparator = labelSeparator;
15504 if (this.label != null) {
15505 this.refreshLabel();
15506 }
15507 return this;
15508 };
15509 AgAbstractLabel.prototype.getLabelId = function () {
15510 this.eLabel.id = this.eLabel.id || "ag-" + this.getCompId() + "-label";
15511 return this.eLabel.id;
15512 };
15513 AgAbstractLabel.prototype.getLabel = function () {
15514 return this.label;
15515 };
15516 AgAbstractLabel.prototype.setLabel = function (label) {
15517 if (this.label === label) {
15518 return this;
15519 }
15520 this.label = label;
15521 this.refreshLabel();
15522 return this;
15523 };
15524 AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {
15525 var eGui = this.getGui();
15526 var eGuiClassList = eGui.classList;
15527 eGuiClassList.toggle('ag-label-align-left', alignment === 'left');
15528 eGuiClassList.toggle('ag-label-align-right', alignment === 'right');
15529 eGuiClassList.toggle('ag-label-align-top', alignment === 'top');
15530 return this;
15531 };
15532 AgAbstractLabel.prototype.setLabelEllipsis = function (hasEllipsis) {
15533 this.eLabel.classList.toggle('ag-label-ellipsis', hasEllipsis);
15534 return this;
15535 };
15536 AgAbstractLabel.prototype.setLabelWidth = function (width) {
15537 if (this.label == null) {
15538 return this;
15539 }
15540 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setElementWidth"])(this.eLabel, width);
15541 return this;
15542 };
15543 AgAbstractLabel.prototype.setDisabled = function (disabled) {
15544 disabled = !!disabled;
15545 var element = this.getGui();
15546 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisabled"])(element, disabled);
15547 element.classList.toggle('ag-disabled', disabled);
15548 this.disabled = disabled;
15549 return this;
15550 };
15551 AgAbstractLabel.prototype.isDisabled = function () {
15552 return !!this.disabled;
15553 };
15554 __decorate([
15555 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
15556 ], AgAbstractLabel.prototype, "postConstruct", null);
15557 return AgAbstractLabel;
15558}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
15559
15560
15561
15562/***/ }),
15563/* 69 */
15564/***/ (function(module, __webpack_exports__, __webpack_require__) {
15565
15566"use strict";
15567__webpack_require__.r(__webpack_exports__);
15568/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPickerField", function() { return AgPickerField; });
15569/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67);
15570/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
15571/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
15572/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46);
15573/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
15574/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(45);
15575/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48);
15576/**
15577 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15578 * @version v29.2.0
15579 * @link https://www.ag-grid.com/
15580 * @license MIT
15581 */
15582var __extends = (undefined && undefined.__extends) || (function () {
15583 var extendStatics = function (d, b) {
15584 extendStatics = Object.setPrototypeOf ||
15585 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15586 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15587 return extendStatics(d, b);
15588 };
15589 return function (d, b) {
15590 extendStatics(d, b);
15591 function __() { this.constructor = d; }
15592 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15593 };
15594})();
15595var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15596 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15597 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15598 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;
15599 return c > 3 && r && Object.defineProperty(target, key, r), r;
15600};
15601
15602
15603
15604
15605
15606
15607
15608var AgPickerField = /** @class */ (function (_super) {
15609 __extends(AgPickerField, _super);
15610 function AgPickerField(config, className, pickerIcon, ariaRole) {
15611 var _this = _super.call(this, config,
15612 /* 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 aria-expanded=\"false\"\n " + (ariaRole ? "role=\"" + ariaRole + "\"" : '') + "\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;
15613 _this.pickerIcon = pickerIcon;
15614 _this.isPickerDisplayed = false;
15615 _this.isDestroyingPicker = false;
15616 _this.skipClick = false;
15617 return _this;
15618 }
15619 AgPickerField.prototype.postConstruct = function () {
15620 var _this = this;
15621 _super.prototype.postConstruct.call(this);
15622 var displayId = this.getCompId() + "-display";
15623 this.eDisplayField.setAttribute('id', displayId);
15624 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaDescribedBy"])(this.eWrapper, displayId);
15625 var clickHandler = function () {
15626 if (_this.skipClick) {
15627 _this.skipClick = false;
15628 return;
15629 }
15630 if (_this.isDisabled()) {
15631 return;
15632 }
15633 _this.pickerComponent = _this.showPicker();
15634 };
15635 var eGui = this.getGui();
15636 this.addManagedListener(eGui, 'mousedown', function (e) {
15637 if (!_this.skipClick &&
15638 _this.pickerComponent &&
15639 _this.pickerComponent.isAlive() &&
15640 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isVisible"])(_this.pickerComponent.getGui()) &&
15641 eGui.contains(e.target)) {
15642 _this.skipClick = true;
15643 }
15644 });
15645 this.addManagedListener(eGui, 'keydown', function (e) {
15646 switch (e.key) {
15647 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].UP:
15648 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].DOWN:
15649 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER:
15650 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].SPACE:
15651 clickHandler();
15652 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ESCAPE:
15653 if (_this.isPickerDisplayed) {
15654 e.preventDefault();
15655 }
15656 break;
15657 }
15658 });
15659 this.addManagedListener(this.eWrapper, 'click', clickHandler);
15660 this.addManagedListener(this.eLabel, 'click', clickHandler);
15661 if (this.pickerIcon) {
15662 var icon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIconNoSpan"])(this.pickerIcon, this.gridOptionsService);
15663 if (icon) {
15664 this.eIcon.appendChild(icon);
15665 }
15666 }
15667 };
15668 AgPickerField.prototype.refreshLabel = function () {
15669 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getLabel())) {
15670 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabelledBy"])(this.eWrapper, this.getLabelId());
15671 }
15672 else {
15673 this.eWrapper.removeAttribute('aria-labelledby');
15674 }
15675 _super.prototype.refreshLabel.call(this);
15676 };
15677 AgPickerField.prototype.setAriaLabel = function (label) {
15678 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabel"])(this.eWrapper, label);
15679 return this;
15680 };
15681 AgPickerField.prototype.setInputWidth = function (width) {
15682 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["setElementWidth"])(this.eWrapper, width);
15683 return this;
15684 };
15685 AgPickerField.prototype.getFocusableElement = function () {
15686 return this.eWrapper;
15687 };
15688 __decorate([
15689 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLabel')
15690 ], AgPickerField.prototype, "eLabel", void 0);
15691 __decorate([
15692 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eWrapper')
15693 ], AgPickerField.prototype, "eWrapper", void 0);
15694 __decorate([
15695 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eDisplayField')
15696 ], AgPickerField.prototype, "eDisplayField", void 0);
15697 __decorate([
15698 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eIcon')
15699 ], AgPickerField.prototype, "eIcon", void 0);
15700 return AgPickerField;
15701}(_agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"]));
15702
15703
15704
15705/***/ }),
15706/* 70 */
15707/***/ (function(module, __webpack_exports__, __webpack_require__) {
15708
15709"use strict";
15710__webpack_require__.r(__webpack_exports__);
15711/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgList", function() { return AgList; });
15712/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67);
15713/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
15714/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
15715/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31);
15716/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48);
15717/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41);
15718/**
15719 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15720 * @version v29.2.0
15721 * @link https://www.ag-grid.com/
15722 * @license MIT
15723 */
15724var __extends = (undefined && undefined.__extends) || (function () {
15725 var extendStatics = function (d, b) {
15726 extendStatics = Object.setPrototypeOf ||
15727 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15728 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15729 return extendStatics(d, b);
15730 };
15731 return function (d, b) {
15732 extendStatics(d, b);
15733 function __() { this.constructor = d; }
15734 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15735 };
15736})();
15737var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15738 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15739 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15740 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;
15741 return c > 3 && r && Object.defineProperty(target, key, r), r;
15742};
15743
15744
15745
15746
15747
15748
15749var AgList = /** @class */ (function (_super) {
15750 __extends(AgList, _super);
15751 function AgList(cssIdentifier) {
15752 if (cssIdentifier === void 0) { cssIdentifier = 'default'; }
15753 var _this = _super.call(this, /* html */ "<div class=\"ag-list ag-" + cssIdentifier + "-list\" role=\"listbox\"></div>") || this;
15754 _this.cssIdentifier = cssIdentifier;
15755 _this.options = [];
15756 _this.itemEls = [];
15757 return _this;
15758 }
15759 AgList.prototype.init = function () {
15760 this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));
15761 };
15762 AgList.prototype.handleKeyDown = function (e) {
15763 var key = e.key;
15764 switch (key) {
15765 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].ENTER:
15766 if (!this.highlightedEl) {
15767 this.setValue(this.getValue());
15768 }
15769 else {
15770 var pos = this.itemEls.indexOf(this.highlightedEl);
15771 this.setValueByIndex(pos);
15772 }
15773 break;
15774 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN:
15775 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP:
15776 var isDown = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN;
15777 var itemToHighlight = void 0;
15778 e.preventDefault();
15779 if (!this.highlightedEl) {
15780 itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];
15781 }
15782 else {
15783 var currentIdx = this.itemEls.indexOf(this.highlightedEl);
15784 var nextPos = currentIdx + (isDown ? 1 : -1);
15785 nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);
15786 itemToHighlight = this.itemEls[nextPos];
15787 }
15788 this.highlightItem(itemToHighlight);
15789 break;
15790 }
15791 };
15792 AgList.prototype.addOptions = function (listOptions) {
15793 var _this = this;
15794 listOptions.forEach(function (listOption) { return _this.addOption(listOption); });
15795 return this;
15796 };
15797 AgList.prototype.addOption = function (listOption) {
15798 var value = listOption.value, text = listOption.text;
15799 var sanitisedText = Object(_utils_string__WEBPACK_IMPORTED_MODULE_3__["escapeString"])(text || value);
15800 this.options.push({ value: value, text: sanitisedText });
15801 this.renderOption(value, sanitisedText);
15802 this.updateIndices();
15803 return this;
15804 };
15805 AgList.prototype.updateIndices = function () {
15806 var options = this.getGui().querySelectorAll('.ag-list-item');
15807 options.forEach(function (option, idx) {
15808 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaPosInSet"])(option, idx + 1);
15809 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaSetSize"])(option, options.length);
15810 });
15811 };
15812 AgList.prototype.renderOption = function (value, text) {
15813 var _this = this;
15814 var itemEl = document.createElement('div');
15815 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaRole"])(itemEl, 'option');
15816 itemEl.classList.add('ag-list-item', "ag-" + this.cssIdentifier + "-list-item");
15817 itemEl.innerHTML = "<span>" + text + "</span>";
15818 itemEl.tabIndex = -1;
15819 this.itemEls.push(itemEl);
15820 this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });
15821 this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });
15822 this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });
15823 this.getGui().appendChild(itemEl);
15824 };
15825 AgList.prototype.setValue = function (value, silent) {
15826 if (this.value === value) {
15827 this.fireItemSelected();
15828 return this;
15829 }
15830 if (value == null) {
15831 this.reset();
15832 return this;
15833 }
15834 var idx = this.options.findIndex(function (option) { return option.value === value; });
15835 if (idx !== -1) {
15836 var option = this.options[idx];
15837 this.value = option.value;
15838 this.displayValue = option.text != null ? option.text : option.value;
15839 this.highlightItem(this.itemEls[idx]);
15840 if (!silent) {
15841 this.fireChangeEvent();
15842 }
15843 }
15844 return this;
15845 };
15846 AgList.prototype.setValueByIndex = function (idx) {
15847 return this.setValue(this.options[idx].value);
15848 };
15849 AgList.prototype.getValue = function () {
15850 return this.value;
15851 };
15852 AgList.prototype.getDisplayValue = function () {
15853 return this.displayValue;
15854 };
15855 AgList.prototype.refreshHighlighted = function () {
15856 var _this = this;
15857 this.clearHighlighted();
15858 var idx = this.options.findIndex(function (option) { return option.value === _this.value; });
15859 if (idx !== -1) {
15860 this.highlightItem(this.itemEls[idx]);
15861 }
15862 };
15863 AgList.prototype.reset = function () {
15864 this.value = null;
15865 this.displayValue = null;
15866 this.clearHighlighted();
15867 this.fireChangeEvent();
15868 };
15869 AgList.prototype.highlightItem = function (el) {
15870 if (!el.offsetParent) {
15871 return;
15872 }
15873 this.clearHighlighted();
15874 this.highlightedEl = el;
15875 this.highlightedEl.classList.add(AgList.ACTIVE_CLASS);
15876 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaSelected"])(this.highlightedEl, true);
15877 this.highlightedEl.focus();
15878 };
15879 AgList.prototype.clearHighlighted = function () {
15880 if (!this.highlightedEl || !this.highlightedEl.offsetParent) {
15881 return;
15882 }
15883 this.highlightedEl.classList.remove(AgList.ACTIVE_CLASS);
15884 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaSelected"])(this.highlightedEl, false);
15885 this.highlightedEl = null;
15886 };
15887 AgList.prototype.fireChangeEvent = function () {
15888 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractField"].EVENT_CHANGED });
15889 this.fireItemSelected();
15890 };
15891 AgList.prototype.fireItemSelected = function () {
15892 this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });
15893 };
15894 AgList.EVENT_ITEM_SELECTED = 'selectedItem';
15895 AgList.ACTIVE_CLASS = 'ag-active-item';
15896 __decorate([
15897 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
15898 ], AgList.prototype, "init", null);
15899 return AgList;
15900}(_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
15901
15902
15903
15904/***/ }),
15905/* 71 */
15906/***/ (function(module, __webpack_exports__, __webpack_require__) {
15907
15908"use strict";
15909__webpack_require__.r(__webpack_exports__);
15910/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return AgRadioButton; });
15911/* harmony import */ var _agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72);
15912/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
15913/**
15914 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15915 * @version v29.2.0
15916 * @link https://www.ag-grid.com/
15917 * @license MIT
15918 */
15919var __extends = (undefined && undefined.__extends) || (function () {
15920 var extendStatics = function (d, b) {
15921 extendStatics = Object.setPrototypeOf ||
15922 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15923 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15924 return extendStatics(d, b);
15925 };
15926 return function (d, b) {
15927 extendStatics(d, b);
15928 function __() { this.constructor = d; }
15929 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15930 };
15931})();
15932
15933
15934var AgRadioButton = /** @class */ (function (_super) {
15935 __extends(AgRadioButton, _super);
15936 function AgRadioButton(config) {
15937 return _super.call(this, config, 'ag-radio-button', 'radio') || this;
15938 }
15939 AgRadioButton.prototype.isSelected = function () {
15940 return this.eInput.checked;
15941 };
15942 AgRadioButton.prototype.toggle = function () {
15943 if (this.eInput.disabled) {
15944 return;
15945 }
15946 // do not allow an active radio button to be deselected
15947 if (!this.isSelected()) {
15948 this.setValue(true);
15949 }
15950 };
15951 AgRadioButton.prototype.addInputListeners = function () {
15952 _super.prototype.addInputListeners.call(this);
15953 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));
15954 };
15955 /**
15956 * This ensures that if another radio button in the same named group is selected, we deselect this radio button.
15957 * By default the browser does this for you, but we are managing classes ourselves in order to ensure input
15958 * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,
15959 * not deselected, so we need to use our own event.
15960 */
15961 AgRadioButton.prototype.onChange = function (event) {
15962 if (event.selected &&
15963 event.name &&
15964 this.eInput.name &&
15965 this.eInput.name === event.name &&
15966 event.id &&
15967 this.eInput.id !== event.id) {
15968 this.setValue(false, true);
15969 }
15970 };
15971 return AgRadioButton;
15972}(_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"]));
15973
15974
15975
15976/***/ }),
15977/* 72 */
15978/***/ (function(module, __webpack_exports__, __webpack_require__) {
15979
15980"use strict";
15981__webpack_require__.r(__webpack_exports__);
15982/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return AgCheckbox; });
15983/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
15984/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73);
15985/**
15986 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
15987 * @version v29.2.0
15988 * @link https://www.ag-grid.com/
15989 * @license MIT
15990 */
15991var __extends = (undefined && undefined.__extends) || (function () {
15992 var extendStatics = function (d, b) {
15993 extendStatics = Object.setPrototypeOf ||
15994 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
15995 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
15996 return extendStatics(d, b);
15997 };
15998 return function (d, b) {
15999 extendStatics(d, b);
16000 function __() { this.constructor = d; }
16001 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16002 };
16003})();
16004
16005
16006var AgCheckbox = /** @class */ (function (_super) {
16007 __extends(AgCheckbox, _super);
16008 function AgCheckbox(config, className, inputType) {
16009 if (className === void 0) { className = 'ag-checkbox'; }
16010 if (inputType === void 0) { inputType = 'checkbox'; }
16011 var _this = _super.call(this, config, className, inputType) || this;
16012 _this.labelAlignment = 'right';
16013 _this.selected = false;
16014 _this.readOnly = false;
16015 _this.passive = false;
16016 return _this;
16017 }
16018 AgCheckbox.prototype.addInputListeners = function () {
16019 this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));
16020 this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));
16021 };
16022 AgCheckbox.prototype.getNextValue = function () {
16023 return this.selected === undefined ? true : !this.selected;
16024 };
16025 AgCheckbox.prototype.setPassive = function (passive) {
16026 this.passive = passive;
16027 };
16028 AgCheckbox.prototype.isReadOnly = function () {
16029 return this.readOnly;
16030 };
16031 AgCheckbox.prototype.setReadOnly = function (readOnly) {
16032 this.eWrapper.classList.toggle('ag-disabled', readOnly);
16033 this.eInput.disabled = readOnly;
16034 this.readOnly = readOnly;
16035 };
16036 AgCheckbox.prototype.setDisabled = function (disabled) {
16037 this.eWrapper.classList.toggle('ag-disabled', disabled);
16038 return _super.prototype.setDisabled.call(this, disabled);
16039 };
16040 AgCheckbox.prototype.toggle = function () {
16041 if (this.eInput.disabled) {
16042 return;
16043 }
16044 var previousValue = this.isSelected();
16045 var nextValue = this.getNextValue();
16046 if (this.passive) {
16047 this.dispatchChange(nextValue, previousValue);
16048 }
16049 else {
16050 this.setValue(nextValue);
16051 }
16052 };
16053 AgCheckbox.prototype.getValue = function () {
16054 return this.isSelected();
16055 };
16056 AgCheckbox.prototype.setValue = function (value, silent) {
16057 this.refreshSelectedClass(value);
16058 this.setSelected(value, silent);
16059 return this;
16060 };
16061 AgCheckbox.prototype.setName = function (name) {
16062 var input = this.getInputElement();
16063 input.name = name;
16064 return this;
16065 };
16066 AgCheckbox.prototype.isSelected = function () {
16067 return this.selected;
16068 };
16069 AgCheckbox.prototype.setSelected = function (selected, silent) {
16070 if (this.isSelected() === selected) {
16071 return;
16072 }
16073 this.previousValue = this.isSelected();
16074 selected = this.selected = typeof selected === 'boolean' ? selected : undefined;
16075 this.eInput.checked = selected;
16076 this.eInput.indeterminate = selected === undefined;
16077 if (!silent) {
16078 this.dispatchChange(this.selected, this.previousValue);
16079 }
16080 };
16081 AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {
16082 this.dispatchEvent({ type: AgCheckbox.EVENT_CHANGED, selected: selected, previousValue: previousValue, event: event });
16083 var input = this.getInputElement();
16084 var checkboxChangedEvent = {
16085 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CHECKBOX_CHANGED,
16086 id: input.id,
16087 name: input.name,
16088 selected: selected,
16089 previousValue: previousValue
16090 };
16091 this.eventService.dispatchEvent(checkboxChangedEvent);
16092 };
16093 AgCheckbox.prototype.onCheckboxClick = function (e) {
16094 if (this.passive || this.eInput.disabled) {
16095 return;
16096 }
16097 var previousValue = this.isSelected();
16098 var selected = this.selected = e.target.checked;
16099 this.refreshSelectedClass(selected);
16100 this.dispatchChange(selected, previousValue, e);
16101 };
16102 AgCheckbox.prototype.refreshSelectedClass = function (value) {
16103 this.eWrapper.classList.toggle('ag-checked', value === true);
16104 this.eWrapper.classList.toggle('ag-indeterminate', value == null);
16105 };
16106 return AgCheckbox;
16107}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_1__["AgAbstractInputField"]));
16108
16109
16110
16111/***/ }),
16112/* 73 */
16113/***/ (function(module, __webpack_exports__, __webpack_require__) {
16114
16115"use strict";
16116__webpack_require__.r(__webpack_exports__);
16117/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgAbstractInputField", function() { return AgAbstractInputField; });
16118/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);
16119/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67);
16120/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
16121/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41);
16122/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
16123/**
16124 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16125 * @version v29.2.0
16126 * @link https://www.ag-grid.com/
16127 * @license MIT
16128 */
16129var __extends = (undefined && undefined.__extends) || (function () {
16130 var extendStatics = function (d, b) {
16131 extendStatics = Object.setPrototypeOf ||
16132 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16133 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16134 return extendStatics(d, b);
16135 };
16136 return function (d, b) {
16137 extendStatics(d, b);
16138 function __() { this.constructor = d; }
16139 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16140 };
16141})();
16142var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16143 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16144 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16145 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;
16146 return c > 3 && r && Object.defineProperty(target, key, r), r;
16147};
16148
16149
16150
16151
16152
16153var AgAbstractInputField = /** @class */ (function (_super) {
16154 __extends(AgAbstractInputField, _super);
16155 function AgAbstractInputField(config, className, inputType, displayFieldTag) {
16156 if (inputType === void 0) { inputType = 'text'; }
16157 if (displayFieldTag === void 0) { displayFieldTag = 'input'; }
16158 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;
16159 _this.inputType = inputType;
16160 _this.displayFieldTag = displayFieldTag;
16161 return _this;
16162 }
16163 AgAbstractInputField.prototype.postConstruct = function () {
16164 _super.prototype.postConstruct.call(this);
16165 this.setInputType();
16166 this.eLabel.classList.add(this.className + "-label");
16167 this.eWrapper.classList.add(this.className + "-input-wrapper");
16168 this.eInput.classList.add(this.className + "-input");
16169 this.addCssClass('ag-input-field');
16170 this.eInput.id = this.eInput.id || "ag-" + this.getCompId() + "-input";
16171 var _a = this.config, width = _a.width, value = _a.value;
16172 if (width != null) {
16173 this.setWidth(width);
16174 }
16175 if (value != null) {
16176 this.setValue(value);
16177 }
16178 this.addInputListeners();
16179 };
16180 AgAbstractInputField.prototype.refreshLabel = function () {
16181 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(this.getLabel())) {
16182 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabelledBy"])(this.eInput, this.getLabelId());
16183 }
16184 else {
16185 this.eInput.removeAttribute('aria-labelledby');
16186 }
16187 _super.prototype.refreshLabel.call(this);
16188 };
16189 AgAbstractInputField.prototype.addInputListeners = function () {
16190 var _this = this;
16191 this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });
16192 };
16193 AgAbstractInputField.prototype.setInputType = function () {
16194 if (this.displayFieldTag === 'input') {
16195 this.eInput.setAttribute('type', this.inputType);
16196 }
16197 };
16198 AgAbstractInputField.prototype.getInputElement = function () {
16199 return this.eInput;
16200 };
16201 AgAbstractInputField.prototype.setInputWidth = function (width) {
16202 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setElementWidth"])(this.eWrapper, width);
16203 return this;
16204 };
16205 AgAbstractInputField.prototype.setInputName = function (name) {
16206 this.getInputElement().setAttribute('name', name);
16207 return this;
16208 };
16209 AgAbstractInputField.prototype.getFocusableElement = function () {
16210 return this.eInput;
16211 };
16212 AgAbstractInputField.prototype.setMaxLength = function (length) {
16213 var eInput = this.eInput;
16214 eInput.maxLength = length;
16215 return this;
16216 };
16217 AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {
16218 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["addOrRemoveAttribute"])(this.eInput, 'placeholder', placeholder);
16219 return this;
16220 };
16221 AgAbstractInputField.prototype.setInputAriaLabel = function (label) {
16222 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(this.eInput, label);
16223 return this;
16224 };
16225 AgAbstractInputField.prototype.setDisabled = function (disabled) {
16226 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisabled"])(this.eInput, disabled);
16227 return _super.prototype.setDisabled.call(this, disabled);
16228 };
16229 __decorate([
16230 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eLabel')
16231 ], AgAbstractInputField.prototype, "eLabel", void 0);
16232 __decorate([
16233 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eWrapper')
16234 ], AgAbstractInputField.prototype, "eWrapper", void 0);
16235 __decorate([
16236 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eInput')
16237 ], AgAbstractInputField.prototype, "eInput", void 0);
16238 return AgAbstractInputField;
16239}(_agAbstractField__WEBPACK_IMPORTED_MODULE_1__["AgAbstractField"]));
16240
16241
16242
16243/***/ }),
16244/* 74 */
16245/***/ (function(module, __webpack_exports__, __webpack_require__) {
16246
16247"use strict";
16248__webpack_require__.r(__webpack_exports__);
16249/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return ScalarFilter; });
16250/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60);
16251/**
16252 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16253 * @version v29.2.0
16254 * @link https://www.ag-grid.com/
16255 * @license MIT
16256 */
16257var __extends = (undefined && undefined.__extends) || (function () {
16258 var extendStatics = function (d, b) {
16259 extendStatics = Object.setPrototypeOf ||
16260 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16261 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16262 return extendStatics(d, b);
16263 };
16264 return function (d, b) {
16265 extendStatics(d, b);
16266 function __() { this.constructor = d; }
16267 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16268 };
16269})();
16270
16271var ScalarFilter = /** @class */ (function (_super) {
16272 __extends(ScalarFilter, _super);
16273 function ScalarFilter() {
16274 return _super !== null && _super.apply(this, arguments) || this;
16275 }
16276 ScalarFilter.prototype.setParams = function (params) {
16277 _super.prototype.setParams.call(this, params);
16278 this.scalarFilterParams = params;
16279 };
16280 ScalarFilter.prototype.evaluateNullValue = function (filterType) {
16281 switch (filterType) {
16282 case ScalarFilter.EQUALS:
16283 case ScalarFilter.NOT_EQUAL:
16284 if (this.scalarFilterParams.includeBlanksInEquals) {
16285 return true;
16286 }
16287 break;
16288 case ScalarFilter.GREATER_THAN:
16289 case ScalarFilter.GREATER_THAN_OR_EQUAL:
16290 if (this.scalarFilterParams.includeBlanksInGreaterThan) {
16291 return true;
16292 }
16293 break;
16294 case ScalarFilter.LESS_THAN:
16295 case ScalarFilter.LESS_THAN_OR_EQUAL:
16296 if (this.scalarFilterParams.includeBlanksInLessThan) {
16297 return true;
16298 }
16299 break;
16300 case ScalarFilter.IN_RANGE:
16301 if (this.scalarFilterParams.includeBlanksInRange) {
16302 return true;
16303 }
16304 break;
16305 case ScalarFilter.BLANK:
16306 return true;
16307 case ScalarFilter.NOT_BLANK:
16308 return false;
16309 }
16310 return false;
16311 };
16312 ScalarFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel) {
16313 var comparator = this.comparator();
16314 var compareResult = values[0] != null ? comparator(values[0], cellValue) : 0;
16315 switch (filterModel.type) {
16316 case ScalarFilter.EQUALS:
16317 return compareResult === 0;
16318 case ScalarFilter.NOT_EQUAL:
16319 return compareResult !== 0;
16320 case ScalarFilter.GREATER_THAN:
16321 return compareResult > 0;
16322 case ScalarFilter.GREATER_THAN_OR_EQUAL:
16323 return compareResult >= 0;
16324 case ScalarFilter.LESS_THAN:
16325 return compareResult < 0;
16326 case ScalarFilter.LESS_THAN_OR_EQUAL:
16327 return compareResult <= 0;
16328 case ScalarFilter.IN_RANGE: {
16329 var compareToResult = comparator(values[1], cellValue);
16330 return this.scalarFilterParams.inRangeInclusive ?
16331 compareResult >= 0 && compareToResult <= 0 :
16332 compareResult > 0 && compareToResult < 0;
16333 }
16334 case ScalarFilter.BLANK:
16335 return this.isBlank(cellValue);
16336 case ScalarFilter.NOT_BLANK:
16337 return !this.isBlank(cellValue);
16338 default:
16339 console.warn('AG Grid: Unexpected type of filter "' + filterModel.type + '", it looks like the filter was configured with incorrect Filter Options');
16340 return true;
16341 }
16342 };
16343 return ScalarFilter;
16344}(_simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"]));
16345
16346
16347
16348/***/ }),
16349/* 75 */
16350/***/ (function(module, __webpack_exports__, __webpack_require__) {
16351
16352"use strict";
16353__webpack_require__.r(__webpack_exports__);
16354/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateFloatingFilter", function() { return DateFloatingFilter; });
16355/* harmony import */ var _dateFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58);
16356/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
16357/* harmony import */ var _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59);
16358/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57);
16359/* harmony import */ var _floating_provided_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(76);
16360/* harmony import */ var _providedFilter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62);
16361/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45);
16362/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(43);
16363/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);
16364/**
16365 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16366 * @version v29.2.0
16367 * @link https://www.ag-grid.com/
16368 * @license MIT
16369 */
16370var __extends = (undefined && undefined.__extends) || (function () {
16371 var extendStatics = function (d, b) {
16372 extendStatics = Object.setPrototypeOf ||
16373 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16374 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16375 return extendStatics(d, b);
16376 };
16377 return function (d, b) {
16378 extendStatics(d, b);
16379 function __() { this.constructor = d; }
16380 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16381 };
16382})();
16383var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16384 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16385 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16386 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;
16387 return c > 3 && r && Object.defineProperty(target, key, r), r;
16388};
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398var DateFloatingFilter = /** @class */ (function (_super) {
16399 __extends(DateFloatingFilter, _super);
16400 function DateFloatingFilter() {
16401 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;
16402 }
16403 DateFloatingFilter.prototype.getDefaultFilterOptions = function () {
16404 return _dateFilter__WEBPACK_IMPORTED_MODULE_0__["DateFilter"].DEFAULT_FILTER_OPTIONS;
16405 };
16406 DateFloatingFilter.prototype.init = function (params) {
16407 _super.prototype.init.call(this, params);
16408 this.params = params;
16409 this.filterParams = params.filterParams;
16410 this.createDateComponent();
16411 var translate = this.localeService.getLocaleTextFunc();
16412 this.eReadOnlyText
16413 .setDisabled(true)
16414 .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));
16415 this.filterModelFormatter = new _dateFilter__WEBPACK_IMPORTED_MODULE_0__["DateFilterModelFormatter"](this.filterParams, this.localeService, this.optionsFactory);
16416 };
16417 DateFloatingFilter.prototype.setEditable = function (editable) {
16418 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eDateWrapper, editable);
16419 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["setDisplayed"])(this.eReadOnlyText.getGui(), !editable);
16420 };
16421 DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {
16422 // We don't want to update the floating filter if the floating filter caused the change,
16423 // because the UI is already in sync. if we didn't do this, the UI would behave strangely
16424 // as it would be updating as the user is typing.
16425 // This is similar for data changes, which don't affect provided date floating filters
16426 if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {
16427 return;
16428 }
16429 _super.prototype.setLastTypeFromModel.call(this, model);
16430 var allowEditing = !this.isReadOnly() &&
16431 this.canWeEditAfterModelFromParentFilter(model);
16432 this.setEditable(allowEditing);
16433 if (allowEditing) {
16434 if (model) {
16435 var dateModel = model;
16436 this.dateComp.setDate(Object(_utils_date__WEBPACK_IMPORTED_MODULE_7__["parseDateTimeFromString"])(dateModel.dateFrom));
16437 }
16438 else {
16439 this.dateComp.setDate(null);
16440 }
16441 this.eReadOnlyText.setValue('');
16442 }
16443 else {
16444 this.eReadOnlyText.setValue(this.filterModelFormatter.getModelAsString(model));
16445 this.dateComp.setDate(null);
16446 }
16447 };
16448 DateFloatingFilter.prototype.onDateChanged = function () {
16449 var _this = this;
16450 var filterValueDate = this.dateComp.getDate();
16451 var filterValueText = Object(_utils_date__WEBPACK_IMPORTED_MODULE_7__["serialiseDate"])(filterValueDate);
16452 this.params.parentFilterInstance(function (filterInstance) {
16453 if (filterInstance) {
16454 var date = Object(_utils_date__WEBPACK_IMPORTED_MODULE_7__["parseDateTimeFromString"])(filterValueText);
16455 filterInstance.onFloatingFilterChanged(_this.getLastType() || null, date);
16456 }
16457 });
16458 };
16459 DateFloatingFilter.prototype.createDateComponent = function () {
16460 var _this = this;
16461 var debounceMs = _providedFilter__WEBPACK_IMPORTED_MODULE_5__["ProvidedFilter"].getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());
16462 var dateComponentParams = {
16463 onDateChanged: Object(_utils_function__WEBPACK_IMPORTED_MODULE_8__["debounce"])(this.onDateChanged.bind(this), debounceMs),
16464 filterParams: this.params.column.getColDef().filterParams
16465 };
16466 this.dateComp = new _dateCompWrapper__WEBPACK_IMPORTED_MODULE_2__["DateCompWrapper"](this.getContext(), this.userComponentFactory, dateComponentParams, this.eDateWrapper);
16467 this.addDestroyFunc(function () { return _this.dateComp.destroy(); });
16468 };
16469 DateFloatingFilter.prototype.getFilterModelFormatter = function () {
16470 return this.filterModelFormatter;
16471 };
16472 __decorate([
16473 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
16474 ], DateFloatingFilter.prototype, "userComponentFactory", void 0);
16475 __decorate([
16476 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eReadOnlyText')
16477 ], DateFloatingFilter.prototype, "eReadOnlyText", void 0);
16478 __decorate([
16479 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eDateWrapper')
16480 ], DateFloatingFilter.prototype, "eDateWrapper", void 0);
16481 return DateFloatingFilter;
16482}(_floating_provided_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__["SimpleFloatingFilter"]));
16483
16484
16485
16486/***/ }),
16487/* 76 */
16488/***/ (function(module, __webpack_exports__, __webpack_require__) {
16489
16490"use strict";
16491__webpack_require__.r(__webpack_exports__);
16492/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SimpleFloatingFilter", function() { return SimpleFloatingFilter; });
16493/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
16494/* harmony import */ var _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60);
16495/* harmony import */ var _provided_optionsFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61);
16496/**
16497 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16498 * @version v29.2.0
16499 * @link https://www.ag-grid.com/
16500 * @license MIT
16501 */
16502var __extends = (undefined && undefined.__extends) || (function () {
16503 var extendStatics = function (d, b) {
16504 extendStatics = Object.setPrototypeOf ||
16505 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16506 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16507 return extendStatics(d, b);
16508 };
16509 return function (d, b) {
16510 extendStatics(d, b);
16511 function __() { this.constructor = d; }
16512 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16513 };
16514})();
16515
16516
16517
16518var SimpleFloatingFilter = /** @class */ (function (_super) {
16519 __extends(SimpleFloatingFilter, _super);
16520 function SimpleFloatingFilter() {
16521 return _super !== null && _super.apply(this, arguments) || this;
16522 }
16523 SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {
16524 return 0;
16525 };
16526 // this is a user component, and IComponent has "public destroy()" as part of the interface.
16527 // so we need to override destroy() just to make the method public.
16528 SimpleFloatingFilter.prototype.destroy = function () {
16529 _super.prototype.destroy.call(this);
16530 };
16531 SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {
16532 return event && event.afterFloatingFilter;
16533 };
16534 SimpleFloatingFilter.prototype.isEventFromDataChange = function (event) {
16535 return event === null || event === void 0 ? void 0 : event.afterDataChange;
16536 };
16537 SimpleFloatingFilter.prototype.getLastType = function () {
16538 return this.lastType;
16539 };
16540 SimpleFloatingFilter.prototype.isReadOnly = function () {
16541 return this.readOnly;
16542 };
16543 SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {
16544 // if no model provided by the parent filter use default
16545 if (!model) {
16546 this.lastType = this.optionsFactory.getDefaultOption();
16547 return;
16548 }
16549 var isCombined = model.operator;
16550 var condition;
16551 if (isCombined) {
16552 var combinedModel = model;
16553 condition = combinedModel.conditions[0];
16554 }
16555 else {
16556 condition = model;
16557 }
16558 this.lastType = condition.type;
16559 };
16560 SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {
16561 if (!model) {
16562 // if no model, then we can edit as long as the lastType is something we can edit, as this
16563 // is the type we will provide to the parent filter if the user decides to use the floating filter.
16564 return this.isTypeEditable(this.lastType);
16565 }
16566 // never allow editing if the filter is combined (ie has two parts)
16567 var isCombined = model.operator;
16568 if (isCombined) {
16569 return false;
16570 }
16571 var simpleModel = model;
16572 return this.isTypeEditable(simpleModel.type);
16573 };
16574 SimpleFloatingFilter.prototype.init = function (params) {
16575 this.optionsFactory = new _provided_optionsFactory__WEBPACK_IMPORTED_MODULE_2__["OptionsFactory"]();
16576 this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());
16577 this.lastType = this.optionsFactory.getDefaultOption();
16578 // readOnly is a property of ProvidedFilterParams - we need to find a better (type-safe)
16579 // way to support reading this in the future.
16580 this.readOnly = !!params.filterParams.readOnly;
16581 // we are editable if:
16582 // 1) there is a type (user has configured filter wrong if not type)
16583 // AND
16584 // 2) the default type is not 'in range'
16585 var editable = this.isTypeEditable(this.lastType);
16586 this.setEditable(editable);
16587 };
16588 SimpleFloatingFilter.prototype.doesFilterHaveSingleInput = function (filterType) {
16589 var customFilterOption = this.optionsFactory.getCustomOption(filterType);
16590 var numberOfInputs = (customFilterOption || {}).numberOfInputs;
16591 return numberOfInputs == null || numberOfInputs == 1;
16592 };
16593 SimpleFloatingFilter.prototype.isTypeEditable = function (type) {
16594 var uneditableTypes = [
16595 _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].IN_RANGE, _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].EMPTY, _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].BLANK, _provided_simpleFilter__WEBPACK_IMPORTED_MODULE_1__["SimpleFilter"].NOT_BLANK,
16596 ];
16597 return !!type &&
16598 !this.isReadOnly() &&
16599 this.doesFilterHaveSingleInput(type) &&
16600 uneditableTypes.indexOf(type) < 0;
16601 };
16602 return SimpleFloatingFilter;
16603}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
16604
16605
16606
16607/***/ }),
16608/* 77 */
16609/***/ (function(module, __webpack_exports__, __webpack_require__) {
16610
16611"use strict";
16612__webpack_require__.r(__webpack_exports__);
16613/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultDateComponent", function() { return DefaultDateComponent; });
16614/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
16615/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
16616/* harmony import */ var _utils_date__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43);
16617/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
16618/**
16619 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16620 * @version v29.2.0
16621 * @link https://www.ag-grid.com/
16622 * @license MIT
16623 */
16624var __extends = (undefined && undefined.__extends) || (function () {
16625 var extendStatics = function (d, b) {
16626 extendStatics = Object.setPrototypeOf ||
16627 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16628 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16629 return extendStatics(d, b);
16630 };
16631 return function (d, b) {
16632 extendStatics(d, b);
16633 function __() { this.constructor = d; }
16634 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16635 };
16636})();
16637var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
16638 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16639 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16640 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;
16641 return c > 3 && r && Object.defineProperty(target, key, r), r;
16642};
16643
16644
16645
16646
16647var DefaultDateComponent = /** @class */ (function (_super) {
16648 __extends(DefaultDateComponent, _super);
16649 function DefaultDateComponent() {
16650 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;
16651 }
16652 // this is a user component, and IComponent has "public destroy()" as part of the interface.
16653 // so we need to override destroy() just to make the method public.
16654 DefaultDateComponent.prototype.destroy = function () {
16655 _super.prototype.destroy.call(this);
16656 };
16657 DefaultDateComponent.prototype.init = function (params) {
16658 var _this = this;
16659 var eDocument = this.gridOptionsService.getDocument();
16660 var inputElement = this.eDateInput.getInputElement();
16661 var shouldUseBrowserDatePicker = this.shouldUseBrowserDatePicker(params);
16662 if (shouldUseBrowserDatePicker) {
16663 inputElement.type = 'date';
16664 }
16665 // ensures that the input element is focussed when a clear button is clicked,
16666 // unless using safari as there is no clear button and focus does not work properly
16667 var usingSafariDatePicker = shouldUseBrowserDatePicker && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserSafari"])();
16668 this.addManagedListener(inputElement, 'mousedown', function () {
16669 if (_this.eDateInput.isDisabled() || usingSafariDatePicker) {
16670 return;
16671 }
16672 inputElement.focus();
16673 });
16674 this.addManagedListener(inputElement, 'input', function (e) {
16675 if (e.target !== eDocument.activeElement) {
16676 return;
16677 }
16678 if (_this.eDateInput.isDisabled()) {
16679 return;
16680 }
16681 params.onDateChanged();
16682 });
16683 var _a = params.filterParams || {}, minValidYear = _a.minValidYear, maxValidYear = _a.maxValidYear;
16684 if (minValidYear) {
16685 inputElement.min = minValidYear + "-01-01";
16686 }
16687 if (maxValidYear) {
16688 inputElement.max = maxValidYear + "-12-31";
16689 }
16690 };
16691 DefaultDateComponent.prototype.getDate = function () {
16692 return Object(_utils_date__WEBPACK_IMPORTED_MODULE_2__["parseDateTimeFromString"])(this.eDateInput.getValue());
16693 };
16694 DefaultDateComponent.prototype.setDate = function (date) {
16695 this.eDateInput.setValue(Object(_utils_date__WEBPACK_IMPORTED_MODULE_2__["serialiseDate"])(date, false));
16696 };
16697 DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {
16698 this.eDateInput.setInputPlaceholder(placeholder);
16699 };
16700 DefaultDateComponent.prototype.setDisabled = function (disabled) {
16701 this.eDateInput.setDisabled(disabled);
16702 };
16703 DefaultDateComponent.prototype.afterGuiAttached = function (params) {
16704 if (!params || !params.suppressFocus) {
16705 this.eDateInput.getInputElement().focus();
16706 }
16707 };
16708 DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {
16709 if (params.filterParams && params.filterParams.browserDatePicker != null) {
16710 return params.filterParams.browserDatePicker;
16711 }
16712 return Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserChrome"])() || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserFirefox"])() || (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserSafari"])() && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["getSafariVersion"])() >= 14.1);
16713 };
16714 __decorate([
16715 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eDateInput')
16716 ], DefaultDateComponent.prototype, "eDateInput", void 0);
16717 return DefaultDateComponent;
16718}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
16719
16720
16721
16722/***/ }),
16723/* 78 */
16724/***/ (function(module, __webpack_exports__, __webpack_require__) {
16725
16726"use strict";
16727__webpack_require__.r(__webpack_exports__);
16728/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFilterModelFormatter", function() { return NumberFilterModelFormatter; });
16729/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAllowedCharPattern", function() { return getAllowedCharPattern; });
16730/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return NumberFilter; });
16731/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60);
16732/* harmony import */ var _scalarFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74);
16733/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
16734/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79);
16735/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42);
16736/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(41);
16737/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80);
16738/**
16739 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16740 * @version v29.2.0
16741 * @link https://www.ag-grid.com/
16742 * @license MIT
16743 */
16744var __extends = (undefined && undefined.__extends) || (function () {
16745 var extendStatics = function (d, b) {
16746 extendStatics = Object.setPrototypeOf ||
16747 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16748 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16749 return extendStatics(d, b);
16750 };
16751 return function (d, b) {
16752 extendStatics(d, b);
16753 function __() { this.constructor = d; }
16754 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16755 };
16756})();
16757
16758
16759
16760
16761
16762
16763
16764var NumberFilterModelFormatter = /** @class */ (function (_super) {
16765 __extends(NumberFilterModelFormatter, _super);
16766 function NumberFilterModelFormatter() {
16767 return _super !== null && _super.apply(this, arguments) || this;
16768 }
16769 NumberFilterModelFormatter.prototype.conditionToString = function (condition, options) {
16770 var numberOfInputs = (options || {}).numberOfInputs;
16771 var isRange = condition.type == _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].IN_RANGE || numberOfInputs === 2;
16772 if (isRange) {
16773 return condition.filter + "-" + condition.filterTo;
16774 }
16775 // cater for when the type doesn't need a value
16776 if (condition.filter != null) {
16777 return "" + condition.filter;
16778 }
16779 return "" + condition.type;
16780 };
16781 return NumberFilterModelFormatter;
16782}(_simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilterModelFormatter"]));
16783
16784function getAllowedCharPattern(filterParams) {
16785 var allowedCharPattern = (filterParams !== null && filterParams !== void 0 ? filterParams : {}).allowedCharPattern;
16786 if (allowedCharPattern) {
16787 return allowedCharPattern;
16788 }
16789 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_4__["isBrowserChrome"])()) {
16790 // only Chrome and Edge (Chromium) have nice HTML5 number field handling, so for other browsers we provide an equivalent
16791 // constraint instead
16792 return '\\d\\-\\.';
16793 }
16794 return null;
16795}
16796var NumberFilter = /** @class */ (function (_super) {
16797 __extends(NumberFilter, _super);
16798 function NumberFilter() {
16799 var _this = _super.call(this, 'numberFilter') || this;
16800 _this.eValuesFrom = [];
16801 _this.eValuesTo = [];
16802 return _this;
16803 }
16804 NumberFilter.prototype.mapValuesFromModel = function (filterModel) {
16805 var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;
16806 return [
16807 this.processValue(filter),
16808 this.processValue(filterTo),
16809 ].slice(0, this.getNumberOfInputs(type));
16810 };
16811 NumberFilter.prototype.getDefaultDebounceMs = function () {
16812 return 500;
16813 };
16814 NumberFilter.prototype.comparator = function () {
16815 return function (left, right) {
16816 if (left === right) {
16817 return 0;
16818 }
16819 return left < right ? 1 : -1;
16820 };
16821 };
16822 NumberFilter.prototype.setParams = function (params) {
16823 this.numberFilterParams = params;
16824 _super.prototype.setParams.call(this, params);
16825 this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory);
16826 };
16827 NumberFilter.prototype.getDefaultFilterOptions = function () {
16828 return NumberFilter.DEFAULT_FILTER_OPTIONS;
16829 };
16830 NumberFilter.prototype.createValueElement = function () {
16831 var allowedCharPattern = getAllowedCharPattern(this.numberFilterParams);
16832 var eCondition = document.createElement('div');
16833 eCondition.classList.add('ag-filter-body');
16834 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_5__["setAriaRole"])(eCondition, 'presentation');
16835 this.createFromToElement(eCondition, this.eValuesFrom, 'from', allowedCharPattern);
16836 this.createFromToElement(eCondition, this.eValuesTo, 'to', allowedCharPattern);
16837 return eCondition;
16838 };
16839 NumberFilter.prototype.createFromToElement = function (eCondition, eValues, fromTo, allowedCharPattern) {
16840 var eValue = this.createManagedBean(allowedCharPattern ? new _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_3__["AgInputTextField"]({ allowedCharPattern: allowedCharPattern }) : new _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_6__["AgInputNumberField"]());
16841 eValue.addCssClass("ag-filter-" + fromTo);
16842 eValue.addCssClass('ag-filter-filter');
16843 eValues.push(eValue);
16844 eCondition.appendChild(eValue.getGui());
16845 };
16846 NumberFilter.prototype.removeValueElements = function (startPosition, deleteCount) {
16847 this.removeComponents(this.eValuesFrom, startPosition, deleteCount);
16848 this.removeComponents(this.eValuesTo, startPosition, deleteCount);
16849 };
16850 NumberFilter.prototype.getValues = function (position) {
16851 var _this = this;
16852 var result = [];
16853 this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {
16854 if (index < numberOfInputs) {
16855 result.push(_this.processValue(_this.stringToFloat(element.getValue())));
16856 }
16857 });
16858 return result;
16859 };
16860 NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
16861 return aSimple.filter === bSimple.filter
16862 && aSimple.filterTo === bSimple.filterTo
16863 && aSimple.type === bSimple.type;
16864 };
16865 NumberFilter.prototype.getFilterType = function () {
16866 return 'number';
16867 };
16868 NumberFilter.prototype.processValue = function (value) {
16869 if (value == null) {
16870 return null;
16871 }
16872 return isNaN(value) ? null : value;
16873 };
16874 NumberFilter.prototype.stringToFloat = function (value) {
16875 if (typeof value === 'number') {
16876 return value;
16877 }
16878 var filterText = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["makeNull"])(value);
16879 if (filterText != null && filterText.trim() === '') {
16880 filterText = null;
16881 }
16882 if (this.numberFilterParams.numberParser) {
16883 return this.numberFilterParams.numberParser(filterText);
16884 }
16885 return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);
16886 };
16887 NumberFilter.prototype.createCondition = function (position) {
16888 var type = this.getConditionType(position);
16889 var model = {
16890 filterType: this.getFilterType(),
16891 type: type
16892 };
16893 var values = this.getValues(position);
16894 if (values.length > 0) {
16895 model.filter = values[0];
16896 }
16897 if (values.length > 1) {
16898 model.filterTo = values[1];
16899 }
16900 return model;
16901 };
16902 NumberFilter.prototype.getInputs = function (position) {
16903 if (position >= this.eValuesFrom.length) {
16904 return [null, null];
16905 }
16906 return [this.eValuesFrom[position], this.eValuesTo[position]];
16907 };
16908 NumberFilter.prototype.getModelAsString = function (model) {
16909 var _a;
16910 return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';
16911 };
16912 NumberFilter.DEFAULT_FILTER_OPTIONS = [
16913 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].EQUALS,
16914 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].NOT_EQUAL,
16915 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].LESS_THAN,
16916 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].LESS_THAN_OR_EQUAL,
16917 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].GREATER_THAN,
16918 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].GREATER_THAN_OR_EQUAL,
16919 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].IN_RANGE,
16920 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].BLANK,
16921 _scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"].NOT_BLANK,
16922 ];
16923 return NumberFilter;
16924}(_scalarFilter__WEBPACK_IMPORTED_MODULE_1__["ScalarFilter"]));
16925
16926
16927
16928/***/ }),
16929/* 79 */
16930/***/ (function(module, __webpack_exports__, __webpack_require__) {
16931
16932"use strict";
16933__webpack_require__.r(__webpack_exports__);
16934/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return AgInputTextField; });
16935/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
16936/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
16937/**
16938 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
16939 * @version v29.2.0
16940 * @link https://www.ag-grid.com/
16941 * @license MIT
16942 */
16943var __extends = (undefined && undefined.__extends) || (function () {
16944 var extendStatics = function (d, b) {
16945 extendStatics = Object.setPrototypeOf ||
16946 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
16947 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
16948 return extendStatics(d, b);
16949 };
16950 return function (d, b) {
16951 extendStatics(d, b);
16952 function __() { this.constructor = d; }
16953 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
16954 };
16955})();
16956
16957
16958var AgInputTextField = /** @class */ (function (_super) {
16959 __extends(AgInputTextField, _super);
16960 function AgInputTextField(config, className, inputType) {
16961 if (className === void 0) { className = 'ag-text-field'; }
16962 if (inputType === void 0) { inputType = 'text'; }
16963 return _super.call(this, config, className, inputType) || this;
16964 }
16965 AgInputTextField.prototype.postConstruct = function () {
16966 _super.prototype.postConstruct.call(this);
16967 if (this.config.allowedCharPattern) {
16968 this.preventDisallowedCharacters();
16969 }
16970 };
16971 AgInputTextField.prototype.setValue = function (value, silent) {
16972 var ret = _super.prototype.setValue.call(this, value, silent);
16973 if (this.eInput.value !== value) {
16974 this.eInput.value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_1__["exists"])(value) ? value : '';
16975 }
16976 return ret;
16977 };
16978 AgInputTextField.prototype.preventDisallowedCharacters = function () {
16979 var pattern = new RegExp("[" + this.config.allowedCharPattern + "]");
16980 var preventDisallowedCharacters = function (event) {
16981 if (event.ctrlKey || event.metaKey) {
16982 // copy/paste can fall in here on certain browsers (e.g. Safari)
16983 return;
16984 }
16985 if (event.key && !pattern.test(event.key)) {
16986 event.preventDefault();
16987 }
16988 };
16989 this.addManagedListener(this.eInput, 'keypress', preventDisallowedCharacters);
16990 this.addManagedListener(this.eInput, 'paste', function (e) {
16991 var _a;
16992 var text = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');
16993 if (text && text.split('').some(function (c) { return !pattern.test(c); })) {
16994 e.preventDefault();
16995 }
16996 });
16997 };
16998 return AgInputTextField;
16999}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
17000
17001
17002
17003/***/ }),
17004/* 80 */
17005/***/ (function(module, __webpack_exports__, __webpack_require__) {
17006
17007"use strict";
17008__webpack_require__.r(__webpack_exports__);
17009/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return AgInputNumberField; });
17010/* harmony import */ var _agInputTextField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79);
17011/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
17012/**
17013 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
17014 * @version v29.2.0
17015 * @link https://www.ag-grid.com/
17016 * @license MIT
17017 */
17018var __extends = (undefined && undefined.__extends) || (function () {
17019 var extendStatics = function (d, b) {
17020 extendStatics = Object.setPrototypeOf ||
17021 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17022 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17023 return extendStatics(d, b);
17024 };
17025 return function (d, b) {
17026 extendStatics(d, b);
17027 function __() { this.constructor = d; }
17028 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17029 };
17030})();
17031
17032
17033var AgInputNumberField = /** @class */ (function (_super) {
17034 __extends(AgInputNumberField, _super);
17035 function AgInputNumberField(config) {
17036 return _super.call(this, config, 'ag-number-field', 'number') || this;
17037 }
17038 AgInputNumberField.prototype.postConstruct = function () {
17039 var _this = this;
17040 _super.prototype.postConstruct.call(this);
17041 this.addManagedListener(this.eInput, 'blur', function () {
17042 var floatedValue = parseFloat(_this.eInput.value);
17043 var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());
17044 if (_this.value !== value) {
17045 _this.setValue(value);
17046 }
17047 });
17048 this.addManagedListener(this.eInput, 'wheel', this.onWheel.bind(this));
17049 this.eInput.step = 'any';
17050 };
17051 AgInputNumberField.prototype.onWheel = function (e) {
17052 // Prevent default scroll events from incrementing / decrementing the input, since its inconsistent between browsers
17053 if (document.activeElement === this.eInput) {
17054 e.preventDefault();
17055 }
17056 };
17057 AgInputNumberField.prototype.normalizeValue = function (value) {
17058 if (value === '') {
17059 return '';
17060 }
17061 if (this.precision) {
17062 value = this.adjustPrecision(value);
17063 }
17064 var val = parseFloat(value);
17065 if (this.min != null && val < this.min) {
17066 value = this.min.toString();
17067 }
17068 else if (this.max != null && val > this.max) {
17069 value = this.max.toString();
17070 }
17071 return value;
17072 };
17073 AgInputNumberField.prototype.adjustPrecision = function (value) {
17074 if (this.precision) {
17075 var floatString = parseFloat(value).toFixed(this.precision);
17076 value = parseFloat(floatString).toString();
17077 }
17078 return value;
17079 };
17080 AgInputNumberField.prototype.setMin = function (min) {
17081 if (this.min === min) {
17082 return this;
17083 }
17084 this.min = min;
17085 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'min', min);
17086 return this;
17087 };
17088 AgInputNumberField.prototype.setMax = function (max) {
17089 if (this.max === max) {
17090 return this;
17091 }
17092 this.max = max;
17093 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'max', max);
17094 return this;
17095 };
17096 AgInputNumberField.prototype.setPrecision = function (precision) {
17097 this.precision = precision;
17098 return this;
17099 };
17100 AgInputNumberField.prototype.setStep = function (step) {
17101 if (this.step === step) {
17102 return this;
17103 }
17104 this.step = step;
17105 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addOrRemoveAttribute"])(this.eInput, 'step', step);
17106 return this;
17107 };
17108 AgInputNumberField.prototype.setValue = function (value, silent) {
17109 if (value != null) {
17110 value = this.adjustPrecision(value);
17111 var normalizedValue = this.normalizeValue(value);
17112 if (value != normalizedValue) {
17113 return this;
17114 }
17115 }
17116 return _super.prototype.setValue.call(this, value, silent);
17117 };
17118 return AgInputNumberField;
17119}(_agInputTextField__WEBPACK_IMPORTED_MODULE_0__["AgInputTextField"]));
17120
17121
17122
17123/***/ }),
17124/* 81 */
17125/***/ (function(module, __webpack_exports__, __webpack_require__) {
17126
17127"use strict";
17128__webpack_require__.r(__webpack_exports__);
17129/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberFloatingFilter", function() { return NumberFloatingFilter; });
17130/* harmony import */ var _numberFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78);
17131/* harmony import */ var _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82);
17132/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80);
17133/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79);
17134/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
17135/**
17136 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
17137 * @version v29.2.0
17138 * @link https://www.ag-grid.com/
17139 * @license MIT
17140 */
17141var __extends = (undefined && undefined.__extends) || (function () {
17142 var extendStatics = function (d, b) {
17143 extendStatics = Object.setPrototypeOf ||
17144 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17145 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17146 return extendStatics(d, b);
17147 };
17148 return function (d, b) {
17149 extendStatics(d, b);
17150 function __() { this.constructor = d; }
17151 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17152 };
17153})();
17154
17155
17156
17157
17158
17159var FloatingFilterNumberInputService = /** @class */ (function (_super) {
17160 __extends(FloatingFilterNumberInputService, _super);
17161 function FloatingFilterNumberInputService(params) {
17162 var _this = _super.call(this) || this;
17163 _this.params = params;
17164 _this.numberInputActive = true;
17165 return _this;
17166 }
17167 FloatingFilterNumberInputService.prototype.setupGui = function (parentElement) {
17168 this.eFloatingFilterNumberInput = this.createManagedBean(new _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_2__["AgInputNumberField"]());
17169 this.eFloatingFilterTextInput = this.createManagedBean(new _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_3__["AgInputTextField"]());
17170 this.eFloatingFilterTextInput.setDisabled(true);
17171 this.eFloatingFilterNumberInput.setInputAriaLabel(this.params.ariaLabel);
17172 this.eFloatingFilterTextInput.setInputAriaLabel(this.params.ariaLabel);
17173 parentElement.appendChild(this.eFloatingFilterNumberInput.getGui());
17174 parentElement.appendChild(this.eFloatingFilterTextInput.getGui());
17175 };
17176 FloatingFilterNumberInputService.prototype.setEditable = function (editable) {
17177 this.numberInputActive = editable;
17178 this.eFloatingFilterNumberInput.setDisplayed(this.numberInputActive);
17179 this.eFloatingFilterTextInput.setDisplayed(!this.numberInputActive);
17180 };
17181 FloatingFilterNumberInputService.prototype.getValue = function () {
17182 return this.getActiveInputElement().getValue();
17183 };
17184 FloatingFilterNumberInputService.prototype.setValue = function (value, silent) {
17185 this.getActiveInputElement().setValue(value, silent);
17186 };
17187 FloatingFilterNumberInputService.prototype.getActiveInputElement = function () {
17188 return this.numberInputActive ? this.eFloatingFilterNumberInput : this.eFloatingFilterTextInput;
17189 };
17190 FloatingFilterNumberInputService.prototype.addValueChangedListener = function (listener) {
17191 this.setupListeners(this.eFloatingFilterNumberInput.getGui(), listener);
17192 this.setupListeners(this.eFloatingFilterTextInput.getGui(), listener);
17193 };
17194 FloatingFilterNumberInputService.prototype.setupListeners = function (element, listener) {
17195 this.addManagedListener(element, 'input', listener);
17196 this.addManagedListener(element, 'keypress', listener);
17197 this.addManagedListener(element, 'keydown', listener);
17198 };
17199 return FloatingFilterNumberInputService;
17200}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
17201var NumberFloatingFilter = /** @class */ (function (_super) {
17202 __extends(NumberFloatingFilter, _super);
17203 function NumberFloatingFilter() {
17204 return _super !== null && _super.apply(this, arguments) || this;
17205 }
17206 NumberFloatingFilter.prototype.init = function (params) {
17207 _super.prototype.init.call(this, params);
17208 this.filterModelFormatter = new _numberFilter__WEBPACK_IMPORTED_MODULE_0__["NumberFilterModelFormatter"](this.localeService, this.optionsFactory);
17209 };
17210 NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {
17211 return _numberFilter__WEBPACK_IMPORTED_MODULE_0__["NumberFilter"].DEFAULT_FILTER_OPTIONS;
17212 };
17213 NumberFloatingFilter.prototype.getFilterModelFormatter = function () {
17214 return this.filterModelFormatter;
17215 };
17216 NumberFloatingFilter.prototype.createFloatingFilterInputService = function (ariaLabel) {
17217 var allowedCharPattern = Object(_numberFilter__WEBPACK_IMPORTED_MODULE_0__["getAllowedCharPattern"])(this.params.filterParams);
17218 if (allowedCharPattern) {
17219 // need to sue text input
17220 return this.createManagedBean(new _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__["FloatingFilterTextInputService"]({
17221 config: { allowedCharPattern: allowedCharPattern },
17222 ariaLabel: ariaLabel
17223 }));
17224 }
17225 return this.createManagedBean(new FloatingFilterNumberInputService({ ariaLabel: ariaLabel }));
17226 };
17227 return NumberFloatingFilter;
17228}(_floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__["TextInputFloatingFilter"]));
17229
17230
17231
17232/***/ }),
17233/* 82 */
17234/***/ (function(module, __webpack_exports__, __webpack_require__) {
17235
17236"use strict";
17237__webpack_require__.r(__webpack_exports__);
17238/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterTextInputService", function() { return FloatingFilterTextInputService; });
17239/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextInputFloatingFilter", function() { return TextInputFloatingFilter; });
17240/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);
17241/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
17242/* harmony import */ var _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62);
17243/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);
17244/* harmony import */ var _simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(76);
17245/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(79);
17246/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48);
17247/* harmony import */ var _provided_text_textFilter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83);
17248/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
17249/**
17250 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
17251 * @version v29.2.0
17252 * @link https://www.ag-grid.com/
17253 * @license MIT
17254 */
17255var __extends = (undefined && undefined.__extends) || (function () {
17256 var extendStatics = function (d, b) {
17257 extendStatics = Object.setPrototypeOf ||
17258 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17259 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17260 return extendStatics(d, b);
17261 };
17262 return function (d, b) {
17263 extendStatics(d, b);
17264 function __() { this.constructor = d; }
17265 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17266 };
17267})();
17268var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17269 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17270 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17271 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;
17272 return c > 3 && r && Object.defineProperty(target, key, r), r;
17273};
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283var FloatingFilterTextInputService = /** @class */ (function (_super) {
17284 __extends(FloatingFilterTextInputService, _super);
17285 function FloatingFilterTextInputService(params) {
17286 var _this = _super.call(this) || this;
17287 _this.params = params;
17288 return _this;
17289 }
17290 FloatingFilterTextInputService.prototype.setupGui = function (parentElement) {
17291 this.eFloatingFilterTextInput = this.createManagedBean(new _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_5__["AgInputTextField"](this.params.config));
17292 this.eFloatingFilterTextInput.setInputAriaLabel(this.params.ariaLabel);
17293 parentElement.appendChild(this.eFloatingFilterTextInput.getGui());
17294 };
17295 FloatingFilterTextInputService.prototype.setEditable = function (editable) {
17296 this.eFloatingFilterTextInput.setDisabled(!editable);
17297 };
17298 FloatingFilterTextInputService.prototype.getValue = function () {
17299 return this.eFloatingFilterTextInput.getValue();
17300 };
17301 FloatingFilterTextInputService.prototype.setValue = function (value, silent) {
17302 this.eFloatingFilterTextInput.setValue(value, silent);
17303 };
17304 FloatingFilterTextInputService.prototype.addValueChangedListener = function (listener) {
17305 var inputGui = this.eFloatingFilterTextInput.getGui();
17306 this.addManagedListener(inputGui, 'input', listener);
17307 this.addManagedListener(inputGui, 'keypress', listener);
17308 this.addManagedListener(inputGui, 'keydown', listener);
17309 };
17310 return FloatingFilterTextInputService;
17311}(_context_beanStub__WEBPACK_IMPORTED_MODULE_8__["BeanStub"]));
17312
17313var TextInputFloatingFilter = /** @class */ (function (_super) {
17314 __extends(TextInputFloatingFilter, _super);
17315 function TextInputFloatingFilter() {
17316 return _super !== null && _super.apply(this, arguments) || this;
17317 }
17318 TextInputFloatingFilter.prototype.postConstruct = function () {
17319 this.setTemplate(/* html */ "\n <div class=\"ag-floating-filter-input\" role=\"presentation\" ref=\"eFloatingFilterInputContainer\"></div>\n ");
17320 };
17321 TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {
17322 return 500;
17323 };
17324 TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {
17325 if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {
17326 // if the floating filter triggered the change, it is already in sync.
17327 // Data changes also do not affect provided text floating filters
17328 return;
17329 }
17330 this.setLastTypeFromModel(model);
17331 this.setEditable(this.canWeEditAfterModelFromParentFilter(model));
17332 this.floatingFilterInputService.setValue(this.getFilterModelFormatter().getModelAsString(model));
17333 };
17334 TextInputFloatingFilter.prototype.init = function (params) {
17335 this.params = params;
17336 var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);
17337 var translate = this.localeService.getLocaleTextFunc();
17338 var ariaLabel = displayName + " " + translate('ariaFilterInput', 'Filter Input');
17339 this.floatingFilterInputService = this.createFloatingFilterInputService(ariaLabel);
17340 this.floatingFilterInputService.setupGui(this.eFloatingFilterInputContainer);
17341 _super.prototype.init.call(this, params);
17342 this.applyActive = _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"].isUseApplyButton(this.params.filterParams);
17343 if (!this.isReadOnly()) {
17344 var debounceMs = _provided_providedFilter__WEBPACK_IMPORTED_MODULE_2__["ProvidedFilter"].getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());
17345 var toDebounce = Object(_utils_function__WEBPACK_IMPORTED_MODULE_1__["debounce"])(this.syncUpWithParentFilter.bind(this), debounceMs);
17346 this.floatingFilterInputService.addValueChangedListener(toDebounce);
17347 }
17348 };
17349 TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {
17350 var _this = this;
17351 var enterKeyPressed = e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ENTER;
17352 if (this.applyActive && !enterKeyPressed) {
17353 return;
17354 }
17355 var value = this.floatingFilterInputService.getValue();
17356 if (this.params.filterParams.trimInput) {
17357 value = _provided_text_textFilter__WEBPACK_IMPORTED_MODULE_7__["TextFilter"].trimInput(value);
17358 this.floatingFilterInputService.setValue(value, true); // ensure visible value is trimmed
17359 }
17360 this.params.parentFilterInstance(function (filterInstance) {
17361 if (filterInstance) {
17362 // NumberFilter is typed as number, but actually receives string values
17363 filterInstance.onFloatingFilterChanged(_this.getLastType() || null, value || null);
17364 }
17365 });
17366 };
17367 TextInputFloatingFilter.prototype.setEditable = function (editable) {
17368 this.floatingFilterInputService.setEditable(editable);
17369 };
17370 __decorate([
17371 Object(_context_context__WEBPACK_IMPORTED_MODULE_3__["Autowired"])('columnModel')
17372 ], TextInputFloatingFilter.prototype, "columnModel", void 0);
17373 __decorate([
17374 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eFloatingFilterInputContainer')
17375 ], TextInputFloatingFilter.prototype, "eFloatingFilterInputContainer", void 0);
17376 __decorate([
17377 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
17378 ], TextInputFloatingFilter.prototype, "postConstruct", null);
17379 return TextInputFloatingFilter;
17380}(_simpleFloatingFilter__WEBPACK_IMPORTED_MODULE_4__["SimpleFloatingFilter"]));
17381
17382
17383
17384/***/ }),
17385/* 83 */
17386/***/ (function(module, __webpack_exports__, __webpack_require__) {
17387
17388"use strict";
17389__webpack_require__.r(__webpack_exports__);
17390/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFilterModelFormatter", function() { return TextFilterModelFormatter; });
17391/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return TextFilter; });
17392/* harmony import */ var _simpleFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60);
17393/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79);
17394/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
17395/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39);
17396/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41);
17397/**
17398 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
17399 * @version v29.2.0
17400 * @link https://www.ag-grid.com/
17401 * @license MIT
17402 */
17403var __extends = (undefined && undefined.__extends) || (function () {
17404 var extendStatics = function (d, b) {
17405 extendStatics = Object.setPrototypeOf ||
17406 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17407 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17408 return extendStatics(d, b);
17409 };
17410 return function (d, b) {
17411 extendStatics(d, b);
17412 function __() { this.constructor = d; }
17413 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17414 };
17415})();
17416var __assign = (undefined && undefined.__assign) || function () {
17417 __assign = Object.assign || function(t) {
17418 for (var s, i = 1, n = arguments.length; i < n; i++) {
17419 s = arguments[i];
17420 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17421 t[p] = s[p];
17422 }
17423 return t;
17424 };
17425 return __assign.apply(this, arguments);
17426};
17427
17428
17429
17430
17431
17432var TextFilterModelFormatter = /** @class */ (function (_super) {
17433 __extends(TextFilterModelFormatter, _super);
17434 function TextFilterModelFormatter() {
17435 return _super !== null && _super.apply(this, arguments) || this;
17436 }
17437 TextFilterModelFormatter.prototype.conditionToString = function (condition, options) {
17438 var numberOfInputs = (options || {}).numberOfInputs;
17439 var isRange = condition.type == _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].IN_RANGE || numberOfInputs === 2;
17440 if (isRange) {
17441 return condition.filter + "-" + condition.filterTo;
17442 }
17443 // cater for when the type doesn't need a value
17444 if (condition.filter != null) {
17445 return "" + condition.filter;
17446 }
17447 return "" + condition.type;
17448 };
17449 return TextFilterModelFormatter;
17450}(_simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilterModelFormatter"]));
17451
17452var TextFilter = /** @class */ (function (_super) {
17453 __extends(TextFilter, _super);
17454 function TextFilter() {
17455 var _this = _super.call(this, 'textFilter') || this;
17456 _this.eValuesFrom = [];
17457 _this.eValuesTo = [];
17458 return _this;
17459 }
17460 TextFilter.trimInput = function (value) {
17461 var trimmedInput = value && value.trim();
17462 // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)
17463 return trimmedInput === '' ? value : trimmedInput;
17464 };
17465 TextFilter.prototype.getDefaultDebounceMs = function () {
17466 return 500;
17467 };
17468 TextFilter.prototype.setParams = function (params) {
17469 this.textFilterParams = params;
17470 _super.prototype.setParams.call(this, params);
17471 this.matcher = this.getTextMatcher();
17472 this.formatter = this.textFilterParams.textFormatter ||
17473 (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);
17474 this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);
17475 };
17476 TextFilter.prototype.getTextMatcher = function () {
17477 var legacyComparator = this.textFilterParams.textCustomComparator;
17478 if (legacyComparator) {
17479 _utils__WEBPACK_IMPORTED_MODULE_3__["_"].doOnce(function () { return console.warn('AG Grid - textCustomComparator is deprecated, use textMatcher instead.'); }, 'textCustomComparator.deprecated');
17480 return function (_a) {
17481 var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;
17482 return legacyComparator(filterOption, value, filterText);
17483 };
17484 }
17485 return this.textFilterParams.textMatcher || TextFilter.DEFAULT_MATCHER;
17486 };
17487 TextFilter.prototype.createCondition = function (position) {
17488 var type = this.getConditionType(position);
17489 var model = {
17490 filterType: this.getFilterType(),
17491 type: type,
17492 };
17493 var values = this.getValues(position);
17494 if (values.length > 0) {
17495 model.filter = values[0];
17496 }
17497 if (values.length > 1) {
17498 model.filterTo = values[1];
17499 }
17500 return model;
17501 };
17502 TextFilter.prototype.getFilterType = function () {
17503 return 'text';
17504 };
17505 TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {
17506 return aSimple.filter === bSimple.filter &&
17507 aSimple.filterTo === bSimple.filterTo &&
17508 aSimple.type === bSimple.type;
17509 };
17510 TextFilter.prototype.getInputs = function (position) {
17511 if (position >= this.eValuesFrom.length) {
17512 return [null, null];
17513 }
17514 return [this.eValuesFrom[position], this.eValuesTo[position]];
17515 };
17516 TextFilter.prototype.getValues = function (position) {
17517 var _this = this;
17518 var result = [];
17519 this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {
17520 if (index < numberOfInputs) {
17521 var value = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["makeNull"])(element.getValue());
17522 var cleanValue = (_this.textFilterParams.trimInput ? TextFilter.trimInput(value) : value) || null;
17523 result.push(cleanValue);
17524 element.setValue(cleanValue, true); // ensure clean value is visible
17525 }
17526 });
17527 return result;
17528 };
17529 TextFilter.prototype.getDefaultFilterOptions = function () {
17530 return TextFilter.DEFAULT_FILTER_OPTIONS;
17531 };
17532 TextFilter.prototype.createValueElement = function () {
17533 var eCondition = document.createElement('div');
17534 eCondition.classList.add('ag-filter-body');
17535 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaRole"])(eCondition, 'presentation');
17536 this.createFromToElement(eCondition, this.eValuesFrom, 'from');
17537 this.createFromToElement(eCondition, this.eValuesTo, 'to');
17538 return eCondition;
17539 };
17540 TextFilter.prototype.createFromToElement = function (eCondition, eValues, fromTo) {
17541 var eValue = this.createManagedBean(new _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_1__["AgInputTextField"]());
17542 eValue.addCssClass("ag-filter-" + fromTo);
17543 eValue.addCssClass('ag-filter-filter');
17544 eValues.push(eValue);
17545 eCondition.appendChild(eValue.getGui());
17546 };
17547 TextFilter.prototype.removeValueElements = function (startPosition, deleteCount) {
17548 this.removeComponents(this.eValuesFrom, startPosition, deleteCount);
17549 this.removeComponents(this.eValuesTo, startPosition, deleteCount);
17550 };
17551 TextFilter.prototype.mapValuesFromModel = function (filterModel) {
17552 var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;
17553 return [
17554 filter || null,
17555 filterTo || null,
17556 ].slice(0, this.getNumberOfInputs(type));
17557 };
17558 TextFilter.prototype.evaluateNullValue = function (filterType) {
17559 var filterTypesAllowNulls = [
17560 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].NOT_EQUAL, _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].NOT_CONTAINS, _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].BLANK,
17561 ];
17562 return filterType ? filterTypesAllowNulls.indexOf(filterType) >= 0 : false;
17563 };
17564 TextFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel, params) {
17565 var _this = this;
17566 var formattedValues = values.map(function (v) { return _this.formatter(v); }) || [];
17567 var cellValueFormatted = this.formatter(cellValue);
17568 var _a = this.textFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context, textFormatter = _a.textFormatter;
17569 if (filterModel.type === _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].BLANK) {
17570 return this.isBlank(cellValue);
17571 }
17572 else if (filterModel.type === _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].NOT_BLANK) {
17573 return !this.isBlank(cellValue);
17574 }
17575 var matcherParams = {
17576 api: api,
17577 colDef: colDef,
17578 column: column,
17579 columnApi: columnApi,
17580 context: context,
17581 node: params.node,
17582 data: params.data,
17583 filterOption: filterModel.type,
17584 value: cellValueFormatted,
17585 textFormatter: textFormatter,
17586 };
17587 return formattedValues.some(function (v) { return _this.matcher(__assign(__assign({}, matcherParams), { filterText: v })); });
17588 };
17589 TextFilter.prototype.getModelAsString = function (model) {
17590 var _a;
17591 return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';
17592 };
17593 TextFilter.DEFAULT_FILTER_OPTIONS = [
17594 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].CONTAINS,
17595 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].NOT_CONTAINS,
17596 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].EQUALS,
17597 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].NOT_EQUAL,
17598 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].STARTS_WITH,
17599 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].ENDS_WITH,
17600 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].BLANK,
17601 _simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"].NOT_BLANK,
17602 ];
17603 TextFilter.DEFAULT_FORMATTER = function (from) { return from; };
17604 TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };
17605 TextFilter.DEFAULT_MATCHER = function (_a) {
17606 var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;
17607 if (filterText == null) {
17608 return false;
17609 }
17610 switch (filterOption) {
17611 case TextFilter.CONTAINS:
17612 return value.indexOf(filterText) >= 0;
17613 case TextFilter.NOT_CONTAINS:
17614 return value.indexOf(filterText) < 0;
17615 case TextFilter.EQUALS:
17616 return value === filterText;
17617 case TextFilter.NOT_EQUAL:
17618 return value != filterText;
17619 case TextFilter.STARTS_WITH:
17620 return value.indexOf(filterText) === 0;
17621 case TextFilter.ENDS_WITH:
17622 var index = value.lastIndexOf(filterText);
17623 return index >= 0 && index === (value.length - filterText.length);
17624 default:
17625 return false;
17626 }
17627 };
17628 return TextFilter;
17629}(_simpleFilter__WEBPACK_IMPORTED_MODULE_0__["SimpleFilter"]));
17630
17631
17632
17633/***/ }),
17634/* 84 */
17635/***/ (function(module, __webpack_exports__, __webpack_require__) {
17636
17637"use strict";
17638__webpack_require__.r(__webpack_exports__);
17639/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return TextFloatingFilter; });
17640/* harmony import */ var _textFilter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(83);
17641/* harmony import */ var _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82);
17642/**
17643 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
17644 * @version v29.2.0
17645 * @link https://www.ag-grid.com/
17646 * @license MIT
17647 */
17648var __extends = (undefined && undefined.__extends) || (function () {
17649 var extendStatics = function (d, b) {
17650 extendStatics = Object.setPrototypeOf ||
17651 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17652 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17653 return extendStatics(d, b);
17654 };
17655 return function (d, b) {
17656 extendStatics(d, b);
17657 function __() { this.constructor = d; }
17658 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17659 };
17660})();
17661
17662
17663var TextFloatingFilter = /** @class */ (function (_super) {
17664 __extends(TextFloatingFilter, _super);
17665 function TextFloatingFilter() {
17666 return _super !== null && _super.apply(this, arguments) || this;
17667 }
17668 TextFloatingFilter.prototype.init = function (params) {
17669 _super.prototype.init.call(this, params);
17670 this.filterModelFormatter = new _textFilter__WEBPACK_IMPORTED_MODULE_0__["TextFilterModelFormatter"](this.localeService, this.optionsFactory);
17671 };
17672 TextFloatingFilter.prototype.getDefaultFilterOptions = function () {
17673 return _textFilter__WEBPACK_IMPORTED_MODULE_0__["TextFilter"].DEFAULT_FILTER_OPTIONS;
17674 };
17675 TextFloatingFilter.prototype.getFilterModelFormatter = function () {
17676 return this.filterModelFormatter;
17677 };
17678 TextFloatingFilter.prototype.createFloatingFilterInputService = function (ariaLabel) {
17679 return this.createManagedBean(new _floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__["FloatingFilterTextInputService"]({
17680 ariaLabel: ariaLabel
17681 }));
17682 };
17683 return TextFloatingFilter;
17684}(_floating_provided_textInputFloatingFilter__WEBPACK_IMPORTED_MODULE_1__["TextInputFloatingFilter"]));
17685
17686
17687
17688/***/ }),
17689/* 85 */
17690/***/ (function(module, __webpack_exports__, __webpack_require__) {
17691
17692"use strict";
17693__webpack_require__.r(__webpack_exports__);
17694/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComp", function() { return HeaderComp; });
17695/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
17696/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9);
17697/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
17698/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
17699/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
17700/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
17701/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46);
17702/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31);
17703/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(38);
17704/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(57);
17705/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86);
17706/* harmony import */ var _sortIndicatorComp__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(87);
17707/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(26);
17708/**
17709 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
17710 * @version v29.2.0
17711 * @link https://www.ag-grid.com/
17712 * @license MIT
17713 */
17714var __extends = (undefined && undefined.__extends) || (function () {
17715 var extendStatics = function (d, b) {
17716 extendStatics = Object.setPrototypeOf ||
17717 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
17718 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
17719 return extendStatics(d, b);
17720 };
17721 return function (d, b) {
17722 extendStatics(d, b);
17723 function __() { this.constructor = d; }
17724 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
17725 };
17726})();
17727var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
17728 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17729 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17730 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;
17731 return c > 3 && r && Object.defineProperty(target, key, r), r;
17732};
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746var HeaderComp = /** @class */ (function (_super) {
17747 __extends(HeaderComp, _super);
17748 function HeaderComp() {
17749 var _this = _super !== null && _super.apply(this, arguments) || this;
17750 _this.lastMovingChanged = 0;
17751 return _this;
17752 }
17753 // this is a user component, and IComponent has "public destroy()" as part of the interface.
17754 // so we need to override destroy() just to make the method public.
17755 HeaderComp.prototype.destroy = function () {
17756 _super.prototype.destroy.call(this);
17757 };
17758 HeaderComp.prototype.refresh = function (params) {
17759 this.params = params;
17760 // if template changed, then recreate the whole comp, the code required to manage
17761 // a changing template is to difficult for what it's worth.
17762 if (this.workOutTemplate() != this.currentTemplate) {
17763 return false;
17764 }
17765 if (this.workOutShowMenu() != this.currentShowMenu) {
17766 return false;
17767 }
17768 if (this.workOutSort() != this.currentSort) {
17769 return false;
17770 }
17771 this.setDisplayName(params);
17772 return true;
17773 };
17774 HeaderComp.prototype.workOutTemplate = function () {
17775 var template = Object(_utils_array__WEBPACK_IMPORTED_MODULE_2__["firstExistingValue"])(this.params.template, HeaderComp.TEMPLATE);
17776 // take account of any newlines & whitespace before/after the actual template
17777 template = template && template.trim ? template.trim() : template;
17778 return template;
17779 };
17780 HeaderComp.prototype.init = function (params) {
17781 this.params = params;
17782 this.currentTemplate = this.workOutTemplate();
17783 this.setTemplate(this.currentTemplate);
17784 this.setupTap();
17785 this.setupIcons(params.column);
17786 this.setMenu();
17787 this.setupSort();
17788 this.setupFilterIcon();
17789 this.setDisplayName(params);
17790 };
17791 HeaderComp.prototype.setDisplayName = function (params) {
17792 if (this.currentDisplayName != params.displayName) {
17793 this.currentDisplayName = params.displayName;
17794 var displayNameSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_7__["escapeString"])(this.currentDisplayName);
17795 if (this.eText) {
17796 this.eText.innerHTML = displayNameSanitised;
17797 }
17798 }
17799 };
17800 HeaderComp.prototype.setupIcons = function (column) {
17801 this.addInIcon('menu', this.eMenu, column);
17802 this.addInIcon('filter', this.eFilter, column);
17803 };
17804 HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {
17805 if (eParent == null) {
17806 return;
17807 }
17808 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_6__["createIconNoSpan"])(iconName, this.gridOptionsService, column);
17809 if (eIcon) {
17810 eParent.appendChild(eIcon);
17811 }
17812 };
17813 HeaderComp.prototype.setupTap = function () {
17814 var _this = this;
17815 var gridOptionsService = this.gridOptionsService;
17816 if (gridOptionsService.is('suppressTouch')) {
17817 return;
17818 }
17819 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"](this.getGui(), true);
17820 var suppressMenuHide = gridOptionsService.is('suppressMenuHide');
17821 var tapMenuButton = suppressMenuHide && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.eMenu);
17822 var menuTouchListener = tapMenuButton ? new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"](this.eMenu, true) : touchListener;
17823 if (this.params.enableMenu) {
17824 var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';
17825 var showMenuFn = function (event) {
17826 gridOptionsService.api.showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);
17827 };
17828 this.addManagedListener(menuTouchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"][eventType], showMenuFn);
17829 }
17830 if (this.params.enableSorting) {
17831 var tapListener = function (event) {
17832 var target = event.touchStart.target;
17833 // When suppressMenuHide is true, a tap on the menu icon will bubble up
17834 // to the header container, in that case we should not sort
17835 if (suppressMenuHide && _this.eMenu.contains(target)) {
17836 return;
17837 }
17838 _this.sortController.progressSort(_this.params.column, false, "uiColumnSorted");
17839 };
17840 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"].EVENT_TAP, tapListener);
17841 }
17842 // if tapMenuButton is true `touchListener` and `menuTouchListener` are different
17843 // so we need to make sure to destroy both listeners here
17844 this.addDestroyFunc(function () { return touchListener.destroy(); });
17845 if (tapMenuButton) {
17846 this.addDestroyFunc(function () { return menuTouchListener.destroy(); });
17847 }
17848 };
17849 HeaderComp.prototype.workOutShowMenu = function () {
17850 // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/
17851 // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok
17852 // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide
17853 // is false (default) user will need to use longpress to display the menu.
17854 var menuHides = !this.gridOptionsService.is('suppressMenuHide');
17855 var onIpadAndMenuHides = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isIOSUserAgent"])() && menuHides;
17856 var showMenu = this.params.enableMenu && !onIpadAndMenuHides;
17857 return showMenu;
17858 };
17859 HeaderComp.prototype.setMenu = function () {
17860 var _this = this;
17861 // if no menu provided in template, do nothing
17862 if (!this.eMenu) {
17863 return;
17864 }
17865 this.currentShowMenu = this.workOutShowMenu();
17866 if (!this.currentShowMenu) {
17867 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["removeFromParent"])(this.eMenu);
17868 return;
17869 }
17870 var suppressMenuHide = this.gridOptionsService.is('suppressMenuHide');
17871 this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });
17872 this.eMenu.classList.toggle('ag-header-menu-always-show', suppressMenuHide);
17873 };
17874 HeaderComp.prototype.showMenu = function (eventSource) {
17875 if (!eventSource) {
17876 eventSource = this.eMenu;
17877 }
17878 this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource, 'columnMenu');
17879 };
17880 HeaderComp.prototype.workOutSort = function () {
17881 return this.params.enableSorting;
17882 };
17883 HeaderComp.prototype.setupSort = function () {
17884 var _this = this;
17885 this.currentSort = this.params.enableSorting;
17886 // eSortIndicator will not be present when customers provided custom header
17887 // templates, in that case, we need to look for provided sort elements and
17888 // manually create eSortIndicator.
17889 if (!this.eSortIndicator) {
17890 this.eSortIndicator = this.context.createBean(new _sortIndicatorComp__WEBPACK_IMPORTED_MODULE_11__["SortIndicatorComp"](true));
17891 this.eSortIndicator.attachCustomElements(this.eSortOrder, this.eSortAsc, this.eSortDesc, this.eSortMixed, this.eSortNone);
17892 }
17893 this.eSortIndicator.setupSort(this.params.column);
17894 // we set up the indicator prior to the check for whether this column is sortable, as it allows the indicator to
17895 // set up the multi sort indicator which can appear irrelevant of whether this column can itself be sorted.
17896 // this can occur in the case of a non-sortable group display column.
17897 if (!this.currentSort) {
17898 return;
17899 }
17900 var sortUsingCtrl = this.gridOptionsService.get('multiSortKey') === 'ctrl';
17901 // keep track of last time the moving changed flag was set
17902 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_MOVING_CHANGED, function () {
17903 _this.lastMovingChanged = new Date().getTime();
17904 });
17905 // add the event on the header, so when clicked, we do sorting
17906 if (this.eLabel) {
17907 this.addManagedListener(this.eLabel, 'click', function (event) {
17908 // sometimes when moving a column via dragging, this was also firing a clicked event.
17909 // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076
17910 // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)
17911 var moving = _this.params.column.isMoving();
17912 var nowTime = new Date().getTime();
17913 // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn
17914 var movedRecently = (nowTime - _this.lastMovingChanged) < 50;
17915 var columnMoving = moving || movedRecently;
17916 if (!columnMoving) {
17917 var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;
17918 _this.params.progressSort(multiSort);
17919 }
17920 });
17921 }
17922 var onSortingChanged = function () {
17923 _this.addOrRemoveCssClass('ag-header-cell-sorted-asc', _this.params.column.isSortAscending());
17924 _this.addOrRemoveCssClass('ag-header-cell-sorted-desc', _this.params.column.isSortDescending());
17925 _this.addOrRemoveCssClass('ag-header-cell-sorted-none', _this.params.column.isSortNone());
17926 if (_this.params.column.getColDef().showRowGroup) {
17927 var sourceColumns = _this.columnModel.getSourceColumnsForGroupColumn(_this.params.column);
17928 // this == is intentional, as it allows null and undefined to match, which are both unsorted states
17929 var sortDirectionsMatch = sourceColumns === null || sourceColumns === void 0 ? void 0 : sourceColumns.every(function (sourceCol) { return _this.params.column.getSort() == sourceCol.getSort(); });
17930 var isMultiSorting = !sortDirectionsMatch;
17931 _this.addOrRemoveCssClass('ag-header-cell-sorted-mixed', isMultiSorting);
17932 }
17933 };
17934 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_12__["Events"].EVENT_SORT_CHANGED, onSortingChanged);
17935 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_12__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, onSortingChanged);
17936 };
17937 HeaderComp.prototype.setupFilterIcon = function () {
17938 if (!this.eFilter) {
17939 return;
17940 }
17941 this.addManagedListener(this.params.column, _entities_column__WEBPACK_IMPORTED_MODULE_1__["Column"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
17942 this.onFilterChanged();
17943 };
17944 HeaderComp.prototype.onFilterChanged = function () {
17945 var filterPresent = this.params.column.isFilterActive();
17946 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eFilter, filterPresent, { skipAriaHidden: true });
17947 };
17948 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\">\n <span ref=\"eText\" class=\"ag-header-cell-text\"></span>\n <span ref=\"eFilter\" class=\"ag-header-icon ag-header-label-icon ag-filter-icon\" aria-hidden=\"true\"></span>\n <ag-sort-indicator ref=\"eSortIndicator\"></ag-sort-indicator>\n </div>\n </div>";
17949 __decorate([
17950 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
17951 ], HeaderComp.prototype, "sortController", void 0);
17952 __decorate([
17953 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('menuFactory')
17954 ], HeaderComp.prototype, "menuFactory", void 0);
17955 __decorate([
17956 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
17957 ], HeaderComp.prototype, "columnModel", void 0);
17958 __decorate([
17959 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eFilter')
17960 ], HeaderComp.prototype, "eFilter", void 0);
17961 __decorate([
17962 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eSortIndicator')
17963 ], HeaderComp.prototype, "eSortIndicator", void 0);
17964 __decorate([
17965 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eMenu')
17966 ], HeaderComp.prototype, "eMenu", void 0);
17967 __decorate([
17968 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eLabel')
17969 ], HeaderComp.prototype, "eLabel", void 0);
17970 __decorate([
17971 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eText')
17972 ], HeaderComp.prototype, "eText", void 0);
17973 __decorate([
17974 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eSortOrder')
17975 ], HeaderComp.prototype, "eSortOrder", void 0);
17976 __decorate([
17977 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eSortAsc')
17978 ], HeaderComp.prototype, "eSortAsc", void 0);
17979 __decorate([
17980 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eSortDesc')
17981 ], HeaderComp.prototype, "eSortDesc", void 0);
17982 __decorate([
17983 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eSortMixed')
17984 ], HeaderComp.prototype, "eSortMixed", void 0);
17985 __decorate([
17986 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])('eSortNone')
17987 ], HeaderComp.prototype, "eSortNone", void 0);
17988 return HeaderComp;
17989}(_widgets_component__WEBPACK_IMPORTED_MODULE_8__["Component"]));
17990
17991
17992
17993/***/ }),
17994/* 86 */
17995/***/ (function(module, __webpack_exports__, __webpack_require__) {
17996
17997"use strict";
17998__webpack_require__.r(__webpack_exports__);
17999/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return TouchListener; });
18000/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
18001/* harmony import */ var _utils_mouse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);
18002/**
18003 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18004 * @version v29.2.0
18005 * @link https://www.ag-grid.com/
18006 * @license MIT
18007 */
18008
18009
18010var TouchListener = /** @class */ (function () {
18011 function TouchListener(eElement, preventMouseClick) {
18012 var _this = this;
18013 if (preventMouseClick === void 0) { preventMouseClick = false; }
18014 this.destroyFuncs = [];
18015 this.touching = false;
18016 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_0__["EventService"]();
18017 this.eElement = eElement;
18018 this.preventMouseClick = preventMouseClick;
18019 var startListener = this.onTouchStart.bind(this);
18020 var moveListener = this.onTouchMove.bind(this);
18021 var endListener = this.onTouchEnd.bind(this);
18022 this.eElement.addEventListener("touchstart", startListener, { passive: true });
18023 this.eElement.addEventListener("touchmove", moveListener, { passive: true });
18024 // we set passive=false, as we want to prevent default on this event
18025 this.eElement.addEventListener("touchend", endListener, { passive: false });
18026 this.destroyFuncs.push(function () {
18027 _this.eElement.removeEventListener("touchstart", startListener, { passive: true });
18028 _this.eElement.removeEventListener("touchmove", moveListener, { passive: true });
18029 _this.eElement.removeEventListener("touchend", endListener, { passive: false });
18030 });
18031 }
18032 TouchListener.prototype.getActiveTouch = function (touchList) {
18033 for (var i = 0; i < touchList.length; i++) {
18034 var matches = touchList[i].identifier === this.touchStart.identifier;
18035 if (matches) {
18036 return touchList[i];
18037 }
18038 }
18039 return null;
18040 };
18041 TouchListener.prototype.addEventListener = function (eventType, listener) {
18042 this.eventService.addEventListener(eventType, listener);
18043 };
18044 TouchListener.prototype.removeEventListener = function (eventType, listener) {
18045 this.eventService.removeEventListener(eventType, listener);
18046 };
18047 TouchListener.prototype.onTouchStart = function (touchEvent) {
18048 var _this = this;
18049 // only looking at one touch point at any time
18050 if (this.touching) {
18051 return;
18052 }
18053 this.touchStart = touchEvent.touches[0];
18054 this.touching = true;
18055 this.moved = false;
18056 var touchStartCopy = this.touchStart;
18057 window.setTimeout(function () {
18058 var touchesMatch = _this.touchStart === touchStartCopy;
18059 if (_this.touching && touchesMatch && !_this.moved) {
18060 _this.moved = true;
18061 var event_1 = {
18062 type: TouchListener.EVENT_LONG_TAP,
18063 touchStart: _this.touchStart,
18064 touchEvent: touchEvent
18065 };
18066 _this.eventService.dispatchEvent(event_1);
18067 }
18068 }, 500);
18069 };
18070 TouchListener.prototype.onTouchMove = function (touchEvent) {
18071 if (!this.touching) {
18072 return;
18073 }
18074 var touch = this.getActiveTouch(touchEvent.touches);
18075 if (!touch) {
18076 return;
18077 }
18078 var eventIsFarAway = !Object(_utils_mouse__WEBPACK_IMPORTED_MODULE_1__["areEventsNear"])(touch, this.touchStart, 4);
18079 if (eventIsFarAway) {
18080 this.moved = true;
18081 }
18082 };
18083 TouchListener.prototype.onTouchEnd = function (touchEvent) {
18084 if (!this.touching) {
18085 return;
18086 }
18087 if (!this.moved) {
18088 var event_2 = {
18089 type: TouchListener.EVENT_TAP,
18090 touchStart: this.touchStart
18091 };
18092 this.eventService.dispatchEvent(event_2);
18093 this.checkForDoubleTap();
18094 }
18095 // stops the tap from also been processed as a mouse click
18096 if (this.preventMouseClick && touchEvent.cancelable) {
18097 touchEvent.preventDefault();
18098 }
18099 this.touching = false;
18100 };
18101 TouchListener.prototype.checkForDoubleTap = function () {
18102 var now = new Date().getTime();
18103 if (this.lastTapTime && this.lastTapTime > 0) {
18104 // if previous tap, see if duration is short enough to be considered double tap
18105 var interval = now - this.lastTapTime;
18106 if (interval > TouchListener.DOUBLE_TAP_MILLIS) {
18107 // dispatch double tap event
18108 var event_3 = {
18109 type: TouchListener.EVENT_DOUBLE_TAP,
18110 touchStart: this.touchStart
18111 };
18112 this.eventService.dispatchEvent(event_3);
18113 // this stops a tripple tap ending up as two double taps
18114 this.lastTapTime = null;
18115 }
18116 else {
18117 this.lastTapTime = now;
18118 }
18119 }
18120 else {
18121 this.lastTapTime = now;
18122 }
18123 };
18124 TouchListener.prototype.destroy = function () {
18125 this.destroyFuncs.forEach(function (func) { return func(); });
18126 };
18127 TouchListener.EVENT_TAP = "tap";
18128 TouchListener.EVENT_DOUBLE_TAP = "doubleTap";
18129 TouchListener.EVENT_LONG_TAP = "longTap";
18130 TouchListener.DOUBLE_TAP_MILLIS = 500;
18131 return TouchListener;
18132}());
18133
18134
18135
18136/***/ }),
18137/* 87 */
18138/***/ (function(module, __webpack_exports__, __webpack_require__) {
18139
18140"use strict";
18141__webpack_require__.r(__webpack_exports__);
18142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortIndicatorComp", function() { return SortIndicatorComp; });
18143/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(26);
18144/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
18145/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
18146/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57);
18147/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38);
18148/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46);
18149/**
18150 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18151 * @version v29.2.0
18152 * @link https://www.ag-grid.com/
18153 * @license MIT
18154 */
18155var __extends = (undefined && undefined.__extends) || (function () {
18156 var extendStatics = function (d, b) {
18157 extendStatics = Object.setPrototypeOf ||
18158 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18159 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18160 return extendStatics(d, b);
18161 };
18162 return function (d, b) {
18163 extendStatics(d, b);
18164 function __() { this.constructor = d; }
18165 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18166 };
18167})();
18168var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18169 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18170 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18171 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;
18172 return c > 3 && r && Object.defineProperty(target, key, r), r;
18173};
18174
18175
18176
18177
18178
18179
18180var SortIndicatorComp = /** @class */ (function (_super) {
18181 __extends(SortIndicatorComp, _super);
18182 function SortIndicatorComp(skipTemplate) {
18183 var _this = _super.call(this) || this;
18184 if (!skipTemplate) {
18185 _this.setTemplate(SortIndicatorComp.TEMPLATE);
18186 }
18187 return _this;
18188 }
18189 SortIndicatorComp.prototype.attachCustomElements = function (eSortOrder, eSortAsc, eSortDesc, eSortMixed, eSortNone) {
18190 this.eSortOrder = eSortOrder;
18191 this.eSortAsc = eSortAsc;
18192 this.eSortDesc = eSortDesc;
18193 this.eSortMixed = eSortMixed;
18194 this.eSortNone = eSortNone;
18195 };
18196 SortIndicatorComp.prototype.setupSort = function (column, suppressOrder) {
18197 var _this = this;
18198 if (suppressOrder === void 0) { suppressOrder = false; }
18199 this.column = column;
18200 this.suppressOrder = suppressOrder;
18201 this.setupMultiSortIndicator();
18202 var canSort = !!this.column.getColDef().sortable;
18203 if (!canSort) {
18204 return;
18205 }
18206 this.addInIcon('sortAscending', this.eSortAsc, column);
18207 this.addInIcon('sortDescending', this.eSortDesc, column);
18208 this.addInIcon('sortUnSort', this.eSortNone, column);
18209 // Watch global events, as row group columns can effect their display column.
18210 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, function () { return _this.onSortChanged(); });
18211 // when grouping changes so can sort indexes and icons
18212 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.onSortChanged(); });
18213 this.onSortChanged();
18214 };
18215 SortIndicatorComp.prototype.addInIcon = function (iconName, eParent, column) {
18216 if (eParent == null) {
18217 return;
18218 }
18219 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_5__["createIconNoSpan"])(iconName, this.gridOptionsService, column);
18220 if (eIcon) {
18221 eParent.appendChild(eIcon);
18222 }
18223 };
18224 SortIndicatorComp.prototype.onSortChanged = function () {
18225 this.updateIcons();
18226 if (!this.suppressOrder) {
18227 this.updateSortOrder();
18228 }
18229 };
18230 SortIndicatorComp.prototype.updateIcons = function () {
18231 var sortDirection = this.sortController.getDisplaySortForColumn(this.column);
18232 if (this.eSortAsc) {
18233 var isAscending = sortDirection === 'asc';
18234 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(this.eSortAsc, isAscending, { skipAriaHidden: true });
18235 }
18236 if (this.eSortDesc) {
18237 var isDescending = sortDirection === 'desc';
18238 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(this.eSortDesc, isDescending, { skipAriaHidden: true });
18239 }
18240 if (this.eSortNone) {
18241 var alwaysHideNoSort = !this.column.getColDef().unSortIcon && !this.gridOptionsService.is('unSortIcon');
18242 var isNone = sortDirection === null || sortDirection === undefined;
18243 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(this.eSortNone, !alwaysHideNoSort && isNone, { skipAriaHidden: true });
18244 }
18245 };
18246 SortIndicatorComp.prototype.setupMultiSortIndicator = function () {
18247 var _this = this;
18248 this.addInIcon('sortUnSort', this.eSortMixed, this.column);
18249 var isColumnShowingRowGroup = this.column.getColDef().showRowGroup;
18250 var areGroupsCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();
18251 if (areGroupsCoupled && isColumnShowingRowGroup) {
18252 // Watch global events, as row group columns can effect their display column.
18253 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, function () { return _this.updateMultiSortIndicator(); });
18254 // when grouping changes so can sort indexes and icons
18255 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.updateMultiSortIndicator(); });
18256 this.updateMultiSortIndicator();
18257 }
18258 };
18259 SortIndicatorComp.prototype.updateMultiSortIndicator = function () {
18260 if (this.eSortMixed) {
18261 var isMixedSort = this.sortController.getDisplaySortForColumn(this.column) === 'mixed';
18262 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(this.eSortMixed, isMixedSort, { skipAriaHidden: true });
18263 }
18264 };
18265 // we listen here for global sort events, NOT column sort events, as we want to do this
18266 // when sorting has been set on all column (if we listened just for our col (where we
18267 // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.
18268 SortIndicatorComp.prototype.updateSortOrder = function () {
18269 var _this = this;
18270 var _a;
18271 if (!this.eSortOrder) {
18272 return;
18273 }
18274 var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();
18275 var indexThisCol = (_a = this.sortController.getDisplaySortIndexForColumn(this.column)) !== null && _a !== void 0 ? _a : -1;
18276 var moreThanOneColSorting = allColumnsWithSorting.some(function (col) { var _a; return (_a = _this.sortController.getDisplaySortIndexForColumn(col)) !== null && _a !== void 0 ? _a : -1 >= 1; });
18277 var showIndex = indexThisCol >= 0 && moreThanOneColSorting;
18278 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(this.eSortOrder, showIndex, { skipAriaHidden: true });
18279 if (indexThisCol >= 0) {
18280 this.eSortOrder.innerHTML = (indexThisCol + 1).toString();
18281 }
18282 else {
18283 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["clearElement"])(this.eSortOrder);
18284 }
18285 };
18286 SortIndicatorComp.TEMPLATE = "<span class=\"ag-sort-indicator-container\">\n <span ref=\"eSortOrder\" class=\"ag-sort-indicator-icon ag-sort-order ag-hidden\" aria-hidden=\"true\"></span>\n <span ref=\"eSortAsc\" class=\"ag-sort-indicator-icon ag-sort-ascending-icon ag-hidden\" aria-hidden=\"true\"></span>\n <span ref=\"eSortDesc\" class=\"ag-sort-indicator-icon ag-sort-descending-icon ag-hidden\" aria-hidden=\"true\"></span>\n <span ref=\"eSortMixed\" class=\"ag-sort-indicator-icon ag-sort-mixed-icon ag-hidden\" aria-hidden=\"true\"></span>\n <span ref=\"eSortNone\" class=\"ag-sort-indicator-icon ag-sort-none-icon ag-hidden\" aria-hidden=\"true\"></span>\n </span>";
18287 __decorate([
18288 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eSortOrder')
18289 ], SortIndicatorComp.prototype, "eSortOrder", void 0);
18290 __decorate([
18291 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eSortAsc')
18292 ], SortIndicatorComp.prototype, "eSortAsc", void 0);
18293 __decorate([
18294 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eSortDesc')
18295 ], SortIndicatorComp.prototype, "eSortDesc", void 0);
18296 __decorate([
18297 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eSortMixed')
18298 ], SortIndicatorComp.prototype, "eSortMixed", void 0);
18299 __decorate([
18300 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eSortNone')
18301 ], SortIndicatorComp.prototype, "eSortNone", void 0);
18302 __decorate([
18303 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnModel')
18304 ], SortIndicatorComp.prototype, "columnModel", void 0);
18305 __decorate([
18306 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('sortController')
18307 ], SortIndicatorComp.prototype, "sortController", void 0);
18308 return SortIndicatorComp;
18309}(_widgets_component__WEBPACK_IMPORTED_MODULE_4__["Component"]));
18310
18311
18312
18313/***/ }),
18314/* 88 */
18315/***/ (function(module, __webpack_exports__, __webpack_require__) {
18316
18317"use strict";
18318__webpack_require__.r(__webpack_exports__);
18319/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupComp", function() { return HeaderGroupComp; });
18320/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
18321/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8);
18322/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
18323/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);
18324/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
18325/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
18326/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46);
18327/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31);
18328/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(38);
18329/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(57);
18330/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86);
18331/**
18332 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18333 * @version v29.2.0
18334 * @link https://www.ag-grid.com/
18335 * @license MIT
18336 */
18337var __extends = (undefined && undefined.__extends) || (function () {
18338 var extendStatics = function (d, b) {
18339 extendStatics = Object.setPrototypeOf ||
18340 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18341 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18342 return extendStatics(d, b);
18343 };
18344 return function (d, b) {
18345 extendStatics(d, b);
18346 function __() { this.constructor = d; }
18347 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18348 };
18349})();
18350var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18351 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18352 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18353 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;
18354 return c > 3 && r && Object.defineProperty(target, key, r), r;
18355};
18356
18357
18358
18359
18360
18361
18362
18363
18364
18365
18366
18367var HeaderGroupComp = /** @class */ (function (_super) {
18368 __extends(HeaderGroupComp, _super);
18369 function HeaderGroupComp() {
18370 return _super.call(this, HeaderGroupComp.TEMPLATE) || this;
18371 }
18372 // this is a user component, and IComponent has "public destroy()" as part of the interface.
18373 // so we need to override destroy() just to make the method public.
18374 HeaderGroupComp.prototype.destroy = function () {
18375 _super.prototype.destroy.call(this);
18376 };
18377 HeaderGroupComp.prototype.init = function (params) {
18378 this.params = params;
18379 this.checkWarnings();
18380 this.setupLabel();
18381 this.addGroupExpandIcon();
18382 this.setupExpandIcons();
18383 };
18384 HeaderGroupComp.prototype.checkWarnings = function () {
18385 var paramsAny = this.params;
18386 if (paramsAny.template) {
18387 var message_1 = "AG Grid: A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)";
18388 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["doOnce"])(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');
18389 }
18390 };
18391 HeaderGroupComp.prototype.setupExpandIcons = function () {
18392 var _this = this;
18393 this.addInIcon("columnGroupOpened", "agOpened");
18394 this.addInIcon("columnGroupClosed", "agClosed");
18395 var expandAction = function (event) {
18396 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["isStopPropagationForAgGrid"])(event)) {
18397 return;
18398 }
18399 var newExpandedValue = !_this.params.columnGroup.isExpanded();
18400 _this.columnModel.setColumnGroupOpened(_this.params.columnGroup.getProvidedColumnGroup(), newExpandedValue, "uiColumnExpanded");
18401 };
18402 this.addTouchAndClickListeners(this.eCloseIcon, expandAction);
18403 this.addTouchAndClickListeners(this.eOpenIcon, expandAction);
18404 var stopPropagationAction = function (event) {
18405 Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["stopPropagationForAgGrid"])(event);
18406 };
18407 // adding stopPropagation to the double click for the icons prevents double click action happening
18408 // when the icons are clicked. if the icons are double clicked, then the groups should open and
18409 // then close again straight away. if we also listened to double click, then the group would open,
18410 // close, then open, which is not what we want. double click should only action if the user double
18411 // clicks outside of the icons.
18412 this.addManagedListener(this.eCloseIcon, "dblclick", stopPropagationAction);
18413 this.addManagedListener(this.eOpenIcon, "dblclick", stopPropagationAction);
18414 this.addManagedListener(this.getGui(), "dblclick", expandAction);
18415 this.updateIconVisibility();
18416 var providedColumnGroup = this.params.columnGroup.getProvidedColumnGroup();
18417 this.addManagedListener(providedColumnGroup, _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"].EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));
18418 this.addManagedListener(providedColumnGroup, _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_1__["ProvidedColumnGroup"].EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));
18419 };
18420 HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {
18421 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"](eElement, true);
18422 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_10__["TouchListener"].EVENT_TAP, action);
18423 this.addDestroyFunc(function () { return touchListener.destroy(); });
18424 this.addManagedListener(eElement, "click", action);
18425 };
18426 HeaderGroupComp.prototype.updateIconVisibility = function () {
18427 var columnGroup = this.params.columnGroup;
18428 if (columnGroup.isExpandable()) {
18429 var expanded = this.params.columnGroup.isExpanded();
18430 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eOpenIcon, expanded);
18431 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eCloseIcon, !expanded);
18432 }
18433 else {
18434 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eOpenIcon, false);
18435 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eCloseIcon, false);
18436 }
18437 };
18438 HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {
18439 var eIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_6__["createIconNoSpan"])(iconName, this.gridOptionsService, null);
18440 if (eIcon) {
18441 this.getRefElement(refName).appendChild(eIcon);
18442 }
18443 };
18444 HeaderGroupComp.prototype.addGroupExpandIcon = function () {
18445 if (!this.params.columnGroup.isExpandable()) {
18446 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eOpenIcon, false);
18447 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.eCloseIcon, false);
18448 return;
18449 }
18450 };
18451 HeaderGroupComp.prototype.setupLabel = function () {
18452 // no renderer, default text render
18453 var displayName = this.params.displayName;
18454 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(displayName)) {
18455 var displayNameSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_7__["escapeString"])(displayName);
18456 this.getRefElement('agLabel').innerHTML = displayNameSanitised;
18457 }
18458 };
18459 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>";
18460 __decorate([
18461 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("columnModel")
18462 ], HeaderGroupComp.prototype, "columnModel", void 0);
18463 __decorate([
18464 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])("agOpened")
18465 ], HeaderGroupComp.prototype, "eOpenIcon", void 0);
18466 __decorate([
18467 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_9__["RefSelector"])("agClosed")
18468 ], HeaderGroupComp.prototype, "eCloseIcon", void 0);
18469 return HeaderGroupComp;
18470}(_widgets_component__WEBPACK_IMPORTED_MODULE_8__["Component"]));
18471
18472
18473
18474/***/ }),
18475/* 89 */
18476/***/ (function(module, __webpack_exports__, __webpack_require__) {
18477
18478"use strict";
18479__webpack_require__.r(__webpack_exports__);
18480/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return LargeTextCellEditor; });
18481/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90);
18482/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
18483/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
18484/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);
18485/**
18486 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18487 * @version v29.2.0
18488 * @link https://www.ag-grid.com/
18489 * @license MIT
18490 */
18491var __extends = (undefined && undefined.__extends) || (function () {
18492 var extendStatics = function (d, b) {
18493 extendStatics = Object.setPrototypeOf ||
18494 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18495 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18496 return extendStatics(d, b);
18497 };
18498 return function (d, b) {
18499 extendStatics(d, b);
18500 function __() { this.constructor = d; }
18501 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18502 };
18503})();
18504var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18505 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18506 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18507 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;
18508 return c > 3 && r && Object.defineProperty(target, key, r), r;
18509};
18510
18511
18512
18513
18514var LargeTextCellEditor = /** @class */ (function (_super) {
18515 __extends(LargeTextCellEditor, _super);
18516 function LargeTextCellEditor() {
18517 return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;
18518 }
18519 LargeTextCellEditor.prototype.init = function (params) {
18520 this.params = params;
18521 this.focusAfterAttached = params.cellStartedEdit;
18522 this.eTextArea
18523 .setMaxLength(params.maxLength || 200)
18524 .setCols(params.cols || 60)
18525 .setRows(params.rows || 10);
18526 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value, true)) {
18527 this.eTextArea.setValue(params.value.toString(), true);
18528 }
18529 this.addGuiEventListener('keydown', this.onKeyDown.bind(this));
18530 };
18531 LargeTextCellEditor.prototype.onKeyDown = function (event) {
18532 var key = event.key;
18533 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].LEFT ||
18534 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP ||
18535 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].RIGHT ||
18536 key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].DOWN ||
18537 (event.shiftKey && key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].ENTER)) { // shift+enter allows for newlines
18538 event.stopPropagation();
18539 }
18540 };
18541 LargeTextCellEditor.prototype.afterGuiAttached = function () {
18542 var translate = this.localeService.getLocaleTextFunc();
18543 this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));
18544 if (this.focusAfterAttached) {
18545 this.eTextArea.getFocusableElement().focus();
18546 }
18547 };
18548 LargeTextCellEditor.prototype.getValue = function () {
18549 return this.params.parseValue(this.eTextArea.getValue());
18550 };
18551 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>";
18552 __decorate([
18553 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])("eTextArea")
18554 ], LargeTextCellEditor.prototype, "eTextArea", void 0);
18555 return LargeTextCellEditor;
18556}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
18557
18558
18559
18560/***/ }),
18561/* 90 */
18562/***/ (function(module, __webpack_exports__, __webpack_require__) {
18563
18564"use strict";
18565__webpack_require__.r(__webpack_exports__);
18566/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return PopupComponent; });
18567/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
18568/**
18569 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18570 * @version v29.2.0
18571 * @link https://www.ag-grid.com/
18572 * @license MIT
18573 */
18574var __extends = (undefined && undefined.__extends) || (function () {
18575 var extendStatics = function (d, b) {
18576 extendStatics = Object.setPrototypeOf ||
18577 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18578 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18579 return extendStatics(d, b);
18580 };
18581 return function (d, b) {
18582 extendStatics(d, b);
18583 function __() { this.constructor = d; }
18584 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18585 };
18586})();
18587
18588var PopupComponent = /** @class */ (function (_super) {
18589 __extends(PopupComponent, _super);
18590 function PopupComponent() {
18591 return _super !== null && _super.apply(this, arguments) || this;
18592 }
18593 PopupComponent.prototype.isPopup = function () {
18594 return true;
18595 };
18596 PopupComponent.prototype.setParentComponent = function (container) {
18597 container.addCssClass('ag-has-popup');
18598 _super.prototype.setParentComponent.call(this, container);
18599 };
18600 PopupComponent.prototype.destroy = function () {
18601 var parentComp = this.parentComponent;
18602 var hasParent = parentComp && parentComp.isAlive();
18603 if (hasParent) {
18604 parentComp.getGui().classList.remove('ag-has-popup');
18605 }
18606 _super.prototype.destroy.call(this);
18607 };
18608 return PopupComponent;
18609}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
18610
18611
18612
18613/***/ }),
18614/* 91 */
18615/***/ (function(module, __webpack_exports__, __webpack_require__) {
18616
18617"use strict";
18618__webpack_require__.r(__webpack_exports__);
18619/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return SelectCellEditor; });
18620/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66);
18621/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
18622/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(90);
18623/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57);
18624/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
18625/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
18626/**
18627 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18628 * @version v29.2.0
18629 * @link https://www.ag-grid.com/
18630 * @license MIT
18631 */
18632var __extends = (undefined && undefined.__extends) || (function () {
18633 var extendStatics = function (d, b) {
18634 extendStatics = Object.setPrototypeOf ||
18635 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18636 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18637 return extendStatics(d, b);
18638 };
18639 return function (d, b) {
18640 extendStatics(d, b);
18641 function __() { this.constructor = d; }
18642 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18643 };
18644})();
18645var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18646 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18647 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18648 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;
18649 return c > 3 && r && Object.defineProperty(target, key, r), r;
18650};
18651
18652
18653
18654
18655
18656
18657var SelectCellEditor = /** @class */ (function (_super) {
18658 __extends(SelectCellEditor, _super);
18659 function SelectCellEditor() {
18660 var _this = _super.call(this, '<div class="ag-cell-edit-wrapper"><ag-select class="ag-cell-editor" ref="eSelect"></ag-select></div>') || this;
18661 _this.startedByEnter = false;
18662 return _this;
18663 }
18664 SelectCellEditor.prototype.init = function (params) {
18665 var _this = this;
18666 this.focusAfterAttached = params.cellStartedEdit;
18667 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(params.values)) {
18668 console.warn('AG Grid: no values found for select cellEditor');
18669 return;
18670 }
18671 this.startedByEnter = params.eventKey != null ? params.eventKey === _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].ENTER : false;
18672 var hasValue = false;
18673 params.values.forEach(function (value) {
18674 var option = { value: value };
18675 var valueFormatted = _this.valueFormatterService.formatValue(params.column, null, value);
18676 var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;
18677 option.text = valueFormattedExits ? valueFormatted : value;
18678 _this.eSelect.addOption(option);
18679 hasValue = hasValue || params.value === value;
18680 });
18681 if (hasValue) {
18682 this.eSelect.setValue(params.value, true);
18683 }
18684 else if (params.values.length) {
18685 this.eSelect.setValue(params.values[0], true);
18686 }
18687 // we don't want to add this if full row editing, otherwise selecting will stop the
18688 // full row editing.
18689 if (this.gridOptionsService.get('editType') !== 'fullRow') {
18690 this.addManagedListener(this.eSelect, _widgets_agSelect__WEBPACK_IMPORTED_MODULE_0__["AgSelect"].EVENT_ITEM_SELECTED, function () { return params.stopEditing(); });
18691 }
18692 };
18693 SelectCellEditor.prototype.afterGuiAttached = function () {
18694 if (this.focusAfterAttached) {
18695 this.eSelect.getFocusableElement().focus();
18696 }
18697 if (this.startedByEnter) {
18698 this.eSelect.showPicker();
18699 }
18700 };
18701 SelectCellEditor.prototype.focusIn = function () {
18702 this.eSelect.getFocusableElement().focus();
18703 };
18704 SelectCellEditor.prototype.getValue = function () {
18705 return this.eSelect.getValue();
18706 };
18707 SelectCellEditor.prototype.isPopup = function () {
18708 return false;
18709 };
18710 __decorate([
18711 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('valueFormatterService')
18712 ], SelectCellEditor.prototype, "valueFormatterService", void 0);
18713 __decorate([
18714 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eSelect')
18715 ], SelectCellEditor.prototype, "eSelect", void 0);
18716 return SelectCellEditor;
18717}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_2__["PopupComponent"]));
18718
18719
18720
18721/***/ }),
18722/* 92 */
18723/***/ (function(module, __webpack_exports__, __webpack_require__) {
18724
18725"use strict";
18726__webpack_require__.r(__webpack_exports__);
18727/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return TextCellEditor; });
18728/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90);
18729/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
18730/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
18731/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
18732/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48);
18733/**
18734 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18735 * @version v29.2.0
18736 * @link https://www.ag-grid.com/
18737 * @license MIT
18738 */
18739var __extends = (undefined && undefined.__extends) || (function () {
18740 var extendStatics = function (d, b) {
18741 extendStatics = Object.setPrototypeOf ||
18742 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18743 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18744 return extendStatics(d, b);
18745 };
18746 return function (d, b) {
18747 extendStatics(d, b);
18748 function __() { this.constructor = d; }
18749 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18750 };
18751})();
18752var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18753 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18754 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18755 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;
18756 return c > 3 && r && Object.defineProperty(target, key, r), r;
18757};
18758
18759
18760
18761
18762
18763var TextCellEditor = /** @class */ (function (_super) {
18764 __extends(TextCellEditor, _super);
18765 function TextCellEditor() {
18766 return _super.call(this, TextCellEditor.TEMPLATE) || this;
18767 }
18768 TextCellEditor.prototype.init = function (params) {
18769 this.params = params;
18770 var eInput = this.eInput;
18771 var startValue;
18772 // cellStartedEdit is only false if we are doing fullRow editing
18773 if (params.cellStartedEdit) {
18774 this.focusAfterAttached = true;
18775 if (params.eventKey === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].BACKSPACE || params.eventKey === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DELETE) {
18776 startValue = '';
18777 }
18778 else if (params.charPress) {
18779 startValue = params.charPress;
18780 }
18781 else {
18782 startValue = this.getStartValue(params);
18783 if (params.eventKey !== _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].F2) {
18784 this.highlightAllOnFocus = true;
18785 }
18786 }
18787 }
18788 else {
18789 this.focusAfterAttached = false;
18790 startValue = this.getStartValue(params);
18791 }
18792 if (startValue != null) {
18793 eInput.setValue(startValue, true);
18794 }
18795 if (params.maxLength != null) {
18796 eInput.setMaxLength(params.maxLength);
18797 }
18798 this.addManagedListener(eInput.getGui(), 'keydown', function (event) {
18799 var key = event.key;
18800 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_UP || key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_DOWN) {
18801 event.preventDefault();
18802 }
18803 });
18804 };
18805 TextCellEditor.prototype.afterGuiAttached = function () {
18806 var translate = this.localeService.getLocaleTextFunc();
18807 var eInput = this.eInput;
18808 eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));
18809 if (!this.focusAfterAttached) {
18810 return;
18811 }
18812 // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input
18813 // to be focused before setSelectionRange will work. But it triggers a bug in Safari where
18814 // explicitly focusing then blurring an empty field will cause the parent container to scroll.
18815 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserSafari"])()) {
18816 eInput.getFocusableElement().focus();
18817 }
18818 var inputEl = eInput.getInputElement();
18819 if (this.highlightAllOnFocus) {
18820 inputEl.select();
18821 }
18822 else {
18823 // when we started editing, we want the caret at the end, not the start.
18824 // this comes into play in two scenarios:
18825 // a) when user hits F2
18826 // b) when user hits a printable character
18827 var value = eInput.getValue();
18828 var len = (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(value) && value.length) || 0;
18829 if (len) {
18830 inputEl.setSelectionRange(len, len);
18831 }
18832 }
18833 };
18834 // gets called when tabbing trough cells and in full row edit mode
18835 TextCellEditor.prototype.focusIn = function () {
18836 var eInput = this.eInput;
18837 var focusEl = eInput.getFocusableElement();
18838 var inputEl = eInput.getInputElement();
18839 focusEl.focus();
18840 inputEl.select();
18841 };
18842 TextCellEditor.prototype.getValue = function () {
18843 var eInput = this.eInput;
18844 return this.params.parseValue(eInput.getValue());
18845 };
18846 TextCellEditor.prototype.getStartValue = function (params) {
18847 var formatValue = params.useFormatter || params.column.getColDef().refData;
18848 return formatValue ? params.formatValue(params.value) : params.value;
18849 };
18850 TextCellEditor.prototype.isPopup = function () {
18851 return false;
18852 };
18853 TextCellEditor.TEMPLATE = "<div class=\"ag-cell-edit-wrapper\">\n <ag-input-text-field class=\"ag-cell-editor\" ref=\"eInput\"></ag-input-text-field>\n </div>";
18854 __decorate([
18855 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eInput')
18856 ], TextCellEditor.prototype, "eInput", void 0);
18857 return TextCellEditor;
18858}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
18859
18860
18861
18862/***/ }),
18863/* 93 */
18864/***/ (function(module, __webpack_exports__, __webpack_require__) {
18865
18866"use strict";
18867__webpack_require__.r(__webpack_exports__);
18868/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return AnimateShowChangeCellRenderer; });
18869/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
18870/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
18871/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
18872/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
18873/**
18874 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
18875 * @version v29.2.0
18876 * @link https://www.ag-grid.com/
18877 * @license MIT
18878 */
18879var __extends = (undefined && undefined.__extends) || (function () {
18880 var extendStatics = function (d, b) {
18881 extendStatics = Object.setPrototypeOf ||
18882 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
18883 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
18884 return extendStatics(d, b);
18885 };
18886 return function (d, b) {
18887 extendStatics(d, b);
18888 function __() { this.constructor = d; }
18889 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
18890 };
18891})();
18892var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
18893 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
18894 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18895 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;
18896 return c > 3 && r && Object.defineProperty(target, key, r), r;
18897};
18898
18899
18900
18901
18902var ARROW_UP = '\u2191';
18903var ARROW_DOWN = '\u2193';
18904var AnimateShowChangeCellRenderer = /** @class */ (function (_super) {
18905 __extends(AnimateShowChangeCellRenderer, _super);
18906 function AnimateShowChangeCellRenderer() {
18907 var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;
18908 _this.refreshCount = 0;
18909 return _this;
18910 }
18911 AnimateShowChangeCellRenderer.prototype.init = function (params) {
18912 // this.params = params;
18913 this.eValue = this.queryForHtmlElement('.ag-value-change-value');
18914 this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');
18915 this.refresh(params);
18916 };
18917 AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {
18918 var absDelta = Math.abs(delta);
18919 var valueFormatted = params.formatValue(absDelta);
18920 var valueToUse = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(valueFormatted) ? valueFormatted : absDelta;
18921 var deltaUp = (delta >= 0);
18922 if (deltaUp) {
18923 this.eDelta.innerHTML = ARROW_UP + valueToUse;
18924 }
18925 else {
18926 // because negative, use ABS to remove sign
18927 this.eDelta.innerHTML = ARROW_DOWN + valueToUse;
18928 }
18929 this.eDelta.classList.toggle('ag-value-change-delta-up', deltaUp);
18930 this.eDelta.classList.toggle('ag-value-change-delta-down', !deltaUp);
18931 };
18932 AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {
18933 var _this = this;
18934 // the refreshCount makes sure that if the value updates again while
18935 // the below timer is waiting, then the below timer will realise it
18936 // is not the most recent and will not try to remove the delta value.
18937 this.refreshCount++;
18938 var refreshCountCopy = this.refreshCount;
18939 window.setTimeout(function () {
18940 if (refreshCountCopy === _this.refreshCount) {
18941 _this.hideDeltaValue();
18942 }
18943 }, 2000);
18944 };
18945 AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {
18946 this.eValue.classList.remove('ag-value-change-value-highlight');
18947 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eDelta);
18948 };
18949 AnimateShowChangeCellRenderer.prototype.refresh = function (params) {
18950 var value = params.value;
18951 if (value === this.lastValue) {
18952 return false;
18953 }
18954 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.valueFormatted)) {
18955 this.eValue.innerHTML = params.valueFormatted;
18956 }
18957 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(params.value)) {
18958 this.eValue.innerHTML = value;
18959 }
18960 else {
18961 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eValue);
18962 }
18963 // we don't show the delta if we are in the middle of a filter. see comment on FilterManager
18964 // with regards processingFilterChange
18965 if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {
18966 return false;
18967 }
18968 if (typeof value === 'number' && typeof this.lastValue === 'number') {
18969 var delta = value - this.lastValue;
18970 this.showDelta(params, delta);
18971 }
18972 // highlight the current value, but only if it's not new, otherwise it
18973 // would get highlighted first time the value is shown
18974 if (this.lastValue) {
18975 this.eValue.classList.add('ag-value-change-value-highlight');
18976 }
18977 this.setTimerToRemoveDelta();
18978 this.lastValue = value;
18979 return true;
18980 };
18981 AnimateShowChangeCellRenderer.TEMPLATE = '<span>' +
18982 '<span class="ag-value-change-delta"></span>' +
18983 '<span class="ag-value-change-value"></span>' +
18984 '</span>';
18985 __decorate([
18986 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
18987 ], AnimateShowChangeCellRenderer.prototype, "filterManager", void 0);
18988 return AnimateShowChangeCellRenderer;
18989}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
18990
18991
18992
18993/***/ }),
18994/* 94 */
18995/***/ (function(module, __webpack_exports__, __webpack_require__) {
18996
18997"use strict";
18998__webpack_require__.r(__webpack_exports__);
18999/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return AnimateSlideCellRenderer; });
19000/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
19001/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
19002/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
19003/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
19004/**
19005 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
19006 * @version v29.2.0
19007 * @link https://www.ag-grid.com/
19008 * @license MIT
19009 */
19010var __extends = (undefined && undefined.__extends) || (function () {
19011 var extendStatics = function (d, b) {
19012 extendStatics = Object.setPrototypeOf ||
19013 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19014 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
19015 return extendStatics(d, b);
19016 };
19017 return function (d, b) {
19018 extendStatics(d, b);
19019 function __() { this.constructor = d; }
19020 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19021 };
19022})();
19023var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19024 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19025 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19026 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;
19027 return c > 3 && r && Object.defineProperty(target, key, r), r;
19028};
19029
19030
19031
19032
19033var AnimateSlideCellRenderer = /** @class */ (function (_super) {
19034 __extends(AnimateSlideCellRenderer, _super);
19035 function AnimateSlideCellRenderer() {
19036 var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;
19037 _this.refreshCount = 0;
19038 _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');
19039 return _this;
19040 }
19041 AnimateSlideCellRenderer.prototype.init = function (params) {
19042 this.refresh(params);
19043 };
19044 AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {
19045 var _this = this;
19046 this.refreshCount++;
19047 // below we keep checking this, and stop working on the animation
19048 // if it no longer matches - this means another animation has started
19049 // and this one is stale.
19050 var refreshCountCopy = this.refreshCount;
19051 // if old animation, remove it
19052 if (this.ePrevious) {
19053 this.getGui().removeChild(this.ePrevious);
19054 }
19055 this.ePrevious = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span class="ag-value-slide-previous ag-value-slide-out"></span>');
19056 this.ePrevious.innerHTML = this.eCurrent.innerHTML;
19057 this.getGui().insertBefore(this.ePrevious, this.eCurrent);
19058 // having timeout of 0 allows use to skip to the next css turn,
19059 // so we know the previous css classes have been applied. so the
19060 // complex set of setTimeout below creates the animation
19061 window.setTimeout(function () {
19062 if (refreshCountCopy !== _this.refreshCount) {
19063 return;
19064 }
19065 _this.ePrevious.classList.add('ag-value-slide-out-end');
19066 }, 50);
19067 window.setTimeout(function () {
19068 if (refreshCountCopy !== _this.refreshCount) {
19069 return;
19070 }
19071 _this.getGui().removeChild(_this.ePrevious);
19072 _this.ePrevious = null;
19073 }, 3000);
19074 };
19075 AnimateSlideCellRenderer.prototype.refresh = function (params) {
19076 var value = params.value;
19077 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(value)) {
19078 value = '';
19079 }
19080 if (value === this.lastValue) {
19081 return false;
19082 }
19083 // we don't show the delta if we are in the middle of a filter. see comment on FilterManager
19084 // with regards processingFilterChange
19085 if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {
19086 return false;
19087 }
19088 this.addSlideAnimation();
19089 this.lastValue = value;
19090 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.valueFormatted)) {
19091 this.eCurrent.innerHTML = params.valueFormatted;
19092 }
19093 else if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(params.value)) {
19094 this.eCurrent.innerHTML = value;
19095 }
19096 else {
19097 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eCurrent);
19098 }
19099 return true;
19100 };
19101 AnimateSlideCellRenderer.TEMPLATE = "<span>\n <span class=\"ag-value-slide-current\"></span>\n </span>";
19102 __decorate([
19103 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
19104 ], AnimateSlideCellRenderer.prototype, "filterManager", void 0);
19105 return AnimateSlideCellRenderer;
19106}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
19107
19108
19109
19110/***/ }),
19111/* 95 */
19112/***/ (function(module, __webpack_exports__, __webpack_require__) {
19113
19114"use strict";
19115__webpack_require__.r(__webpack_exports__);
19116/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return GroupCellRenderer; });
19117/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41);
19118/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
19119/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38);
19120/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57);
19121/* harmony import */ var _groupCellRendererCtrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96);
19122/**
19123 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
19124 * @version v29.2.0
19125 * @link https://www.ag-grid.com/
19126 * @license MIT
19127 */
19128var __extends = (undefined && undefined.__extends) || (function () {
19129 var extendStatics = function (d, b) {
19130 extendStatics = Object.setPrototypeOf ||
19131 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19132 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
19133 return extendStatics(d, b);
19134 };
19135 return function (d, b) {
19136 extendStatics(d, b);
19137 function __() { this.constructor = d; }
19138 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19139 };
19140})();
19141var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19142 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19143 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19144 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;
19145 return c > 3 && r && Object.defineProperty(target, key, r), r;
19146};
19147
19148
19149
19150
19151
19152var GroupCellRenderer = /** @class */ (function (_super) {
19153 __extends(GroupCellRenderer, _super);
19154 function GroupCellRenderer() {
19155 return _super.call(this, GroupCellRenderer.TEMPLATE) || this;
19156 }
19157 GroupCellRenderer.prototype.init = function (params) {
19158 var _this = this;
19159 var compProxy = {
19160 setInnerRenderer: function (compDetails, valueToDisplay) { return _this.setRenderDetails(compDetails, valueToDisplay); },
19161 setChildCount: function (count) { return _this.eChildCount.innerHTML = count; },
19162 addOrRemoveCssClass: function (cssClass, value) { return _this.addOrRemoveCssClass(cssClass, value); },
19163 setContractedDisplayed: function (expanded) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(_this.eContracted, expanded); },
19164 setExpandedDisplayed: function (expanded) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(_this.eExpanded, expanded); },
19165 setCheckboxVisible: function (visible) { return _this.eCheckbox.classList.toggle('ag-invisible', !visible); }
19166 };
19167 var ctrl = this.createManagedBean(new _groupCellRendererCtrl__WEBPACK_IMPORTED_MODULE_4__["GroupCellRendererCtrl"]());
19168 var fullWidth = !params.colDef;
19169 var eGui = this.getGui();
19170 ctrl.init(compProxy, eGui, this.eCheckbox, this.eExpanded, this.eContracted, this.constructor, params);
19171 if (fullWidth) {
19172 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_0__["setAriaRole"])(eGui, 'gridcell');
19173 }
19174 };
19175 GroupCellRenderer.prototype.setRenderDetails = function (compDetails, valueToDisplay) {
19176 var _this = this;
19177 if (compDetails) {
19178 var componentPromise = compDetails.newAgStackInstance();
19179 if (!componentPromise) {
19180 return;
19181 }
19182 componentPromise.then(function (comp) {
19183 if (!comp) {
19184 return;
19185 }
19186 var destroyComp = function () { return _this.context.destroyBean(comp); };
19187 if (_this.isAlive()) {
19188 _this.eValue.appendChild(comp.getGui());
19189 _this.addDestroyFunc(destroyComp);
19190 }
19191 else {
19192 destroyComp();
19193 }
19194 });
19195 }
19196 else {
19197 this.eValue.innerText = valueToDisplay;
19198 }
19199 };
19200 // this is a user component, and IComponent has "public destroy()" as part of the interface.
19201 // so we need to have public here instead of private or protected
19202 GroupCellRenderer.prototype.destroy = function () {
19203 this.getContext().destroyBean(this.innerCellRenderer);
19204 _super.prototype.destroy.call(this);
19205 };
19206 GroupCellRenderer.prototype.refresh = function () {
19207 return false;
19208 };
19209 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>";
19210 __decorate([
19211 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eExpanded')
19212 ], GroupCellRenderer.prototype, "eExpanded", void 0);
19213 __decorate([
19214 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eContracted')
19215 ], GroupCellRenderer.prototype, "eContracted", void 0);
19216 __decorate([
19217 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eCheckbox')
19218 ], GroupCellRenderer.prototype, "eCheckbox", void 0);
19219 __decorate([
19220 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eValue')
19221 ], GroupCellRenderer.prototype, "eValue", void 0);
19222 __decorate([
19223 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eChildCount')
19224 ], GroupCellRenderer.prototype, "eChildCount", void 0);
19225 return GroupCellRenderer;
19226}(_widgets_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
19227
19228
19229
19230/***/ }),
19231/* 96 */
19232/***/ (function(module, __webpack_exports__, __webpack_require__) {
19233
19234"use strict";
19235__webpack_require__.r(__webpack_exports__);
19236/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupCellRendererCtrl", function() { return GroupCellRendererCtrl; });
19237/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
19238/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
19239/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
19240/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97);
19241/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41);
19242/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);
19243/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
19244/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(46);
19245/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12);
19246/* harmony import */ var _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(98);
19247/* harmony import */ var _row_rowDragComp__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(99);
19248/**
19249 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
19250 * @version v29.2.0
19251 * @link https://www.ag-grid.com/
19252 * @license MIT
19253 */
19254var __extends = (undefined && undefined.__extends) || (function () {
19255 var extendStatics = function (d, b) {
19256 extendStatics = Object.setPrototypeOf ||
19257 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19258 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
19259 return extendStatics(d, b);
19260 };
19261 return function (d, b) {
19262 extendStatics(d, b);
19263 function __() { this.constructor = d; }
19264 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
19265 };
19266})();
19267var __assign = (undefined && undefined.__assign) || function () {
19268 __assign = Object.assign || function(t) {
19269 for (var s, i = 1, n = arguments.length; i < n; i++) {
19270 s = arguments[i];
19271 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19272 t[p] = s[p];
19273 }
19274 return t;
19275 };
19276 return __assign.apply(this, arguments);
19277};
19278var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
19279 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19280 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
19281 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;
19282 return c > 3 && r && Object.defineProperty(target, key, r), r;
19283};
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
19294
19295var GroupCellRendererCtrl = /** @class */ (function (_super) {
19296 __extends(GroupCellRendererCtrl, _super);
19297 function GroupCellRendererCtrl() {
19298 return _super !== null && _super.apply(this, arguments) || this;
19299 }
19300 GroupCellRendererCtrl.prototype.init = function (comp, eGui, eCheckbox, eExpanded, eContracted, compClass, params) {
19301 this.params = params;
19302 this.eGui = eGui;
19303 this.eCheckbox = eCheckbox;
19304 this.eExpanded = eExpanded;
19305 this.eContracted = eContracted;
19306 this.comp = comp;
19307 this.compClass = compClass;
19308 var topLevelFooter = this.isTopLevelFooter();
19309 var embeddedRowMismatch = this.isEmbeddedRowMismatch();
19310 // This allows for empty strings to appear as groups since
19311 // it will only return for null or undefined.
19312 var isNullValueAndNotMaster = params.value == null && !params.node.master;
19313 var skipCell = false;
19314 // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true
19315 // we should only display the groupCellRenderer if the current column is the rowGroupedColumn
19316 if (this.gridOptionsService.is('groupIncludeFooter') && this.gridOptionsService.is('groupHideOpenParents')) {
19317 var node = params.node;
19318 if (node.footer) {
19319 var showRowGroup = params.colDef && params.colDef.showRowGroup;
19320 var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();
19321 skipCell = showRowGroup !== rowGroupColumnId;
19322 }
19323 }
19324 this.cellIsBlank = topLevelFooter ? false : (embeddedRowMismatch || (isNullValueAndNotMaster && !params.node.master) || skipCell);
19325 if (this.cellIsBlank) {
19326 return;
19327 }
19328 this.setupShowingValueForOpenedParent();
19329 this.findDisplayedGroupNode();
19330 this.addFullWidthRowDraggerIfNeeded();
19331 this.addExpandAndContract();
19332 this.addCheckboxIfNeeded();
19333 this.addValueElement();
19334 this.setupIndent();
19335 this.refreshAriaExpanded();
19336 };
19337 GroupCellRendererCtrl.prototype.destroy = function () {
19338 _super.prototype.destroy.call(this);
19339 // property cleanup to avoid memory leaks
19340 this.expandListener = null;
19341 };
19342 GroupCellRendererCtrl.prototype.refreshAriaExpanded = function () {
19343 var _a = this.params, node = _a.node, eParentOfValue = _a.eParentOfValue;
19344 if (this.expandListener) {
19345 this.expandListener = this.expandListener();
19346 }
19347 if (!this.isExpandable()) {
19348 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["removeAriaExpanded"])(eParentOfValue);
19349 return;
19350 }
19351 var listener = function () {
19352 // for react, we don't use JSX, as setting attributes via jsx is slower
19353 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaExpanded"])(eParentOfValue, !!node.expanded);
19354 };
19355 this.expandListener = this.addManagedListener(node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_EXPANDED_CHANGED, listener) || null;
19356 listener();
19357 };
19358 GroupCellRendererCtrl.prototype.isTopLevelFooter = function () {
19359 if (!this.gridOptionsService.is('groupIncludeTotalFooter')) {
19360 return false;
19361 }
19362 if (this.params.value != null || this.params.node.level != -1) {
19363 return false;
19364 }
19365 // at this point, we know it's the root node and there is no value present, so it's a footer cell.
19366 // the only thing to work out is if we are displaying groups across multiple
19367 // columns (groupDisplayType: 'multipleColumns'), we only want 'total' to appear in the first column.
19368 var colDef = this.params.colDef;
19369 var doingFullWidth = colDef == null;
19370 if (doingFullWidth) {
19371 return true;
19372 }
19373 if (colDef.showRowGroup === true) {
19374 return true;
19375 }
19376 var rowGroupCols = this.columnModel.getRowGroupColumns();
19377 // this is a sanity check, rowGroupCols should always be present
19378 if (!rowGroupCols || rowGroupCols.length === 0) {
19379 return true;
19380 }
19381 var firstRowGroupCol = rowGroupCols[0];
19382 return firstRowGroupCol.getId() === colDef.showRowGroup;
19383 };
19384 // if we are doing embedded full width rows, we only show the renderer when
19385 // in the body, or if pinning in the pinned section, or if pinning and RTL,
19386 // in the right section. otherwise we would have the cell repeated in each section.
19387 GroupCellRendererCtrl.prototype.isEmbeddedRowMismatch = function () {
19388 if (!this.params.fullWidth || !this.gridOptionsService.is('embedFullWidthRows')) {
19389 return false;
19390 }
19391 var pinnedLeftCell = this.params.pinned === 'left';
19392 var pinnedRightCell = this.params.pinned === 'right';
19393 var bodyCell = !pinnedLeftCell && !pinnedRightCell;
19394 if (this.gridOptionsService.is('enableRtl')) {
19395 if (this.columnModel.isPinningLeft()) {
19396 return !pinnedRightCell;
19397 }
19398 return !bodyCell;
19399 }
19400 if (this.columnModel.isPinningLeft()) {
19401 return !pinnedLeftCell;
19402 }
19403 return !bodyCell;
19404 };
19405 GroupCellRendererCtrl.prototype.findDisplayedGroupNode = function () {
19406 var column = this.params.column;
19407 var rowNode = this.params.node;
19408 if (this.showingValueForOpenedParent) {
19409 var pointer = rowNode.parent;
19410 while (pointer != null) {
19411 if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {
19412 this.displayedGroupNode = pointer;
19413 break;
19414 }
19415 pointer = pointer.parent;
19416 }
19417 }
19418 // if we didn't find a displayed group, set it to the row node
19419 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.displayedGroupNode)) {
19420 this.displayedGroupNode = rowNode;
19421 }
19422 };
19423 GroupCellRendererCtrl.prototype.setupShowingValueForOpenedParent = function () {
19424 // note - this code depends on sortService.updateGroupDataForHiddenOpenParents, where group data
19425 // is updated to reflect the dragged down parents
19426 var rowNode = this.params.node;
19427 var column = this.params.column;
19428 if (!this.gridOptionsService.is('groupHideOpenParents')) {
19429 this.showingValueForOpenedParent = false;
19430 return;
19431 }
19432 // hideOpenParents means rowNode.groupData can have data for the group this column is displaying, even though
19433 // this rowNode isn't grouping by the column we are displaying
19434 // if no groupData at all, we are not showing a parent value
19435 if (!rowNode.groupData) {
19436 this.showingValueForOpenedParent = false;
19437 return;
19438 }
19439 // this is the normal case, in that we are showing a group for which this column is configured. note that
19440 // this means the Row Group is closed (if it was open, we would not be displaying it)
19441 var showingGroupNode = rowNode.rowGroupColumn != null;
19442 if (showingGroupNode) {
19443 var keyOfGroupingColumn = rowNode.rowGroupColumn.getId();
19444 var configuredToShowThisGroupLevel = column.isRowGroupDisplayed(keyOfGroupingColumn);
19445 // if showing group as normal, we didn't take group info from parent
19446 if (configuredToShowThisGroupLevel) {
19447 this.showingValueForOpenedParent = false;
19448 return;
19449 }
19450 }
19451 // see if we are showing a Group Value for the Displayed Group. if we are showing a group value, and this Row Node
19452 // is not grouping by this Displayed Group, we must of gotten the value from a parent node
19453 var valPresent = rowNode.groupData[column.getId()] != null;
19454 this.showingValueForOpenedParent = valPresent;
19455 };
19456 GroupCellRendererCtrl.prototype.addValueElement = function () {
19457 if (this.displayedGroupNode.footer) {
19458 this.addFooterValue();
19459 }
19460 else {
19461 this.addGroupValue();
19462 this.addChildCount();
19463 }
19464 };
19465 GroupCellRendererCtrl.prototype.addGroupValue = function () {
19466 // we try and use the cellRenderer of the column used for the grouping if we can
19467 var paramsAdjusted = this.adjustParamsWithDetailsFromRelatedColumn();
19468 var innerCompDetails = this.getInnerCompDetails(paramsAdjusted);
19469 var valueFormatted = paramsAdjusted.valueFormatted, value = paramsAdjusted.value;
19470 var valueWhenNoRenderer = valueFormatted;
19471 if (valueWhenNoRenderer == null) {
19472 if (value === '' && this.params.node.group) {
19473 var localeTextFunc = this.localeService.getLocaleTextFunc();
19474 valueWhenNoRenderer = localeTextFunc('blanks', '(Blanks)');
19475 }
19476 else {
19477 valueWhenNoRenderer = value !== null && value !== void 0 ? value : null;
19478 }
19479 }
19480 this.comp.setInnerRenderer(innerCompDetails, valueWhenNoRenderer);
19481 };
19482 GroupCellRendererCtrl.prototype.adjustParamsWithDetailsFromRelatedColumn = function () {
19483 var relatedColumn = this.displayedGroupNode.rowGroupColumn;
19484 var column = this.params.column;
19485 if (!relatedColumn) {
19486 return this.params;
19487 }
19488 var notFullWidth = column != null;
19489 if (notFullWidth) {
19490 var showingThisRowGroup = column.isRowGroupDisplayed(relatedColumn.getId());
19491 if (!showingThisRowGroup) {
19492 return this.params;
19493 }
19494 }
19495 var params = this.params;
19496 var _a = this.params, value = _a.value, node = _a.node;
19497 var valueFormatted = this.valueFormatterService.formatValue(relatedColumn, node, value);
19498 // we don't update the original params, as they could of come through React,
19499 // as react has RowGroupCellRenderer, which means the params could be props which
19500 // would be read only
19501 var paramsAdjusted = __assign(__assign({}, params), { valueFormatted: valueFormatted });
19502 return paramsAdjusted;
19503 };
19504 GroupCellRendererCtrl.prototype.addFooterValue = function () {
19505 var footerValueGetter = this.params.footerValueGetter;
19506 var footerValue = '';
19507 if (footerValueGetter) {
19508 // params is same as we were given, except we set the value as the item to display
19509 var paramsClone = Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["cloneObject"])(this.params);
19510 paramsClone.value = this.params.value;
19511 if (typeof footerValueGetter === 'function') {
19512 footerValue = footerValueGetter(paramsClone);
19513 }
19514 else if (typeof footerValueGetter === 'string') {
19515 footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);
19516 }
19517 else {
19518 console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');
19519 }
19520 }
19521 else {
19522 footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');
19523 }
19524 var innerCompDetails = this.getInnerCompDetails(this.params);
19525 this.comp.setInnerRenderer(innerCompDetails, footerValue);
19526 };
19527 GroupCellRendererCtrl.prototype.getInnerCompDetails = function (params) {
19528 var _this = this;
19529 // for full width rows, we don't do any of the below
19530 if (params.fullWidth) {
19531 return this.userComponentFactory.getFullWidthGroupRowInnerCellRenderer(this.gridOptionsService.get('groupRowRendererParams'), params);
19532 }
19533 // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country
19534 // and then rating, we will use the country cell renderer for each country group row and likewise the rating
19535 // cell renderer for each rating group row.
19536 //
19537 // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers
19538 // of the grouped columns.
19539 //
19540 // so we check and use in the following order:
19541 //
19542 // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)
19543 // 2) groupedColDef.cellRenderer of the grouped column
19544 // 3) groupedColDef.cellRendererParams.innerRenderer
19545 // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer
19546 var innerCompDetails = this.userComponentFactory
19547 .getInnerRendererDetails(params, params);
19548 // avoid using GroupCellRenderer again, otherwise stack overflow, as we insert same renderer again and again.
19549 // this covers off chance user is grouping by a column that is also configured with GroupCellRenderer
19550 var isGroupRowRenderer = function (details) { return details && details.componentClass == _this.compClass; };
19551 if (innerCompDetails && !isGroupRowRenderer(innerCompDetails)) {
19552 // use the renderer defined in cellRendererParams.innerRenderer
19553 return innerCompDetails;
19554 }
19555 var relatedColumn = this.displayedGroupNode.rowGroupColumn;
19556 var relatedColDef = relatedColumn ? relatedColumn.getColDef() : undefined;
19557 if (!relatedColDef) {
19558 return;
19559 }
19560 // otherwise see if we can use the cellRenderer of the column we are grouping by
19561 var relatedCompDetails = this.userComponentFactory
19562 .getCellRendererDetails(relatedColDef, params);
19563 if (relatedCompDetails && !isGroupRowRenderer(relatedCompDetails)) {
19564 // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it
19565 return relatedCompDetails;
19566 }
19567 if (isGroupRowRenderer(relatedCompDetails) &&
19568 relatedColDef.cellRendererParams &&
19569 relatedColDef.cellRendererParams.innerRenderer) {
19570 // edge case - this comes from a column which has been grouped dynamically, that has a renderer 'group'
19571 // and has an inner cell renderer
19572 var res = this.userComponentFactory.getInnerRendererDetails(relatedColDef.cellRendererParams, params);
19573 return res;
19574 }
19575 };
19576 GroupCellRendererCtrl.prototype.addChildCount = function () {
19577 // only include the child count if it's included, eg if user doing custom aggregation,
19578 // then this could be left out, or set to -1, ie no child count
19579 if (this.params.suppressCount) {
19580 return;
19581 }
19582 this.addManagedListener(this.displayedGroupNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));
19583 // filtering changes the child count, so need to cater for it
19584 this.updateChildCount();
19585 };
19586 GroupCellRendererCtrl.prototype.updateChildCount = function () {
19587 var allChildrenCount = this.displayedGroupNode.allChildrenCount;
19588 var showingGroupForThisNode = this.isShowRowGroupForThisRow();
19589 var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;
19590 var countString = showCount ? "(" + allChildrenCount + ")" : "";
19591 this.comp.setChildCount(countString);
19592 };
19593 GroupCellRendererCtrl.prototype.isShowRowGroupForThisRow = function () {
19594 if (this.gridOptionsService.isTreeData()) {
19595 return true;
19596 }
19597 var rowGroupColumn = this.displayedGroupNode.rowGroupColumn;
19598 if (!rowGroupColumn) {
19599 return false;
19600 }
19601 // column is null for fullWidthRows
19602 var column = this.params.column;
19603 var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());
19604 return thisColumnIsInterested;
19605 };
19606 GroupCellRendererCtrl.prototype.addExpandAndContract = function () {
19607 var params = this.params;
19608 var eExpandedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_7__["createIconNoSpan"])('groupExpanded', this.gridOptionsService, null);
19609 var eContractedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_7__["createIconNoSpan"])('groupContracted', this.gridOptionsService, null);
19610 if (eExpandedIcon) {
19611 this.eExpanded.appendChild(eExpandedIcon);
19612 }
19613 if (eContractedIcon) {
19614 this.eContracted.appendChild(eContractedIcon);
19615 }
19616 var eGroupCell = params.eGridCell;
19617 // if editing groups, then double click is to start editing
19618 if (!this.gridOptionsService.is('enableGroupEdit') && this.isExpandable() && !params.suppressDoubleClickExpand) {
19619 this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));
19620 }
19621 this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));
19622 this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));
19623 // expand / contract as the user hits enter
19624 this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));
19625 this.addManagedListener(params.node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));
19626 this.showExpandAndContractIcons();
19627 // because we don't show the expand / contract when there are no children, we need to check every time
19628 // the number of children change.
19629 var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);
19630 this.addManagedListener(this.displayedGroupNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);
19631 this.addManagedListener(this.displayedGroupNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_MASTER_CHANGED, expandableChangedListener);
19632 this.addManagedListener(this.displayedGroupNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_GROUP_CHANGED, expandableChangedListener);
19633 this.addManagedListener(this.displayedGroupNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);
19634 };
19635 GroupCellRendererCtrl.prototype.onExpandClicked = function (mouseEvent) {
19636 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isStopPropagationForAgGrid"])(mouseEvent)) {
19637 return;
19638 }
19639 // so if we expand a node, it does not also get selected.
19640 Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(mouseEvent);
19641 this.onExpandOrContract(mouseEvent);
19642 };
19643 GroupCellRendererCtrl.prototype.onExpandOrContract = function (e) {
19644 // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row
19645 var rowNode = this.displayedGroupNode;
19646 var nextExpandState = !rowNode.expanded;
19647 if (!nextExpandState && rowNode.sticky) {
19648 this.scrollToStickyNode(rowNode);
19649 }
19650 rowNode.setExpanded(nextExpandState, e);
19651 };
19652 GroupCellRendererCtrl.prototype.scrollToStickyNode = function (rowNode) {
19653 var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();
19654 var scrollFeature = gridBodyCtrl.getScrollFeature();
19655 scrollFeature.setVerticalScrollPosition(rowNode.rowTop - rowNode.stickyRowTop);
19656 };
19657 GroupCellRendererCtrl.prototype.isExpandable = function () {
19658 if (this.showingValueForOpenedParent) {
19659 return true;
19660 }
19661 var rowNode = this.displayedGroupNode;
19662 var reducedLeafNode = this.columnModel.isPivotMode() && rowNode.leafGroup;
19663 var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;
19664 if (!expandableGroup) {
19665 return false;
19666 }
19667 // column is null for fullWidthRows
19668 var column = this.params.column;
19669 var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';
19670 if (displayingForOneColumnOnly) {
19671 var showing = this.isShowRowGroupForThisRow();
19672 return showing;
19673 }
19674 return true;
19675 };
19676 GroupCellRendererCtrl.prototype.showExpandAndContractIcons = function () {
19677 var _a = this, params = _a.params, displayedGroup = _a.displayedGroupNode, columnModel = _a.columnModel;
19678 var node = params.node;
19679 var isExpandable = this.isExpandable();
19680 if (isExpandable) {
19681 // if expandable, show one based on expand state.
19682 // if we were dragged down, means our parent is always expanded
19683 var expanded = this.showingValueForOpenedParent ? true : node.expanded;
19684 this.comp.setExpandedDisplayed(expanded);
19685 this.comp.setContractedDisplayed(!expanded);
19686 }
19687 else {
19688 // it not expandable, show neither
19689 this.comp.setExpandedDisplayed(false);
19690 this.comp.setContractedDisplayed(false);
19691 }
19692 // compensation padding for leaf nodes, so there is blank space instead of the expand icon
19693 var pivotMode = columnModel.isPivotMode();
19694 var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;
19695 var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;
19696 var isTotalFooterNode = node.footer && node.level === -1;
19697 this.comp.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);
19698 this.comp.addOrRemoveCssClass('ag-row-group', addExpandableCss);
19699 if (pivotMode) {
19700 this.comp.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);
19701 }
19702 else if (!isTotalFooterNode) {
19703 this.comp.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);
19704 }
19705 };
19706 GroupCellRendererCtrl.prototype.onRowNodeIsExpandableChanged = function () {
19707 // maybe if no children now, we should hide the expand / contract icons
19708 this.showExpandAndContractIcons();
19709 // if we have no children, this impacts the indent
19710 this.setIndent();
19711 this.refreshAriaExpanded();
19712 };
19713 GroupCellRendererCtrl.prototype.setupIndent = function () {
19714 // only do this if an indent - as this overwrites the padding that
19715 // the theme set, which will make things look 'not aligned' for the
19716 // first group level.
19717 var node = this.params.node;
19718 var suppressPadding = this.params.suppressPadding;
19719 if (!suppressPadding) {
19720 this.addManagedListener(node, _entities_rowNode__WEBPACK_IMPORTED_MODULE_3__["RowNode"].EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));
19721 this.setIndent();
19722 }
19723 };
19724 GroupCellRendererCtrl.prototype.setIndent = function () {
19725 if (this.gridOptionsService.is('groupHideOpenParents')) {
19726 return;
19727 }
19728 var params = this.params;
19729 var rowNode = params.node;
19730 // if we are only showing one group column, we don't want to be indenting based on level
19731 var fullWithRow = !!params.colDef;
19732 var treeData = this.gridOptionsService.isTreeData();
19733 var manyDimensionThisColumn = !fullWithRow || treeData || params.colDef.showRowGroup === true;
19734 var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;
19735 if (this.indentClass) {
19736 this.comp.addOrRemoveCssClass(this.indentClass, false);
19737 }
19738 this.indentClass = 'ag-row-group-indent-' + paddingCount;
19739 this.comp.addOrRemoveCssClass(this.indentClass, true);
19740 };
19741 GroupCellRendererCtrl.prototype.addFullWidthRowDraggerIfNeeded = function () {
19742 var _this = this;
19743 if (!this.params.fullWidth || !this.params.rowDrag) {
19744 return;
19745 }
19746 var rowDragComp = new _row_rowDragComp__WEBPACK_IMPORTED_MODULE_10__["RowDragComp"](function () { return _this.params.value; }, this.params.node);
19747 this.createManagedBean(rowDragComp, this.context);
19748 this.eGui.insertAdjacentElement('afterbegin', rowDragComp.getGui());
19749 };
19750 GroupCellRendererCtrl.prototype.isUserWantsSelected = function () {
19751 var paramsCheckbox = this.params.checkbox;
19752 // if a function, we always return true as change detection can show or hide the checkbox.
19753 return typeof paramsCheckbox === 'function' || paramsCheckbox === true;
19754 };
19755 GroupCellRendererCtrl.prototype.addCheckboxIfNeeded = function () {
19756 var _this = this;
19757 var rowNode = this.displayedGroupNode;
19758 var checkboxNeeded = this.isUserWantsSelected() &&
19759 // footers cannot be selected
19760 !rowNode.footer &&
19761 // pinned rows cannot be selected
19762 !rowNode.rowPinned &&
19763 // details cannot be selected
19764 !rowNode.detail;
19765 if (checkboxNeeded) {
19766 var cbSelectionComponent_1 = new _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_9__["CheckboxSelectionComponent"]();
19767 this.getContext().createBean(cbSelectionComponent_1);
19768 cbSelectionComponent_1.init({
19769 rowNode: rowNode,
19770 column: this.params.column,
19771 overrides: {
19772 isVisible: this.params.checkbox,
19773 callbackParams: this.params,
19774 removeHidden: true,
19775 },
19776 });
19777 this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());
19778 this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });
19779 }
19780 this.comp.setCheckboxVisible(checkboxNeeded);
19781 };
19782 GroupCellRendererCtrl.prototype.onKeyDown = function (event) {
19783 var enterKeyPressed = event.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].ENTER;
19784 if (!enterKeyPressed || this.params.suppressEnterExpand) {
19785 return;
19786 }
19787 var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);
19788 if (cellEditable) {
19789 return;
19790 }
19791 this.onExpandOrContract(event);
19792 };
19793 GroupCellRendererCtrl.prototype.onCellDblClicked = function (mouseEvent) {
19794 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isStopPropagationForAgGrid"])(mouseEvent)) {
19795 return;
19796 }
19797 // we want to avoid acting on double click events on the expand / contract icon,
19798 // as that icons already has expand / collapse functionality on it. otherwise if
19799 // the icon was double clicked, we would get 'click', 'click', 'dblclick' which
19800 // is open->close->open, however double click should be open->close only.
19801 var targetIsExpandIcon = Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isElementInEventPath"])(this.eExpanded, mouseEvent)
19802 || Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isElementInEventPath"])(this.eContracted, mouseEvent);
19803 if (!targetIsExpandIcon) {
19804 this.onExpandOrContract(mouseEvent);
19805 }
19806 };
19807 __decorate([
19808 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('expressionService')
19809 ], GroupCellRendererCtrl.prototype, "expressionService", void 0);
19810 __decorate([
19811 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueFormatterService')
19812 ], GroupCellRendererCtrl.prototype, "valueFormatterService", void 0);
19813 __decorate([
19814 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnModel')
19815 ], GroupCellRendererCtrl.prototype, "columnModel", void 0);
19816 __decorate([
19817 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('userComponentFactory')
19818 ], GroupCellRendererCtrl.prototype, "userComponentFactory", void 0);
19819 __decorate([
19820 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("ctrlsService")
19821 ], GroupCellRendererCtrl.prototype, "ctrlsService", void 0);
19822 return GroupCellRendererCtrl;
19823}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
19824
19825
19826
19827/***/ }),
19828/* 97 */
19829/***/ (function(module, __webpack_exports__, __webpack_require__) {
19830
19831"use strict";
19832__webpack_require__.r(__webpack_exports__);
19833/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return RowNode; });
19834/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
19835/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
19836/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
19837/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
19838/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12);
19839/**
19840 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
19841 * @version v29.2.0
19842 * @link https://www.ag-grid.com/
19843 * @license MIT
19844 */
19845var __assign = (undefined && undefined.__assign) || function () {
19846 __assign = Object.assign || function(t) {
19847 for (var s, i = 1, n = arguments.length; i < n; i++) {
19848 s = arguments[i];
19849 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
19850 t[p] = s[p];
19851 }
19852 return t;
19853 };
19854 return __assign.apply(this, arguments);
19855};
19856
19857
19858
19859
19860
19861var RowNode = /** @class */ (function () {
19862 function RowNode(beans) {
19863 /** The current row index. If the row is filtered out or in a collapsed group, this value will be `null`. */
19864 this.rowIndex = null;
19865 /** The key for the group eg Ireland, UK, USA */
19866 this.key = null;
19867 /** Children mapped by the pivot columns. */
19868 this.childrenMapped = {};
19869 /**
19870 * This will be `true` if it has a rowIndex assigned, otherwise `false`.
19871 */
19872 this.displayed = false;
19873 /** The row top position in pixels. */
19874 this.rowTop = null;
19875 /** The top pixel for this row last time, makes sense if data set was ordered or filtered,
19876 * it is used so new rows can animate in from their old position. */
19877 this.oldRowTop = null;
19878 /** `true` by default - can be overridden via gridOptions.isRowSelectable(rowNode) */
19879 this.selectable = true;
19880 /** Used by sorting service - to give deterministic sort to groups. Previously we
19881 * just id for this, however id is a string and had slower sorting compared to numbers. */
19882 this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;
19883 /** When one or more Columns are using autoHeight, this keeps track of height of each autoHeight Cell,
19884 * indexed by the Column ID. */
19885 this.__autoHeights = {};
19886 /** `true` when nodes with the same id are being removed and added as part of the same batch transaction */
19887 this.alreadyRendered = false;
19888 this.highlighted = null;
19889 this.selected = false;
19890 this.beans = beans;
19891 }
19892 /**
19893 * Replaces the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.
19894 */
19895 RowNode.prototype.setData = function (data) {
19896 this.setDataCommon(data, false);
19897 };
19898 // similar to setRowData, however it is expected that the data is the same data item. this
19899 // is intended to be used with Redux type stores, where the whole data can be changed. we are
19900 // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the
19901 // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving
19902 // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).
19903 /**
19904 * Updates the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.
19905 */
19906 RowNode.prototype.updateData = function (data) {
19907 this.setDataCommon(data, true);
19908 };
19909 RowNode.prototype.setDataCommon = function (data, update) {
19910 var oldData = this.data;
19911 this.data = data;
19912 this.beans.valueCache.onDataChanged();
19913 this.updateDataOnDetailNode();
19914 this.checkRowSelectable();
19915 this.resetQuickFilterAggregateText();
19916 var event = this.createDataChangedEvent(data, oldData, update);
19917 this.dispatchLocalEvent(event);
19918 };
19919 // when we are doing master / detail, the detail node is lazy created, but then kept around.
19920 // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data
19921 // in sync, otherwise expand/collapse of the detail would still show the old values.
19922 RowNode.prototype.updateDataOnDetailNode = function () {
19923 if (this.detailNode) {
19924 this.detailNode.data = this.data;
19925 }
19926 };
19927 RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {
19928 return {
19929 type: RowNode.EVENT_DATA_CHANGED,
19930 node: this,
19931 oldData: oldData,
19932 newData: newData,
19933 update: update
19934 };
19935 };
19936 RowNode.prototype.createLocalRowEvent = function (type) {
19937 return {
19938 type: type,
19939 node: this
19940 };
19941 };
19942 RowNode.prototype.getRowIndexString = function () {
19943 if (this.rowPinned === 'top') {
19944 return 't-' + this.rowIndex;
19945 }
19946 if (this.rowPinned === 'bottom') {
19947 return 'b-' + this.rowIndex;
19948 }
19949 return this.rowIndex.toString();
19950 };
19951 RowNode.prototype.createDaemonNode = function () {
19952 var oldNode = new RowNode(this.beans);
19953 // just copy the id and data, this is enough for the node to be used
19954 // in the selection controller (the selection controller is the only
19955 // place where daemon nodes can live).
19956 oldNode.id = this.id;
19957 oldNode.data = this.data;
19958 oldNode.__daemon = true;
19959 oldNode.selected = this.selected;
19960 oldNode.level = this.level;
19961 return oldNode;
19962 };
19963 RowNode.prototype.setDataAndId = function (data, id) {
19964 var oldNode = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(this.id) ? this.createDaemonNode() : null;
19965 var oldData = this.data;
19966 this.data = data;
19967 this.updateDataOnDetailNode();
19968 this.setId(id);
19969 this.beans.selectionService.syncInRowNode(this, oldNode);
19970 this.checkRowSelectable();
19971 var event = this.createDataChangedEvent(data, oldData, false);
19972 this.dispatchLocalEvent(event);
19973 };
19974 RowNode.prototype.checkRowSelectable = function () {
19975 var isRowSelectableFunc = this.beans.gridOptionsService.get('isRowSelectable');
19976 this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);
19977 };
19978 RowNode.prototype.setRowSelectable = function (newVal) {
19979 if (this.selectable !== newVal) {
19980 this.selectable = newVal;
19981 if (this.eventService) {
19982 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));
19983 }
19984 var isGroupSelectsChildren = this.beans.gridOptionsService.is('groupSelectsChildren');
19985 if (isGroupSelectsChildren) {
19986 var selected = this.calculateSelectedFromChildren();
19987 this.setSelectedParams({ newValue: selected !== null && selected !== void 0 ? selected : false, source: 'selectableChanged' });
19988 }
19989 }
19990 };
19991 RowNode.prototype.setId = function (id) {
19992 // see if user is providing the id's
19993 var getRowIdFunc = this.beans.gridOptionsService.getRowIdFunc();
19994 if (getRowIdFunc) {
19995 // if user is providing the id's, then we set the id only after the data has been set.
19996 // this is important for virtual pagination and viewport, where empty rows exist.
19997 if (this.data) {
19998 // we pass 'true' as we skip this level when generating keys,
19999 // as we don't always have the key for this level (eg when updating
20000 // data via transaction on SSRM, we are getting key to look up the
20001 // RowNode, don't have the RowNode yet, thus no way to get the current key)
20002 var parentKeys = this.getGroupKeys(true);
20003 this.id = getRowIdFunc({
20004 data: this.data,
20005 parentKeys: parentKeys.length > 0 ? parentKeys : undefined,
20006 level: this.level
20007 });
20008 // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that
20009 // it has 'startsWith' in case the user provided a number.
20010 if (this.id !== null && typeof this.id === 'string' && this.id.startsWith(RowNode.ID_PREFIX_ROW_GROUP)) {
20011 console.error("AG Grid: Row IDs cannot start with " + RowNode.ID_PREFIX_ROW_GROUP + ", this is a reserved prefix for AG Grid's row grouping feature.");
20012 }
20013 // force id to be a string
20014 if (this.id !== null && typeof this.id !== 'string') {
20015 this.id = '' + this.id;
20016 }
20017 }
20018 else {
20019 // this can happen if user has set blank into the rowNode after the row previously
20020 // having data. this happens in virtual page row model, when data is delete and
20021 // the page is refreshed.
20022 this.id = undefined;
20023 }
20024 }
20025 else {
20026 this.id = id;
20027 }
20028 };
20029 RowNode.prototype.getGroupKeys = function (excludeSelf) {
20030 if (excludeSelf === void 0) { excludeSelf = false; }
20031 var keys = [];
20032 var pointer = this;
20033 if (excludeSelf) {
20034 pointer = pointer.parent;
20035 }
20036 while (pointer && pointer.level >= 0) {
20037 keys.push(pointer.key);
20038 pointer = pointer.parent;
20039 }
20040 keys.reverse();
20041 return keys;
20042 };
20043 RowNode.prototype.isPixelInRange = function (pixel) {
20044 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(this.rowTop) || !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(this.rowHeight)) {
20045 return false;
20046 }
20047 return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);
20048 };
20049 RowNode.prototype.setFirstChild = function (firstChild) {
20050 if (this.firstChild === firstChild) {
20051 return;
20052 }
20053 this.firstChild = firstChild;
20054 if (this.eventService) {
20055 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));
20056 }
20057 };
20058 RowNode.prototype.setLastChild = function (lastChild) {
20059 if (this.lastChild === lastChild) {
20060 return;
20061 }
20062 this.lastChild = lastChild;
20063 if (this.eventService) {
20064 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));
20065 }
20066 };
20067 RowNode.prototype.setChildIndex = function (childIndex) {
20068 if (this.childIndex === childIndex) {
20069 return;
20070 }
20071 this.childIndex = childIndex;
20072 if (this.eventService) {
20073 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));
20074 }
20075 };
20076 RowNode.prototype.setRowTop = function (rowTop) {
20077 this.oldRowTop = this.rowTop;
20078 if (this.rowTop === rowTop) {
20079 return;
20080 }
20081 this.rowTop = rowTop;
20082 if (this.eventService) {
20083 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));
20084 }
20085 this.setDisplayed(rowTop !== null);
20086 };
20087 RowNode.prototype.clearRowTopAndRowIndex = function () {
20088 this.oldRowTop = null;
20089 this.setRowTop(null);
20090 this.setRowIndex(null);
20091 };
20092 RowNode.prototype.setDisplayed = function (displayed) {
20093 if (this.displayed === displayed) {
20094 return;
20095 }
20096 this.displayed = displayed;
20097 if (this.eventService) {
20098 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));
20099 }
20100 };
20101 RowNode.prototype.setDragging = function (dragging) {
20102 if (this.dragging === dragging) {
20103 return;
20104 }
20105 this.dragging = dragging;
20106 if (this.eventService) {
20107 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));
20108 }
20109 };
20110 RowNode.prototype.setHighlighted = function (highlighted) {
20111 if (highlighted === this.highlighted) {
20112 return;
20113 }
20114 this.highlighted = highlighted;
20115 if (this.eventService) {
20116 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));
20117 }
20118 };
20119 RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {
20120 if (this.allChildrenCount === allChildrenCount) {
20121 return;
20122 }
20123 this.allChildrenCount = allChildrenCount;
20124 if (this.eventService) {
20125 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));
20126 }
20127 };
20128 RowNode.prototype.setMaster = function (master) {
20129 if (this.master === master) {
20130 return;
20131 }
20132 // if changing AWAY from master, then unexpand, otherwise
20133 // next time it's shown it is expanded again
20134 if (this.master && !master) {
20135 this.expanded = false;
20136 }
20137 this.master = master;
20138 if (this.eventService) {
20139 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));
20140 }
20141 };
20142 RowNode.prototype.setGroup = function (group) {
20143 if (this.group === group) {
20144 return;
20145 }
20146 // if we used to be a group, and no longer, then close the node
20147 if (this.group && !group) {
20148 this.expanded = false;
20149 }
20150 this.group = group;
20151 this.updateHasChildren();
20152 if (this.eventService) {
20153 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_GROUP_CHANGED));
20154 }
20155 };
20156 /**
20157 * Sets the row height.
20158 * Call if you want to change the height initially assigned to the row.
20159 * After calling, you must call `api.onRowHeightChanged()` so the grid knows it needs to work out the placement of the rows. */
20160 RowNode.prototype.setRowHeight = function (rowHeight, estimated) {
20161 if (estimated === void 0) { estimated = false; }
20162 this.rowHeight = rowHeight;
20163 this.rowHeightEstimated = estimated;
20164 if (this.eventService) {
20165 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));
20166 }
20167 };
20168 RowNode.prototype.setRowAutoHeight = function (cellHeight, column) {
20169 if (!this.__autoHeights) {
20170 this.__autoHeights = {};
20171 }
20172 var autoHeights = this.__autoHeights;
20173 autoHeights[column.getId()] = cellHeight;
20174 if (cellHeight != null) {
20175 if (this.checkAutoHeightsDebounced == null) {
20176 this.checkAutoHeightsDebounced = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["debounce"])(this.checkAutoHeights.bind(this), 1);
20177 }
20178 this.checkAutoHeightsDebounced();
20179 }
20180 };
20181 RowNode.prototype.checkAutoHeights = function () {
20182 var notAllPresent = false;
20183 var nonePresent = true;
20184 var newRowHeight = 0;
20185 var autoHeights = this.__autoHeights;
20186 if (autoHeights == null) {
20187 return;
20188 }
20189 var displayedAutoHeightCols = this.beans.columnModel.getAllDisplayedAutoHeightCols();
20190 displayedAutoHeightCols.forEach(function (col) {
20191 var cellHeight = autoHeights[col.getId()];
20192 if (cellHeight == null) {
20193 notAllPresent = true;
20194 return;
20195 }
20196 nonePresent = false;
20197 if (cellHeight > newRowHeight) {
20198 newRowHeight = cellHeight;
20199 }
20200 });
20201 if (notAllPresent) {
20202 return;
20203 }
20204 // we take min of 10, so we don't adjust for empty rows. if <10, we put to default.
20205 // this prevents the row starting very small when waiting for async components,
20206 // which would then mean the grid squashes in far to many rows (as small heights
20207 // means more rows fit in) which looks crap. so best ignore small values and assume
20208 // we are still waiting for values to render.
20209 if (nonePresent || newRowHeight < 10) {
20210 newRowHeight = this.beans.gridOptionsService.getRowHeightForNode(this).height;
20211 }
20212 if (newRowHeight == this.rowHeight) {
20213 return;
20214 }
20215 this.setRowHeight(newRowHeight);
20216 var rowModel = this.beans.rowModel;
20217 if (rowModel.onRowHeightChangedDebounced) {
20218 rowModel.onRowHeightChangedDebounced();
20219 }
20220 };
20221 RowNode.prototype.setRowIndex = function (rowIndex) {
20222 if (this.rowIndex === rowIndex) {
20223 return;
20224 }
20225 this.rowIndex = rowIndex;
20226 if (this.eventService) {
20227 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));
20228 }
20229 };
20230 RowNode.prototype.setUiLevel = function (uiLevel) {
20231 if (this.uiLevel === uiLevel) {
20232 return;
20233 }
20234 this.uiLevel = uiLevel;
20235 if (this.eventService) {
20236 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));
20237 }
20238 };
20239 /**
20240 * Set the expanded state of this rowNode. Pass `true` to expand and `false` to collapse.
20241 */
20242 RowNode.prototype.setExpanded = function (expanded, e) {
20243 if (this.expanded === expanded) {
20244 return;
20245 }
20246 this.expanded = expanded;
20247 if (this.eventService) {
20248 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));
20249 }
20250 var event = Object.assign({}, this.createGlobalRowEvent(_events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_GROUP_OPENED), {
20251 expanded: expanded,
20252 event: e || null
20253 });
20254 this.beans.rowNodeEventThrottle.dispatchExpanded(event);
20255 // when using footers we need to refresh the group row, as the aggregation
20256 // values jump between group and footer
20257 if (this.beans.gridOptionsService.is('groupIncludeFooter')) {
20258 this.beans.rowRenderer.refreshCells({ rowNodes: [this] });
20259 }
20260 };
20261 RowNode.prototype.createGlobalRowEvent = function (type) {
20262 return {
20263 type: type,
20264 node: this,
20265 data: this.data,
20266 rowIndex: this.rowIndex,
20267 rowPinned: this.rowPinned,
20268 context: this.beans.gridOptionsService.context,
20269 api: this.beans.gridOptionsService.api,
20270 columnApi: this.beans.gridOptionsService.columnApi
20271 };
20272 };
20273 RowNode.prototype.dispatchLocalEvent = function (event) {
20274 if (this.eventService) {
20275 this.eventService.dispatchEvent(event);
20276 }
20277 };
20278 /**
20279 * Replaces the value on the `rowNode` for the specified column. When complete,
20280 * the grid will refresh the rendered cell on the required row only.
20281 * **Note**: This method on fires `onCellEditRequest` when the Grid is on **Read Only** mode.
20282 *
20283 * @param colKey The column where the value should be updated
20284 * @param newValue The new value
20285 * @param eventSource The source of the event
20286 * @returns `True` if the value was changed, otherwise `False`.
20287 */
20288 RowNode.prototype.setDataValue = function (colKey, newValue, eventSource) {
20289 // When it is done via the editors, no 'cell changed' event gets fired, as it's assumed that
20290 // the cell knows about the change given it's in charge of the editing.
20291 // this method is for the client to call, so the cell listens for the change
20292 // event, and also flashes the cell when the change occurs.
20293 var column = this.beans.columnModel.getPrimaryColumn(colKey);
20294 var oldValue = this.beans.valueService.getValue(column, this);
20295 if (this.beans.gridOptionsService.is('readOnlyEdit')) {
20296 this.dispatchEventForSaveValueReadOnly(column, oldValue, newValue, eventSource);
20297 return false;
20298 }
20299 var valueChanged = this.beans.valueService.setValue(this, column, newValue, eventSource);
20300 this.dispatchCellChangedEvent(column, newValue, oldValue);
20301 this.checkRowSelectable();
20302 return valueChanged;
20303 };
20304 RowNode.prototype.dispatchEventForSaveValueReadOnly = function (column, oldValue, newValue, eventSource) {
20305 var event = {
20306 type: _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_EDIT_REQUEST,
20307 event: null,
20308 rowIndex: this.rowIndex,
20309 rowPinned: this.rowPinned,
20310 column: column,
20311 colDef: column.getColDef(),
20312 context: this.beans.gridOptionsService.context,
20313 api: this.beans.gridOptionsService.api,
20314 columnApi: this.beans.gridOptionsService.columnApi,
20315 data: this.data,
20316 node: this,
20317 oldValue: oldValue,
20318 newValue: newValue,
20319 value: newValue,
20320 source: eventSource
20321 };
20322 this.beans.eventService.dispatchEvent(event);
20323 };
20324 RowNode.prototype.setGroupValue = function (colKey, newValue) {
20325 var column = this.beans.columnModel.getGridColumn(colKey);
20326 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.groupData)) {
20327 this.groupData = {};
20328 }
20329 var columnId = column.getColId();
20330 var oldValue = this.groupData[columnId];
20331 if (oldValue === newValue) {
20332 return;
20333 }
20334 this.groupData[columnId] = newValue;
20335 this.dispatchCellChangedEvent(column, newValue, oldValue);
20336 };
20337 // sets the data for an aggregation
20338 RowNode.prototype.setAggData = function (newAggData) {
20339 var _this = this;
20340 // find out all keys that could potentially change
20341 var colIds = Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["getAllKeysInObjects"])([this.aggData, newAggData]);
20342 var oldAggData = this.aggData;
20343 this.aggData = newAggData;
20344 // if no event service, nobody has registered for events, so no need fire event
20345 if (this.eventService) {
20346 colIds.forEach(function (colId) {
20347 var column = _this.beans.columnModel.getGridColumn(colId);
20348 var value = _this.aggData ? _this.aggData[colId] : undefined;
20349 var oldValue = oldAggData ? oldAggData[colId] : undefined;
20350 _this.dispatchCellChangedEvent(column, value, oldValue);
20351 });
20352 }
20353 };
20354 RowNode.prototype.updateHasChildren = function () {
20355 // in CSRM, the group property will be set before the childrenAfterGroup property, check both to prevent flickering
20356 var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);
20357 var isSsrm = this.beans.gridOptionsService.isRowModelType('serverSide');
20358 if (isSsrm) {
20359 var isTreeData = this.beans.gridOptionsService.isTreeData();
20360 var isGroupFunc = this.beans.gridOptionsService.get('isServerSideGroup');
20361 // stubs and footers can never have children, as they're grid rows. if tree data the presence of children
20362 // is determined by the isServerSideGroup callback, if not tree data then the rows group property will be set.
20363 newValue = !this.stub && !this.footer && (isTreeData ? !!isGroupFunc && isGroupFunc(this.data) : !!this.group);
20364 }
20365 if (newValue !== this.__hasChildren) {
20366 this.__hasChildren = !!newValue;
20367 if (this.eventService) {
20368 this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));
20369 }
20370 }
20371 };
20372 RowNode.prototype.hasChildren = function () {
20373 if (this.__hasChildren == null) {
20374 this.updateHasChildren();
20375 }
20376 return this.__hasChildren;
20377 };
20378 RowNode.prototype.isEmptyRowGroupNode = function () {
20379 return this.group && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missingOrEmpty"])(this.childrenAfterGroup);
20380 };
20381 RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {
20382 var cellChangedEvent = {
20383 type: RowNode.EVENT_CELL_CHANGED,
20384 node: this,
20385 column: column,
20386 newValue: newValue,
20387 oldValue: oldValue
20388 };
20389 this.dispatchLocalEvent(cellChangedEvent);
20390 };
20391 /**
20392 * The first time `quickFilter` runs, the grid creates a one-off string representation of the row.
20393 * This string is then used for the quick filter instead of hitting each column separately.
20394 * When you edit, using grid editing, this string gets cleared down.
20395 * However if you edit without using grid editing, you will need to clear this string down for the row to be updated with the new values.
20396 * Otherwise new values will not work with the `quickFilter`. */
20397 RowNode.prototype.resetQuickFilterAggregateText = function () {
20398 this.quickFilterAggregateText = null;
20399 };
20400 /** Returns:
20401 * - `true` if the node can be expanded, i.e it is a group or master row.
20402 * - `false` if the node cannot be expanded
20403 */
20404 RowNode.prototype.isExpandable = function () {
20405 return (this.hasChildren() && !this.footer) || this.master ? true : false;
20406 };
20407 /** Returns:
20408 * - `true` if node is selected,
20409 * - `false` if the node isn't selected
20410 * - `undefined` if it's partially selected (group where not all children are selected). */
20411 RowNode.prototype.isSelected = function () {
20412 // for footers, we just return what our sibling selected state is, as cannot select a footer
20413 if (this.footer) {
20414 return this.sibling.isSelected();
20415 }
20416 return this.selected;
20417 };
20418 /** Perform a depth-first search of this node and its children. */
20419 RowNode.prototype.depthFirstSearch = function (callback) {
20420 if (this.childrenAfterGroup) {
20421 this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });
20422 }
20423 callback(this);
20424 };
20425 // + selectionController.calculatedSelectedForAllGroupNodes()
20426 RowNode.prototype.calculateSelectedFromChildren = function () {
20427 var _a;
20428 var atLeastOneSelected = false;
20429 var atLeastOneDeSelected = false;
20430 var atLeastOneMixed = false;
20431 if (!((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {
20432 return this.selectable ? this.selected : null;
20433 }
20434 for (var i = 0; i < this.childrenAfterGroup.length; i++) {
20435 var child = this.childrenAfterGroup[i];
20436 var childState = child.isSelected();
20437 // non-selectable nodes must be calculated from their children, or ignored if no value results.
20438 if (!child.selectable) {
20439 var selectable = child.calculateSelectedFromChildren();
20440 if (selectable === null) {
20441 continue;
20442 }
20443 childState = selectable;
20444 }
20445 switch (childState) {
20446 case true:
20447 atLeastOneSelected = true;
20448 break;
20449 case false:
20450 atLeastOneDeSelected = true;
20451 break;
20452 default:
20453 atLeastOneMixed = true;
20454 break;
20455 }
20456 }
20457 if (atLeastOneMixed || (atLeastOneSelected && atLeastOneDeSelected)) {
20458 return undefined;
20459 }
20460 else if (atLeastOneSelected) {
20461 return true;
20462 }
20463 else if (atLeastOneDeSelected) {
20464 return false;
20465 }
20466 else if (!this.selectable) {
20467 return null;
20468 }
20469 else {
20470 return this.selected;
20471 }
20472 };
20473 RowNode.prototype.setSelectedInitialValue = function (selected) {
20474 this.selected = selected;
20475 };
20476 RowNode.prototype.selectThisNode = function (newValue, e, source) {
20477 if (source === void 0) { source = 'api'; }
20478 // we only check selectable when newValue=true (ie selecting) to allow unselecting values,
20479 // as selectable is dynamic, need a way to unselect rows when selectable becomes false.
20480 var selectionNotAllowed = !this.selectable && newValue;
20481 var selectionNotChanged = this.selected === newValue;
20482 if (selectionNotAllowed || selectionNotChanged) {
20483 return false;
20484 }
20485 this.selected = newValue;
20486 if (this.eventService) {
20487 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));
20488 }
20489 var event = __assign(__assign({}, this.createGlobalRowEvent(_events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_SELECTED)), { event: e || null, source: source });
20490 this.beans.eventService.dispatchEvent(event);
20491 return true;
20492 };
20493 /**
20494 * Select (or deselect) the node.
20495 * @param newValue -`true` for selection, `false` for deselection.
20496 * @param clearSelection - If selecting, then passing `true` will select the node exclusively (i.e. NOT do multi select). If doing deselection, `clearSelection` has no impact.
20497 * @param suppressFinishActions - Pass `true` to prevent the `selectionChanged` from being fired. Note that the `rowSelected` event will still be fired.
20498 * @param source - Source property that will appear in the `selectionChanged` event.
20499 */
20500 RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions, source) {
20501 if (clearSelection === void 0) { clearSelection = false; }
20502 if (suppressFinishActions === void 0) { suppressFinishActions = false; }
20503 if (source === void 0) { source = 'api'; }
20504 this.setSelectedParams({
20505 newValue: newValue,
20506 clearSelection: clearSelection,
20507 suppressFinishActions: suppressFinishActions,
20508 rangeSelect: false,
20509 source: source
20510 });
20511 };
20512 // to make calling code more readable, this is the same method as setSelected except it takes names parameters
20513 RowNode.prototype.setSelectedParams = function (params) {
20514 if (this.rowPinned) {
20515 console.warn('AG Grid: cannot select pinned rows');
20516 return 0;
20517 }
20518 if (this.id === undefined) {
20519 console.warn('AG Grid: cannot select node until id for node is known');
20520 return 0;
20521 }
20522 return this.beans.selectionService.setNodeSelected(__assign(__assign({}, params), { node: this.footer ? this.sibling : this }));
20523 };
20524 /**
20525 * Returns:
20526 * - `true` if node is either pinned to the `top` or `bottom`
20527 * - `false` if the node isn't pinned
20528 */
20529 RowNode.prototype.isRowPinned = function () {
20530 return this.rowPinned === 'top' || this.rowPinned === 'bottom';
20531 };
20532 RowNode.prototype.isParentOfNode = function (potentialParent) {
20533 var parentNode = this.parent;
20534 while (parentNode) {
20535 if (parentNode === potentialParent) {
20536 return true;
20537 }
20538 parentNode = parentNode.parent;
20539 }
20540 return false;
20541 };
20542 /** Add an event listener. */
20543 RowNode.prototype.addEventListener = function (eventType, listener) {
20544 if (!this.eventService) {
20545 this.eventService = new _eventService__WEBPACK_IMPORTED_MODULE_1__["EventService"]();
20546 }
20547 this.eventService.addEventListener(eventType, listener);
20548 };
20549 /** Remove event listener. */
20550 RowNode.prototype.removeEventListener = function (eventType, listener) {
20551 if (!this.eventService) {
20552 return;
20553 }
20554 this.eventService.removeEventListener(eventType, listener);
20555 if (this.eventService.noRegisteredListenersExist()) {
20556 this.eventService = null;
20557 }
20558 };
20559 RowNode.prototype.onMouseEnter = function () {
20560 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));
20561 };
20562 RowNode.prototype.onMouseLeave = function () {
20563 this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));
20564 };
20565 RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {
20566 var currentRowNode = this;
20567 var isCandidate = true;
20568 var foundFirstChildPath = false;
20569 var nodeToSwapIn = null;
20570 // if we are hiding groups, then if we are the first child, of the first child,
20571 // all the way up to the column we are interested in, then we show the group cell.
20572 while (isCandidate && !foundFirstChildPath) {
20573 var parentRowNode = currentRowNode.parent;
20574 var firstChild = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(parentRowNode) && currentRowNode.firstChild;
20575 if (firstChild) {
20576 if (parentRowNode.rowGroupColumn === rowGroupColumn) {
20577 foundFirstChildPath = true;
20578 nodeToSwapIn = parentRowNode;
20579 }
20580 }
20581 else {
20582 isCandidate = false;
20583 }
20584 currentRowNode = parentRowNode;
20585 }
20586 return foundFirstChildPath ? nodeToSwapIn : null;
20587 };
20588 /**
20589 * Returns:
20590 * - `true` if the node is a full width cell
20591 * - `false` if the node is not a full width cell
20592 */
20593 RowNode.prototype.isFullWidthCell = function () {
20594 var isFullWidthCellFunc = this.getIsFullWidthCellFunc();
20595 return isFullWidthCellFunc ? isFullWidthCellFunc({ rowNode: this }) : false;
20596 };
20597 RowNode.prototype.getIsFullWidthCellFunc = function () {
20598 var isFullWidthRow = this.beans.gridOptionsService.getCallback('isFullWidthRow');
20599 if (isFullWidthRow) {
20600 return isFullWidthRow;
20601 }
20602 // this is the deprecated way, so provide a proxy to make it compatible
20603 var isFullWidthCell = this.beans.gridOptionsService.get('isFullWidthCell');
20604 if (isFullWidthCell) {
20605 return function (params) { return isFullWidthCell(params.rowNode); };
20606 }
20607 };
20608 /**
20609 * Returns the route of the row node. If the Row Node is a group, it returns the route to that Row Node.
20610 * If the Row Node is not a group, it returns `undefined`.
20611 */
20612 RowNode.prototype.getRoute = function () {
20613 if (this.key == null) {
20614 return;
20615 }
20616 var res = [];
20617 var pointer = this;
20618 while (pointer.key != null) {
20619 res.push(pointer.key);
20620 pointer = pointer.parent;
20621 }
20622 return res.reverse();
20623 };
20624 RowNode.prototype.createFooter = function () {
20625 var _this = this;
20626 // only create footer node once, otherwise we have daemons and
20627 // the animate screws up with the daemons hanging around
20628 if (this.sibling) {
20629 return;
20630 }
20631 var footerNode = new RowNode(this.beans);
20632 Object.keys(this).forEach(function (key) {
20633 footerNode[key] = _this[key];
20634 });
20635 footerNode.footer = true;
20636 footerNode.setRowTop(null);
20637 footerNode.setRowIndex(null);
20638 // manually set oldRowTop to null so we discard any
20639 // previous information about its position.
20640 footerNode.oldRowTop = null;
20641 footerNode.id = 'rowGroupFooter_' + this.id;
20642 // get both header and footer to reference each other as siblings. this is never undone,
20643 // only overwritten. so if a group is expanded, then contracted, it will have a ghost
20644 // sibling - but that's fine, as we can ignore this if the header is contracted.
20645 footerNode.sibling = this;
20646 this.sibling = footerNode;
20647 };
20648 RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';
20649 RowNode.ID_PREFIX_TOP_PINNED = 't-';
20650 RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';
20651 RowNode.OBJECT_ID_SEQUENCE = 0;
20652 RowNode.EVENT_ROW_SELECTED = 'rowSelected';
20653 RowNode.EVENT_DATA_CHANGED = 'dataChanged';
20654 RowNode.EVENT_CELL_CHANGED = 'cellChanged';
20655 RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';
20656 RowNode.EVENT_MASTER_CHANGED = 'masterChanged';
20657 RowNode.EVENT_GROUP_CHANGED = 'groupChanged';
20658 RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';
20659 RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';
20660 RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';
20661 RowNode.EVENT_TOP_CHANGED = 'topChanged';
20662 RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';
20663 RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';
20664 RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';
20665 RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';
20666 RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';
20667 RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';
20668 RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';
20669 RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';
20670 RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';
20671 RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';
20672 RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';
20673 return RowNode;
20674}());
20675
20676
20677
20678/***/ }),
20679/* 98 */
20680/***/ (function(module, __webpack_exports__, __webpack_require__) {
20681
20682"use strict";
20683__webpack_require__.r(__webpack_exports__);
20684/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return CheckboxSelectionComponent; });
20685/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
20686/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
20687/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
20688/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57);
20689/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97);
20690/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);
20691/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41);
20692/**
20693 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
20694 * @version v29.2.0
20695 * @link https://www.ag-grid.com/
20696 * @license MIT
20697 */
20698var __extends = (undefined && undefined.__extends) || (function () {
20699 var extendStatics = function (d, b) {
20700 extendStatics = Object.setPrototypeOf ||
20701 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20702 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
20703 return extendStatics(d, b);
20704 };
20705 return function (d, b) {
20706 extendStatics(d, b);
20707 function __() { this.constructor = d; }
20708 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
20709 };
20710})();
20711var __assign = (undefined && undefined.__assign) || function () {
20712 __assign = Object.assign || function(t) {
20713 for (var s, i = 1, n = arguments.length; i < n; i++) {
20714 s = arguments[i];
20715 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20716 t[p] = s[p];
20717 }
20718 return t;
20719 };
20720 return __assign.apply(this, arguments);
20721};
20722var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20723 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20724 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20725 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;
20726 return c > 3 && r && Object.defineProperty(target, key, r), r;
20727};
20728
20729
20730
20731
20732
20733
20734
20735var CheckboxSelectionComponent = /** @class */ (function (_super) {
20736 __extends(CheckboxSelectionComponent, _super);
20737 function CheckboxSelectionComponent() {
20738 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;
20739 }
20740 CheckboxSelectionComponent.prototype.postConstruct = function () {
20741 this.eCheckbox.setPassive(true);
20742 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_6__["setAriaLive"])(this.eCheckbox.getInputElement(), 'polite');
20743 };
20744 CheckboxSelectionComponent.prototype.getCheckboxId = function () {
20745 return this.eCheckbox.getInputElement().id;
20746 };
20747 CheckboxSelectionComponent.prototype.onDataChanged = function () {
20748 // when rows are loaded for the second time, this can impact the selection, as a row
20749 // could be loaded as already selected (if user scrolls down, and then up again).
20750 this.onSelectionChanged();
20751 };
20752 CheckboxSelectionComponent.prototype.onSelectableChanged = function () {
20753 this.showOrHideSelect();
20754 };
20755 CheckboxSelectionComponent.prototype.onSelectionChanged = function () {
20756 var translate = this.localeService.getLocaleTextFunc();
20757 var state = this.rowNode.isSelected();
20758 var stateName = state === undefined
20759 ? translate('ariaIndeterminate', 'indeterminate')
20760 : (state === true
20761 ? translate('ariaChecked', 'checked')
20762 : translate('ariaUnchecked', 'unchecked'));
20763 var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');
20764 this.eCheckbox.setValue(state, true);
20765 this.eCheckbox.setInputAriaLabel(ariaLabel + " (" + stateName + ")");
20766 };
20767 CheckboxSelectionComponent.prototype.onCheckedClicked = function (event) {
20768 var groupSelectsFiltered = this.gridOptionsService.is('groupSelectsFiltered');
20769 var updatedCount = this.rowNode.setSelectedParams({ newValue: false, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered, event: event, source: 'checkboxSelected' });
20770 return updatedCount;
20771 };
20772 CheckboxSelectionComponent.prototype.onUncheckedClicked = function (event) {
20773 var groupSelectsFiltered = this.gridOptionsService.is('groupSelectsFiltered');
20774 var updatedCount = this.rowNode.setSelectedParams({ newValue: true, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered, event: event, source: 'checkboxSelected' });
20775 return updatedCount;
20776 };
20777 CheckboxSelectionComponent.prototype.init = function (params) {
20778 var _this = this;
20779 this.rowNode = params.rowNode;
20780 this.column = params.column;
20781 this.overrides = params.overrides;
20782 this.onSelectionChanged();
20783 // we don't want double click on this icon to open a group
20784 this.addManagedListener(this.eCheckbox.getInputElement(), 'dblclick', function (event) {
20785 Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(event);
20786 });
20787 this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {
20788 // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row
20789 // would possibly get selected twice
20790 Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["stopPropagationForAgGrid"])(event);
20791 var isSelected = _this.eCheckbox.getValue();
20792 if (isSelected) {
20793 _this.onCheckedClicked(event);
20794 }
20795 else {
20796 _this.onUncheckedClicked(event || {});
20797 }
20798 });
20799 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));
20800 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_DATA_CHANGED, this.onDataChanged.bind(this));
20801 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));
20802 var isRowSelectableFunc = this.gridOptionsService.get('isRowSelectable');
20803 var checkboxVisibleIsDynamic = isRowSelectableFunc || typeof this.getIsVisible() === 'function';
20804 if (checkboxVisibleIsDynamic) {
20805 var showOrHideSelectListener = this.showOrHideSelect.bind(this);
20806 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);
20807 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_DATA_CHANGED, showOrHideSelectListener);
20808 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_4__["RowNode"].EVENT_CELL_CHANGED, showOrHideSelectListener);
20809 this.showOrHideSelect();
20810 }
20811 this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');
20812 };
20813 CheckboxSelectionComponent.prototype.showOrHideSelect = function () {
20814 var _a, _b, _c, _d;
20815 // if the isRowSelectable() is not provided the row node is selectable by default
20816 var selectable = this.rowNode.selectable;
20817 // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.
20818 // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need
20819 // to call the colDef callback.
20820 var isVisible = this.getIsVisible();
20821 if (selectable) {
20822 if (typeof isVisible === 'function') {
20823 var extraParams = (_a = this.overrides) === null || _a === void 0 ? void 0 : _a.callbackParams;
20824 var params = (_b = this.column) === null || _b === void 0 ? void 0 : _b.createColumnFunctionCallbackParams(this.rowNode);
20825 selectable = params ? isVisible(__assign(__assign({}, extraParams), params)) : false;
20826 }
20827 else {
20828 selectable = isVisible !== null && isVisible !== void 0 ? isVisible : false;
20829 }
20830 }
20831 var disableInsteadOfHide = (_c = this.column) === null || _c === void 0 ? void 0 : _c.getColDef().showDisabledCheckboxes;
20832 if (disableInsteadOfHide) {
20833 this.eCheckbox.setDisabled(!selectable);
20834 this.setVisible(true);
20835 this.setDisplayed(true);
20836 return;
20837 }
20838 if ((_d = this.overrides) === null || _d === void 0 ? void 0 : _d.removeHidden) {
20839 this.setDisplayed(selectable);
20840 return;
20841 }
20842 this.setVisible(selectable);
20843 };
20844 CheckboxSelectionComponent.prototype.getIsVisible = function () {
20845 var _a, _b;
20846 if (this.overrides) {
20847 return this.overrides.isVisible;
20848 }
20849 // column will be missing if groupDisplayType = 'groupRows'
20850 return (_b = (_a = this.column) === null || _a === void 0 ? void 0 : _a.getColDef()) === null || _b === void 0 ? void 0 : _b.checkboxSelection;
20851 };
20852 __decorate([
20853 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_3__["RefSelector"])('eCheckbox')
20854 ], CheckboxSelectionComponent.prototype, "eCheckbox", void 0);
20855 __decorate([
20856 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
20857 ], CheckboxSelectionComponent.prototype, "postConstruct", null);
20858 return CheckboxSelectionComponent;
20859}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
20860
20861
20862
20863/***/ }),
20864/* 99 */
20865/***/ (function(module, __webpack_exports__, __webpack_require__) {
20866
20867"use strict";
20868__webpack_require__.r(__webpack_exports__);
20869/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDragComp", function() { return RowDragComp; });
20870/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
20871/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
20872/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(97);
20873/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(100);
20874/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26);
20875/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
20876/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(46);
20877/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
20878/**
20879 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
20880 * @version v29.2.0
20881 * @link https://www.ag-grid.com/
20882 * @license MIT
20883 */
20884var __extends = (undefined && undefined.__extends) || (function () {
20885 var extendStatics = function (d, b) {
20886 extendStatics = Object.setPrototypeOf ||
20887 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
20888 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
20889 return extendStatics(d, b);
20890 };
20891 return function (d, b) {
20892 extendStatics(d, b);
20893 function __() { this.constructor = d; }
20894 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
20895 };
20896})();
20897var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20898 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20899 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20900 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;
20901 return c > 3 && r && Object.defineProperty(target, key, r), r;
20902};
20903
20904
20905
20906
20907
20908
20909
20910
20911var RowDragComp = /** @class */ (function (_super) {
20912 __extends(RowDragComp, _super);
20913 function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels, suppressVisibilityChange) {
20914 var _this = _super.call(this) || this;
20915 _this.cellValueFn = cellValueFn;
20916 _this.rowNode = rowNode;
20917 _this.column = column;
20918 _this.customGui = customGui;
20919 _this.dragStartPixels = dragStartPixels;
20920 _this.suppressVisibilityChange = suppressVisibilityChange;
20921 _this.dragSource = null;
20922 return _this;
20923 }
20924 RowDragComp.prototype.isCustomGui = function () {
20925 return this.customGui != null;
20926 };
20927 RowDragComp.prototype.postConstruct = function () {
20928 if (!this.customGui) {
20929 this.setTemplate(/* html */ "<div class=\"ag-drag-handle ag-row-drag\" aria-hidden=\"true\"></div>");
20930 this.getGui().appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_6__["createIconNoSpan"])('rowDrag', this.beans.gridOptionsService, null));
20931 this.addDragSource();
20932 }
20933 else {
20934 this.setDragElement(this.customGui, this.dragStartPixels);
20935 }
20936 this.checkCompatibility();
20937 if (!this.suppressVisibilityChange) {
20938 var strategy = this.beans.gridOptionsService.is('rowDragManaged') ?
20939 new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :
20940 new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);
20941 this.createManagedBean(strategy, this.beans.context);
20942 }
20943 };
20944 RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {
20945 this.setTemplateFromElement(dragElement);
20946 this.addDragSource(dragStartPixels);
20947 };
20948 RowDragComp.prototype.getSelectedNodes = function () {
20949 var isRowDragMultiRow = this.beans.gridOptionsService.is('rowDragMultiRow');
20950 if (!isRowDragMultiRow) {
20951 return [this.rowNode];
20952 }
20953 var selection = this.beans.selectionService.getSelectedNodes();
20954 return selection.indexOf(this.rowNode) !== -1 ? selection : [this.rowNode];
20955 };
20956 // returns true if all compatibility items work out
20957 RowDragComp.prototype.checkCompatibility = function () {
20958 var managed = this.beans.gridOptionsService.is('rowDragManaged');
20959 var treeData = this.beans.gridOptionsService.isTreeData();
20960 if (treeData && managed) {
20961 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () {
20962 return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');
20963 }, 'RowDragComp.managedAndTreeData');
20964 }
20965 };
20966 RowDragComp.prototype.getDragItem = function () {
20967 return {
20968 rowNode: this.rowNode,
20969 rowNodes: this.getSelectedNodes(),
20970 columns: this.column ? [this.column] : undefined,
20971 defaultTextValue: this.cellValueFn(),
20972 };
20973 };
20974 RowDragComp.prototype.getRowDragText = function (column) {
20975 if (column) {
20976 var colDef = column.getColDef();
20977 if (colDef.rowDragText) {
20978 return colDef.rowDragText;
20979 }
20980 }
20981 return this.gridOptionsService.get('rowDragText');
20982 };
20983 RowDragComp.prototype.addDragSource = function (dragStartPixels) {
20984 var _this = this;
20985 if (dragStartPixels === void 0) { dragStartPixels = 4; }
20986 // if this is changing the drag element, delete the previous dragSource
20987 if (this.dragSource) {
20988 this.removeDragSource();
20989 }
20990 var rowDragText = this.getRowDragText(this.column);
20991 var translate = this.localeService.getLocaleTextFunc();
20992 this.dragSource = {
20993 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_3__["DragSourceType"].RowDrag,
20994 eElement: this.getGui(),
20995 dragItemName: function () {
20996 var _a;
20997 var dragItem = _this.getDragItem();
20998 var dragItemCount = ((_a = dragItem.rowNodes) === null || _a === void 0 ? void 0 : _a.length) || 1;
20999 if (rowDragText) {
21000 return rowDragText(dragItem, dragItemCount);
21001 }
21002 return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + " " + translate('rowDragRows', 'rows');
21003 },
21004 getDragItem: function () { return _this.getDragItem(); },
21005 dragStartPixels: dragStartPixels,
21006 dragSourceDomDataKey: this.beans.gridOptionsService.getDomDataKey()
21007 };
21008 this.beans.dragAndDropService.addDragSource(this.dragSource, true);
21009 };
21010 RowDragComp.prototype.removeDragSource = function () {
21011 if (this.dragSource) {
21012 this.beans.dragAndDropService.removeDragSource(this.dragSource);
21013 }
21014 this.dragSource = null;
21015 };
21016 __decorate([
21017 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('beans')
21018 ], RowDragComp.prototype, "beans", void 0);
21019 __decorate([
21020 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
21021 ], RowDragComp.prototype, "postConstruct", null);
21022 __decorate([
21023 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
21024 ], RowDragComp.prototype, "removeDragSource", null);
21025 return RowDragComp;
21026}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
21027
21028var VisibilityStrategy = /** @class */ (function (_super) {
21029 __extends(VisibilityStrategy, _super);
21030 function VisibilityStrategy(parent, rowNode, column) {
21031 var _this = _super.call(this) || this;
21032 _this.parent = parent;
21033 _this.rowNode = rowNode;
21034 _this.column = column;
21035 return _this;
21036 }
21037 VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {
21038 var displayedOptions = { skipAriaHidden: true };
21039 if (neverDisplayed) {
21040 this.parent.setDisplayed(false, displayedOptions);
21041 }
21042 else {
21043 var shown = true;
21044 var isShownSometimes = false;
21045 if (this.column) {
21046 shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui();
21047 isShownSometimes = Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["isFunction"])(this.column.getColDef().rowDrag);
21048 }
21049 // if shown sometimes, them some rows can have drag handle while other don't,
21050 // so we use setVisible to keep the handles horizontally aligned (as setVisible
21051 // keeps the empty space, whereas setDisplayed looses the space)
21052 if (isShownSometimes) {
21053 this.parent.setDisplayed(true, displayedOptions);
21054 this.parent.setVisible(shown, displayedOptions);
21055 }
21056 else {
21057 this.parent.setDisplayed(shown, displayedOptions);
21058 this.parent.setVisible(true, displayedOptions);
21059 }
21060 }
21061 };
21062 return VisibilityStrategy;
21063}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
21064// when non managed, the visibility depends on suppressRowDrag property only
21065var NonManagedVisibilityStrategy = /** @class */ (function (_super) {
21066 __extends(NonManagedVisibilityStrategy, _super);
21067 function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {
21068 var _this = _super.call(this, parent, rowNode, column) || this;
21069 _this.beans = beans;
21070 return _this;
21071 }
21072 NonManagedVisibilityStrategy.prototype.postConstruct = function () {
21073 this.addManagedPropertyListener('suppressRowDrag', this.onSuppressRowDrag.bind(this));
21074 // in case data changes, then we need to update visibility of drag item
21075 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));
21076 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
21077 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
21078 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));
21079 this.workOutVisibility();
21080 };
21081 NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {
21082 this.workOutVisibility();
21083 };
21084 NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {
21085 // only show the drag if both sort and filter are not present
21086 var neverDisplayed = this.beans.gridOptionsService.is('suppressRowDrag');
21087 this.setDisplayedOrVisible(neverDisplayed);
21088 };
21089 __decorate([
21090 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
21091 ], NonManagedVisibilityStrategy.prototype, "postConstruct", null);
21092 return NonManagedVisibilityStrategy;
21093}(VisibilityStrategy));
21094// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property
21095var ManagedVisibilityStrategy = /** @class */ (function (_super) {
21096 __extends(ManagedVisibilityStrategy, _super);
21097 function ManagedVisibilityStrategy(parent, beans, rowNode, column) {
21098 var _this = _super.call(this, parent, rowNode, column) || this;
21099 _this.beans = beans;
21100 return _this;
21101 }
21102 ManagedVisibilityStrategy.prototype.postConstruct = function () {
21103 // we do not show the component if sort, filter or grouping is active
21104 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));
21105 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));
21106 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));
21107 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));
21108 // in case data changes, then we need to update visibility of drag item
21109 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));
21110 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_2__["RowNode"].EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));
21111 this.addManagedPropertyListener('suppressRowDrag', this.onSuppressRowDrag.bind(this));
21112 this.workOutVisibility();
21113 };
21114 ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {
21115 this.workOutVisibility();
21116 };
21117 ManagedVisibilityStrategy.prototype.workOutVisibility = function () {
21118 // only show the drag if both sort and filter are not present
21119 var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();
21120 var rowDragFeature = gridBodyCon.getRowDragFeature();
21121 var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();
21122 var suppressRowDrag = this.beans.gridOptionsService.is('suppressRowDrag');
21123 var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();
21124 var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;
21125 this.setDisplayedOrVisible(neverDisplayed);
21126 };
21127 __decorate([
21128 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
21129 ], ManagedVisibilityStrategy.prototype, "postConstruct", null);
21130 return ManagedVisibilityStrategy;
21131}(VisibilityStrategy));
21132
21133
21134/***/ }),
21135/* 100 */
21136/***/ (function(module, __webpack_exports__, __webpack_require__) {
21137
21138"use strict";
21139__webpack_require__.r(__webpack_exports__);
21140/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return DragSourceType; });
21141/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return VerticalDirection; });
21142/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return HorizontalDirection; });
21143/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return DragAndDropService; });
21144/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
21145/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
21146/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31);
21147/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46);
21148/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
21149/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(42);
21150/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45);
21151/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
21152/**
21153 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
21154 * @version v29.2.0
21155 * @link https://www.ag-grid.com/
21156 * @license MIT
21157 */
21158var __extends = (undefined && undefined.__extends) || (function () {
21159 var extendStatics = function (d, b) {
21160 extendStatics = Object.setPrototypeOf ||
21161 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21162 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21163 return extendStatics(d, b);
21164 };
21165 return function (d, b) {
21166 extendStatics(d, b);
21167 function __() { this.constructor = d; }
21168 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21169 };
21170})();
21171var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21172 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21173 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21174 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;
21175 return c > 3 && r && Object.defineProperty(target, key, r), r;
21176};
21177var __values = (undefined && undefined.__values) || function(o) {
21178 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
21179 if (m) return m.call(o);
21180 if (o && typeof o.length === "number") return {
21181 next: function () {
21182 if (o && i >= o.length) o = void 0;
21183 return { value: o && o[i++], done: !o };
21184 }
21185 };
21186 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
21187};
21188
21189
21190
21191
21192
21193
21194
21195
21196var DragSourceType;
21197(function (DragSourceType) {
21198 DragSourceType[DragSourceType["ToolPanel"] = 0] = "ToolPanel";
21199 DragSourceType[DragSourceType["HeaderCell"] = 1] = "HeaderCell";
21200 DragSourceType[DragSourceType["RowDrag"] = 2] = "RowDrag";
21201 DragSourceType[DragSourceType["ChartPanel"] = 3] = "ChartPanel";
21202})(DragSourceType || (DragSourceType = {}));
21203var VerticalDirection;
21204(function (VerticalDirection) {
21205 VerticalDirection[VerticalDirection["Up"] = 0] = "Up";
21206 VerticalDirection[VerticalDirection["Down"] = 1] = "Down";
21207})(VerticalDirection || (VerticalDirection = {}));
21208var HorizontalDirection;
21209(function (HorizontalDirection) {
21210 HorizontalDirection[HorizontalDirection["Left"] = 0] = "Left";
21211 HorizontalDirection[HorizontalDirection["Right"] = 1] = "Right";
21212})(HorizontalDirection || (HorizontalDirection = {}));
21213var DragAndDropService = /** @class */ (function (_super) {
21214 __extends(DragAndDropService, _super);
21215 function DragAndDropService() {
21216 var _this = _super !== null && _super.apply(this, arguments) || this;
21217 _this.dragSourceAndParamsList = [];
21218 _this.dropTargets = [];
21219 return _this;
21220 }
21221 DragAndDropService_1 = DragAndDropService;
21222 DragAndDropService.prototype.init = function () {
21223 this.ePinnedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMovePin', this.gridOptionsService, null);
21224 this.eHideIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveHide', this.gridOptionsService, null);
21225 this.eMoveIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveMove', this.gridOptionsService, null);
21226 this.eLeftIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveLeft', this.gridOptionsService, null);
21227 this.eRightIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveRight', this.gridOptionsService, null);
21228 this.eGroupIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveGroup', this.gridOptionsService, null);
21229 this.eAggregateIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMoveValue', this.gridOptionsService, null);
21230 this.ePivotIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnMovePivot', this.gridOptionsService, null);
21231 this.eDropNotAllowedIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('dropNotAllowed', this.gridOptionsService, null);
21232 };
21233 DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {
21234 if (allowTouch === void 0) { allowTouch = false; }
21235 var params = {
21236 eElement: dragSource.eElement,
21237 dragStartPixels: dragSource.dragStartPixels,
21238 onDragStart: this.onDragStart.bind(this, dragSource),
21239 onDragStop: this.onDragStop.bind(this),
21240 onDragging: this.onDragging.bind(this)
21241 };
21242 this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });
21243 this.dragService.addDragSource(params, allowTouch);
21244 };
21245 DragAndDropService.prototype.removeDragSource = function (dragSource) {
21246 var sourceAndParams = this.dragSourceAndParamsList.find(function (item) { return item.dragSource === dragSource; });
21247 if (sourceAndParams) {
21248 this.dragService.removeDragSource(sourceAndParams.params);
21249 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["removeFromArray"])(this.dragSourceAndParamsList, sourceAndParams);
21250 }
21251 };
21252 DragAndDropService.prototype.clearDragSourceParamsList = function () {
21253 var _this = this;
21254 this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });
21255 this.dragSourceAndParamsList.length = 0;
21256 this.dropTargets.length = 0;
21257 };
21258 DragAndDropService.prototype.nudge = function () {
21259 if (this.dragging) {
21260 this.onDragging(this.eventLastTime, true);
21261 }
21262 };
21263 DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {
21264 this.dragging = true;
21265 this.dragSource = dragSource;
21266 this.eventLastTime = mouseEvent;
21267 this.dragItem = this.dragSource.getDragItem();
21268 this.lastDropTarget = this.dragSource.dragSourceDropTarget;
21269 if (this.dragSource.onDragStarted) {
21270 this.dragSource.onDragStarted();
21271 }
21272 this.createGhost();
21273 };
21274 DragAndDropService.prototype.onDragStop = function (mouseEvent) {
21275 this.eventLastTime = null;
21276 this.dragging = false;
21277 if (this.dragSource.onDragStopped) {
21278 this.dragSource.onDragStopped();
21279 }
21280 if (this.lastDropTarget && this.lastDropTarget.onDragStop) {
21281 var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);
21282 this.lastDropTarget.onDragStop(draggingEvent);
21283 }
21284 this.lastDropTarget = null;
21285 this.dragItem = null;
21286 this.removeGhost();
21287 };
21288 DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {
21289 var _this = this;
21290 var _a, _b, _c, _d;
21291 var hDirection = this.getHorizontalDirection(mouseEvent);
21292 var vDirection = this.getVerticalDirection(mouseEvent);
21293 this.eventLastTime = mouseEvent;
21294 this.positionGhost(mouseEvent);
21295 // check if mouseEvent intersects with any of the drop targets
21296 var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });
21297 var dropTarget = this.findCurrentDropTarget(mouseEvent, validDropTargets);
21298 if (dropTarget !== this.lastDropTarget) {
21299 this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);
21300 if (this.lastDropTarget !== null && dropTarget === null) {
21301 (_b = (_a = this.dragSource).onGridExit) === null || _b === void 0 ? void 0 : _b.call(_a, this.dragItem);
21302 }
21303 if (this.lastDropTarget === null && dropTarget !== null) {
21304 (_d = (_c = this.dragSource).onGridEnter) === null || _d === void 0 ? void 0 : _d.call(_c, this.dragItem);
21305 }
21306 this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
21307 this.lastDropTarget = dropTarget;
21308 }
21309 else if (dropTarget && dropTarget.onDragging) {
21310 var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
21311 dropTarget.onDragging(draggingEvent);
21312 }
21313 };
21314 DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {
21315 var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;
21316 var containers = [[dropTarget.getContainer()]];
21317 return secondaryContainers ? containers.concat(secondaryContainers) : containers;
21318 };
21319 DragAndDropService.prototype.allContainersIntersect = function (mouseEvent, containers) {
21320 var e_1, _a;
21321 try {
21322 for (var containers_1 = __values(containers), containers_1_1 = containers_1.next(); !containers_1_1.done; containers_1_1 = containers_1.next()) {
21323 var container = containers_1_1.value;
21324 var rect = container.getBoundingClientRect();
21325 // if element is not visible, then width and height are zero
21326 if (rect.width === 0 || rect.height === 0) {
21327 return false;
21328 }
21329 var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;
21330 var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;
21331 if (!horizontalFit || !verticalFit) {
21332 return false;
21333 }
21334 }
21335 }
21336 catch (e_1_1) { e_1 = { error: e_1_1 }; }
21337 finally {
21338 try {
21339 if (containers_1_1 && !containers_1_1.done && (_a = containers_1.return)) _a.call(containers_1);
21340 }
21341 finally { if (e_1) throw e_1.error; }
21342 }
21343 return true;
21344 };
21345 // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers
21346 DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {
21347 var e_2, _a;
21348 var allContainersFromDropTarget = this.getAllContainersFromDropTarget(dropTarget);
21349 var mouseOverTarget = false;
21350 try {
21351 for (var allContainersFromDropTarget_1 = __values(allContainersFromDropTarget), allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next(); !allContainersFromDropTarget_1_1.done; allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next()) {
21352 var currentContainers = allContainersFromDropTarget_1_1.value;
21353 if (this.allContainersIntersect(mouseEvent, currentContainers)) {
21354 mouseOverTarget = true;
21355 break;
21356 }
21357 }
21358 }
21359 catch (e_2_1) { e_2 = { error: e_2_1 }; }
21360 finally {
21361 try {
21362 if (allContainersFromDropTarget_1_1 && !allContainersFromDropTarget_1_1.done && (_a = allContainersFromDropTarget_1.return)) _a.call(allContainersFromDropTarget_1);
21363 }
21364 finally { if (e_2) throw e_2.error; }
21365 }
21366 if (dropTarget.targetContainsSource && !dropTarget.getContainer().contains(this.dragSource.eElement)) {
21367 return false;
21368 }
21369 return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type, this.dragSource.eElement);
21370 };
21371 DragAndDropService.prototype.findCurrentDropTarget = function (mouseEvent, validDropTargets) {
21372 var e_3, _a, e_4, _b;
21373 var len = validDropTargets.length;
21374 if (len === 0) {
21375 return null;
21376 }
21377 if (len === 1) {
21378 return validDropTargets[0];
21379 }
21380 var rootNode = this.gridOptionsService.getRootNode();
21381 // elementsFromPoint return a list of elements under
21382 // the mouseEvent sorted from topMost to bottomMost
21383 var elementStack = rootNode.elementsFromPoint(mouseEvent.clientX, mouseEvent.clientY);
21384 try {
21385 // loop over the sorted elementStack to find which dropTarget comes first
21386 for (var elementStack_1 = __values(elementStack), elementStack_1_1 = elementStack_1.next(); !elementStack_1_1.done; elementStack_1_1 = elementStack_1.next()) {
21387 var el = elementStack_1_1.value;
21388 try {
21389 for (var validDropTargets_1 = (e_4 = void 0, __values(validDropTargets)), validDropTargets_1_1 = validDropTargets_1.next(); !validDropTargets_1_1.done; validDropTargets_1_1 = validDropTargets_1.next()) {
21390 var dropTarget = validDropTargets_1_1.value;
21391 var containers = Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["flatten"])(this.getAllContainersFromDropTarget(dropTarget));
21392 if (containers.indexOf(el) !== -1) {
21393 return dropTarget;
21394 }
21395 }
21396 }
21397 catch (e_4_1) { e_4 = { error: e_4_1 }; }
21398 finally {
21399 try {
21400 if (validDropTargets_1_1 && !validDropTargets_1_1.done && (_b = validDropTargets_1.return)) _b.call(validDropTargets_1);
21401 }
21402 finally { if (e_4) throw e_4.error; }
21403 }
21404 }
21405 }
21406 catch (e_3_1) { e_3 = { error: e_3_1 }; }
21407 finally {
21408 try {
21409 if (elementStack_1_1 && !elementStack_1_1.done && (_a = elementStack_1.return)) _a.call(elementStack_1);
21410 }
21411 finally { if (e_3) throw e_3.error; }
21412 }
21413 // we should never hit this point of the code because only
21414 // valid dropTargets should be provided to this method.
21415 return null;
21416 };
21417 DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {
21418 if (!dropTarget) {
21419 return;
21420 }
21421 if (dropTarget.onDragEnter) {
21422 var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);
21423 dropTarget.onDragEnter(dragEnterEvent);
21424 }
21425 this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);
21426 };
21427 DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {
21428 if (!this.lastDropTarget) {
21429 return;
21430 }
21431 if (this.lastDropTarget.onDragLeave) {
21432 var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);
21433 this.lastDropTarget.onDragLeave(dragLeaveEvent);
21434 }
21435 this.setGhostIcon(null);
21436 };
21437 DragAndDropService.prototype.addDropTarget = function (dropTarget) {
21438 this.dropTargets.push(dropTarget);
21439 };
21440 DragAndDropService.prototype.removeDropTarget = function (dropTarget) {
21441 this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });
21442 };
21443 DragAndDropService.prototype.hasExternalDropZones = function () {
21444 return this.dropTargets.some(function (zones) { return zones.external; });
21445 };
21446 DragAndDropService.prototype.findExternalZone = function (params) {
21447 var externalTargets = this.dropTargets.filter(function (target) { return target.external; });
21448 return externalTargets.find(function (zone) { return zone.getContainer() === params.getContainer(); }) || null;
21449 };
21450 DragAndDropService.prototype.getHorizontalDirection = function (event) {
21451 var clientX = this.eventLastTime && this.eventLastTime.clientX;
21452 var eClientX = event.clientX;
21453 if (clientX === eClientX) {
21454 return null;
21455 }
21456 return clientX > eClientX ? HorizontalDirection.Left : HorizontalDirection.Right;
21457 };
21458 DragAndDropService.prototype.getVerticalDirection = function (event) {
21459 var clientY = this.eventLastTime && this.eventLastTime.clientY;
21460 var eClientY = event.clientY;
21461 if (clientY === eClientY) {
21462 return null;
21463 }
21464 return clientY > eClientY ? VerticalDirection.Up : VerticalDirection.Down;
21465 };
21466 DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {
21467 // localise x and y to the target
21468 var dropZoneTarget = dropTarget.getContainer();
21469 var rect = dropZoneTarget.getBoundingClientRect();
21470 var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;
21471 var x = event.clientX - rect.left;
21472 var y = event.clientY - rect.top;
21473 return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };
21474 };
21475 DragAndDropService.prototype.positionGhost = function (event) {
21476 var ghost = this.eGhost;
21477 if (!ghost) {
21478 return;
21479 }
21480 var ghostRect = ghost.getBoundingClientRect();
21481 var ghostHeight = ghostRect.height;
21482 // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which
21483 // then brought in scrollbars to the browser. no idea why, but putting in -2 here
21484 // works around it which is good enough for me.
21485 var browserWidth = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["getBodyWidth"])() - 2;
21486 var browserHeight = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["getBodyHeight"])() - 2;
21487 var top = event.pageY - (ghostHeight / 2);
21488 var left = event.pageX - 10;
21489 var eDocument = this.gridOptionsService.getDocument();
21490 var win = (eDocument.defaultView || window);
21491 var windowScrollY = win.pageYOffset || eDocument.documentElement.scrollTop;
21492 var windowScrollX = win.pageXOffset || eDocument.documentElement.scrollLeft;
21493 // check ghost is not positioned outside of the browser
21494 if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {
21495 left = browserWidth + windowScrollX - ghost.clientWidth;
21496 }
21497 if (left < 0) {
21498 left = 0;
21499 }
21500 if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {
21501 top = browserHeight + windowScrollY - ghost.clientHeight;
21502 }
21503 if (top < 0) {
21504 top = 0;
21505 }
21506 ghost.style.left = left + "px";
21507 ghost.style.top = top + "px";
21508 };
21509 DragAndDropService.prototype.removeGhost = function () {
21510 if (this.eGhost && this.eGhostParent) {
21511 this.eGhostParent.removeChild(this.eGhost);
21512 }
21513 this.eGhost = null;
21514 };
21515 DragAndDropService.prototype.createGhost = function () {
21516 this.eGhost = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["loadTemplate"])(DragAndDropService_1.GHOST_TEMPLATE);
21517 this.mouseEventService.stampTopLevelGridCompWithGridInstance(this.eGhost);
21518 var theme = this.environment.getTheme().theme;
21519 if (theme) {
21520 this.eGhost.classList.add(theme);
21521 }
21522 this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');
21523 this.setGhostIcon(null);
21524 var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');
21525 var dragItemName = this.dragSource.dragItemName;
21526 if (Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["isFunction"])(dragItemName)) {
21527 dragItemName = dragItemName();
21528 }
21529 eText.innerHTML = Object(_utils_string__WEBPACK_IMPORTED_MODULE_2__["escapeString"])(dragItemName) || '';
21530 this.eGhost.style.height = '25px';
21531 this.eGhost.style.top = '20px';
21532 this.eGhost.style.left = '20px';
21533 var eDocument = this.gridOptionsService.getDocument();
21534 var targetEl = null;
21535 try {
21536 targetEl = eDocument.fullscreenElement;
21537 }
21538 catch (e) {
21539 // some environments like SalesForce will throw errors
21540 // simply by trying to read the fullscreenElement property
21541 }
21542 finally {
21543 if (!targetEl) {
21544 var rootNode = this.gridOptionsService.getRootNode();
21545 var body = rootNode.querySelector('body');
21546 if (body) {
21547 targetEl = body;
21548 }
21549 else if (rootNode instanceof ShadowRoot) {
21550 targetEl = rootNode;
21551 }
21552 else {
21553 targetEl = rootNode === null || rootNode === void 0 ? void 0 : rootNode.documentElement;
21554 }
21555 }
21556 }
21557 this.eGhostParent = targetEl;
21558 if (!this.eGhostParent) {
21559 console.warn('AG Grid: could not find document body, it is needed for dragging columns');
21560 }
21561 else {
21562 this.eGhostParent.appendChild(this.eGhost);
21563 }
21564 };
21565 DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {
21566 if (shake === void 0) { shake = false; }
21567 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["clearElement"])(this.eGhostIcon);
21568 var eIcon = null;
21569 if (!iconName) {
21570 iconName = this.dragSource.defaultIconName || DragAndDropService_1.ICON_NOT_ALLOWED;
21571 }
21572 switch (iconName) {
21573 case DragAndDropService_1.ICON_PINNED:
21574 eIcon = this.ePinnedIcon;
21575 break;
21576 case DragAndDropService_1.ICON_MOVE:
21577 eIcon = this.eMoveIcon;
21578 break;
21579 case DragAndDropService_1.ICON_LEFT:
21580 eIcon = this.eLeftIcon;
21581 break;
21582 case DragAndDropService_1.ICON_RIGHT:
21583 eIcon = this.eRightIcon;
21584 break;
21585 case DragAndDropService_1.ICON_GROUP:
21586 eIcon = this.eGroupIcon;
21587 break;
21588 case DragAndDropService_1.ICON_AGGREGATE:
21589 eIcon = this.eAggregateIcon;
21590 break;
21591 case DragAndDropService_1.ICON_PIVOT:
21592 eIcon = this.ePivotIcon;
21593 break;
21594 case DragAndDropService_1.ICON_NOT_ALLOWED:
21595 eIcon = this.eDropNotAllowedIcon;
21596 break;
21597 case DragAndDropService_1.ICON_HIDE:
21598 eIcon = this.eHideIcon;
21599 break;
21600 }
21601 this.eGhostIcon.classList.toggle('ag-shake-left-to-right', shake);
21602 if (eIcon === this.eHideIcon && this.gridOptionsService.is('suppressDragLeaveHidesColumns')) {
21603 return;
21604 }
21605 if (eIcon) {
21606 this.eGhostIcon.appendChild(eIcon);
21607 }
21608 };
21609 var DragAndDropService_1;
21610 DragAndDropService.ICON_PINNED = 'pinned';
21611 DragAndDropService.ICON_MOVE = 'move';
21612 DragAndDropService.ICON_LEFT = 'left';
21613 DragAndDropService.ICON_RIGHT = 'right';
21614 DragAndDropService.ICON_GROUP = 'group';
21615 DragAndDropService.ICON_AGGREGATE = 'aggregate';
21616 DragAndDropService.ICON_PIVOT = 'pivot';
21617 DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';
21618 DragAndDropService.ICON_HIDE = 'hide';
21619 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>";
21620 __decorate([
21621 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
21622 ], DragAndDropService.prototype, "dragService", void 0);
21623 __decorate([
21624 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
21625 ], DragAndDropService.prototype, "mouseEventService", void 0);
21626 __decorate([
21627 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
21628 ], DragAndDropService.prototype, "columnApi", void 0);
21629 __decorate([
21630 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
21631 ], DragAndDropService.prototype, "gridApi", void 0);
21632 __decorate([
21633 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
21634 ], DragAndDropService.prototype, "init", null);
21635 __decorate([
21636 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
21637 ], DragAndDropService.prototype, "clearDragSourceParamsList", null);
21638 DragAndDropService = DragAndDropService_1 = __decorate([
21639 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('dragAndDropService')
21640 ], DragAndDropService);
21641 return DragAndDropService;
21642}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
21643
21644
21645
21646/***/ }),
21647/* 101 */
21648/***/ (function(module, __webpack_exports__, __webpack_require__) {
21649
21650"use strict";
21651__webpack_require__.r(__webpack_exports__);
21652/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingCellRenderer", function() { return LoadingCellRenderer; });
21653/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
21654/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
21655/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46);
21656/**
21657 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
21658 * @version v29.2.0
21659 * @link https://www.ag-grid.com/
21660 * @license MIT
21661 */
21662var __extends = (undefined && undefined.__extends) || (function () {
21663 var extendStatics = function (d, b) {
21664 extendStatics = Object.setPrototypeOf ||
21665 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21666 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21667 return extendStatics(d, b);
21668 };
21669 return function (d, b) {
21670 extendStatics(d, b);
21671 function __() { this.constructor = d; }
21672 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21673 };
21674})();
21675var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21676 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21677 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21678 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;
21679 return c > 3 && r && Object.defineProperty(target, key, r), r;
21680};
21681
21682
21683
21684var LoadingCellRenderer = /** @class */ (function (_super) {
21685 __extends(LoadingCellRenderer, _super);
21686 function LoadingCellRenderer() {
21687 return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;
21688 }
21689 LoadingCellRenderer.prototype.init = function (params) {
21690 params.node.failedLoad ? this.setupFailed() : this.setupLoading();
21691 };
21692 LoadingCellRenderer.prototype.setupFailed = function () {
21693 var localeTextFunc = this.localeService.getLocaleTextFunc();
21694 this.eLoadingText.innerText = localeTextFunc('loadingError', 'ERR');
21695 };
21696 LoadingCellRenderer.prototype.setupLoading = function () {
21697 var eLoadingIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_2__["createIconNoSpan"])('groupLoading', this.gridOptionsService, null);
21698 if (eLoadingIcon) {
21699 this.eLoadingIcon.appendChild(eLoadingIcon);
21700 }
21701 var localeTextFunc = this.localeService.getLocaleTextFunc();
21702 this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');
21703 };
21704 LoadingCellRenderer.prototype.refresh = function (params) {
21705 return false;
21706 };
21707 // this is a user component, and IComponent has "public destroy()" as part of the interface.
21708 // so we need to override destroy() just to make the method public.
21709 LoadingCellRenderer.prototype.destroy = function () {
21710 _super.prototype.destroy.call(this);
21711 };
21712 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>";
21713 __decorate([
21714 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLoadingIcon')
21715 ], LoadingCellRenderer.prototype, "eLoadingIcon", void 0);
21716 __decorate([
21717 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eLoadingText')
21718 ], LoadingCellRenderer.prototype, "eLoadingText", void 0);
21719 return LoadingCellRenderer;
21720}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
21721
21722
21723
21724/***/ }),
21725/* 102 */
21726/***/ (function(module, __webpack_exports__, __webpack_require__) {
21727
21728"use strict";
21729__webpack_require__.r(__webpack_exports__);
21730/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingOverlayComponent", function() { return LoadingOverlayComponent; });
21731/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
21732/**
21733 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
21734 * @version v29.2.0
21735 * @link https://www.ag-grid.com/
21736 * @license MIT
21737 */
21738var __extends = (undefined && undefined.__extends) || (function () {
21739 var extendStatics = function (d, b) {
21740 extendStatics = Object.setPrototypeOf ||
21741 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21742 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21743 return extendStatics(d, b);
21744 };
21745 return function (d, b) {
21746 extendStatics(d, b);
21747 function __() { this.constructor = d; }
21748 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21749 };
21750})();
21751
21752var LoadingOverlayComponent = /** @class */ (function (_super) {
21753 __extends(LoadingOverlayComponent, _super);
21754 function LoadingOverlayComponent() {
21755 return _super.call(this) || this;
21756 }
21757 // this is a user component, and IComponent has "public destroy()" as part of the interface.
21758 // so we need to override destroy() just to make the method public.
21759 LoadingOverlayComponent.prototype.destroy = function () {
21760 _super.prototype.destroy.call(this);
21761 };
21762 LoadingOverlayComponent.prototype.init = function (params) {
21763 var _a;
21764 var template = (_a = this.gridOptionsService.get('overlayLoadingTemplate')) !== null && _a !== void 0 ? _a : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;
21765 var localeTextFunc = this.localeService.getLocaleTextFunc();
21766 var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));
21767 this.setTemplate(localisedTemplate);
21768 };
21769 LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '<span class="ag-overlay-loading-center">[LOADING...]</span>';
21770 return LoadingOverlayComponent;
21771}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
21772
21773
21774
21775/***/ }),
21776/* 103 */
21777/***/ (function(module, __webpack_exports__, __webpack_require__) {
21778
21779"use strict";
21780__webpack_require__.r(__webpack_exports__);
21781/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoRowsOverlayComponent", function() { return NoRowsOverlayComponent; });
21782/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
21783/**
21784 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
21785 * @version v29.2.0
21786 * @link https://www.ag-grid.com/
21787 * @license MIT
21788 */
21789var __extends = (undefined && undefined.__extends) || (function () {
21790 var extendStatics = function (d, b) {
21791 extendStatics = Object.setPrototypeOf ||
21792 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21793 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21794 return extendStatics(d, b);
21795 };
21796 return function (d, b) {
21797 extendStatics(d, b);
21798 function __() { this.constructor = d; }
21799 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21800 };
21801})();
21802
21803var NoRowsOverlayComponent = /** @class */ (function (_super) {
21804 __extends(NoRowsOverlayComponent, _super);
21805 function NoRowsOverlayComponent() {
21806 return _super.call(this) || this;
21807 }
21808 // this is a user component, and IComponent has "public destroy()" as part of the interface.
21809 // so we need to override destroy() just to make the method public.
21810 NoRowsOverlayComponent.prototype.destroy = function () {
21811 _super.prototype.destroy.call(this);
21812 };
21813 NoRowsOverlayComponent.prototype.init = function (params) {
21814 var _a;
21815 var template = (_a = this.gridOptionsService.get('overlayNoRowsTemplate')) !== null && _a !== void 0 ? _a : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;
21816 var localeTextFunc = this.localeService.getLocaleTextFunc();
21817 var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));
21818 this.setTemplate(localisedTemplate);
21819 };
21820 NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '<span class="ag-overlay-no-rows-center">[NO_ROWS_TO_SHOW]</span>';
21821 return NoRowsOverlayComponent;
21822}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
21823
21824
21825
21826/***/ }),
21827/* 104 */
21828/***/ (function(module, __webpack_exports__, __webpack_require__) {
21829
21830"use strict";
21831__webpack_require__.r(__webpack_exports__);
21832/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; });
21833/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90);
21834/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31);
21835/**
21836 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
21837 * @version v29.2.0
21838 * @link https://www.ag-grid.com/
21839 * @license MIT
21840 */
21841var __extends = (undefined && undefined.__extends) || (function () {
21842 var extendStatics = function (d, b) {
21843 extendStatics = Object.setPrototypeOf ||
21844 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21845 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21846 return extendStatics(d, b);
21847 };
21848 return function (d, b) {
21849 extendStatics(d, b);
21850 function __() { this.constructor = d; }
21851 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21852 };
21853})();
21854
21855
21856var TooltipComponent = /** @class */ (function (_super) {
21857 __extends(TooltipComponent, _super);
21858 function TooltipComponent() {
21859 return _super.call(this, /* html */ "<div class=\"ag-tooltip\"></div>") || this;
21860 }
21861 // will need to type params
21862 TooltipComponent.prototype.init = function (params) {
21863 var value = params.value;
21864 this.getGui().innerHTML = Object(_utils_string__WEBPACK_IMPORTED_MODULE_1__["escapeString"])(value);
21865 };
21866 return TooltipComponent;
21867}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
21868
21869
21870
21871/***/ }),
21872/* 105 */
21873/***/ (function(module, __webpack_exports__, __webpack_require__) {
21874
21875"use strict";
21876__webpack_require__.r(__webpack_exports__);
21877/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return UserComponentFactory; });
21878/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
21879/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
21880/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39);
21881/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
21882/* harmony import */ var _componentTypes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(106);
21883/* harmony import */ var _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(107);
21884/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(14);
21885/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15);
21886/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(13);
21887/**
21888 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
21889 * @version v29.2.0
21890 * @link https://www.ag-grid.com/
21891 * @license MIT
21892 */
21893var __extends = (undefined && undefined.__extends) || (function () {
21894 var extendStatics = function (d, b) {
21895 extendStatics = Object.setPrototypeOf ||
21896 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
21897 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
21898 return extendStatics(d, b);
21899 };
21900 return function (d, b) {
21901 extendStatics(d, b);
21902 function __() { this.constructor = d; }
21903 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21904 };
21905})();
21906var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21907 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21908 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21909 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;
21910 return c > 3 && r && Object.defineProperty(target, key, r), r;
21911};
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921var UserComponentFactory = /** @class */ (function (_super) {
21922 __extends(UserComponentFactory, _super);
21923 function UserComponentFactory() {
21924 return _super !== null && _super.apply(this, arguments) || this;
21925 }
21926 UserComponentFactory.prototype.getHeaderCompDetails = function (colDef, params) {
21927 return this.getCompDetails(colDef, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["HeaderComponent"], 'agColumnHeader', params);
21928 };
21929 UserComponentFactory.prototype.getHeaderGroupCompDetails = function (params) {
21930 var colGroupDef = params.columnGroup.getColGroupDef();
21931 return this.getCompDetails(colGroupDef, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["HeaderGroupComponent"], 'agColumnGroupHeader', params);
21932 };
21933 // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.
21934 // so we have to pass the type in.
21935 UserComponentFactory.prototype.getFullWidthCellRendererDetails = function (params) {
21936 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FullWidth"], null, params, true);
21937 };
21938 UserComponentFactory.prototype.getFullWidthLoadingCellRendererDetails = function (params) {
21939 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FullWidthLoading"], 'agLoadingCellRenderer', params, true);
21940 };
21941 UserComponentFactory.prototype.getFullWidthGroupCellRendererDetails = function (params) {
21942 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FullWidthGroup"], 'agGroupRowRenderer', params, true);
21943 };
21944 UserComponentFactory.prototype.getFullWidthDetailCellRendererDetails = function (params) {
21945 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FullWidthDetail"], 'agDetailCellRenderer', params, true);
21946 };
21947 // CELL RENDERER
21948 UserComponentFactory.prototype.getInnerRendererDetails = function (def, params) {
21949 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["InnerRendererComponent"], null, params);
21950 };
21951 UserComponentFactory.prototype.getFullWidthGroupRowInnerCellRenderer = function (def, params) {
21952 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["InnerRendererComponent"], null, params);
21953 };
21954 UserComponentFactory.prototype.getCellRendererDetails = function (def, params) {
21955 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["CellRendererComponent"], null, params);
21956 };
21957 // CELL EDITOR
21958 UserComponentFactory.prototype.getCellEditorDetails = function (def, params) {
21959 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["CellEditorComponent"], 'agCellEditor', params, true);
21960 };
21961 // FILTER
21962 UserComponentFactory.prototype.getFilterDetails = function (def, params, defaultFilter) {
21963 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FilterComponent"], defaultFilter, params, true);
21964 };
21965 UserComponentFactory.prototype.getDateCompDetails = function (params) {
21966 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["DateComponent"], 'agDateInput', params, true);
21967 };
21968 UserComponentFactory.prototype.getLoadingOverlayCompDetails = function (params) {
21969 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["LoadingOverlayComponent"], 'agLoadingOverlay', params, true);
21970 };
21971 UserComponentFactory.prototype.getNoRowsOverlayCompDetails = function (params) {
21972 return this.getCompDetails(this.gridOptions, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["NoRowsOverlayComponent"], 'agNoRowsOverlay', params, true);
21973 };
21974 UserComponentFactory.prototype.getTooltipCompDetails = function (params) {
21975 return this.getCompDetails(params.colDef, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["TooltipComponent"], 'agTooltipComponent', params, true);
21976 };
21977 UserComponentFactory.prototype.getSetFilterCellRendererDetails = function (def, params) {
21978 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["CellRendererComponent"], null, params);
21979 };
21980 UserComponentFactory.prototype.getFloatingFilterCompDetails = function (def, params, defaultFloatingFilter) {
21981 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FloatingFilterComponent"], defaultFloatingFilter, params);
21982 };
21983 UserComponentFactory.prototype.getToolPanelCompDetails = function (toolPanelDef, params) {
21984 return this.getCompDetails(toolPanelDef, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["ToolPanelComponent"], null, params, true);
21985 };
21986 UserComponentFactory.prototype.getStatusPanelCompDetails = function (def, params) {
21987 return this.getCompDetails(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["StatusPanelComponent"], null, params, true);
21988 };
21989 UserComponentFactory.prototype.getCompDetails = function (defObject, type, defaultName, params, mandatory) {
21990 var _this = this;
21991 if (mandatory === void 0) { mandatory = false; }
21992 var propertyName = type.propertyName, cellRenderer = type.cellRenderer;
21993 var _a = this.getCompKeys(defObject, type, params), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp, paramsFromSelector = _a.paramsFromSelector, popupFromSelector = _a.popupFromSelector, popupPositionFromSelector = _a.popupPositionFromSelector;
21994 var lookupFromRegistry = function (key) {
21995 var item = _this.userComponentRegistry.retrieve(propertyName, key);
21996 if (item) {
21997 jsComp = !item.componentFromFramework ? item.component : undefined;
21998 fwComp = item.componentFromFramework ? item.component : undefined;
21999 }
22000 };
22001 // if compOption is a string, means we need to look the item up
22002 if (compName != null) {
22003 lookupFromRegistry(compName);
22004 }
22005 // if lookup brought nothing back, and we have a default, lookup the default
22006 if (jsComp == null && fwComp == null && defaultName != null) {
22007 lookupFromRegistry(defaultName);
22008 }
22009 // if we have a comp option, and it's a function, replace it with an object equivalent adaptor
22010 if (jsComp && cellRenderer && !this.agComponentUtils.doesImplementIComponent(jsComp)) {
22011 jsComp = this.agComponentUtils.adaptFunction(propertyName, jsComp);
22012 }
22013 if (!jsComp && !fwComp) {
22014 if (mandatory) {
22015 console.error("AG Grid: Could not find component " + compName + ", did you forget to configure this component?");
22016 }
22017 return;
22018 }
22019 var paramsMerged = this.mergeParamsWithApplicationProvidedParams(defObject, type, params, paramsFromSelector);
22020 var componentFromFramework = jsComp == null;
22021 var componentClass = jsComp ? jsComp : fwComp;
22022 return {
22023 componentFromFramework: componentFromFramework,
22024 componentClass: componentClass,
22025 params: paramsMerged,
22026 type: type,
22027 popupFromSelector: popupFromSelector,
22028 popupPositionFromSelector: popupPositionFromSelector,
22029 newAgStackInstance: function () { return _this.newAgStackInstance(componentClass, componentFromFramework, paramsMerged, type); }
22030 };
22031 };
22032 UserComponentFactory.prototype.getCompKeys = function (defObject, type, params) {
22033 var _this = this;
22034 var propertyName = type.propertyName;
22035 var compName;
22036 var jsComp;
22037 var fwComp;
22038 var paramsFromSelector;
22039 var popupFromSelector;
22040 var popupPositionFromSelector;
22041 // there are two types of js comps, class based and func based. we can only check for
22042 // class based, by checking if getGui() exists. no way to differentiate js func based vs eg react func based
22043 // const isJsClassComp = (comp: any) => this.agComponentUtils.doesImplementIComponent(comp);
22044 // const fwActive = this.frameworkComponentWrapper != null;
22045 // pull from defObject if available
22046 if (defObject) {
22047 var defObjectAny = defObject;
22048 // if selector, use this
22049 var selectorFunc = defObjectAny[propertyName + 'Selector'];
22050 var selectorRes = selectorFunc ? selectorFunc(params) : null;
22051 var assignComp = function (providedJsComp, providedFwComp) {
22052 var xxxFrameworkDeprecatedWarn = function () {
22053 var warningMessage = "AG Grid: As of v27, the property " + propertyName + "Framework is deprecated. The property " + propertyName + " can now be used for JavaScript AND Framework Components.";
22054 Object(_utils_function__WEBPACK_IMPORTED_MODULE_8__["doOnce"])(function () { return console.warn(warningMessage); }, "UserComponentFactory." + propertyName + "FrameworkDeprecated");
22055 };
22056 if (typeof providedJsComp === 'string') {
22057 compName = providedJsComp;
22058 }
22059 else if (typeof providedFwComp === 'string') {
22060 xxxFrameworkDeprecatedWarn();
22061 compName = providedFwComp;
22062 // comp===true for filters, which means use the default comp
22063 }
22064 else if (providedJsComp != null && providedJsComp !== true) {
22065 var isFwkComp = _this.getFrameworkOverrides().isFrameworkComponent(providedJsComp);
22066 if (isFwkComp) {
22067 fwComp = providedJsComp;
22068 }
22069 else {
22070 jsComp = providedJsComp;
22071 }
22072 }
22073 else if (providedFwComp != null) {
22074 xxxFrameworkDeprecatedWarn();
22075 fwComp = providedFwComp;
22076 }
22077 };
22078 if (selectorRes) {
22079 if (selectorRes.frameworkComponent != null) {
22080 var warningMessage_1 = "AG Grid: As of v27, the return for " + propertyName + "Selector has attributes [component, params] only. The attribute frameworkComponent is deprecated. You should now return back Framework Components using the 'component' attribute and the grid works out if it's a framework component or not.";
22081 Object(_utils_function__WEBPACK_IMPORTED_MODULE_8__["doOnce"])(function () { return console.warn(warningMessage_1); }, "UserComponentFactory." + propertyName + "FrameworkSelectorDeprecated");
22082 assignComp(selectorRes.frameworkComponent, undefined);
22083 }
22084 else {
22085 assignComp(selectorRes.component, undefined);
22086 }
22087 paramsFromSelector = selectorRes.params;
22088 popupFromSelector = selectorRes.popup;
22089 popupPositionFromSelector = selectorRes.popupPosition;
22090 }
22091 else {
22092 // if no selector, or result of selector is empty, take from defObject
22093 assignComp(defObjectAny[propertyName], defObjectAny[propertyName + 'Framework']);
22094 }
22095 }
22096 return { compName: compName, jsComp: jsComp, fwComp: fwComp, paramsFromSelector: paramsFromSelector, popupFromSelector: popupFromSelector, popupPositionFromSelector: popupPositionFromSelector };
22097 };
22098 UserComponentFactory.prototype.newAgStackInstance = function (ComponentClass, componentFromFramework, params, type) {
22099 var propertyName = type.propertyName;
22100 var jsComponent = !componentFromFramework;
22101 // using javascript component
22102 var instance;
22103 if (jsComponent) {
22104 instance = new ComponentClass();
22105 }
22106 else {
22107 // Using framework component
22108 var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);
22109 instance = this.frameworkComponentWrapper.wrap(ComponentClass, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, type);
22110 }
22111 var deferredInit = this.initComponent(instance, params);
22112 if (deferredInit == null) {
22113 return _utils__WEBPACK_IMPORTED_MODULE_2__["AgPromise"].resolve(instance);
22114 }
22115 return deferredInit.then(function () { return instance; });
22116 };
22117 // used by Floating Filter
22118 UserComponentFactory.prototype.mergeParamsWithApplicationProvidedParams = function (defObject, type, paramsFromGrid, paramsFromSelector) {
22119 if (paramsFromSelector === void 0) { paramsFromSelector = null; }
22120 var params = {
22121 context: this.gridOptionsService.context,
22122 columnApi: this.gridOptionsService.columnApi,
22123 api: this.gridOptionsService.api
22124 };
22125 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["mergeDeep"])(params, paramsFromGrid);
22126 // pull user params from either the old prop name and new prop name
22127 // eg either cellRendererParams and cellCompParams
22128 var defObjectAny = defObject;
22129 var userParams = defObjectAny && defObjectAny[type.propertyName + 'Params'];
22130 if (typeof userParams === 'function') {
22131 var userParamsFromFunc = userParams(paramsFromGrid);
22132 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["mergeDeep"])(params, userParamsFromFunc);
22133 }
22134 else if (typeof userParams === 'object') {
22135 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["mergeDeep"])(params, userParams);
22136 }
22137 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["mergeDeep"])(params, paramsFromSelector);
22138 return params;
22139 };
22140 UserComponentFactory.prototype.initComponent = function (component, params) {
22141 this.context.createBean(component);
22142 if (component.init == null) {
22143 return;
22144 }
22145 return component.init(params);
22146 };
22147 UserComponentFactory.prototype.getDefaultFloatingFilterType = function (def) {
22148 if (def == null) {
22149 return null;
22150 }
22151 var defaultFloatingFilterType = null;
22152 var _a = this.getCompKeys(def, _componentTypes__WEBPACK_IMPORTED_MODULE_4__["FilterComponent"]), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp;
22153 if (compName) {
22154 // will be undefined if not in the map
22155 defaultFloatingFilterType = _filter_floating_floatingFilterMapper__WEBPACK_IMPORTED_MODULE_5__["FloatingFilterMapper"].getFloatingFilterType(compName);
22156 }
22157 else {
22158 var usingDefaultFilter = (jsComp == null && fwComp == null) && (def.filter === true);
22159 if (usingDefaultFilter) {
22160 var setFilterModuleLoaded = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_6__["ModuleNames"].SetFilterModule);
22161 defaultFloatingFilterType = setFilterModuleLoaded ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';
22162 }
22163 }
22164 return defaultFloatingFilterType;
22165 };
22166 __decorate([
22167 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptions')
22168 ], UserComponentFactory.prototype, "gridOptions", void 0);
22169 __decorate([
22170 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('agComponentUtils')
22171 ], UserComponentFactory.prototype, "agComponentUtils", void 0);
22172 __decorate([
22173 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('componentMetadataProvider')
22174 ], UserComponentFactory.prototype, "componentMetadataProvider", void 0);
22175 __decorate([
22176 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentRegistry')
22177 ], UserComponentFactory.prototype, "userComponentRegistry", void 0);
22178 __decorate([
22179 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('frameworkComponentWrapper')
22180 ], UserComponentFactory.prototype, "frameworkComponentWrapper", void 0);
22181 UserComponentFactory = __decorate([
22182 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('userComponentFactory')
22183 ], UserComponentFactory);
22184 return UserComponentFactory;
22185}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
22186
22187
22188
22189/***/ }),
22190/* 106 */
22191/***/ (function(module, __webpack_exports__, __webpack_require__) {
22192
22193"use strict";
22194__webpack_require__.r(__webpack_exports__);
22195/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DateComponent", function() { return DateComponent; });
22196/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderComponent", function() { return HeaderComponent; });
22197/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupComponent", function() { return HeaderGroupComponent; });
22198/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRendererComponent", function() { return CellRendererComponent; });
22199/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellEditorComponent", function() { return CellEditorComponent; });
22200/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerRendererComponent", function() { return InnerRendererComponent; });
22201/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoadingOverlayComponent", function() { return LoadingOverlayComponent; });
22202/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NoRowsOverlayComponent", function() { return NoRowsOverlayComponent; });
22203/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipComponent", function() { return TooltipComponent; });
22204/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterComponent", function() { return FilterComponent; });
22205/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterComponent", function() { return FloatingFilterComponent; });
22206/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ToolPanelComponent", function() { return ToolPanelComponent; });
22207/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StatusPanelComponent", function() { return StatusPanelComponent; });
22208/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidth", function() { return FullWidth; });
22209/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthLoading", function() { return FullWidthLoading; });
22210/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthGroup", function() { return FullWidthGroup; });
22211/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FullWidthDetail", function() { return FullWidthDetail; });
22212/**
22213 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
22214 * @version v29.2.0
22215 * @link https://www.ag-grid.com/
22216 * @license MIT
22217 */
22218var DateComponent = {
22219 propertyName: 'dateComponent',
22220 cellRenderer: false
22221};
22222var HeaderComponent = {
22223 propertyName: 'headerComponent',
22224 cellRenderer: false
22225};
22226var HeaderGroupComponent = {
22227 propertyName: 'headerGroupComponent',
22228 cellRenderer: false
22229};
22230var CellRendererComponent = {
22231 propertyName: 'cellRenderer',
22232 cellRenderer: true
22233};
22234var CellEditorComponent = {
22235 propertyName: 'cellEditor',
22236 cellRenderer: false
22237};
22238var InnerRendererComponent = {
22239 propertyName: 'innerRenderer',
22240 cellRenderer: true
22241};
22242var LoadingOverlayComponent = {
22243 propertyName: 'loadingOverlayComponent',
22244 cellRenderer: false
22245};
22246var NoRowsOverlayComponent = {
22247 propertyName: 'noRowsOverlayComponent',
22248 cellRenderer: false
22249};
22250var TooltipComponent = {
22251 propertyName: 'tooltipComponent',
22252 cellRenderer: false
22253};
22254var FilterComponent = {
22255 propertyName: 'filter',
22256 cellRenderer: false
22257};
22258var FloatingFilterComponent = {
22259 propertyName: 'floatingFilterComponent',
22260 cellRenderer: false
22261};
22262var ToolPanelComponent = {
22263 propertyName: 'toolPanel',
22264 cellRenderer: false
22265};
22266var StatusPanelComponent = {
22267 propertyName: 'statusPanel',
22268 cellRenderer: false
22269};
22270var FullWidth = {
22271 propertyName: 'fullWidthCellRenderer',
22272 cellRenderer: true
22273};
22274var FullWidthLoading = {
22275 propertyName: 'loadingCellRenderer',
22276 cellRenderer: true
22277};
22278var FullWidthGroup = {
22279 propertyName: 'groupRowRenderer',
22280 cellRenderer: true
22281};
22282var FullWidthDetail = {
22283 propertyName: 'detailCellRenderer',
22284 cellRenderer: true
22285};
22286
22287
22288/***/ }),
22289/* 107 */
22290/***/ (function(module, __webpack_exports__, __webpack_require__) {
22291
22292"use strict";
22293__webpack_require__.r(__webpack_exports__);
22294/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return FloatingFilterMapper; });
22295/**
22296 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
22297 * @version v29.2.0
22298 * @link https://www.ag-grid.com/
22299 * @license MIT
22300 */
22301var FloatingFilterMapper = /** @class */ (function () {
22302 function FloatingFilterMapper() {
22303 }
22304 FloatingFilterMapper.getFloatingFilterType = function (filterType) {
22305 return this.filterToFloatingFilterMapping[filterType];
22306 };
22307 FloatingFilterMapper.filterToFloatingFilterMapping = {
22308 set: 'agSetColumnFloatingFilter',
22309 agSetColumnFilter: 'agSetColumnFloatingFilter',
22310 multi: 'agMultiColumnFloatingFilter',
22311 agMultiColumnFilter: 'agMultiColumnFloatingFilter',
22312 group: 'agGroupColumnFloatingFilter',
22313 agGroupColumnFilter: 'agGroupColumnFloatingFilter',
22314 number: 'agNumberColumnFloatingFilter',
22315 agNumberColumnFilter: 'agNumberColumnFloatingFilter',
22316 date: 'agDateColumnFloatingFilter',
22317 agDateColumnFilter: 'agDateColumnFloatingFilter',
22318 text: 'agTextColumnFloatingFilter',
22319 agTextColumnFilter: 'agTextColumnFloatingFilter'
22320 };
22321 return FloatingFilterMapper;
22322}());
22323
22324
22325
22326/***/ }),
22327/* 108 */
22328/***/ (function(module, __webpack_exports__, __webpack_require__) {
22329
22330"use strict";
22331__webpack_require__.r(__webpack_exports__);
22332/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return ExcelFactoryMode; });
22333/**
22334 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
22335 * @version v29.2.0
22336 * @link https://www.ag-grid.com/
22337 * @license MIT
22338 */
22339// Excel Export
22340var ExcelFactoryMode;
22341(function (ExcelFactoryMode) {
22342 ExcelFactoryMode[ExcelFactoryMode["SINGLE_SHEET"] = 0] = "SINGLE_SHEET";
22343 ExcelFactoryMode[ExcelFactoryMode["MULTI_SHEET"] = 1] = "MULTI_SHEET";
22344})(ExcelFactoryMode || (ExcelFactoryMode = {}));
22345
22346
22347/***/ }),
22348/* 109 */
22349/***/ (function(module, __webpack_exports__, __webpack_require__) {
22350
22351"use strict";
22352__webpack_require__.r(__webpack_exports__);
22353/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return DragService; });
22354/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
22355/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
22356/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
22357/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
22358/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
22359/* harmony import */ var _utils_mouse__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(49);
22360/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42);
22361/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45);
22362/**
22363 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
22364 * @version v29.2.0
22365 * @link https://www.ag-grid.com/
22366 * @license MIT
22367 */
22368var __extends = (undefined && undefined.__extends) || (function () {
22369 var extendStatics = function (d, b) {
22370 extendStatics = Object.setPrototypeOf ||
22371 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
22372 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
22373 return extendStatics(d, b);
22374 };
22375 return function (d, b) {
22376 extendStatics(d, b);
22377 function __() { this.constructor = d; }
22378 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
22379 };
22380})();
22381var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
22382 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22383 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22384 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;
22385 return c > 3 && r && Object.defineProperty(target, key, r), r;
22386};
22387
22388
22389
22390
22391
22392
22393
22394
22395/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,
22396 * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */
22397var DragService = /** @class */ (function (_super) {
22398 __extends(DragService, _super);
22399 function DragService() {
22400 var _this = _super !== null && _super.apply(this, arguments) || this;
22401 _this.dragEndFunctions = [];
22402 _this.dragSources = [];
22403 return _this;
22404 }
22405 DragService.prototype.init = function () {
22406 this.logger = this.loggerFactory.create('DragService');
22407 };
22408 DragService.prototype.removeAllListeners = function () {
22409 this.dragSources.forEach(this.removeListener.bind(this));
22410 this.dragSources.length = 0;
22411 };
22412 DragService.prototype.removeListener = function (dragSourceAndListener) {
22413 var element = dragSourceAndListener.dragSource.eElement;
22414 var mouseDownListener = dragSourceAndListener.mouseDownListener;
22415 element.removeEventListener('mousedown', mouseDownListener);
22416 // remove touch listener only if it exists
22417 if (dragSourceAndListener.touchEnabled) {
22418 var touchStartListener = dragSourceAndListener.touchStartListener;
22419 element.removeEventListener('touchstart', touchStartListener, { passive: true });
22420 }
22421 };
22422 DragService.prototype.removeDragSource = function (params) {
22423 var dragSourceAndListener = this.dragSources.find(function (item) { return item.dragSource === params; });
22424 if (!dragSourceAndListener) {
22425 return;
22426 }
22427 this.removeListener(dragSourceAndListener);
22428 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["removeFromArray"])(this.dragSources, dragSourceAndListener);
22429 };
22430 DragService.prototype.isDragging = function () {
22431 return this.dragging;
22432 };
22433 DragService.prototype.addDragSource = function (params, includeTouch) {
22434 var _this = this;
22435 if (includeTouch === void 0) { includeTouch = false; }
22436 var mouseListener = this.onMouseDown.bind(this, params);
22437 params.eElement.addEventListener('mousedown', mouseListener);
22438 var touchListener = null;
22439 var suppressTouch = this.gridOptionsService.is('suppressTouch');
22440 if (includeTouch && !suppressTouch) {
22441 touchListener = function (touchEvent) {
22442 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_7__["isFocusableFormField"])(touchEvent.target)) {
22443 return;
22444 }
22445 if (touchEvent.cancelable) {
22446 touchEvent.preventDefault();
22447 touchEvent.stopPropagation();
22448 }
22449 _this.onTouchStart(params, touchEvent);
22450 };
22451 // we set passive=false, as we want to prevent default on this event
22452 params.eElement.addEventListener('touchstart', touchListener, { passive: false });
22453 }
22454 this.dragSources.push({
22455 dragSource: params,
22456 mouseDownListener: mouseListener,
22457 touchStartListener: touchListener,
22458 touchEnabled: includeTouch
22459 });
22460 };
22461 // gets called whenever mouse down on any drag source
22462 DragService.prototype.onTouchStart = function (params, touchEvent) {
22463 var _this = this;
22464 this.currentDragParams = params;
22465 this.dragging = false;
22466 var touch = touchEvent.touches[0];
22467 this.touchLastTime = touch;
22468 this.touchStart = touch;
22469 var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };
22470 var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };
22471 var documentTouchMove = function (e) { if (e.cancelable) {
22472 e.preventDefault();
22473 } };
22474 var target = touchEvent.target;
22475 var events = [
22476 // Prevents the page document from moving while we are dragging items around.
22477 // preventDefault needs to be called in the touchmove listener and never inside the
22478 // touchstart, because using touchstart causes the click event to be cancelled on touch devices.
22479 { target: document, type: 'touchmove', listener: documentTouchMove, options: { passive: false } },
22480 { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },
22481 { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },
22482 { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }
22483 ];
22484 // temporally add these listeners, for the duration of the drag
22485 this.addTemporaryEvents(events);
22486 // see if we want to start dragging straight away
22487 if (params.dragStartPixels === 0) {
22488 this.onCommonMove(touch, this.touchStart, params.eElement);
22489 }
22490 };
22491 // gets called whenever mouse down on any drag source
22492 DragService.prototype.onMouseDown = function (params, mouseEvent) {
22493 var _this = this;
22494 var e = mouseEvent;
22495 if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {
22496 return;
22497 }
22498 // if there are two elements with parent / child relationship, and both are draggable,
22499 // when we drag the child, we should NOT drag the parent. an example of this is row moving
22500 // and range selection - row moving should get preference when use drags the rowDrag component.
22501 if (e._alreadyProcessedByDragService) {
22502 return;
22503 }
22504 e._alreadyProcessedByDragService = true;
22505 // only interested in left button clicks
22506 if (mouseEvent.button !== 0) {
22507 return;
22508 }
22509 this.currentDragParams = params;
22510 this.dragging = false;
22511 this.mouseStartEvent = mouseEvent;
22512 var eDocument = this.gridOptionsService.getDocument();
22513 var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };
22514 var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };
22515 var contextEvent = function (event) { return event.preventDefault(); };
22516 var target = eDocument;
22517 var events = [
22518 { target: target, type: 'mousemove', listener: mouseMoveEvent },
22519 { target: target, type: 'mouseup', listener: mouseUpEvent },
22520 { target: target, type: 'contextmenu', listener: contextEvent }
22521 ];
22522 // temporally add these listeners, for the duration of the drag
22523 this.addTemporaryEvents(events);
22524 //see if we want to start dragging straight away
22525 if (params.dragStartPixels === 0) {
22526 this.onMouseMove(mouseEvent, params.eElement);
22527 }
22528 };
22529 DragService.prototype.addTemporaryEvents = function (events) {
22530 events.forEach(function (currentEvent) {
22531 var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;
22532 target.addEventListener(type, listener, options);
22533 });
22534 this.dragEndFunctions.push(function () {
22535 events.forEach(function (currentEvent) {
22536 var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;
22537 target.removeEventListener(type, listener, options);
22538 });
22539 });
22540 };
22541 // returns true if the event is close to the original event by X pixels either vertically or horizontally.
22542 // we only start dragging after X pixels so this allows us to know if we should start dragging yet.
22543 DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {
22544 // by default, we wait 4 pixels before starting the drag
22545 var dragStartPixels = this.currentDragParams.dragStartPixels;
22546 var requiredPixelDiff = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(dragStartPixels) ? dragStartPixels : 4;
22547 return Object(_utils_mouse__WEBPACK_IMPORTED_MODULE_5__["areEventsNear"])(currentEvent, startEvent, requiredPixelDiff);
22548 };
22549 DragService.prototype.getFirstActiveTouch = function (touchList) {
22550 for (var i = 0; i < touchList.length; i++) {
22551 if (touchList[i].identifier === this.touchStart.identifier) {
22552 return touchList[i];
22553 }
22554 }
22555 return null;
22556 };
22557 DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {
22558 if (!this.dragging) {
22559 // if mouse hasn't travelled from the start position enough, do nothing
22560 if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {
22561 return;
22562 }
22563 this.dragging = true;
22564 var event_1 = {
22565 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED,
22566 target: el
22567 };
22568 this.eventService.dispatchEvent(event_1);
22569 this.currentDragParams.onDragStart(startEvent);
22570 // we need ONE drag action at the startEvent, so that we are guaranteed the drop target
22571 // at the start gets notified. this is because the drag can start outside of the element
22572 // that started it, as the mouse is allowed drag away from the mouse down before it's
22573 // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then
22574 // it would be possible to click a column by the edge, then drag outside of the drop zone
22575 // in less than 4 pixels and the drag officially starts outside of the header but the header
22576 // wouldn't be notified of the dragging.
22577 this.currentDragParams.onDragging(startEvent);
22578 }
22579 this.currentDragParams.onDragging(currentEvent);
22580 };
22581 DragService.prototype.onTouchMove = function (touchEvent, el) {
22582 var touch = this.getFirstActiveTouch(touchEvent.touches);
22583 if (!touch) {
22584 return;
22585 }
22586 // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');
22587 this.onCommonMove(touch, this.touchStart, el);
22588 };
22589 // only gets called after a mouse down - as this is only added after mouseDown
22590 // and is removed when mouseUp happens
22591 DragService.prototype.onMouseMove = function (mouseEvent, el) {
22592 // when `isEnableCellTextSelect` is `true`, we need to preventDefault on mouseMove
22593 // to avoid the grid text being selected while dragging components.
22594 // Note: Safari also has an issue, where `user-select: none` is not being respected.
22595 if ((this.gridOptionsService.is('enableCellTextSelection') || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["isBrowserSafari"])()) &&
22596 // The event type can be `mousedown` when `dragStartPixels=0`
22597 // we should only preventDefault on `mousemove`.
22598 mouseEvent.type === 'mousemove' &&
22599 mouseEvent.cancelable &&
22600 this.mouseEventService.isEventFromThisGrid(mouseEvent) &&
22601 // we should not prevent mouseMove when above a form field
22602 // as that would prevent the text in the field from being selected
22603 !this.isOverFormFieldElement(mouseEvent)) {
22604 mouseEvent.preventDefault();
22605 }
22606 this.onCommonMove(mouseEvent, this.mouseStartEvent, el);
22607 };
22608 DragService.prototype.isOverFormFieldElement = function (mouseEvent) {
22609 var el = mouseEvent.target;
22610 var tagName = el === null || el === void 0 ? void 0 : el.tagName.toLocaleLowerCase();
22611 return !!(tagName === null || tagName === void 0 ? void 0 : tagName.match('^a$|textarea|input|select|button'));
22612 };
22613 DragService.prototype.onTouchUp = function (touchEvent, el) {
22614 var touch = this.getFirstActiveTouch(touchEvent.changedTouches);
22615 // i haven't worked this out yet, but there is no matching touch
22616 // when we get the touch up event. to get around this, we swap in
22617 // the last touch. this is a hack to 'get it working' while we
22618 // figure out what's going on, why we are not getting a touch in
22619 // current event.
22620 if (!touch) {
22621 touch = this.touchLastTime;
22622 }
22623 // if mouse was left up before we started to move, then this is a tap.
22624 // we check this before onUpCommon as onUpCommon resets the dragging
22625 // let tap = !this.dragging;
22626 // let tapTarget = this.currentDragParams.eElement;
22627 this.onUpCommon(touch, el);
22628 // if tap, tell user
22629 // console.log(`${Math.random()} tap = ${tap}`);
22630 // if (tap) {
22631 // tapTarget.click();
22632 // }
22633 };
22634 DragService.prototype.onMouseUp = function (mouseEvent, el) {
22635 this.onUpCommon(mouseEvent, el);
22636 };
22637 DragService.prototype.onUpCommon = function (eventOrTouch, el) {
22638 if (this.dragging) {
22639 this.dragging = false;
22640 this.currentDragParams.onDragStop(eventOrTouch);
22641 var event_2 = {
22642 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STOPPED,
22643 target: el
22644 };
22645 this.eventService.dispatchEvent(event_2);
22646 }
22647 this.mouseStartEvent = null;
22648 this.touchStart = null;
22649 this.touchLastTime = null;
22650 this.currentDragParams = null;
22651 this.dragEndFunctions.forEach(function (func) { return func(); });
22652 this.dragEndFunctions.length = 0;
22653 };
22654 __decorate([
22655 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
22656 ], DragService.prototype, "loggerFactory", void 0);
22657 __decorate([
22658 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
22659 ], DragService.prototype, "mouseEventService", void 0);
22660 __decorate([
22661 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
22662 ], DragService.prototype, "init", null);
22663 __decorate([
22664 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
22665 ], DragService.prototype, "removeAllListeners", null);
22666 DragService = __decorate([
22667 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('dragService')
22668 ], DragService);
22669 return DragService;
22670}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
22671
22672
22673
22674/***/ }),
22675/* 110 */
22676/***/ (function(module, __webpack_exports__, __webpack_require__) {
22677
22678"use strict";
22679__webpack_require__.r(__webpack_exports__);
22680/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowHighlightPosition", function() { return RowHighlightPosition; });
22681/**
22682 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
22683 * @version v29.2.0
22684 * @link https://www.ag-grid.com/
22685 * @license MIT
22686 */
22687var RowHighlightPosition;
22688(function (RowHighlightPosition) {
22689 RowHighlightPosition[RowHighlightPosition["Above"] = 0] = "Above";
22690 RowHighlightPosition[RowHighlightPosition["Below"] = 1] = "Below";
22691})(RowHighlightPosition || (RowHighlightPosition = {}));
22692
22693
22694/***/ }),
22695/* 111 */
22696/***/ (function(module, __webpack_exports__, __webpack_require__) {
22697
22698"use strict";
22699__webpack_require__.r(__webpack_exports__);
22700/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return FilterManager; });
22701/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
22702/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
22703/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
22704/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
22705/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15);
22706/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
22707/* harmony import */ var _utils_set__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(51);
22708/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7);
22709/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(12);
22710/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(45);
22711/* harmony import */ var _components_framework_componentTypes__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(106);
22712/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(112);
22713/**
22714 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
22715 * @version v29.2.0
22716 * @link https://www.ag-grid.com/
22717 * @license MIT
22718 */
22719var __extends = (undefined && undefined.__extends) || (function () {
22720 var extendStatics = function (d, b) {
22721 extendStatics = Object.setPrototypeOf ||
22722 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
22723 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
22724 return extendStatics(d, b);
22725 };
22726 return function (d, b) {
22727 extendStatics(d, b);
22728 function __() { this.constructor = d; }
22729 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
22730 };
22731})();
22732var __assign = (undefined && undefined.__assign) || function () {
22733 __assign = Object.assign || function(t) {
22734 for (var s, i = 1, n = arguments.length; i < n; i++) {
22735 s = arguments[i];
22736 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22737 t[p] = s[p];
22738 }
22739 return t;
22740 };
22741 return __assign.apply(this, arguments);
22742};
22743var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
22744 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
22745 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
22746 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;
22747 return c > 3 && r && Object.defineProperty(target, key, r), r;
22748};
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761var FilterManager = /** @class */ (function (_super) {
22762 __extends(FilterManager, _super);
22763 function FilterManager() {
22764 var _this = _super !== null && _super.apply(this, arguments) || this;
22765 _this.allColumnFilters = new Map();
22766 _this.activeAggregateFilters = [];
22767 _this.activeColumnFilters = [];
22768 _this.quickFilter = null;
22769 _this.quickFilterParts = null;
22770 // this is true when the grid is processing the filter change. this is used by the cell comps, so that they
22771 // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the
22772 // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where
22773 // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)
22774 // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.
22775 _this.processingFilterChange = false;
22776 return _this;
22777 }
22778 FilterManager_1 = FilterManager;
22779 FilterManager.prototype.init = function () {
22780 var _this = this;
22781 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_GRID_COLUMNS_CHANGED, function () { return _this.onColumnsChanged(); });
22782 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VALUE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });
22783 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.refreshFiltersForAggregations(); });
22784 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, function () {
22785 _this.refreshFiltersForAggregations();
22786 _this.resetQuickFilterCache();
22787 });
22788 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED, function () { return _this.resetQuickFilterCache(); });
22789 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.resetQuickFilterCache(); });
22790 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_VISIBLE, function () {
22791 if (_this.gridOptionsService.is('excludeHiddenColumnsFromQuickFilter')) {
22792 _this.resetQuickFilterCache();
22793 }
22794 });
22795 this.addManagedPropertyListener('quickFilterText', function (e) { return _this.setQuickFilter(e.currentValue); });
22796 this.addManagedPropertyListener('excludeHiddenColumnsFromQuickFilter', function () { return _this.onExcludeHiddenColumnsFromQuickFilterChanged(); });
22797 this.quickFilter = this.parseQuickFilter(this.gridOptionsService.get('quickFilterText'));
22798 this.setQuickFilterParts();
22799 this.allowShowChangeAfterFilter = this.gridOptionsService.is('allowShowChangeAfterFilter');
22800 this.externalFilterPresent = this.isExternalFilterPresentCallback();
22801 };
22802 FilterManager.prototype.isExternalFilterPresentCallback = function () {
22803 var isFilterPresent = this.gridOptionsService.getCallback('isExternalFilterPresent');
22804 if (typeof isFilterPresent === 'function') {
22805 return isFilterPresent({});
22806 }
22807 return false;
22808 };
22809 FilterManager.prototype.doesExternalFilterPass = function (node) {
22810 var doesFilterPass = this.gridOptionsService.get('doesExternalFilterPass');
22811 if (typeof doesFilterPass === 'function') {
22812 return doesFilterPass(node);
22813 }
22814 return false;
22815 };
22816 FilterManager.prototype.setQuickFilterParts = function () {
22817 this.quickFilterParts = this.quickFilter ? this.quickFilter.split(' ') : null;
22818 };
22819 FilterManager.prototype.setFilterModel = function (model) {
22820 var _this = this;
22821 var allPromises = [];
22822 var previousModel = this.getFilterModel();
22823 if (model) {
22824 // mark the filters as we set them, so any active filters left over we stop
22825 var modelKeys_1 = Object(_utils_set__WEBPACK_IMPORTED_MODULE_6__["convertToSet"])(Object.keys(model));
22826 this.allColumnFilters.forEach(function (filterWrapper, colId) {
22827 var newModel = model[colId];
22828 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));
22829 modelKeys_1.delete(colId);
22830 });
22831 // at this point, processedFields contains data for which we don't have a filter working yet
22832 modelKeys_1.forEach(function (colId) {
22833 var column = _this.columnModel.getPrimaryColumn(colId) || _this.columnModel.getGridColumn(colId);
22834 if (!column) {
22835 console.warn('AG Grid: setFilterModel() - no column found for colId: ' + colId);
22836 return;
22837 }
22838 if (!column.isFilterAllowed()) {
22839 console.warn('AG Grid: setFilterModel() - unable to fully apply model, filtering disabled for colId: ' + colId);
22840 return;
22841 }
22842 var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');
22843 if (!filterWrapper) {
22844 console.warn('AG-Grid: setFilterModel() - unable to fully apply model, unable to create filter for colId: ' + colId);
22845 return;
22846 }
22847 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));
22848 });
22849 }
22850 else {
22851 this.allColumnFilters.forEach(function (filterWrapper) {
22852 allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));
22853 });
22854 }
22855 _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].all(allPromises).then(function () {
22856 var currentModel = _this.getFilterModel();
22857 var columns = [];
22858 _this.allColumnFilters.forEach(function (filterWrapper, colId) {
22859 var before = previousModel ? previousModel[colId] : null;
22860 var after = currentModel ? currentModel[colId] : null;
22861 if (!_utils__WEBPACK_IMPORTED_MODULE_0__["_"].jsonEquals(before, after)) {
22862 columns.push(filterWrapper.column);
22863 }
22864 });
22865 if (columns.length > 0) {
22866 _this.onFilterChanged({ columns: columns });
22867 }
22868 });
22869 };
22870 FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {
22871 return new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
22872 filterPromise.then(function (filter) {
22873 if (typeof filter.setModel !== 'function') {
22874 console.warn('AG Grid: filter missing setModel method, which is needed for setFilterModel');
22875 resolve();
22876 }
22877 (filter.setModel(newModel) || _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve()).then(function () { return resolve(); });
22878 });
22879 });
22880 };
22881 FilterManager.prototype.getFilterModel = function () {
22882 var result = {};
22883 this.allColumnFilters.forEach(function (filterWrapper, key) {
22884 // because user can provide filters, we provide useful error checking and messages
22885 var filterPromise = filterWrapper.filterPromise;
22886 var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });
22887 if (filter == null) {
22888 return null;
22889 }
22890 if (typeof filter.getModel !== 'function') {
22891 console.warn('AG Grid: filter API missing getModel method, which is needed for getFilterModel');
22892 return;
22893 }
22894 var model = filter.getModel();
22895 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["exists"])(model)) {
22896 result[key] = model;
22897 }
22898 });
22899 return result;
22900 };
22901 FilterManager.prototype.isColumnFilterPresent = function () {
22902 return this.activeColumnFilters.length > 0;
22903 };
22904 FilterManager.prototype.isAggregateFilterPresent = function () {
22905 return !!this.activeAggregateFilters.length;
22906 };
22907 FilterManager.prototype.isExternalFilterPresent = function () {
22908 return this.externalFilterPresent;
22909 };
22910 FilterManager.prototype.doAggregateFiltersPass = function (node, filterToSkip) {
22911 return this.doColumnFiltersPass(node, filterToSkip, true);
22912 };
22913 // called by:
22914 // 1) onFilterChanged()
22915 // 2) onNewRowsLoaded()
22916 FilterManager.prototype.updateActiveFilters = function () {
22917 var _this = this;
22918 this.activeColumnFilters.length = 0;
22919 this.activeAggregateFilters.length = 0;
22920 var isFilterActive = function (filter) {
22921 if (!filter) {
22922 return false;
22923 } // this never happens, including to avoid compile error
22924 if (!filter.isFilterActive) {
22925 console.warn('AG Grid: Filter is missing isFilterActive() method');
22926 return false;
22927 }
22928 return filter.isFilterActive();
22929 };
22930 var groupFilterEnabled = !!this.gridOptionsService.getGroupAggFiltering();
22931 var isAggFilter = function (column) {
22932 var isSecondary = !column.isPrimary();
22933 // the only filters that can appear on secondary columns are groupAgg filters
22934 if (isSecondary) {
22935 return true;
22936 }
22937 var isShowingPrimaryColumns = !_this.columnModel.isPivotActive();
22938 var isValueActive = column.isValueActive();
22939 // primary columns are only ever groupAgg filters if a) value is active and b) showing primary columns
22940 if (!isValueActive || !isShowingPrimaryColumns) {
22941 return false;
22942 }
22943 // from here on we know: isPrimary=true, isValueActive=true, isShowingPrimaryColumns=true
22944 if (_this.columnModel.isPivotMode()) {
22945 // primary column is pretending to be a pivot column, ie pivotMode=true, but we are
22946 // still showing primary columns
22947 return true;
22948 }
22949 // we are not pivoting, so we groupFilter when it's an agg column
22950 return groupFilterEnabled;
22951 };
22952 this.allColumnFilters.forEach(function (filterWrapper) {
22953 if (filterWrapper.filterPromise.resolveNow(false, isFilterActive)) {
22954 var filterComp = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });
22955 if (isAggFilter(filterWrapper.column)) {
22956 _this.activeAggregateFilters.push(filterComp);
22957 }
22958 else {
22959 _this.activeColumnFilters.push(filterComp);
22960 }
22961 }
22962 });
22963 };
22964 FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {
22965 this.allColumnFilters.forEach(function (filterWrapper) {
22966 var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });
22967 filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);
22968 });
22969 };
22970 FilterManager.prototype.isAnyFilterPresent = function () {
22971 return this.isQuickFilterPresent() || this.isColumnFilterPresent() || this.isAggregateFilterPresent() || this.isExternalFilterPresent();
22972 };
22973 FilterManager.prototype.doColumnFiltersPass = function (node, filterToSkip, targetAggregates) {
22974 var data = node.data, aggData = node.aggData;
22975 var targetedFilters = targetAggregates ? this.activeAggregateFilters : this.activeColumnFilters;
22976 var targetedData = targetAggregates ? aggData : data;
22977 for (var i = 0; i < targetedFilters.length; i++) {
22978 var filter = targetedFilters[i];
22979 if (filter == null || filter === filterToSkip) {
22980 continue;
22981 }
22982 if (typeof filter.doesFilterPass !== 'function') {
22983 // because users can do custom filters, give nice error message
22984 throw new Error('Filter is missing method doesFilterPass');
22985 }
22986 if (!filter.doesFilterPass({ node: node, data: targetedData })) {
22987 return false;
22988 }
22989 }
22990 return true;
22991 };
22992 FilterManager.prototype.parseQuickFilter = function (newFilter) {
22993 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["exists"])(newFilter)) {
22994 return null;
22995 }
22996 if (!this.gridOptionsService.isRowModelType('clientSide')) {
22997 console.warn('AG Grid - Quick filtering only works with the Client-Side Row Model');
22998 return null;
22999 }
23000 return newFilter.toUpperCase();
23001 };
23002 FilterManager.prototype.setQuickFilter = function (newFilter) {
23003 if (newFilter != null && typeof newFilter !== 'string') {
23004 console.warn("AG Grid - setQuickFilter() only supports string inputs, received: " + typeof newFilter);
23005 return;
23006 }
23007 var parsedFilter = this.parseQuickFilter(newFilter);
23008 if (this.quickFilter !== parsedFilter) {
23009 this.quickFilter = parsedFilter;
23010 this.setQuickFilterParts();
23011 this.onFilterChanged();
23012 }
23013 };
23014 FilterManager.prototype.resetQuickFilterCache = function () {
23015 this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });
23016 };
23017 FilterManager.prototype.onExcludeHiddenColumnsFromQuickFilterChanged = function () {
23018 this.columnModel.refreshQuickFilterColumns();
23019 this.resetQuickFilterCache();
23020 if (this.isQuickFilterPresent()) {
23021 this.onFilterChanged();
23022 }
23023 };
23024 FilterManager.prototype.refreshFiltersForAggregations = function () {
23025 var isAggFiltering = this.gridOptionsService.getGroupAggFiltering();
23026 if (isAggFiltering) {
23027 this.onFilterChanged();
23028 }
23029 };
23030 // sometimes (especially in React) the filter can call onFilterChanged when we are in the middle
23031 // of a render cycle. this would be bad, so we wait for render cycle to complete when this happens.
23032 // this happens in react when we change React State in the grid (eg setting RowCtrl's in RowContainer)
23033 // which results in React State getting applied in the main application, triggering a useEffect() to
23034 // be kicked off adn then the application calling the grid's API. in AG-6554, the custom filter was
23035 // getting it's useEffect() triggered in this way.
23036 FilterManager.prototype.callOnFilterChangedOutsideRenderCycle = function (params) {
23037 var _this = this;
23038 if (params === void 0) { params = {}; }
23039 var action = function () { return _this.onFilterChanged(params); };
23040 if (this.rowRenderer.isRefreshInProgress()) {
23041 setTimeout(action, 0);
23042 }
23043 else {
23044 action();
23045 }
23046 };
23047 FilterManager.prototype.onFilterChanged = function (params) {
23048 if (params === void 0) { params = {}; }
23049 var filterInstance = params.filterInstance, additionalEventAttributes = params.additionalEventAttributes, columns = params.columns;
23050 this.updateDependantFilters();
23051 this.updateActiveFilters();
23052 this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);
23053 this.externalFilterPresent = this.isExternalFilterPresentCallback();
23054 this.allColumnFilters.forEach(function (filterWrapper) {
23055 if (!filterWrapper.filterPromise) {
23056 return;
23057 }
23058 filterWrapper.filterPromise.then(function (filter) {
23059 if (filter && filter !== filterInstance && filter.onAnyFilterChanged) {
23060 filter.onAnyFilterChanged();
23061 }
23062 });
23063 });
23064 var filterChangedEvent = {
23065 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_CHANGED,
23066 columns: columns || [],
23067 };
23068 if (additionalEventAttributes) {
23069 Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["mergeDeep"])(filterChangedEvent, additionalEventAttributes);
23070 }
23071 // because internal events are not async in ag-grid, when the dispatchEvent
23072 // method comes back, we know all listeners have finished executing.
23073 this.processingFilterChange = true;
23074 this.eventService.dispatchEvent(filterChangedEvent);
23075 this.processingFilterChange = false;
23076 };
23077 FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {
23078 // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing
23079 // changes when filtering
23080 return !this.allowShowChangeAfterFilter && this.processingFilterChange;
23081 };
23082 FilterManager.prototype.isQuickFilterPresent = function () {
23083 return this.quickFilter !== null;
23084 };
23085 FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {
23086 return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });
23087 };
23088 FilterManager.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {
23089 var _this = this;
23090 var columns = this.columnModel.getAllColumnsForQuickFilter();
23091 return columns.some(function (column) {
23092 var part = _this.getQuickFilterTextForColumn(column, node);
23093 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["exists"])(part) && part.indexOf(filterPart) >= 0;
23094 });
23095 };
23096 FilterManager.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {
23097 if (!node.quickFilterAggregateText) {
23098 this.aggregateRowForQuickFilter(node);
23099 }
23100 return node.quickFilterAggregateText.indexOf(filterPart) >= 0;
23101 };
23102 FilterManager.prototype.doesRowPassQuickFilter = function (node) {
23103 var _this = this;
23104 var usingCache = this.gridOptionsService.is('cacheQuickFilter');
23105 // each part must pass, if any fails, then the whole filter fails
23106 return this.quickFilterParts.every(function (part) {
23107 return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);
23108 });
23109 };
23110 FilterManager.prototype.doesRowPassAggregateFilters = function (params) {
23111 if (this.isAggregateFilterPresent() && !this.doAggregateFiltersPass(params.rowNode, params.filterInstanceToSkip)) {
23112 return false;
23113 }
23114 // got this far, all filters pass
23115 return true;
23116 };
23117 FilterManager.prototype.doesRowPassFilter = function (params) {
23118 // the row must pass ALL of the filters, so if any of them fail,
23119 // we return true. that means if a row passes the quick filter,
23120 // but fails the column filter, it fails overall
23121 // first up, check quick filter
23122 if (this.isQuickFilterPresent() && !this.doesRowPassQuickFilter(params.rowNode)) {
23123 return false;
23124 }
23125 // secondly, give the client a chance to reject this row
23126 if (this.isExternalFilterPresent() && !this.doesExternalFilterPass(params.rowNode)) {
23127 return false;
23128 }
23129 // lastly, check column filter
23130 if (this.isColumnFilterPresent() && !this.doColumnFiltersPass(params.rowNode, params.filterInstanceToSkip)) {
23131 return false;
23132 }
23133 // got this far, all filters pass
23134 return true;
23135 };
23136 FilterManager.prototype.getQuickFilterTextForColumn = function (column, node) {
23137 var value = this.valueService.getValue(column, node, true);
23138 var colDef = column.getColDef();
23139 if (colDef.getQuickFilterText) {
23140 var params = {
23141 value: value,
23142 node: node,
23143 data: node.data,
23144 column: column,
23145 colDef: colDef,
23146 api: this.gridOptionsService.api,
23147 columnApi: this.gridOptionsService.columnApi,
23148 context: this.gridOptionsService.context
23149 };
23150 value = colDef.getQuickFilterText(params);
23151 }
23152 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["exists"])(value) ? value.toString().toUpperCase() : null;
23153 };
23154 FilterManager.prototype.aggregateRowForQuickFilter = function (node) {
23155 var _this = this;
23156 var stringParts = [];
23157 var columns = this.columnModel.getAllColumnsForQuickFilter();
23158 columns.forEach(function (column) {
23159 var part = _this.getQuickFilterTextForColumn(column, node);
23160 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["exists"])(part)) {
23161 stringParts.push(part);
23162 }
23163 });
23164 node.quickFilterAggregateText = stringParts.join(FilterManager_1.QUICK_FILTER_SEPARATOR);
23165 };
23166 FilterManager.prototype.onNewRowsLoaded = function (source) {
23167 this.allColumnFilters.forEach(function (filterWrapper) {
23168 filterWrapper.filterPromise.then(function (filter) {
23169 if (filter.onNewRowsLoaded) {
23170 filter.onNewRowsLoaded();
23171 }
23172 });
23173 });
23174 this.updateFilterFlagInColumns(source, { afterDataChange: true });
23175 this.updateActiveFilters();
23176 };
23177 FilterManager.prototype.createValueGetter = function (column) {
23178 var _this = this;
23179 return function (_a) {
23180 var node = _a.node;
23181 return _this.valueService.getValue(column, node, true);
23182 };
23183 };
23184 FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {
23185 var _a;
23186 if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }
23187 if (createIfDoesNotExist) {
23188 return ((_a = this.getOrCreateFilterWrapper(column, source)) === null || _a === void 0 ? void 0 : _a.filterPromise) || null;
23189 }
23190 var filterWrapper = this.cachedFilter(column);
23191 return filterWrapper ? filterWrapper.filterPromise : null;
23192 };
23193 FilterManager.prototype.isFilterActive = function (column) {
23194 var filterWrapper = this.cachedFilter(column);
23195 return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });
23196 };
23197 FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {
23198 if (!column.isFilterAllowed()) {
23199 return null;
23200 }
23201 var filterWrapper = this.cachedFilter(column);
23202 if (!filterWrapper) {
23203 filterWrapper = this.createFilterWrapper(column, source);
23204 this.allColumnFilters.set(column.getColId(), filterWrapper);
23205 }
23206 else if (source !== 'NO_UI') {
23207 this.putIntoGui(filterWrapper, source);
23208 }
23209 return filterWrapper;
23210 };
23211 FilterManager.prototype.cachedFilter = function (column) {
23212 return this.allColumnFilters.get(column.getColId());
23213 };
23214 FilterManager.prototype.createFilterInstance = function (column) {
23215 var _this = this;
23216 var defaultFilter = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_4__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SetFilterModule) ? 'agSetColumnFilter' : 'agTextColumnFilter';
23217 var colDef = column.getColDef();
23218 var filterInstance;
23219 var params = __assign(__assign({}, this.createFilterParams(column, colDef)), { filterModifiedCallback: function () {
23220 var event = {
23221 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_MODIFIED,
23222 column: column,
23223 filterInstance: filterInstance
23224 };
23225 _this.eventService.dispatchEvent(event);
23226 }, filterChangedCallback: function (additionalEventAttributes) {
23227 var params = { filterInstance: filterInstance, additionalEventAttributes: additionalEventAttributes, columns: [column] };
23228 _this.callOnFilterChangedOutsideRenderCycle(params);
23229 }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });
23230 var compDetails = this.userComponentFactory.getFilterDetails(colDef, params, defaultFilter);
23231 if (!compDetails) {
23232 return null;
23233 }
23234 var componentPromise = compDetails.newAgStackInstance();
23235 if (componentPromise) {
23236 componentPromise.then(function (r) { return filterInstance = r; });
23237 }
23238 return componentPromise;
23239 };
23240 FilterManager.prototype.createFilterParams = function (column, colDef) {
23241 var params = {
23242 column: column,
23243 colDef: Object(_utils_object__WEBPACK_IMPORTED_MODULE_8__["cloneObject"])(colDef),
23244 rowModel: this.rowModel,
23245 filterChangedCallback: function () { },
23246 filterModifiedCallback: function () { },
23247 valueGetter: this.createValueGetter(column),
23248 doesRowPassOtherFilter: function () { return true; },
23249 api: this.gridOptionsService.api,
23250 columnApi: this.gridOptionsService.columnApi,
23251 context: this.gridOptionsService.context,
23252 };
23253 return params;
23254 };
23255 FilterManager.prototype.createFilterWrapper = function (column, source) {
23256 var filterWrapper = {
23257 column: column,
23258 filterPromise: null,
23259 compiledElement: null,
23260 guiPromise: _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve(null)
23261 };
23262 filterWrapper.filterPromise = this.createFilterInstance(column);
23263 if (filterWrapper.filterPromise) {
23264 this.putIntoGui(filterWrapper, source);
23265 }
23266 return filterWrapper;
23267 };
23268 FilterManager.prototype.putIntoGui = function (filterWrapper, source) {
23269 var _this = this;
23270 var eFilterGui = document.createElement('div');
23271 eFilterGui.className = 'ag-filter';
23272 filterWrapper.guiPromise = new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
23273 filterWrapper.filterPromise.then(function (filter) {
23274 var guiFromFilter = filter.getGui();
23275 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_7__["exists"])(guiFromFilter)) {
23276 console.warn("AG Grid: getGui method from filter returned " + guiFromFilter + ", it should be a DOM element or an HTML template string.");
23277 }
23278 // for backwards compatibility with Angular 1 - we
23279 // used to allow providing back HTML from getGui().
23280 // once we move away from supporting Angular 1
23281 // directly, we can change this.
23282 if (typeof guiFromFilter === 'string') {
23283 guiFromFilter = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_9__["loadTemplate"])(guiFromFilter);
23284 }
23285 eFilterGui.appendChild(guiFromFilter);
23286 resolve(eFilterGui);
23287 var event = {
23288 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_OPENED,
23289 column: filterWrapper.column,
23290 source: source,
23291 eGui: eFilterGui
23292 };
23293 _this.eventService.dispatchEvent(event);
23294 });
23295 });
23296 };
23297 FilterManager.prototype.onColumnsChanged = function () {
23298 var _this = this;
23299 var columns = [];
23300 this.allColumnFilters.forEach(function (wrapper, colId) {
23301 var currentColumn;
23302 if (wrapper.column.isPrimary()) {
23303 currentColumn = _this.columnModel.getPrimaryColumn(colId);
23304 }
23305 else {
23306 currentColumn = _this.columnModel.getGridColumn(colId);
23307 }
23308 if (currentColumn) {
23309 return;
23310 }
23311 columns.push(wrapper.column);
23312 _this.disposeFilterWrapper(wrapper, 'columnChanged');
23313 });
23314 if (columns.length > 0) {
23315 this.onFilterChanged({ columns: columns });
23316 }
23317 else {
23318 // onFilterChanged does this already
23319 this.updateDependantFilters();
23320 }
23321 };
23322 FilterManager.prototype.updateDependantFilters = function () {
23323 var _this = this;
23324 // Group column filters can be dependant on underlying column filters, but don't normally get created until they're used for the first time.
23325 // Instead, create them by default when any filter changes.
23326 var groupColumns = this.columnModel.getGroupAutoColumns();
23327 groupColumns === null || groupColumns === void 0 ? void 0 : groupColumns.forEach(function (groupColumn) {
23328 if (groupColumn.getColDef().filter === 'agGroupColumnFilter') {
23329 _this.getOrCreateFilterWrapper(groupColumn, 'NO_UI');
23330 }
23331 });
23332 };
23333 // for group filters, can change dynamically whether they are allowed or not
23334 FilterManager.prototype.isFilterAllowed = function (column) {
23335 var _a, _b;
23336 var isFilterAllowed = column.isFilterAllowed();
23337 if (!isFilterAllowed) {
23338 return false;
23339 }
23340 var filterWrapper = this.allColumnFilters.get(column.getColId());
23341 return (_b = (_a = filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.resolveNow(true,
23342 // defer to filter component isFilterAllowed if it exists
23343 function (filter) {
23344 var _a, _b;
23345 return (typeof ((_a = filter) === null || _a === void 0 ? void 0 : _a.isFilterAllowed) === 'function')
23346 ? (_b = filter) === null || _b === void 0 ? void 0 : _b.isFilterAllowed() : true;
23347 })) !== null && _b !== void 0 ? _b : true;
23348 };
23349 FilterManager.prototype.getFloatingFilterCompDetails = function (column, showParentFilter) {
23350 var _this = this;
23351 var colDef = column.getColDef();
23352 var filterParams = this.createFilterParams(column, colDef);
23353 var finalFilterParams = this.userComponentFactory.mergeParamsWithApplicationProvidedParams(colDef, _components_framework_componentTypes__WEBPACK_IMPORTED_MODULE_10__["FilterComponent"], filterParams);
23354 var defaultFloatingFilterType = this.userComponentFactory.getDefaultFloatingFilterType(colDef);
23355 if (defaultFloatingFilterType == null) {
23356 defaultFloatingFilterType = 'agReadOnlyFloatingFilter';
23357 }
23358 var parentFilterInstance = function (callback) {
23359 var filterComponent = _this.getFilterComponent(column, 'NO_UI');
23360 if (filterComponent == null) {
23361 return;
23362 }
23363 filterComponent.then(function (instance) {
23364 callback(Object(_gridApi__WEBPACK_IMPORTED_MODULE_11__["unwrapUserComp"])(instance));
23365 });
23366 };
23367 var params = {
23368 column: column,
23369 filterParams: finalFilterParams,
23370 currentParentModel: function () { return _this.getCurrentFloatingFilterParentModel(column); },
23371 parentFilterInstance: parentFilterInstance,
23372 showParentFilter: showParentFilter,
23373 suppressFilterButton: false // This one might be overridden from the colDef
23374 };
23375 return this.userComponentFactory.getFloatingFilterCompDetails(colDef, params, defaultFloatingFilterType);
23376 };
23377 FilterManager.prototype.getCurrentFloatingFilterParentModel = function (column) {
23378 var filterComponent = this.getFilterComponent(column, 'NO_UI', false);
23379 return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;
23380 };
23381 // destroys the filter, so it no longer takes part
23382 /**
23383 * @param source if not calling this from the API, will need to add a new value
23384 */
23385 FilterManager.prototype.destroyFilter = function (column, source) {
23386 if (source === void 0) { source = 'api'; }
23387 var filterWrapper = this.allColumnFilters.get(column.getColId());
23388 if (filterWrapper) {
23389 this.disposeFilterWrapper(filterWrapper, source);
23390 this.onFilterChanged({ columns: [column] });
23391 }
23392 };
23393 FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {
23394 var _this = this;
23395 filterWrapper.filterPromise.then(function (filter) {
23396 (filter.setModel(null) || _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"].resolve()).then(function () {
23397 _this.getContext().destroyBean(filter);
23398 filterWrapper.column.setFilterActive(false, 'filterDestroyed');
23399 _this.allColumnFilters.delete(filterWrapper.column.getColId());
23400 var event = {
23401 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_DESTROYED,
23402 source: source,
23403 column: filterWrapper.column,
23404 };
23405 _this.eventService.dispatchEvent(event);
23406 });
23407 });
23408 };
23409 FilterManager.prototype.destroy = function () {
23410 var _this = this;
23411 _super.prototype.destroy.call(this);
23412 this.allColumnFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'gridDestroyed'); });
23413 };
23414 var FilterManager_1;
23415 FilterManager.QUICK_FILTER_SEPARATOR = '\n';
23416 __decorate([
23417 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('valueService')
23418 ], FilterManager.prototype, "valueService", void 0);
23419 __decorate([
23420 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
23421 ], FilterManager.prototype, "columnModel", void 0);
23422 __decorate([
23423 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
23424 ], FilterManager.prototype, "rowModel", void 0);
23425 __decorate([
23426 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
23427 ], FilterManager.prototype, "userComponentFactory", void 0);
23428 __decorate([
23429 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
23430 ], FilterManager.prototype, "rowRenderer", void 0);
23431 __decorate([
23432 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
23433 ], FilterManager.prototype, "init", null);
23434 FilterManager = FilterManager_1 = __decorate([
23435 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('filterManager')
23436 ], FilterManager);
23437 return FilterManager;
23438}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
23439
23440
23441
23442/***/ }),
23443/* 112 */
23444/***/ (function(module, __webpack_exports__, __webpack_require__) {
23445
23446"use strict";
23447__webpack_require__.r(__webpack_exports__);
23448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unwrapUserComp", function() { return unwrapUserComp; });
23449/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return GridApi; });
23450/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
23451/* harmony import */ var _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22);
23452/* harmony import */ var _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(113);
23453/* harmony import */ var _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(108);
23454/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(14);
23455/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(15);
23456/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
23457/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12);
23458/**
23459 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
23460 * @version v29.2.0
23461 * @link https://www.ag-grid.com/
23462 * @license MIT
23463 */
23464var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
23465 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
23466 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
23467 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;
23468 return c > 3 && r && Object.defineProperty(target, key, r), r;
23469};
23470
23471
23472
23473
23474
23475
23476
23477
23478function unwrapUserComp(comp) {
23479 var compAsAny = comp;
23480 var isProxy = compAsAny != null && compAsAny.getFrameworkComponentInstance != null;
23481 return isProxy ? compAsAny.getFrameworkComponentInstance() : comp;
23482}
23483var GridApi = /** @class */ (function () {
23484 function GridApi() {
23485 this.detailGridInfoMap = {};
23486 this.destroyCalled = false;
23487 }
23488 GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {
23489 this.overlayWrapperComp = overlayWrapperComp;
23490 };
23491 GridApi.prototype.registerSideBarComp = function (sideBarComp) {
23492 this.sideBarComp = sideBarComp;
23493 };
23494 GridApi.prototype.init = function () {
23495 var _this = this;
23496 switch (this.rowModel.getType()) {
23497 case 'clientSide':
23498 this.clientSideRowModel = this.rowModel;
23499 break;
23500 case 'infinite':
23501 this.infiniteRowModel = this.rowModel;
23502 break;
23503 case 'serverSide':
23504 this.serverSideRowModel = this.rowModel;
23505 break;
23506 }
23507 this.ctrlsService.whenReady(function () {
23508 _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();
23509 });
23510 };
23511 /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */
23512 GridApi.prototype.__getAlignedGridService = function () {
23513 return this.alignedGridsService;
23514 };
23515 /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */
23516 GridApi.prototype.__getContext = function () {
23517 return this.context;
23518 };
23519 GridApi.prototype.getSetterMethod = function (key) {
23520 return "set" + key.charAt(0).toUpperCase() + key.substring(1);
23521 };
23522 /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */
23523 GridApi.prototype.__setProperty = function (propertyName, value) {
23524 // Ensure the GridOptions property gets updated and fires the change event as we
23525 // cannot assume that the dynamic Api call will updated GridOptions.
23526 this.gridOptionsService.set(propertyName, value);
23527 // If the dynamic api does update GridOptions then change detection in the
23528 // GridOptionsService will prevent the event being fired twice.
23529 var setterName = this.getSetterMethod(propertyName);
23530 var dynamicApi = this;
23531 if (dynamicApi[setterName]) {
23532 dynamicApi[setterName](value);
23533 }
23534 };
23535 /** Register a detail grid with the master grid when it is created. */
23536 GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {
23537 this.detailGridInfoMap[id] = gridInfo;
23538 };
23539 /** Unregister a detail grid from the master grid when it is destroyed. */
23540 GridApi.prototype.removeDetailGridInfo = function (id) {
23541 this.detailGridInfoMap[id] = undefined;
23542 };
23543 /** Returns the `DetailGridInfo` corresponding to the supplied `detailGridId`. */
23544 GridApi.prototype.getDetailGridInfo = function (id) {
23545 return this.detailGridInfoMap[id];
23546 };
23547 /** Iterates through each `DetailGridInfo` in the grid and calls the supplied callback on each. */
23548 GridApi.prototype.forEachDetailGridInfo = function (callback) {
23549 var index = 0;
23550 Object(_utils_object__WEBPACK_IMPORTED_MODULE_7__["iterateObject"])(this.detailGridInfoMap, function (id, gridInfo) {
23551 // check for undefined, as old references will still be lying around
23552 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(gridInfo)) {
23553 callback(gridInfo, index);
23554 index++;
23555 }
23556 });
23557 };
23558 /** Similar to `exportDataAsCsv`, except returns the result as a string rather than download it. */
23559 GridApi.prototype.getDataAsCsv = function (params) {
23560 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].CsvExportModule, 'api.getDataAsCsv')) {
23561 return this.csvCreator.getDataAsCsv(params);
23562 }
23563 };
23564 /** Downloads a CSV export of the grid's data. */
23565 GridApi.prototype.exportDataAsCsv = function (params) {
23566 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].CsvExportModule, 'api.exportDataAsCSv')) {
23567 this.csvCreator.exportDataAsCsv(params);
23568 }
23569 };
23570 GridApi.prototype.getExcelExportMode = function (params) {
23571 var baseParams = this.gridOptionsService.get('defaultExcelExportParams');
23572 var mergedParams = Object.assign({ exportMode: 'xlsx' }, baseParams, params);
23573 return mergedParams.exportMode;
23574 };
23575 GridApi.prototype.assertNotExcelMultiSheet = function (method, params) {
23576 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ExcelExportModule, 'api.' + method)) {
23577 return false;
23578 }
23579 var exportMode = this.getExcelExportMode(params);
23580 if (this.excelCreator.getFactoryMode(exportMode) === _interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET) {
23581 console.warn("AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling 'api.getMultipleSheetAsExcel()' or 'api.exportMultipleSheetsAsExcel()'");
23582 return false;
23583 }
23584 return true;
23585 };
23586 /** Similar to `exportDataAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */
23587 GridApi.prototype.getDataAsExcel = function (params) {
23588 if (this.assertNotExcelMultiSheet('getDataAsExcel', params)) {
23589 return this.excelCreator.getDataAsExcel(params);
23590 }
23591 };
23592 /** Downloads an Excel export of the grid's data. */
23593 GridApi.prototype.exportDataAsExcel = function (params) {
23594 if (this.assertNotExcelMultiSheet('exportDataAsExcel', params)) {
23595 this.excelCreator.exportDataAsExcel(params);
23596 }
23597 };
23598 /** This is method to be used to get the grid's data as a sheet, that will later be exported either by `getMultipleSheetsAsExcel()` or `exportMultipleSheetsAsExcel()`. */
23599 GridApi.prototype.getSheetDataForExcel = function (params) {
23600 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ExcelExportModule, 'api.getSheetDataForExcel')) {
23601 return;
23602 }
23603 var exportMode = this.getExcelExportMode(params);
23604 this.excelCreator.setFactoryMode(_interfaces_iExcelCreator__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"].MULTI_SHEET, exportMode);
23605 return this.excelCreator.getSheetDataForExcel(params);
23606 };
23607 /** Similar to `exportMultipleSheetsAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */
23608 GridApi.prototype.getMultipleSheetsAsExcel = function (params) {
23609 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ExcelExportModule, 'api.getMultipleSheetsAsExcel')) {
23610 return this.excelCreator.getMultipleSheetsAsExcel(params);
23611 }
23612 };
23613 /** Downloads an Excel export of multiple sheets in one file. */
23614 GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {
23615 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ExcelExportModule, 'api.exportMultipleSheetsAsExcel')) {
23616 return this.excelCreator.exportMultipleSheetsAsExcel(params);
23617 }
23618 };
23619 /**
23620 * Sets an ARIA property in the grid panel (element with `role=\"grid\"`), and removes an ARIA property when the value is null.
23621 *
23622 * Example: `api.setGridAriaProperty('label', 'my grid')` will set `aria-label=\"my grid\"`.
23623 *
23624 * `api.setGridAriaProperty('label', null)` will remove the `aria-label` attribute from the grid element.
23625 */
23626 GridApi.prototype.setGridAriaProperty = function (property, value) {
23627 if (!property) {
23628 return;
23629 }
23630 var eGrid = this.ctrlsService.getGridBodyCtrl().getGui();
23631 var ariaProperty = "aria-" + property;
23632 if (value === null) {
23633 eGrid.removeAttribute(ariaProperty);
23634 }
23635 else {
23636 eGrid.setAttribute(ariaProperty, value);
23637 }
23638 };
23639 GridApi.prototype.logMissingRowModel = function (apiMethod) {
23640 var requiredRowModels = [];
23641 for (var _i = 1; _i < arguments.length; _i++) {
23642 requiredRowModels[_i - 1] = arguments[_i];
23643 }
23644 console.error("AG Grid: api." + apiMethod + " can only be called when gridOptions.rowModelType is " + requiredRowModels.join(' or '));
23645 };
23646 /** Set new datasource for Server-Side Row Model. */
23647 GridApi.prototype.setServerSideDatasource = function (datasource) {
23648 if (this.serverSideRowModel) {
23649 this.serverSideRowModel.setDatasource(datasource);
23650 }
23651 else {
23652 this.logMissingRowModel('setServerSideDatasource', 'serverSide');
23653 }
23654 };
23655 /**
23656 * Updates the `cacheBlockSize` when requesting data from the server if `suppressServerSideInfiniteScroll` is not enabled.
23657 *
23658 * Note this purges all the cached data and reloads all the rows of the grid.
23659 * */
23660 GridApi.prototype.setCacheBlockSize = function (blockSize) {
23661 if (this.serverSideRowModel) {
23662 this.gridOptionsService.set('cacheBlockSize', blockSize);
23663 this.serverSideRowModel.resetRootStore();
23664 }
23665 else {
23666 this.logMissingRowModel('setCacheBlockSize', 'serverSide');
23667 }
23668 };
23669 /** Set new datasource for Infinite Row Model. */
23670 GridApi.prototype.setDatasource = function (datasource) {
23671 if (this.gridOptionsService.isRowModelType('infinite')) {
23672 this.rowModel.setDatasource(datasource);
23673 }
23674 else {
23675 this.logMissingRowModel('setDatasource', 'infinite');
23676 }
23677 };
23678 /** Set new datasource for Viewport Row Model. */
23679 GridApi.prototype.setViewportDatasource = function (viewportDatasource) {
23680 if (this.gridOptionsService.isRowModelType('viewport')) {
23681 // this is bad coding, because it's using an interface that's exposed in the enterprise.
23682 // really we should create an interface in the core for viewportDatasource and let
23683 // the enterprise implement it, rather than casting to 'any' here
23684 this.rowModel.setViewportDatasource(viewportDatasource);
23685 }
23686 else {
23687 this.logMissingRowModel('setViewportDatasource', 'viewport');
23688 }
23689 };
23690 /** Set the row data. */
23691 GridApi.prototype.setRowData = function (rowData) {
23692 // immutable service is part of the CSRM module, if missing, no CSRM
23693 var missingImmutableService = this.immutableService == null;
23694 if (missingImmutableService) {
23695 this.logMissingRowModel('setRowData', 'clientSide');
23696 return;
23697 }
23698 // if no keys provided provided for rows, then we can tread the operation as Immutable
23699 if (this.immutableService.isActive()) {
23700 this.immutableService.setRowData(rowData);
23701 }
23702 else {
23703 this.selectionService.reset();
23704 this.clientSideRowModel.setRowData(rowData);
23705 }
23706 };
23707 /** Set the top pinned rows. Call with no rows / undefined to clear top pinned rows. */
23708 GridApi.prototype.setPinnedTopRowData = function (rows) {
23709 this.pinnedRowModel.setPinnedTopRowData(rows);
23710 };
23711 /** Set the bottom pinned rows. Call with no rows / undefined to clear bottom pinned rows. */
23712 GridApi.prototype.setPinnedBottomRowData = function (rows) {
23713 this.pinnedRowModel.setPinnedBottomRowData(rows);
23714 };
23715 /** Gets the number of top pinned rows. */
23716 GridApi.prototype.getPinnedTopRowCount = function () {
23717 return this.pinnedRowModel.getPinnedTopRowCount();
23718 };
23719 /** Gets the number of bottom pinned rows. */
23720 GridApi.prototype.getPinnedBottomRowCount = function () {
23721 return this.pinnedRowModel.getPinnedBottomRowCount();
23722 };
23723 /** Gets the top pinned row with the specified index. */
23724 GridApi.prototype.getPinnedTopRow = function (index) {
23725 return this.pinnedRowModel.getPinnedTopRow(index);
23726 };
23727 /** Gets the top pinned row with the specified index. */
23728 GridApi.prototype.getPinnedBottomRow = function (index) {
23729 return this.pinnedRowModel.getPinnedBottomRow(index);
23730 };
23731 /**
23732 * Call to set new column definitions. The grid will redraw all the column headers, and then redraw all of the rows.
23733 */
23734 GridApi.prototype.setColumnDefs = function (colDefs, source) {
23735 if (source === void 0) { source = "api"; }
23736 this.columnModel.setColumnDefs(colDefs, source);
23737 // Keep gridOptions.columnDefs in sync
23738 this.gridOptionsService.set('columnDefs', colDefs, true, { source: source });
23739 };
23740 /** Call to set new auto group column definition. The grid will recreate any auto-group columns if present. */
23741 GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {
23742 if (source === void 0) { source = "api"; }
23743 this.gridOptionsService.set('autoGroupColumnDef', colDef, true, { source: source });
23744 };
23745 /** Call to set new Default Column Definition. */
23746 GridApi.prototype.setDefaultColDef = function (colDef, source) {
23747 if (source === void 0) { source = "api"; }
23748 this.gridOptionsService.set('defaultColDef', colDef, true, { source: source });
23749 };
23750 /** Call to set new Column Types. */
23751 GridApi.prototype.setColumnTypes = function (columnTypes, source) {
23752 if (source === void 0) { source = "api"; }
23753 this.gridOptionsService.set('columnTypes', columnTypes, true, { source: source });
23754 };
23755 GridApi.prototype.expireValueCache = function () {
23756 this.valueCache.expire();
23757 };
23758 /**
23759 * Returns an object with two properties:
23760 * - `top`: The top pixel position of the current scroll in the grid
23761 * - `bottom`: The bottom pixel position of the current scroll in the grid
23762 */
23763 GridApi.prototype.getVerticalPixelRange = function () {
23764 return this.gridBodyCtrl.getScrollFeature().getVScrollPosition();
23765 };
23766 /**
23767 * Returns an object with two properties:
23768 * - `left`: The left pixel position of the current scroll in the grid
23769 * - `right`: The right pixel position of the current scroll in the grid
23770 */
23771 GridApi.prototype.getHorizontalPixelRange = function () {
23772 return this.gridBodyCtrl.getScrollFeature().getHScrollPosition();
23773 };
23774 /** If `true`, the horizontal scrollbar will always be present, even if not required. Otherwise, it will only be displayed when necessary. */
23775 GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {
23776 this.gridOptionsService.set('alwaysShowHorizontalScroll', show);
23777 };
23778 /** If `true`, the vertical scrollbar will always be present, even if not required. Otherwise it will only be displayed when necessary. */
23779 GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {
23780 this.gridOptionsService.set('alwaysShowVerticalScroll', show);
23781 };
23782 /** Performs change detection on all cells, refreshing cells where required. */
23783 GridApi.prototype.refreshCells = function (params) {
23784 if (params === void 0) { params = {}; }
23785 this.rowRenderer.refreshCells(params);
23786 };
23787 /** Flash rows, columns or individual cells. */
23788 GridApi.prototype.flashCells = function (params) {
23789 if (params === void 0) { params = {}; }
23790 this.rowRenderer.flashCells(params);
23791 };
23792 /** Remove row(s) from the DOM and recreate them again from scratch. */
23793 GridApi.prototype.redrawRows = function (params) {
23794 if (params === void 0) { params = {}; }
23795 var rowNodes = params ? params.rowNodes : undefined;
23796 this.rowRenderer.redrawRows(rowNodes);
23797 };
23798 GridApi.prototype.setFunctionsReadOnly = function (readOnly) {
23799 this.gridOptionsService.set('functionsReadOnly', readOnly);
23800 };
23801 /** Redraws the header. Useful if a column name changes, or something else that changes how the column header is displayed. */
23802 GridApi.prototype.refreshHeader = function () {
23803 this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (c) { return c.refresh(); });
23804 };
23805 /** Returns `true` if any filter is set. This includes quick filter, advanced filter or external filter. */
23806 GridApi.prototype.isAnyFilterPresent = function () {
23807 return this.filterManager.isAnyFilterPresent();
23808 };
23809 /** Returns `true` if any column filter is set, otherwise `false`. */
23810 GridApi.prototype.isColumnFilterPresent = function () {
23811 return this.filterManager.isColumnFilterPresent() || this.filterManager.isAggregateFilterPresent();
23812 };
23813 /** Returns `true` if the Quick Filter is set, otherwise `false`. */
23814 GridApi.prototype.isQuickFilterPresent = function () {
23815 return this.filterManager.isQuickFilterPresent();
23816 };
23817 /**
23818 * Returns the row model inside the table.
23819 * From here you can see the original rows, rows after filter has been applied,
23820 * rows after aggregation has been applied, and the final set of 'to be displayed' rows.
23821 */
23822 GridApi.prototype.getModel = function () {
23823 return this.rowModel;
23824 };
23825 /** Expand or collapse a specific row node, optionally expanding/collapsing all of its parent nodes. */
23826 GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded, expandParents) {
23827 if (rowNode) {
23828 // expand all parents recursively, except root node.
23829 if (expandParents && rowNode.parent && rowNode.parent.level !== -1) {
23830 this.setRowNodeExpanded(rowNode.parent, expanded, expandParents);
23831 }
23832 rowNode.setExpanded(expanded);
23833 }
23834 };
23835 /**
23836 * Informs the grid that row group expanded state has changed and it needs to rerender the group nodes.
23837 * Typically called after updating the row node expanded state explicitly, i.e `rowNode.expanded = false`,
23838 * across multiple groups and you want to update the grid view in a single rerender instead of on every group change.
23839 */
23840 GridApi.prototype.onGroupExpandedOrCollapsed = function () {
23841 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.clientSideRowModel)) {
23842 this.logMissingRowModel('onGroupExpandedOrCollapsed', 'clientSide');
23843 return;
23844 }
23845 // we don't really want the user calling this if only one rowNode was expanded, instead they should be
23846 // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole
23847 // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,
23848 // and thus the expand icon in the group cell won't get 'opened' or 'closed'.
23849 this.clientSideRowModel.refreshModel({ step: _interfaces_iClientSideRowModel__WEBPACK_IMPORTED_MODULE_2__["ClientSideRowModelSteps"].MAP });
23850 };
23851 /**
23852 * Refresh the Client-Side Row Model, executing the grouping, filtering and sorting again.
23853 * Optionally provide the step you wish the refresh to apply from. Defaults to `everything`.
23854 */
23855 GridApi.prototype.refreshClientSideRowModel = function (step) {
23856 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.clientSideRowModel)) {
23857 this.logMissingRowModel('refreshClientSideRowModel', 'clientSide');
23858 return;
23859 }
23860 this.clientSideRowModel.refreshModel(step);
23861 };
23862 /** Returns `true` when there are no more animation frames left to process. */
23863 GridApi.prototype.isAnimationFrameQueueEmpty = function () {
23864 return this.animationFrameService.isQueueEmpty();
23865 };
23866 GridApi.prototype.flushAllAnimationFrames = function () {
23867 this.animationFrameService.flushAllFrames();
23868 };
23869 /**
23870 * Returns the row node with the given ID.
23871 * The row node ID is the one you provide from the callback `getRowId(params)`,
23872 * otherwise the ID is a number (cast as string) auto-generated by the grid when
23873 * the row data is set.
23874 */
23875 GridApi.prototype.getRowNode = function (id) {
23876 return this.rowModel.getRowNode(id);
23877 };
23878 /**
23879 * Gets the sizes that various UI elements will be rendered at with the current theme.
23880 * If you override the row or header height using `gridOptions`, the override value you provided will be returned.
23881 */
23882 GridApi.prototype.getSizesForCurrentTheme = function () {
23883 return {
23884 rowHeight: this.gridOptionsService.getRowHeightAsNumber(),
23885 headerHeight: this.columnModel.getHeaderHeight()
23886 };
23887 };
23888 /** Expand all groups. */
23889 GridApi.prototype.expandAll = function () {
23890 if (this.clientSideRowModel) {
23891 this.clientSideRowModel.expandOrCollapseAll(true);
23892 }
23893 else if (this.serverSideRowModel) {
23894 this.serverSideRowModel.expandAll(true);
23895 }
23896 else {
23897 this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');
23898 }
23899 };
23900 /** Collapse all groups. */
23901 GridApi.prototype.collapseAll = function () {
23902 if (this.clientSideRowModel) {
23903 this.clientSideRowModel.expandOrCollapseAll(false);
23904 }
23905 else if (this.serverSideRowModel) {
23906 this.serverSideRowModel.expandAll(false);
23907 }
23908 else {
23909 this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');
23910 }
23911 };
23912 /**
23913 * Registers a callback to a virtual row.
23914 * A virtual row is a row that is visually rendered on the screen (rows that are not visible because of the scroll position are not rendered).
23915 * Unlike normal events, you do not need to unregister rendered row listeners.
23916 * When the rendered row is removed from the grid, all associated rendered row listeners will also be removed.
23917 * listen for this event if your `cellRenderer` needs to do cleanup when the row no longer exists.
23918 */
23919 GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {
23920 this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);
23921 };
23922 /** Get the current Quick Filter text from the grid, or `undefined` if none is set. */
23923 GridApi.prototype.getQuickFilter = function () {
23924 return this.gridOptionsService.get('quickFilterText');
23925 };
23926 /** Pass a Quick Filter text into the grid for filtering. */
23927 GridApi.prototype.setQuickFilter = function (newFilter) {
23928 this.gridOptionsService.set('quickFilterText', newFilter);
23929 };
23930 /**
23931 * Updates the `excludeHiddenColumnsFromQuickFilter` grid option.
23932 * Set to `true` to exclude hidden columns from being checked by the Quick Filter (or `false` to include them).
23933 * This can give a significant performance improvement when there are a large number of hidden columns,
23934 * and you are only interested in filtering on what's visible.
23935 */
23936 GridApi.prototype.setExcludeHiddenColumnsFromQuickFilter = function (value) {
23937 this.gridOptionsService.set('excludeHiddenColumnsFromQuickFilter', value);
23938 };
23939 /**
23940 * Select all rows, regardless of filtering and rows that are not visible due to grouping being enabled and their groups not expanded.
23941 * @param source Source property that will appear in the `selectionChanged` event. Default: `'apiSelectAll'`
23942 */
23943 GridApi.prototype.selectAll = function (source) {
23944 if (source === void 0) { source = 'apiSelectAll'; }
23945 this.selectionService.selectAllRowNodes({ source: source });
23946 };
23947 /**
23948 * Clear all row selections, regardless of filtering.
23949 * @param source Source property that will appear in the `selectionChanged` event. Default: `'apiSelectAll'`
23950 */
23951 GridApi.prototype.deselectAll = function (source) {
23952 if (source === void 0) { source = 'apiSelectAll'; }
23953 this.selectionService.deselectAllRowNodes({ source: source });
23954 };
23955 /**
23956 * Select all filtered rows.
23957 * @param source Source property that will appear in the `selectionChanged` event. Default: `'apiSelectAllFiltered'`
23958 */
23959 GridApi.prototype.selectAllFiltered = function (source) {
23960 if (source === void 0) { source = 'apiSelectAllFiltered'; }
23961 this.selectionService.selectAllRowNodes({ source: source, justFiltered: true });
23962 };
23963 /**
23964 * Clear all filtered selections.
23965 * @param source Source property that will appear in the `selectionChanged` event. Default: `'apiSelectAllFiltered'`
23966 */
23967 GridApi.prototype.deselectAllFiltered = function (source) {
23968 if (source === void 0) { source = 'apiSelectAllFiltered'; }
23969 this.selectionService.deselectAllRowNodes({ source: source, justFiltered: true });
23970 };
23971 /**
23972 * Returns an object containing rules matching the selected rows in the SSRM.
23973 *
23974 * If `groupSelectsChildren=false` the returned object will be flat, and will conform to IServerSideSelectionState.
23975 * If `groupSelectsChildren=true` the retuned object will be hierarchical, and will conform to IServerSideGroupSelectionState.
23976 */
23977 GridApi.prototype.getServerSideSelectionState = function () {
23978 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.serverSideRowModel)) {
23979 this.logMissingRowModel('getServerSideSelectionState', 'serverSide');
23980 return null;
23981 }
23982 return this.selectionService.getServerSideSelectionState();
23983 };
23984 /**
23985 * Set the rules matching the selected rows in the SSRM.
23986 *
23987 * If `groupSelectsChildren=false` the param will be flat, and should conform to IServerSideSelectionState.
23988 * If `groupSelectsChildren=true` the param will be hierarchical, and should conform to IServerSideGroupSelectionState.
23989 */
23990 GridApi.prototype.setServerSideSelectionState = function (state) {
23991 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.serverSideRowModel)) {
23992 this.logMissingRowModel('setServerSideSelectionState', 'serverSide');
23993 return;
23994 }
23995 this.selectionService.setServerSideSelectionState(state);
23996 };
23997 /**
23998 * Select all rows on the current page.
23999 * @param source Source property that will appear in the `selectionChanged` event. Default: `'apiSelectAllCurrentPage'`
24000 */
24001 GridApi.prototype.selectAllOnCurrentPage = function (source) {
24002 if (source === void 0) { source = 'apiSelectAllCurrentPage'; }
24003 this.selectionService.selectAllRowNodes({ source: source, justCurrentPage: true });
24004 };
24005 /**
24006 * Clear all filtered on the current page.
24007 * @param source Source property that will appear in the `selectionChanged` event. Default: `'apiSelectAllCurrentPage'`
24008 */
24009 GridApi.prototype.deselectAllOnCurrentPage = function (source) {
24010 if (source === void 0) { source = 'apiSelectAllCurrentPage'; }
24011 this.selectionService.deselectAllRowNodes({ source: source, justCurrentPage: true });
24012 };
24013 /**
24014 * Sets columns to adjust in size to fit the grid horizontally.
24015 **/
24016 GridApi.prototype.sizeColumnsToFit = function (params) {
24017 this.gridBodyCtrl.sizeColumnsToFit(params);
24018 };
24019 /** Show the 'loading' overlay. */
24020 GridApi.prototype.showLoadingOverlay = function () {
24021 this.overlayWrapperComp.showLoadingOverlay();
24022 };
24023 /** Show the 'no rows' overlay. */
24024 GridApi.prototype.showNoRowsOverlay = function () {
24025 this.overlayWrapperComp.showNoRowsOverlay();
24026 };
24027 /** Hides the overlay if showing. */
24028 GridApi.prototype.hideOverlay = function () {
24029 this.overlayWrapperComp.hideOverlay();
24030 };
24031 /**
24032 * Returns an unsorted list of selected nodes.
24033 * Getting the underlying node (rather than the data) is useful when working with tree / aggregated data,
24034 * as the node can be traversed.
24035 */
24036 GridApi.prototype.getSelectedNodes = function () {
24037 return this.selectionService.getSelectedNodes();
24038 };
24039 /** Returns an unsorted list of selected rows (i.e. row data that you provided). */
24040 GridApi.prototype.getSelectedRows = function () {
24041 return this.selectionService.getSelectedRows();
24042 };
24043 /**
24044 * Returns a list of all selected nodes at 'best cost', a feature to be used with groups / trees.
24045 * If a group has all its children selected, then the group appears in the result, but not the children.
24046 * Designed for use with `'children'` as the group selection type, where groups don't actually appear in the selection normally.
24047 */
24048 GridApi.prototype.getBestCostNodeSelection = function () {
24049 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.clientSideRowModel)) {
24050 this.logMissingRowModel('getBestCostNodeSelection', 'clientSide');
24051 return;
24052 }
24053 return this.selectionService.getBestCostNodeSelection();
24054 };
24055 /** Retrieve rendered nodes. Due to virtualisation this will contain only the current visible rows and those in the buffer. */
24056 GridApi.prototype.getRenderedNodes = function () {
24057 return this.rowRenderer.getRenderedNodes();
24058 };
24059 /**
24060 * Ensures the column is visible by scrolling the table if needed.
24061 *
24062 * This will have no effect before the firstDataRendered event has fired.
24063 *
24064 * @param key - The column to ensure visible
24065 * @param position - Where the column will be positioned.
24066 * - `auto` - Scrolls the minimum amount to make sure the column is visible.
24067 * - `start` - Scrolls the column to the start of the viewport.
24068 * - `middle` - Scrolls the column to the middle of the viewport.
24069 * - `end` - Scrolls the column to the end of the viewport.
24070 */
24071 GridApi.prototype.ensureColumnVisible = function (key, position) {
24072 if (position === void 0) { position = 'auto'; }
24073 this.gridBodyCtrl.getScrollFeature().ensureColumnVisible(key, position);
24074 };
24075 /**
24076 * Vertically scrolls the grid until the provided row index is inside the visible viewport.
24077 * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.
24078 * This will have no effect before the firstDataRendered event has fired.
24079 */
24080 GridApi.prototype.ensureIndexVisible = function (index, position) {
24081 this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(index, position);
24082 };
24083 /**
24084 * Vertically scrolls the grid until the provided row (or a row matching the provided comparator) is inside the visible viewport.
24085 * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.
24086 * This will have no effect before the firstDataRendered event has fired.
24087 */
24088 GridApi.prototype.ensureNodeVisible = function (nodeSelector, position) {
24089 if (position === void 0) { position = null; }
24090 this.gridBodyCtrl.getScrollFeature().ensureNodeVisible(nodeSelector, position);
24091 };
24092 /**
24093 * Similar to `forEachNode`, except lists all the leaf nodes.
24094 * This effectively goes through all the data that you provided to the grid before the grid performed any grouping.
24095 * If using tree data, goes through all the nodes for the data you provided, including nodes that have children,
24096 * but excluding groups the grid created where gaps were missing in the hierarchy.
24097 */
24098 GridApi.prototype.forEachLeafNode = function (callback) {
24099 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.clientSideRowModel)) {
24100 this.logMissingRowModel('forEachLeafNode', 'clientSide');
24101 return;
24102 }
24103 this.clientSideRowModel.forEachLeafNode(callback);
24104 };
24105 /**
24106 * Iterates through each node (row) in the grid and calls the callback for each node.
24107 * This works similar to the `forEach` method on a JavaScript array.
24108 * This is called for every node, ignoring any filtering or sorting applied within the grid.
24109 * If using the Infinite Row Model, then this gets called for each page loaded in the page cache.
24110 */
24111 GridApi.prototype.forEachNode = function (callback, includeFooterNodes) {
24112 this.rowModel.forEachNode(callback, includeFooterNodes);
24113 };
24114 /** Similar to `forEachNode`, except skips any filtered out data. */
24115 GridApi.prototype.forEachNodeAfterFilter = function (callback) {
24116 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.clientSideRowModel)) {
24117 this.logMissingRowModel('forEachNodeAfterFilter', 'clientSide');
24118 return;
24119 }
24120 this.clientSideRowModel.forEachNodeAfterFilter(callback);
24121 };
24122 /** Similar to `forEachNodeAfterFilter`, except the callbacks are called in the order the rows are displayed in the grid. */
24123 GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {
24124 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(this.clientSideRowModel)) {
24125 this.logMissingRowModel('forEachNodeAfterFilterAndSort', 'clientSide');
24126 return;
24127 }
24128 this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);
24129 };
24130 /**
24131 * Returns the filter component instance for a column.
24132 * `key` can be a string field name or a ColDef object (matches on object reference, useful if field names are not unique).
24133 * If your filter is created asynchronously, `getFilterInstance` will return `null` so you will need to use the `callback` to access the filter instance instead.
24134 */
24135 GridApi.prototype.getFilterInstance = function (key, callback) {
24136 var res = this.getFilterInstanceImpl(key, function (instance) {
24137 if (!callback) {
24138 return;
24139 }
24140 var unwrapped = unwrapUserComp(instance);
24141 callback(unwrapped);
24142 });
24143 var unwrapped = unwrapUserComp(res);
24144 return unwrapped;
24145 };
24146 GridApi.prototype.getFilterInstanceImpl = function (key, callback) {
24147 var column = this.columnModel.getPrimaryColumn(key);
24148 if (!column) {
24149 return undefined;
24150 }
24151 var filterPromise = this.filterManager.getFilterComponent(column, 'NO_UI');
24152 var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });
24153 if (currentValue) {
24154 setTimeout(callback, 0, currentValue);
24155 }
24156 else if (filterPromise) {
24157 filterPromise.then(function (comp) {
24158 callback(comp);
24159 });
24160 }
24161 return currentValue;
24162 };
24163 /** Destroys a filter. Useful to force a particular filter to be created from scratch again. */
24164 GridApi.prototype.destroyFilter = function (key) {
24165 var column = this.columnModel.getPrimaryColumn(key);
24166 if (column) {
24167 return this.filterManager.destroyFilter(column, 'api');
24168 }
24169 };
24170 /** Gets the status panel instance corresponding to the supplied `id`. */
24171 GridApi.prototype.getStatusPanel = function (key) {
24172 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].StatusBarModule, 'api.getStatusPanel')) {
24173 return;
24174 }
24175 var comp = this.statusBarService.getStatusPanel(key);
24176 return unwrapUserComp(comp);
24177 };
24178 GridApi.prototype.getColumnDef = function (key) {
24179 var column = this.columnModel.getPrimaryColumn(key);
24180 if (column) {
24181 return column.getColDef();
24182 }
24183 return null;
24184 };
24185 /**
24186 * Returns the current column definitions.
24187 */
24188 GridApi.prototype.getColumnDefs = function () { return this.columnModel.getColumnDefs(); };
24189 /** Informs the grid that a filter has changed. This is typically called after a filter change through one of the filter APIs. */
24190 GridApi.prototype.onFilterChanged = function () {
24191 this.filterManager.onFilterChanged();
24192 };
24193 /**
24194 * Gets the grid to act as if the sort was changed.
24195 * Useful if you update some values and want to get the grid to reorder them according to the new values.
24196 */
24197 GridApi.prototype.onSortChanged = function () {
24198 this.sortController.onSortChanged('api');
24199 };
24200 /** Sets the state of all the advanced filters. Provide it with what you get from `getFilterModel()` to restore filter state. */
24201 GridApi.prototype.setFilterModel = function (model) {
24202 this.filterManager.setFilterModel(model);
24203 };
24204 /** Gets the current state of all the advanced filters. Used for saving filter state. */
24205 GridApi.prototype.getFilterModel = function () {
24206 return this.filterManager.getFilterModel();
24207 };
24208 /** Returns the focused cell (or the last focused cell if the grid lost focus). */
24209 GridApi.prototype.getFocusedCell = function () {
24210 return this.focusService.getFocusedCell();
24211 };
24212 /** Clears the focused cell. */
24213 GridApi.prototype.clearFocusedCell = function () {
24214 return this.focusService.clearFocusedCell();
24215 };
24216 /** Sets the focus to the specified cell. `rowPinned` can be either 'top', 'bottom' or null (for not pinned). */
24217 GridApi.prototype.setFocusedCell = function (rowIndex, colKey, rowPinned) {
24218 this.focusService.setFocusedCell({ rowIndex: rowIndex, column: colKey, rowPinned: rowPinned, forceBrowserFocus: true });
24219 };
24220 /** Sets the `suppressRowDrag` property. */
24221 GridApi.prototype.setSuppressRowDrag = function (value) {
24222 this.gridOptionsService.set('suppressRowDrag', value);
24223 };
24224 /** Sets the `suppressMoveWhenRowDragging` property. */
24225 GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {
24226 this.gridOptionsService.set('suppressMoveWhenRowDragging', value);
24227 };
24228 /** Sets the `suppressRowClickSelection` property. */
24229 GridApi.prototype.setSuppressRowClickSelection = function (value) {
24230 this.gridOptionsService.set('suppressRowClickSelection', value);
24231 };
24232 /** Adds a drop zone outside of the grid where rows can be dropped. */
24233 GridApi.prototype.addRowDropZone = function (params) {
24234 this.gridBodyCtrl.getRowDragFeature().addRowDropZone(params);
24235 };
24236 /** Removes an external drop zone added by `addRowDropZone`. */
24237 GridApi.prototype.removeRowDropZone = function (params) {
24238 var activeDropTarget = this.dragAndDropService.findExternalZone(params);
24239 if (activeDropTarget) {
24240 this.dragAndDropService.removeDropTarget(activeDropTarget);
24241 }
24242 };
24243 /** Returns the `RowDropZoneParams` to be used by another grid's `addRowDropZone` method. */
24244 GridApi.prototype.getRowDropZoneParams = function (events) {
24245 return this.gridBodyCtrl.getRowDragFeature().getRowDropZone(events);
24246 };
24247 /** Sets the height in pixels for the row containing the column label header. */
24248 GridApi.prototype.setHeaderHeight = function (headerHeight) {
24249 this.gridOptionsService.set('headerHeight', headerHeight);
24250 };
24251 /**
24252 * Switch between layout options: `normal`, `autoHeight`, `print`.
24253 * Defaults to `normal` if no domLayout provided.
24254 */
24255 GridApi.prototype.setDomLayout = function (domLayout) {
24256 this.gridOptionsService.set('domLayout', domLayout);
24257 };
24258 /** Sets the `enableCellTextSelection` property. */
24259 GridApi.prototype.setEnableCellTextSelection = function (selectable) {
24260 this.gridBodyCtrl.setCellTextSelection(selectable);
24261 };
24262 /** Sets the preferred direction for the selection fill handle. */
24263 GridApi.prototype.setFillHandleDirection = function (direction) {
24264 this.gridOptionsService.set('fillHandleDirection', direction);
24265 };
24266 /** Sets the height in pixels for the rows containing header column groups. */
24267 GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {
24268 this.gridOptionsService.set('groupHeaderHeight', headerHeight);
24269 };
24270 /** Sets the height in pixels for the row containing the floating filters. */
24271 GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {
24272 this.gridOptionsService.set('floatingFiltersHeight', headerHeight);
24273 };
24274 /** Sets the height in pixels for the row containing the columns when in pivot mode. */
24275 GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {
24276 this.gridOptionsService.set('pivotHeaderHeight', headerHeight);
24277 };
24278 /** Sets the height in pixels for the row containing header column groups when in pivot mode. */
24279 GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {
24280 this.gridOptionsService.set('pivotGroupHeaderHeight', headerHeight);
24281 };
24282 GridApi.prototype.setPivotMode = function (pivotMode) {
24283 this.columnModel.setPivotMode(pivotMode);
24284 };
24285 GridApi.prototype.setAnimateRows = function (animateRows) {
24286 this.gridOptionsService.set('animateRows', animateRows);
24287 };
24288 GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {
24289 this.gridOptionsService.set('isExternalFilterPresent', isExternalFilterPresentFunc);
24290 };
24291 GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {
24292 this.gridOptionsService.set('doesExternalFilterPass', doesExternalFilterPassFunc);
24293 };
24294 GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {
24295 this.gridOptionsService.set('navigateToNextCell', navigateToNextCellFunc);
24296 };
24297 GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {
24298 this.gridOptionsService.set('tabToNextCell', tabToNextCellFunc);
24299 };
24300 GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {
24301 this.gridOptionsService.set('tabToNextHeader', tabToNextHeaderFunc);
24302 };
24303 GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {
24304 this.gridOptionsService.set('navigateToNextHeader', navigateToNextHeaderFunc);
24305 };
24306 GridApi.prototype.setRowGroupPanelShow = function (rowGroupPanelShow) {
24307 this.gridOptionsService.set('rowGroupPanelShow', rowGroupPanelShow);
24308 };
24309 /** @deprecated v27.2 - Use `setGetGroupRowAgg` instead. */
24310 GridApi.prototype.setGroupRowAggNodes = function (groupRowAggNodesFunc) {
24311 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('27.2', 'setGroupRowAggNodes', 'setGetGroupRowAgg');
24312 this.gridOptionsService.set('groupRowAggNodes', groupRowAggNodesFunc);
24313 };
24314 GridApi.prototype.setGetGroupRowAgg = function (getGroupRowAggFunc) {
24315 this.gridOptionsService.set('getGroupRowAgg', getGroupRowAggFunc);
24316 };
24317 GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {
24318 this.gridOptionsService.set('getBusinessKeyForNode', getBusinessKeyForNodeFunc);
24319 };
24320 GridApi.prototype.setGetChildCount = function (getChildCountFunc) {
24321 this.gridOptionsService.set('getChildCount', getChildCountFunc);
24322 };
24323 GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {
24324 this.gridOptionsService.set('processRowPostCreate', processRowPostCreateFunc);
24325 };
24326 /** @deprecated v27.1 Use `setGetRowId` instead */
24327 GridApi.prototype.setGetRowNodeId = function (getRowNodeIdFunc) {
24328 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('27.1', 'setGetRowNodeId', 'setGetRowId');
24329 this.gridOptionsService.set('getRowNodeId', getRowNodeIdFunc);
24330 };
24331 GridApi.prototype.setGetRowId = function (getRowIdFunc) {
24332 this.gridOptionsService.set('getRowId', getRowIdFunc);
24333 };
24334 GridApi.prototype.setGetRowClass = function (rowClassFunc) {
24335 this.gridOptionsService.set('getRowClass', rowClassFunc);
24336 };
24337 /** @deprecated v27.2 Use `setIsFullWidthRow` instead. */
24338 GridApi.prototype.setIsFullWidthCell = function (isFullWidthCellFunc) {
24339 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('27.2', 'setIsFullWidthCell', 'setIsFullWidthRow');
24340 this.gridOptionsService.set('isFullWidthCell', isFullWidthCellFunc);
24341 };
24342 GridApi.prototype.setIsFullWidthRow = function (isFullWidthRowFunc) {
24343 this.gridOptionsService.set('isFullWidthRow', isFullWidthRowFunc);
24344 };
24345 GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {
24346 this.gridOptionsService.set('isRowSelectable', isRowSelectableFunc);
24347 };
24348 GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {
24349 this.gridOptionsService.set('isRowMaster', isRowMasterFunc);
24350 };
24351 /** @deprecated v27.2 Use `setPostSortRows` instead */
24352 GridApi.prototype.setPostSort = function (postSortFunc) {
24353 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('27.2', 'setPostSort', 'setPostSortRows');
24354 this.gridOptionsService.set('postSort', postSortFunc);
24355 };
24356 GridApi.prototype.setPostSortRows = function (postSortRowsFunc) {
24357 this.gridOptionsService.set('postSortRows', postSortRowsFunc);
24358 };
24359 GridApi.prototype.setGetDocument = function (getDocumentFunc) {
24360 this.gridOptionsService.set('getDocument', getDocumentFunc);
24361 };
24362 GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {
24363 this.gridOptionsService.set('getContextMenuItems', getContextMenuItemsFunc);
24364 };
24365 GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {
24366 this.gridOptionsService.set('getMainMenuItems', getMainMenuItemsFunc);
24367 };
24368 GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {
24369 this.gridOptionsService.set('processCellForClipboard', processCellForClipboardFunc);
24370 };
24371 GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {
24372 this.gridOptionsService.set('sendToClipboard', sendToClipboardFunc);
24373 };
24374 GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {
24375 this.gridOptionsService.set('processCellFromClipboard', processCellFromClipboardFunc);
24376 };
24377 /** @deprecated v28 use `setProcessPivotResultColDef` instead */
24378 GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {
24379 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('28.0', 'setProcessSecondaryColDef', 'setProcessPivotResultColDef');
24380 this.setProcessPivotResultColDef(processSecondaryColDefFunc);
24381 };
24382 /** @deprecated v28 use `setProcessPivotResultColGroupDef` instead */
24383 GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {
24384 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('28.0', 'setProcessSecondaryColGroupDef', 'setProcessPivotResultColGroupDef');
24385 this.setProcessPivotResultColGroupDef(processSecondaryColGroupDefFunc);
24386 };
24387 GridApi.prototype.setProcessPivotResultColDef = function (processPivotResultColDefFunc) {
24388 this.gridOptionsService.set('processPivotResultColDef', processPivotResultColDefFunc);
24389 };
24390 GridApi.prototype.setProcessPivotResultColGroupDef = function (processPivotResultColGroupDefFunc) {
24391 this.gridOptionsService.set('processPivotResultColGroupDef', processPivotResultColGroupDefFunc);
24392 };
24393 GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {
24394 this.gridOptionsService.set('postProcessPopup', postProcessPopupFunc);
24395 };
24396 /** @deprecated v27.2 - Use `setInitialGroupOrderComparator` instead */
24397 GridApi.prototype.setDefaultGroupOrderComparator = function (defaultGroupOrderComparatorFunc) {
24398 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('27.2', 'setDefaultGroupOrderComparator', 'setInitialGroupOrderComparator');
24399 this.gridOptionsService.set('defaultGroupOrderComparator', defaultGroupOrderComparatorFunc);
24400 };
24401 GridApi.prototype.setInitialGroupOrderComparator = function (initialGroupOrderComparatorFunc) {
24402 this.gridOptionsService.set('initialGroupOrderComparator', initialGroupOrderComparatorFunc);
24403 };
24404 GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {
24405 this.gridOptionsService.set('getChartToolbarItems', getChartToolbarItemsFunc);
24406 };
24407 GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {
24408 this.gridOptionsService.set('paginationNumberFormatter', paginationNumberFormatterFunc);
24409 };
24410 /** @deprecated v28 use setGetServerSideGroupLevelParams instead */
24411 GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {
24412 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('28.0', 'setGetServerSideStoreParams', 'setGetServerSideGroupLevelParams');
24413 this.setGetServerSideGroupLevelParams(getServerSideStoreParamsFunc);
24414 };
24415 GridApi.prototype.setGetServerSideGroupLevelParams = function (getServerSideGroupLevelParamsFunc) {
24416 this.gridOptionsService.set('getServerSideGroupLevelParams', getServerSideGroupLevelParamsFunc);
24417 };
24418 GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {
24419 this.gridOptionsService.set('isServerSideGroupOpenByDefault', isServerSideGroupOpenByDefaultFunc);
24420 };
24421 GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {
24422 this.gridOptionsService.set('isApplyServerSideTransaction', isApplyServerSideTransactionFunc);
24423 };
24424 GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {
24425 this.gridOptionsService.set('isServerSideGroup', isServerSideGroupFunc);
24426 };
24427 GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {
24428 this.gridOptionsService.set('getServerSideGroupKey', getServerSideGroupKeyFunc);
24429 };
24430 GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {
24431 this.gridOptionsService.set('getRowStyle', rowStyleFunc);
24432 };
24433 GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {
24434 this.gridOptionsService.set('getRowHeight', rowHeightFunc);
24435 };
24436 GridApi.prototype.assertSideBarLoaded = function (apiMethod) {
24437 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].SideBarModule, 'api.' + apiMethod);
24438 };
24439 /** Returns `true` if the side bar is visible. */
24440 GridApi.prototype.isSideBarVisible = function () {
24441 return this.assertSideBarLoaded('isSideBarVisible') && this.sideBarComp.isDisplayed();
24442 };
24443 /** Show/hide the entire side bar, including any visible panel and the tab buttons. */
24444 GridApi.prototype.setSideBarVisible = function (show) {
24445 if (this.assertSideBarLoaded('setSideBarVisible')) {
24446 this.sideBarComp.setDisplayed(show);
24447 }
24448 };
24449 /** Sets the side bar position relative to the grid. Possible values are `'left'` or `'right'`. */
24450 GridApi.prototype.setSideBarPosition = function (position) {
24451 if (this.assertSideBarLoaded('setSideBarPosition')) {
24452 this.sideBarComp.setSideBarPosition(position);
24453 }
24454 };
24455 /** Opens a particular tool panel. Provide the ID of the tool panel to open. */
24456 GridApi.prototype.openToolPanel = function (key) {
24457 if (this.assertSideBarLoaded('openToolPanel')) {
24458 this.sideBarComp.openToolPanel(key, 'api');
24459 }
24460 };
24461 /** Closes the currently open tool panel (if any). */
24462 GridApi.prototype.closeToolPanel = function () {
24463 if (this.assertSideBarLoaded('closeToolPanel')) {
24464 this.sideBarComp.close('api');
24465 }
24466 };
24467 /** Returns the ID of the currently shown tool panel if any, otherwise `null`. */
24468 GridApi.prototype.getOpenedToolPanel = function () {
24469 if (this.assertSideBarLoaded('getOpenedToolPanel')) {
24470 return this.sideBarComp.openedItem();
24471 }
24472 return null;
24473 };
24474 /** Force refresh all tool panels by calling their `refresh` method. */
24475 GridApi.prototype.refreshToolPanel = function () {
24476 if (this.assertSideBarLoaded('refreshToolPanel')) {
24477 this.sideBarComp.refresh();
24478 }
24479 };
24480 /** Returns `true` if the tool panel is showing, otherwise `false`. */
24481 GridApi.prototype.isToolPanelShowing = function () {
24482 return this.assertSideBarLoaded('isToolPanelShowing') && this.sideBarComp.isToolPanelShowing();
24483 };
24484 /** Gets the tool panel instance corresponding to the supplied `id`. */
24485 GridApi.prototype.getToolPanelInstance = function (id) {
24486 if (this.assertSideBarLoaded('getToolPanelInstance')) {
24487 var comp = this.sideBarComp.getToolPanelInstance(id);
24488 return unwrapUserComp(comp);
24489 }
24490 };
24491 /** Returns the current side bar configuration. If a shortcut was used, returns the detailed long form. */
24492 GridApi.prototype.getSideBar = function () {
24493 if (this.assertSideBarLoaded('getSideBar')) {
24494 return this.sideBarComp.getDef();
24495 }
24496 return undefined;
24497 };
24498 /** Resets the side bar to the provided configuration. The parameter is the same as the sideBar grid property. The side bar is re-created from scratch with the new config. */
24499 GridApi.prototype.setSideBar = function (def) {
24500 this.gridOptionsService.set('sideBar', def);
24501 };
24502 GridApi.prototype.setSuppressClipboardPaste = function (value) {
24503 this.gridOptionsService.set('suppressClipboardPaste', value);
24504 };
24505 /** Tells the grid to recalculate the row heights. */
24506 GridApi.prototype.resetRowHeights = function () {
24507 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["exists"])(this.clientSideRowModel)) {
24508 if (this.columnModel.isAutoRowHeightActive()) {
24509 console.warn('AG Grid: calling gridApi.resetRowHeights() makes no sense when using Auto Row Height.');
24510 return;
24511 }
24512 this.clientSideRowModel.resetRowHeights();
24513 }
24514 };
24515 GridApi.prototype.setGroupRemoveSingleChildren = function (value) {
24516 this.gridOptionsService.set('groupRemoveSingleChildren', value);
24517 };
24518 GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {
24519 this.gridOptionsService.set('groupRemoveLowestSingleChildren', value);
24520 };
24521 GridApi.prototype.setGroupDisplayType = function (value) {
24522 this.gridOptionsService.set('groupDisplayType', value);
24523 };
24524 GridApi.prototype.setRowClass = function (className) {
24525 this.gridOptionsService.set('rowClass', className);
24526 };
24527 /** Sets the `deltaSort` property */
24528 GridApi.prototype.setDeltaSort = function (enable) {
24529 this.gridOptionsService.set('deltaSort', enable);
24530 };
24531 /**
24532 * Sets the `rowCount` and `lastRowIndexKnown` properties.
24533 * The second parameter, `lastRowIndexKnown`, is optional and if left out, only `rowCount` is set.
24534 * Set `rowCount` to adjust the height of the vertical scroll.
24535 * Set `lastRowIndexKnown` to enable / disable searching for more rows.
24536 * Use this method if you add or remove rows into the dataset and need to reset the number of rows or put the data back into 'look for data' mode.
24537 */
24538 GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {
24539 if (this.serverSideRowModel) {
24540 if (this.columnModel.isRowGroupEmpty()) {
24541 this.serverSideRowModel.setRowCount(rowCount, maxRowFound);
24542 return;
24543 }
24544 console.error('AG Grid: setRowCount cannot be used while using row grouping.');
24545 return;
24546 }
24547 if (this.infiniteRowModel) {
24548 this.infiniteRowModel.setRowCount(rowCount, maxRowFound);
24549 return;
24550 }
24551 this.logMissingRowModel('setRowCount', 'infinite', 'serverSide');
24552 };
24553 /** Tells the grid a row height has changed. To be used after calling `rowNode.setRowHeight(newHeight)`. */
24554 GridApi.prototype.onRowHeightChanged = function () {
24555 if (this.clientSideRowModel) {
24556 this.clientSideRowModel.onRowHeightChanged();
24557 }
24558 else if (this.serverSideRowModel) {
24559 this.serverSideRowModel.onRowHeightChanged();
24560 }
24561 };
24562 /**
24563 * Gets the value for a column for a particular `rowNode` (row).
24564 * This is useful if you want the raw value of a cell e.g. if implementing your own CSV export.
24565 */
24566 GridApi.prototype.getValue = function (colKey, rowNode) {
24567 var column = this.columnModel.getPrimaryColumn(colKey);
24568 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(column)) {
24569 column = this.columnModel.getGridColumn(colKey);
24570 }
24571 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missing"])(column)) {
24572 return null;
24573 }
24574 return this.valueService.getValue(column, rowNode);
24575 };
24576 /** Add an event listener for the specified `eventType`. Works similar to `addEventListener` for a browser DOM element. */
24577 GridApi.prototype.addEventListener = function (eventType, listener) {
24578 var async = this.gridOptionsService.useAsyncEvents();
24579 this.eventService.addEventListener(eventType, listener, async);
24580 };
24581 /** Add an event listener for all event types coming from the grid. */
24582 GridApi.prototype.addGlobalListener = function (listener) {
24583 var async = this.gridOptionsService.useAsyncEvents();
24584 this.eventService.addGlobalListener(listener, async);
24585 };
24586 /** Remove an event listener. */
24587 GridApi.prototype.removeEventListener = function (eventType, listener) {
24588 var async = this.gridOptionsService.useAsyncEvents();
24589 this.eventService.removeEventListener(eventType, listener, async);
24590 };
24591 /** Remove a global event listener. */
24592 GridApi.prototype.removeGlobalListener = function (listener) {
24593 var async = this.gridOptionsService.useAsyncEvents();
24594 this.eventService.removeGlobalListener(listener, async);
24595 };
24596 GridApi.prototype.dispatchEvent = function (event) {
24597 this.eventService.dispatchEvent(event);
24598 };
24599 /** Will destroy the grid and release resources. If you are using a framework you do not need to call this, as the grid links in with the framework lifecycle. However if you are using Web Components or native JavaScript, you do need to call this, to avoid a memory leak in your application. */
24600 GridApi.prototype.destroy = function () {
24601 // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part
24602 // of context.destroy(). so we need to stop the infinite loop.
24603 if (this.destroyCalled) {
24604 return;
24605 }
24606 this.destroyCalled = true;
24607 // destroy the UI first (as they use the services)
24608 var gridCtrl = this.ctrlsService.getGridCtrl();
24609 if (gridCtrl) {
24610 gridCtrl.destroyGridUi();
24611 }
24612 // destroy the services
24613 this.context.destroy();
24614 };
24615 GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {
24616 // some users were raising support issues with regards memory leaks. the problem was the customers applications
24617 // were keeping references to the API. trying to educate them all would be difficult, easier to just remove
24618 // all references in the API so at least the core grid can be garbage collected.
24619 //
24620 // wait about 100ms before clearing down the references, in case user has some cleanup to do,
24621 // and needs to deference the API first
24622 setTimeout(_utils_object__WEBPACK_IMPORTED_MODULE_7__["removeAllReferences"].bind(window, this, 'Grid API'), 100);
24623 };
24624 GridApi.prototype.warnIfDestroyed = function (methodName) {
24625 if (this.destroyCalled) {
24626 console.warn("AG Grid: Grid API method " + methodName + " was called on a grid that was destroyed.");
24627 }
24628 return this.destroyCalled;
24629 };
24630 /** Reset the Quick Filter cache text on every rowNode. */
24631 GridApi.prototype.resetQuickFilter = function () {
24632 if (this.warnIfDestroyed('resetQuickFilter')) {
24633 return;
24634 }
24635 this.filterManager.resetQuickFilterCache();
24636 };
24637 /** Returns the list of selected cell ranges. */
24638 GridApi.prototype.getCellRanges = function () {
24639 if (this.rangeService) {
24640 return this.rangeService.getCellRanges();
24641 }
24642 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].RangeSelectionModule, 'api.getCellRanges');
24643 return null;
24644 };
24645 /** Adds the provided cell range to the selected ranges. */
24646 GridApi.prototype.addCellRange = function (params) {
24647 if (this.rangeService) {
24648 this.rangeService.addCellRange(params);
24649 return;
24650 }
24651 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].RangeSelectionModule, 'api.addCellRange');
24652 };
24653 /** Clears the selected ranges. */
24654 GridApi.prototype.clearRangeSelection = function () {
24655 if (this.rangeService) {
24656 this.rangeService.removeAllCellRanges();
24657 }
24658 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].RangeSelectionModule, 'gridApi.clearRangeSelection');
24659 };
24660 /** Reverts the last cell edit. */
24661 GridApi.prototype.undoCellEditing = function () {
24662 this.undoRedoService.undo('api');
24663 };
24664 /** Re-applies the most recently undone cell edit. */
24665 GridApi.prototype.redoCellEditing = function () {
24666 this.undoRedoService.redo('api');
24667 };
24668 /** Returns current number of available cell edit undo operations. */
24669 GridApi.prototype.getCurrentUndoSize = function () {
24670 return this.undoRedoService.getCurrentUndoStackSize();
24671 };
24672 /** Returns current number of available cell edit redo operations. */
24673 GridApi.prototype.getCurrentRedoSize = function () {
24674 return this.undoRedoService.getCurrentRedoStackSize();
24675 };
24676 /** Returns a list of models with information about the charts that are currently rendered from the grid. */
24677 GridApi.prototype.getChartModels = function () {
24678 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.getChartModels')) {
24679 return this.chartService.getChartModels();
24680 }
24681 };
24682 /** Returns the `ChartRef` using the supplied `chartId`. */
24683 GridApi.prototype.getChartRef = function (chartId) {
24684 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.getChartRef')) {
24685 return this.chartService.getChartRef(chartId);
24686 }
24687 };
24688 /** Returns a base64-encoded image data URL for the referenced chartId. */
24689 GridApi.prototype.getChartImageDataURL = function (params) {
24690 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.getChartImageDataURL')) {
24691 return this.chartService.getChartImageDataURL(params);
24692 }
24693 };
24694 /** Starts a browser-based image download for the referenced chartId. */
24695 GridApi.prototype.downloadChart = function (params) {
24696 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.downloadChart')) {
24697 return this.chartService.downloadChart(params);
24698 }
24699 };
24700 /** Open the Chart Tool Panel. */
24701 GridApi.prototype.openChartToolPanel = function (params) {
24702 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.openChartToolPanel')) {
24703 return this.chartService.openChartToolPanel(params);
24704 }
24705 };
24706 /** Close the Chart Tool Panel. */
24707 GridApi.prototype.closeChartToolPanel = function (params) {
24708 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.closeChartToolPanel')) {
24709 return this.chartService.closeChartToolPanel(params.chartId);
24710 }
24711 };
24712 /** Used to programmatically create charts from a range. */
24713 GridApi.prototype.createRangeChart = function (params) {
24714 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.createRangeChart')) {
24715 return this.chartService.createRangeChart(params);
24716 }
24717 };
24718 /** Used to programmatically create cross filter charts from a range. */
24719 GridApi.prototype.createCrossFilterChart = function (params) {
24720 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.createCrossFilterChart')) {
24721 return this.chartService.createCrossFilterChart(params);
24722 }
24723 };
24724 /** Restores a chart using the `ChartModel` that was previously obtained from `getChartModels()`. */
24725 GridApi.prototype.restoreChart = function (chartModel, chartContainer) {
24726 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.restoreChart')) {
24727 return this.chartService.restoreChart(chartModel, chartContainer);
24728 }
24729 };
24730 /** Used to programmatically create pivot charts from a grid. */
24731 GridApi.prototype.createPivotChart = function (params) {
24732 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].GridChartsModule, 'api.createPivotChart')) {
24733 return this.chartService.createPivotChart(params);
24734 }
24735 };
24736 /** Copies data to clipboard by following the same rules as pressing Ctrl+C. */
24737 GridApi.prototype.copyToClipboard = function (params) {
24738 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ClipboardModule, 'api.copyToClipboard')) {
24739 this.clipboardService.copyToClipboard(params);
24740 }
24741 };
24742 /** Cuts data to clipboard by following the same rules as pressing Ctrl+X. */
24743 GridApi.prototype.cutToClipboard = function (params) {
24744 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ClipboardModule, 'api.cutToClipboard')) {
24745 this.clipboardService.cutToClipboard(params);
24746 }
24747 };
24748 /** Copies the selected rows to the clipboard. */
24749 GridApi.prototype.copySelectedRowsToClipboard = function (params) {
24750 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ClipboardModule, 'api.copySelectedRowsToClipboard')) {
24751 this.clipboardService.copySelectedRowsToClipboard(params);
24752 }
24753 };
24754 /** Copies the selected ranges to the clipboard. */
24755 GridApi.prototype.copySelectedRangeToClipboard = function (params) {
24756 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ClipboardModule, 'api.copySelectedRangeToClipboard')) {
24757 this.clipboardService.copySelectedRangeToClipboard(params);
24758 }
24759 };
24760 /** Copies the selected range down, similar to `Ctrl + D` in Excel. */
24761 GridApi.prototype.copySelectedRangeDown = function () {
24762 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_5__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_4__["ModuleNames"].ClipboardModule, 'api.copySelectedRangeDown')) {
24763 this.clipboardService.copyRangeDown();
24764 }
24765 };
24766 /** Shows the column menu after and positions it relative to the provided button element. Use in conjunction with your own header template. */
24767 GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {
24768 // use grid column so works with pivot mode
24769 var column = this.columnModel.getGridColumn(colKey);
24770 this.menuFactory.showMenuAfterButtonClick(column, buttonElement, 'columnMenu');
24771 };
24772 /** Shows the column menu after and positions it relative to the mouse event. Use in conjunction with your own header template. */
24773 GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {
24774 // use grid column so works with pivot mode
24775 var column = this.columnModel.getGridColumn(colKey);
24776 if (!column) {
24777 column = this.columnModel.getPrimaryColumn(colKey);
24778 }
24779 if (!column) {
24780 console.error("AG Grid: column '" + colKey + "' not found");
24781 return;
24782 }
24783 this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);
24784 };
24785 /** Hides any visible context menu or column menu. */
24786 GridApi.prototype.hidePopupMenu = function () {
24787 // hide the context menu if in enterprise
24788 if (this.contextMenuFactory) {
24789 this.contextMenuFactory.hideActiveMenu();
24790 }
24791 // and hide the column menu always
24792 this.menuFactory.hideActiveMenu();
24793 };
24794 /** DOM element to use as the popup parent for grid popups (context menu, column menu etc). */
24795 GridApi.prototype.setPopupParent = function (ePopupParent) {
24796 this.gridOptionsService.set('popupParent', ePopupParent);
24797 };
24798 /** Navigates the grid focus to the next cell, as if tabbing. */
24799 GridApi.prototype.tabToNextCell = function (event) {
24800 return this.navigationService.tabToNextCell(false, event);
24801 };
24802 /** Navigates the grid focus to the previous cell, as if shift-tabbing. */
24803 GridApi.prototype.tabToPreviousCell = function (event) {
24804 return this.navigationService.tabToNextCell(true, event);
24805 };
24806 /** Returns the list of active cell renderer instances. */
24807 GridApi.prototype.getCellRendererInstances = function (params) {
24808 if (params === void 0) { params = {}; }
24809 var res = this.rowRenderer.getCellRendererInstances(params);
24810 var unwrapped = res.map(unwrapUserComp);
24811 return unwrapped;
24812 };
24813 /** Returns the list of active cell editor instances. Optionally provide parameters to restrict to certain columns / row nodes. */
24814 GridApi.prototype.getCellEditorInstances = function (params) {
24815 if (params === void 0) { params = {}; }
24816 var res = this.rowRenderer.getCellEditorInstances(params);
24817 var unwrapped = res.map(unwrapUserComp);
24818 return unwrapped;
24819 };
24820 /** If the grid is editing, returns back details of the editing cell(s). */
24821 GridApi.prototype.getEditingCells = function () {
24822 return this.rowRenderer.getEditingCells();
24823 };
24824 /** If a cell is editing, it stops the editing. Pass `true` if you want to cancel the editing (i.e. don't accept changes). */
24825 GridApi.prototype.stopEditing = function (cancel) {
24826 if (cancel === void 0) { cancel = false; }
24827 this.rowRenderer.stopEditing(cancel);
24828 };
24829 /** Start editing the provided cell. If another cell is editing, the editing will be stopped in that other cell. */
24830 GridApi.prototype.startEditingCell = function (params) {
24831 var column = this.columnModel.getGridColumn(params.colKey);
24832 if (!column) {
24833 console.warn("AG Grid: no column found for " + params.colKey);
24834 return;
24835 }
24836 var cellPosition = {
24837 rowIndex: params.rowIndex,
24838 rowPinned: params.rowPinned || null,
24839 column: column
24840 };
24841 var notPinned = params.rowPinned == null;
24842 if (notPinned) {
24843 this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(params.rowIndex);
24844 }
24845 var cell = this.navigationService.getCellByPosition(cellPosition);
24846 if (!cell) {
24847 return;
24848 }
24849 cell.startRowOrCellEdit(params.key, params.charPress);
24850 };
24851 /** Add an aggregation function with the specified key. */
24852 GridApi.prototype.addAggFunc = function (key, aggFunc) {
24853 if (this.aggFuncService) {
24854 this.aggFuncService.addAggFunc(key, aggFunc);
24855 }
24856 };
24857 /** Add aggregations function with the specified keys. */
24858 GridApi.prototype.addAggFuncs = function (aggFuncs) {
24859 if (this.aggFuncService) {
24860 this.aggFuncService.addAggFuncs(aggFuncs);
24861 }
24862 };
24863 /** Clears all aggregation functions (including those provided by the grid). */
24864 GridApi.prototype.clearAggFuncs = function () {
24865 if (this.aggFuncService) {
24866 this.aggFuncService.clear();
24867 }
24868 };
24869 /** Apply transactions to the server side row model. */
24870 GridApi.prototype.applyServerSideTransaction = function (transaction) {
24871 if (!this.serverSideTransactionManager) {
24872 this.logMissingRowModel('applyServerSideTransaction', 'serverSide');
24873 return;
24874 }
24875 return this.serverSideTransactionManager.applyTransaction(transaction);
24876 };
24877 /** Batch apply transactions to the server side row model. */
24878 GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {
24879 if (!this.serverSideTransactionManager) {
24880 this.logMissingRowModel('applyServerSideTransactionAsync', 'serverSide');
24881 return;
24882 }
24883 return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);
24884 };
24885 /** Gets all failed server side loads to retry. */
24886 GridApi.prototype.retryServerSideLoads = function () {
24887 if (!this.serverSideRowModel) {
24888 this.logMissingRowModel('retryServerSideLoads', 'serverSide');
24889 return;
24890 }
24891 this.serverSideRowModel.retryLoads();
24892 };
24893 GridApi.prototype.flushServerSideAsyncTransactions = function () {
24894 if (!this.serverSideTransactionManager) {
24895 this.logMissingRowModel('flushServerSideAsyncTransactions', 'serverSide');
24896 return;
24897 }
24898 return this.serverSideTransactionManager.flushAsyncTransactions();
24899 };
24900 /** Update row data. Pass a transaction object with lists for `add`, `remove` and `update`. */
24901 GridApi.prototype.applyTransaction = function (rowDataTransaction) {
24902 if (!this.clientSideRowModel) {
24903 this.logMissingRowModel('applyTransaction', 'clientSide');
24904 return;
24905 }
24906 var res = this.clientSideRowModel.updateRowData(rowDataTransaction);
24907 // refresh all the full width rows
24908 this.rowRenderer.refreshFullWidthRows(res.update);
24909 // do change detection for all present cells
24910 if (!this.gridOptionsService.is('suppressChangeDetection')) {
24911 this.rowRenderer.refreshCells();
24912 }
24913 return res;
24914 };
24915 /** Same as `applyTransaction` except executes asynchronously for efficiency. */
24916 GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {
24917 if (!this.clientSideRowModel) {
24918 this.logMissingRowModel('applyTransactionAsync', 'clientSide');
24919 return;
24920 }
24921 this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);
24922 };
24923 /** Executes any remaining asynchronous grid transactions, if any are waiting to be executed. */
24924 GridApi.prototype.flushAsyncTransactions = function () {
24925 if (!this.clientSideRowModel) {
24926 this.logMissingRowModel('flushAsyncTransactions', 'clientSide');
24927 return;
24928 }
24929 this.clientSideRowModel.flushAsyncTransactions();
24930 };
24931 GridApi.prototype.setSuppressModelUpdateAfterUpdateTransaction = function (value) {
24932 this.gridOptionsService.set('suppressModelUpdateAfterUpdateTransaction', value);
24933 };
24934 /**
24935 * Marks all the currently loaded blocks in the cache for reload.
24936 * If you have 10 blocks in the cache, all 10 will be marked for reload.
24937 * The old data will continue to be displayed until the new data is loaded.
24938 */
24939 GridApi.prototype.refreshInfiniteCache = function () {
24940 if (this.infiniteRowModel) {
24941 this.infiniteRowModel.refreshCache();
24942 }
24943 else {
24944 this.logMissingRowModel('refreshInfiniteCache', 'infinite');
24945 }
24946 };
24947 /**
24948 * Purges the cache.
24949 * The grid is then told to refresh. Only the blocks required to display the current data on screen are fetched (typically no more than 2).
24950 * The grid will display nothing while the new blocks are loaded.
24951 * Use this to immediately remove the old data from the user.
24952 */
24953 GridApi.prototype.purgeInfiniteCache = function () {
24954 if (this.infiniteRowModel) {
24955 this.infiniteRowModel.purgeCache();
24956 }
24957 else {
24958 this.logMissingRowModel('purgeInfiniteCache', 'infinite');
24959 }
24960 };
24961 /**
24962 * Refresh a server-side level.
24963 * If you pass no parameters, then the top level store is refreshed.
24964 * To refresh a child level, pass in the string of keys to get to the desired level.
24965 */
24966 GridApi.prototype.refreshServerSide = function (params) {
24967 if (!this.serverSideRowModel) {
24968 this.logMissingRowModel('refreshServerSide', 'serverSide');
24969 return;
24970 }
24971 this.serverSideRowModel.refreshStore(params);
24972 };
24973 /** @deprecated v28 use `refreshServerSide` instead */
24974 GridApi.prototype.refreshServerSideStore = function (params) {
24975 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('28.0', 'refreshServerSideStore', 'refreshServerSide');
24976 return this.refreshServerSide(params);
24977 };
24978 /** @deprecated v28 use `getServerSideGroupLevelState` instead */
24979 GridApi.prototype.getServerSideStoreState = function () {
24980 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_1__["logDeprecation"])('28.0', 'getServerSideStoreState', 'getServerSideGroupLevelState');
24981 return this.getServerSideGroupLevelState();
24982 };
24983 /** Returns info on all server side group levels. */
24984 GridApi.prototype.getServerSideGroupLevelState = function () {
24985 if (!this.serverSideRowModel) {
24986 this.logMissingRowModel('getServerSideGroupLevelState', 'serverSide');
24987 return [];
24988 }
24989 return this.serverSideRowModel.getStoreState();
24990 };
24991 /** The row count defines how many rows the grid allows scrolling to. */
24992 GridApi.prototype.getInfiniteRowCount = function () {
24993 if (this.infiniteRowModel) {
24994 return this.infiniteRowModel.getRowCount();
24995 }
24996 else {
24997 this.logMissingRowModel('getInfiniteRowCount', 'infinite');
24998 }
24999 };
25000 /** Returns `true` if grid allows for scrolling past the last row to load more rows, thus providing infinite scroll. */
25001 GridApi.prototype.isLastRowIndexKnown = function () {
25002 if (this.infiniteRowModel) {
25003 return this.infiniteRowModel.isLastRowIndexKnown();
25004 }
25005 else {
25006 this.logMissingRowModel('isLastRowIndexKnown', 'infinite');
25007 }
25008 };
25009 /**
25010 * Returns an object representing the state of the cache. This is useful for debugging and understanding how the cache is working.
25011 */
25012 GridApi.prototype.getCacheBlockState = function () {
25013 return this.rowNodeBlockLoader.getBlockState();
25014 };
25015 /** Get the index of the first displayed row due to scrolling (includes invisible rendered rows in the buffer). */
25016 GridApi.prototype.getFirstDisplayedRow = function () {
25017 return this.rowRenderer.getFirstVirtualRenderedRow();
25018 };
25019 /** Get the index of the last displayed row due to scrolling (includes invisible rendered rows in the buffer). */
25020 GridApi.prototype.getLastDisplayedRow = function () {
25021 return this.rowRenderer.getLastVirtualRenderedRow();
25022 };
25023 /** Returns the displayed `RowNode` at the given `index`. */
25024 GridApi.prototype.getDisplayedRowAtIndex = function (index) {
25025 return this.rowModel.getRow(index);
25026 };
25027 /** Returns the total number of displayed rows. */
25028 GridApi.prototype.getDisplayedRowCount = function () {
25029 return this.rowModel.getRowCount();
25030 };
25031 /**
25032 * Set whether the grid paginates the data or not.
25033 * - `true` to enable pagination
25034 * - `false` to disable pagination
25035 */
25036 GridApi.prototype.setPagination = function (value) {
25037 this.gridOptionsService.set('pagination', value);
25038 };
25039 /**
25040 * Returns `true` when the last page is known.
25041 * This will always be `true` if you are using the Client-Side Row Model for pagination.
25042 * Returns `false` when the last page is not known; this only happens when using Infinite Row Model.
25043 */
25044 GridApi.prototype.paginationIsLastPageFound = function () {
25045 return this.paginationProxy.isLastPageFound();
25046 };
25047 /** Returns how many rows are being shown per page. */
25048 GridApi.prototype.paginationGetPageSize = function () {
25049 return this.paginationProxy.getPageSize();
25050 };
25051 /** Sets the `paginationPageSize`, then re-paginates the grid so the changes are applied immediately. */
25052 GridApi.prototype.paginationSetPageSize = function (size) {
25053 this.gridOptionsService.set('paginationPageSize', size);
25054 };
25055 /** Returns the 0-based index of the page which is showing. */
25056 GridApi.prototype.paginationGetCurrentPage = function () {
25057 return this.paginationProxy.getCurrentPage();
25058 };
25059 /** Returns the total number of pages. Returns `null` if `paginationIsLastPageFound() === false`. */
25060 GridApi.prototype.paginationGetTotalPages = function () {
25061 return this.paginationProxy.getTotalPages();
25062 };
25063 /** The total number of rows. Returns `null` if `paginationIsLastPageFound() === false`. */
25064 GridApi.prototype.paginationGetRowCount = function () {
25065 return this.paginationProxy.getMasterRowCount();
25066 };
25067 /** Navigates to the next page. */
25068 GridApi.prototype.paginationGoToNextPage = function () {
25069 this.paginationProxy.goToNextPage();
25070 };
25071 /** Navigates to the previous page. */
25072 GridApi.prototype.paginationGoToPreviousPage = function () {
25073 this.paginationProxy.goToPreviousPage();
25074 };
25075 /** Navigates to the first page. */
25076 GridApi.prototype.paginationGoToFirstPage = function () {
25077 this.paginationProxy.goToFirstPage();
25078 };
25079 /** Navigates to the last page. */
25080 GridApi.prototype.paginationGoToLastPage = function () {
25081 this.paginationProxy.goToLastPage();
25082 };
25083 /** Goes to the specified page. If the page requested doesn't exist, it will go to the last page. */
25084 GridApi.prototype.paginationGoToPage = function (page) {
25085 this.paginationProxy.goToPage(page);
25086 };
25087 __decorate([
25088 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('immutableService')
25089 ], GridApi.prototype, "immutableService", void 0);
25090 __decorate([
25091 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('csvCreator')
25092 ], GridApi.prototype, "csvCreator", void 0);
25093 __decorate([
25094 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('excelCreator')
25095 ], GridApi.prototype, "excelCreator", void 0);
25096 __decorate([
25097 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
25098 ], GridApi.prototype, "rowRenderer", void 0);
25099 __decorate([
25100 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('navigationService')
25101 ], GridApi.prototype, "navigationService", void 0);
25102 __decorate([
25103 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
25104 ], GridApi.prototype, "filterManager", void 0);
25105 __decorate([
25106 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
25107 ], GridApi.prototype, "columnModel", void 0);
25108 __decorate([
25109 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionService')
25110 ], GridApi.prototype, "selectionService", void 0);
25111 __decorate([
25112 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsService')
25113 ], GridApi.prototype, "gridOptionsService", void 0);
25114 __decorate([
25115 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
25116 ], GridApi.prototype, "valueService", void 0);
25117 __decorate([
25118 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('alignedGridsService')
25119 ], GridApi.prototype, "alignedGridsService", void 0);
25120 __decorate([
25121 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eventService')
25122 ], GridApi.prototype, "eventService", void 0);
25123 __decorate([
25124 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
25125 ], GridApi.prototype, "pinnedRowModel", void 0);
25126 __decorate([
25127 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('context')
25128 ], GridApi.prototype, "context", void 0);
25129 __decorate([
25130 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
25131 ], GridApi.prototype, "rowModel", void 0);
25132 __decorate([
25133 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
25134 ], GridApi.prototype, "sortController", void 0);
25135 __decorate([
25136 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
25137 ], GridApi.prototype, "paginationProxy", void 0);
25138 __decorate([
25139 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
25140 ], GridApi.prototype, "focusService", void 0);
25141 __decorate([
25142 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
25143 ], GridApi.prototype, "dragAndDropService", void 0);
25144 __decorate([
25145 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeService')
25146 ], GridApi.prototype, "rangeService", void 0);
25147 __decorate([
25148 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('clipboardService')
25149 ], GridApi.prototype, "clipboardService", void 0);
25150 __decorate([
25151 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('aggFuncService')
25152 ], GridApi.prototype, "aggFuncService", void 0);
25153 __decorate([
25154 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('menuFactory')
25155 ], GridApi.prototype, "menuFactory", void 0);
25156 __decorate([
25157 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('contextMenuFactory')
25158 ], GridApi.prototype, "contextMenuFactory", void 0);
25159 __decorate([
25160 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
25161 ], GridApi.prototype, "valueCache", void 0);
25162 __decorate([
25163 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
25164 ], GridApi.prototype, "animationFrameService", void 0);
25165 __decorate([
25166 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('statusBarService')
25167 ], GridApi.prototype, "statusBarService", void 0);
25168 __decorate([
25169 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('chartService')
25170 ], GridApi.prototype, "chartService", void 0);
25171 __decorate([
25172 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('undoRedoService')
25173 ], GridApi.prototype, "undoRedoService", void 0);
25174 __decorate([
25175 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rowNodeBlockLoader')
25176 ], GridApi.prototype, "rowNodeBlockLoader", void 0);
25177 __decorate([
25178 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('ssrmTransactionManager')
25179 ], GridApi.prototype, "serverSideTransactionManager", void 0);
25180 __decorate([
25181 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
25182 ], GridApi.prototype, "ctrlsService", void 0);
25183 __decorate([
25184 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
25185 ], GridApi.prototype, "init", null);
25186 __decorate([
25187 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
25188 ], GridApi.prototype, "cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid", null);
25189 GridApi = __decorate([
25190 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('gridApi')
25191 ], GridApi);
25192 return GridApi;
25193}());
25194
25195
25196
25197/***/ }),
25198/* 113 */
25199/***/ (function(module, __webpack_exports__, __webpack_require__) {
25200
25201"use strict";
25202__webpack_require__.r(__webpack_exports__);
25203/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return ClientSideRowModelSteps; });
25204/**
25205 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
25206 * @version v29.2.0
25207 * @link https://www.ag-grid.com/
25208 * @license MIT
25209 */
25210var ClientSideRowModelSteps;
25211(function (ClientSideRowModelSteps) {
25212 ClientSideRowModelSteps["EVERYTHING"] = "group";
25213 ClientSideRowModelSteps["FILTER"] = "filter";
25214 ClientSideRowModelSteps["SORT"] = "sort";
25215 ClientSideRowModelSteps["MAP"] = "map";
25216 ClientSideRowModelSteps["AGGREGATE"] = "aggregate";
25217 ClientSideRowModelSteps["FILTER_AGGREGATES"] = "filter_aggregates";
25218 ClientSideRowModelSteps["PIVOT"] = "pivot";
25219 ClientSideRowModelSteps["NOTHING"] = "nothing";
25220})(ClientSideRowModelSteps || (ClientSideRowModelSteps = {}));
25221
25222
25223/***/ }),
25224/* 114 */
25225/***/ (function(module, __webpack_exports__, __webpack_require__) {
25226
25227"use strict";
25228__webpack_require__.r(__webpack_exports__);
25229/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderFilterCellComp", function() { return HeaderFilterCellComp; });
25230/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
25231/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
25232/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57);
25233/* harmony import */ var _abstractCell_abstractHeaderCellComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(115);
25234/**
25235 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
25236 * @version v29.2.0
25237 * @link https://www.ag-grid.com/
25238 * @license MIT
25239 */
25240var __extends = (undefined && undefined.__extends) || (function () {
25241 var extendStatics = function (d, b) {
25242 extendStatics = Object.setPrototypeOf ||
25243 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25244 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25245 return extendStatics(d, b);
25246 };
25247 return function (d, b) {
25248 extendStatics(d, b);
25249 function __() { this.constructor = d; }
25250 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25251 };
25252})();
25253var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
25254 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
25255 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25256 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;
25257 return c > 3 && r && Object.defineProperty(target, key, r), r;
25258};
25259
25260
25261
25262
25263var HeaderFilterCellComp = /** @class */ (function (_super) {
25264 __extends(HeaderFilterCellComp, _super);
25265 function HeaderFilterCellComp(ctrl) {
25266 return _super.call(this, HeaderFilterCellComp.TEMPLATE, ctrl) || this;
25267 }
25268 HeaderFilterCellComp.prototype.postConstruct = function () {
25269 var _this = this;
25270 var eGui = this.getGui();
25271 var compProxy = {
25272 addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },
25273 addOrRemoveBodyCssClass: function (cssClassName, on) { return _this.eFloatingFilterBody.classList.toggle(cssClassName, on); },
25274 setButtonWrapperDisplayed: function (displayed) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(_this.eButtonWrapper, displayed); },
25275 setCompDetails: function (compDetails) { return _this.setCompDetails(compDetails); },
25276 getFloatingFilterComp: function () { return _this.compPromise; },
25277 setWidth: function (width) { return eGui.style.width = width; },
25278 setMenuIcon: function (eIcon) { return _this.eButtonShowMainFilter.appendChild(eIcon); }
25279 };
25280 this.ctrl.setComp(compProxy, eGui, this.eButtonShowMainFilter, this.eFloatingFilterBody);
25281 };
25282 HeaderFilterCellComp.prototype.setCompDetails = function (compDetails) {
25283 var _this = this;
25284 // because we are providing defaultFloatingFilterType, we know it will never be undefined;
25285 this.compPromise = compDetails.newAgStackInstance();
25286 this.compPromise.then(function (comp) { return _this.afterCompCreated(comp); });
25287 };
25288 HeaderFilterCellComp.prototype.afterCompCreated = function (comp) {
25289 var _this = this;
25290 if (!comp) {
25291 return;
25292 }
25293 this.addDestroyFunc(function () { return _this.context.destroyBean(comp); });
25294 if (!this.isAlive()) {
25295 return;
25296 }
25297 this.eFloatingFilterBody.appendChild(comp.getGui());
25298 if (comp.afterGuiAttached) {
25299 comp.afterGuiAttached();
25300 }
25301 };
25302 HeaderFilterCellComp.TEMPLATE = "<div class=\"ag-header-cell ag-floating-filter\" role=\"gridcell\" tabindex=\"-1\">\n <div 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>";
25303 __decorate([
25304 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eFloatingFilterBody')
25305 ], HeaderFilterCellComp.prototype, "eFloatingFilterBody", void 0);
25306 __decorate([
25307 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eButtonWrapper')
25308 ], HeaderFilterCellComp.prototype, "eButtonWrapper", void 0);
25309 __decorate([
25310 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eButtonShowMainFilter')
25311 ], HeaderFilterCellComp.prototype, "eButtonShowMainFilter", void 0);
25312 __decorate([
25313 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
25314 ], HeaderFilterCellComp.prototype, "postConstruct", null);
25315 return HeaderFilterCellComp;
25316}(_abstractCell_abstractHeaderCellComp__WEBPACK_IMPORTED_MODULE_3__["AbstractHeaderCellComp"]));
25317
25318
25319
25320/***/ }),
25321/* 115 */
25322/***/ (function(module, __webpack_exports__, __webpack_require__) {
25323
25324"use strict";
25325__webpack_require__.r(__webpack_exports__);
25326/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractHeaderCellComp", function() { return AbstractHeaderCellComp; });
25327/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
25328/**
25329 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
25330 * @version v29.2.0
25331 * @link https://www.ag-grid.com/
25332 * @license MIT
25333 */
25334var __extends = (undefined && undefined.__extends) || (function () {
25335 var extendStatics = function (d, b) {
25336 extendStatics = Object.setPrototypeOf ||
25337 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25338 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25339 return extendStatics(d, b);
25340 };
25341 return function (d, b) {
25342 extendStatics(d, b);
25343 function __() { this.constructor = d; }
25344 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25345 };
25346})();
25347
25348var AbstractHeaderCellComp = /** @class */ (function (_super) {
25349 __extends(AbstractHeaderCellComp, _super);
25350 function AbstractHeaderCellComp(template, ctrl) {
25351 var _this = _super.call(this, template) || this;
25352 _this.ctrl = ctrl;
25353 return _this;
25354 }
25355 AbstractHeaderCellComp.prototype.getCtrl = function () {
25356 return this.ctrl;
25357 };
25358 return AbstractHeaderCellComp;
25359}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
25360
25361
25362
25363/***/ }),
25364/* 116 */
25365/***/ (function(module, __webpack_exports__, __webpack_require__) {
25366
25367"use strict";
25368__webpack_require__.r(__webpack_exports__);
25369/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return GridBodyComp; });
25370/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
25371/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(117);
25372/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
25373/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38);
25374/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57);
25375/* harmony import */ var _gridBodyCtrl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(118);
25376/* harmony import */ var _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(122);
25377/**
25378 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
25379 * @version v29.2.0
25380 * @link https://www.ag-grid.com/
25381 * @license MIT
25382 */
25383var __extends = (undefined && undefined.__extends) || (function () {
25384 var extendStatics = function (d, b) {
25385 extendStatics = Object.setPrototypeOf ||
25386 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25387 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25388 return extendStatics(d, b);
25389 };
25390 return function (d, b) {
25391 extendStatics(d, b);
25392 function __() { this.constructor = d; }
25393 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25394 };
25395})();
25396var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
25397 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
25398 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25399 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;
25400 return c > 3 && r && Object.defineProperty(target, key, r), r;
25401};
25402
25403
25404
25405
25406
25407
25408
25409var GRID_BODY_TEMPLATE = /* html */ "<div class=\"ag-root ag-unselectable\" role=\"treegrid\">\n <ag-header-root ref=\"gridHeader\"></ag-header-root>\n <div class=\"ag-floating-top\" ref=\"eTop\" role=\"presentation\">\n <ag-row-container ref=\"topLeftContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].TOP_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"topCenterContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].TOP_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"topRightContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].TOP_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"topFullWidthContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].TOP_FULL_WIDTH + "\"></ag-row-container>\n </div>\n <div class=\"ag-body\" ref=\"eBody\" role=\"presentation\">\n <div class=\"ag-body-clipper\" ref=\"eBodyClipper\" role=\"presentation\">\n <div class=\"ag-body-viewport\" ref=\"eBodyViewport\" role=\"presentation\">\n <ag-row-container ref=\"leftContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"centerContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"rightContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"fullWidthContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].FULL_WIDTH + "\"></ag-row-container>\n </div>\n </div>\n <ag-fake-vertical-scroll></ag-fake-vertical-scroll>\n </div>\n <div class=\"ag-sticky-top\" ref=\"eStickyTop\" role=\"presentation\">\n <ag-row-container ref=\"stickyTopLeftContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].STICKY_TOP_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"stickyTopCenterContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].STICKY_TOP_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"stickyTopRightContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].STICKY_TOP_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"stickyTopFullWidthContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].STICKY_TOP_FULL_WIDTH + "\"></ag-row-container>\n </div>\n <div class=\"ag-floating-bottom\" ref=\"eBottom\" role=\"presentation\">\n <ag-row-container ref=\"bottomLeftContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].BOTTOM_LEFT + "\"></ag-row-container>\n <ag-row-container ref=\"bottomCenterContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].BOTTOM_CENTER + "\"></ag-row-container>\n <ag-row-container ref=\"bottomRightContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].BOTTOM_RIGHT + "\"></ag-row-container>\n <ag-row-container ref=\"bottomFullWidthContainer\" name=\"" + _rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["RowContainerName"].BOTTOM_FULL_WIDTH + "\"></ag-row-container>\n </div>\n <ag-fake-horizontal-scroll></ag-fake-horizontal-scroll>\n <ag-overlay-wrapper></ag-overlay-wrapper>\n </div>";
25410var GridBodyComp = /** @class */ (function (_super) {
25411 __extends(GridBodyComp, _super);
25412 function GridBodyComp() {
25413 return _super.call(this, GRID_BODY_TEMPLATE) || this;
25414 }
25415 GridBodyComp.prototype.init = function () {
25416 var _this = this;
25417 var setHeight = function (height, element) {
25418 var heightString = height + "px";
25419 element.style.minHeight = heightString;
25420 element.style.height = heightString;
25421 };
25422 var compProxy = {
25423 setRowAnimationCssOnBodyViewport: function (cssClass, animate) { return _this.setRowAnimationCssOnBodyViewport(cssClass, animate); },
25424 setColumnCount: function (count) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaColCount"])(_this.getGui(), count); },
25425 setRowCount: function (count) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaRowCount"])(_this.getGui(), count); },
25426 setTopHeight: function (height) { return setHeight(height, _this.eTop); },
25427 setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },
25428 setTopDisplay: function (display) { return _this.eTop.style.display = display; },
25429 setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },
25430 setStickyTopHeight: function (height) { return _this.eStickyTop.style.height = height; },
25431 setStickyTopTop: function (top) { return _this.eStickyTop.style.top = top; },
25432 setStickyTopWidth: function (width) { return _this.eStickyTop.style.width = width; },
25433 setColumnMovingCss: function (cssClass, flag) { return _this.addOrRemoveCssClass(cssClass, flag); },
25434 updateLayoutClasses: function (cssClass, params) {
25435 var classLists = [
25436 _this.eBodyViewport.classList,
25437 _this.eBodyClipper.classList,
25438 _this.eBody.classList
25439 ];
25440 classLists.forEach(function (classList) {
25441 classList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
25442 classList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__["LayoutCssClasses"].NORMAL, params.normal);
25443 classList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__["LayoutCssClasses"].PRINT, params.print);
25444 });
25445 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
25446 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__["LayoutCssClasses"].NORMAL, params.normal);
25447 _this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_1__["LayoutCssClasses"].PRINT, params.print);
25448 },
25449 setAlwaysVerticalScrollClass: function (cssClass, on) {
25450 return _this.eBodyViewport.classList.toggle(_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_5__["CSS_CLASS_FORCE_VERTICAL_SCROLL"], on);
25451 },
25452 registerBodyViewportResizeListener: function (listener) {
25453 var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);
25454 _this.addDestroyFunc(function () { return unsubscribeFromResize(); });
25455 },
25456 setPinnedTopBottomOverflowY: function (overflow) { return _this.eTop.style.overflowY = _this.eBottom.style.overflowY = overflow; },
25457 setCellSelectableCss: function (cssClass, selectable) {
25458 [_this.eTop, _this.eBodyViewport, _this.eBottom]
25459 .forEach(function (ct) { return ct.classList.toggle(_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_5__["CSS_CLASS_CELL_SELECTABLE"], selectable); });
25460 },
25461 setBodyViewportWidth: function (width) { return _this.eBodyViewport.style.width = width; }
25462 };
25463 this.ctrl = this.createManagedBean(new _gridBodyCtrl__WEBPACK_IMPORTED_MODULE_5__["GridBodyCtrl"]());
25464 this.ctrl.setComp(compProxy, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom, this.eStickyTop);
25465 if (this.rangeService || this.gridOptionsService.get('rowSelection') === 'multiple') {
25466 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaMultiSelectable"])(this.getGui(), true);
25467 }
25468 };
25469 GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (cssClass, animateRows) {
25470 var bodyViewportClassList = this.eBodyViewport.classList;
25471 bodyViewportClassList.toggle(_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_5__["RowAnimationCssClasses"].ANIMATION_ON, animateRows);
25472 bodyViewportClassList.toggle(_gridBodyCtrl__WEBPACK_IMPORTED_MODULE_5__["RowAnimationCssClasses"].ANIMATION_OFF, !animateRows);
25473 };
25474 GridBodyComp.prototype.getFloatingTopBottom = function () {
25475 return [this.eTop, this.eBottom];
25476 };
25477 __decorate([
25478 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
25479 ], GridBodyComp.prototype, "resizeObserverService", void 0);
25480 __decorate([
25481 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeService')
25482 ], GridBodyComp.prototype, "rangeService", void 0);
25483 __decorate([
25484 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eBodyViewport')
25485 ], GridBodyComp.prototype, "eBodyViewport", void 0);
25486 __decorate([
25487 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eStickyTop')
25488 ], GridBodyComp.prototype, "eStickyTop", void 0);
25489 __decorate([
25490 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eTop')
25491 ], GridBodyComp.prototype, "eTop", void 0);
25492 __decorate([
25493 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eBottom')
25494 ], GridBodyComp.prototype, "eBottom", void 0);
25495 __decorate([
25496 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('gridHeader')
25497 ], GridBodyComp.prototype, "headerRootComp", void 0);
25498 __decorate([
25499 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eBodyClipper')
25500 ], GridBodyComp.prototype, "eBodyClipper", void 0);
25501 __decorate([
25502 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eBody')
25503 ], GridBodyComp.prototype, "eBody", void 0);
25504 __decorate([
25505 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
25506 ], GridBodyComp.prototype, "init", null);
25507 return GridBodyComp;
25508}(_widgets_component__WEBPACK_IMPORTED_MODULE_3__["Component"]));
25509
25510
25511
25512/***/ }),
25513/* 117 */
25514/***/ (function(module, __webpack_exports__, __webpack_require__) {
25515
25516"use strict";
25517__webpack_require__.r(__webpack_exports__);
25518/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return LayoutCssClasses; });
25519/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LayoutFeature", function() { return LayoutFeature; });
25520/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
25521/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
25522/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
25523/**
25524 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
25525 * @version v29.2.0
25526 * @link https://www.ag-grid.com/
25527 * @license MIT
25528 */
25529var __extends = (undefined && undefined.__extends) || (function () {
25530 var extendStatics = function (d, b) {
25531 extendStatics = Object.setPrototypeOf ||
25532 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25533 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25534 return extendStatics(d, b);
25535 };
25536 return function (d, b) {
25537 extendStatics(d, b);
25538 function __() { this.constructor = d; }
25539 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25540 };
25541})();
25542var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
25543 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
25544 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25545 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;
25546 return c > 3 && r && Object.defineProperty(target, key, r), r;
25547};
25548
25549
25550
25551var LayoutCssClasses;
25552(function (LayoutCssClasses) {
25553 LayoutCssClasses["AUTO_HEIGHT"] = "ag-layout-auto-height";
25554 LayoutCssClasses["NORMAL"] = "ag-layout-normal";
25555 LayoutCssClasses["PRINT"] = "ag-layout-print";
25556})(LayoutCssClasses || (LayoutCssClasses = {}));
25557var LayoutFeature = /** @class */ (function (_super) {
25558 __extends(LayoutFeature, _super);
25559 function LayoutFeature(view) {
25560 var _this = _super.call(this) || this;
25561 _this.view = view;
25562 return _this;
25563 }
25564 LayoutFeature.prototype.postConstruct = function () {
25565 this.addManagedPropertyListener('domLayout', this.updateLayoutClasses.bind(this));
25566 this.updateLayoutClasses();
25567 };
25568 LayoutFeature.prototype.updateLayoutClasses = function () {
25569 var domLayout = this.getDomLayout();
25570 var params = {
25571 autoHeight: domLayout === 'autoHeight',
25572 normal: domLayout === 'normal',
25573 print: domLayout === 'print'
25574 };
25575 var cssClass = params.autoHeight ? LayoutCssClasses.AUTO_HEIGHT :
25576 params.print ? LayoutCssClasses.PRINT : LayoutCssClasses.NORMAL;
25577 this.view.updateLayoutClasses(cssClass, params);
25578 };
25579 // returns either 'print', 'autoHeight' or 'normal' (normal is the default)
25580 LayoutFeature.prototype.getDomLayout = function () {
25581 var _a;
25582 var domLayout = (_a = this.gridOptionsService.get('domLayout')) !== null && _a !== void 0 ? _a : 'normal';
25583 var validLayouts = ['normal', 'print', 'autoHeight'];
25584 if (validLayouts.indexOf(domLayout) === -1) {
25585 Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["doOnce"])(function () {
25586 return console.warn("AG Grid: " + domLayout + " is not valid for DOM Layout, valid values are 'normal', 'autoHeight', 'print'.");
25587 }, 'warn about dom layout values');
25588 return 'normal';
25589 }
25590 return domLayout;
25591 };
25592 __decorate([
25593 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
25594 ], LayoutFeature.prototype, "postConstruct", null);
25595 return LayoutFeature;
25596}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
25597
25598
25599
25600/***/ }),
25601/* 118 */
25602/***/ (function(module, __webpack_exports__, __webpack_require__) {
25603
25604"use strict";
25605__webpack_require__.r(__webpack_exports__);
25606/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowAnimationCssClasses", function() { return RowAnimationCssClasses; });
25607/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_CELL_SELECTABLE", function() { return CSS_CLASS_CELL_SELECTABLE; });
25608/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_FORCE_VERTICAL_SCROLL", function() { return CSS_CLASS_FORCE_VERTICAL_SCROLL; });
25609/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CSS_CLASS_COLUMN_MOVING", function() { return CSS_CLASS_COLUMN_MOVING; });
25610/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyCtrl", function() { return GridBodyCtrl; });
25611/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
25612/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
25613/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(117);
25614/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
25615/* harmony import */ var _gridBodyScrollFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(119);
25616/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(45);
25617/* harmony import */ var _rowDragFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(120);
25618/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42);
25619/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(86);
25620/**
25621 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
25622 * @version v29.2.0
25623 * @link https://www.ag-grid.com/
25624 * @license MIT
25625 */
25626var __extends = (undefined && undefined.__extends) || (function () {
25627 var extendStatics = function (d, b) {
25628 extendStatics = Object.setPrototypeOf ||
25629 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25630 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25631 return extendStatics(d, b);
25632 };
25633 return function (d, b) {
25634 extendStatics(d, b);
25635 function __() { this.constructor = d; }
25636 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25637 };
25638})();
25639var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
25640 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
25641 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
25642 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;
25643 return c > 3 && r && Object.defineProperty(target, key, r), r;
25644};
25645
25646
25647
25648
25649
25650
25651
25652
25653
25654var RowAnimationCssClasses;
25655(function (RowAnimationCssClasses) {
25656 RowAnimationCssClasses["ANIMATION_ON"] = "ag-row-animation";
25657 RowAnimationCssClasses["ANIMATION_OFF"] = "ag-row-no-animation";
25658})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));
25659var CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';
25660var CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';
25661var CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';
25662var GridBodyCtrl = /** @class */ (function (_super) {
25663 __extends(GridBodyCtrl, _super);
25664 function GridBodyCtrl() {
25665 var _this = _super !== null && _super.apply(this, arguments) || this;
25666 _this.stickyTopHeight = 0;
25667 return _this;
25668 }
25669 GridBodyCtrl.prototype.getScrollFeature = function () {
25670 return this.bodyScrollFeature;
25671 };
25672 GridBodyCtrl.prototype.getBodyViewportElement = function () {
25673 return this.eBodyViewport;
25674 };
25675 GridBodyCtrl.prototype.setComp = function (comp, eGridBody, eBodyViewport, eTop, eBottom, eStickyTop) {
25676 this.comp = comp;
25677 this.eGridBody = eGridBody;
25678 this.eBodyViewport = eBodyViewport;
25679 this.eTop = eTop;
25680 this.eBottom = eBottom;
25681 this.eStickyTop = eStickyTop;
25682 this.setCellTextSelection(this.gridOptionsService.is('enableCellTextSelection'));
25683 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_2__["LayoutFeature"](this.comp));
25684 this.bodyScrollFeature = this.createManagedBean(new _gridBodyScrollFeature__WEBPACK_IMPORTED_MODULE_4__["GridBodyScrollFeature"](this.eBodyViewport));
25685 this.addRowDragListener();
25686 this.setupRowAnimationCssClass();
25687 this.addEventListeners();
25688 this.addFocusListeners([eTop, eBodyViewport, eBottom, eStickyTop]);
25689 this.onGridColumnsChanged();
25690 this.addBodyViewportListener();
25691 this.setFloatingHeights();
25692 this.disableBrowserDragging();
25693 this.addStopEditingWhenGridLosesFocus();
25694 this.ctrlsService.registerGridBodyCtrl(this);
25695 };
25696 GridBodyCtrl.prototype.getComp = function () {
25697 return this.comp;
25698 };
25699 GridBodyCtrl.prototype.addEventListeners = function () {
25700 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
25701 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
25702 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));
25703 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));
25704 };
25705 GridBodyCtrl.prototype.addFocusListeners = function (elements) {
25706 var _this = this;
25707 elements.forEach(function (element) {
25708 _this.addManagedListener(element, 'focusin', function (e) {
25709 var target = e.target;
25710 // element being focused is nested?
25711 var isFocusedElementNested = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isElementChildOfClass"])(target, 'ag-root', element);
25712 element.classList.toggle('ag-has-focus', !isFocusedElementNested);
25713 });
25714 _this.addManagedListener(element, 'focusout', function (e) {
25715 var target = e.target, relatedTarget = e.relatedTarget;
25716 var gridContainRelatedTarget = element.contains(relatedTarget);
25717 var isNestedRelatedTarget = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isElementChildOfClass"])(relatedTarget, 'ag-root', element);
25718 var isNestedTarget = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isElementChildOfClass"])(target, 'ag-root', element);
25719 // element losing focus belongs to a nested grid,
25720 // it should not be handled here.
25721 if (isNestedTarget) {
25722 return;
25723 }
25724 // the grid does not contain, or the focus element is within
25725 // a nested grid
25726 if (!gridContainRelatedTarget || isNestedRelatedTarget) {
25727 element.classList.remove('ag-has-focus');
25728 }
25729 });
25730 });
25731 };
25732 // used by ColumnAnimationService
25733 GridBodyCtrl.prototype.setColumnMovingCss = function (moving) {
25734 this.comp.setColumnMovingCss(CSS_CLASS_COLUMN_MOVING, moving);
25735 };
25736 GridBodyCtrl.prototype.setCellTextSelection = function (selectable) {
25737 if (selectable === void 0) { selectable = false; }
25738 var cssClass = selectable ? CSS_CLASS_CELL_SELECTABLE : null;
25739 this.comp.setCellSelectableCss(cssClass, selectable);
25740 };
25741 GridBodyCtrl.prototype.onScrollVisibilityChanged = function () {
25742 var visible = this.scrollVisibleService.isVerticalScrollShowing();
25743 this.setVerticalScrollPaddingVisible(visible);
25744 this.setStickyTopWidth(visible);
25745 var scrollbarWidth = visible ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;
25746 var pad = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_7__["isInvisibleScrollbar"])() ? 16 : 0;
25747 var width = "calc(100% + " + (scrollbarWidth + pad) + "px)";
25748 this.comp.setBodyViewportWidth(width);
25749 };
25750 GridBodyCtrl.prototype.onGridColumnsChanged = function () {
25751 var columns = this.columnModel.getAllGridColumns();
25752 this.comp.setColumnCount(columns ? columns.length : 0);
25753 };
25754 // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)
25755 // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.
25756 GridBodyCtrl.prototype.disableBrowserDragging = function () {
25757 this.addManagedListener(this.eGridBody, 'dragstart', function (event) {
25758 if (event.target instanceof HTMLImageElement) {
25759 event.preventDefault();
25760 return false;
25761 }
25762 });
25763 };
25764 GridBodyCtrl.prototype.addStopEditingWhenGridLosesFocus = function () {
25765 var _this = this;
25766 if (!this.gridOptionsService.is('stopEditingWhenCellsLoseFocus')) {
25767 return;
25768 }
25769 var focusOutListener = function (event) {
25770 // this is the element the focus is moving to
25771 var elementWithFocus = event.relatedTarget;
25772 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_7__["getTabIndex"])(elementWithFocus) === null) {
25773 _this.rowRenderer.stopEditing();
25774 return;
25775 }
25776 var clickInsideGrid =
25777 // see if click came from inside the viewports
25778 viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })
25779 // and also that it's not from a detail grid
25780 && _this.mouseEventService.isElementInThisGrid(elementWithFocus);
25781 if (!clickInsideGrid) {
25782 var popupService = _this.popupService;
25783 clickInsideGrid =
25784 popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||
25785 popupService.isElementWithinCustomPopup(elementWithFocus);
25786 }
25787 if (!clickInsideGrid) {
25788 _this.rowRenderer.stopEditing();
25789 }
25790 };
25791 var viewports = [this.eBodyViewport, this.eBottom, this.eTop, this.eStickyTop];
25792 viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });
25793 };
25794 GridBodyCtrl.prototype.updateRowCount = function () {
25795 var headerCount = this.headerNavigationService.getHeaderRowCount();
25796 var rowCount = this.rowModel.isLastRowIndexKnown() ? this.rowModel.getRowCount() : -1;
25797 var total = rowCount === -1 ? -1 : (headerCount + rowCount);
25798 this.comp.setRowCount(total);
25799 };
25800 GridBodyCtrl.prototype.registerBodyViewportResizeListener = function (listener) {
25801 this.comp.registerBodyViewportResizeListener(listener);
25802 };
25803 GridBodyCtrl.prototype.setVerticalScrollPaddingVisible = function (visible) {
25804 var overflowY = visible ? 'scroll' : 'hidden';
25805 this.comp.setPinnedTopBottomOverflowY(overflowY);
25806 };
25807 GridBodyCtrl.prototype.isVerticalScrollShowing = function () {
25808 var show = this.gridOptionsService.is('alwaysShowVerticalScroll');
25809 var cssClass = show ? CSS_CLASS_FORCE_VERTICAL_SCROLL : null;
25810 var allowVerticalScroll = this.gridOptionsService.isDomLayout('normal');
25811 this.comp.setAlwaysVerticalScrollClass(cssClass, show);
25812 return show || (allowVerticalScroll && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["isVerticalScrollShowing"])(this.eBodyViewport));
25813 };
25814 GridBodyCtrl.prototype.setupRowAnimationCssClass = function () {
25815 var _this = this;
25816 var listener = function () {
25817 // we don't want to use row animation if scaling, as rows jump strangely as you scroll,
25818 // when scaling and doing row animation.
25819 var animateRows = _this.gridOptionsService.isAnimateRows() && !_this.rowContainerHeightService.isStretching();
25820 var animateRowsCssClass = animateRows ? RowAnimationCssClasses.ANIMATION_ON : RowAnimationCssClasses.ANIMATION_OFF;
25821 _this.comp.setRowAnimationCssOnBodyViewport(animateRowsCssClass, animateRows);
25822 };
25823 listener();
25824 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_HEIGHT_SCALE_CHANGED, listener);
25825 this.addManagedPropertyListener('animateRows', listener);
25826 };
25827 GridBodyCtrl.prototype.getGridBodyElement = function () {
25828 return this.eGridBody;
25829 };
25830 GridBodyCtrl.prototype.addBodyViewportListener = function () {
25831 var _this = this;
25832 // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing
25833 // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell
25834 var listener = function (mouseEvent, touch, touchEvent) {
25835 if (!mouseEvent && !touchEvent) {
25836 return;
25837 }
25838 if (_this.gridOptionsService.is('preventDefaultOnContextMenu')) {
25839 var event_1 = (mouseEvent || touchEvent);
25840 event_1.preventDefault();
25841 }
25842 var target = (mouseEvent || touch).target;
25843 if (target === _this.eBodyViewport || target === _this.ctrlsService.getCenterRowContainerCtrl().getViewportElement()) {
25844 // show it
25845 if (_this.contextMenuFactory) {
25846 if (mouseEvent) {
25847 _this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, _this.eGridBody);
25848 }
25849 else if (touchEvent) {
25850 _this.contextMenuFactory.onContextMenu(null, touchEvent, null, null, null, _this.eGridBody);
25851 }
25852 }
25853 }
25854 };
25855 this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);
25856 this.mockContextMenuForIPad(listener);
25857 this.addManagedListener(this.eBodyViewport, 'wheel', this.onBodyViewportWheel.bind(this));
25858 this.addManagedListener(this.eStickyTop, 'wheel', this.onStickyTopWheel.bind(this));
25859 };
25860 GridBodyCtrl.prototype.mockContextMenuForIPad = function (listener) {
25861 // we do NOT want this when not in iPad
25862 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_7__["isIOSUserAgent"])()) {
25863 return;
25864 }
25865 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_8__["TouchListener"](this.eBodyViewport);
25866 var longTapListener = function (event) {
25867 listener(undefined, event.touchStart, event.touchEvent);
25868 };
25869 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_8__["TouchListener"].EVENT_LONG_TAP, longTapListener);
25870 this.addDestroyFunc(function () { return touchListener.destroy(); });
25871 };
25872 GridBodyCtrl.prototype.onBodyViewportWheel = function (e) {
25873 if (!this.gridOptionsService.is('suppressScrollWhenPopupsAreOpen')) {
25874 return;
25875 }
25876 if (this.popupService.hasAnchoredPopup()) {
25877 e.preventDefault();
25878 }
25879 };
25880 GridBodyCtrl.prototype.onStickyTopWheel = function (e) {
25881 e.preventDefault();
25882 if (e.offsetY) {
25883 this.scrollVertically(e.deltaY);
25884 }
25885 };
25886 GridBodyCtrl.prototype.getGui = function () {
25887 return this.eGridBody;
25888 };
25889 // called by rowDragFeature
25890 GridBodyCtrl.prototype.scrollVertically = function (pixels) {
25891 var oldScrollPosition = this.eBodyViewport.scrollTop;
25892 this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);
25893 return this.eBodyViewport.scrollTop - oldScrollPosition;
25894 };
25895 GridBodyCtrl.prototype.addRowDragListener = function () {
25896 this.rowDragFeature = this.createManagedBean(new _rowDragFeature__WEBPACK_IMPORTED_MODULE_6__["RowDragFeature"](this.eBodyViewport));
25897 this.dragAndDropService.addDropTarget(this.rowDragFeature);
25898 };
25899 GridBodyCtrl.prototype.getRowDragFeature = function () {
25900 return this.rowDragFeature;
25901 };
25902 GridBodyCtrl.prototype.onPinnedRowDataChanged = function () {
25903 this.setFloatingHeights();
25904 };
25905 GridBodyCtrl.prototype.setFloatingHeights = function () {
25906 var pinnedRowModel = this.pinnedRowModel;
25907 var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();
25908 if (floatingTopHeight) {
25909 // adding 1px for cell bottom border
25910 floatingTopHeight += 1;
25911 }
25912 var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();
25913 if (floatingBottomHeight) {
25914 // adding 1px for cell bottom border
25915 floatingBottomHeight += 1;
25916 }
25917 this.comp.setTopHeight(floatingTopHeight);
25918 this.comp.setBottomHeight(floatingBottomHeight);
25919 this.comp.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');
25920 this.comp.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');
25921 this.setStickyTopOffsetTop();
25922 };
25923 GridBodyCtrl.prototype.setStickyTopHeight = function (height) {
25924 if (height === void 0) { height = 0; }
25925 // console.log('setting sticky top height ' + height);
25926 this.comp.setStickyTopHeight(height + "px");
25927 this.stickyTopHeight = height;
25928 };
25929 GridBodyCtrl.prototype.getStickyTopHeight = function () {
25930 return this.stickyTopHeight;
25931 };
25932 GridBodyCtrl.prototype.setStickyTopWidth = function (vScrollVisible) {
25933 if (!vScrollVisible) {
25934 this.comp.setStickyTopWidth('100%');
25935 }
25936 else {
25937 var scrollbarWidth = this.gridOptionsService.getScrollbarWidth();
25938 this.comp.setStickyTopWidth("calc(100% - " + scrollbarWidth + "px)");
25939 }
25940 };
25941 GridBodyCtrl.prototype.onHeaderHeightChanged = function () {
25942 this.setStickyTopOffsetTop();
25943 };
25944 GridBodyCtrl.prototype.setStickyTopOffsetTop = function () {
25945 var headerCtrl = this.ctrlsService.getGridHeaderCtrl();
25946 var headerHeight = headerCtrl.getHeaderHeight();
25947 var pinnedTopHeight = this.pinnedRowModel.getPinnedTopTotalHeight();
25948 var height = 0;
25949 if (headerHeight > 0) {
25950 height += headerHeight + 1;
25951 }
25952 if (pinnedTopHeight > 0) {
25953 height += pinnedTopHeight + 1;
25954 }
25955 this.comp.setStickyTopTop(height + "px");
25956 };
25957 // method will call itself if no available width. this covers if the grid
25958 // isn't visible, but is just about to be visible.
25959 GridBodyCtrl.prototype.sizeColumnsToFit = function (params, nextTimeout) {
25960 var _this = this;
25961 var removeScrollWidth = this.isVerticalScrollShowing();
25962 var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsService.getScrollbarWidth() : 0;
25963 // bodyViewportWidth should be calculated from eGridBody, not eBodyViewport
25964 // because we change the width of the bodyViewport to hide the real browser scrollbar
25965 var bodyViewportWidth = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["getInnerWidth"])(this.eGridBody);
25966 var availableWidth = bodyViewportWidth - scrollWidthToRemove;
25967 if (availableWidth > 0) {
25968 this.columnModel.sizeColumnsToFit(availableWidth, "sizeColumnsToFit", false, params);
25969 return;
25970 }
25971 if (nextTimeout === undefined) {
25972 window.setTimeout(function () {
25973 _this.sizeColumnsToFit(params, 100);
25974 }, 0);
25975 }
25976 else if (nextTimeout === 100) {
25977 window.setTimeout(function () {
25978 _this.sizeColumnsToFit(params, 500);
25979 }, 100);
25980 }
25981 else if (nextTimeout === 500) {
25982 window.setTimeout(function () {
25983 _this.sizeColumnsToFit(params, -1);
25984 }, 500);
25985 }
25986 else {
25987 console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +
25988 'zero width, maybe the grid is not visible yet on the screen?');
25989 }
25990 };
25991 // + rangeService
25992 GridBodyCtrl.prototype.addScrollEventListener = function (listener) {
25993 this.eBodyViewport.addEventListener('scroll', listener, { passive: true });
25994 };
25995 // + focusService
25996 GridBodyCtrl.prototype.removeScrollEventListener = function (listener) {
25997 this.eBodyViewport.removeEventListener('scroll', listener);
25998 };
25999 __decorate([
26000 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowContainerHeightService')
26001 ], GridBodyCtrl.prototype, "rowContainerHeightService", void 0);
26002 __decorate([
26003 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
26004 ], GridBodyCtrl.prototype, "ctrlsService", void 0);
26005 __decorate([
26006 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
26007 ], GridBodyCtrl.prototype, "columnModel", void 0);
26008 __decorate([
26009 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
26010 ], GridBodyCtrl.prototype, "scrollVisibleService", void 0);
26011 __decorate([
26012 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('contextMenuFactory')
26013 ], GridBodyCtrl.prototype, "contextMenuFactory", void 0);
26014 __decorate([
26015 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerNavigationService')
26016 ], GridBodyCtrl.prototype, "headerNavigationService", void 0);
26017 __decorate([
26018 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
26019 ], GridBodyCtrl.prototype, "dragAndDropService", void 0);
26020 __decorate([
26021 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedRowModel')
26022 ], GridBodyCtrl.prototype, "pinnedRowModel", void 0);
26023 __decorate([
26024 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
26025 ], GridBodyCtrl.prototype, "rowRenderer", void 0);
26026 __decorate([
26027 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('popupService')
26028 ], GridBodyCtrl.prototype, "popupService", void 0);
26029 __decorate([
26030 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
26031 ], GridBodyCtrl.prototype, "mouseEventService", void 0);
26032 __decorate([
26033 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
26034 ], GridBodyCtrl.prototype, "rowModel", void 0);
26035 return GridBodyCtrl;
26036}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
26037
26038
26039
26040/***/ }),
26041/* 119 */
26042/***/ (function(module, __webpack_exports__, __webpack_require__) {
26043
26044"use strict";
26045__webpack_require__.r(__webpack_exports__);
26046/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridBodyScrollFeature", function() { return GridBodyScrollFeature; });
26047/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
26048/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
26049/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
26050/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
26051/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
26052/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(42);
26053/**
26054 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
26055 * @version v29.2.0
26056 * @link https://www.ag-grid.com/
26057 * @license MIT
26058 */
26059var __extends = (undefined && undefined.__extends) || (function () {
26060 var extendStatics = function (d, b) {
26061 extendStatics = Object.setPrototypeOf ||
26062 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26063 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
26064 return extendStatics(d, b);
26065 };
26066 return function (d, b) {
26067 extendStatics(d, b);
26068 function __() { this.constructor = d; }
26069 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26070 };
26071})();
26072var __assign = (undefined && undefined.__assign) || function () {
26073 __assign = Object.assign || function(t) {
26074 for (var s, i = 1, n = arguments.length; i < n; i++) {
26075 s = arguments[i];
26076 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26077 t[p] = s[p];
26078 }
26079 return t;
26080 };
26081 return __assign.apply(this, arguments);
26082};
26083var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
26084 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26085 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26086 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;
26087 return c > 3 && r && Object.defineProperty(target, key, r), r;
26088};
26089
26090
26091
26092
26093
26094
26095var GridBodyScrollFeature = /** @class */ (function (_super) {
26096 __extends(GridBodyScrollFeature, _super);
26097 function GridBodyScrollFeature(eBodyViewport) {
26098 var _this = _super.call(this) || this;
26099 _this.scrollLeft = -1;
26100 _this.nextScrollTop = -1;
26101 _this.scrollTop = -1;
26102 _this.eBodyViewport = eBodyViewport;
26103 _this.resetLastHScrollDebounced = Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(function () { return _this.eLastHScroll = null; }, 500);
26104 _this.resetLastVScrollDebounced = Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(function () { return _this.eLastVScroll = null; }, 500);
26105 return _this;
26106 }
26107 GridBodyScrollFeature.prototype.postConstruct = function () {
26108 var _this = this;
26109 this.enableRtl = this.gridOptionsService.is('enableRtl');
26110 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
26111 this.ctrlsService.whenReady(function (p) {
26112 _this.centerRowContainerCtrl = p.centerRowContainerCtrl;
26113 _this.onDisplayedColumnsWidthChanged();
26114 _this.addScrollListener();
26115 });
26116 };
26117 GridBodyScrollFeature.prototype.addScrollListener = function () {
26118 var fakeHScroll = this.ctrlsService.getFakeHScrollComp();
26119 var fakeVScroll = this.ctrlsService.getFakeVScrollComp();
26120 this.addManagedListener(this.centerRowContainerCtrl.getViewportElement(), 'scroll', this.onHScroll.bind(this));
26121 this.addManagedListener(fakeHScroll.getViewport(), 'scroll', this.onFakeHScroll.bind(this));
26122 var isDebounce = this.gridOptionsService.is('debounceVerticalScrollbar');
26123 var onVScroll = isDebounce ?
26124 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(this.onVScroll.bind(this), 100) : this.onVScroll.bind(this);
26125 var onFakeVScroll = isDebounce ?
26126 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["debounce"])(this.onFakeVScroll.bind(this), 100) : this.onFakeVScroll.bind(this);
26127 this.addManagedListener(this.eBodyViewport, 'scroll', onVScroll);
26128 this.addManagedListener(fakeVScroll.getViewport(), 'scroll', onFakeVScroll);
26129 };
26130 GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {
26131 if (this.enableRtl) {
26132 // because RTL is all backwards, a change in the width of the row
26133 // can cause a change in the scroll position, without a scroll event,
26134 // because the scroll position in RTL is a function that depends on
26135 // the width. to be convinced of this, take out this line, enable RTL,
26136 // scroll all the way to the left and then resize a column
26137 this.horizontallyScrollHeaderCenterAndFloatingCenter();
26138 }
26139 };
26140 GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {
26141 // when doing RTL, this method gets called once prematurely
26142 var notYetInitialised = this.centerRowContainerCtrl == null;
26143 if (notYetInitialised) {
26144 return;
26145 }
26146 if (scrollLeft === undefined) {
26147 scrollLeft = this.centerRowContainerCtrl.getCenterViewportScrollLeft();
26148 }
26149 var offset = this.enableRtl ? scrollLeft : -scrollLeft;
26150 var topCenterContainer = this.ctrlsService.getTopCenterRowContainerCtrl();
26151 var stickyTopCenterContainer = this.ctrlsService.getStickyTopCenterRowContainerCtrl();
26152 var bottomCenterContainer = this.ctrlsService.getBottomCenterRowContainerCtrl();
26153 var fakeHScroll = this.ctrlsService.getFakeHScrollComp();
26154 var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();
26155 centerHeaderContainer.setHorizontalScroll(offset);
26156 bottomCenterContainer.setContainerTranslateX(offset);
26157 topCenterContainer.setContainerTranslateX(offset);
26158 stickyTopCenterContainer.setContainerTranslateX(offset);
26159 var centerViewport = this.centerRowContainerCtrl.getViewportElement();
26160 var isCenterViewportLastHorizontal = this.eLastHScroll === centerViewport;
26161 var partner = isCenterViewportLastHorizontal ?
26162 fakeHScroll.getViewport() :
26163 this.centerRowContainerCtrl.getViewportElement();
26164 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setScrollLeft"])(partner, Math.abs(scrollLeft), this.enableRtl);
26165 };
26166 GridBodyScrollFeature.prototype.isControllingHScroll = function (eDiv) {
26167 if (!this.eLastHScroll) {
26168 this.eLastHScroll = eDiv;
26169 return true;
26170 }
26171 return eDiv === this.eLastHScroll;
26172 };
26173 GridBodyScrollFeature.prototype.isControllingVScroll = function (eDiv) {
26174 if (!this.eLastVScroll) {
26175 this.eLastVScroll = eDiv;
26176 return true;
26177 }
26178 return eDiv === this.eLastVScroll;
26179 };
26180 GridBodyScrollFeature.prototype.onFakeHScroll = function () {
26181 var fakeHScrollViewport = this.ctrlsService.getFakeHScrollComp().getViewport();
26182 if (!this.isControllingHScroll(fakeHScrollViewport)) {
26183 return;
26184 }
26185 this.onHScrollCommon(fakeHScrollViewport);
26186 };
26187 GridBodyScrollFeature.prototype.onHScroll = function () {
26188 var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();
26189 if (!this.isControllingHScroll(centerContainerViewport)) {
26190 return;
26191 }
26192 this.onHScrollCommon(centerContainerViewport);
26193 };
26194 GridBodyScrollFeature.prototype.onHScrollCommon = function (eSource) {
26195 var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();
26196 var scrollLeft = centerContainerViewport.scrollLeft;
26197 if (this.shouldBlockScrollUpdate('horizontal', scrollLeft, true)) {
26198 return;
26199 }
26200 // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.
26201 // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200
26202 // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.
26203 // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,
26204 // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause
26205 // scroll to 200px, the next to 199px, then the first back to 198px and so on).
26206 this.doHorizontalScroll(Math.round(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getScrollLeft"])(eSource, this.enableRtl)));
26207 this.resetLastHScrollDebounced();
26208 };
26209 GridBodyScrollFeature.prototype.onFakeVScroll = function () {
26210 var fakeVScrollViewport = this.ctrlsService.getFakeVScrollComp().getViewport();
26211 if (!this.isControllingVScroll(fakeVScrollViewport)) {
26212 return;
26213 }
26214 this.onVScrollCommon(fakeVScrollViewport);
26215 };
26216 GridBodyScrollFeature.prototype.onVScroll = function () {
26217 if (!this.isControllingVScroll(this.eBodyViewport)) {
26218 return;
26219 }
26220 this.onVScrollCommon(this.eBodyViewport);
26221 };
26222 GridBodyScrollFeature.prototype.onVScrollCommon = function (eSource) {
26223 var scrollTop = eSource.scrollTop;
26224 if (this.shouldBlockScrollUpdate('vertical', scrollTop, true)) {
26225 return;
26226 }
26227 this.animationFrameService.setScrollTop(scrollTop);
26228 this.nextScrollTop = scrollTop;
26229 if (eSource === this.eBodyViewport) {
26230 var fakeVScrollViewport = this.ctrlsService.getFakeVScrollComp().getViewport();
26231 fakeVScrollViewport.scrollTop = scrollTop;
26232 }
26233 else {
26234 this.eBodyViewport.scrollTop = scrollTop;
26235 }
26236 // the `scrollGridIfNeeded` will recalculate the rows to be rendered by the grid
26237 // so it should only be called after `eBodyViewport` has been scrolled to the correct
26238 // position, otherwise the `first` and `last` row could be miscalculated.
26239 if (this.gridOptionsService.is('suppressAnimationFrame')) {
26240 this.scrollGridIfNeeded();
26241 }
26242 else {
26243 this.animationFrameService.schedule();
26244 }
26245 this.resetLastVScrollDebounced();
26246 };
26247 GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {
26248 var fakeHScrollViewport = this.ctrlsService.getFakeHScrollComp().getViewport();
26249 var fakeScrollLeft = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getScrollLeft"])(fakeHScrollViewport, this.enableRtl);
26250 if (this.scrollLeft === scrollLeft && scrollLeft === fakeScrollLeft) {
26251 return;
26252 }
26253 this.scrollLeft = scrollLeft;
26254 this.fireScrollEvent('horizontal');
26255 this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);
26256 this.onHorizontalViewportChanged();
26257 };
26258 GridBodyScrollFeature.prototype.fireScrollEvent = function (direction) {
26259 var _this = this;
26260 var bodyScrollEvent = {
26261 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL,
26262 direction: direction,
26263 left: this.scrollLeft,
26264 top: this.scrollTop
26265 };
26266 this.eventService.dispatchEvent(bodyScrollEvent);
26267 window.clearTimeout(this.scrollTimer);
26268 this.scrollTimer = undefined;
26269 this.scrollTimer = window.setTimeout(function () {
26270 var bodyScrollEndEvent = __assign(__assign({}, bodyScrollEvent), { type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_BODY_SCROLL_END });
26271 _this.eventService.dispatchEvent(bodyScrollEndEvent);
26272 }, 100);
26273 };
26274 GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {
26275 // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport
26276 // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually
26277 // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,
26278 // as otherwise it was causing the rows and header to flicker.
26279 if (touchOnly === void 0) { touchOnly = false; }
26280 // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to
26281 // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event
26282 // could be 10px before the max position, and then current scroll event could be 20px after the max position).
26283 // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in
26284 // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.
26285 if (touchOnly && !Object(_utils_browser__WEBPACK_IMPORTED_MODULE_5__["isIOSUserAgent"])()) {
26286 return false;
26287 }
26288 if (direction === 'vertical') {
26289 return this.shouldBlockVerticalScroll(scrollTo);
26290 }
26291 return this.shouldBlockHorizontalScroll(scrollTo);
26292 };
26293 GridBodyScrollFeature.prototype.shouldBlockVerticalScroll = function (scrollTo) {
26294 var clientHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["getInnerHeight"])(this.eBodyViewport);
26295 var scrollHeight = this.eBodyViewport.scrollHeight;
26296 if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {
26297 return true;
26298 }
26299 return false;
26300 };
26301 GridBodyScrollFeature.prototype.shouldBlockHorizontalScroll = function (scrollTo) {
26302 var clientWidth = this.centerRowContainerCtrl.getCenterWidth();
26303 var scrollWidth = this.centerRowContainerCtrl.getViewportElement().scrollWidth;
26304 if (this.enableRtl && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isRtlNegativeScroll"])()) {
26305 if (scrollTo > 0) {
26306 return true;
26307 }
26308 }
26309 else if (scrollTo < 0) {
26310 return true;
26311 }
26312 if (Math.abs(scrollTo) + clientWidth > scrollWidth) {
26313 return true;
26314 }
26315 return false;
26316 };
26317 GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {
26318 this.fireScrollEvent('vertical');
26319 };
26320 GridBodyScrollFeature.prototype.onHorizontalViewportChanged = function () {
26321 this.centerRowContainerCtrl.onHorizontalViewportChanged();
26322 };
26323 // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.
26324 // (which happens with some implementations of tabbing). this can result in horizontal scroll getting
26325 // reset back to the left, however no scroll event is fired. so we need to get header to also scroll
26326 // back to the left to be kept in sync.
26327 // adding and removing the grid from the DOM both resets the scroll position and
26328 // triggers a resize event, so notify listeners if the scroll position has changed
26329 GridBodyScrollFeature.prototype.checkScrollLeft = function () {
26330 if (this.scrollLeft !== this.centerRowContainerCtrl.getCenterViewportScrollLeft()) {
26331 this.onHScrollCommon(this.centerRowContainerCtrl.getViewportElement());
26332 }
26333 };
26334 GridBodyScrollFeature.prototype.scrollGridIfNeeded = function () {
26335 var frameNeeded = this.scrollTop != this.nextScrollTop;
26336 if (frameNeeded) {
26337 this.scrollTop = this.nextScrollTop;
26338 this.redrawRowsAfterScroll();
26339 }
26340 return frameNeeded;
26341 };
26342 // called by scrollHorizontally method and alignedGridsService
26343 GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition) {
26344 var minScrollLeft = 0;
26345 var maxScrollLeft = this.centerRowContainerCtrl.getViewportElement().scrollWidth - this.centerRowContainerCtrl.getCenterWidth();
26346 if (this.shouldBlockScrollUpdate('horizontal', hScrollPosition)) {
26347 if (this.enableRtl && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isRtlNegativeScroll"])()) {
26348 hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;
26349 }
26350 else {
26351 hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);
26352 }
26353 }
26354 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setScrollLeft"])(this.centerRowContainerCtrl.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);
26355 // we need to manually do the event handling (rather than wait for the event)
26356 // for the alignedGridsService, as if we don't, the aligned grid service gets
26357 // notified async, and then it's 'consuming' flag doesn't get used right, and
26358 // we can end up with an infinite loop
26359 this.doHorizontalScroll(hScrollPosition);
26360 };
26361 GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {
26362 this.eBodyViewport.scrollTop = vScrollPosition;
26363 };
26364 GridBodyScrollFeature.prototype.getVScrollPosition = function () {
26365 var result = {
26366 top: this.eBodyViewport.scrollTop,
26367 bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight
26368 };
26369 return result;
26370 };
26371 GridBodyScrollFeature.prototype.getHScrollPosition = function () {
26372 return this.centerRowContainerCtrl.getHScrollPosition();
26373 };
26374 GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {
26375 return this.centerRowContainerCtrl.isHorizontalScrollShowing();
26376 };
26377 // called by the headerRootComp and moveColumnController
26378 GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {
26379 var oldScrollPosition = this.centerRowContainerCtrl.getViewportElement().scrollLeft;
26380 this.setHorizontalScrollPosition(oldScrollPosition + pixels);
26381 return this.centerRowContainerCtrl.getViewportElement().scrollLeft - oldScrollPosition;
26382 };
26383 // gets called by rowRenderer when new data loaded, as it will want to scroll to the top
26384 GridBodyScrollFeature.prototype.scrollToTop = function () {
26385 this.eBodyViewport.scrollTop = 0;
26386 };
26387 // Valid values for position are bottom, middle and top
26388 GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {
26389 if (position === void 0) { position = null; }
26390 // look for the node index we want to display
26391 var rowCount = this.rowModel.getRowCount();
26392 var indexToSelect = -1;
26393 // go through all the nodes, find the one we want to show
26394 for (var i = 0; i < rowCount; i++) {
26395 var node = this.rowModel.getRow(i);
26396 if (typeof comparator === 'function') {
26397 // Have to assert type here, as type could be TData & Function
26398 var predicate = comparator;
26399 if (node && predicate(node)) {
26400 indexToSelect = i;
26401 break;
26402 }
26403 }
26404 else {
26405 // check object equality against node and data
26406 if (comparator === node || comparator === node.data) {
26407 indexToSelect = i;
26408 break;
26409 }
26410 }
26411 }
26412 if (indexToSelect >= 0) {
26413 this.ensureIndexVisible(indexToSelect, position);
26414 }
26415 };
26416 // Valid values for position are bottom, middle and top
26417 // position should be {'top','middle','bottom', or undefined/null}.
26418 // if undefined/null, then the grid will to the minimal amount of scrolling,
26419 // eg if grid needs to scroll up, it scrolls until row is on top,
26420 // if grid needs to scroll down, it scrolls until row is on bottom,
26421 // if row is already in view, grid does not scroll
26422 GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {
26423 // if for print or auto height, everything is always visible
26424 if (this.gridOptionsService.isDomLayout('print')) {
26425 return;
26426 }
26427 var rowCount = this.paginationProxy.getRowCount();
26428 if (typeof index !== 'number' || index < 0 || index >= rowCount) {
26429 console.warn('AG Grid: Invalid row index for ensureIndexVisible: ' + index);
26430 return;
26431 }
26432 var isPaging = this.gridOptionsService.is('pagination');
26433 var paginationPanelEnabled = isPaging && !this.gridOptionsService.is('suppressPaginationPanel');
26434 if (!paginationPanelEnabled) {
26435 this.paginationProxy.goToPageWithIndex(index);
26436 }
26437 var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();
26438 var stickyTopHeight = gridBodyCtrl.getStickyTopHeight();
26439 var rowNode = this.paginationProxy.getRow(index);
26440 var rowGotShiftedDuringOperation;
26441 do {
26442 var startingRowTop = rowNode.rowTop;
26443 var startingRowHeight = rowNode.rowHeight;
26444 var paginationOffset = this.paginationProxy.getPixelOffset();
26445 var rowTopPixel = rowNode.rowTop - paginationOffset;
26446 var rowBottomPixel = rowTopPixel + rowNode.rowHeight;
26447 var scrollPosition = this.getVScrollPosition();
26448 var heightOffset = this.heightScaler.getDivStretchOffset();
26449 var vScrollTop = scrollPosition.top + heightOffset;
26450 var vScrollBottom = scrollPosition.bottom + heightOffset;
26451 var viewportHeight = vScrollBottom - vScrollTop;
26452 // work out the pixels for top, middle and bottom up front,
26453 // make the if/else below easier to read
26454 var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);
26455 var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);
26456 // make sure if middle, the row is not outside the top of the grid
26457 var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);
26458 var rowAboveViewport = (vScrollTop + stickyTopHeight) > rowTopPixel;
26459 var rowBelowViewport = vScrollBottom < rowBottomPixel;
26460 var newScrollPosition = null;
26461 if (position === 'top') {
26462 newScrollPosition = pxTop;
26463 }
26464 else if (position === 'bottom') {
26465 newScrollPosition = pxBottom;
26466 }
26467 else if (position === 'middle') {
26468 newScrollPosition = pxMiddle;
26469 }
26470 else if (rowAboveViewport) {
26471 // if row is before, scroll up with row at top
26472 newScrollPosition = pxTop - stickyTopHeight;
26473 }
26474 else if (rowBelowViewport) {
26475 // if row is after, scroll down with row at bottom
26476 newScrollPosition = pxBottom;
26477 }
26478 if (newScrollPosition !== null) {
26479 this.eBodyViewport.scrollTop = newScrollPosition;
26480 this.rowRenderer.redrawAfterScroll();
26481 }
26482 // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),
26483 // the height of a row changes due to lazy calculation of row heights when using
26484 // colDef.autoHeight or gridOptions.getRowHeight.
26485 // if row was shifted, then the position we scrolled to is incorrect.
26486 rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)
26487 || (startingRowHeight !== rowNode.rowHeight);
26488 } while (rowGotShiftedDuringOperation);
26489 // so when we return back to user, the cells have rendered
26490 this.animationFrameService.flushAllFrames();
26491 };
26492 GridBodyScrollFeature.prototype.ensureColumnVisible = function (key, position) {
26493 if (position === void 0) { position = 'auto'; }
26494 var column = this.columnModel.getGridColumn(key);
26495 if (!column) {
26496 return;
26497 }
26498 // calling ensureColumnVisible on a pinned column doesn't make sense
26499 if (column.isPinned()) {
26500 return;
26501 }
26502 // defensive
26503 if (!this.columnModel.isColumnDisplayed(column)) {
26504 return;
26505 }
26506 var newHorizontalScroll = this.getPositionedHorizontalScroll(column, position);
26507 if (newHorizontalScroll !== null) {
26508 this.centerRowContainerCtrl.setCenterViewportScrollLeft(newHorizontalScroll);
26509 }
26510 // this will happen anyway, as the move will cause a 'scroll' event on the body, however
26511 // it is possible that the ensureColumnVisible method is called from within AG Grid and
26512 // the caller will need to have the columns rendered to continue, which will be before
26513 // the event has been worked on (which is the case for cell navigation).
26514 this.centerRowContainerCtrl.onHorizontalViewportChanged();
26515 // so when we return back to user, the cells have rendered
26516 this.animationFrameService.flushAllFrames();
26517 };
26518 GridBodyScrollFeature.prototype.getPositionedHorizontalScroll = function (column, position) {
26519 var _a = this.isColumnOutsideViewport(column), columnBeforeStart = _a.columnBeforeStart, columnAfterEnd = _a.columnAfterEnd;
26520 var viewportTooSmallForColumn = this.centerRowContainerCtrl.getCenterWidth() < column.getActualWidth();
26521 var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();
26522 var isRtl = this.enableRtl;
26523 var alignColToStart = (isRtl ? columnBeforeStart : columnAfterEnd) || viewportTooSmallForColumn;
26524 var alignColToEnd = isRtl ? columnAfterEnd : columnBeforeStart;
26525 if (position !== 'auto') {
26526 alignColToStart = position === 'start';
26527 alignColToEnd = position === 'end';
26528 }
26529 var isMiddle = position === 'middle';
26530 if (alignColToStart || alignColToEnd || isMiddle) {
26531 var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colMiddle = _b.colMiddle, colRight = _b.colRight;
26532 if (isMiddle) {
26533 return colMiddle - viewportWidth / 2;
26534 }
26535 if (alignColToStart) {
26536 return isRtl ? colRight : colLeft;
26537 }
26538 return isRtl ? (colLeft - viewportWidth) : (colRight - viewportWidth);
26539 }
26540 return null;
26541 };
26542 GridBodyScrollFeature.prototype.isColumnOutsideViewport = function (column) {
26543 var _a = this.getViewportBounds(), viewportStart = _a.start, viewportEnd = _a.end;
26544 var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colRight = _b.colRight;
26545 var isRtl = this.enableRtl;
26546 var columnBeforeStart = isRtl ? (viewportStart > colRight) : (viewportEnd < colRight);
26547 var columnAfterEnd = isRtl ? (viewportEnd < colLeft) : (viewportStart > colLeft);
26548 return { columnBeforeStart: columnBeforeStart, columnAfterEnd: columnAfterEnd };
26549 };
26550 GridBodyScrollFeature.prototype.getColumnBounds = function (column) {
26551 var isRtl = this.enableRtl;
26552 var bodyWidth = this.columnModel.getBodyContainerWidth();
26553 var colWidth = column.getActualWidth();
26554 var colLeft = column.getLeft();
26555 var multiplier = isRtl ? -1 : 1;
26556 var colLeftPixel = isRtl ? (bodyWidth - colLeft) : colLeft;
26557 var colRightPixel = colLeftPixel + colWidth * multiplier;
26558 var colMidPixel = colLeftPixel + colWidth / 2 * multiplier;
26559 return { colLeft: colLeftPixel, colMiddle: colMidPixel, colRight: colRightPixel };
26560 };
26561 GridBodyScrollFeature.prototype.getViewportBounds = function () {
26562 var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();
26563 var scrollPosition = this.centerRowContainerCtrl.getCenterViewportScrollLeft();
26564 var viewportStartPixel = scrollPosition;
26565 var viewportEndPixel = viewportWidth + scrollPosition;
26566 return { start: viewportStartPixel, end: viewportEndPixel, width: viewportWidth };
26567 };
26568 __decorate([
26569 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
26570 ], GridBodyScrollFeature.prototype, "ctrlsService", void 0);
26571 __decorate([
26572 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
26573 ], GridBodyScrollFeature.prototype, "animationFrameService", void 0);
26574 __decorate([
26575 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
26576 ], GridBodyScrollFeature.prototype, "paginationProxy", void 0);
26577 __decorate([
26578 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
26579 ], GridBodyScrollFeature.prototype, "rowModel", void 0);
26580 __decorate([
26581 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowContainerHeightService')
26582 ], GridBodyScrollFeature.prototype, "heightScaler", void 0);
26583 __decorate([
26584 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
26585 ], GridBodyScrollFeature.prototype, "rowRenderer", void 0);
26586 __decorate([
26587 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
26588 ], GridBodyScrollFeature.prototype, "columnModel", void 0);
26589 __decorate([
26590 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
26591 ], GridBodyScrollFeature.prototype, "postConstruct", null);
26592 return GridBodyScrollFeature;
26593}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
26594
26595
26596
26597/***/ }),
26598/* 120 */
26599/***/ (function(module, __webpack_exports__, __webpack_require__) {
26600
26601"use strict";
26602__webpack_require__.r(__webpack_exports__);
26603/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowDragFeature", function() { return RowDragFeature; });
26604/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(100);
26605/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
26606/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
26607/* harmony import */ var _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(110);
26608/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
26609/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17);
26610/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(7);
26611/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
26612/* harmony import */ var _autoScrollService__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(121);
26613/**
26614 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
26615 * @version v29.2.0
26616 * @link https://www.ag-grid.com/
26617 * @license MIT
26618 */
26619var __extends = (undefined && undefined.__extends) || (function () {
26620 var extendStatics = function (d, b) {
26621 extendStatics = Object.setPrototypeOf ||
26622 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
26623 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
26624 return extendStatics(d, b);
26625 };
26626 return function (d, b) {
26627 extendStatics(d, b);
26628 function __() { this.constructor = d; }
26629 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26630 };
26631})();
26632var __assign = (undefined && undefined.__assign) || function () {
26633 __assign = Object.assign || function(t) {
26634 for (var s, i = 1, n = arguments.length; i < n; i++) {
26635 s = arguments[i];
26636 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
26637 t[p] = s[p];
26638 }
26639 return t;
26640 };
26641 return __assign.apply(this, arguments);
26642};
26643var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
26644 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
26645 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
26646 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;
26647 return c > 3 && r && Object.defineProperty(target, key, r), r;
26648};
26649var __read = (undefined && undefined.__read) || function (o, n) {
26650 var m = typeof Symbol === "function" && o[Symbol.iterator];
26651 if (!m) return o;
26652 var i = m.call(o), r, ar = [], e;
26653 try {
26654 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
26655 }
26656 catch (error) { e = { error: error }; }
26657 finally {
26658 try {
26659 if (r && !r.done && (m = i["return"])) m.call(i);
26660 }
26661 finally { if (e) throw e.error; }
26662 }
26663 return ar;
26664};
26665var __spread = (undefined && undefined.__spread) || function () {
26666 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
26667 return ar;
26668};
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678var RowDragFeature = /** @class */ (function (_super) {
26679 __extends(RowDragFeature, _super);
26680 function RowDragFeature(eContainer) {
26681 var _this = _super.call(this) || this;
26682 _this.isMultiRowDrag = false;
26683 _this.isGridSorted = false;
26684 _this.isGridFiltered = false;
26685 _this.isRowGroupActive = false;
26686 _this.eContainer = eContainer;
26687 return _this;
26688 }
26689 RowDragFeature.prototype.postConstruct = function () {
26690 var _this = this;
26691 if (this.gridOptionsService.isRowModelType('clientSide')) {
26692 this.clientSideRowModel = this.rowModel;
26693 }
26694 var refreshStatus = function () {
26695 _this.onSortChanged();
26696 _this.onFilterChanged();
26697 _this.onRowGroupChanged();
26698 };
26699 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
26700 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
26701 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));
26702 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_MODEL_UPDATED, function () {
26703 refreshStatus();
26704 });
26705 refreshStatus();
26706 this.ctrlsService.whenReady(function () {
26707 var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();
26708 _this.autoScrollService = new _autoScrollService__WEBPACK_IMPORTED_MODULE_8__["AutoScrollService"]({
26709 scrollContainer: gridBodyCon.getBodyViewportElement(),
26710 scrollAxis: 'y',
26711 getVerticalPosition: function () { return gridBodyCon.getScrollFeature().getVScrollPosition().top; },
26712 setVerticalPosition: function (position) { return gridBodyCon.getScrollFeature().setVerticalScrollPosition(position); },
26713 onScrollCallback: function () { _this.onDragging(_this.lastDraggingEvent); }
26714 });
26715 });
26716 };
26717 RowDragFeature.prototype.onSortChanged = function () {
26718 this.isGridSorted = this.sortController.isSortActive();
26719 };
26720 RowDragFeature.prototype.onFilterChanged = function () {
26721 this.isGridFiltered = this.filterManager.isAnyFilterPresent();
26722 };
26723 RowDragFeature.prototype.onRowGroupChanged = function () {
26724 var rowGroups = this.columnModel.getRowGroupColumns();
26725 this.isRowGroupActive = !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_6__["missingOrEmpty"])(rowGroups);
26726 };
26727 RowDragFeature.prototype.getContainer = function () {
26728 return this.eContainer;
26729 };
26730 RowDragFeature.prototype.isInterestedIn = function (type) {
26731 return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].RowDrag;
26732 };
26733 RowDragFeature.prototype.getIconName = function () {
26734 var managedDrag = this.gridOptionsService.is('rowDragManaged');
26735 if (managedDrag && this.shouldPreventRowMove()) {
26736 return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_NOT_ALLOWED;
26737 }
26738 return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE;
26739 };
26740 RowDragFeature.prototype.shouldPreventRowMove = function () {
26741 return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;
26742 };
26743 RowDragFeature.prototype.getRowNodes = function (draggingEvent) {
26744 var _this = this;
26745 if (!this.isFromThisGrid(draggingEvent)) {
26746 return (draggingEvent.dragItem.rowNodes || []);
26747 }
26748 var isRowDragMultiRow = this.gridOptionsService.is('rowDragMultiRow');
26749 var selectedNodes = __spread(this.selectionService.getSelectedNodes()).sort(function (a, b) {
26750 if (a.rowIndex == null || b.rowIndex == null) {
26751 return 0;
26752 }
26753 return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b);
26754 });
26755 var currentNode = draggingEvent.dragItem.rowNode;
26756 if (isRowDragMultiRow && selectedNodes.indexOf(currentNode) !== -1) {
26757 this.isMultiRowDrag = true;
26758 return selectedNodes;
26759 }
26760 this.isMultiRowDrag = false;
26761 return [currentNode];
26762 };
26763 RowDragFeature.prototype.onDragEnter = function (draggingEvent) {
26764 // builds a lits of all rows being dragged before firing events
26765 draggingEvent.dragItem.rowNodes = this.getRowNodes(draggingEvent);
26766 // when entering, we fire the enter event, then in onEnterOrDragging,
26767 // we also fire the move event. so we get both events when entering.
26768 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, draggingEvent);
26769 this.getRowNodes(draggingEvent).forEach(function (rowNode) {
26770 rowNode.setDragging(true);
26771 });
26772 this.onEnterOrDragging(draggingEvent);
26773 };
26774 RowDragFeature.prototype.onDragging = function (draggingEvent) {
26775 this.onEnterOrDragging(draggingEvent);
26776 };
26777 RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {
26778 var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;
26779 return dragSourceDomDataKey === this.gridOptionsService.getDomDataKey();
26780 };
26781 RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {
26782 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
26783 var gridGui = gridBodyCon.getGui();
26784 var dropZoneTarget = draggingEvent.dropZoneTarget;
26785 return !gridGui.contains(dropZoneTarget);
26786 };
26787 RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {
26788 // this event is fired for enter and move
26789 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, draggingEvent);
26790 this.lastDraggingEvent = draggingEvent;
26791 var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
26792 var managedDrag = this.gridOptionsService.is('rowDragManaged');
26793 if (managedDrag) {
26794 this.doManagedDrag(draggingEvent, pixel);
26795 }
26796 this.autoScrollService.check(draggingEvent.event);
26797 };
26798 RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {
26799 var isFromThisGrid = this.isFromThisGrid(draggingEvent);
26800 var managedDrag = this.gridOptionsService.is('rowDragManaged');
26801 var rowNodes = draggingEvent.dragItem.rowNodes;
26802 if (managedDrag && this.shouldPreventRowMove()) {
26803 return;
26804 }
26805 if (this.gridOptionsService.is('suppressMoveWhenRowDragging') || !isFromThisGrid) {
26806 if (!this.isDropZoneWithinThisGrid(draggingEvent)) {
26807 this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);
26808 }
26809 }
26810 else {
26811 this.moveRows(rowNodes, pixel);
26812 }
26813 };
26814 RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {
26815 return parseInt(Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(rowNode.getRowIndexString().split('-')), 10);
26816 };
26817 RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {
26818 var _this = this;
26819 var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();
26820 var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_3__["RowHighlightPosition"].Below;
26821 var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
26822 var rowNodes = draggingEvent.dragItem.rowNodes;
26823 var increment = isBelow ? 1 : 0;
26824 if (this.isFromThisGrid(draggingEvent)) {
26825 rowNodes.forEach(function (rowNode) {
26826 if (rowNode.rowTop < pixel) {
26827 increment -= 1;
26828 }
26829 });
26830 this.moveRows(rowNodes, pixel, increment);
26831 }
26832 else {
26833 var getRowIdFunc_1 = this.gridOptionsService.getRowIdFunc();
26834 var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;
26835 if (this.clientSideRowModel.getHighlightPosition(pixel) === _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_3__["RowHighlightPosition"].Above) {
26836 addIndex--;
26837 }
26838 this.clientSideRowModel.updateRowData({
26839 add: rowNodes
26840 .map(function (node) { return node.data; })
26841 .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowIdFunc_1 ? getRowIdFunc_1({ data: data, level: 0 }) : data.id); }),
26842 addIndex: addIndex
26843 });
26844 }
26845 this.clearRowHighlight();
26846 };
26847 RowDragFeature.prototype.clearRowHighlight = function () {
26848 this.clientSideRowModel.highlightRowAtPixel(null);
26849 };
26850 RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {
26851 if (increment === void 0) { increment = 0; }
26852 var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);
26853 if (rowWasMoved) {
26854 this.focusService.clearFocusedCell();
26855 if (this.rangeService) {
26856 this.rangeService.removeAllCellRanges();
26857 }
26858 }
26859 };
26860 RowDragFeature.prototype.addRowDropZone = function (params) {
26861 var _this = this;
26862 if (!params.getContainer()) {
26863 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');
26864 return;
26865 }
26866 if (this.dragAndDropService.findExternalZone(params)) {
26867 console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');
26868 return;
26869 }
26870 var processedParams = {
26871 getContainer: params.getContainer
26872 };
26873 if (params.fromGrid) {
26874 params.fromGrid = undefined;
26875 processedParams = params;
26876 }
26877 else {
26878 if (params.onDragEnter) {
26879 processedParams.onDragEnter = function (e) {
26880 params.onDragEnter(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, e));
26881 };
26882 }
26883 if (params.onDragLeave) {
26884 processedParams.onDragLeave = function (e) {
26885 params.onDragLeave(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, e));
26886 };
26887 }
26888 if (params.onDragging) {
26889 processedParams.onDragging = function (e) {
26890 params.onDragging(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, e));
26891 };
26892 }
26893 if (params.onDragStop) {
26894 processedParams.onDragStop = function (e) {
26895 params.onDragStop(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, e));
26896 };
26897 }
26898 }
26899 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));
26900 };
26901 RowDragFeature.prototype.getRowDropZone = function (events) {
26902 var _this = this;
26903 var getContainer = this.getContainer.bind(this);
26904 var onDragEnter = this.onDragEnter.bind(this);
26905 var onDragLeave = this.onDragLeave.bind(this);
26906 var onDragging = this.onDragging.bind(this);
26907 var onDragStop = this.onDragStop.bind(this);
26908 if (!events) {
26909 return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };
26910 }
26911 return {
26912 getContainer: getContainer,
26913 onDragEnter: events.onDragEnter
26914 ? (function (e) {
26915 onDragEnter(e);
26916 events.onDragEnter(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_ENTER, e));
26917 })
26918 : onDragEnter,
26919 onDragLeave: events.onDragLeave
26920 ? (function (e) {
26921 onDragLeave(e);
26922 events.onDragLeave(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, e));
26923 })
26924 : onDragLeave,
26925 onDragging: events.onDragging
26926 ? (function (e) {
26927 onDragging(e);
26928 events.onDragging(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_MOVE, e));
26929 })
26930 : onDragging,
26931 onDragStop: events.onDragStop
26932 ? (function (e) {
26933 onDragStop(e);
26934 events.onDragStop(_this.draggingToRowDragEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, e));
26935 })
26936 : onDragStop,
26937 fromGrid: true /* @private */
26938 };
26939 };
26940 RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {
26941 var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;
26942 var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();
26943 var overIndex = -1;
26944 var overNode;
26945 if (!mouseIsPastLastRow) {
26946 overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);
26947 overNode = this.rowModel.getRow(overIndex);
26948 }
26949 var vDirectionString;
26950 switch (draggingEvent.vDirection) {
26951 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["VerticalDirection"].Down:
26952 vDirectionString = 'down';
26953 break;
26954 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["VerticalDirection"].Up:
26955 vDirectionString = 'up';
26956 break;
26957 default:
26958 vDirectionString = null;
26959 break;
26960 }
26961 var event = {
26962 type: type,
26963 api: this.gridOptionsService.api,
26964 columnApi: this.gridOptionsService.columnApi,
26965 context: this.gridOptionsService.context,
26966 event: draggingEvent.event,
26967 node: draggingEvent.dragItem.rowNode,
26968 nodes: draggingEvent.dragItem.rowNodes,
26969 overIndex: overIndex,
26970 overNode: overNode,
26971 y: yNormalised,
26972 vDirection: vDirectionString
26973 };
26974 return event;
26975 };
26976 RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {
26977 var event = this.draggingToRowDragEvent(type, draggingEvent);
26978 this.eventService.dispatchEvent(event);
26979 };
26980 RowDragFeature.prototype.onDragLeave = function (draggingEvent) {
26981 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_LEAVE, draggingEvent);
26982 this.stopDragging(draggingEvent);
26983 if (this.gridOptionsService.is('rowDragManaged')) {
26984 this.clearRowHighlight();
26985 }
26986 if (this.isFromThisGrid(draggingEvent)) {
26987 this.isMultiRowDrag = false;
26988 }
26989 };
26990 RowDragFeature.prototype.onDragStop = function (draggingEvent) {
26991 this.dispatchGridEvent(_eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_DRAG_END, draggingEvent);
26992 this.stopDragging(draggingEvent);
26993 if (this.gridOptionsService.is('rowDragManaged') &&
26994 (this.gridOptionsService.is('suppressMoveWhenRowDragging') || !this.isFromThisGrid(draggingEvent)) &&
26995 !this.isDropZoneWithinThisGrid(draggingEvent)) {
26996 this.moveRowAndClearHighlight(draggingEvent);
26997 }
26998 };
26999 RowDragFeature.prototype.stopDragging = function (draggingEvent) {
27000 this.autoScrollService.ensureCleared();
27001 this.getRowNodes(draggingEvent).forEach(function (rowNode) {
27002 rowNode.setDragging(false);
27003 });
27004 };
27005 __decorate([
27006 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
27007 ], RowDragFeature.prototype, "dragAndDropService", void 0);
27008 __decorate([
27009 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
27010 ], RowDragFeature.prototype, "rowModel", void 0);
27011 __decorate([
27012 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
27013 ], RowDragFeature.prototype, "paginationProxy", void 0);
27014 __decorate([
27015 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
27016 ], RowDragFeature.prototype, "columnModel", void 0);
27017 __decorate([
27018 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusService')
27019 ], RowDragFeature.prototype, "focusService", void 0);
27020 __decorate([
27021 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('sortController')
27022 ], RowDragFeature.prototype, "sortController", void 0);
27023 __decorate([
27024 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('filterManager')
27025 ], RowDragFeature.prototype, "filterManager", void 0);
27026 __decorate([
27027 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('selectionService')
27028 ], RowDragFeature.prototype, "selectionService", void 0);
27029 __decorate([
27030 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('mouseEventService')
27031 ], RowDragFeature.prototype, "mouseEventService", void 0);
27032 __decorate([
27033 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
27034 ], RowDragFeature.prototype, "ctrlsService", void 0);
27035 __decorate([
27036 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Optional"])('rangeService')
27037 ], RowDragFeature.prototype, "rangeService", void 0);
27038 __decorate([
27039 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
27040 ], RowDragFeature.prototype, "postConstruct", null);
27041 return RowDragFeature;
27042}(_context_beanStub__WEBPACK_IMPORTED_MODULE_5__["BeanStub"]));
27043
27044
27045
27046/***/ }),
27047/* 121 */
27048/***/ (function(module, __webpack_exports__, __webpack_require__) {
27049
27050"use strict";
27051__webpack_require__.r(__webpack_exports__);
27052/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoScrollService", function() { return AutoScrollService; });
27053/**
27054 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
27055 * @version v29.2.0
27056 * @link https://www.ag-grid.com/
27057 * @license MIT
27058 */
27059var AutoScrollService = /** @class */ (function () {
27060 function AutoScrollService(params) {
27061 this.tickingInterval = null;
27062 this.onScrollCallback = null;
27063 this.scrollContainer = params.scrollContainer;
27064 this.scrollHorizontally = params.scrollAxis.indexOf('x') !== -1;
27065 this.scrollVertically = params.scrollAxis.indexOf('y') !== -1;
27066 this.scrollByTick = params.scrollByTick != null ? params.scrollByTick : 20;
27067 if (params.onScrollCallback) {
27068 this.onScrollCallback = params.onScrollCallback;
27069 }
27070 if (this.scrollVertically) {
27071 this.getVerticalPosition = params.getVerticalPosition;
27072 this.setVerticalPosition = params.setVerticalPosition;
27073 }
27074 if (this.scrollHorizontally) {
27075 this.getHorizontalPosition = params.getHorizontalPosition;
27076 this.setHorizontalPosition = params.setHorizontalPosition;
27077 }
27078 this.shouldSkipVerticalScroll = params.shouldSkipVerticalScroll || (function () { return false; });
27079 this.shouldSkipHorizontalScroll = params.shouldSkipHorizontalScroll || (function () { return false; });
27080 }
27081 AutoScrollService.prototype.check = function (mouseEvent, forceSkipVerticalScroll) {
27082 if (forceSkipVerticalScroll === void 0) { forceSkipVerticalScroll = false; }
27083 var skipVerticalScroll = forceSkipVerticalScroll || this.shouldSkipVerticalScroll();
27084 if (skipVerticalScroll && this.shouldSkipHorizontalScroll()) {
27085 return;
27086 }
27087 var rect = this.scrollContainer.getBoundingClientRect();
27088 var scrollTick = this.scrollByTick;
27089 this.tickLeft = mouseEvent.clientX < (rect.left + scrollTick);
27090 this.tickRight = mouseEvent.clientX > (rect.right - scrollTick);
27091 this.tickUp = mouseEvent.clientY < (rect.top + scrollTick) && !skipVerticalScroll;
27092 this.tickDown = mouseEvent.clientY > (rect.bottom - scrollTick) && !skipVerticalScroll;
27093 if (this.tickLeft || this.tickRight || this.tickUp || this.tickDown) {
27094 this.ensureTickingStarted();
27095 }
27096 else {
27097 this.ensureCleared();
27098 }
27099 };
27100 AutoScrollService.prototype.ensureTickingStarted = function () {
27101 if (this.tickingInterval === null) {
27102 this.tickingInterval = window.setInterval(this.doTick.bind(this), 100);
27103 this.tickCount = 0;
27104 }
27105 };
27106 AutoScrollService.prototype.doTick = function () {
27107 this.tickCount++;
27108 var tickAmount;
27109 tickAmount = this.tickCount > 20 ? 200 : (this.tickCount > 10 ? 80 : 40);
27110 if (this.scrollVertically) {
27111 var vScrollPosition = this.getVerticalPosition();
27112 if (this.tickUp) {
27113 this.setVerticalPosition(vScrollPosition - tickAmount);
27114 }
27115 if (this.tickDown) {
27116 this.setVerticalPosition(vScrollPosition + tickAmount);
27117 }
27118 }
27119 if (this.scrollHorizontally) {
27120 var hScrollPosition = this.getHorizontalPosition();
27121 if (this.tickLeft) {
27122 this.setHorizontalPosition(hScrollPosition - tickAmount);
27123 }
27124 if (this.tickRight) {
27125 this.setHorizontalPosition(hScrollPosition + tickAmount);
27126 }
27127 }
27128 if (this.onScrollCallback) {
27129 this.onScrollCallback();
27130 }
27131 };
27132 AutoScrollService.prototype.ensureCleared = function () {
27133 if (this.tickingInterval) {
27134 window.clearInterval(this.tickingInterval);
27135 this.tickingInterval = null;
27136 }
27137 };
27138 return AutoScrollService;
27139}());
27140
27141
27142
27143/***/ }),
27144/* 122 */
27145/***/ (function(module, __webpack_exports__, __webpack_require__) {
27146
27147"use strict";
27148__webpack_require__.r(__webpack_exports__);
27149/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerName", function() { return RowContainerName; });
27150/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerType", function() { return RowContainerType; });
27151/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRowContainerTypeForName", function() { return getRowContainerTypeForName; });
27152/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerCtrl", function() { return RowContainerCtrl; });
27153/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
27154/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
27155/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
27156/* harmony import */ var _rowContainerEventsFeature__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(123);
27157/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
27158/* harmony import */ var _viewportSizeFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(135);
27159/* harmony import */ var _utils_map__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32);
27160/* harmony import */ var _setPinnedLeftWidthFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(136);
27161/* harmony import */ var _setPinnedRightWidthFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(137);
27162/* harmony import */ var _setHeightFeature__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(138);
27163/* harmony import */ var _dragListenerFeature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(139);
27164/* harmony import */ var _centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(140);
27165/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(42);
27166/**
27167 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
27168 * @version v29.2.0
27169 * @link https://www.ag-grid.com/
27170 * @license MIT
27171 */
27172var __extends = (undefined && undefined.__extends) || (function () {
27173 var extendStatics = function (d, b) {
27174 extendStatics = Object.setPrototypeOf ||
27175 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27176 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
27177 return extendStatics(d, b);
27178 };
27179 return function (d, b) {
27180 extendStatics(d, b);
27181 function __() { this.constructor = d; }
27182 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27183 };
27184})();
27185var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27186 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27187 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27188 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;
27189 return c > 3 && r && Object.defineProperty(target, key, r), r;
27190};
27191var __read = (undefined && undefined.__read) || function (o, n) {
27192 var m = typeof Symbol === "function" && o[Symbol.iterator];
27193 if (!m) return o;
27194 var i = m.call(o), r, ar = [], e;
27195 try {
27196 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27197 }
27198 catch (error) { e = { error: error }; }
27199 finally {
27200 try {
27201 if (r && !r.done && (m = i["return"])) m.call(i);
27202 }
27203 finally { if (e) throw e.error; }
27204 }
27205 return ar;
27206};
27207var __spread = (undefined && undefined.__spread) || function () {
27208 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
27209 return ar;
27210};
27211
27212
27213
27214
27215
27216
27217
27218
27219
27220
27221
27222
27223
27224var RowContainerName;
27225(function (RowContainerName) {
27226 RowContainerName["LEFT"] = "left";
27227 RowContainerName["RIGHT"] = "right";
27228 RowContainerName["CENTER"] = "center";
27229 RowContainerName["FULL_WIDTH"] = "fullWidth";
27230 RowContainerName["TOP_LEFT"] = "topLeft";
27231 RowContainerName["TOP_RIGHT"] = "topRight";
27232 RowContainerName["TOP_CENTER"] = "topCenter";
27233 RowContainerName["TOP_FULL_WIDTH"] = "topFullWidth";
27234 RowContainerName["STICKY_TOP_LEFT"] = "stickyTopLeft";
27235 RowContainerName["STICKY_TOP_RIGHT"] = "stickyTopRight";
27236 RowContainerName["STICKY_TOP_CENTER"] = "stickyTopCenter";
27237 RowContainerName["STICKY_TOP_FULL_WIDTH"] = "stickyTopFullWidth";
27238 RowContainerName["BOTTOM_LEFT"] = "bottomLeft";
27239 RowContainerName["BOTTOM_RIGHT"] = "bottomRight";
27240 RowContainerName["BOTTOM_CENTER"] = "bottomCenter";
27241 RowContainerName["BOTTOM_FULL_WIDTH"] = "bottomFullWidth";
27242})(RowContainerName || (RowContainerName = {}));
27243var RowContainerType;
27244(function (RowContainerType) {
27245 RowContainerType["LEFT"] = "left";
27246 RowContainerType["RIGHT"] = "right";
27247 RowContainerType["CENTER"] = "center";
27248 RowContainerType["FULL_WIDTH"] = "fullWidth";
27249})(RowContainerType || (RowContainerType = {}));
27250function getRowContainerTypeForName(name) {
27251 switch (name) {
27252 case RowContainerName.CENTER:
27253 case RowContainerName.TOP_CENTER:
27254 case RowContainerName.STICKY_TOP_CENTER:
27255 case RowContainerName.BOTTOM_CENTER:
27256 return RowContainerType.CENTER;
27257 case RowContainerName.LEFT:
27258 case RowContainerName.TOP_LEFT:
27259 case RowContainerName.STICKY_TOP_LEFT:
27260 case RowContainerName.BOTTOM_LEFT:
27261 return RowContainerType.LEFT;
27262 case RowContainerName.RIGHT:
27263 case RowContainerName.TOP_RIGHT:
27264 case RowContainerName.STICKY_TOP_RIGHT:
27265 case RowContainerName.BOTTOM_RIGHT:
27266 return RowContainerType.RIGHT;
27267 case RowContainerName.FULL_WIDTH:
27268 case RowContainerName.TOP_FULL_WIDTH:
27269 case RowContainerName.STICKY_TOP_FULL_WIDTH:
27270 case RowContainerName.BOTTOM_FULL_WIDTH:
27271 return RowContainerType.FULL_WIDTH;
27272 default:
27273 throw Error('Invalid Row Container Type');
27274 }
27275}
27276var ContainerCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
27277 [RowContainerName.CENTER, 'ag-center-cols-container'],
27278 [RowContainerName.LEFT, 'ag-pinned-left-cols-container'],
27279 [RowContainerName.RIGHT, 'ag-pinned-right-cols-container'],
27280 [RowContainerName.FULL_WIDTH, 'ag-full-width-container'],
27281 [RowContainerName.TOP_CENTER, 'ag-floating-top-container'],
27282 [RowContainerName.TOP_LEFT, 'ag-pinned-left-floating-top'],
27283 [RowContainerName.TOP_RIGHT, 'ag-pinned-right-floating-top'],
27284 [RowContainerName.TOP_FULL_WIDTH, 'ag-floating-top-full-width-container'],
27285 [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-container'],
27286 [RowContainerName.STICKY_TOP_LEFT, 'ag-pinned-left-sticky-top'],
27287 [RowContainerName.STICKY_TOP_RIGHT, 'ag-pinned-right-sticky-top'],
27288 [RowContainerName.STICKY_TOP_FULL_WIDTH, 'ag-sticky-top-full-width-container'],
27289 [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-container'],
27290 [RowContainerName.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],
27291 [RowContainerName.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],
27292 [RowContainerName.BOTTOM_FULL_WIDTH, 'ag-floating-bottom-full-width-container'],
27293]);
27294var ViewportCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
27295 [RowContainerName.CENTER, 'ag-center-cols-viewport'],
27296 [RowContainerName.TOP_CENTER, 'ag-floating-top-viewport'],
27297 [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-viewport'],
27298 [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],
27299]);
27300var WrapperCssClasses = Object(_utils_map__WEBPACK_IMPORTED_MODULE_6__["convertToMap"])([
27301 [RowContainerName.CENTER, 'ag-center-cols-clipper'],
27302]);
27303var RowContainerCtrl = /** @class */ (function (_super) {
27304 __extends(RowContainerCtrl, _super);
27305 function RowContainerCtrl(name) {
27306 var _this = _super.call(this) || this;
27307 _this.visible = true;
27308 // Maintaining a constant reference enables optimization in React.
27309 _this.EMPTY_CTRLS = [];
27310 _this.name = name;
27311 _this.isFullWithContainer =
27312 _this.name === RowContainerName.TOP_FULL_WIDTH
27313 || _this.name === RowContainerName.STICKY_TOP_FULL_WIDTH
27314 || _this.name === RowContainerName.BOTTOM_FULL_WIDTH
27315 || _this.name === RowContainerName.FULL_WIDTH;
27316 return _this;
27317 }
27318 RowContainerCtrl.getRowContainerCssClasses = function (name) {
27319 var containerClass = ContainerCssClasses.get(name);
27320 var viewportClass = ViewportCssClasses.get(name);
27321 var wrapperClass = WrapperCssClasses.get(name);
27322 return { container: containerClass, viewport: viewportClass, wrapper: wrapperClass };
27323 };
27324 RowContainerCtrl.getPinned = function (name) {
27325 switch (name) {
27326 case RowContainerName.BOTTOM_LEFT:
27327 case RowContainerName.TOP_LEFT:
27328 case RowContainerName.STICKY_TOP_LEFT:
27329 case RowContainerName.LEFT:
27330 return 'left';
27331 case RowContainerName.BOTTOM_RIGHT:
27332 case RowContainerName.TOP_RIGHT:
27333 case RowContainerName.STICKY_TOP_RIGHT:
27334 case RowContainerName.RIGHT:
27335 return 'right';
27336 default:
27337 return null;
27338 }
27339 };
27340 RowContainerCtrl.prototype.postConstruct = function () {
27341 var _this = this;
27342 this.enableRtl = this.gridOptionsService.is('enableRtl');
27343 this.embedFullWidthRows = this.gridOptionsService.is('embedFullWidthRows');
27344 this.forContainers([RowContainerName.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new _viewportSizeFeature__WEBPACK_IMPORTED_MODULE_5__["ViewportSizeFeature"](_this)); });
27345 };
27346 RowContainerCtrl.prototype.registerWithCtrlsService = function () {
27347 switch (this.name) {
27348 case RowContainerName.CENTER:
27349 this.ctrlsService.registerCenterRowContainerCtrl(this);
27350 break;
27351 case RowContainerName.LEFT:
27352 this.ctrlsService.registerLeftRowContainerCtrl(this);
27353 break;
27354 case RowContainerName.RIGHT:
27355 this.ctrlsService.registerRightRowContainerCtrl(this);
27356 break;
27357 case RowContainerName.TOP_CENTER:
27358 this.ctrlsService.registerTopCenterRowContainerCtrl(this);
27359 break;
27360 case RowContainerName.TOP_LEFT:
27361 this.ctrlsService.registerTopLeftRowContainerCon(this);
27362 break;
27363 case RowContainerName.TOP_RIGHT:
27364 this.ctrlsService.registerTopRightRowContainerCtrl(this);
27365 break;
27366 case RowContainerName.STICKY_TOP_CENTER:
27367 this.ctrlsService.registerStickyTopCenterRowContainerCtrl(this);
27368 break;
27369 case RowContainerName.STICKY_TOP_LEFT:
27370 this.ctrlsService.registerStickyTopLeftRowContainerCon(this);
27371 break;
27372 case RowContainerName.STICKY_TOP_RIGHT:
27373 this.ctrlsService.registerStickyTopRightRowContainerCtrl(this);
27374 break;
27375 case RowContainerName.BOTTOM_CENTER:
27376 this.ctrlsService.registerBottomCenterRowContainerCtrl(this);
27377 break;
27378 case RowContainerName.BOTTOM_LEFT:
27379 this.ctrlsService.registerBottomLeftRowContainerCtrl(this);
27380 break;
27381 case RowContainerName.BOTTOM_RIGHT:
27382 this.ctrlsService.registerBottomRightRowContainerCtrl(this);
27383 break;
27384 }
27385 };
27386 RowContainerCtrl.prototype.forContainers = function (names, callback) {
27387 if (names.indexOf(this.name) >= 0) {
27388 callback();
27389 }
27390 };
27391 RowContainerCtrl.prototype.getContainerElement = function () {
27392 return this.eContainer;
27393 };
27394 RowContainerCtrl.prototype.getViewportSizeFeature = function () {
27395 return this.viewportSizeFeature;
27396 };
27397 RowContainerCtrl.prototype.setComp = function (view, eContainer, eViewport, eWrapper) {
27398 var _this = this;
27399 this.comp = view;
27400 this.eContainer = eContainer;
27401 this.eViewport = eViewport;
27402 this.eWrapper = eWrapper;
27403 this.createManagedBean(new _rowContainerEventsFeature__WEBPACK_IMPORTED_MODULE_3__["RowContainerEventsFeature"](this.eContainer));
27404 this.addPreventScrollWhileDragging();
27405 this.listenOnDomOrder();
27406 this.stopHScrollOnPinnedRows();
27407 var allTopNoFW = [RowContainerName.TOP_CENTER, RowContainerName.TOP_LEFT, RowContainerName.TOP_RIGHT];
27408 var allStickyTopNoFW = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT];
27409 var allBottomNoFW = [RowContainerName.BOTTOM_CENTER, RowContainerName.BOTTOM_LEFT, RowContainerName.BOTTOM_RIGHT];
27410 var allMiddleNoFW = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT];
27411 var allNoFW = __spread(allTopNoFW, allBottomNoFW, allMiddleNoFW, allStickyTopNoFW);
27412 var allMiddle = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT, RowContainerName.FULL_WIDTH];
27413 var allCenter = [RowContainerName.CENTER, RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER];
27414 var allLeft = [RowContainerName.LEFT, RowContainerName.BOTTOM_LEFT, RowContainerName.TOP_LEFT, RowContainerName.STICKY_TOP_LEFT];
27415 var allRight = [RowContainerName.RIGHT, RowContainerName.BOTTOM_RIGHT, RowContainerName.TOP_RIGHT, RowContainerName.STICKY_TOP_RIGHT];
27416 this.forContainers(allLeft, function () {
27417 _this.pinnedWidthFeature = _this.createManagedBean(new _setPinnedLeftWidthFeature__WEBPACK_IMPORTED_MODULE_7__["SetPinnedLeftWidthFeature"](_this.eContainer));
27418 _this.addManagedListener(_this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, function () { return _this.onPinnedWidthChanged(); });
27419 });
27420 this.forContainers(allRight, function () {
27421 _this.pinnedWidthFeature = _this.createManagedBean(new _setPinnedRightWidthFeature__WEBPACK_IMPORTED_MODULE_8__["SetPinnedRightWidthFeature"](_this.eContainer));
27422 _this.addManagedListener(_this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, function () { return _this.onPinnedWidthChanged(); });
27423 });
27424 this.forContainers(allMiddle, function () { return _this.createManagedBean(new _setHeightFeature__WEBPACK_IMPORTED_MODULE_9__["SetHeightFeature"](_this.eContainer, _this.eWrapper)); });
27425 this.forContainers(allNoFW, function () { return _this.createManagedBean(new _dragListenerFeature__WEBPACK_IMPORTED_MODULE_10__["DragListenerFeature"](_this.eContainer)); });
27426 this.forContainers(allCenter, function () { return _this.createManagedBean(new _centerWidthFeature__WEBPACK_IMPORTED_MODULE_11__["CenterWidthFeature"](function (width) { return _this.comp.setContainerWidth(width + "px"); })); });
27427 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_12__["isInvisibleScrollbar"])()) {
27428 this.forContainers([RowContainerName.CENTER], function () {
27429 var pinnedWidthChangedEvent = _this.enableRtl ? _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED : _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED;
27430 _this.addManagedListener(_this.eventService, pinnedWidthChangedEvent, function () { return _this.refreshPaddingForFakeScrollbar(); });
27431 });
27432 this.refreshPaddingForFakeScrollbar();
27433 }
27434 this.addListeners();
27435 this.registerWithCtrlsService();
27436 };
27437 RowContainerCtrl.prototype.refreshPaddingForFakeScrollbar = function () {
27438 var _a = this, enableRtl = _a.enableRtl, columnModel = _a.columnModel, name = _a.name, eWrapper = _a.eWrapper, eContainer = _a.eContainer;
27439 var sideToCheck = enableRtl ? RowContainerName.LEFT : RowContainerName.RIGHT;
27440 this.forContainers([RowContainerName.CENTER, sideToCheck], function () {
27441 var pinnedWidth = columnModel.getContainerWidth(sideToCheck);
27442 var marginSide = enableRtl ? 'marginLeft' : 'marginRight';
27443 if (name === RowContainerName.CENTER) {
27444 eWrapper.style[marginSide] = pinnedWidth ? '0px' : '16px';
27445 }
27446 else {
27447 eContainer.style[marginSide] = pinnedWidth ? '16px' : '0px';
27448 }
27449 });
27450 };
27451 RowContainerCtrl.prototype.addListeners = function () {
27452 var _this = this;
27453 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, function () { return _this.onScrollVisibilityChanged(); });
27454 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, function () { return _this.onDisplayedColumnsChanged(); });
27455 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () { return _this.onDisplayedColumnsWidthChanged(); });
27456 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_ROWS_CHANGED, function () { return _this.onDisplayedRowsChanged(); });
27457 this.onScrollVisibilityChanged();
27458 this.onDisplayedColumnsChanged();
27459 this.onDisplayedColumnsWidthChanged();
27460 this.onDisplayedRowsChanged();
27461 };
27462 RowContainerCtrl.prototype.listenOnDomOrder = function () {
27463 var _this = this;
27464 // sticky section must show rows in set order
27465 var allStickyContainers = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT, RowContainerName.STICKY_TOP_FULL_WIDTH];
27466 var isStickContainer = allStickyContainers.indexOf(this.name) >= 0;
27467 if (isStickContainer) {
27468 this.comp.setDomOrder(true);
27469 return;
27470 }
27471 var listener = function () {
27472 var isEnsureDomOrder = _this.gridOptionsService.is('ensureDomOrder');
27473 var isPrintLayout = _this.gridOptionsService.isDomLayout('print');
27474 _this.comp.setDomOrder(isEnsureDomOrder || isPrintLayout);
27475 };
27476 this.addManagedPropertyListener('domLayout', listener);
27477 listener();
27478 };
27479 // when editing a pinned row, if the cell is half outside the scrollable area, the browser can
27480 // scroll the column into view. we do not want this, the pinned sections should never scroll.
27481 // so we listen to scrolls on these containers and reset the scroll if we find one.
27482 RowContainerCtrl.prototype.stopHScrollOnPinnedRows = function () {
27483 var _this = this;
27484 this.forContainers([RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER], function () {
27485 var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };
27486 _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);
27487 });
27488 };
27489 RowContainerCtrl.prototype.onDisplayedColumnsChanged = function () {
27490 var _this = this;
27491 this.forContainers([RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });
27492 };
27493 RowContainerCtrl.prototype.onDisplayedColumnsWidthChanged = function () {
27494 var _this = this;
27495 this.forContainers([RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });
27496 };
27497 RowContainerCtrl.prototype.onScrollVisibilityChanged = function () {
27498 if (this.name !== RowContainerName.CENTER) {
27499 return;
27500 }
27501 var visible = this.scrollVisibleService.isHorizontalScrollShowing();
27502 var scrollbarWidth = visible ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;
27503 var height = scrollbarWidth == 0 ? '100%' : "calc(100% + " + scrollbarWidth + "px)";
27504 this.comp.setViewportHeight(height);
27505 };
27506 // this methods prevents the grid views from being scrolled while the dragService is being used
27507 // eg. the view should not scroll up and down while dragging rows using the rowDragComp.
27508 RowContainerCtrl.prototype.addPreventScrollWhileDragging = function () {
27509 var _this = this;
27510 var preventScroll = function (e) {
27511 if (_this.dragService.isDragging()) {
27512 if (e.cancelable) {
27513 e.preventDefault();
27514 }
27515 }
27516 };
27517 this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });
27518 this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });
27519 };
27520 // this gets called whenever a change in the viewport, so we can inform column controller it has to work
27521 // out the virtual columns again. gets called from following locations:
27522 // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged
27523 RowContainerCtrl.prototype.onHorizontalViewportChanged = function () {
27524 var scrollWidth = this.getCenterWidth();
27525 var scrollPosition = this.getCenterViewportScrollLeft();
27526 this.columnModel.setViewportPosition(scrollWidth, scrollPosition);
27527 };
27528 RowContainerCtrl.prototype.getCenterWidth = function () {
27529 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getInnerWidth"])(this.eViewport);
27530 };
27531 RowContainerCtrl.prototype.getCenterViewportScrollLeft = function () {
27532 // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser
27533 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getScrollLeft"])(this.eViewport, this.enableRtl);
27534 };
27535 RowContainerCtrl.prototype.registerViewportResizeListener = function (listener) {
27536 var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);
27537 this.addDestroyFunc(function () { return unsubscribeFromResize(); });
27538 };
27539 RowContainerCtrl.prototype.isViewportVisible = function () {
27540 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isVisible"])(this.eViewport);
27541 };
27542 RowContainerCtrl.prototype.isViewportHScrollShowing = function () {
27543 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isHorizontalScrollShowing"])(this.eViewport);
27544 };
27545 RowContainerCtrl.prototype.getViewportScrollLeft = function () {
27546 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["getScrollLeft"])(this.eViewport, this.enableRtl);
27547 };
27548 RowContainerCtrl.prototype.isHorizontalScrollShowing = function () {
27549 var isAlwaysShowHorizontalScroll = this.gridOptionsService.is('alwaysShowHorizontalScroll');
27550 return isAlwaysShowHorizontalScroll || Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["isHorizontalScrollShowing"])(this.eViewport);
27551 };
27552 RowContainerCtrl.prototype.getViewportElement = function () {
27553 return this.eViewport;
27554 };
27555 RowContainerCtrl.prototype.setContainerTranslateX = function (amount) {
27556 this.eContainer.style.transform = "translateX(" + amount + "px)";
27557 };
27558 RowContainerCtrl.prototype.getHScrollPosition = function () {
27559 var res = {
27560 left: this.eViewport.scrollLeft,
27561 right: this.eViewport.scrollLeft + this.eViewport.offsetWidth
27562 };
27563 return res;
27564 };
27565 RowContainerCtrl.prototype.setCenterViewportScrollLeft = function (value) {
27566 // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser
27567 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setScrollLeft"])(this.eViewport, value, this.enableRtl);
27568 };
27569 RowContainerCtrl.prototype.isContainerVisible = function () {
27570 var pinned = RowContainerCtrl.getPinned(this.name);
27571 return !pinned || (!!this.pinnedWidthFeature && this.pinnedWidthFeature.getWidth() > 0);
27572 };
27573 RowContainerCtrl.prototype.onPinnedWidthChanged = function () {
27574 var visible = this.isContainerVisible();
27575 if (this.visible != visible) {
27576 this.visible = visible;
27577 this.onDisplayedRowsChanged();
27578 }
27579 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_12__["isInvisibleScrollbar"])()) {
27580 this.refreshPaddingForFakeScrollbar();
27581 }
27582 };
27583 RowContainerCtrl.prototype.onDisplayedRowsChanged = function () {
27584 var _this = this;
27585 if (this.visible) {
27586 var printLayout_1 = this.gridOptionsService.isDomLayout('print');
27587 var doesRowMatch = function (rowCtrl) {
27588 var fullWidthRow = rowCtrl.isFullWidth();
27589 var embedFW = _this.embedFullWidthRows || printLayout_1;
27590 var match = _this.isFullWithContainer ?
27591 !embedFW && fullWidthRow
27592 : embedFW || !fullWidthRow;
27593 return match;
27594 };
27595 // this list contains either all pinned top, center or pinned bottom rows
27596 // this filters out rows not for this container, eg if it's a full with row, but we are not full with container
27597 var rowsThisContainer = this.getRowCtrls().filter(doesRowMatch);
27598 this.comp.setRowCtrls(rowsThisContainer);
27599 }
27600 else {
27601 this.comp.setRowCtrls(this.EMPTY_CTRLS);
27602 }
27603 };
27604 RowContainerCtrl.prototype.getRowCtrls = function () {
27605 switch (this.name) {
27606 case RowContainerName.TOP_CENTER:
27607 case RowContainerName.TOP_LEFT:
27608 case RowContainerName.TOP_RIGHT:
27609 case RowContainerName.TOP_FULL_WIDTH:
27610 return this.rowRenderer.getTopRowCtrls();
27611 case RowContainerName.STICKY_TOP_CENTER:
27612 case RowContainerName.STICKY_TOP_LEFT:
27613 case RowContainerName.STICKY_TOP_RIGHT:
27614 case RowContainerName.STICKY_TOP_FULL_WIDTH:
27615 return this.rowRenderer.getStickyTopRowCtrls();
27616 case RowContainerName.BOTTOM_CENTER:
27617 case RowContainerName.BOTTOM_LEFT:
27618 case RowContainerName.BOTTOM_RIGHT:
27619 case RowContainerName.BOTTOM_FULL_WIDTH:
27620 return this.rowRenderer.getBottomRowCtrls();
27621 default:
27622 return this.rowRenderer.getRowCtrls();
27623 }
27624 };
27625 __decorate([
27626 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
27627 ], RowContainerCtrl.prototype, "scrollVisibleService", void 0);
27628 __decorate([
27629 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragService')
27630 ], RowContainerCtrl.prototype, "dragService", void 0);
27631 __decorate([
27632 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
27633 ], RowContainerCtrl.prototype, "ctrlsService", void 0);
27634 __decorate([
27635 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
27636 ], RowContainerCtrl.prototype, "columnModel", void 0);
27637 __decorate([
27638 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('resizeObserverService')
27639 ], RowContainerCtrl.prototype, "resizeObserverService", void 0);
27640 __decorate([
27641 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
27642 ], RowContainerCtrl.prototype, "rowRenderer", void 0);
27643 __decorate([
27644 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
27645 ], RowContainerCtrl.prototype, "postConstruct", null);
27646 return RowContainerCtrl;
27647}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
27648
27649
27650
27651/***/ }),
27652/* 123 */
27653/***/ (function(module, __webpack_exports__, __webpack_require__) {
27654
27655"use strict";
27656__webpack_require__.r(__webpack_exports__);
27657/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerEventsFeature", function() { return RowContainerEventsFeature; });
27658/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
27659/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18);
27660/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
27661/* harmony import */ var _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(124);
27662/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42);
27663/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86);
27664/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(47);
27665/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(25);
27666/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48);
27667/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
27668/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(19);
27669/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(15);
27670/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(14);
27671/* harmony import */ var _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(125);
27672/**
27673 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
27674 * @version v29.2.0
27675 * @link https://www.ag-grid.com/
27676 * @license MIT
27677 */
27678var __extends = (undefined && undefined.__extends) || (function () {
27679 var extendStatics = function (d, b) {
27680 extendStatics = Object.setPrototypeOf ||
27681 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
27682 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
27683 return extendStatics(d, b);
27684 };
27685 return function (d, b) {
27686 extendStatics(d, b);
27687 function __() { this.constructor = d; }
27688 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
27689 };
27690})();
27691var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
27692 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27693 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
27694 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;
27695 return c > 3 && r && Object.defineProperty(target, key, r), r;
27696};
27697var __read = (undefined && undefined.__read) || function (o, n) {
27698 var m = typeof Symbol === "function" && o[Symbol.iterator];
27699 if (!m) return o;
27700 var i = m.call(o), r, ar = [], e;
27701 try {
27702 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
27703 }
27704 catch (error) { e = { error: error }; }
27705 finally {
27706 try {
27707 if (r && !r.done && (m = i["return"])) m.call(i);
27708 }
27709 finally { if (e) throw e.error; }
27710 }
27711 return ar;
27712};
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728var RowContainerEventsFeature = /** @class */ (function (_super) {
27729 __extends(RowContainerEventsFeature, _super);
27730 function RowContainerEventsFeature(element) {
27731 var _this = _super.call(this) || this;
27732 _this.element = element;
27733 return _this;
27734 }
27735 RowContainerEventsFeature.prototype.postConstruct = function () {
27736 this.addMouseListeners();
27737 this.mockContextMenuForIPad();
27738 this.addKeyboardEvents();
27739 };
27740 RowContainerEventsFeature.prototype.addKeyboardEvents = function () {
27741 var _this = this;
27742 var eventNames = ['keydown', 'keypress'];
27743 eventNames.forEach(function (eventName) {
27744 var listener = _this.processKeyboardEvent.bind(_this, eventName);
27745 _this.addManagedListener(_this.element, eventName, listener);
27746 });
27747 };
27748 RowContainerEventsFeature.prototype.addMouseListeners = function () {
27749 var _this = this;
27750 var mouseDownEvent = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["isEventSupported"])('touchstart') ? 'touchstart' : 'mousedown';
27751 var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', mouseDownEvent];
27752 eventNames.forEach(function (eventName) {
27753 var listener = _this.processMouseEvent.bind(_this, eventName);
27754 _this.addManagedListener(_this.element, eventName, listener);
27755 });
27756 };
27757 RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {
27758 if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||
27759 Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["isStopPropagationForAgGrid"])(mouseEvent)) {
27760 return;
27761 }
27762 var rowComp = this.getRowForEvent(mouseEvent);
27763 var cellCtrl = this.mouseEventService.getRenderedCellForEvent(mouseEvent);
27764 if (eventName === "contextmenu") {
27765 this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellCtrl);
27766 }
27767 else {
27768 if (cellCtrl) {
27769 cellCtrl.onMouseEvent(eventName, mouseEvent);
27770 }
27771 if (rowComp) {
27772 rowComp.onMouseEvent(eventName, mouseEvent);
27773 }
27774 }
27775 };
27776 RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {
27777 var _this = this;
27778 // we do NOT want this when not in iPad, otherwise we will be doing
27779 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_4__["isIOSUserAgent"])()) {
27780 return;
27781 }
27782 var touchListener = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__["TouchListener"](this.element);
27783 var longTapListener = function (event) {
27784 var rowComp = _this.getRowForEvent(event.touchEvent);
27785 var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);
27786 _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);
27787 };
27788 this.addManagedListener(touchListener, _widgets_touchListener__WEBPACK_IMPORTED_MODULE_5__["TouchListener"].EVENT_LONG_TAP, longTapListener);
27789 this.addDestroyFunc(function () { return touchListener.destroy(); });
27790 };
27791 RowContainerEventsFeature.prototype.getRowForEvent = function (event) {
27792 var sourceElement = event.target;
27793 while (sourceElement) {
27794 var rowCon = this.gridOptionsService.getDomData(sourceElement, _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_3__["RowCtrl"].DOM_DATA_KEY_ROW_CTRL);
27795 if (rowCon) {
27796 return rowCon;
27797 }
27798 sourceElement = sourceElement.parentElement;
27799 }
27800 return null;
27801 };
27802 RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellCtrl) {
27803 var rowNode = rowComp ? rowComp.getRowNode() : null;
27804 var column = cellCtrl ? cellCtrl.getColumn() : null;
27805 var value = null;
27806 if (column) {
27807 var event_1 = mouseEvent ? mouseEvent : touchEvent;
27808 cellCtrl.dispatchCellContextMenuEvent(event_1);
27809 value = this.valueService.getValue(column, rowNode);
27810 }
27811 // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel
27812 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
27813 var anchorToElement = cellCtrl ? cellCtrl.getGui() : gridBodyCon.getGridBodyElement();
27814 if (this.contextMenuFactory) {
27815 this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);
27816 }
27817 };
27818 RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {
27819 var cellComp = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getCtrlForEvent"])(this.gridOptionsService, keyboardEvent, _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_13__["CellCtrl"].DOM_DATA_KEY_CELL_CTRL);
27820 var rowComp = Object(_utils_event__WEBPACK_IMPORTED_MODULE_1__["getCtrlForEvent"])(this.gridOptionsService, keyboardEvent, _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_3__["RowCtrl"].DOM_DATA_KEY_ROW_CTRL);
27821 if (keyboardEvent.defaultPrevented) {
27822 return;
27823 }
27824 if (cellComp) {
27825 this.processCellKeyboardEvent(cellComp, eventName, keyboardEvent);
27826 }
27827 else if (rowComp && rowComp.isFullWidth()) {
27828 this.processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent);
27829 }
27830 };
27831 RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellCtrl, eventName, keyboardEvent) {
27832 var rowNode = cellCtrl.getRowNode();
27833 var column = cellCtrl.getColumn();
27834 var editing = cellCtrl.isEditing();
27835 var gridProcessingAllowed = !Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["isUserSuppressingKeyboardEvent"])(this.gridOptionsService, keyboardEvent, rowNode, column, editing);
27836 if (gridProcessingAllowed) {
27837 switch (eventName) {
27838 case 'keydown':
27839 // first see if it's a scroll key, page up / down, home / end etc
27840 var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);
27841 // if not a scroll key, then we pass onto cell
27842 if (!wasScrollKey) {
27843 cellCtrl.onKeyDown(keyboardEvent);
27844 }
27845 // perform clipboard and undo / redo operations
27846 this.doGridOperations(keyboardEvent, cellCtrl.isEditing());
27847 break;
27848 case 'keypress':
27849 cellCtrl.onKeyPress(keyboardEvent);
27850 break;
27851 }
27852 }
27853 if (eventName === 'keydown') {
27854 var cellKeyDownEvent = cellCtrl.createEvent(keyboardEvent, _events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_DOWN);
27855 this.eventService.dispatchEvent(cellKeyDownEvent);
27856 }
27857 if (eventName === 'keypress') {
27858 var cellKeyPressEvent = cellCtrl.createEvent(keyboardEvent, _events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_PRESS);
27859 this.eventService.dispatchEvent(cellKeyPressEvent);
27860 }
27861 };
27862 RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {
27863 var rowNode = rowComp.getRowNode();
27864 var focusedCell = this.focusService.getFocusedCell();
27865 var column = (focusedCell && focusedCell.column);
27866 var gridProcessingAllowed = !Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["isUserSuppressingKeyboardEvent"])(this.gridOptionsService, keyboardEvent, rowNode, column, false);
27867 if (gridProcessingAllowed) {
27868 var key = keyboardEvent.key;
27869 if (eventName === 'keydown') {
27870 switch (key) {
27871 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].PAGE_HOME:
27872 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].PAGE_END:
27873 this.navigationService.handlePageScrollingKey(keyboardEvent);
27874 break;
27875 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].UP:
27876 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].DOWN:
27877 rowComp.onKeyboardNavigate(keyboardEvent);
27878 break;
27879 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].TAB:
27880 rowComp.onTabKeyDown(keyboardEvent);
27881 break;
27882 default:
27883 }
27884 }
27885 }
27886 if (eventName === 'keydown') {
27887 var cellKeyDownEvent = rowComp.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_DOWN, keyboardEvent);
27888 this.eventService.dispatchEvent(cellKeyDownEvent);
27889 }
27890 if (eventName === 'keypress') {
27891 var cellKeyPressEvent = rowComp.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_7__["Events"].EVENT_CELL_KEY_PRESS, keyboardEvent);
27892 this.eventService.dispatchEvent(cellKeyPressEvent);
27893 }
27894 };
27895 RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, editing) {
27896 // check if ctrl or meta key pressed
27897 if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {
27898 return;
27899 }
27900 // if the cell the event came from is editing, then we do not
27901 // want to do the default shortcut keys, otherwise the editor
27902 // (eg a text field) would not be able to do the normal cut/copy/paste
27903 if (editing) {
27904 return;
27905 }
27906 // for copy / paste, we don't want to execute when the event
27907 // was from a child grid (happens in master detail)
27908 if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {
27909 return;
27910 }
27911 var keyCode = Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_6__["normaliseQwertyAzerty"])(keyboardEvent);
27912 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].A) {
27913 return this.onCtrlAndA(keyboardEvent);
27914 }
27915 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].C) {
27916 return this.onCtrlAndC(keyboardEvent);
27917 }
27918 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].X) {
27919 return this.onCtrlAndX(keyboardEvent);
27920 }
27921 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].V) {
27922 return this.onCtrlAndV();
27923 }
27924 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].D) {
27925 return this.onCtrlAndD(keyboardEvent);
27926 }
27927 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].Z) {
27928 return this.onCtrlAndZ(keyboardEvent);
27929 }
27930 if (keyCode === _constants_keyCode__WEBPACK_IMPORTED_MODULE_8__["KeyCode"].Y) {
27931 return this.onCtrlAndY();
27932 }
27933 };
27934 RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {
27935 var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeService = _a.rangeService;
27936 if (rangeService && paginationProxy.isRowsToRender()) {
27937 var _b = __read([
27938 pinnedRowModel.isEmpty('top'),
27939 pinnedRowModel.isEmpty('bottom')
27940 ], 2), isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];
27941 var floatingStart = isEmptyPinnedTop ? null : 'top';
27942 var floatingEnd = void 0;
27943 var rowEnd = void 0;
27944 if (isEmptyPinnedBottom) {
27945 floatingEnd = null;
27946 rowEnd = this.paginationProxy.getRowCount() - 1;
27947 }
27948 else {
27949 floatingEnd = 'bottom';
27950 rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;
27951 }
27952 var allDisplayedColumns = this.columnModel.getAllDisplayedColumns();
27953 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["missingOrEmpty"])(allDisplayedColumns)) {
27954 return;
27955 }
27956 rangeService.setCellRange({
27957 rowStartIndex: 0,
27958 rowStartPinned: floatingStart,
27959 rowEndIndex: rowEnd,
27960 rowEndPinned: floatingEnd,
27961 columnStart: allDisplayedColumns[0],
27962 columnEnd: Object(_utils_array__WEBPACK_IMPORTED_MODULE_10__["last"])(allDisplayedColumns)
27963 });
27964 }
27965 event.preventDefault();
27966 };
27967 RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {
27968 if (!this.clipboardService || this.gridOptionsService.is('enableCellTextSelection')) {
27969 return;
27970 }
27971 this.clipboardService.copyToClipboard();
27972 event.preventDefault();
27973 };
27974 RowContainerEventsFeature.prototype.onCtrlAndX = function (event) {
27975 if (!this.clipboardService ||
27976 this.gridOptionsService.is('enableCellTextSelection') ||
27977 this.gridOptionsService.is('suppressCutToClipboard')) {
27978 return;
27979 }
27980 this.clipboardService.cutToClipboard();
27981 event.preventDefault();
27982 };
27983 RowContainerEventsFeature.prototype.onCtrlAndV = function () {
27984 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_11__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_12__["ModuleNames"].ClipboardModule) && !this.gridOptionsService.is('suppressClipboardPaste')) {
27985 this.clipboardService.pasteFromClipboard();
27986 }
27987 };
27988 RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {
27989 if (_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_11__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_12__["ModuleNames"].ClipboardModule) && !this.gridOptionsService.is('suppressClipboardPaste')) {
27990 this.clipboardService.copyRangeDown();
27991 }
27992 event.preventDefault();
27993 };
27994 RowContainerEventsFeature.prototype.onCtrlAndZ = function (event) {
27995 if (!this.gridOptionsService.is('undoRedoCellEditing')) {
27996 return;
27997 }
27998 event.preventDefault();
27999 if (event.shiftKey) {
28000 this.undoRedoService.redo('ui');
28001 }
28002 else {
28003 this.undoRedoService.undo('ui');
28004 }
28005 };
28006 RowContainerEventsFeature.prototype.onCtrlAndY = function () {
28007 this.undoRedoService.redo('ui');
28008 };
28009 __decorate([
28010 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('mouseEventService')
28011 ], RowContainerEventsFeature.prototype, "mouseEventService", void 0);
28012 __decorate([
28013 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('valueService')
28014 ], RowContainerEventsFeature.prototype, "valueService", void 0);
28015 __decorate([
28016 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('contextMenuFactory')
28017 ], RowContainerEventsFeature.prototype, "contextMenuFactory", void 0);
28018 __decorate([
28019 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('ctrlsService')
28020 ], RowContainerEventsFeature.prototype, "ctrlsService", void 0);
28021 __decorate([
28022 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('navigationService')
28023 ], RowContainerEventsFeature.prototype, "navigationService", void 0);
28024 __decorate([
28025 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('focusService')
28026 ], RowContainerEventsFeature.prototype, "focusService", void 0);
28027 __decorate([
28028 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('undoRedoService')
28029 ], RowContainerEventsFeature.prototype, "undoRedoService", void 0);
28030 __decorate([
28031 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnModel')
28032 ], RowContainerEventsFeature.prototype, "columnModel", void 0);
28033 __decorate([
28034 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('paginationProxy')
28035 ], RowContainerEventsFeature.prototype, "paginationProxy", void 0);
28036 __decorate([
28037 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('pinnedRowModel')
28038 ], RowContainerEventsFeature.prototype, "pinnedRowModel", void 0);
28039 __decorate([
28040 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeService')
28041 ], RowContainerEventsFeature.prototype, "rangeService", void 0);
28042 __decorate([
28043 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('clipboardService')
28044 ], RowContainerEventsFeature.prototype, "clipboardService", void 0);
28045 __decorate([
28046 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
28047 ], RowContainerEventsFeature.prototype, "postConstruct", null);
28048 return RowContainerEventsFeature;
28049}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
28050
28051
28052
28053/***/ }),
28054/* 124 */
28055/***/ (function(module, __webpack_exports__, __webpack_require__) {
28056
28057"use strict";
28058__webpack_require__.r(__webpack_exports__);
28059/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowCtrl", function() { return RowCtrl; });
28060/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
28061/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97);
28062/* harmony import */ var _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(110);
28063/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25);
28064/* harmony import */ var _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(122);
28065/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
28066/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
28067/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(41);
28068/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(45);
28069/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18);
28070/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13);
28071/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(7);
28072/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(31);
28073/* harmony import */ var _cell_cellCtrl__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(125);
28074/* harmony import */ var _rowDragComp__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(99);
28075/**
28076 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
28077 * @version v29.2.0
28078 * @link https://www.ag-grid.com/
28079 * @license MIT
28080 */
28081var __extends = (undefined && undefined.__extends) || (function () {
28082 var extendStatics = function (d, b) {
28083 extendStatics = Object.setPrototypeOf ||
28084 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
28085 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
28086 return extendStatics(d, b);
28087 };
28088 return function (d, b) {
28089 extendStatics(d, b);
28090 function __() { this.constructor = d; }
28091 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
28092 };
28093})();
28094var __values = (undefined && undefined.__values) || function(o) {
28095 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
28096 if (m) return m.call(o);
28097 if (o && typeof o.length === "number") return {
28098 next: function () {
28099 if (o && i >= o.length) o = void 0;
28100 return { value: o && o[i++], done: !o };
28101 }
28102 };
28103 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
28104};
28105var __read = (undefined && undefined.__read) || function (o, n) {
28106 var m = typeof Symbol === "function" && o[Symbol.iterator];
28107 if (!m) return o;
28108 var i = m.call(o), r, ar = [], e;
28109 try {
28110 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
28111 }
28112 catch (error) { e = { error: error }; }
28113 finally {
28114 try {
28115 if (r && !r.done && (m = i["return"])) m.call(i);
28116 }
28117 finally { if (e) throw e.error; }
28118 }
28119 return ar;
28120};
28121var __spread = (undefined && undefined.__spread) || function () {
28122 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
28123 return ar;
28124};
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140var RowType;
28141(function (RowType) {
28142 RowType["Normal"] = "Normal";
28143 RowType["FullWidth"] = "FullWidth";
28144 RowType["FullWidthLoading"] = "FullWidthLoading";
28145 RowType["FullWidthGroup"] = "FullWidthGroup";
28146 RowType["FullWidthDetail"] = "FullWidthDetail";
28147})(RowType || (RowType = {}));
28148var instanceIdSequence = 0;
28149var RowCtrl = /** @class */ (function (_super) {
28150 __extends(RowCtrl, _super);
28151 function RowCtrl(rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {
28152 var _this = _super.call(this) || this;
28153 _this.allRowGuis = [];
28154 _this.active = true;
28155 _this.centerCellCtrls = { list: [], map: {} };
28156 _this.leftCellCtrls = { list: [], map: {} };
28157 _this.rightCellCtrls = { list: [], map: {} };
28158 _this.slideInAnimation = {
28159 left: false,
28160 center: false,
28161 right: false,
28162 fullWidth: false
28163 };
28164 _this.fadeInAnimation = {
28165 left: false,
28166 center: false,
28167 right: false,
28168 fullWidth: false
28169 };
28170 _this.lastMouseDownOnDragger = false;
28171 _this.updateColumnListsPending = false;
28172 _this.businessKeySanitised = null;
28173 _this.beans = beans;
28174 _this.rowNode = rowNode;
28175 _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();
28176 _this.useAnimationFrameForCreate = useAnimationFrameForCreate;
28177 _this.printLayout = printLayout;
28178 _this.instanceId = rowNode.id + '-' + instanceIdSequence++;
28179 _this.setAnimateFlags(animateIn);
28180 _this.initRowBusinessKey();
28181 _this.rowFocused = _this.beans.focusService.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);
28182 _this.rowLevel = _this.beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);
28183 _this.setRowType();
28184 _this.addListeners();
28185 return _this;
28186 }
28187 RowCtrl.prototype.initRowBusinessKey = function () {
28188 var businessKeyForNodeFunc = this.beans.gridOptionsService.get('getBusinessKeyForNode');
28189 if (typeof businessKeyForNodeFunc !== 'function') {
28190 return;
28191 }
28192 var businessKey = businessKeyForNodeFunc(this.rowNode);
28193 this.businessKeySanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_12__["escapeString"])(businessKey);
28194 };
28195 RowCtrl.prototype.isSticky = function () {
28196 return this.rowNode.sticky;
28197 };
28198 RowCtrl.prototype.getBeans = function () {
28199 return this.beans;
28200 };
28201 RowCtrl.prototype.getInstanceId = function () {
28202 return this.instanceId;
28203 };
28204 RowCtrl.prototype.setComp = function (rowComp, element, containerType) {
28205 var gui = { rowComp: rowComp, element: element, containerType: containerType };
28206 this.allRowGuis.push(gui);
28207 if (containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].LEFT) {
28208 this.leftGui = gui;
28209 }
28210 else if (containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].RIGHT) {
28211 this.rightGui = gui;
28212 }
28213 else if (containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].FULL_WIDTH) {
28214 this.fullWidthGui = gui;
28215 }
28216 else {
28217 this.centerGui = gui;
28218 }
28219 this.initialiseRowComp(gui);
28220 // pinned rows render before the main grid body in the SSRM, only fire the event after the main body has rendered.
28221 if (this.rowType !== 'FullWidthLoading' && !this.rowNode.rowPinned) {
28222 // this is fired within setComp as we know that the component renderer is now trying to render.
28223 // linked with the fact the function implementation queues behind requestAnimationFrame should allow
28224 // us to be certain that all rendering is done by the time the event fires.
28225 this.beans.rowRenderer.dispatchFirstDataRenderedEvent();
28226 }
28227 };
28228 RowCtrl.prototype.unsetComp = function (containerType) {
28229 this.allRowGuis = this.allRowGuis
28230 .filter(function (rowGui) { return rowGui.containerType !== containerType; });
28231 if (containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].LEFT) {
28232 this.leftGui = undefined;
28233 }
28234 else if (containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].RIGHT) {
28235 this.rightGui = undefined;
28236 }
28237 else if (containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].FULL_WIDTH) {
28238 this.fullWidthGui = undefined;
28239 }
28240 };
28241 RowCtrl.prototype.isCacheable = function () {
28242 return this.rowType === RowType.FullWidthDetail
28243 && this.beans.gridOptionsService.is('keepDetailRows');
28244 };
28245 RowCtrl.prototype.setCached = function (cached) {
28246 var displayValue = cached ? 'none' : '';
28247 this.allRowGuis.forEach(function (rg) { return rg.element.style.display = displayValue; });
28248 };
28249 RowCtrl.prototype.initialiseRowComp = function (gui) {
28250 var _this = this;
28251 var gos = this.beans.gridOptionsService;
28252 this.onRowHeightChanged(gui);
28253 this.updateRowIndexes(gui);
28254 this.setFocusedClasses(gui);
28255 this.setStylesFromGridOptions(gui);
28256 if (gos.isRowSelection() && this.rowNode.selectable) {
28257 this.onRowSelected(gui);
28258 }
28259 this.updateColumnLists(!this.useAnimationFrameForCreate);
28260 var comp = gui.rowComp;
28261 comp.setRole('row');
28262 var initialRowClasses = this.getInitialRowClasses(gui.containerType);
28263 initialRowClasses.forEach(function (name) { return comp.addOrRemoveCssClass(name, true); });
28264 this.executeSlideAndFadeAnimations(gui);
28265 if (this.rowNode.group) {
28266 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaExpanded"])(gui.element, this.rowNode.expanded == true);
28267 }
28268 var rowIdSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_12__["escapeString"])(this.rowNode.id);
28269 if (rowIdSanitised != null) {
28270 comp.setRowId(rowIdSanitised);
28271 }
28272 if (this.businessKeySanitised != null) {
28273 comp.setRowBusinessKey(this.businessKeySanitised);
28274 }
28275 if (this.isFullWidth() && !this.beans.gridOptionsService.is('suppressCellFocus')) {
28276 comp.setTabIndex(-1);
28277 }
28278 // DOM DATA
28279 gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, this);
28280 this.addDestroyFunc(function () { return gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, null); });
28281 // adding hover functionality adds listener to this row, so we
28282 // do it lazily in an animation frame
28283 if (this.useAnimationFrameForCreate) {
28284 this.beans.animationFrameService.createTask(this.addHoverFunctionality.bind(this, gui.element), this.rowNode.rowIndex, 'createTasksP2');
28285 }
28286 else {
28287 this.addHoverFunctionality(gui.element);
28288 }
28289 if (this.isFullWidth()) {
28290 this.setupFullWidth(gui);
28291 }
28292 if (gos.is('rowDragEntireRow')) {
28293 this.addRowDraggerToRow(gui);
28294 }
28295 if (this.useAnimationFrameForCreate) {
28296 // the height animation we only want active after the row is alive for 1 second.
28297 // this stops the row animation working when rows are initially created. otherwise
28298 // auto-height rows get inserted into the dom and resized immediately, which gives
28299 // very bad UX (eg 10 rows get inserted, then all 10 expand, look particularly bad
28300 // when scrolling). so this makes sure when rows are shown for the first time, they
28301 // are resized immediately without animation.
28302 this.beans.animationFrameService.addDestroyTask(function () {
28303 if (!_this.isAlive()) {
28304 return;
28305 }
28306 gui.rowComp.addOrRemoveCssClass('ag-after-created', true);
28307 });
28308 }
28309 this.executeProcessRowPostCreateFunc();
28310 };
28311 RowCtrl.prototype.executeSlideAndFadeAnimations = function (gui) {
28312 var _this = this;
28313 var containerType = gui.containerType;
28314 var shouldSlide = this.slideInAnimation[containerType];
28315 if (shouldSlide) {
28316 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["executeNextVMTurn"])(function () {
28317 _this.onTopChanged();
28318 });
28319 this.slideInAnimation[containerType] = false;
28320 }
28321 var shouldFade = this.fadeInAnimation[containerType];
28322 if (shouldFade) {
28323 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["executeNextVMTurn"])(function () {
28324 gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', false);
28325 });
28326 this.fadeInAnimation[containerType] = false;
28327 }
28328 };
28329 RowCtrl.prototype.addRowDraggerToRow = function (gui) {
28330 if (this.beans.gridOptionsService.isEnableRangeSelection()) {
28331 Object(_utils_function__WEBPACK_IMPORTED_MODULE_10__["doOnce"])(function () {
28332 console.warn('AG Grid: Setting `rowDragEntireRow: true` in the gridOptions doesn\'t work with `enableRangeSelection: true`');
28333 }, 'rowDragAndRangeSelectionEnabled');
28334 return;
28335 }
28336 var translate = this.beans.localeService.getLocaleTextFunc();
28337 var rowDragComp = new _rowDragComp__WEBPACK_IMPORTED_MODULE_14__["RowDragComp"](function () { return "1 " + translate('rowDragRow', 'row'); }, this.rowNode, undefined, gui.element, undefined, true);
28338 this.createManagedBean(rowDragComp, this.beans.context);
28339 };
28340 RowCtrl.prototype.setupFullWidth = function (gui) {
28341 var pinned = this.getPinnedForContainer(gui.containerType);
28342 var params = this.createFullWidthParams(gui.element, pinned);
28343 if (this.rowType == RowType.FullWidthDetail) {
28344 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_6__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_5__["ModuleNames"].MasterDetailModule, "cell renderer 'agDetailCellRenderer' (for master detail)")) {
28345 return;
28346 }
28347 }
28348 var compDetails;
28349 switch (this.rowType) {
28350 case RowType.FullWidthDetail:
28351 compDetails = this.beans.userComponentFactory.getFullWidthDetailCellRendererDetails(params);
28352 break;
28353 case RowType.FullWidthGroup:
28354 compDetails = this.beans.userComponentFactory.getFullWidthGroupCellRendererDetails(params);
28355 break;
28356 case RowType.FullWidthLoading:
28357 compDetails = this.beans.userComponentFactory.getFullWidthLoadingCellRendererDetails(params);
28358 break;
28359 default:
28360 compDetails = this.beans.userComponentFactory.getFullWidthCellRendererDetails(params);
28361 break;
28362 }
28363 gui.rowComp.showFullWidth(compDetails);
28364 };
28365 RowCtrl.prototype.isPrintLayout = function () {
28366 return this.printLayout;
28367 };
28368 RowCtrl.prototype.getFullWidthCellRenderer = function () {
28369 var _a, _b;
28370 return (_b = (_a = this.fullWidthGui) === null || _a === void 0 ? void 0 : _a.rowComp) === null || _b === void 0 ? void 0 : _b.getFullWidthCellRenderer();
28371 };
28372 // use by autoWidthCalculator, as it clones the elements
28373 RowCtrl.prototype.getCellElement = function (column) {
28374 var cellCtrl = this.getCellCtrl(column);
28375 return cellCtrl ? cellCtrl.getGui() : null;
28376 };
28377 RowCtrl.prototype.executeProcessRowPostCreateFunc = function () {
28378 var _a;
28379 var func = this.beans.gridOptionsService.getCallback('processRowPostCreate');
28380 if (!func || !this.areAllContainersReady()) {
28381 return;
28382 }
28383 var params = {
28384 eRow: (_a = this.centerGui) === null || _a === void 0 ? void 0 : _a.element,
28385 ePinnedLeftRow: this.leftGui ? this.leftGui.element : undefined,
28386 ePinnedRightRow: this.rightGui ? this.rightGui.element : undefined,
28387 node: this.rowNode,
28388 rowIndex: this.rowNode.rowIndex,
28389 addRenderedRowListener: this.addEventListener.bind(this),
28390 };
28391 func(params);
28392 };
28393 RowCtrl.prototype.areAllContainersReady = function () {
28394 var isLeftReady = !!this.leftGui || !this.beans.columnModel.isPinningLeft();
28395 var isCenterReady = !!this.centerGui;
28396 var isRightReady = !!this.rightGui || !this.beans.columnModel.isPinningRight();
28397 return isLeftReady && isCenterReady && isRightReady;
28398 };
28399 RowCtrl.prototype.setRowType = function () {
28400 var isStub = this.rowNode.stub;
28401 var isFullWidthCell = this.rowNode.isFullWidthCell();
28402 var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;
28403 var pivotMode = this.beans.columnModel.isPivotMode();
28404 // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking
28405 // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'
28406 // so each can be set independently (as a customer complained about footers getting full width, hence
28407 // introducing this logic)
28408 var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;
28409 var isFullWidthGroup = isGroupRow && this.beans.gridOptionsService.isGroupUseEntireRow(pivotMode);
28410 if (isStub) {
28411 this.rowType = RowType.FullWidthLoading;
28412 }
28413 else if (isDetailCell) {
28414 this.rowType = RowType.FullWidthDetail;
28415 }
28416 else if (isFullWidthCell) {
28417 this.rowType = RowType.FullWidth;
28418 }
28419 else if (isFullWidthGroup) {
28420 this.rowType = RowType.FullWidthGroup;
28421 }
28422 else {
28423 this.rowType = RowType.Normal;
28424 }
28425 };
28426 RowCtrl.prototype.updateColumnLists = function (suppressAnimationFrame) {
28427 var _this = this;
28428 if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }
28429 if (this.isFullWidth()) {
28430 return;
28431 }
28432 var noAnimation = suppressAnimationFrame
28433 || this.beans.gridOptionsService.is('suppressAnimationFrame')
28434 || this.printLayout;
28435 if (noAnimation) {
28436 this.updateColumnListsImpl();
28437 return;
28438 }
28439 if (this.updateColumnListsPending) {
28440 return;
28441 }
28442 this.beans.animationFrameService.createTask(function () {
28443 if (!_this.active) {
28444 return;
28445 }
28446 _this.updateColumnListsImpl();
28447 }, this.rowNode.rowIndex, 'createTasksP1');
28448 this.updateColumnListsPending = true;
28449 };
28450 RowCtrl.prototype.createCellCtrls = function (prev, cols, pinned) {
28451 var _this = this;
28452 if (pinned === void 0) { pinned = null; }
28453 var res = {
28454 list: [],
28455 map: {}
28456 };
28457 var addCell = function (colInstanceId, cellCtrl) {
28458 res.list.push(cellCtrl);
28459 res.map[colInstanceId] = cellCtrl;
28460 };
28461 cols.forEach(function (col) {
28462 // we use instanceId's rather than colId as it's possible there is a Column with same Id,
28463 // but it's referring to a different column instance. Happens a lot with pivot, as pivot col id's are
28464 // reused eg pivot_0, pivot_1 etc
28465 var colInstanceId = col.getInstanceId();
28466 var cellCtrl = prev.map[colInstanceId];
28467 if (!cellCtrl) {
28468 cellCtrl = new _cell_cellCtrl__WEBPACK_IMPORTED_MODULE_13__["CellCtrl"](col, _this.rowNode, _this.beans, _this);
28469 }
28470 addCell(colInstanceId, cellCtrl);
28471 });
28472 prev.list.forEach(function (prevCellCtrl) {
28473 var cellInResult = res.map[prevCellCtrl.getColumn().getInstanceId()] != null;
28474 if (cellInResult) {
28475 return;
28476 }
28477 var keepCell = !_this.isCellEligibleToBeRemoved(prevCellCtrl, pinned);
28478 if (keepCell) {
28479 addCell(prevCellCtrl.getColumn().getInstanceId(), prevCellCtrl);
28480 return;
28481 }
28482 prevCellCtrl.destroy();
28483 });
28484 return res;
28485 };
28486 RowCtrl.prototype.updateColumnListsImpl = function () {
28487 var _this = this;
28488 this.updateColumnListsPending = false;
28489 var columnModel = this.beans.columnModel;
28490 if (this.printLayout) {
28491 this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, columnModel.getAllDisplayedColumns());
28492 this.leftCellCtrls = { list: [], map: {} };
28493 this.rightCellCtrls = { list: [], map: {} };
28494 }
28495 else {
28496 var centerCols = columnModel.getViewportCenterColumnsForRow(this.rowNode);
28497 this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, centerCols);
28498 var leftCols = columnModel.getDisplayedLeftColumnsForRow(this.rowNode);
28499 this.leftCellCtrls = this.createCellCtrls(this.leftCellCtrls, leftCols, 'left');
28500 var rightCols = columnModel.getDisplayedRightColumnsForRow(this.rowNode);
28501 this.rightCellCtrls = this.createCellCtrls(this.rightCellCtrls, rightCols, 'right');
28502 }
28503 this.allRowGuis.forEach(function (item) {
28504 var cellControls = item.containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].LEFT ? _this.leftCellCtrls :
28505 item.containerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].RIGHT ? _this.rightCellCtrls : _this.centerCellCtrls;
28506 item.rowComp.setCellCtrls(cellControls.list);
28507 });
28508 };
28509 RowCtrl.prototype.isCellEligibleToBeRemoved = function (cellCtrl, nextContainerPinned) {
28510 var REMOVE_CELL = true;
28511 var KEEP_CELL = false;
28512 // always remove the cell if it's not rendered or if it's in the wrong pinned location
28513 var column = cellCtrl.getColumn();
28514 if (column.getPinned() != nextContainerPinned) {
28515 return REMOVE_CELL;
28516 }
28517 // we want to try and keep editing and focused cells
28518 var editing = cellCtrl.isEditing();
28519 var focused = this.beans.focusService.isCellFocused(cellCtrl.getCellPosition());
28520 var mightWantToKeepCell = editing || focused;
28521 if (mightWantToKeepCell) {
28522 var column_1 = cellCtrl.getColumn();
28523 var displayedColumns = this.beans.columnModel.getAllDisplayedColumns();
28524 var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;
28525 return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;
28526 }
28527 return REMOVE_CELL;
28528 };
28529 RowCtrl.prototype.setAnimateFlags = function (animateIn) {
28530 if (this.isSticky() || !animateIn) {
28531 return;
28532 }
28533 var oldRowTopExists = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_11__["exists"])(this.rowNode.oldRowTop);
28534 var pinningLeft = this.beans.columnModel.isPinningLeft();
28535 var pinningRight = this.beans.columnModel.isPinningRight();
28536 if (oldRowTopExists) {
28537 // if the row had a previous position, we slide it in
28538 this.slideInAnimation.center = true;
28539 this.slideInAnimation.left = pinningLeft;
28540 this.slideInAnimation.right = pinningRight;
28541 }
28542 else {
28543 // if the row had no previous position, we fade it in
28544 this.fadeInAnimation.center = true;
28545 this.fadeInAnimation.left = pinningLeft;
28546 this.fadeInAnimation.right = pinningRight;
28547 }
28548 };
28549 RowCtrl.prototype.isEditing = function () {
28550 return this.editingRow;
28551 };
28552 RowCtrl.prototype.stopRowEditing = function (cancel) {
28553 this.stopEditing(cancel);
28554 };
28555 RowCtrl.prototype.isFullWidth = function () {
28556 return this.rowType !== RowType.Normal;
28557 };
28558 RowCtrl.prototype.getRowType = function () {
28559 return this.rowType;
28560 };
28561 RowCtrl.prototype.refreshFullWidth = function () {
28562 var _this = this;
28563 // returns 'true' if refresh succeeded
28564 var tryRefresh = function (gui, pinned) {
28565 if (!gui) {
28566 return true;
28567 } // no refresh needed
28568 var cellRenderer = gui.rowComp.getFullWidthCellRenderer();
28569 // no cell renderer, either means comp not yet ready, or comp ready but now reference
28570 // to it (happens in react when comp is stateless). if comp not ready, we don't need to
28571 // refresh, however we don't know which one, so we refresh to cover the case where it's
28572 // react comp without reference so need to force a refresh
28573 if (!cellRenderer) {
28574 return false;
28575 }
28576 // no refresh method present, so can't refresh, hard refresh needed
28577 if (!cellRenderer.refresh) {
28578 return false;
28579 }
28580 var params = _this.createFullWidthParams(gui.element, pinned);
28581 var refreshSucceeded = cellRenderer.refresh(params);
28582 return refreshSucceeded;
28583 };
28584 var fullWidthSuccess = tryRefresh(this.fullWidthGui, null);
28585 var centerSuccess = tryRefresh(this.centerGui, null);
28586 var leftSuccess = tryRefresh(this.leftGui, 'left');
28587 var rightSuccess = tryRefresh(this.rightGui, 'right');
28588 var allFullWidthRowsRefreshed = fullWidthSuccess && centerSuccess && leftSuccess && rightSuccess;
28589 return allFullWidthRowsRefreshed;
28590 };
28591 RowCtrl.prototype.addListeners = function () {
28592 var _this = this;
28593 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_HEIGHT_CHANGED, function () { return _this.onRowHeightChanged(); });
28594 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_ROW_SELECTED, function () { return _this.onRowSelected(); });
28595 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));
28596 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_TOP_CHANGED, this.onTopChanged.bind(this));
28597 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));
28598 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));
28599 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));
28600 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));
28601 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));
28602 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));
28603 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));
28604 var eventService = this.beans.eventService;
28605 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));
28606 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));
28607 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
28608 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));
28609 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_CELL_FOCUSED, this.onCellFocused.bind(this));
28610 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_CELL_FOCUS_CLEARED, this.onCellFocusCleared.bind(this));
28611 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));
28612 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));
28613 this.addManagedListener(eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));
28614 this.addListenersForCellComps();
28615 };
28616 RowCtrl.prototype.onColumnMoved = function () {
28617 this.updateColumnLists();
28618 };
28619 RowCtrl.prototype.addListenersForCellComps = function () {
28620 var _this = this;
28621 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_ROW_INDEX_CHANGED, function () {
28622 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRowIndexChanged(); });
28623 });
28624 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_CELL_CHANGED, function (event) {
28625 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellChanged(event); });
28626 });
28627 };
28628 RowCtrl.prototype.onRowNodeDataChanged = function (event) {
28629 // if this is an update, we want to refresh, as this will allow the user to put in a transition
28630 // into the cellRenderer refresh method. otherwise this might be completely new data, in which case
28631 // we will want to completely replace the cells
28632 this.getAllCellCtrls().forEach(function (cellCtrl) {
28633 return cellCtrl.refreshCell({
28634 suppressFlash: !event.update,
28635 newData: !event.update
28636 });
28637 });
28638 // check for selected also, as this could be after lazy loading of the row data, in which case
28639 // the id might of just gotten set inside the row and the row selected state may of changed
28640 // as a result. this is what happens when selected rows are loaded in virtual pagination.
28641 // - niall note - since moving to the stub component, this may no longer be true, as replacing
28642 // the stub component now replaces the entire row
28643 this.onRowSelected();
28644 // as data has changed, then the style and class needs to be recomputed
28645 this.postProcessCss();
28646 };
28647 RowCtrl.prototype.onRowNodeCellChanged = function () {
28648 // as data has changed, then the style and class needs to be recomputed
28649 this.postProcessCss();
28650 };
28651 RowCtrl.prototype.postProcessCss = function () {
28652 this.setStylesFromGridOptions();
28653 this.postProcessClassesFromGridOptions();
28654 this.postProcessRowClassRules();
28655 this.postProcessRowDragging();
28656 };
28657 RowCtrl.prototype.onRowNodeHighlightChanged = function () {
28658 var highlighted = this.rowNode.highlighted;
28659 this.allRowGuis.forEach(function (gui) {
28660 var aboveOn = highlighted === _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_2__["RowHighlightPosition"].Above;
28661 var belowOn = highlighted === _interfaces_iRowNode__WEBPACK_IMPORTED_MODULE_2__["RowHighlightPosition"].Below;
28662 gui.rowComp.addOrRemoveCssClass('ag-row-highlight-above', aboveOn);
28663 gui.rowComp.addOrRemoveCssClass('ag-row-highlight-below', belowOn);
28664 });
28665 };
28666 RowCtrl.prototype.onRowNodeDraggingChanged = function () {
28667 this.postProcessRowDragging();
28668 };
28669 RowCtrl.prototype.postProcessRowDragging = function () {
28670 var dragging = this.rowNode.dragging;
28671 this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-dragging', dragging); });
28672 };
28673 RowCtrl.prototype.updateExpandedCss = function () {
28674 var expandable = this.rowNode.isExpandable();
28675 var expanded = this.rowNode.expanded == true;
28676 this.allRowGuis.forEach(function (gui) {
28677 gui.rowComp.addOrRemoveCssClass('ag-row-group', expandable);
28678 gui.rowComp.addOrRemoveCssClass('ag-row-group-expanded', expandable && expanded);
28679 gui.rowComp.addOrRemoveCssClass('ag-row-group-contracted', expandable && !expanded);
28680 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaExpanded"])(gui.element, expandable && expanded);
28681 });
28682 };
28683 RowCtrl.prototype.onDisplayedColumnsChanged = function () {
28684 // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and
28685 // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.
28686 this.updateColumnLists(true);
28687 if (this.beans.columnModel.wasAutoRowHeightEverActive()) {
28688 this.rowNode.checkAutoHeights();
28689 }
28690 };
28691 RowCtrl.prototype.onVirtualColumnsChanged = function () {
28692 this.updateColumnLists();
28693 };
28694 RowCtrl.prototype.getRowPosition = function () {
28695 return {
28696 rowPinned: Object(_utils_generic__WEBPACK_IMPORTED_MODULE_11__["makeNull"])(this.rowNode.rowPinned),
28697 rowIndex: this.rowNode.rowIndex
28698 };
28699 };
28700 RowCtrl.prototype.onKeyboardNavigate = function (keyboardEvent) {
28701 var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });
28702 var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;
28703 var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;
28704 if (!isFullWidthContainerFocused) {
28705 return;
28706 }
28707 var node = this.rowNode;
28708 var lastFocusedCell = this.beans.focusService.getFocusedCell();
28709 var cellPosition = {
28710 rowIndex: node.rowIndex,
28711 rowPinned: node.rowPinned,
28712 column: (lastFocusedCell && lastFocusedCell.column)
28713 };
28714 this.beans.navigationService.navigateToNextCell(keyboardEvent, keyboardEvent.key, cellPosition, true);
28715 keyboardEvent.preventDefault();
28716 };
28717 RowCtrl.prototype.onTabKeyDown = function (keyboardEvent) {
28718 if (keyboardEvent.defaultPrevented || Object(_utils_event__WEBPACK_IMPORTED_MODULE_9__["isStopPropagationForAgGrid"])(keyboardEvent)) {
28719 return;
28720 }
28721 var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });
28722 var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;
28723 var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;
28724 var nextEl = null;
28725 if (!isFullWidthContainerFocused) {
28726 nextEl = this.beans.focusService.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);
28727 }
28728 if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {
28729 this.beans.navigationService.onTabKeyDown(this, keyboardEvent);
28730 }
28731 };
28732 RowCtrl.prototype.onFullWidthRowFocused = function (event) {
28733 var _a;
28734 var node = this.rowNode;
28735 var isFocused = !event ? false : this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;
28736 var element = this.fullWidthGui ? this.fullWidthGui.element : (_a = this.centerGui) === null || _a === void 0 ? void 0 : _a.element;
28737 if (!element) {
28738 return;
28739 } // can happen with react ui, comp not yet ready
28740 element.classList.toggle('ag-full-width-focus', isFocused);
28741 if (isFocused) {
28742 // we don't scroll normal rows into view when we focus them, so we don't want
28743 // to scroll Full Width rows either.
28744 element.focus({ preventScroll: true });
28745 }
28746 };
28747 RowCtrl.prototype.refreshCell = function (cellCtrl) {
28748 this.centerCellCtrls = this.removeCellCtrl(this.centerCellCtrls, cellCtrl);
28749 this.leftCellCtrls = this.removeCellCtrl(this.leftCellCtrls, cellCtrl);
28750 this.rightCellCtrls = this.removeCellCtrl(this.rightCellCtrls, cellCtrl);
28751 this.updateColumnLists();
28752 };
28753 RowCtrl.prototype.removeCellCtrl = function (prev, cellCtrlToRemove) {
28754 var res = {
28755 list: [],
28756 map: {}
28757 };
28758 prev.list.forEach(function (cellCtrl) {
28759 if (cellCtrl === cellCtrlToRemove) {
28760 return;
28761 }
28762 res.list.push(cellCtrl);
28763 res.map[cellCtrl.getInstanceId()] = cellCtrl;
28764 });
28765 return res;
28766 };
28767 RowCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {
28768 switch (eventName) {
28769 case 'dblclick':
28770 this.onRowDblClick(mouseEvent);
28771 break;
28772 case 'click':
28773 this.onRowClick(mouseEvent);
28774 break;
28775 case 'touchstart':
28776 case 'mousedown':
28777 this.onRowMouseDown(mouseEvent);
28778 break;
28779 }
28780 };
28781 RowCtrl.prototype.createRowEvent = function (type, domEvent) {
28782 return {
28783 type: type,
28784 node: this.rowNode,
28785 data: this.rowNode.data,
28786 rowIndex: this.rowNode.rowIndex,
28787 rowPinned: this.rowNode.rowPinned,
28788 context: this.beans.gridOptionsService.context,
28789 api: this.beans.gridOptionsService.api,
28790 columnApi: this.beans.gridOptionsService.columnApi,
28791 event: domEvent
28792 };
28793 };
28794 RowCtrl.prototype.createRowEventWithSource = function (type, domEvent) {
28795 var event = this.createRowEvent(type, domEvent);
28796 // when first developing this, we included the rowComp in the event.
28797 // this seems very weird. so when introducing the event types, i left the 'source'
28798 // out of the type, and just include the source in the two places where this event
28799 // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any
28800 // users to be using this, as the rowComp isn't an object we expose, so would be
28801 // very surprising if a user was using it.
28802 event.source = this;
28803 return event;
28804 };
28805 RowCtrl.prototype.onRowDblClick = function (mouseEvent) {
28806 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_9__["isStopPropagationForAgGrid"])(mouseEvent)) {
28807 return;
28808 }
28809 var agEvent = this.createRowEventWithSource(_events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_ROW_DOUBLE_CLICKED, mouseEvent);
28810 this.beans.eventService.dispatchEvent(agEvent);
28811 };
28812 RowCtrl.prototype.onRowMouseDown = function (mouseEvent) {
28813 this.lastMouseDownOnDragger = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_8__["isElementChildOfClass"])(mouseEvent.target, 'ag-row-drag', 3);
28814 if (!this.isFullWidth()) {
28815 return;
28816 }
28817 var node = this.rowNode;
28818 var columnModel = this.beans.columnModel;
28819 if (this.beans.rangeService) {
28820 this.beans.rangeService.removeAllCellRanges();
28821 }
28822 this.beans.focusService.setFocusedCell({
28823 rowIndex: node.rowIndex,
28824 column: columnModel.getAllDisplayedColumns()[0],
28825 rowPinned: node.rowPinned,
28826 forceBrowserFocus: true
28827 });
28828 };
28829 RowCtrl.prototype.onRowClick = function (mouseEvent) {
28830 var stop = Object(_utils_event__WEBPACK_IMPORTED_MODULE_9__["isStopPropagationForAgGrid"])(mouseEvent) || this.lastMouseDownOnDragger;
28831 if (stop) {
28832 return;
28833 }
28834 var agEvent = this.createRowEventWithSource(_events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_ROW_CLICKED, mouseEvent);
28835 this.beans.eventService.dispatchEvent(agEvent);
28836 // ctrlKey for windows, metaKey for Apple
28837 var multiSelectKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;
28838 var shiftKeyPressed = mouseEvent.shiftKey;
28839 // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to
28840 // handle this is broken. to observe, change the logic below and allow groups to be selected.
28841 // you will see the group gets selected, then all children get selected, then the grid unselects
28842 // the children (as the default behaviour when clicking is to unselect other rows) which results
28843 // in the group getting unselected (as all children are unselected). the correct thing would be
28844 // to change this, so that children of the selected group are not then subsequenly un-selected.
28845 var groupSelectsChildren = this.beans.gridOptionsService.is('groupSelectsChildren');
28846 if (
28847 // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,
28848 // so return if it's a group row
28849 (groupSelectsChildren && this.rowNode.group) ||
28850 // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,
28851 // and we click it, the selection should not change (ie any currently selected row should stay selected)
28852 !this.rowNode.selectable ||
28853 // we also don't allow selection of pinned rows
28854 this.rowNode.rowPinned ||
28855 // if no selection method enabled, do nothing
28856 !this.beans.gridOptionsService.isRowSelection() ||
28857 // if click selection suppressed, do nothing
28858 this.beans.gridOptionsService.is('suppressRowClickSelection')) {
28859 return;
28860 }
28861 var multiSelectOnClick = this.beans.gridOptionsService.is('rowMultiSelectWithClick');
28862 var rowDeselectionWithCtrl = !this.beans.gridOptionsService.is('suppressRowDeselection');
28863 var source = 'rowClicked';
28864 if (this.rowNode.isSelected()) {
28865 if (multiSelectOnClick) {
28866 this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source: source });
28867 }
28868 else if (multiSelectKeyPressed) {
28869 if (rowDeselectionWithCtrl) {
28870 this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source: source });
28871 }
28872 }
28873 else {
28874 // selected with no multi key, must make sure anything else is unselected
28875 this.rowNode.setSelectedParams({ newValue: true, clearSelection: !shiftKeyPressed, rangeSelect: shiftKeyPressed, event: mouseEvent, source: source });
28876 }
28877 }
28878 else {
28879 var clearSelection = multiSelectOnClick ? false : !multiSelectKeyPressed;
28880 this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: shiftKeyPressed, event: mouseEvent, source: source });
28881 }
28882 };
28883 RowCtrl.prototype.setupDetailRowAutoHeight = function (eDetailGui) {
28884 var _this = this;
28885 if (this.rowType !== RowType.FullWidthDetail) {
28886 return;
28887 }
28888 if (!this.beans.gridOptionsService.is('detailRowAutoHeight')) {
28889 return;
28890 }
28891 var checkRowSizeFunc = function () {
28892 var clientHeight = eDetailGui.clientHeight;
28893 // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur
28894 // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means
28895 // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an
28896 // empty detail grid would still have some styling around it giving at least a few pixels.
28897 if (clientHeight != null && clientHeight > 0) {
28898 // we do the update in a timeout, to make sure we are not calling from inside the grid
28899 // doing another update
28900 var updateRowHeightFunc = function () {
28901 _this.rowNode.setRowHeight(clientHeight);
28902 if (_this.beans.clientSideRowModel) {
28903 _this.beans.clientSideRowModel.onRowHeightChanged();
28904 }
28905 else if (_this.beans.serverSideRowModel) {
28906 _this.beans.serverSideRowModel.onRowHeightChanged();
28907 }
28908 };
28909 _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);
28910 }
28911 };
28912 var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);
28913 this.addDestroyFunc(resizeObserverDestroyFunc);
28914 checkRowSizeFunc();
28915 };
28916 RowCtrl.prototype.createFullWidthParams = function (eRow, pinned) {
28917 var _this = this;
28918 var params = {
28919 fullWidth: true,
28920 data: this.rowNode.data,
28921 node: this.rowNode,
28922 value: this.rowNode.key,
28923 valueFormatted: this.rowNode.key,
28924 rowIndex: this.rowNode.rowIndex,
28925 api: this.beans.gridOptionsService.api,
28926 columnApi: this.beans.gridOptionsService.columnApi,
28927 context: this.beans.gridOptionsService.context,
28928 // these need to be taken out, as part of 'afterAttached' now
28929 eGridCell: eRow,
28930 eParentOfValue: eRow,
28931 pinned: pinned,
28932 addRenderedRowListener: this.addEventListener.bind(this),
28933 registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value, suppressVisibilityChange); }
28934 };
28935 return params;
28936 };
28937 RowCtrl.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) {
28938 if (value === void 0) { value = ''; }
28939 if (!this.isFullWidth()) {
28940 return;
28941 }
28942 var rowDragComp = new _rowDragComp__WEBPACK_IMPORTED_MODULE_14__["RowDragComp"](function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels, suppressVisibilityChange);
28943 this.createManagedBean(rowDragComp, this.beans.context);
28944 };
28945 RowCtrl.prototype.onUiLevelChanged = function () {
28946 var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);
28947 if (this.rowLevel != newLevel) {
28948 var classToAdd_1 = 'ag-row-level-' + newLevel;
28949 var classToRemove_1 = 'ag-row-level-' + this.rowLevel;
28950 this.allRowGuis.forEach(function (gui) {
28951 gui.rowComp.addOrRemoveCssClass(classToAdd_1, true);
28952 gui.rowComp.addOrRemoveCssClass(classToRemove_1, false);
28953 });
28954 }
28955 this.rowLevel = newLevel;
28956 };
28957 RowCtrl.prototype.isFirstRowOnPage = function () {
28958 return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();
28959 };
28960 RowCtrl.prototype.isLastRowOnPage = function () {
28961 return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();
28962 };
28963 RowCtrl.prototype.onModelUpdated = function () {
28964 this.refreshFirstAndLastRowStyles();
28965 };
28966 RowCtrl.prototype.refreshFirstAndLastRowStyles = function () {
28967 var newFirst = this.isFirstRowOnPage();
28968 var newLast = this.isLastRowOnPage();
28969 if (this.firstRowOnPage !== newFirst) {
28970 this.firstRowOnPage = newFirst;
28971 this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-first', newFirst); });
28972 }
28973 if (this.lastRowOnPage !== newLast) {
28974 this.lastRowOnPage = newLast;
28975 this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-last', newLast); });
28976 }
28977 };
28978 RowCtrl.prototype.stopEditing = function (cancel) {
28979 var e_1, _a;
28980 if (cancel === void 0) { cancel = false; }
28981 // if we are already stopping row edit, there is
28982 // no need to start this process again.
28983 if (this.stoppingRowEdit) {
28984 return;
28985 }
28986 var cellControls = this.getAllCellCtrls();
28987 var isRowEdit = this.editingRow;
28988 this.stoppingRowEdit = true;
28989 var fireRowEditEvent = false;
28990 try {
28991 for (var cellControls_1 = __values(cellControls), cellControls_1_1 = cellControls_1.next(); !cellControls_1_1.done; cellControls_1_1 = cellControls_1.next()) {
28992 var ctrl = cellControls_1_1.value;
28993 var valueChanged = ctrl.stopEditing(cancel);
28994 if (isRowEdit && !cancel && !fireRowEditEvent && valueChanged) {
28995 fireRowEditEvent = true;
28996 }
28997 }
28998 }
28999 catch (e_1_1) { e_1 = { error: e_1_1 }; }
29000 finally {
29001 try {
29002 if (cellControls_1_1 && !cellControls_1_1.done && (_a = cellControls_1.return)) _a.call(cellControls_1);
29003 }
29004 finally { if (e_1) throw e_1.error; }
29005 }
29006 if (fireRowEditEvent) {
29007 var event_1 = this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_ROW_VALUE_CHANGED);
29008 this.beans.eventService.dispatchEvent(event_1);
29009 }
29010 if (isRowEdit) {
29011 this.setEditingRow(false);
29012 }
29013 this.stoppingRowEdit = false;
29014 };
29015 RowCtrl.prototype.setInlineEditingCss = function (editing) {
29016 this.allRowGuis.forEach(function (gui) {
29017 gui.rowComp.addOrRemoveCssClass("ag-row-inline-editing", editing);
29018 gui.rowComp.addOrRemoveCssClass("ag-row-not-inline-editing", !editing);
29019 });
29020 };
29021 RowCtrl.prototype.setEditingRow = function (value) {
29022 this.editingRow = value;
29023 this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-editing', value); });
29024 var event = value ?
29025 this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_ROW_EDITING_STARTED)
29026 : this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_ROW_EDITING_STOPPED);
29027 this.beans.eventService.dispatchEvent(event);
29028 };
29029 RowCtrl.prototype.startRowEditing = function (key, charPress, sourceRenderedCell, event) {
29030 if (key === void 0) { key = null; }
29031 if (charPress === void 0) { charPress = null; }
29032 if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }
29033 if (event === void 0) { event = null; }
29034 // don't do it if already editing
29035 if (this.editingRow) {
29036 return;
29037 }
29038 var atLeastOneEditing = this.getAllCellCtrls().reduce(function (prev, cellCtrl) {
29039 var cellStartedEdit = cellCtrl === sourceRenderedCell;
29040 if (cellStartedEdit) {
29041 cellCtrl.startEditing(key, charPress, cellStartedEdit, event);
29042 }
29043 else {
29044 cellCtrl.startEditing(null, null, cellStartedEdit, event);
29045 }
29046 if (prev) {
29047 return true;
29048 }
29049 return cellCtrl.isEditing();
29050 }, false);
29051 if (atLeastOneEditing) {
29052 this.setEditingRow(true);
29053 }
29054 };
29055 RowCtrl.prototype.getAllCellCtrls = function () {
29056 if (this.leftCellCtrls.list.length === 0 && this.rightCellCtrls.list.length === 0) {
29057 return this.centerCellCtrls.list;
29058 }
29059 var res = __spread(this.centerCellCtrls.list, this.leftCellCtrls.list, this.rightCellCtrls.list);
29060 return res;
29061 };
29062 RowCtrl.prototype.postProcessClassesFromGridOptions = function () {
29063 var _this = this;
29064 var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode);
29065 if (!cssClasses || !cssClasses.length) {
29066 return;
29067 }
29068 cssClasses.forEach(function (classStr) {
29069 _this.allRowGuis.forEach(function (c) { return c.rowComp.addOrRemoveCssClass(classStr, true); });
29070 });
29071 };
29072 RowCtrl.prototype.postProcessRowClassRules = function () {
29073 var _this = this;
29074 this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, function (className) {
29075 _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, true); });
29076 }, function (className) {
29077 _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, false); });
29078 });
29079 };
29080 RowCtrl.prototype.setStylesFromGridOptions = function (gui) {
29081 var rowStyles = this.processStylesFromGridOptions();
29082 this.forEachGui(gui, function (gui) { return gui.rowComp.setUserStyles(rowStyles); });
29083 };
29084 RowCtrl.prototype.getPinnedForContainer = function (rowContainerType) {
29085 var pinned = rowContainerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].LEFT
29086 ? 'left'
29087 : rowContainerType === _gridBodyComp_rowContainer_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_4__["RowContainerType"].RIGHT
29088 ? 'right'
29089 : null;
29090 return pinned;
29091 };
29092 RowCtrl.prototype.getInitialRowClasses = function (rowContainerType) {
29093 var pinned = this.getPinnedForContainer(rowContainerType);
29094 var params = {
29095 rowNode: this.rowNode,
29096 rowFocused: this.rowFocused,
29097 fadeRowIn: this.fadeInAnimation[rowContainerType],
29098 rowIsEven: this.rowNode.rowIndex % 2 === 0,
29099 rowLevel: this.rowLevel,
29100 fullWidthRow: this.isFullWidth(),
29101 firstRowOnPage: this.isFirstRowOnPage(),
29102 lastRowOnPage: this.isLastRowOnPage(),
29103 printLayout: this.printLayout,
29104 expandable: this.rowNode.isExpandable(),
29105 pinned: pinned
29106 };
29107 return this.beans.rowCssClassCalculator.getInitialRowClasses(params);
29108 };
29109 RowCtrl.prototype.processStylesFromGridOptions = function () {
29110 // part 1 - rowStyle
29111 var rowStyle = this.beans.gridOptionsService.get('rowStyle');
29112 if (rowStyle && typeof rowStyle === 'function') {
29113 console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');
29114 return;
29115 }
29116 // part 1 - rowStyleFunc
29117 var rowStyleFunc = this.beans.gridOptionsService.getCallback('getRowStyle');
29118 var rowStyleFuncResult;
29119 if (rowStyleFunc) {
29120 var params = {
29121 data: this.rowNode.data,
29122 node: this.rowNode,
29123 rowIndex: this.rowNode.rowIndex
29124 };
29125 rowStyleFuncResult = rowStyleFunc(params);
29126 }
29127 return Object.assign({}, rowStyle, rowStyleFuncResult);
29128 };
29129 RowCtrl.prototype.onRowSelected = function (gui) {
29130 var _this = this;
29131 // Treat undefined as false, if we pass undefined down it gets treated as toggle class, rather than explicitly
29132 // setting the required value
29133 var selected = !!this.rowNode.isSelected();
29134 this.forEachGui(gui, function (gui) {
29135 gui.rowComp.addOrRemoveCssClass('ag-row-selected', selected);
29136 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaSelected"])(gui.element, selected ? true : undefined);
29137 var ariaLabel = _this.createAriaLabel();
29138 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaLabel"])(gui.element, ariaLabel == null ? '' : ariaLabel);
29139 });
29140 };
29141 RowCtrl.prototype.createAriaLabel = function () {
29142 var selected = this.rowNode.isSelected();
29143 if (selected && this.beans.gridOptionsService.is('suppressRowDeselection')) {
29144 return undefined;
29145 }
29146 var translate = this.beans.localeService.getLocaleTextFunc();
29147 var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', "Press SPACE to " + (selected ? 'deselect' : 'select') + " this row.");
29148 return label;
29149 };
29150 RowCtrl.prototype.isUseAnimationFrameForCreate = function () {
29151 return this.useAnimationFrameForCreate;
29152 };
29153 RowCtrl.prototype.addHoverFunctionality = function (eRow) {
29154 var _this = this;
29155 // because we use animation frames to do this, it's possible the row no longer exists
29156 // by the time we get to add it
29157 if (!this.active) {
29158 return;
29159 }
29160 // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel
29161 // like we do for all the other mouse events.
29162 // because of the pinning, we cannot simply add / remove the class based on the eRow. we
29163 // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a
29164 // mouse hover, it sets such in the rowNode, and then all three reflect the change as
29165 // all are listening for event on the row node.
29166 // step 1 - add listener, to set flag on row node
29167 this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });
29168 this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });
29169 // step 2 - listen for changes on row node (which any eRow can trigger)
29170 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_MOUSE_ENTER, function () {
29171 // if hover turned off, we don't add the class. we do this here so that if the application
29172 // toggles this property mid way, we remove the hover form the last row, but we stop
29173 // adding hovers from that point onwards. Also, do not highlight while dragging elements around.
29174 if (!_this.beans.dragService.isDragging() &&
29175 !_this.beans.gridOptionsService.is('suppressRowHoverHighlight')) {
29176 eRow.classList.add('ag-row-hover');
29177 }
29178 });
29179 this.addManagedListener(this.rowNode, _entities_rowNode__WEBPACK_IMPORTED_MODULE_1__["RowNode"].EVENT_MOUSE_LEAVE, function () {
29180 eRow.classList.remove('ag-row-hover');
29181 });
29182 };
29183 // for animation, we don't want to animate entry or exit to a very far away pixel,
29184 // otherwise the row would move so fast, it would appear to disappear. so this method
29185 // moves the row closer to the viewport if it is far away, so the row slide in / out
29186 // at a speed the user can see.
29187 RowCtrl.prototype.roundRowTopToBounds = function (rowTop) {
29188 var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();
29189 var range = gridBodyCon.getScrollFeature().getVScrollPosition();
29190 var minPixel = this.applyPaginationOffset(range.top, true) - 100;
29191 var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;
29192 return Math.min(Math.max(minPixel, rowTop), maxPixel);
29193 };
29194 RowCtrl.prototype.getFrameworkOverrides = function () {
29195 return this.beans.frameworkOverrides;
29196 };
29197 RowCtrl.prototype.forEachGui = function (gui, callback) {
29198 var list = gui ? [gui] : this.allRowGuis;
29199 list.forEach(callback);
29200 };
29201 RowCtrl.prototype.onRowHeightChanged = function (gui) {
29202 // check for exists first - if the user is resetting the row height, then
29203 // it will be null (or undefined) momentarily until the next time the flatten
29204 // stage is called where the row will then update again with a new height
29205 if (this.rowNode.rowHeight == null) {
29206 return;
29207 }
29208 var rowHeight = this.rowNode.rowHeight;
29209 var defaultRowHeight = this.beans.environment.getDefaultRowHeight();
29210 var isHeightFromFunc = this.beans.gridOptionsService.isGetRowHeightFunction();
29211 var heightFromFunc = isHeightFromFunc ? this.beans.gridOptionsService.getRowHeightForNode(this.rowNode).height : undefined;
29212 var lineHeight = heightFromFunc ? Math.min(defaultRowHeight, heightFromFunc) - 2 + "px" : undefined;
29213 this.forEachGui(gui, function (gui) {
29214 gui.element.style.height = rowHeight + "px";
29215 // If the row height is coming from a function, this means some rows can
29216 // be smaller than the theme had intended. so we set --ag-line-height on
29217 // the row, which is picked up by the theme CSS and is used in a calc
29218 // for the CSS line-height property, which makes sure the line-height is
29219 // not bigger than the row height, otherwise the row text would not fit.
29220 // We do not use rowNode.rowHeight here, as this could be the result of autoHeight,
29221 // and we found using the autoHeight result causes a loop, where changing the
29222 // line-height them impacts the cell height, resulting in a new autoHeight,
29223 // resulting in a new line-height and so on loop.
29224 // const heightFromFunc = this.beans.gridOptionsService.getRowHeightForNode(this.rowNode).height;
29225 if (lineHeight) {
29226 gui.element.style.setProperty('--ag-line-height', lineHeight);
29227 }
29228 });
29229 };
29230 RowCtrl.prototype.addEventListener = function (eventType, listener) {
29231 _super.prototype.addEventListener.call(this, eventType, listener);
29232 };
29233 RowCtrl.prototype.removeEventListener = function (eventType, listener) {
29234 _super.prototype.removeEventListener.call(this, eventType, listener);
29235 };
29236 // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.
29237 RowCtrl.prototype.destroyFirstPass = function () {
29238 this.active = false;
29239 // why do we have this method? shouldn't everything below be added as a destroy func beside
29240 // the corresponding create logic?
29241 this.setupRemoveAnimation();
29242 var event = this.createRowEvent(_events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_VIRTUAL_ROW_REMOVED);
29243 this.dispatchEvent(event);
29244 this.beans.eventService.dispatchEvent(event);
29245 _super.prototype.destroy.call(this);
29246 };
29247 RowCtrl.prototype.setupRemoveAnimation = function () {
29248 // we don't animate sticky rows
29249 if (this.isSticky()) {
29250 return;
29251 }
29252 var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;
29253 if (rowStillVisibleJustNotInViewport) {
29254 // if the row is not rendered, but in viewport, it means it has moved,
29255 // so we animate the row out. if the new location is very far away,
29256 // the animation will be so fast the row will look like it's just disappeared,
29257 // so instead we animate to a position just outside the viewport.
29258 var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);
29259 this.setRowTop(rowTop);
29260 }
29261 else {
29262 this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', true); });
29263 }
29264 };
29265 RowCtrl.prototype.destroySecondPass = function () {
29266 this.allRowGuis.length = 0;
29267 var destroyCellCtrls = function (ctrls) {
29268 ctrls.list.forEach(function (c) { return c.destroy(); });
29269 return { list: [], map: {} };
29270 };
29271 this.centerCellCtrls = destroyCellCtrls(this.centerCellCtrls);
29272 this.leftCellCtrls = destroyCellCtrls(this.leftCellCtrls);
29273 this.rightCellCtrls = destroyCellCtrls(this.rightCellCtrls);
29274 };
29275 RowCtrl.prototype.setFocusedClasses = function (gui) {
29276 var _this = this;
29277 this.forEachGui(gui, function (gui) {
29278 gui.rowComp.addOrRemoveCssClass('ag-row-focus', _this.rowFocused);
29279 gui.rowComp.addOrRemoveCssClass('ag-row-no-focus', !_this.rowFocused);
29280 });
29281 };
29282 RowCtrl.prototype.onCellFocused = function () {
29283 this.onCellFocusChanged();
29284 };
29285 RowCtrl.prototype.onCellFocusCleared = function () {
29286 this.onCellFocusChanged();
29287 };
29288 RowCtrl.prototype.onCellFocusChanged = function () {
29289 var rowFocused = this.beans.focusService.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);
29290 if (rowFocused !== this.rowFocused) {
29291 this.rowFocused = rowFocused;
29292 this.setFocusedClasses();
29293 }
29294 // if we are editing, then moving the focus out of a row will stop editing
29295 if (!rowFocused && this.editingRow) {
29296 this.stopEditing(false);
29297 }
29298 };
29299 RowCtrl.prototype.onPaginationChanged = function () {
29300 var currentPage = this.beans.paginationProxy.getCurrentPage();
29301 // it is possible this row is in the new page, but the page number has changed, which means
29302 // it needs to reposition itself relative to the new page
29303 if (this.paginationPage !== currentPage) {
29304 this.paginationPage = currentPage;
29305 this.onTopChanged();
29306 }
29307 this.refreshFirstAndLastRowStyles();
29308 };
29309 RowCtrl.prototype.onTopChanged = function () {
29310 this.setRowTop(this.rowNode.rowTop);
29311 };
29312 RowCtrl.prototype.onPaginationPixelOffsetChanged = function () {
29313 // the pixel offset is used when calculating rowTop to set on the row DIV
29314 this.onTopChanged();
29315 };
29316 // applies pagination offset, eg if on second page, and page height is 500px, then removes
29317 // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.
29318 // reverse will take the offset away rather than add.
29319 RowCtrl.prototype.applyPaginationOffset = function (topPx, reverse) {
29320 if (reverse === void 0) { reverse = false; }
29321 if (this.rowNode.isRowPinned()) {
29322 return topPx;
29323 }
29324 var pixelOffset = this.beans.paginationProxy.getPixelOffset();
29325 var multiplier = reverse ? 1 : -1;
29326 return topPx + (pixelOffset * multiplier);
29327 };
29328 RowCtrl.prototype.setRowTop = function (pixels) {
29329 // print layout uses normal flow layout for row positioning
29330 if (this.printLayout) {
29331 return;
29332 }
29333 // need to make sure rowTop is not null, as this can happen if the node was once
29334 // visible (ie parent group was expanded) but is now not visible
29335 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_11__["exists"])(pixels)) {
29336 var afterPaginationPixels = this.applyPaginationOffset(pixels);
29337 var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);
29338 var topPx = afterScalingPixels + "px";
29339 this.setRowTopStyle(topPx);
29340 }
29341 };
29342 // the top needs to be set into the DOM element when the element is created, not updated afterwards.
29343 // otherwise the transition would not work, as it would be transitioning from zero (the unset value).
29344 // for example, suppose a row that is outside the viewport, then user does a filter to remove other rows
29345 // and this row now appears in the viewport, and the row moves up (ie it was under the viewport and not rendered,
29346 // but now is in the viewport) then a new RowComp is created, however it should have it's position initialised
29347 // to below the viewport, so the row will appear to animate up. if we didn't set the initial position at creation
29348 // time, the row would animate down (ie from position zero).
29349 RowCtrl.prototype.getInitialRowTop = function (rowContainerType) {
29350 var suppressRowTransform = this.beans.gridOptionsService.is('suppressRowTransform');
29351 return suppressRowTransform ? this.getInitialRowTopShared(rowContainerType) : undefined;
29352 };
29353 RowCtrl.prototype.getInitialTransform = function (rowContainerType) {
29354 var suppressRowTransform = this.beans.gridOptionsService.is('suppressRowTransform');
29355 return suppressRowTransform ? undefined : "translateY(" + this.getInitialRowTopShared(rowContainerType) + ")";
29356 };
29357 RowCtrl.prototype.getInitialRowTopShared = function (rowContainerType) {
29358 // print layout uses normal flow layout for row positioning
29359 if (this.printLayout) {
29360 return '';
29361 }
29362 var rowTop;
29363 if (this.isSticky()) {
29364 rowTop = this.rowNode.stickyRowTop;
29365 }
29366 else {
29367 // if sliding in, we take the old row top. otherwise we just set the current row top.
29368 var pixels = this.slideInAnimation[rowContainerType] ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;
29369 var afterPaginationPixels = this.applyPaginationOffset(pixels);
29370 // we don't apply scaling if row is pinned
29371 rowTop = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);
29372 }
29373 return rowTop + 'px';
29374 };
29375 RowCtrl.prototype.setRowTopStyle = function (topPx) {
29376 var suppressRowTransform = this.beans.gridOptionsService.is('suppressRowTransform');
29377 this.allRowGuis.forEach(function (gui) { return suppressRowTransform ?
29378 gui.rowComp.setTop(topPx) :
29379 gui.rowComp.setTransform("translateY(" + topPx + ")"); });
29380 };
29381 RowCtrl.prototype.getRowNode = function () {
29382 return this.rowNode;
29383 };
29384 RowCtrl.prototype.getCellCtrl = function (column) {
29385 // first up, check for cell directly linked to this column
29386 var res = null;
29387 this.getAllCellCtrls().forEach(function (cellCtrl) {
29388 if (cellCtrl.getColumn() == column) {
29389 res = cellCtrl;
29390 }
29391 });
29392 if (res != null) {
29393 return res;
29394 }
29395 // second up, if not found, then check for spanned cols.
29396 // we do this second (and not at the same time) as this is
29397 // more expensive, as spanning cols is a
29398 // infrequently used feature so we don't need to do this most
29399 // of the time
29400 this.getAllCellCtrls().forEach(function (cellCtrl) {
29401 if (cellCtrl.getColSpanningList().indexOf(column) >= 0) {
29402 res = cellCtrl;
29403 }
29404 });
29405 return res;
29406 };
29407 RowCtrl.prototype.onRowIndexChanged = function () {
29408 // we only bother updating if the rowIndex is present. if it is not present, it means this row
29409 // is child of a group node, and the group node was closed, it's the only way to have no row index.
29410 // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!
29411 if (this.rowNode.rowIndex != null) {
29412 this.onCellFocusChanged();
29413 this.updateRowIndexes();
29414 this.postProcessCss();
29415 }
29416 };
29417 RowCtrl.prototype.updateRowIndexes = function (gui) {
29418 var rowIndexStr = this.rowNode.getRowIndexString();
29419 var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();
29420 var rowIsEven = this.rowNode.rowIndex % 2 === 0;
29421 var ariaRowIndex = headerRowCount + this.rowNode.rowIndex + 1;
29422 this.forEachGui(gui, function (c) {
29423 c.rowComp.setRowIndex(rowIndexStr);
29424 c.rowComp.addOrRemoveCssClass('ag-row-even', rowIsEven);
29425 c.rowComp.addOrRemoveCssClass('ag-row-odd', !rowIsEven);
29426 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaRowIndex"])(c.element, ariaRowIndex);
29427 });
29428 };
29429 // returns the pinned left container, either the normal one, or the embedded full with one if exists
29430 RowCtrl.prototype.getPinnedLeftRowElement = function () {
29431 return this.leftGui ? this.leftGui.element : undefined;
29432 };
29433 // returns the pinned right container, either the normal one, or the embedded full with one if exists
29434 RowCtrl.prototype.getPinnedRightRowElement = function () {
29435 return this.rightGui ? this.rightGui.element : undefined;
29436 };
29437 // returns the body container, either the normal one, or the embedded full with one if exists
29438 RowCtrl.prototype.getBodyRowElement = function () {
29439 return this.centerGui ? this.centerGui.element : undefined;
29440 };
29441 // returns the full width container
29442 RowCtrl.prototype.getFullWidthRowElement = function () {
29443 return this.fullWidthGui ? this.fullWidthGui.element : undefined;
29444 };
29445 RowCtrl.DOM_DATA_KEY_ROW_CTRL = 'renderedRow';
29446 return RowCtrl;
29447}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
29448
29449
29450
29451/***/ }),
29452/* 125 */
29453/***/ (function(module, __webpack_exports__, __webpack_require__) {
29454
29455"use strict";
29456__webpack_require__.r(__webpack_exports__);
29457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellCtrl", function() { return CellCtrl; });
29458/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
29459/* harmony import */ var _cellRangeFeature__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(126);
29460/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
29461/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
29462/* harmony import */ var _cellPositionFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(128);
29463/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(31);
29464/* harmony import */ var _cellCustomStyleFeature__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(129);
29465/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(130);
29466/* harmony import */ var _cellMouseListenerFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(131);
29467/* harmony import */ var _cellKeyboardListenerFeature__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(133);
29468/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(48);
29469/* harmony import */ var _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(98);
29470/* harmony import */ var _dndSourceComp__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(134);
29471/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(13);
29472/* harmony import */ var _row_rowDragComp__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(99);
29473/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(12);
29474/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(45);
29475/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(41);
29476/**
29477 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
29478 * @version v29.2.0
29479 * @link https://www.ag-grid.com/
29480 * @license MIT
29481 */
29482var __extends = (undefined && undefined.__extends) || (function () {
29483 var extendStatics = function (d, b) {
29484 extendStatics = Object.setPrototypeOf ||
29485 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
29486 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
29487 return extendStatics(d, b);
29488 };
29489 return function (d, b) {
29490 extendStatics(d, b);
29491 function __() { this.constructor = d; }
29492 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
29493 };
29494})();
29495var __assign = (undefined && undefined.__assign) || function () {
29496 __assign = Object.assign || function(t) {
29497 for (var s, i = 1, n = arguments.length; i < n; i++) {
29498 s = arguments[i];
29499 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
29500 t[p] = s[p];
29501 }
29502 return t;
29503 };
29504 return __assign.apply(this, arguments);
29505};
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
29517
29518
29519
29520
29521
29522
29523
29524var CSS_CELL = 'ag-cell';
29525var CSS_AUTO_HEIGHT = 'ag-cell-auto-height';
29526var CSS_NORMAL_HEIGHT = 'ag-cell-normal-height';
29527var CSS_CELL_FOCUS = 'ag-cell-focus';
29528var CSS_CELL_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';
29529var CSS_CELL_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';
29530var CSS_CELL_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';
29531var CSS_COLUMN_HOVER = 'ag-column-hover';
29532var CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';
29533var instanceIdSequence = 0;
29534var CellCtrl = /** @class */ (function (_super) {
29535 __extends(CellCtrl, _super);
29536 function CellCtrl(column, rowNode, beans, rowCtrl) {
29537 var _this = _super.call(this) || this;
29538 _this.cellRangeFeature = null;
29539 _this.cellPositionFeature = null;
29540 _this.cellCustomStyleFeature = null;
29541 _this.tooltipFeature = null;
29542 _this.cellMouseListenerFeature = null;
29543 _this.cellKeyboardListenerFeature = null;
29544 _this.suppressRefreshCell = false;
29545 _this.onCellCompAttachedFuncs = [];
29546 _this.column = column;
29547 _this.rowNode = rowNode;
29548 _this.beans = beans;
29549 _this.rowCtrl = rowCtrl;
29550 // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'
29551 _this.instanceId = column.getId() + '-' + instanceIdSequence++;
29552 _this.createCellPosition();
29553 _this.addFeatures();
29554 return _this;
29555 }
29556 CellCtrl.prototype.addFeatures = function () {
29557 var _this = this;
29558 this.cellPositionFeature = new _cellPositionFeature__WEBPACK_IMPORTED_MODULE_4__["CellPositionFeature"](this, this.beans);
29559 this.addDestroyFunc(function () { var _a; (_a = _this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellPositionFeature = null; });
29560 this.cellCustomStyleFeature = new _cellCustomStyleFeature__WEBPACK_IMPORTED_MODULE_6__["CellCustomStyleFeature"](this, this.beans);
29561 this.addDestroyFunc(function () { var _a; (_a = _this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellCustomStyleFeature = null; });
29562 this.cellMouseListenerFeature = new _cellMouseListenerFeature__WEBPACK_IMPORTED_MODULE_8__["CellMouseListenerFeature"](this, this.beans, this.column);
29563 this.addDestroyFunc(function () { var _a; (_a = _this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellMouseListenerFeature = null; });
29564 this.cellKeyboardListenerFeature = new _cellKeyboardListenerFeature__WEBPACK_IMPORTED_MODULE_9__["CellKeyboardListenerFeature"](this, this.beans, this.column, this.rowNode, this.rowCtrl);
29565 this.addDestroyFunc(function () { var _a; (_a = _this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellKeyboardListenerFeature = null; });
29566 var rangeSelectionEnabled = this.beans.rangeService && this.beans.gridOptionsService.isEnableRangeSelection();
29567 if (rangeSelectionEnabled) {
29568 this.cellRangeFeature = new _cellRangeFeature__WEBPACK_IMPORTED_MODULE_1__["CellRangeFeature"](this.beans, this);
29569 this.addDestroyFunc(function () { var _a; (_a = _this.cellRangeFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellRangeFeature = null; });
29570 }
29571 this.addTooltipFeature();
29572 };
29573 CellCtrl.prototype.addTooltipFeature = function () {
29574 var _this = this;
29575 var getTooltipValue = function () {
29576 var colDef = _this.column.getColDef();
29577 var data = _this.rowNode.data;
29578 if (colDef.tooltipField && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(data)) {
29579 return Object(_utils_object__WEBPACK_IMPORTED_MODULE_15__["getValueUsingField"])(data, colDef.tooltipField, _this.column.isTooltipFieldContainsDots());
29580 }
29581 var valueGetter = colDef.tooltipValueGetter;
29582 if (valueGetter) {
29583 return valueGetter({
29584 location: 'cell',
29585 api: _this.beans.gridOptionsService.api,
29586 columnApi: _this.beans.gridOptionsService.columnApi,
29587 context: _this.beans.gridOptionsService.context,
29588 colDef: _this.column.getColDef(),
29589 column: _this.column,
29590 rowIndex: _this.cellPosition.rowIndex,
29591 node: _this.rowNode,
29592 data: _this.rowNode.data,
29593 value: _this.value,
29594 valueFormatted: _this.valueFormatted,
29595 });
29596 }
29597 return null;
29598 };
29599 var tooltipCtrl = {
29600 getColumn: function () { return _this.column; },
29601 getColDef: function () { return _this.column.getColDef(); },
29602 getRowIndex: function () { return _this.cellPosition.rowIndex; },
29603 getRowNode: function () { return _this.rowNode; },
29604 getGui: function () { return _this.getGui(); },
29605 getLocation: function () { return 'cell'; },
29606 getTooltipValue: getTooltipValue,
29607 // this makes no sense, why is the cell formatted value passed to the tooltip???
29608 getValueFormatted: function () { return _this.valueFormatted; }
29609 };
29610 this.tooltipFeature = new _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_7__["TooltipFeature"](tooltipCtrl, this.beans);
29611 this.addDestroyFunc(function () { var _a; (_a = _this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.tooltipFeature = null; });
29612 };
29613 CellCtrl.prototype.setComp = function (comp, eGui, eCellWrapper, printLayout, startEditing) {
29614 var _a, _b, _c, _d;
29615 this.cellComp = comp;
29616 this.eGui = eGui;
29617 this.printLayout = printLayout;
29618 // we force to make sure formatter gets called at least once,
29619 // even if value has not changed (is is undefined)
29620 this.updateAndFormatValue(true);
29621 this.addDomData();
29622 this.onCellFocused();
29623 this.applyStaticCssClasses();
29624 this.setWrapText();
29625 this.onFirstRightPinnedChanged();
29626 this.onLastLeftPinnedChanged();
29627 this.onColumnHover();
29628 this.setupControlComps();
29629 if (eCellWrapper) {
29630 this.setupAutoHeight(eCellWrapper);
29631 }
29632 this.setAriaColIndex();
29633 if (!this.beans.gridOptionsService.is('suppressCellFocus')) {
29634 this.cellComp.setTabIndex(-1);
29635 }
29636 var colIdSanitised = Object(_utils_string__WEBPACK_IMPORTED_MODULE_5__["escapeString"])(this.column.getId());
29637 this.cellComp.setColId(colIdSanitised);
29638 this.cellComp.setRole('gridcell');
29639 (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.setComp(eGui);
29640 (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.setComp(comp);
29641 (_c = this.tooltipFeature) === null || _c === void 0 ? void 0 : _c.setComp(comp);
29642 (_d = this.cellKeyboardListenerFeature) === null || _d === void 0 ? void 0 : _d.setComp(this.eGui);
29643 if (this.cellRangeFeature) {
29644 this.cellRangeFeature.setComp(comp, eGui);
29645 }
29646 if (startEditing && this.isCellEditable()) {
29647 this.startEditing();
29648 }
29649 else {
29650 this.showValue();
29651 }
29652 if (this.onCellCompAttachedFuncs.length) {
29653 this.onCellCompAttachedFuncs.forEach(function (func) { return func(); });
29654 this.onCellCompAttachedFuncs = [];
29655 }
29656 };
29657 CellCtrl.prototype.setupAutoHeight = function (eCellWrapper) {
29658 var _this = this;
29659 if (!this.column.isAutoHeight()) {
29660 return;
29661 }
29662 var eParentCell = eCellWrapper.parentElement;
29663 // taking minRowHeight from getRowHeightForNode means the getRowHeight() callback is used,
29664 // thus allowing different min heights for different rows.
29665 var minRowHeight = this.beans.gridOptionsService.getRowHeightForNode(this.rowNode).height;
29666 var measureHeight = function (timesCalled) {
29667 if (_this.editing) {
29668 return;
29669 }
29670 // because of the retry's below, it's possible the retry's go beyond
29671 // the rows life.
29672 if (!_this.isAlive()) {
29673 return;
29674 }
29675 var _a = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_16__["getElementSize"])(eParentCell), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, borderBottomWidth = _a.borderBottomWidth, borderTopWidth = _a.borderTopWidth;
29676 var extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;
29677 var wrapperHeight = eCellWrapper.offsetHeight;
29678 var autoHeight = wrapperHeight + extraHeight;
29679 if (timesCalled < 5) {
29680 // if not in doc yet, means framework not yet inserted, so wait for next VM turn,
29681 // maybe it will be ready next VM turn
29682 var doc = _this.beans.gridOptionsService.getDocument();
29683 var notYetInDom = !doc || !doc.contains(eCellWrapper);
29684 // this happens in React, where React hasn't put any content in. we say 'possibly'
29685 // as a) may not be React and b) the cell could be empty anyway
29686 var possiblyNoContentYet = autoHeight == 0;
29687 if (notYetInDom || possiblyNoContentYet) {
29688 _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);
29689 return;
29690 }
29691 }
29692 var newHeight = Math.max(autoHeight, minRowHeight);
29693 _this.rowNode.setRowAutoHeight(newHeight, _this.column);
29694 };
29695 var listener = function () { return measureHeight(0); };
29696 // do once to set size in case size doesn't change, common when cell is blank
29697 listener();
29698 var destroyResizeObserver = this.beans.resizeObserverService.observeResize(eCellWrapper, listener);
29699 this.addDestroyFunc(function () {
29700 destroyResizeObserver();
29701 _this.rowNode.setRowAutoHeight(undefined, _this.column);
29702 });
29703 };
29704 CellCtrl.prototype.getInstanceId = function () {
29705 return this.instanceId;
29706 };
29707 CellCtrl.prototype.showValue = function (forceNewCellRendererInstance) {
29708 if (forceNewCellRendererInstance === void 0) { forceNewCellRendererInstance = false; }
29709 var valueToDisplay = this.valueFormatted != null ? this.valueFormatted : this.value;
29710 var params = this.createCellRendererParams();
29711 var compDetails = this.beans.userComponentFactory.getCellRendererDetails(this.column.getColDef(), params);
29712 this.cellComp.setRenderDetails(compDetails, valueToDisplay, forceNewCellRendererInstance);
29713 this.refreshHandle();
29714 };
29715 CellCtrl.prototype.setupControlComps = function () {
29716 var colDef = this.column.getColDef();
29717 this.includeSelection = this.isIncludeControl(colDef.checkboxSelection);
29718 this.includeRowDrag = this.isIncludeControl(colDef.rowDrag);
29719 this.includeDndSource = this.isIncludeControl(colDef.dndSource);
29720 this.cellComp.setIncludeSelection(this.includeSelection);
29721 this.cellComp.setIncludeDndSource(this.includeDndSource);
29722 this.cellComp.setIncludeRowDrag(this.includeRowDrag);
29723 };
29724 CellCtrl.prototype.isForceWrapper = function () {
29725 // text selection requires the value to be wrapped in another element
29726 var forceWrapper = this.beans.gridOptionsService.is('enableCellTextSelection') || this.column.isAutoHeight();
29727 return forceWrapper;
29728 };
29729 CellCtrl.prototype.isIncludeControl = function (value) {
29730 var rowNodePinned = this.rowNode.rowPinned != null;
29731 var isFunc = typeof value === 'function';
29732 var res = rowNodePinned ? false : isFunc || value === true;
29733 return res;
29734 };
29735 CellCtrl.prototype.refreshShouldDestroy = function () {
29736 var colDef = this.column.getColDef();
29737 var selectionChanged = this.includeSelection != this.isIncludeControl(colDef.checkboxSelection);
29738 var rowDragChanged = this.includeRowDrag != this.isIncludeControl(colDef.rowDrag);
29739 var dndSourceChanged = this.includeDndSource != this.isIncludeControl(colDef.dndSource);
29740 return selectionChanged || rowDragChanged || dndSourceChanged;
29741 };
29742 // either called internally if single cell editing, or called by rowRenderer if row editing
29743 CellCtrl.prototype.startEditing = function (key, charPress, cellStartedEdit, event) {
29744 var _this = this;
29745 if (key === void 0) { key = null; }
29746 if (charPress === void 0) { charPress = null; }
29747 if (cellStartedEdit === void 0) { cellStartedEdit = false; }
29748 if (event === void 0) { event = null; }
29749 if (!this.isCellEditable() || this.editing) {
29750 return;
29751 }
29752 // because of async in React, the cellComp may not be set yet, if no cellComp then we are
29753 // yet to initialise the cell, so we re-schedule this operation for when celLComp is attached
29754 if (!this.cellComp) {
29755 this.onCellCompAttachedFuncs.push(function () { _this.startEditing(key, charPress, cellStartedEdit, event); });
29756 return;
29757 }
29758 var editorParams = this.createCellEditorParams(key, charPress, cellStartedEdit);
29759 var colDef = this.column.getColDef();
29760 var compDetails = this.beans.userComponentFactory.getCellEditorDetails(colDef, editorParams);
29761 // if cellEditorSelector was used, we give preference to popup and popupPosition from the selector
29762 var popup = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupFromSelector) != null ? compDetails.popupFromSelector : !!colDef.cellEditorPopup;
29763 var position = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupPositionFromSelector) != null ? compDetails.popupPositionFromSelector : colDef.cellEditorPopupPosition;
29764 this.setEditing(true);
29765 this.cellComp.setEditDetails(compDetails, popup, position);
29766 var e = this.createEvent(event, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_EDITING_STARTED);
29767 this.beans.eventService.dispatchEvent(e);
29768 };
29769 CellCtrl.prototype.setEditing = function (editing) {
29770 if (this.editing === editing) {
29771 return;
29772 }
29773 this.editing = editing;
29774 this.refreshHandle();
29775 };
29776 // pass in 'true' to cancel the editing.
29777 CellCtrl.prototype.stopRowOrCellEdit = function (cancel) {
29778 if (cancel === void 0) { cancel = false; }
29779 if (this.beans.gridOptionsService.get('editType') === 'fullRow') {
29780 this.rowCtrl.stopRowEditing(cancel);
29781 }
29782 else {
29783 this.stopEditing(cancel);
29784 }
29785 };
29786 CellCtrl.prototype.onPopupEditorClosed = function () {
29787 if (!this.isEditing()) {
29788 return;
29789 }
29790 // note: this happens because of a click outside of the grid or if the popupEditor
29791 // is closed with `Escape` key. if another cell was clicked, then the editing will
29792 // have already stopped and returned on the conditional above.
29793 this.stopEditingAndFocus();
29794 };
29795 CellCtrl.prototype.takeValueFromCellEditor = function (cancel) {
29796 var noValueResult = { newValueExists: false };
29797 if (cancel) {
29798 return noValueResult;
29799 }
29800 var cellEditor = this.cellComp.getCellEditor();
29801 if (!cellEditor) {
29802 return noValueResult;
29803 }
29804 var userWantsToCancel = cellEditor.isCancelAfterEnd && cellEditor.isCancelAfterEnd();
29805 if (userWantsToCancel) {
29806 return noValueResult;
29807 }
29808 var newValue = cellEditor.getValue();
29809 return {
29810 newValue: newValue,
29811 newValueExists: true
29812 };
29813 };
29814 /**
29815 * @returns `True` if the value changes, otherwise `False`.
29816 */
29817 CellCtrl.prototype.saveNewValue = function (oldValue, newValue) {
29818 if (newValue === oldValue) {
29819 return false;
29820 }
29821 // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection
29822 // getting triggered, which results in all cells getting refreshed. we do not want this refresh
29823 // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.
29824 // if we only did this refresh (and not the one below) then the cell would flash and not be forced.
29825 this.suppressRefreshCell = true;
29826 var valueChanged = this.rowNode.setDataValue(this.column, newValue, 'edit');
29827 this.suppressRefreshCell = false;
29828 return valueChanged;
29829 };
29830 /**
29831 * Ends the Cell Editing
29832 * @param cancel `True` if the edit process is being canceled.
29833 * @returns `True` if the value of the `GridCell` has been updated, otherwise `False`.
29834 */
29835 CellCtrl.prototype.stopEditing = function (cancel) {
29836 if (cancel === void 0) { cancel = false; }
29837 if (!this.editing) {
29838 return false;
29839 }
29840 var _a = this.takeValueFromCellEditor(cancel), newValue = _a.newValue, newValueExists = _a.newValueExists;
29841 var oldValue = this.getValueFromValueService();
29842 var valueChanged = false;
29843 if (newValueExists) {
29844 valueChanged = this.saveNewValue(oldValue, newValue);
29845 }
29846 this.setEditing(false);
29847 this.cellComp.setEditDetails(); // passing nothing stops editing
29848 this.updateAndFormatValue();
29849 this.refreshCell({ forceRefresh: true, suppressFlash: true });
29850 this.dispatchEditingStoppedEvent(oldValue, newValue, !cancel && !!valueChanged);
29851 return valueChanged;
29852 };
29853 CellCtrl.prototype.dispatchEditingStoppedEvent = function (oldValue, newValue, valueChanged) {
29854 var editingStoppedEvent = __assign(__assign({}, this.createEvent(null, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue,
29855 newValue: newValue,
29856 valueChanged: valueChanged });
29857 this.beans.eventService.dispatchEvent(editingStoppedEvent);
29858 };
29859 CellCtrl.prototype.createCellEditorParams = function (key, charPress, cellStartedEdit) {
29860 return {
29861 value: this.getValueFromValueService(),
29862 eventKey: key,
29863 charPress: charPress,
29864 column: this.column,
29865 colDef: this.column.getColDef(),
29866 rowIndex: this.getCellPosition().rowIndex,
29867 node: this.rowNode,
29868 data: this.rowNode.data,
29869 api: this.beans.gridOptionsService.api,
29870 cellStartedEdit: cellStartedEdit,
29871 columnApi: this.beans.gridOptionsService.columnApi,
29872 context: this.beans.gridOptionsService.context,
29873 onKeyDown: this.onKeyDown.bind(this),
29874 stopEditing: this.stopEditingAndFocus.bind(this),
29875 eGridCell: this.getGui(),
29876 parseValue: this.parseValue.bind(this),
29877 formatValue: this.formatValue.bind(this)
29878 };
29879 };
29880 CellCtrl.prototype.createCellRendererParams = function () {
29881 var _this = this;
29882 var res = {
29883 value: this.value,
29884 valueFormatted: this.valueFormatted,
29885 getValue: this.getValueFromValueService.bind(this),
29886 setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },
29887 formatValue: this.formatValue.bind(this),
29888 data: this.rowNode.data,
29889 node: this.rowNode,
29890 pinned: this.column.getPinned(),
29891 colDef: this.column.getColDef(),
29892 column: this.column,
29893 rowIndex: this.getCellPosition().rowIndex,
29894 api: this.beans.gridOptionsService.api,
29895 columnApi: this.beans.gridOptionsService.columnApi,
29896 context: this.beans.gridOptionsService.context,
29897 refreshCell: this.refreshCell.bind(this),
29898 eGridCell: this.getGui(),
29899 eParentOfValue: this.cellComp.getParentOfValue(),
29900 registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.registerRowDragger(rowDraggerElement, dragStartPixels, suppressVisibilityChange); },
29901 };
29902 return res;
29903 };
29904 CellCtrl.prototype.parseValue = function (newValue) {
29905 var colDef = this.column.getColDef();
29906 var params = {
29907 node: this.rowNode,
29908 data: this.rowNode.data,
29909 oldValue: this.getValue(),
29910 newValue: newValue,
29911 colDef: colDef,
29912 column: this.column,
29913 api: this.beans.gridOptionsService.api,
29914 columnApi: this.beans.gridOptionsService.columnApi,
29915 context: this.beans.gridOptionsService.context
29916 };
29917 var valueParser = colDef.valueParser;
29918 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(valueParser)) {
29919 if (typeof valueParser === 'function') {
29920 return valueParser(params);
29921 }
29922 return this.beans.expressionService.evaluate(valueParser, params);
29923 }
29924 return newValue;
29925 };
29926 CellCtrl.prototype.setFocusOutOnEditor = function () {
29927 if (!this.editing) {
29928 return;
29929 }
29930 var cellEditor = this.cellComp.getCellEditor();
29931 if (cellEditor && cellEditor.focusOut) {
29932 cellEditor.focusOut();
29933 }
29934 };
29935 CellCtrl.prototype.setFocusInOnEditor = function () {
29936 if (!this.editing) {
29937 return;
29938 }
29939 var cellEditor = this.cellComp.getCellEditor();
29940 if (cellEditor && cellEditor.focusIn) {
29941 // if the editor is present, then we just focus it
29942 cellEditor.focusIn();
29943 }
29944 else {
29945 // if the editor is not present, it means async cell editor (eg React fibre)
29946 // and we are trying to set focus before the cell editor is present, so we
29947 // focus the cell instead
29948 this.focusCell(true);
29949 }
29950 };
29951 CellCtrl.prototype.onCellChanged = function (event) {
29952 // because of async in React, the cellComp may not be set yet, if no cellComp then we are
29953 // yet to initialise the cell, so no need to refresh.
29954 if (!this.cellComp) {
29955 return;
29956 }
29957 var eventImpactsThisCell = event.column === this.column;
29958 if (eventImpactsThisCell) {
29959 this.refreshCell({});
29960 }
29961 };
29962 // + stop editing {forceRefresh: true, suppressFlash: true}
29963 // + event cellChanged {}
29964 // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything
29965 // + rowCtrl: event dataChanged {suppressFlash: !update, newData: !update}
29966 // + rowCtrl: api refreshCells() {animate: true/false}
29967 // + rowRenderer: api softRefreshView() {}
29968 CellCtrl.prototype.refreshCell = function (params) {
29969 var _a, _b, _c;
29970 // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly
29971 if (this.suppressRefreshCell || this.editing) {
29972 return;
29973 }
29974 // In React, due to async, it's possible a refresh was asked for before the CellComp
29975 // has been set. If this happens, we skip the refresh, as the cell is going to be
29976 // initialised anyway once the CellComp is set.
29977 if (!this.cellComp) {
29978 return;
29979 }
29980 var colDef = this.column.getColDef();
29981 var newData = params != null && !!params.newData;
29982 var suppressFlash = (params != null && !!params.suppressFlash) || !!colDef.suppressCellFlash;
29983 // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the
29984 // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe
29985 // printing the current time (which would be silly)???. Generally speaking
29986 // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's
29987 // best always refresh and take the performance hit rather than never refresh and users complaining in support
29988 // that cells are not updating.
29989 var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;
29990 var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;
29991 var valuesDifferent = this.updateAndFormatValue();
29992 var dataNeedsUpdating = forceRefresh || valuesDifferent;
29993 if (dataNeedsUpdating) {
29994 // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.
29995 // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')
29996 // then we are not showing a movement in the stock price, rather we are showing different stock.
29997 this.showValue(newData);
29998 // we don't want to flash the cells when processing a filter change, as otherwise the UI would
29999 // be to busy. see comment in FilterManager with regards processingFilterChange
30000 var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();
30001 var flashCell = !suppressFlash && !processingFilterChange &&
30002 (this.beans.gridOptionsService.is('enableCellChangeFlash') || colDef.enableCellChangeFlash);
30003 if (flashCell) {
30004 this.flashCell();
30005 }
30006 (_a = this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.applyUserStyles();
30007 (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.applyClassesFromColDef();
30008 }
30009 this.refreshToolTip();
30010 // we do cellClassRules even if the value has not changed, so that users who have rules that
30011 // look at other parts of the row (where the other part of the row might of changed) will work.
30012 (_c = this.cellCustomStyleFeature) === null || _c === void 0 ? void 0 : _c.applyCellClassRules();
30013 };
30014 // cell editors call this, when they want to stop for reasons other
30015 // than what we pick up on. eg selecting from a dropdown ends editing.
30016 CellCtrl.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {
30017 if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }
30018 this.stopRowOrCellEdit();
30019 this.focusCell(true);
30020 if (!suppressNavigateAfterEdit) {
30021 this.navigateAfterEdit();
30022 }
30023 };
30024 CellCtrl.prototype.navigateAfterEdit = function () {
30025 var fullRowEdit = this.beans.gridOptionsService.get('editType') === 'fullRow';
30026 if (fullRowEdit) {
30027 return;
30028 }
30029 var enterMovesDownAfterEdit = this.beans.gridOptionsService.is('enterMovesDownAfterEdit');
30030 if (enterMovesDownAfterEdit) {
30031 this.beans.navigationService.navigateToNextCell(null, _constants_keyCode__WEBPACK_IMPORTED_MODULE_10__["KeyCode"].DOWN, this.getCellPosition(), false);
30032 }
30033 };
30034 // user can also call this via API
30035 CellCtrl.prototype.flashCell = function (delays) {
30036 var flashDelay = delays && delays.flashDelay;
30037 var fadeDelay = delays && delays.fadeDelay;
30038 this.animateCell('data-changed', flashDelay, fadeDelay);
30039 };
30040 CellCtrl.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {
30041 var _this = this;
30042 var _a, _b;
30043 var fullName = "ag-cell-" + cssName;
30044 var animationFullName = "ag-cell-" + cssName + "-animation";
30045 var gridOptionsService = this.beans.gridOptionsService;
30046 if (!flashDelay) {
30047 flashDelay = (_a = gridOptionsService.getNum('cellFlashDelay')) !== null && _a !== void 0 ? _a : 500;
30048 }
30049 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(fadeDelay)) {
30050 fadeDelay = (_b = gridOptionsService.getNum('cellFadeDelay')) !== null && _b !== void 0 ? _b : 1000;
30051 }
30052 // we want to highlight the cells, without any animation
30053 this.cellComp.addOrRemoveCssClass(fullName, true);
30054 this.cellComp.addOrRemoveCssClass(animationFullName, false);
30055 // then once that is applied, we remove the highlight with animation
30056 window.setTimeout(function () {
30057 if (!_this.isAlive()) {
30058 return;
30059 }
30060 _this.cellComp.addOrRemoveCssClass(fullName, false);
30061 _this.cellComp.addOrRemoveCssClass(animationFullName, true);
30062 _this.eGui.style.transition = "background-color " + fadeDelay + "ms";
30063 window.setTimeout(function () {
30064 if (!_this.isAlive()) {
30065 return;
30066 }
30067 // and then to leave things as we got them, we remove the animation
30068 _this.cellComp.addOrRemoveCssClass(animationFullName, false);
30069 _this.eGui.style.transition = '';
30070 }, fadeDelay);
30071 }, flashDelay);
30072 };
30073 CellCtrl.prototype.onFlashCells = function (event) {
30074 if (!this.cellComp) {
30075 return;
30076 }
30077 var cellId = this.beans.cellPositionUtils.createId(this.getCellPosition());
30078 var shouldFlash = event.cells[cellId];
30079 if (shouldFlash) {
30080 this.animateCell('highlight');
30081 }
30082 };
30083 CellCtrl.prototype.isCellEditable = function () {
30084 return this.column.isCellEditable(this.rowNode);
30085 };
30086 CellCtrl.prototype.isSuppressFillHandle = function () {
30087 return this.column.isSuppressFillHandle();
30088 };
30089 CellCtrl.prototype.formatValue = function (value) {
30090 var res = this.callValueFormatter(value);
30091 return res != null ? res : value;
30092 };
30093 CellCtrl.prototype.callValueFormatter = function (value) {
30094 return this.beans.valueFormatterService.formatValue(this.column, this.rowNode, value);
30095 };
30096 CellCtrl.prototype.updateAndFormatValue = function (force) {
30097 if (force === void 0) { force = false; }
30098 var oldValue = this.value;
30099 var oldValueFormatted = this.valueFormatted;
30100 this.value = this.getValueFromValueService();
30101 this.valueFormatted = this.callValueFormatter(this.value);
30102 var valuesDifferent = force ? true :
30103 !this.valuesAreEqual(oldValue, this.value) || this.valueFormatted != oldValueFormatted;
30104 return valuesDifferent;
30105 };
30106 CellCtrl.prototype.valuesAreEqual = function (val1, val2) {
30107 // if the user provided an equals method, use that, otherwise do simple comparison
30108 var colDef = this.column.getColDef();
30109 return colDef.equals ? colDef.equals(val1, val2) : val1 === val2;
30110 };
30111 CellCtrl.prototype.getComp = function () {
30112 return this.cellComp;
30113 };
30114 CellCtrl.prototype.getValueFromValueService = function () {
30115 // if we don't check this, then the grid will render leaf groups as open even if we are not
30116 // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow
30117 // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded
30118 // them via the API, or user user expanded them in the UI before turning on pivot mode
30119 var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnModel.isPivotMode();
30120 var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;
30121 // are we showing group footers
30122 var groupFootersEnabled = this.beans.gridOptionsService.is('groupIncludeFooter');
30123 // if doing footers, we normally don't show agg data at group level when group is open
30124 var groupAlwaysShowAggData = this.beans.gridOptionsService.is('groupSuppressBlankHeader');
30125 // if doing grouping and footers, we don't want to include the agg value
30126 // in the header when the group is open
30127 var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;
30128 var value = this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);
30129 return value;
30130 };
30131 CellCtrl.prototype.getValue = function () {
30132 return this.value;
30133 };
30134 CellCtrl.prototype.getValueFormatted = function () {
30135 return this.valueFormatted;
30136 };
30137 CellCtrl.prototype.addDomData = function () {
30138 var _this = this;
30139 var element = this.getGui();
30140 this.beans.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, this);
30141 this.addDestroyFunc(function () { return _this.beans.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, null); });
30142 };
30143 CellCtrl.prototype.createEvent = function (domEvent, eventType) {
30144 var event = {
30145 type: eventType,
30146 node: this.rowNode,
30147 data: this.rowNode.data,
30148 value: this.value,
30149 column: this.column,
30150 colDef: this.column.getColDef(),
30151 context: this.beans.gridOptionsService.context,
30152 api: this.beans.gridApi,
30153 columnApi: this.beans.columnApi,
30154 rowPinned: this.rowNode.rowPinned,
30155 event: domEvent,
30156 rowIndex: this.rowNode.rowIndex
30157 };
30158 return event;
30159 };
30160 CellCtrl.prototype.onKeyPress = function (event) {
30161 var _a;
30162 (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.onKeyPress(event);
30163 };
30164 CellCtrl.prototype.onKeyDown = function (event) {
30165 var _a;
30166 (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.onKeyDown(event);
30167 };
30168 CellCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {
30169 var _a;
30170 (_a = this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.onMouseEvent(eventName, mouseEvent);
30171 };
30172 CellCtrl.prototype.getGui = function () {
30173 return this.eGui;
30174 };
30175 CellCtrl.prototype.refreshToolTip = function () {
30176 var _a;
30177 (_a = this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.refreshToolTip();
30178 };
30179 CellCtrl.prototype.getColSpanningList = function () {
30180 return this.cellPositionFeature.getColSpanningList();
30181 };
30182 CellCtrl.prototype.onLeftChanged = function () {
30183 var _a;
30184 if (!this.cellComp) {
30185 return;
30186 }
30187 (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.onLeftChanged();
30188 };
30189 CellCtrl.prototype.onDisplayedColumnsChanged = function () {
30190 if (!this.eGui) {
30191 return;
30192 }
30193 this.setAriaColIndex();
30194 };
30195 CellCtrl.prototype.setAriaColIndex = function () {
30196 var colIdx = this.beans.columnModel.getAriaColumnIndex(this.column);
30197 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_17__["setAriaColIndex"])(this.getGui(), colIdx); // for react, we don't use JSX, as it slowed down column moving
30198 };
30199 CellCtrl.prototype.isSuppressNavigable = function () {
30200 return this.column.isSuppressNavigable(this.rowNode);
30201 };
30202 CellCtrl.prototype.onWidthChanged = function () {
30203 var _a;
30204 return (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.onWidthChanged();
30205 };
30206 CellCtrl.prototype.getColumn = function () {
30207 return this.column;
30208 };
30209 CellCtrl.prototype.getRowNode = function () {
30210 return this.rowNode;
30211 };
30212 CellCtrl.prototype.getBeans = function () {
30213 return this.beans;
30214 };
30215 CellCtrl.prototype.isPrintLayout = function () {
30216 return this.printLayout;
30217 };
30218 CellCtrl.prototype.appendChild = function (htmlElement) {
30219 this.eGui.appendChild(htmlElement);
30220 };
30221 CellCtrl.prototype.refreshHandle = function () {
30222 if (this.cellRangeFeature) {
30223 this.cellRangeFeature.refreshHandle();
30224 }
30225 };
30226 CellCtrl.prototype.getCellPosition = function () {
30227 return this.cellPosition;
30228 };
30229 CellCtrl.prototype.isEditing = function () {
30230 return this.editing;
30231 };
30232 // called by rowRenderer when user navigates via tab key
30233 CellCtrl.prototype.startRowOrCellEdit = function (key, charPress, event) {
30234 if (event === void 0) { event = null; }
30235 if (!this.cellComp) {
30236 return;
30237 }
30238 if (this.beans.gridOptionsService.get('editType') === 'fullRow') {
30239 this.rowCtrl.startRowEditing(key, charPress, this);
30240 }
30241 else {
30242 this.startEditing(key, charPress, true, event);
30243 }
30244 };
30245 CellCtrl.prototype.getRowCtrl = function () {
30246 return this.rowCtrl;
30247 };
30248 CellCtrl.prototype.getRowPosition = function () {
30249 return {
30250 rowIndex: this.cellPosition.rowIndex,
30251 rowPinned: this.cellPosition.rowPinned
30252 };
30253 };
30254 CellCtrl.prototype.updateRangeBordersIfRangeCount = function () {
30255 if (!this.cellComp) {
30256 return;
30257 }
30258 if (this.cellRangeFeature) {
30259 this.cellRangeFeature.updateRangeBordersIfRangeCount();
30260 }
30261 };
30262 CellCtrl.prototype.onRangeSelectionChanged = function () {
30263 if (!this.cellComp) {
30264 return;
30265 }
30266 if (this.cellRangeFeature) {
30267 this.cellRangeFeature.onRangeSelectionChanged();
30268 }
30269 };
30270 CellCtrl.prototype.isRangeSelectionEnabled = function () {
30271 return this.cellRangeFeature != null;
30272 };
30273 CellCtrl.prototype.focusCell = function (forceBrowserFocus) {
30274 if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }
30275 this.beans.focusService.setFocusedCell({
30276 rowIndex: this.getCellPosition().rowIndex,
30277 column: this.column,
30278 rowPinned: this.rowNode.rowPinned,
30279 forceBrowserFocus: forceBrowserFocus
30280 });
30281 };
30282 CellCtrl.prototype.onRowIndexChanged = function () {
30283 // when index changes, this influences items that need the index, so we update the
30284 // grid cell so they are working off the new index.
30285 this.createCellPosition();
30286 // when the index of the row changes, ie means the cell may have lost or gained focus
30287 this.onCellFocused();
30288 // check range selection
30289 if (this.cellRangeFeature) {
30290 this.cellRangeFeature.onRangeSelectionChanged();
30291 }
30292 };
30293 CellCtrl.prototype.onFirstRightPinnedChanged = function () {
30294 if (!this.cellComp) {
30295 return;
30296 }
30297 var firstRightPinned = this.column.isFirstRightPinned();
30298 this.cellComp.addOrRemoveCssClass(CSS_CELL_FIRST_RIGHT_PINNED, firstRightPinned);
30299 };
30300 CellCtrl.prototype.onLastLeftPinnedChanged = function () {
30301 if (!this.cellComp) {
30302 return;
30303 }
30304 var lastLeftPinned = this.column.isLastLeftPinned();
30305 this.cellComp.addOrRemoveCssClass(CSS_CELL_LAST_LEFT_PINNED, lastLeftPinned);
30306 };
30307 CellCtrl.prototype.onCellFocused = function (event) {
30308 if (!this.cellComp || this.beans.gridOptionsService.is('suppressCellFocus')) {
30309 return;
30310 }
30311 var cellFocused = this.beans.focusService.isCellFocused(this.cellPosition);
30312 this.cellComp.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);
30313 // see if we need to force browser focus - this can happen if focus is programmatically set
30314 if (cellFocused && event && event.forceBrowserFocus) {
30315 var focusEl = this.cellComp.getFocusableElement();
30316 focusEl.focus({ preventScroll: !!event.preventScrollOnBrowserFocus });
30317 }
30318 // if another cell was focused, and we are editing, then stop editing
30319 var fullRowEdit = this.beans.gridOptionsService.get('editType') === 'fullRow';
30320 if (!cellFocused && !fullRowEdit && this.editing) {
30321 this.stopRowOrCellEdit();
30322 }
30323 };
30324 CellCtrl.prototype.createCellPosition = function () {
30325 this.cellPosition = {
30326 rowIndex: this.rowNode.rowIndex,
30327 rowPinned: Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["makeNull"])(this.rowNode.rowPinned),
30328 column: this.column
30329 };
30330 };
30331 // CSS Classes that only get applied once, they never change
30332 CellCtrl.prototype.applyStaticCssClasses = function () {
30333 this.cellComp.addOrRemoveCssClass(CSS_CELL, true);
30334 this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, true);
30335 // normal cells fill the height of the row. autoHeight cells have no height to let them
30336 // fit the height of content.
30337 var autoHeight = this.column.isAutoHeight() == true;
30338 this.cellComp.addOrRemoveCssClass(CSS_AUTO_HEIGHT, autoHeight);
30339 this.cellComp.addOrRemoveCssClass(CSS_NORMAL_HEIGHT, !autoHeight);
30340 };
30341 CellCtrl.prototype.onColumnHover = function () {
30342 if (!this.cellComp) {
30343 return;
30344 }
30345 if (!this.beans.gridOptionsService.is('columnHoverHighlight')) {
30346 return;
30347 }
30348 var isHovered = this.beans.columnHoverService.isHovered(this.column);
30349 this.cellComp.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);
30350 };
30351 CellCtrl.prototype.onColDefChanged = function () {
30352 if (!this.cellComp) {
30353 return;
30354 }
30355 this.setWrapText();
30356 if (!this.editing) {
30357 this.refreshCell({ forceRefresh: true, suppressFlash: true });
30358 }
30359 };
30360 CellCtrl.prototype.setWrapText = function () {
30361 var value = this.column.getColDef().wrapText == true;
30362 this.cellComp.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, value);
30363 };
30364 CellCtrl.prototype.dispatchCellContextMenuEvent = function (event) {
30365 var colDef = this.column.getColDef();
30366 var cellContextMenuEvent = this.createEvent(event, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_CONTEXT_MENU);
30367 this.beans.eventService.dispatchEvent(cellContextMenuEvent);
30368 if (colDef.onCellContextMenu) {
30369 // to make the callback async, do in a timeout
30370 window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);
30371 }
30372 };
30373 CellCtrl.prototype.getCellRenderer = function () {
30374 return this.cellComp ? this.cellComp.getCellRenderer() : null;
30375 };
30376 CellCtrl.prototype.getCellEditor = function () {
30377 return this.cellComp ? this.cellComp.getCellEditor() : null;
30378 };
30379 CellCtrl.prototype.destroy = function () {
30380 this.onCellCompAttachedFuncs = [];
30381 _super.prototype.destroy.call(this);
30382 };
30383 CellCtrl.prototype.createSelectionCheckbox = function () {
30384 var cbSelectionComponent = new _checkboxSelectionComponent__WEBPACK_IMPORTED_MODULE_11__["CheckboxSelectionComponent"]();
30385 this.beans.context.createBean(cbSelectionComponent);
30386 cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });
30387 // put the checkbox in before the value
30388 return cbSelectionComponent;
30389 };
30390 CellCtrl.prototype.createDndSource = function () {
30391 var dndSourceComp = new _dndSourceComp__WEBPACK_IMPORTED_MODULE_12__["DndSourceComp"](this.rowNode, this.column, this.beans, this.eGui);
30392 this.beans.context.createBean(dndSourceComp);
30393 return dndSourceComp;
30394 };
30395 CellCtrl.prototype.registerRowDragger = function (customElement, dragStartPixels, suppressVisibilityChange) {
30396 var _this = this;
30397 // if previously existed, then we are only updating
30398 if (this.customRowDragComp) {
30399 this.customRowDragComp.setDragElement(customElement, dragStartPixels);
30400 return;
30401 }
30402 var newComp = this.createRowDragComp(customElement, dragStartPixels, suppressVisibilityChange);
30403 if (newComp) {
30404 this.customRowDragComp = newComp;
30405 this.addDestroyFunc(function () { _this.beans.context.destroyBean(newComp); _this.customRowDragComp = null; });
30406 }
30407 };
30408 CellCtrl.prototype.createRowDragComp = function (customElement, dragStartPixels, suppressVisibilityChange) {
30409 var _this = this;
30410 var pagination = this.beans.gridOptionsService.is('pagination');
30411 var rowDragManaged = this.beans.gridOptionsService.is('rowDragManaged');
30412 var clientSideRowModelActive = this.beans.gridOptionsService.isRowModelType('clientSide');
30413 if (rowDragManaged) {
30414 // row dragging only available in default row model
30415 if (!clientSideRowModelActive) {
30416 Object(_utils_function__WEBPACK_IMPORTED_MODULE_13__["doOnce"])(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');
30417 return;
30418 }
30419 if (pagination) {
30420 Object(_utils_function__WEBPACK_IMPORTED_MODULE_13__["doOnce"])(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');
30421 return;
30422 }
30423 }
30424 // otherwise (normal case) we are creating a RowDraggingComp for the first time
30425 var rowDragComp = new _row_rowDragComp__WEBPACK_IMPORTED_MODULE_14__["RowDragComp"](function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels, suppressVisibilityChange);
30426 this.beans.context.createBean(rowDragComp);
30427 return rowDragComp;
30428 };
30429 CellCtrl.DOM_DATA_KEY_CELL_CTRL = 'cellCtrl';
30430 return CellCtrl;
30431}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
30432
30433
30434
30435/***/ }),
30436/* 126 */
30437/***/ (function(module, __webpack_exports__, __webpack_require__) {
30438
30439"use strict";
30440__webpack_require__.r(__webpack_exports__);
30441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRangeFeature", function() { return CellRangeFeature; });
30442/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
30443/* harmony import */ var _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(127);
30444/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
30445/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41);
30446/**
30447 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
30448 * @version v29.2.0
30449 * @link https://www.ag-grid.com/
30450 * @license MIT
30451 */
30452
30453
30454
30455
30456var CSS_CELL_RANGE_SELECTED = 'ag-cell-range-selected';
30457var CSS_CELL_RANGE_CHART = 'ag-cell-range-chart';
30458var CSS_CELL_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';
30459var CSS_CELL_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';
30460var CSS_CELL_RANGE_HANDLE = 'ag-cell-range-handle';
30461var CSS_CELL_RANGE_TOP = 'ag-cell-range-top';
30462var CSS_CELL_RANGE_RIGHT = 'ag-cell-range-right';
30463var CSS_CELL_RANGE_BOTTOM = 'ag-cell-range-bottom';
30464var CSS_CELL_RANGE_LEFT = 'ag-cell-range-left';
30465var CellRangeFeature = /** @class */ (function () {
30466 function CellRangeFeature(beans, ctrl) {
30467 this.beans = beans;
30468 this.cellCtrl = ctrl;
30469 }
30470 CellRangeFeature.prototype.setComp = function (cellComp, eGui) {
30471 this.cellComp = cellComp;
30472 this.eGui = eGui;
30473 this.onRangeSelectionChanged();
30474 };
30475 CellRangeFeature.prototype.onRangeSelectionChanged = function () {
30476 // when using reactUi, given UI is async, it's possible this method is called before the comp is registered
30477 if (!this.cellComp) {
30478 return;
30479 }
30480 this.rangeCount = this.beans.rangeService.getCellRangeCount(this.cellCtrl.getCellPosition());
30481 this.hasChartRange = this.getHasChartRange();
30482 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED, this.rangeCount !== 0);
30483 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + "-1", this.rangeCount === 1);
30484 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + "-2", this.rangeCount === 2);
30485 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + "-3", this.rangeCount === 3);
30486 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + "-4", this.rangeCount >= 4);
30487 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART, this.hasChartRange);
30488 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaSelected"])(this.eGui, this.rangeCount > 0 ? true : undefined);
30489 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SINGLE_CELL, this.isSingleCell());
30490 this.updateRangeBorders();
30491 this.refreshHandle();
30492 };
30493 CellRangeFeature.prototype.updateRangeBorders = function () {
30494 var rangeBorders = this.getRangeBorders();
30495 var isSingleCell = this.isSingleCell();
30496 var isTop = !isSingleCell && rangeBorders.top;
30497 var isRight = !isSingleCell && rangeBorders.right;
30498 var isBottom = !isSingleCell && rangeBorders.bottom;
30499 var isLeft = !isSingleCell && rangeBorders.left;
30500 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_TOP, isTop);
30501 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_RIGHT, isRight);
30502 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_BOTTOM, isBottom);
30503 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_LEFT, isLeft);
30504 };
30505 CellRangeFeature.prototype.isSingleCell = function () {
30506 var rangeService = this.beans.rangeService;
30507 return this.rangeCount === 1 && rangeService && !rangeService.isMoreThanOneCell();
30508 };
30509 CellRangeFeature.prototype.getHasChartRange = function () {
30510 var rangeService = this.beans.rangeService;
30511 if (!this.rangeCount || !rangeService) {
30512 return false;
30513 }
30514 var cellRanges = rangeService.getCellRanges();
30515 return cellRanges.length > 0 && cellRanges.every(function (range) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["includes"])([_interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__["CellRangeType"].DIMENSION, _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__["CellRangeType"].VALUE], range.type); });
30516 };
30517 CellRangeFeature.prototype.updateRangeBordersIfRangeCount = function () {
30518 // we only need to update range borders if we are in a range
30519 if (this.rangeCount > 0) {
30520 this.updateRangeBorders();
30521 this.refreshHandle();
30522 }
30523 };
30524 CellRangeFeature.prototype.getRangeBorders = function () {
30525 var _this = this;
30526 var isRtl = this.beans.gridOptionsService.is('enableRtl');
30527 var top = false;
30528 var right = false;
30529 var bottom = false;
30530 var left = false;
30531 var thisCol = this.cellCtrl.getCellPosition().column;
30532 var _a = this.beans, rangeService = _a.rangeService, columnModel = _a.columnModel;
30533 var leftCol;
30534 var rightCol;
30535 if (isRtl) {
30536 leftCol = columnModel.getDisplayedColAfter(thisCol);
30537 rightCol = columnModel.getDisplayedColBefore(thisCol);
30538 }
30539 else {
30540 leftCol = columnModel.getDisplayedColBefore(thisCol);
30541 rightCol = columnModel.getDisplayedColAfter(thisCol);
30542 }
30543 var ranges = rangeService.getCellRanges().filter(function (range) { return rangeService.isCellInSpecificRange(_this.cellCtrl.getCellPosition(), range); });
30544 // this means we are the first column in the grid
30545 if (!leftCol) {
30546 left = true;
30547 }
30548 // this means we are the last column in the grid
30549 if (!rightCol) {
30550 right = true;
30551 }
30552 for (var i = 0; i < ranges.length; i++) {
30553 if (top && right && bottom && left) {
30554 break;
30555 }
30556 var range = ranges[i];
30557 var startRow = rangeService.getRangeStartRow(range);
30558 var endRow = rangeService.getRangeEndRow(range);
30559 if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellCtrl.getCellPosition())) {
30560 top = true;
30561 }
30562 if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellCtrl.getCellPosition())) {
30563 bottom = true;
30564 }
30565 if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {
30566 left = true;
30567 }
30568 if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {
30569 right = true;
30570 }
30571 }
30572 return { top: top, right: right, bottom: bottom, left: left };
30573 };
30574 CellRangeFeature.prototype.refreshHandle = function () {
30575 if (!this.beans.rangeService) {
30576 return;
30577 }
30578 var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();
30579 if (this.selectionHandle && !shouldHaveSelectionHandle) {
30580 this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);
30581 }
30582 if (shouldHaveSelectionHandle) {
30583 this.addSelectionHandle();
30584 }
30585 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_HANDLE, !!this.selectionHandle);
30586 };
30587 CellRangeFeature.prototype.shouldHaveSelectionHandle = function () {
30588 var _a = this.beans, gridOptionsService = _a.gridOptionsService, rangeService = _a.rangeService;
30589 var cellRanges = rangeService.getCellRanges();
30590 var rangesLen = cellRanges.length;
30591 if (this.rangeCount < 1 || rangesLen < 1) {
30592 return false;
30593 }
30594 var cellRange = Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["last"])(cellRanges);
30595 var cellPosition = this.cellCtrl.getCellPosition();
30596 var isFillHandleAvailable = gridOptionsService.is('enableFillHandle') && !this.cellCtrl.isSuppressFillHandle();
30597 var isRangeHandleAvailable = gridOptionsService.is('enableRangeHandle');
30598 var handleIsAvailable = rangesLen === 1 && !this.cellCtrl.isEditing() && (isFillHandleAvailable || isRangeHandleAvailable);
30599 if (this.hasChartRange) {
30600 var hasCategoryRange = cellRanges[0].type === _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__["CellRangeType"].DIMENSION;
30601 var isCategoryCell = hasCategoryRange && rangeService.isCellInSpecificRange(cellPosition, cellRanges[0]);
30602 this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART_CATEGORY, isCategoryCell);
30603 handleIsAvailable = cellRange.type === _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__["CellRangeType"].VALUE;
30604 }
30605 return handleIsAvailable &&
30606 cellRange.endRow != null &&
30607 rangeService.isContiguousRange(cellRange) &&
30608 rangeService.isBottomRightCell(cellRange, cellPosition);
30609 };
30610 CellRangeFeature.prototype.addSelectionHandle = function () {
30611 var _a = this.beans, gridOptionsService = _a.gridOptionsService, rangeService = _a.rangeService;
30612 var cellRangeType = Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["last"])(rangeService.getCellRanges()).type;
30613 var selectionHandleFill = gridOptionsService.is('enableFillHandle') && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(cellRangeType);
30614 var type = selectionHandleFill ? _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__["SelectionHandleType"].FILL : _interfaces_IRangeService__WEBPACK_IMPORTED_MODULE_1__["SelectionHandleType"].RANGE;
30615 if (this.selectionHandle && this.selectionHandle.getType() !== type) {
30616 this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);
30617 }
30618 if (!this.selectionHandle) {
30619 this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);
30620 }
30621 this.selectionHandle.refresh(this.cellCtrl);
30622 };
30623 CellRangeFeature.prototype.destroy = function () {
30624 this.beans.context.destroyBean(this.selectionHandle);
30625 };
30626 return CellRangeFeature;
30627}());
30628
30629
30630
30631/***/ }),
30632/* 127 */
30633/***/ (function(module, __webpack_exports__, __webpack_require__) {
30634
30635"use strict";
30636__webpack_require__.r(__webpack_exports__);
30637/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return SelectionHandleType; });
30638/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return CellRangeType; });
30639/**
30640 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
30641 * @version v29.2.0
30642 * @link https://www.ag-grid.com/
30643 * @license MIT
30644 */
30645var SelectionHandleType;
30646(function (SelectionHandleType) {
30647 SelectionHandleType[SelectionHandleType["FILL"] = 0] = "FILL";
30648 SelectionHandleType[SelectionHandleType["RANGE"] = 1] = "RANGE";
30649})(SelectionHandleType || (SelectionHandleType = {}));
30650var CellRangeType;
30651(function (CellRangeType) {
30652 CellRangeType[CellRangeType["VALUE"] = 0] = "VALUE";
30653 CellRangeType[CellRangeType["DIMENSION"] = 1] = "DIMENSION";
30654})(CellRangeType || (CellRangeType = {}));
30655
30656
30657/***/ }),
30658/* 128 */
30659/***/ (function(module, __webpack_exports__, __webpack_require__) {
30660
30661"use strict";
30662__webpack_require__.r(__webpack_exports__);
30663/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellPositionFeature", function() { return CellPositionFeature; });
30664/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
30665/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
30666/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
30667/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
30668/**
30669 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
30670 * @version v29.2.0
30671 * @link https://www.ag-grid.com/
30672 * @license MIT
30673 */
30674var __extends = (undefined && undefined.__extends) || (function () {
30675 var extendStatics = function (d, b) {
30676 extendStatics = Object.setPrototypeOf ||
30677 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30678 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
30679 return extendStatics(d, b);
30680 };
30681 return function (d, b) {
30682 extendStatics(d, b);
30683 function __() { this.constructor = d; }
30684 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30685 };
30686})();
30687
30688
30689
30690
30691/**
30692 * Takes care of:
30693 * #) Cell Width (including when doing cell spanning, which makes width cover many columns)
30694 * #) Cell Height (when doing row span, otherwise we don't touch the height as it's just row height)
30695 * #) Cell Left (the horizontal positioning of the cell, the vertical positioning is on the row)
30696 */
30697var CellPositionFeature = /** @class */ (function (_super) {
30698 __extends(CellPositionFeature, _super);
30699 function CellPositionFeature(ctrl, beans) {
30700 var _this = _super.call(this) || this;
30701 _this.cellCtrl = ctrl;
30702 _this.beans = beans;
30703 _this.column = ctrl.getColumn();
30704 _this.rowNode = ctrl.getRowNode();
30705 _this.setupColSpan();
30706 _this.setupRowSpan();
30707 return _this;
30708 }
30709 CellPositionFeature.prototype.setupRowSpan = function () {
30710 this.rowSpan = this.column.getRowSpan(this.rowNode);
30711 };
30712 CellPositionFeature.prototype.setComp = function (eGui) {
30713 this.eGui = eGui;
30714 this.onLeftChanged();
30715 this.onWidthChanged();
30716 this.applyRowSpan();
30717 };
30718 CellPositionFeature.prototype.onDisplayColumnsChanged = function () {
30719 var colsSpanning = this.getColSpanningList();
30720 if (!Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["areEqual"])(this.colsSpanning, colsSpanning)) {
30721 this.colsSpanning = colsSpanning;
30722 this.onWidthChanged();
30723 this.onLeftChanged(); // left changes when doing RTL
30724 }
30725 };
30726 CellPositionFeature.prototype.setupColSpan = function () {
30727 // if no col span is active, then we don't set it up, as it would be wasteful of CPU
30728 if (this.column.getColDef().colSpan == null) {
30729 return;
30730 }
30731 this.colsSpanning = this.getColSpanningList();
30732 // because we are col spanning, a reorder of the cols can change what cols we are spanning over
30733 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));
30734 // because we are spanning over multiple cols, we check for width any time any cols width changes.
30735 // this is expensive - really we should be explicitly checking only the cols we are spanning over
30736 // instead of every col, however it would be tricky code to track the cols we are spanning over, so
30737 // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.
30738 this.addManagedListener(this.beans.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));
30739 };
30740 CellPositionFeature.prototype.onWidthChanged = function () {
30741 if (!this.eGui) {
30742 return;
30743 }
30744 var width = this.getCellWidth();
30745 this.eGui.style.width = width + "px";
30746 };
30747 CellPositionFeature.prototype.getCellWidth = function () {
30748 if (!this.colsSpanning) {
30749 return this.column.getActualWidth();
30750 }
30751 return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);
30752 };
30753 CellPositionFeature.prototype.getColSpanningList = function () {
30754 var colSpan = this.column.getColSpan(this.rowNode);
30755 var colsSpanning = [];
30756 // if just one col, the col span is just the column we are in
30757 if (colSpan === 1) {
30758 colsSpanning.push(this.column);
30759 }
30760 else {
30761 var pointer = this.column;
30762 var pinned = this.column.getPinned();
30763 for (var i = 0; pointer && i < colSpan; i++) {
30764 colsSpanning.push(pointer);
30765 pointer = this.beans.columnModel.getDisplayedColAfter(pointer);
30766 if (!pointer || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(pointer)) {
30767 break;
30768 }
30769 // we do not allow col spanning to span outside of pinned areas
30770 if (pinned !== pointer.getPinned()) {
30771 break;
30772 }
30773 }
30774 }
30775 return colsSpanning;
30776 };
30777 CellPositionFeature.prototype.onLeftChanged = function () {
30778 if (!this.eGui) {
30779 return;
30780 }
30781 var left = this.modifyLeftForPrintLayout(this.getCellLeft());
30782 this.eGui.style.left = left + 'px';
30783 };
30784 CellPositionFeature.prototype.getCellLeft = function () {
30785 var mostLeftCol;
30786 if (this.beans.gridOptionsService.is('enableRtl') && this.colsSpanning) {
30787 mostLeftCol = Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["last"])(this.colsSpanning);
30788 }
30789 else {
30790 mostLeftCol = this.column;
30791 }
30792 return mostLeftCol.getLeft();
30793 };
30794 CellPositionFeature.prototype.modifyLeftForPrintLayout = function (leftPosition) {
30795 if (!this.cellCtrl.isPrintLayout() || this.column.getPinned() === 'left') {
30796 return leftPosition;
30797 }
30798 var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();
30799 if (this.column.getPinned() === 'right') {
30800 var bodyWidth = this.beans.columnModel.getBodyContainerWidth();
30801 return leftWidth + bodyWidth + (leftPosition || 0);
30802 }
30803 // is in body
30804 return leftWidth + (leftPosition || 0);
30805 };
30806 CellPositionFeature.prototype.applyRowSpan = function () {
30807 if (this.rowSpan === 1) {
30808 return;
30809 }
30810 var singleRowHeight = this.beans.gridOptionsService.getRowHeightAsNumber();
30811 var totalRowHeight = singleRowHeight * this.rowSpan;
30812 this.eGui.style.height = totalRowHeight + "px";
30813 this.eGui.style.zIndex = '1';
30814 };
30815 // overriding to make public, as we don't dispose this bean via context
30816 CellPositionFeature.prototype.destroy = function () {
30817 _super.prototype.destroy.call(this);
30818 };
30819 return CellPositionFeature;
30820}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
30821
30822
30823
30824/***/ }),
30825/* 129 */
30826/***/ (function(module, __webpack_exports__, __webpack_require__) {
30827
30828"use strict";
30829__webpack_require__.r(__webpack_exports__);
30830/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellCustomStyleFeature", function() { return CellCustomStyleFeature; });
30831/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
30832/**
30833 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
30834 * @version v29.2.0
30835 * @link https://www.ag-grid.com/
30836 * @license MIT
30837 */
30838var __extends = (undefined && undefined.__extends) || (function () {
30839 var extendStatics = function (d, b) {
30840 extendStatics = Object.setPrototypeOf ||
30841 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30842 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
30843 return extendStatics(d, b);
30844 };
30845 return function (d, b) {
30846 extendStatics(d, b);
30847 function __() { this.constructor = d; }
30848 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30849 };
30850})();
30851
30852var CellCustomStyleFeature = /** @class */ (function (_super) {
30853 __extends(CellCustomStyleFeature, _super);
30854 function CellCustomStyleFeature(ctrl, beans) {
30855 var _this = _super.call(this) || this;
30856 _this.staticClasses = [];
30857 _this.cellCtrl = ctrl;
30858 _this.beans = beans;
30859 _this.column = ctrl.getColumn();
30860 _this.rowNode = ctrl.getRowNode();
30861 return _this;
30862 }
30863 CellCustomStyleFeature.prototype.setComp = function (comp) {
30864 this.cellComp = comp;
30865 this.applyUserStyles();
30866 this.applyCellClassRules();
30867 this.applyClassesFromColDef();
30868 };
30869 CellCustomStyleFeature.prototype.applyCellClassRules = function () {
30870 var _this = this;
30871 var colDef = this.column.getColDef();
30872 var cellClassParams = {
30873 value: this.cellCtrl.getValue(),
30874 data: this.rowNode.data,
30875 node: this.rowNode,
30876 colDef: colDef,
30877 column: this.column,
30878 rowIndex: this.rowNode.rowIndex,
30879 api: this.beans.gridOptionsService.api,
30880 columnApi: this.beans.gridOptionsService.columnApi,
30881 context: this.beans.gridOptionsService.context
30882 };
30883 this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); }, function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });
30884 };
30885 CellCustomStyleFeature.prototype.applyUserStyles = function () {
30886 var colDef = this.column.getColDef();
30887 if (!colDef.cellStyle) {
30888 return;
30889 }
30890 var styles;
30891 if (typeof colDef.cellStyle === 'function') {
30892 var cellStyleParams = {
30893 column: this.column,
30894 value: this.cellCtrl.getValue(),
30895 colDef: colDef,
30896 data: this.rowNode.data,
30897 node: this.rowNode,
30898 rowIndex: this.rowNode.rowIndex,
30899 api: this.beans.gridOptionsService.api,
30900 columnApi: this.beans.gridOptionsService.columnApi,
30901 context: this.beans.gridOptionsService.context,
30902 };
30903 var cellStyleFunc = colDef.cellStyle;
30904 styles = cellStyleFunc(cellStyleParams);
30905 }
30906 else {
30907 styles = colDef.cellStyle;
30908 }
30909 if (styles) {
30910 this.cellComp.setUserStyles(styles);
30911 }
30912 };
30913 CellCustomStyleFeature.prototype.applyClassesFromColDef = function () {
30914 var _this = this;
30915 var colDef = this.column.getColDef();
30916 var cellClassParams = {
30917 value: this.cellCtrl.getValue(),
30918 data: this.rowNode.data,
30919 node: this.rowNode,
30920 column: this.column,
30921 colDef: colDef,
30922 rowIndex: this.rowNode.rowIndex,
30923 api: this.beans.gridOptionsService.api,
30924 columnApi: this.beans.gridOptionsService.columnApi,
30925 context: this.beans.gridOptionsService.context
30926 };
30927 if (this.staticClasses.length) {
30928 this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });
30929 }
30930 this.staticClasses = this.beans.stylingService.getStaticCellClasses(colDef, cellClassParams);
30931 if (this.staticClasses.length) {
30932 this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); });
30933 }
30934 };
30935 // overriding to make public, as we don't dispose this bean via context
30936 CellCustomStyleFeature.prototype.destroy = function () {
30937 _super.prototype.destroy.call(this);
30938 };
30939 return CellCustomStyleFeature;
30940}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
30941
30942
30943
30944/***/ }),
30945/* 130 */
30946/***/ (function(module, __webpack_exports__, __webpack_require__) {
30947
30948"use strict";
30949__webpack_require__.r(__webpack_exports__);
30950/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TooltipFeature", function() { return TooltipFeature; });
30951/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
30952/* harmony import */ var _customTooltipFeature__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55);
30953/**
30954 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
30955 * @version v29.2.0
30956 * @link https://www.ag-grid.com/
30957 * @license MIT
30958 */
30959var __extends = (undefined && undefined.__extends) || (function () {
30960 var extendStatics = function (d, b) {
30961 extendStatics = Object.setPrototypeOf ||
30962 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
30963 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
30964 return extendStatics(d, b);
30965 };
30966 return function (d, b) {
30967 extendStatics(d, b);
30968 function __() { this.constructor = d; }
30969 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
30970 };
30971})();
30972
30973
30974var TooltipFeature = /** @class */ (function (_super) {
30975 __extends(TooltipFeature, _super);
30976 function TooltipFeature(ctrl, beans) {
30977 var _this = _super.call(this) || this;
30978 _this.ctrl = ctrl;
30979 _this.beans = beans;
30980 return _this;
30981 }
30982 TooltipFeature.prototype.setComp = function (comp) {
30983 this.comp = comp;
30984 this.setupTooltip();
30985 };
30986 TooltipFeature.prototype.setupTooltip = function () {
30987 this.browserTooltips = this.beans.gridOptionsService.is('enableBrowserTooltips');
30988 this.updateTooltipText();
30989 if (this.browserTooltips) {
30990 this.comp.setTitle(this.tooltip != null ? this.tooltip : undefined);
30991 }
30992 else {
30993 this.createTooltipFeatureIfNeeded();
30994 }
30995 };
30996 TooltipFeature.prototype.updateTooltipText = function () {
30997 this.tooltip = this.ctrl.getTooltipValue();
30998 };
30999 TooltipFeature.prototype.createTooltipFeatureIfNeeded = function () {
31000 var _this = this;
31001 if (this.genericTooltipFeature != null) {
31002 return;
31003 }
31004 var parent = {
31005 getTooltipParams: function () { return _this.getTooltipParams(); },
31006 getGui: function () { return _this.ctrl.getGui(); }
31007 };
31008 this.genericTooltipFeature = this.createManagedBean(new _customTooltipFeature__WEBPACK_IMPORTED_MODULE_1__["CustomTooltipFeature"](parent), this.beans.context);
31009 };
31010 TooltipFeature.prototype.refreshToolTip = function () {
31011 this.updateTooltipText();
31012 if (this.browserTooltips) {
31013 this.comp.setTitle(this.tooltip != null ? this.tooltip : undefined);
31014 }
31015 };
31016 TooltipFeature.prototype.getTooltipParams = function () {
31017 var ctrl = this.ctrl;
31018 var column = ctrl.getColumn ? ctrl.getColumn() : undefined;
31019 var colDef = ctrl.getColDef ? ctrl.getColDef() : undefined;
31020 var rowNode = ctrl.getRowNode ? ctrl.getRowNode() : undefined;
31021 return {
31022 location: ctrl.getLocation(),
31023 colDef: colDef,
31024 column: column,
31025 rowIndex: ctrl.getRowIndex ? ctrl.getRowIndex() : undefined,
31026 node: rowNode,
31027 data: rowNode ? rowNode.data : undefined,
31028 value: this.getTooltipText(),
31029 valueFormatted: ctrl.getValueFormatted ? ctrl.getValueFormatted() : undefined,
31030 };
31031 };
31032 TooltipFeature.prototype.getTooltipText = function () {
31033 return this.tooltip;
31034 };
31035 // overriding to make public, as we don't dispose this bean via context
31036 TooltipFeature.prototype.destroy = function () {
31037 _super.prototype.destroy.call(this);
31038 };
31039 return TooltipFeature;
31040}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
31041
31042
31043
31044/***/ }),
31045/* 131 */
31046/***/ (function(module, __webpack_exports__, __webpack_require__) {
31047
31048"use strict";
31049__webpack_require__.r(__webpack_exports__);
31050/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellMouseListenerFeature", function() { return CellMouseListenerFeature; });
31051/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
31052/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42);
31053/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
31054/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);
31055/* harmony import */ var _beans__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(132);
31056/**
31057 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31058 * @version v29.2.0
31059 * @link https://www.ag-grid.com/
31060 * @license MIT
31061 */
31062var __extends = (undefined && undefined.__extends) || (function () {
31063 var extendStatics = function (d, b) {
31064 extendStatics = Object.setPrototypeOf ||
31065 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31066 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31067 return extendStatics(d, b);
31068 };
31069 return function (d, b) {
31070 extendStatics(d, b);
31071 function __() { this.constructor = d; }
31072 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31073 };
31074})();
31075
31076
31077
31078
31079
31080var CellMouseListenerFeature = /** @class */ (function (_super) {
31081 __extends(CellMouseListenerFeature, _super);
31082 function CellMouseListenerFeature(ctrl, beans, column) {
31083 var _this = _super.call(this) || this;
31084 _this.cellCtrl = ctrl;
31085 _this.beans = beans;
31086 _this.column = column;
31087 return _this;
31088 }
31089 CellMouseListenerFeature.prototype.onMouseEvent = function (eventName, mouseEvent) {
31090 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["isStopPropagationForAgGrid"])(mouseEvent)) {
31091 return;
31092 }
31093 switch (eventName) {
31094 case 'click':
31095 this.onCellClicked(mouseEvent);
31096 break;
31097 case 'mousedown':
31098 case 'touchstart':
31099 this.onMouseDown(mouseEvent);
31100 break;
31101 case 'dblclick':
31102 this.onCellDoubleClicked(mouseEvent);
31103 break;
31104 case 'mouseout':
31105 this.onMouseOut(mouseEvent);
31106 break;
31107 case 'mouseover':
31108 this.onMouseOver(mouseEvent);
31109 break;
31110 }
31111 };
31112 CellMouseListenerFeature.prototype.onCellClicked = function (mouseEvent) {
31113 // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.
31114 if (this.isDoubleClickOnIPad()) {
31115 this.onCellDoubleClicked(mouseEvent);
31116 mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in
31117 return;
31118 }
31119 var _a = this.beans, eventService = _a.eventService, rangeService = _a.rangeService, gridOptionsService = _a.gridOptionsService;
31120 var multiKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;
31121 if (rangeService && multiKeyPressed) {
31122 // the mousedown event has created the range already, so we only intersect if there is more than one
31123 // range on this cell
31124 if (rangeService.getCellRangeCount(this.cellCtrl.getCellPosition()) > 1) {
31125 rangeService.intersectLastRange(true);
31126 }
31127 }
31128 var cellClickedEvent = this.cellCtrl.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_CLICKED);
31129 eventService.dispatchEvent(cellClickedEvent);
31130 var colDef = this.column.getColDef();
31131 if (colDef.onCellClicked) {
31132 // to make callback async, do in a timeout
31133 window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);
31134 }
31135 var editOnSingleClick = (gridOptionsService.is('singleClickEdit') || colDef.singleClickEdit)
31136 && !gridOptionsService.is('suppressClickEdit');
31137 if (editOnSingleClick) {
31138 this.cellCtrl.startRowOrCellEdit();
31139 }
31140 };
31141 // returns true if on iPad and this is second 'click' event in 200ms
31142 CellMouseListenerFeature.prototype.isDoubleClickOnIPad = function () {
31143 if (!Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isIOSUserAgent"])() || Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["isEventSupported"])('dblclick')) {
31144 return false;
31145 }
31146 var nowMillis = new Date().getTime();
31147 var res = nowMillis - this.lastIPadMouseClickEvent < 200;
31148 this.lastIPadMouseClickEvent = nowMillis;
31149 return res;
31150 };
31151 CellMouseListenerFeature.prototype.onCellDoubleClicked = function (mouseEvent) {
31152 var colDef = this.column.getColDef();
31153 // always dispatch event to eventService
31154 var cellDoubleClickedEvent = this.cellCtrl.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_DOUBLE_CLICKED);
31155 this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);
31156 // check if colDef also wants to handle event
31157 if (typeof colDef.onCellDoubleClicked === 'function') {
31158 // to make the callback async, do in a timeout
31159 window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);
31160 }
31161 var editOnDoubleClick = !this.beans.gridOptionsService.is('singleClickEdit')
31162 && !this.beans.gridOptionsService.is('suppressClickEdit');
31163 if (editOnDoubleClick) {
31164 this.cellCtrl.startRowOrCellEdit(null, null, mouseEvent);
31165 }
31166 };
31167 CellMouseListenerFeature.prototype.onMouseDown = function (mouseEvent) {
31168 var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;
31169 var target = mouseEvent.target;
31170 var _a = this.beans, eventService = _a.eventService, rangeService = _a.rangeService;
31171 // do not change the range for right-clicks inside an existing range
31172 if (this.isRightClickInExistingRange(mouseEvent)) {
31173 return;
31174 }
31175 var ranges = rangeService && rangeService.getCellRanges().length != 0;
31176 if (!shiftKey || !ranges) {
31177 // We only need to pass true to focusCell when the browser is Safari and we are trying
31178 // to focus the cell itself. This should never be true if the mousedown was triggered
31179 // due to a click on a cell editor for example.
31180 var forceBrowserFocus = (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_1__["isBrowserSafari"])()) && !this.cellCtrl.isEditing() && !Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isFocusableFormField"])(target);
31181 this.cellCtrl.focusCell(forceBrowserFocus);
31182 }
31183 // if shift clicking, and a range exists, we keep the focus on the cell that started the
31184 // range as the user then changes the range selection.
31185 if (shiftKey && ranges) {
31186 // this stops the cell from getting focused
31187 mouseEvent.preventDefault();
31188 }
31189 // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox
31190 // is focused but we don't want to change the range selection, so return here.
31191 if (this.containsWidget(target)) {
31192 return;
31193 }
31194 if (rangeService) {
31195 var thisCell = this.cellCtrl.getCellPosition();
31196 if (shiftKey) {
31197 rangeService.extendLatestRangeToCell(thisCell);
31198 }
31199 else {
31200 var ctrlKeyPressed = ctrlKey || metaKey;
31201 rangeService.setRangeToCell(thisCell, ctrlKeyPressed);
31202 }
31203 }
31204 eventService.dispatchEvent(this.cellCtrl.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_MOUSE_DOWN));
31205 };
31206 CellMouseListenerFeature.prototype.isRightClickInExistingRange = function (mouseEvent) {
31207 var rangeService = this.beans.rangeService;
31208 if (rangeService) {
31209 var cellInRange = rangeService.isCellInAnyRange(this.cellCtrl.getCellPosition());
31210 if (cellInRange && mouseEvent.button === 2) {
31211 return true;
31212 }
31213 }
31214 return false;
31215 };
31216 CellMouseListenerFeature.prototype.containsWidget = function (target) {
31217 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isElementChildOfClass"])(target, 'ag-selection-checkbox', 3);
31218 };
31219 CellMouseListenerFeature.prototype.onMouseOut = function (mouseEvent) {
31220 if (this.mouseStayingInsideCell(mouseEvent)) {
31221 return;
31222 }
31223 var cellMouseOutEvent = this.cellCtrl.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_MOUSE_OUT);
31224 this.beans.eventService.dispatchEvent(cellMouseOutEvent);
31225 this.beans.columnHoverService.clearMouseOver();
31226 };
31227 CellMouseListenerFeature.prototype.onMouseOver = function (mouseEvent) {
31228 if (this.mouseStayingInsideCell(mouseEvent)) {
31229 return;
31230 }
31231 var cellMouseOverEvent = this.cellCtrl.createEvent(mouseEvent, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_CELL_MOUSE_OVER);
31232 this.beans.eventService.dispatchEvent(cellMouseOverEvent);
31233 this.beans.columnHoverService.setMouseOver([this.column]);
31234 };
31235 CellMouseListenerFeature.prototype.mouseStayingInsideCell = function (e) {
31236 if (!e.target || !e.relatedTarget) {
31237 return false;
31238 }
31239 var eGui = this.cellCtrl.getGui();
31240 var cellContainsTarget = eGui.contains(e.target);
31241 var cellContainsRelatedTarget = eGui.contains(e.relatedTarget);
31242 return cellContainsTarget && cellContainsRelatedTarget;
31243 };
31244 CellMouseListenerFeature.prototype.destroy = function () {
31245 };
31246 return CellMouseListenerFeature;
31247}(_beans__WEBPACK_IMPORTED_MODULE_4__["Beans"]));
31248
31249
31250
31251/***/ }),
31252/* 132 */
31253/***/ (function(module, __webpack_exports__, __webpack_require__) {
31254
31255"use strict";
31256__webpack_require__.r(__webpack_exports__);
31257/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Beans", function() { return Beans; });
31258/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
31259/**
31260 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31261 * @version v29.2.0
31262 * @link https://www.ag-grid.com/
31263 * @license MIT
31264 */
31265var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31266 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31267 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31268 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;
31269 return c > 3 && r && Object.defineProperty(target, key, r), r;
31270};
31271
31272/** Using the IoC has a slight performance consideration, which is no problem most of the
31273 * time, unless we are trashing objects - which is the case when scrolling and rowComp
31274 * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired
31275 * with the IoC. Instead they get passed this object which is all the beans the RowComp
31276 * and CellComp need. Not autowiring all the cells gives performance improvement. */
31277var Beans = /** @class */ (function () {
31278 function Beans() {
31279 }
31280 Beans.prototype.postConstruct = function () {
31281 this.doingMasterDetail = this.gridOptionsService.isMasterDetail();
31282 if (this.gridOptionsService.isRowModelType('clientSide')) {
31283 this.clientSideRowModel = this.rowModel;
31284 }
31285 if (this.gridOptionsService.isRowModelType('serverSide')) {
31286 this.serverSideRowModel = this.rowModel;
31287 }
31288 };
31289 __decorate([
31290 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
31291 ], Beans.prototype, "resizeObserverService", void 0);
31292 __decorate([
31293 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
31294 ], Beans.prototype, "paginationProxy", void 0);
31295 __decorate([
31296 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('context')
31297 ], Beans.prototype, "context", void 0);
31298 __decorate([
31299 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnApi')
31300 ], Beans.prototype, "columnApi", void 0);
31301 __decorate([
31302 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
31303 ], Beans.prototype, "gridApi", void 0);
31304 __decorate([
31305 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsService')
31306 ], Beans.prototype, "gridOptionsService", void 0);
31307 __decorate([
31308 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
31309 ], Beans.prototype, "expressionService", void 0);
31310 __decorate([
31311 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('environment')
31312 ], Beans.prototype, "environment", void 0);
31313 __decorate([
31314 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
31315 ], Beans.prototype, "rowRenderer", void 0);
31316 __decorate([
31317 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('templateService')
31318 ], Beans.prototype, "templateService", void 0);
31319 __decorate([
31320 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
31321 ], Beans.prototype, "valueService", void 0);
31322 __decorate([
31323 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eventService')
31324 ], Beans.prototype, "eventService", void 0);
31325 __decorate([
31326 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
31327 ], Beans.prototype, "columnModel", void 0);
31328 __decorate([
31329 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
31330 ], Beans.prototype, "headerNavigationService", void 0);
31331 __decorate([
31332 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('navigationService')
31333 ], Beans.prototype, "navigationService", void 0);
31334 __decorate([
31335 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnAnimationService')
31336 ], Beans.prototype, "columnAnimationService", void 0);
31337 __decorate([
31338 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeService')
31339 ], Beans.prototype, "rangeService", void 0);
31340 __decorate([
31341 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
31342 ], Beans.prototype, "focusService", void 0);
31343 __decorate([
31344 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('contextMenuFactory')
31345 ], Beans.prototype, "contextMenuFactory", void 0);
31346 __decorate([
31347 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
31348 ], Beans.prototype, "popupService", void 0);
31349 __decorate([
31350 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueFormatterService')
31351 ], Beans.prototype, "valueFormatterService", void 0);
31352 __decorate([
31353 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('stylingService')
31354 ], Beans.prototype, "stylingService", void 0);
31355 __decorate([
31356 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnHoverService')
31357 ], Beans.prototype, "columnHoverService", void 0);
31358 __decorate([
31359 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
31360 ], Beans.prototype, "userComponentFactory", void 0);
31361 __decorate([
31362 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentRegistry')
31363 ], Beans.prototype, "userComponentRegistry", void 0);
31364 __decorate([
31365 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('animationFrameService')
31366 ], Beans.prototype, "animationFrameService", void 0);
31367 __decorate([
31368 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragService')
31369 ], Beans.prototype, "dragService", void 0);
31370 __decorate([
31371 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
31372 ], Beans.prototype, "dragAndDropService", void 0);
31373 __decorate([
31374 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
31375 ], Beans.prototype, "sortController", void 0);
31376 __decorate([
31377 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
31378 ], Beans.prototype, "filterManager", void 0);
31379 __decorate([
31380 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowContainerHeightService')
31381 ], Beans.prototype, "rowContainerHeightService", void 0);
31382 __decorate([
31383 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('frameworkOverrides')
31384 ], Beans.prototype, "frameworkOverrides", void 0);
31385 __decorate([
31386 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('cellPositionUtils')
31387 ], Beans.prototype, "cellPositionUtils", void 0);
31388 __decorate([
31389 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
31390 ], Beans.prototype, "rowPositionUtils", void 0);
31391 __decorate([
31392 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionService')
31393 ], Beans.prototype, "selectionService", void 0);
31394 __decorate([
31395 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('selectionHandleFactory')
31396 ], Beans.prototype, "selectionHandleFactory", void 0);
31397 __decorate([
31398 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowCssClassCalculator')
31399 ], Beans.prototype, "rowCssClassCalculator", void 0);
31400 __decorate([
31401 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
31402 ], Beans.prototype, "rowModel", void 0);
31403 __decorate([
31404 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
31405 ], Beans.prototype, "ctrlsService", void 0);
31406 __decorate([
31407 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsFactory')
31408 ], Beans.prototype, "ctrlsFactory", void 0);
31409 __decorate([
31410 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('agStackComponentsRegistry')
31411 ], Beans.prototype, "agStackComponentsRegistry", void 0);
31412 __decorate([
31413 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
31414 ], Beans.prototype, "valueCache", void 0);
31415 __decorate([
31416 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeEventThrottle')
31417 ], Beans.prototype, "rowNodeEventThrottle", void 0);
31418 __decorate([
31419 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('localeService')
31420 ], Beans.prototype, "localeService", void 0);
31421 __decorate([
31422 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
31423 ], Beans.prototype, "postConstruct", null);
31424 Beans = __decorate([
31425 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('beans')
31426 ], Beans);
31427 return Beans;
31428}());
31429
31430
31431
31432/***/ }),
31433/* 133 */
31434/***/ (function(module, __webpack_exports__, __webpack_require__) {
31435
31436"use strict";
31437__webpack_require__.r(__webpack_exports__);
31438/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellKeyboardListenerFeature", function() { return CellKeyboardListenerFeature; });
31439/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
31440/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48);
31441/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47);
31442/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
31443/**
31444 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31445 * @version v29.2.0
31446 * @link https://www.ag-grid.com/
31447 * @license MIT
31448 */
31449var __extends = (undefined && undefined.__extends) || (function () {
31450 var extendStatics = function (d, b) {
31451 extendStatics = Object.setPrototypeOf ||
31452 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31453 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31454 return extendStatics(d, b);
31455 };
31456 return function (d, b) {
31457 extendStatics(d, b);
31458 function __() { this.constructor = d; }
31459 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31460 };
31461})();
31462
31463
31464
31465
31466var CellKeyboardListenerFeature = /** @class */ (function (_super) {
31467 __extends(CellKeyboardListenerFeature, _super);
31468 function CellKeyboardListenerFeature(ctrl, beans, column, rowNode, rowCtrl) {
31469 var _this = _super.call(this) || this;
31470 _this.cellCtrl = ctrl;
31471 _this.beans = beans;
31472 _this.rowNode = rowNode;
31473 _this.rowCtrl = rowCtrl;
31474 return _this;
31475 }
31476 CellKeyboardListenerFeature.prototype.setComp = function (eGui) {
31477 this.eGui = eGui;
31478 };
31479 CellKeyboardListenerFeature.prototype.onKeyDown = function (event) {
31480 var key = event.key;
31481 switch (key) {
31482 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].ENTER:
31483 this.onEnterKeyDown(event);
31484 break;
31485 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].F2:
31486 this.onF2KeyDown(event);
31487 break;
31488 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].ESCAPE:
31489 this.onEscapeKeyDown(event);
31490 break;
31491 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].TAB:
31492 this.onTabKeyDown(event);
31493 break;
31494 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].BACKSPACE:
31495 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].DELETE:
31496 this.onBackspaceOrDeleteKeyPressed(key, event);
31497 break;
31498 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].DOWN:
31499 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].UP:
31500 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].RIGHT:
31501 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].LEFT:
31502 this.onNavigationKeyPressed(event, key);
31503 break;
31504 }
31505 };
31506 CellKeyboardListenerFeature.prototype.onNavigationKeyPressed = function (event, key) {
31507 if (this.cellCtrl.isEditing()) {
31508 return;
31509 }
31510 if (event.shiftKey && this.cellCtrl.isRangeSelectionEnabled()) {
31511 this.onShiftRangeSelect(event);
31512 }
31513 else {
31514 this.beans.navigationService.navigateToNextCell(event, key, this.cellCtrl.getCellPosition(), true);
31515 }
31516 // if we don't prevent default, the grid will scroll with the navigation keys
31517 event.preventDefault();
31518 };
31519 CellKeyboardListenerFeature.prototype.onShiftRangeSelect = function (event) {
31520 if (!this.beans.rangeService) {
31521 return;
31522 }
31523 var endCell = this.beans.rangeService.extendLatestRangeInDirection(event);
31524 if (endCell) {
31525 this.beans.navigationService.ensureCellVisible(endCell);
31526 }
31527 };
31528 CellKeyboardListenerFeature.prototype.onTabKeyDown = function (event) {
31529 this.beans.navigationService.onTabKeyDown(this.cellCtrl, event);
31530 };
31531 CellKeyboardListenerFeature.prototype.onBackspaceOrDeleteKeyPressed = function (key, event) {
31532 var _a = this, cellCtrl = _a.cellCtrl, beans = _a.beans, rowNode = _a.rowNode;
31533 var gridOptionsService = beans.gridOptionsService, rangeService = beans.rangeService, eventService = beans.eventService;
31534 if (cellCtrl.isEditing()) {
31535 return;
31536 }
31537 eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_KEY_SHORTCUT_CHANGED_CELL_START });
31538 if (Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_2__["isDeleteKey"])(key, gridOptionsService.is('enableCellEditingOnBackspace'))) {
31539 if (rangeService && gridOptionsService.isEnableRangeSelection()) {
31540 rangeService.clearCellRangeCellValues();
31541 }
31542 else if (cellCtrl.isCellEditable()) {
31543 rowNode.setDataValue(cellCtrl.getColumn(), null, 'cellClear');
31544 }
31545 }
31546 else {
31547 cellCtrl.startRowOrCellEdit(key, undefined, event);
31548 }
31549 eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_KEY_SHORTCUT_CHANGED_CELL_END });
31550 };
31551 CellKeyboardListenerFeature.prototype.onEnterKeyDown = function (e) {
31552 if (this.cellCtrl.isEditing() || this.rowCtrl.isEditing()) {
31553 this.cellCtrl.stopEditingAndFocus();
31554 }
31555 else {
31556 if (this.beans.gridOptionsService.is('enterMovesDown')) {
31557 this.beans.navigationService.navigateToNextCell(null, _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].DOWN, this.cellCtrl.getCellPosition(), false);
31558 }
31559 else {
31560 this.cellCtrl.startRowOrCellEdit(_constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].ENTER, undefined, e);
31561 if (this.cellCtrl.isEditing()) {
31562 // if we started editing, then we need to prevent default, otherwise the Enter action can get
31563 // applied to the cell editor. this happened, for example, with largeTextCellEditor where not
31564 // preventing default results in a 'new line' character getting inserted in the text area
31565 // when the editing was started
31566 e.preventDefault();
31567 }
31568 }
31569 }
31570 };
31571 CellKeyboardListenerFeature.prototype.onF2KeyDown = function (event) {
31572 if (!this.cellCtrl.isEditing()) {
31573 this.cellCtrl.startRowOrCellEdit(_constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].F2, undefined, event);
31574 }
31575 };
31576 CellKeyboardListenerFeature.prototype.onEscapeKeyDown = function (event) {
31577 if (this.cellCtrl.isEditing()) {
31578 this.cellCtrl.stopRowOrCellEdit(true);
31579 this.cellCtrl.focusCell(true);
31580 }
31581 };
31582 CellKeyboardListenerFeature.prototype.onKeyPress = function (event) {
31583 // check this, in case focus is on a (for example) a text field inside the cell,
31584 // in which cse we should not be listening for these key pressed
31585 var eventTarget = event.target;
31586 var eventOnChildComponent = eventTarget !== this.eGui;
31587 if (eventOnChildComponent || this.cellCtrl.isEditing()) {
31588 return;
31589 }
31590 var pressedChar = String.fromCharCode(event.charCode);
31591 if (pressedChar === ' ') {
31592 this.onSpaceKeyPressed(event);
31593 }
31594 else if (Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_2__["isEventFromPrintableCharacter"])(event)) {
31595 this.cellCtrl.startRowOrCellEdit(null, pressedChar, event);
31596 // if we don't prevent default, then the keypress also gets applied to the text field
31597 // (at least when doing the default editor), but we need to allow the editor to decide
31598 // what it wants to do. we only do this IF editing was started - otherwise it messes
31599 // up when the use is not doing editing, but using rendering with text fields in cellRenderer
31600 // (as it would block the the user from typing into text fields).
31601 event.preventDefault();
31602 }
31603 };
31604 CellKeyboardListenerFeature.prototype.onSpaceKeyPressed = function (event) {
31605 var gridOptionsService = this.beans.gridOptionsService;
31606 if (!this.cellCtrl.isEditing() && gridOptionsService.isRowSelection()) {
31607 var currentSelection = this.rowNode.isSelected();
31608 var newSelection = !currentSelection;
31609 if (newSelection || !gridOptionsService.is('suppressRowDeselection')) {
31610 var groupSelectsFiltered = this.beans.gridOptionsService.is('groupSelectsFiltered');
31611 var updatedCount = this.rowNode.setSelectedParams({
31612 newValue: newSelection,
31613 rangeSelect: event.shiftKey,
31614 groupSelectsFiltered: groupSelectsFiltered,
31615 event: event,
31616 source: 'spacePressed'
31617 });
31618 if (currentSelection === undefined && updatedCount === 0) {
31619 this.rowNode.setSelectedParams({
31620 newValue: false,
31621 rangeSelect: event.shiftKey,
31622 groupSelectsFiltered: groupSelectsFiltered,
31623 event: event,
31624 source: 'spacePressed'
31625 });
31626 }
31627 }
31628 }
31629 // prevent default as space key, by default, moves browser scroll down
31630 event.preventDefault();
31631 };
31632 CellKeyboardListenerFeature.prototype.destroy = function () {
31633 _super.prototype.destroy.call(this);
31634 };
31635 return CellKeyboardListenerFeature;
31636}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
31637
31638
31639
31640/***/ }),
31641/* 134 */
31642/***/ (function(module, __webpack_exports__, __webpack_require__) {
31643
31644"use strict";
31645__webpack_require__.r(__webpack_exports__);
31646/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DndSourceComp", function() { return DndSourceComp; });
31647/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
31648/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
31649/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46);
31650/**
31651 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31652 * @version v29.2.0
31653 * @link https://www.ag-grid.com/
31654 * @license MIT
31655 */
31656var __extends = (undefined && undefined.__extends) || (function () {
31657 var extendStatics = function (d, b) {
31658 extendStatics = Object.setPrototypeOf ||
31659 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31660 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31661 return extendStatics(d, b);
31662 };
31663 return function (d, b) {
31664 extendStatics(d, b);
31665 function __() { this.constructor = d; }
31666 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31667 };
31668})();
31669var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31670 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31671 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31672 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;
31673 return c > 3 && r && Object.defineProperty(target, key, r), r;
31674};
31675
31676
31677
31678var DndSourceComp = /** @class */ (function (_super) {
31679 __extends(DndSourceComp, _super);
31680 function DndSourceComp(rowNode, column, beans, eCell) {
31681 var _this = _super.call(this, "<div class=\"ag-drag-handle ag-row-drag\" draggable=\"true\"></div>") || this;
31682 _this.rowNode = rowNode;
31683 _this.column = column;
31684 _this.beans = beans;
31685 _this.eCell = eCell;
31686 return _this;
31687 }
31688 DndSourceComp.prototype.postConstruct = function () {
31689 var eGui = this.getGui();
31690 eGui.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_2__["createIconNoSpan"])('rowDrag', this.beans.gridOptionsService, null));
31691 // we need to stop the event propagation here to avoid starting a range selection while dragging
31692 this.addGuiEventListener('mousedown', function (e) {
31693 e.stopPropagation();
31694 });
31695 this.addDragSource();
31696 this.checkVisibility();
31697 };
31698 DndSourceComp.prototype.addDragSource = function () {
31699 this.addGuiEventListener('dragstart', this.onDragStart.bind(this));
31700 };
31701 DndSourceComp.prototype.onDragStart = function (dragEvent) {
31702 var _this = this;
31703 var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;
31704 dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);
31705 // default behaviour is to convert data to json and set into drag component
31706 var defaultOnRowDrag = function () {
31707 try {
31708 var jsonData = JSON.stringify(_this.rowNode.data);
31709 dragEvent.dataTransfer.setData('application/json', jsonData);
31710 dragEvent.dataTransfer.setData('text/plain', jsonData);
31711 }
31712 catch (e) {
31713 // if we cannot convert the data to json, then we do not set the type
31714 }
31715 };
31716 if (providedOnRowDrag) {
31717 var params = {
31718 rowNode: this.rowNode, dragEvent: dragEvent,
31719 api: this.gridOptionsService.api,
31720 columnApi: this.gridOptionsService.columnApi,
31721 context: this.gridOptionsService.context
31722 };
31723 providedOnRowDrag(params);
31724 }
31725 else {
31726 defaultOnRowDrag();
31727 }
31728 };
31729 DndSourceComp.prototype.checkVisibility = function () {
31730 var visible = this.column.isDndSource(this.rowNode);
31731 this.setDisplayed(visible);
31732 };
31733 __decorate([
31734 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31735 ], DndSourceComp.prototype, "postConstruct", null);
31736 return DndSourceComp;
31737}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
31738
31739
31740
31741/***/ }),
31742/* 135 */
31743/***/ (function(module, __webpack_exports__, __webpack_require__) {
31744
31745"use strict";
31746__webpack_require__.r(__webpack_exports__);
31747/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ViewportSizeFeature", function() { return ViewportSizeFeature; });
31748/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
31749/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
31750/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
31751/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
31752/**
31753 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31754 * @version v29.2.0
31755 * @link https://www.ag-grid.com/
31756 * @license MIT
31757 */
31758var __extends = (undefined && undefined.__extends) || (function () {
31759 var extendStatics = function (d, b) {
31760 extendStatics = Object.setPrototypeOf ||
31761 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31762 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31763 return extendStatics(d, b);
31764 };
31765 return function (d, b) {
31766 extendStatics(d, b);
31767 function __() { this.constructor = d; }
31768 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31769 };
31770})();
31771var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31772 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31773 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31774 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;
31775 return c > 3 && r && Object.defineProperty(target, key, r), r;
31776};
31777
31778
31779
31780
31781// listens to changes in the center viewport size, for column and row virtualisation,
31782// and adjusts grid as necessary. there are two viewports, one for horizontal and one for
31783// vertical scrolling.
31784var ViewportSizeFeature = /** @class */ (function (_super) {
31785 __extends(ViewportSizeFeature, _super);
31786 function ViewportSizeFeature(centerContainerCtrl) {
31787 var _this = _super.call(this) || this;
31788 _this.centerContainerCtrl = centerContainerCtrl;
31789 return _this;
31790 }
31791 ViewportSizeFeature.prototype.postConstruct = function () {
31792 var _this = this;
31793 this.ctrlsService.whenReady(function () {
31794 _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();
31795 _this.listenForResize();
31796 });
31797 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));
31798 };
31799 ViewportSizeFeature.prototype.listenForResize = function () {
31800 var _this = this;
31801 var listener = function () { return _this.onCenterViewportResized(); };
31802 // centerContainer gets horizontal resizes
31803 this.centerContainerCtrl.registerViewportResizeListener(listener);
31804 // eBodyViewport gets vertical resizes
31805 this.gridBodyCtrl.registerBodyViewportResizeListener(listener);
31806 };
31807 ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {
31808 this.checkViewportAndScrolls();
31809 };
31810 ViewportSizeFeature.prototype.onCenterViewportResized = function () {
31811 if (this.centerContainerCtrl.isViewportVisible()) {
31812 this.checkViewportAndScrolls();
31813 var newWidth = this.centerContainerCtrl.getCenterWidth();
31814 if (newWidth !== this.centerWidth) {
31815 this.centerWidth = newWidth;
31816 this.columnModel.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });
31817 }
31818 }
31819 else {
31820 this.bodyHeight = 0;
31821 }
31822 };
31823 // gets called every time the viewport size changes. we use this to check visibility of scrollbars
31824 // in the grid panel, and also to check size and position of viewport for row and column virtualisation.
31825 ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {
31826 // results in updating anything that depends on scroll showing
31827 this.updateScrollVisibleService();
31828 // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer
31829 this.checkBodyHeight();
31830 // check for virtual columns for ColumnController
31831 this.onHorizontalViewportChanged();
31832 this.gridBodyCtrl.getScrollFeature().checkScrollLeft();
31833 };
31834 ViewportSizeFeature.prototype.getBodyHeight = function () {
31835 return this.bodyHeight;
31836 };
31837 ViewportSizeFeature.prototype.checkBodyHeight = function () {
31838 var eBodyViewport = this.gridBodyCtrl.getBodyViewportElement();
31839 var bodyHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerHeight"])(eBodyViewport);
31840 if (this.bodyHeight !== bodyHeight) {
31841 this.bodyHeight = bodyHeight;
31842 var event_1 = {
31843 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_BODY_HEIGHT_CHANGED
31844 };
31845 this.eventService.dispatchEvent(event_1);
31846 }
31847 };
31848 ViewportSizeFeature.prototype.updateScrollVisibleService = function () {
31849 // because of column animation (which takes 200ms), we have to do this twice.
31850 // eg if user removes cols anywhere except at the RHS, then the cols on the RHS
31851 // will animate to the left to fill the gap. this animation means just after
31852 // the cols are removed, the remaining cols are still in the original location
31853 // at the start of the animation, so pre animation the H scrollbar is still needed,
31854 // but post animation it is not.
31855 this.updateScrollVisibleServiceImpl();
31856 setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);
31857 };
31858 ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {
31859 var params = {
31860 horizontalScrollShowing: this.isHorizontalScrollShowing(),
31861 verticalScrollShowing: this.gridBodyCtrl.isVerticalScrollShowing()
31862 };
31863 this.scrollVisibleService.setScrollsVisible(params);
31864 // fix - gridComp should just listen to event from above
31865 this.gridBodyCtrl.setVerticalScrollPaddingVisible(params.verticalScrollShowing);
31866 };
31867 ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {
31868 var isAlwaysShowHorizontalScroll = this.gridOptionsService.is('alwaysShowHorizontalScroll');
31869 return isAlwaysShowHorizontalScroll || this.centerContainerCtrl.isViewportHScrollShowing();
31870 };
31871 // this gets called whenever a change in the viewport, so we can inform column controller it has to work
31872 // out the virtual columns again. gets called from following locations:
31873 // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged
31874 ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {
31875 var scrollWidth = this.centerContainerCtrl.getCenterWidth();
31876 var scrollPosition = this.centerContainerCtrl.getViewportScrollLeft();
31877 this.columnModel.setViewportPosition(scrollWidth, scrollPosition);
31878 };
31879 __decorate([
31880 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
31881 ], ViewportSizeFeature.prototype, "ctrlsService", void 0);
31882 __decorate([
31883 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
31884 ], ViewportSizeFeature.prototype, "columnModel", void 0);
31885 __decorate([
31886 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
31887 ], ViewportSizeFeature.prototype, "scrollVisibleService", void 0);
31888 __decorate([
31889 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31890 ], ViewportSizeFeature.prototype, "postConstruct", null);
31891 return ViewportSizeFeature;
31892}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
31893
31894
31895
31896/***/ }),
31897/* 136 */
31898/***/ (function(module, __webpack_exports__, __webpack_require__) {
31899
31900"use strict";
31901__webpack_require__.r(__webpack_exports__);
31902/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetPinnedLeftWidthFeature", function() { return SetPinnedLeftWidthFeature; });
31903/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
31904/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
31905/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
31906/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
31907/**
31908 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31909 * @version v29.2.0
31910 * @link https://www.ag-grid.com/
31911 * @license MIT
31912 */
31913var __extends = (undefined && undefined.__extends) || (function () {
31914 var extendStatics = function (d, b) {
31915 extendStatics = Object.setPrototypeOf ||
31916 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31917 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31918 return extendStatics(d, b);
31919 };
31920 return function (d, b) {
31921 extendStatics(d, b);
31922 function __() { this.constructor = d; }
31923 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31924 };
31925})();
31926var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31927 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31928 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31929 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;
31930 return c > 3 && r && Object.defineProperty(target, key, r), r;
31931};
31932
31933
31934
31935
31936var SetPinnedLeftWidthFeature = /** @class */ (function (_super) {
31937 __extends(SetPinnedLeftWidthFeature, _super);
31938 function SetPinnedLeftWidthFeature(element) {
31939 var _this = _super.call(this) || this;
31940 _this.element = element;
31941 return _this;
31942 }
31943 SetPinnedLeftWidthFeature.prototype.postConstruct = function () {
31944 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));
31945 };
31946 SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {
31947 var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();
31948 var displayed = leftWidth > 0;
31949 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.element, displayed);
31950 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setFixedWidth"])(this.element, leftWidth);
31951 };
31952 SetPinnedLeftWidthFeature.prototype.getWidth = function () {
31953 return this.pinnedWidthService.getPinnedLeftWidth();
31954 };
31955 __decorate([
31956 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedWidthService')
31957 ], SetPinnedLeftWidthFeature.prototype, "pinnedWidthService", void 0);
31958 __decorate([
31959 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
31960 ], SetPinnedLeftWidthFeature.prototype, "postConstruct", null);
31961 return SetPinnedLeftWidthFeature;
31962}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
31963
31964
31965
31966/***/ }),
31967/* 137 */
31968/***/ (function(module, __webpack_exports__, __webpack_require__) {
31969
31970"use strict";
31971__webpack_require__.r(__webpack_exports__);
31972/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetPinnedRightWidthFeature", function() { return SetPinnedRightWidthFeature; });
31973/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
31974/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
31975/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
31976/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
31977/**
31978 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
31979 * @version v29.2.0
31980 * @link https://www.ag-grid.com/
31981 * @license MIT
31982 */
31983var __extends = (undefined && undefined.__extends) || (function () {
31984 var extendStatics = function (d, b) {
31985 extendStatics = Object.setPrototypeOf ||
31986 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
31987 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
31988 return extendStatics(d, b);
31989 };
31990 return function (d, b) {
31991 extendStatics(d, b);
31992 function __() { this.constructor = d; }
31993 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31994 };
31995})();
31996var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31997 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31998 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31999 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;
32000 return c > 3 && r && Object.defineProperty(target, key, r), r;
32001};
32002
32003
32004
32005
32006var SetPinnedRightWidthFeature = /** @class */ (function (_super) {
32007 __extends(SetPinnedRightWidthFeature, _super);
32008 function SetPinnedRightWidthFeature(element) {
32009 var _this = _super.call(this) || this;
32010 _this.element = element;
32011 return _this;
32012 }
32013 SetPinnedRightWidthFeature.prototype.postConstruct = function () {
32014 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));
32015 };
32016 SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {
32017 var rightWidth = this.pinnedWidthService.getPinnedRightWidth();
32018 var displayed = rightWidth > 0;
32019 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(this.element, displayed);
32020 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.element, rightWidth);
32021 };
32022 SetPinnedRightWidthFeature.prototype.getWidth = function () {
32023 return this.pinnedWidthService.getPinnedRightWidth();
32024 };
32025 __decorate([
32026 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedWidthService')
32027 ], SetPinnedRightWidthFeature.prototype, "pinnedWidthService", void 0);
32028 __decorate([
32029 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
32030 ], SetPinnedRightWidthFeature.prototype, "postConstruct", null);
32031 return SetPinnedRightWidthFeature;
32032}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
32033
32034
32035
32036/***/ }),
32037/* 138 */
32038/***/ (function(module, __webpack_exports__, __webpack_require__) {
32039
32040"use strict";
32041__webpack_require__.r(__webpack_exports__);
32042/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetHeightFeature", function() { return SetHeightFeature; });
32043/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
32044/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
32045/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
32046/**
32047 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
32048 * @version v29.2.0
32049 * @link https://www.ag-grid.com/
32050 * @license MIT
32051 */
32052var __extends = (undefined && undefined.__extends) || (function () {
32053 var extendStatics = function (d, b) {
32054 extendStatics = Object.setPrototypeOf ||
32055 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32056 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32057 return extendStatics(d, b);
32058 };
32059 return function (d, b) {
32060 extendStatics(d, b);
32061 function __() { this.constructor = d; }
32062 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32063 };
32064})();
32065var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32066 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32067 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32068 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;
32069 return c > 3 && r && Object.defineProperty(target, key, r), r;
32070};
32071
32072
32073
32074var SetHeightFeature = /** @class */ (function (_super) {
32075 __extends(SetHeightFeature, _super);
32076 function SetHeightFeature(eContainer, eWrapper) {
32077 var _this = _super.call(this) || this;
32078 _this.eContainer = eContainer;
32079 _this.eWrapper = eWrapper;
32080 return _this;
32081 }
32082 SetHeightFeature.prototype.postConstruct = function () {
32083 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));
32084 };
32085 SetHeightFeature.prototype.onHeightChanged = function () {
32086 var height = this.maxDivHeightScaler.getUiContainerHeight();
32087 var heightString = height != null ? height + "px" : "";
32088 this.eContainer.style.height = heightString;
32089 if (this.eWrapper) {
32090 this.eWrapper.style.height = heightString;
32091 }
32092 };
32093 __decorate([
32094 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("rowContainerHeightService")
32095 ], SetHeightFeature.prototype, "maxDivHeightScaler", void 0);
32096 __decorate([
32097 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
32098 ], SetHeightFeature.prototype, "postConstruct", null);
32099 return SetHeightFeature;
32100}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
32101
32102
32103
32104/***/ }),
32105/* 139 */
32106/***/ (function(module, __webpack_exports__, __webpack_require__) {
32107
32108"use strict";
32109__webpack_require__.r(__webpack_exports__);
32110/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragListenerFeature", function() { return DragListenerFeature; });
32111/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
32112/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7);
32113/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
32114/**
32115 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
32116 * @version v29.2.0
32117 * @link https://www.ag-grid.com/
32118 * @license MIT
32119 */
32120var __extends = (undefined && undefined.__extends) || (function () {
32121 var extendStatics = function (d, b) {
32122 extendStatics = Object.setPrototypeOf ||
32123 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32124 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32125 return extendStatics(d, b);
32126 };
32127 return function (d, b) {
32128 extendStatics(d, b);
32129 function __() { this.constructor = d; }
32130 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32131 };
32132})();
32133var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32134 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32135 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32136 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;
32137 return c > 3 && r && Object.defineProperty(target, key, r), r;
32138};
32139
32140
32141
32142var DragListenerFeature = /** @class */ (function (_super) {
32143 __extends(DragListenerFeature, _super);
32144 function DragListenerFeature(eContainer) {
32145 var _this = _super.call(this) || this;
32146 _this.eContainer = eContainer;
32147 return _this;
32148 }
32149 DragListenerFeature.prototype.postConstruct = function () {
32150 var _this = this;
32151 if (!this.gridOptionsService.isEnableRangeSelection() || // no range selection if no property
32152 Object(_utils_generic__WEBPACK_IMPORTED_MODULE_1__["missing"])(this.rangeService) // no range selection if not enterprise version
32153 ) {
32154 return;
32155 }
32156 var params = {
32157 eElement: this.eContainer,
32158 onDragStart: this.rangeService.onDragStart.bind(this.rangeService),
32159 onDragStop: this.rangeService.onDragStop.bind(this.rangeService),
32160 onDragging: this.rangeService.onDragging.bind(this.rangeService)
32161 };
32162 this.dragService.addDragSource(params);
32163 this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });
32164 };
32165 __decorate([
32166 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Optional"])('rangeService')
32167 ], DragListenerFeature.prototype, "rangeService", void 0);
32168 __decorate([
32169 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('dragService')
32170 ], DragListenerFeature.prototype, "dragService", void 0);
32171 __decorate([
32172 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
32173 ], DragListenerFeature.prototype, "postConstruct", null);
32174 return DragListenerFeature;
32175}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
32176
32177
32178
32179/***/ }),
32180/* 140 */
32181/***/ (function(module, __webpack_exports__, __webpack_require__) {
32182
32183"use strict";
32184__webpack_require__.r(__webpack_exports__);
32185/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CenterWidthFeature", function() { return CenterWidthFeature; });
32186/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
32187/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
32188/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
32189/**
32190 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
32191 * @version v29.2.0
32192 * @link https://www.ag-grid.com/
32193 * @license MIT
32194 */
32195var __extends = (undefined && undefined.__extends) || (function () {
32196 var extendStatics = function (d, b) {
32197 extendStatics = Object.setPrototypeOf ||
32198 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32199 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32200 return extendStatics(d, b);
32201 };
32202 return function (d, b) {
32203 extendStatics(d, b);
32204 function __() { this.constructor = d; }
32205 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32206 };
32207})();
32208var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32209 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32210 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32211 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;
32212 return c > 3 && r && Object.defineProperty(target, key, r), r;
32213};
32214
32215
32216
32217var CenterWidthFeature = /** @class */ (function (_super) {
32218 __extends(CenterWidthFeature, _super);
32219 function CenterWidthFeature(callback) {
32220 var _this = _super.call(this) || this;
32221 _this.callback = callback;
32222 return _this;
32223 }
32224 CenterWidthFeature.prototype.postConstruct = function () {
32225 var listener = this.setWidth.bind(this);
32226 this.addManagedPropertyListener('domLayout', listener);
32227 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
32228 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);
32229 this.setWidth();
32230 };
32231 CenterWidthFeature.prototype.setWidth = function () {
32232 var columnModel = this.columnModel;
32233 var printLayout = this.gridOptionsService.isDomLayout('print');
32234 var centerWidth = columnModel.getBodyContainerWidth();
32235 var leftWidth = columnModel.getDisplayedColumnsLeftWidth();
32236 var rightWidth = columnModel.getDisplayedColumnsRightWidth();
32237 var totalWidth = printLayout ? centerWidth + leftWidth + rightWidth : centerWidth;
32238 this.callback(totalWidth);
32239 };
32240 __decorate([
32241 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
32242 ], CenterWidthFeature.prototype, "columnModel", void 0);
32243 __decorate([
32244 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
32245 ], CenterWidthFeature.prototype, "postConstruct", null);
32246 return CenterWidthFeature;
32247}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
32248
32249
32250
32251/***/ }),
32252/* 141 */
32253/***/ (function(module, __webpack_exports__, __webpack_require__) {
32254
32255"use strict";
32256__webpack_require__.r(__webpack_exports__);
32257/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return ScrollVisibleService; });
32258/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
32259/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
32260/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
32261/**
32262 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
32263 * @version v29.2.0
32264 * @link https://www.ag-grid.com/
32265 * @license MIT
32266 */
32267var __extends = (undefined && undefined.__extends) || (function () {
32268 var extendStatics = function (d, b) {
32269 extendStatics = Object.setPrototypeOf ||
32270 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32271 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32272 return extendStatics(d, b);
32273 };
32274 return function (d, b) {
32275 extendStatics(d, b);
32276 function __() { this.constructor = d; }
32277 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32278 };
32279})();
32280var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32281 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32282 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32283 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;
32284 return c > 3 && r && Object.defineProperty(target, key, r), r;
32285};
32286
32287
32288
32289var ScrollVisibleService = /** @class */ (function (_super) {
32290 __extends(ScrollVisibleService, _super);
32291 function ScrollVisibleService() {
32292 return _super !== null && _super.apply(this, arguments) || this;
32293 }
32294 ScrollVisibleService.prototype.postConstruct = function () {
32295 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
32296 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));
32297 };
32298 ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {
32299 this.update();
32300 };
32301 ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {
32302 this.update();
32303 };
32304 ScrollVisibleService.prototype.update = function () {
32305 // because of column animation (which takes 200ms), we have to do this twice.
32306 // eg if user removes cols anywhere except at the RHS, then the cols on the RHS
32307 // will animate to the left to fill the gap. this animation means just after
32308 // the cols are removed, the remaining cols are still in the original location
32309 // at the start of the animation, so pre animation the H scrollbar is still needed,
32310 // but post animation it is not.
32311 this.updateImpl();
32312 setTimeout(this.updateImpl.bind(this), 500);
32313 };
32314 ScrollVisibleService.prototype.updateImpl = function () {
32315 var centerRowCtrl = this.ctrlsService.getCenterRowContainerCtrl();
32316 if (!centerRowCtrl) {
32317 return;
32318 }
32319 var params = {
32320 horizontalScrollShowing: centerRowCtrl.isHorizontalScrollShowing(),
32321 verticalScrollShowing: this.isVerticalScrollShowing()
32322 };
32323 this.setScrollsVisible(params);
32324 };
32325 ScrollVisibleService.prototype.setScrollsVisible = function (params) {
32326 var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||
32327 this.verticalScrollShowing !== params.verticalScrollShowing;
32328 if (atLeastOneDifferent) {
32329 this.horizontalScrollShowing = params.horizontalScrollShowing;
32330 this.verticalScrollShowing = params.verticalScrollShowing;
32331 var event_1 = {
32332 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED
32333 };
32334 this.eventService.dispatchEvent(event_1);
32335 }
32336 };
32337 // used by pagination service - to know page height
32338 ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {
32339 return this.horizontalScrollShowing;
32340 };
32341 // used by header container
32342 ScrollVisibleService.prototype.isVerticalScrollShowing = function () {
32343 return this.verticalScrollShowing;
32344 };
32345 __decorate([
32346 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
32347 ], ScrollVisibleService.prototype, "ctrlsService", void 0);
32348 __decorate([
32349 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
32350 ], ScrollVisibleService.prototype, "postConstruct", null);
32351 ScrollVisibleService = __decorate([
32352 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('scrollVisibleService')
32353 ], ScrollVisibleService);
32354 return ScrollVisibleService;
32355}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
32356
32357
32358
32359/***/ }),
32360/* 142 */
32361/***/ (function(module, __webpack_exports__, __webpack_require__) {
32362
32363"use strict";
32364__webpack_require__.r(__webpack_exports__);
32365/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return MouseEventService; });
32366/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
32367/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39);
32368/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
32369/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18);
32370/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
32371/* harmony import */ var _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(125);
32372/**
32373 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
32374 * @version v29.2.0
32375 * @link https://www.ag-grid.com/
32376 * @license MIT
32377 */
32378var __extends = (undefined && undefined.__extends) || (function () {
32379 var extendStatics = function (d, b) {
32380 extendStatics = Object.setPrototypeOf ||
32381 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32382 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32383 return extendStatics(d, b);
32384 };
32385 return function (d, b) {
32386 extendStatics(d, b);
32387 function __() { this.constructor = d; }
32388 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32389 };
32390})();
32391var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32392 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32393 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32394 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;
32395 return c > 3 && r && Object.defineProperty(target, key, r), r;
32396};
32397
32398
32399
32400
32401
32402
32403
32404var MouseEventService = /** @class */ (function (_super) {
32405 __extends(MouseEventService, _super);
32406 function MouseEventService() {
32407 var _this = _super !== null && _super.apply(this, arguments) || this;
32408 _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();
32409 return _this;
32410 }
32411 MouseEventService_1 = MouseEventService;
32412 // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,
32413 // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic
32414 // for where this is used.
32415 MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {
32416 eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;
32417 };
32418 MouseEventService.prototype.getRenderedCellForEvent = function (event) {
32419 return Object(_utils_event__WEBPACK_IMPORTED_MODULE_3__["getCtrlForEvent"])(this.gridOptionsService, event, _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_5__["CellCtrl"].DOM_DATA_KEY_CELL_CTRL);
32420 };
32421 // walks the path of the event, and returns true if this grid is the first one that it finds. if doing
32422 // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste
32423 // getting executed on many grids at the same time.
32424 MouseEventService.prototype.isEventFromThisGrid = function (event) {
32425 var res = this.isElementInThisGrid(event.target);
32426 return res;
32427 };
32428 MouseEventService.prototype.isElementInThisGrid = function (element) {
32429 var pointer = element;
32430 while (pointer) {
32431 var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];
32432 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(instanceId)) {
32433 var eventFromThisGrid = instanceId === this.gridInstanceId;
32434 return eventFromThisGrid;
32435 }
32436 pointer = pointer.parentElement;
32437 }
32438 return false;
32439 };
32440 MouseEventService.prototype.getCellPositionForEvent = function (event) {
32441 var cellComp = this.getRenderedCellForEvent(event);
32442 return cellComp ? cellComp.getCellPosition() : null;
32443 };
32444 MouseEventService.prototype.getNormalisedPosition = function (event) {
32445 var gridPanelHasScrolls = this.gridOptionsService.isDomLayout('normal');
32446 var e = event;
32447 var x;
32448 var y;
32449 if (e.clientX != null || e.clientY != null) {
32450 x = e.clientX;
32451 y = e.clientY;
32452 }
32453 else {
32454 x = e.x;
32455 y = e.y;
32456 }
32457 if (gridPanelHasScrolls) {
32458 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
32459 var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();
32460 var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();
32461 x += hRange.left;
32462 y += vRange.top;
32463 }
32464 return { x: x, y: y };
32465 };
32466 var MouseEventService_1;
32467 MouseEventService.gridInstanceSequence = new _utils__WEBPACK_IMPORTED_MODULE_1__["NumberSequence"]();
32468 MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';
32469 __decorate([
32470 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
32471 ], MouseEventService.prototype, "ctrlsService", void 0);
32472 MouseEventService = MouseEventService_1 = __decorate([
32473 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('mouseEventService')
32474 ], MouseEventService);
32475 return MouseEventService;
32476}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
32477
32478
32479
32480/***/ }),
32481/* 143 */
32482/***/ (function(module, __webpack_exports__, __webpack_require__) {
32483
32484"use strict";
32485__webpack_require__.r(__webpack_exports__);
32486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NavigationService", function() { return NavigationService; });
32487/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
32488/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
32489/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
32490/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
32491/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48);
32492/* harmony import */ var _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(125);
32493/* harmony import */ var _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(124);
32494/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
32495/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(26);
32496/**
32497 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
32498 * @version v29.2.0
32499 * @link https://www.ag-grid.com/
32500 * @license MIT
32501 */
32502var __extends = (undefined && undefined.__extends) || (function () {
32503 var extendStatics = function (d, b) {
32504 extendStatics = Object.setPrototypeOf ||
32505 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32506 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
32507 return extendStatics(d, b);
32508 };
32509 return function (d, b) {
32510 extendStatics(d, b);
32511 function __() { this.constructor = d; }
32512 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
32513 };
32514})();
32515var __assign = (undefined && undefined.__assign) || function () {
32516 __assign = Object.assign || function(t) {
32517 for (var s, i = 1, n = arguments.length; i < n; i++) {
32518 s = arguments[i];
32519 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
32520 t[p] = s[p];
32521 }
32522 return t;
32523 };
32524 return __assign.apply(this, arguments);
32525};
32526var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
32527 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
32528 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
32529 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;
32530 return c > 3 && r && Object.defineProperty(target, key, r), r;
32531};
32532
32533
32534
32535
32536
32537
32538
32539
32540
32541var NavigationService = /** @class */ (function (_super) {
32542 __extends(NavigationService, _super);
32543 function NavigationService() {
32544 var _this = _super.call(this) || this;
32545 _this.onPageDown = Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["throttle"])(_this.onPageDown, 100);
32546 _this.onPageUp = Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["throttle"])(_this.onPageUp, 100);
32547 return _this;
32548 }
32549 NavigationService.prototype.postConstruct = function () {
32550 var _this = this;
32551 this.ctrlsService.whenReady(function (p) {
32552 _this.gridBodyCon = p.gridBodyCtrl;
32553 });
32554 };
32555 NavigationService.prototype.handlePageScrollingKey = function (event) {
32556 var key = event.key;
32557 var alt = event.altKey;
32558 var ctrl = event.ctrlKey || event.metaKey;
32559 var rangeServiceShouldHandleShift = !!this.rangeService && event.shiftKey;
32560 // home and end can be processed without knowing the currently selected cell, this can occur for full width rows.
32561 var currentCell = this.mouseEventService.getCellPositionForEvent(event);
32562 var processed = false;
32563 switch (key) {
32564 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_HOME:
32565 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_END:
32566 // handle home and end when ctrl & alt are NOT pressed
32567 if (!ctrl && !alt) {
32568 this.onHomeOrEndKey(key);
32569 processed = true;
32570 }
32571 break;
32572 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT:
32573 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].RIGHT:
32574 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP:
32575 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN:
32576 if (!currentCell) {
32577 return false;
32578 }
32579 // handle when ctrl is pressed only, if shift is pressed
32580 // it will be handled by the rangeService
32581 if (ctrl && !alt && !rangeServiceShouldHandleShift) {
32582 this.onCtrlUpDownLeftRight(key, currentCell);
32583 processed = true;
32584 }
32585 break;
32586 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_DOWN:
32587 if (!currentCell) {
32588 return false;
32589 }
32590 // handle page up and page down when ctrl & alt are NOT pressed
32591 if (!ctrl && !alt) {
32592 this.onPageDown(currentCell);
32593 processed = true;
32594 }
32595 break;
32596 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_UP:
32597 if (!currentCell) {
32598 return false;
32599 }
32600 // handle page up and page down when ctrl & alt are NOT pressed
32601 if (!ctrl && !alt) {
32602 this.onPageUp(currentCell);
32603 processed = true;
32604 }
32605 break;
32606 }
32607 if (processed) {
32608 event.preventDefault();
32609 }
32610 return processed;
32611 };
32612 NavigationService.prototype.navigateTo = function (navigateParams) {
32613 var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;
32614 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(scrollColumn) && !scrollColumn.isPinned()) {
32615 this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);
32616 }
32617 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(scrollIndex)) {
32618 this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);
32619 }
32620 // setFocusedCell relies on the browser default focus behavior to scroll the focused cell into view,
32621 // however, this behavior will cause the cell border to be cut off, or if we have sticky rows, the
32622 // cell will be completely hidden, so we call ensureIndexVisible without a position to guarantee
32623 // minimal scroll to get the row into view.
32624 if (!navigateParams.isAsync) {
32625 this.gridBodyCon.getScrollFeature().ensureIndexVisible(focusIndex);
32626 }
32627 // if we don't do this, the range will be left on the last cell, which will leave the last focused cell
32628 // highlighted.
32629 this.focusService.setFocusedCell({ rowIndex: focusIndex, column: focusColumn, rowPinned: null, forceBrowserFocus: true });
32630 if (this.rangeService) {
32631 var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };
32632 this.rangeService.setRangeToCell(cellPosition);
32633 }
32634 };
32635 NavigationService.prototype.onPageDown = function (gridCell) {
32636 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
32637 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
32638 var pixelsInOnePage = this.getViewportHeight();
32639 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
32640 var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;
32641 var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);
32642 if (this.columnModel.isAutoRowHeightActive()) {
32643 this.navigateToNextPageWithAutoHeight(gridCell, currentPageBottomRow);
32644 }
32645 else {
32646 this.navigateToNextPage(gridCell, currentPageBottomRow);
32647 }
32648 };
32649 NavigationService.prototype.onPageUp = function (gridCell) {
32650 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
32651 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
32652 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
32653 var currentPageTopPixel = scrollPosition.top;
32654 var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);
32655 if (this.columnModel.isAutoRowHeightActive()) {
32656 this.navigateToNextPageWithAutoHeight(gridCell, currentPageTopRow, true);
32657 }
32658 else {
32659 this.navigateToNextPage(gridCell, currentPageTopRow, true);
32660 }
32661 };
32662 NavigationService.prototype.navigateToNextPage = function (gridCell, scrollIndex, up) {
32663 if (up === void 0) { up = false; }
32664 var pixelsInOnePage = this.getViewportHeight();
32665 var firstRow = this.paginationProxy.getPageFirstRow();
32666 var lastRow = this.paginationProxy.getPageLastRow();
32667 var pagingPixelOffset = this.paginationProxy.getPixelOffset();
32668 var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);
32669 var rowPixelDiff = up
32670 ? ((currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowHeight) - pixelsInOnePage - pagingPixelOffset)
32671 : (pixelsInOnePage - pagingPixelOffset);
32672 var nextCellPixel = (currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowTop) + rowPixelDiff;
32673 var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);
32674 if (focusIndex === gridCell.rowIndex) {
32675 var diff = up ? -1 : 1;
32676 scrollIndex = focusIndex = gridCell.rowIndex + diff;
32677 }
32678 var scrollType;
32679 if (up) {
32680 scrollType = 'bottom';
32681 if (focusIndex < firstRow) {
32682 focusIndex = firstRow;
32683 }
32684 if (scrollIndex < firstRow) {
32685 scrollIndex = firstRow;
32686 }
32687 }
32688 else {
32689 scrollType = 'top';
32690 if (focusIndex > lastRow) {
32691 focusIndex = lastRow;
32692 }
32693 if (scrollIndex > lastRow) {
32694 scrollIndex = lastRow;
32695 }
32696 }
32697 if (this.isRowTallerThanView(focusIndex)) {
32698 scrollIndex = focusIndex;
32699 scrollType = 'top';
32700 }
32701 this.navigateTo({
32702 scrollIndex: scrollIndex,
32703 scrollType: scrollType,
32704 scrollColumn: null,
32705 focusIndex: focusIndex,
32706 focusColumn: gridCell.column
32707 });
32708 };
32709 NavigationService.prototype.navigateToNextPageWithAutoHeight = function (gridCell, scrollIndex, up) {
32710 var _this = this;
32711 if (up === void 0) { up = false; }
32712 // because autoHeight will calculate the height of rows after scroll
32713 // first we scroll towards the required point, then we add a small
32714 // delay to allow the height to be recalculated, check which index
32715 // should be focused and then finally navigate to that index.
32716 // TODO: we should probably have an event fired once to scrollbar has
32717 // settled and all rowHeights have been calculated instead of relying
32718 // on a setTimeout of 50ms.
32719 this.navigateTo({
32720 scrollIndex: scrollIndex,
32721 scrollType: up ? 'bottom' : 'top',
32722 scrollColumn: null,
32723 focusIndex: scrollIndex,
32724 focusColumn: gridCell.column
32725 });
32726 setTimeout(function () {
32727 var focusIndex = _this.getNextFocusIndexForAutoHeight(gridCell, up);
32728 _this.navigateTo({
32729 scrollIndex: scrollIndex,
32730 scrollType: up ? 'bottom' : 'top',
32731 scrollColumn: null,
32732 focusIndex: focusIndex,
32733 focusColumn: gridCell.column,
32734 isAsync: true
32735 });
32736 }, 50);
32737 };
32738 NavigationService.prototype.getNextFocusIndexForAutoHeight = function (gridCell, up) {
32739 var _a;
32740 if (up === void 0) { up = false; }
32741 var step = up ? -1 : 1;
32742 var pixelsInOnePage = this.getViewportHeight();
32743 var lastRowIndex = this.paginationProxy.getPageLastRow();
32744 var pixelSum = 0;
32745 var currentIndex = gridCell.rowIndex;
32746 while (currentIndex >= 0 && currentIndex <= lastRowIndex) {
32747 var currentCell = this.paginationProxy.getRow(currentIndex);
32748 if (currentCell) {
32749 var currentCellHeight = (_a = currentCell.rowHeight) !== null && _a !== void 0 ? _a : 0;
32750 if (pixelSum + currentCellHeight > pixelsInOnePage) {
32751 break;
32752 }
32753 pixelSum += currentCellHeight;
32754 }
32755 currentIndex += step;
32756 }
32757 return Math.max(0, Math.min(currentIndex, lastRowIndex));
32758 };
32759 NavigationService.prototype.getViewportHeight = function () {
32760 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
32761 var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();
32762 var scrollbarWidth = this.gridOptionsService.getScrollbarWidth();
32763 var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;
32764 if (this.ctrlsService.getCenterRowContainerCtrl().isHorizontalScrollShowing()) {
32765 pixelsInOnePage -= scrollbarWidth;
32766 }
32767 return pixelsInOnePage;
32768 };
32769 NavigationService.prototype.isRowTallerThanView = function (rowIndex) {
32770 var rowNode = this.paginationProxy.getRow(rowIndex);
32771 if (!rowNode) {
32772 return false;
32773 }
32774 var rowHeight = rowNode.rowHeight;
32775 if (typeof rowHeight !== 'number') {
32776 return false;
32777 }
32778 return rowHeight > this.getViewportHeight();
32779 };
32780 NavigationService.prototype.onCtrlUpDownLeftRight = function (key, gridCell) {
32781 var cellToFocus = this.cellNavigationService.getNextCellToFocus(key, gridCell, true);
32782 var rowIndex = cellToFocus.rowIndex, column = cellToFocus.column;
32783 this.navigateTo({
32784 scrollIndex: rowIndex,
32785 scrollType: null,
32786 scrollColumn: column,
32787 focusIndex: rowIndex,
32788 focusColumn: column
32789 });
32790 };
32791 // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring
32792 // same cell into view (which means either scroll all the way up, or all the way down).
32793 NavigationService.prototype.onHomeOrEndKey = function (key) {
32794 var homeKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].PAGE_HOME;
32795 var allColumns = this.columnModel.getAllDisplayedColumns();
32796 var columnToSelect = homeKey ? allColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(allColumns);
32797 var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();
32798 this.navigateTo({
32799 scrollIndex: scrollIndex,
32800 scrollType: null,
32801 scrollColumn: columnToSelect,
32802 focusIndex: scrollIndex,
32803 focusColumn: columnToSelect
32804 });
32805 };
32806 // result of keyboard event
32807 NavigationService.prototype.onTabKeyDown = function (previous, keyboardEvent) {
32808 var backwards = keyboardEvent.shiftKey;
32809 var movedToNextCell = this.tabToNextCellCommon(previous, backwards, keyboardEvent);
32810 if (movedToNextCell) {
32811 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
32812 // to the normal tabbing so user can exit the grid.
32813 keyboardEvent.preventDefault();
32814 return;
32815 }
32816 // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going
32817 // backwards)
32818 if (backwards) {
32819 var _a = previous.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;
32820 var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();
32821 if (firstRow) {
32822 keyboardEvent.preventDefault();
32823 this.focusService.focusLastHeader(keyboardEvent);
32824 }
32825 }
32826 else {
32827 // if the case it's a popup editor, the focus is on the editor and not the previous cell.
32828 // in order for the tab navigation to work, we need to focus the browser back onto the
32829 // previous cell.
32830 if (previous instanceof _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_5__["CellCtrl"]) {
32831 previous.focusCell(true);
32832 }
32833 if (this.focusService.focusNextGridCoreContainer(backwards)) {
32834 keyboardEvent.preventDefault();
32835 }
32836 }
32837 };
32838 // comes from API
32839 NavigationService.prototype.tabToNextCell = function (backwards, event) {
32840 var focusedCell = this.focusService.getFocusedCell();
32841 // if no focus, then cannot navigate
32842 if (!focusedCell) {
32843 return false;
32844 }
32845 var cellOrRow = this.getCellByPosition(focusedCell);
32846 // if cell is not rendered, means user has scrolled away from the cell
32847 // or that the focusedCell is a Full Width Row
32848 if (!cellOrRow) {
32849 cellOrRow = this.rowRenderer.getRowByPosition(focusedCell);
32850 if (!cellOrRow || !cellOrRow.isFullWidth()) {
32851 return false;
32852 }
32853 }
32854 return this.tabToNextCellCommon(cellOrRow, backwards, event);
32855 };
32856 NavigationService.prototype.tabToNextCellCommon = function (previous, backwards, event) {
32857 var editing = previous.isEditing();
32858 // if cell is not editing, there is still chance row is editing if it's Full Row Editing
32859 if (!editing && previous instanceof _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_5__["CellCtrl"]) {
32860 var cell = previous;
32861 var row = cell.getRowCtrl();
32862 if (row) {
32863 editing = row.isEditing();
32864 }
32865 }
32866 var res;
32867 if (editing) {
32868 // if we are editing, we know it's not a Full Width Row (RowComp)
32869 if (this.gridOptionsService.get('editType') === 'fullRow') {
32870 res = this.moveToNextEditingRow(previous, backwards, event);
32871 }
32872 else {
32873 res = this.moveToNextEditingCell(previous, backwards, event);
32874 }
32875 }
32876 else {
32877 res = this.moveToNextCellNotEditing(previous, backwards);
32878 }
32879 // if a cell wasn't found, it's possible that focus was moved to the header
32880 return res || !!this.focusService.getFocusedHeader();
32881 };
32882 NavigationService.prototype.moveToNextEditingCell = function (previousCell, backwards, event) {
32883 if (event === void 0) { event = null; }
32884 var previousPos = previousCell.getCellPosition();
32885 // before we stop editing, we need to focus the cell element
32886 // so the grid doesn't detect that focus has left the grid
32887 previousCell.getGui().focus();
32888 // need to do this before getting next cell to edit, in case the next cell
32889 // has editable function (eg colDef.editable=func() ) and it depends on the
32890 // result of this cell, so need to save updates from the first edit, in case
32891 // the value is referenced in the function.
32892 previousCell.stopEditing();
32893 // find the next cell to start editing
32894 var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);
32895 if (nextCell == null) {
32896 return false;
32897 }
32898 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
32899 // to the normal tabbing so user can exit the grid.
32900 nextCell.startEditing(null, null, true, event);
32901 nextCell.focusCell(false);
32902 return true;
32903 };
32904 NavigationService.prototype.moveToNextEditingRow = function (previousCell, backwards, event) {
32905 if (event === void 0) { event = null; }
32906 var previousPos = previousCell.getCellPosition();
32907 // find the next cell to start editing
32908 var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);
32909 if (nextCell == null) {
32910 return false;
32911 }
32912 var nextPos = nextCell.getCellPosition();
32913 var previousEditable = this.isCellEditable(previousPos);
32914 var nextEditable = this.isCellEditable(nextPos);
32915 var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;
32916 if (previousEditable) {
32917 previousCell.setFocusOutOnEditor();
32918 }
32919 if (!rowsMatch) {
32920 var pRow = previousCell.getRowCtrl();
32921 pRow.stopEditing();
32922 var nRow = nextCell.getRowCtrl();
32923 nRow.startRowEditing(undefined, undefined, undefined, event);
32924 }
32925 if (nextEditable) {
32926 nextCell.setFocusInOnEditor();
32927 nextCell.focusCell();
32928 }
32929 else {
32930 nextCell.focusCell(true);
32931 }
32932 return true;
32933 };
32934 NavigationService.prototype.moveToNextCellNotEditing = function (previousCell, backwards) {
32935 var displayedColumns = this.columnModel.getAllDisplayedColumns();
32936 var cellPos;
32937 if (previousCell instanceof _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_6__["RowCtrl"]) {
32938 cellPos = __assign(__assign({}, previousCell.getRowPosition()), { column: backwards ? displayedColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(displayedColumns) });
32939 }
32940 else {
32941 cellPos = previousCell.getCellPosition();
32942 }
32943 // find the next cell to start editing
32944 var nextCell = this.findNextCellToFocusOn(cellPos, backwards, false);
32945 // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default
32946 // to the normal tabbing so user can exit the grid.
32947 if (nextCell instanceof _rendering_cell_cellCtrl__WEBPACK_IMPORTED_MODULE_5__["CellCtrl"]) {
32948 nextCell.focusCell(true);
32949 }
32950 else if (nextCell) {
32951 return this.tryToFocusFullWidthRow(nextCell.getRowPosition(), backwards);
32952 }
32953 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(nextCell);
32954 };
32955 // called by the cell, when tab is pressed while editing.
32956 // @return: RenderedCell when navigation successful, otherwise null
32957 NavigationService.prototype.findNextCellToFocusOn = function (previousPosition, backwards, startEditing) {
32958 var nextPosition = previousPosition;
32959 while (true) {
32960 if (previousPosition !== nextPosition) {
32961 previousPosition = nextPosition;
32962 }
32963 if (!backwards) {
32964 nextPosition = this.getLastCellOfColSpan(nextPosition);
32965 }
32966 nextPosition = this.cellNavigationService.getNextTabbedCell(nextPosition, backwards);
32967 // allow user to override what cell to go to next
32968 var userFunc = this.gridOptionsService.getCallback('tabToNextCell');
32969 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(userFunc)) {
32970 var params = {
32971 backwards: backwards,
32972 editing: startEditing,
32973 previousCellPosition: previousPosition,
32974 nextCellPosition: nextPosition ? nextPosition : null
32975 };
32976 var userCell = userFunc(params);
32977 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(userCell)) {
32978 if (userCell.floating) {
32979 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["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');
32980 userCell.rowPinned = userCell.floating;
32981 }
32982 nextPosition = {
32983 rowIndex: userCell.rowIndex,
32984 column: userCell.column,
32985 rowPinned: userCell.rowPinned
32986 };
32987 }
32988 else {
32989 nextPosition = null;
32990 }
32991 }
32992 // if no 'next cell', means we have got to last cell of grid, so nothing to move to,
32993 // so bottom right cell going forwards, or top left going backwards
32994 if (!nextPosition) {
32995 return null;
32996 }
32997 if (nextPosition.rowIndex < 0) {
32998 var headerLen = this.headerNavigationService.getHeaderRowCount();
32999 this.focusService.focusHeaderPosition({
33000 headerPosition: {
33001 headerRowIndex: headerLen + (nextPosition.rowIndex),
33002 column: nextPosition.column
33003 }
33004 });
33005 return null;
33006 }
33007 // if editing, but cell not editable, skip cell. we do this before we do all of
33008 // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping
33009 // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless
33010 // (except for the last one) which causes grid to stall for a while.
33011 // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.
33012 var fullRowEdit = this.gridOptionsService.get('editType') === 'fullRow';
33013 if (startEditing && !fullRowEdit) {
33014 var cellIsEditable = this.isCellEditable(nextPosition);
33015 if (!cellIsEditable) {
33016 continue;
33017 }
33018 }
33019 this.ensureCellVisible(nextPosition);
33020 // we have to call this after ensureColumnVisible - otherwise it could be a virtual column
33021 // or row that is not currently in view, hence the renderedCell would not exist
33022 var nextCell = this.getCellByPosition(nextPosition);
33023 // if next cell is fullWidth row, then no rendered cell,
33024 // as fullWidth rows have no cells, so we skip it
33025 if (!nextCell) {
33026 var row = this.rowRenderer.getRowByPosition(nextPosition);
33027 if (!row || !row.isFullWidth() || startEditing) {
33028 continue;
33029 }
33030 return row;
33031 }
33032 if (nextCell.isSuppressNavigable()) {
33033 continue;
33034 }
33035 // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation
33036 // consistent, we set into range here also.
33037 if (this.rangeService) {
33038 this.rangeService.setRangeToCell(nextPosition);
33039 }
33040 // we successfully tabbed onto a grid cell, so return true
33041 return nextCell;
33042 }
33043 };
33044 NavigationService.prototype.isCellEditable = function (cell) {
33045 var rowNode = this.lookupRowNodeForCell(cell);
33046 if (rowNode) {
33047 return cell.column.isCellEditable(rowNode);
33048 }
33049 return false;
33050 };
33051 NavigationService.prototype.getCellByPosition = function (cellPosition) {
33052 var rowCtrl = this.rowRenderer.getRowByPosition(cellPosition);
33053 if (!rowCtrl) {
33054 return null;
33055 }
33056 return rowCtrl.getCellCtrl(cellPosition.column);
33057 };
33058 NavigationService.prototype.lookupRowNodeForCell = function (cell) {
33059 if (cell.rowPinned === 'top') {
33060 return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);
33061 }
33062 if (cell.rowPinned === 'bottom') {
33063 return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);
33064 }
33065 return this.paginationProxy.getRow(cell.rowIndex);
33066 };
33067 // we use index for rows, but column object for columns, as the next column (by index) might not
33068 // be visible (header grouping) so it's not reliable, so using the column object instead.
33069 NavigationService.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {
33070 // we keep searching for a next cell until we find one. this is how the group rows get skipped
33071 var nextCell = currentCell;
33072 var hitEdgeOfGrid = false;
33073 while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {
33074 // if the current cell is spanning across multiple columns, we need to move
33075 // our current position to be the last cell on the right before finding the
33076 // the next target.
33077 if (this.gridOptionsService.is('enableRtl')) {
33078 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT) {
33079 nextCell = this.getLastCellOfColSpan(nextCell);
33080 }
33081 }
33082 else if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].RIGHT) {
33083 nextCell = this.getLastCellOfColSpan(nextCell);
33084 }
33085 nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);
33086 // eg if going down, and nextCell=undefined, means we are gone past the last row
33087 hitEdgeOfGrid = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(nextCell);
33088 }
33089 if (hitEdgeOfGrid && event && event.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP) {
33090 nextCell = {
33091 rowIndex: -1,
33092 rowPinned: null,
33093 column: currentCell.column
33094 };
33095 }
33096 // allow user to override what cell to go to next. when doing normal cell navigation (with keys)
33097 // we allow this, however if processing 'enter after edit' we don't allow override
33098 if (allowUserOverride) {
33099 var userFunc = this.gridOptionsService.getCallback('navigateToNextCell');
33100 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(userFunc)) {
33101 var params = {
33102 key: key,
33103 previousCellPosition: currentCell,
33104 nextCellPosition: nextCell ? nextCell : null,
33105 event: event
33106 };
33107 var userCell = userFunc(params);
33108 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(userCell)) {
33109 if (userCell.floating) {
33110 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["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');
33111 userCell.rowPinned = userCell.floating;
33112 }
33113 nextCell = {
33114 rowPinned: userCell.rowPinned,
33115 rowIndex: userCell.rowIndex,
33116 column: userCell.column
33117 };
33118 }
33119 else {
33120 nextCell = null;
33121 }
33122 }
33123 }
33124 // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid
33125 if (!nextCell) {
33126 return;
33127 }
33128 if (nextCell.rowIndex < 0) {
33129 var headerLen = this.headerNavigationService.getHeaderRowCount();
33130 this.focusService.focusHeaderPosition({
33131 headerPosition: { headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column },
33132 event: event || undefined
33133 });
33134 return;
33135 }
33136 // in case we have col spanning we get the cellComp and use it to get the
33137 // position. This was we always focus the first cell inside the spanning.
33138 var normalisedPosition = this.getNormalisedPosition(nextCell);
33139 if (normalisedPosition) {
33140 this.focusPosition(normalisedPosition);
33141 }
33142 else {
33143 this.tryToFocusFullWidthRow(nextCell);
33144 }
33145 };
33146 NavigationService.prototype.getNormalisedPosition = function (cellPosition) {
33147 // ensureCellVisible first, to make sure cell at position is rendered.
33148 this.ensureCellVisible(cellPosition);
33149 var cellCtrl = this.getCellByPosition(cellPosition);
33150 // not guaranteed to have a cellComp when using the SSRM as blocks are loading.
33151 if (!cellCtrl) {
33152 return null;
33153 }
33154 cellPosition = cellCtrl.getCellPosition();
33155 // we call this again, as nextCell can be different to it's previous value due to Column Spanning
33156 // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the
33157 // last column in the group, however now it's the first column in the group). if we didn't do
33158 // ensureCellVisible again, then we could only be showing the last portion (last column) of the
33159 // merged cells.
33160 this.ensureCellVisible(cellPosition);
33161 return cellPosition;
33162 };
33163 NavigationService.prototype.tryToFocusFullWidthRow = function (position, backwards) {
33164 if (backwards === void 0) { backwards = false; }
33165 var displayedColumns = this.columnModel.getAllDisplayedColumns();
33166 var rowComp = this.rowRenderer.getRowByPosition(position);
33167 if (!rowComp || !rowComp.isFullWidth()) {
33168 return false;
33169 }
33170 var currentCellFocused = this.focusService.getFocusedCell();
33171 var cellPosition = {
33172 rowIndex: position.rowIndex,
33173 rowPinned: position.rowPinned,
33174 column: position.column || (backwards ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(displayedColumns) : displayedColumns[0])
33175 };
33176 this.focusPosition(cellPosition);
33177 var fromBelow = currentCellFocused != null ? this.rowPositionUtils.before(cellPosition, currentCellFocused) : false;
33178 var focusEvent = {
33179 type: _eventKeys__WEBPACK_IMPORTED_MODULE_8__["Events"].EVENT_FULL_WIDTH_ROW_FOCUSED,
33180 rowIndex: cellPosition.rowIndex,
33181 rowPinned: cellPosition.rowPinned,
33182 column: cellPosition.column,
33183 isFullWidthCell: true,
33184 floating: cellPosition.rowPinned,
33185 fromBelow: fromBelow
33186 };
33187 this.eventService.dispatchEvent(focusEvent);
33188 return true;
33189 };
33190 NavigationService.prototype.focusPosition = function (cellPosition) {
33191 this.focusService.setFocusedCell({
33192 rowIndex: cellPosition.rowIndex,
33193 column: cellPosition.column,
33194 rowPinned: cellPosition.rowPinned,
33195 forceBrowserFocus: true
33196 });
33197 if (this.rangeService) {
33198 this.rangeService.setRangeToCell(cellPosition);
33199 }
33200 };
33201 NavigationService.prototype.isValidNavigateCell = function (cell) {
33202 var rowNode = this.rowPositionUtils.getRowNode(cell);
33203 // we do not allow focusing on detail rows and full width rows
33204 return !!rowNode;
33205 };
33206 NavigationService.prototype.getLastCellOfColSpan = function (cell) {
33207 var cellCtrl = this.getCellByPosition(cell);
33208 if (!cellCtrl) {
33209 return cell;
33210 }
33211 var colSpanningList = cellCtrl.getColSpanningList();
33212 if (colSpanningList.length === 1) {
33213 return cell;
33214 }
33215 return {
33216 rowIndex: cell.rowIndex,
33217 column: Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(colSpanningList),
33218 rowPinned: cell.rowPinned
33219 };
33220 };
33221 NavigationService.prototype.ensureCellVisible = function (gridCell) {
33222 var isGroupStickyEnabled = this.gridOptionsService.is('groupRowsSticky');
33223 var rowNode = this.rowModel.getRow(gridCell.rowIndex);
33224 // sticky rows are always visible, so the grid shouldn't scroll to focus them.
33225 var skipScrollToRow = isGroupStickyEnabled && (rowNode === null || rowNode === void 0 ? void 0 : rowNode.sticky);
33226 // this scrolls the row into view
33227 if (!skipScrollToRow && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(gridCell.rowPinned)) {
33228 this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);
33229 }
33230 if (!gridCell.column.isPinned()) {
33231 this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);
33232 }
33233 };
33234 __decorate([
33235 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
33236 ], NavigationService.prototype, "mouseEventService", void 0);
33237 __decorate([
33238 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
33239 ], NavigationService.prototype, "paginationProxy", void 0);
33240 __decorate([
33241 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
33242 ], NavigationService.prototype, "focusService", void 0);
33243 __decorate([
33244 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeService')
33245 ], NavigationService.prototype, "rangeService", void 0);
33246 __decorate([
33247 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
33248 ], NavigationService.prototype, "columnModel", void 0);
33249 __decorate([
33250 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
33251 ], NavigationService.prototype, "rowModel", void 0);
33252 __decorate([
33253 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
33254 ], NavigationService.prototype, "ctrlsService", void 0);
33255 __decorate([
33256 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
33257 ], NavigationService.prototype, "rowRenderer", void 0);
33258 __decorate([
33259 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
33260 ], NavigationService.prototype, "headerNavigationService", void 0);
33261 __decorate([
33262 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("rowPositionUtils")
33263 ], NavigationService.prototype, "rowPositionUtils", void 0);
33264 __decorate([
33265 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("cellNavigationService")
33266 ], NavigationService.prototype, "cellNavigationService", void 0);
33267 __decorate([
33268 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("pinnedRowModel")
33269 ], NavigationService.prototype, "pinnedRowModel", void 0);
33270 __decorate([
33271 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
33272 ], NavigationService.prototype, "postConstruct", null);
33273 NavigationService = __decorate([
33274 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('navigationService')
33275 ], NavigationService);
33276 return NavigationService;
33277}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
33278
33279
33280
33281/***/ }),
33282/* 144 */
33283/***/ (function(module, __webpack_exports__, __webpack_require__) {
33284
33285"use strict";
33286__webpack_require__.r(__webpack_exports__);
33287/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerComp", function() { return RowContainerComp; });
33288/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
33289/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
33290/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
33291/* harmony import */ var _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(122);
33292/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
33293/* harmony import */ var _rendering_row_rowComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(145);
33294/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12);
33295/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(41);
33296/**
33297 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
33298 * @version v29.2.0
33299 * @link https://www.ag-grid.com/
33300 * @license MIT
33301 */
33302var __extends = (undefined && undefined.__extends) || (function () {
33303 var extendStatics = function (d, b) {
33304 extendStatics = Object.setPrototypeOf ||
33305 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33306 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
33307 return extendStatics(d, b);
33308 };
33309 return function (d, b) {
33310 extendStatics(d, b);
33311 function __() { this.constructor = d; }
33312 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33313 };
33314})();
33315var __assign = (undefined && undefined.__assign) || function () {
33316 __assign = Object.assign || function(t) {
33317 for (var s, i = 1, n = arguments.length; i < n; i++) {
33318 s = arguments[i];
33319 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33320 t[p] = s[p];
33321 }
33322 return t;
33323 };
33324 return __assign.apply(this, arguments);
33325};
33326var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
33327 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
33328 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
33329 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;
33330 return c > 3 && r && Object.defineProperty(target, key, r), r;
33331};
33332
33333
33334
33335
33336
33337
33338
33339
33340function templateFactory() {
33341 var name = _widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"].elementGettingCreated.getAttribute('name');
33342 var cssClasses = _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["RowContainerCtrl"].getRowContainerCssClasses(name);
33343 var res;
33344 var template1 = name === _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["RowContainerName"].CENTER;
33345 var template2 = name === _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["RowContainerName"].TOP_CENTER
33346 || name === _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["RowContainerName"].STICKY_TOP_CENTER
33347 || name === _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["RowContainerName"].BOTTOM_CENTER;
33348 if (template1) {
33349 res = /* html */
33350 "<div class=\"" + cssClasses.wrapper + "\" ref=\"eWrapper\" role=\"presentation\">\n <div class=\"" + cssClasses.viewport + "\" ref=\"eViewport\" role=\"presentation\">\n <div class=\"" + cssClasses.container + "\" ref=\"eContainer\"></div>\n </div>\n </div>";
33351 }
33352 else if (template2) {
33353 res = /* html */
33354 "<div class=\"" + cssClasses.viewport + "\" ref=\"eViewport\" role=\"presentation\">\n <div class=\"" + cssClasses.container + "\" ref=\"eContainer\"></div>\n </div>";
33355 }
33356 else {
33357 res = /* html */
33358 "<div class=\"" + cssClasses.container + "\" ref=\"eContainer\"></div>";
33359 }
33360 return res;
33361}
33362var RowContainerComp = /** @class */ (function (_super) {
33363 __extends(RowContainerComp, _super);
33364 function RowContainerComp() {
33365 var _this = _super.call(this, templateFactory()) || this;
33366 _this.rowComps = {};
33367 _this.name = _widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"].elementGettingCreated.getAttribute('name');
33368 _this.type = Object(_rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["getRowContainerTypeForName"])(_this.name);
33369 return _this;
33370 }
33371 RowContainerComp.prototype.postConstruct = function () {
33372 var _this = this;
33373 var compProxy = {
33374 setViewportHeight: function (height) { return _this.eViewport.style.height = height; },
33375 setRowCtrls: function (rowCtrls) { return _this.setRowCtrls(rowCtrls); },
33376 setDomOrder: function (domOrder) {
33377 _this.domOrder = domOrder;
33378 },
33379 setContainerWidth: function (width) { return _this.eContainer.style.width = width; }
33380 };
33381 var ctrl = this.createManagedBean(new _rowContainerCtrl__WEBPACK_IMPORTED_MODULE_3__["RowContainerCtrl"](this.name));
33382 ctrl.setComp(compProxy, this.eContainer, this.eViewport, this.eWrapper);
33383 };
33384 RowContainerComp.prototype.preDestroy = function () {
33385 // destroys all row comps
33386 this.setRowCtrls([]);
33387 };
33388 RowContainerComp.prototype.setRowCtrls = function (rowCtrls) {
33389 var _this = this;
33390 var oldRows = __assign({}, this.rowComps);
33391 this.rowComps = {};
33392 this.lastPlacedElement = null;
33393 var processRow = function (rowCon) {
33394 var instanceId = rowCon.getInstanceId();
33395 var existingRowComp = oldRows[instanceId];
33396 if (existingRowComp) {
33397 _this.rowComps[instanceId] = existingRowComp;
33398 delete oldRows[instanceId];
33399 _this.ensureDomOrder(existingRowComp.getGui());
33400 }
33401 else {
33402 var rowComp = new _rendering_row_rowComp__WEBPACK_IMPORTED_MODULE_5__["RowComp"](rowCon, _this.beans, _this.type);
33403 _this.rowComps[instanceId] = rowComp;
33404 _this.appendRow(rowComp.getGui());
33405 }
33406 };
33407 rowCtrls.forEach(processRow);
33408 Object(_utils_object__WEBPACK_IMPORTED_MODULE_6__["getAllValuesInObject"])(oldRows).forEach(function (oldRowComp) {
33409 _this.eContainer.removeChild(oldRowComp.getGui());
33410 oldRowComp.destroy();
33411 });
33412 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_7__["setAriaRole"])(this.eContainer, rowCtrls.length ? "rowgroup" : "presentation");
33413 };
33414 RowContainerComp.prototype.appendRow = function (element) {
33415 if (this.domOrder) {
33416 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["insertWithDomOrder"])(this.eContainer, element, this.lastPlacedElement);
33417 }
33418 else {
33419 this.eContainer.appendChild(element);
33420 }
33421 this.lastPlacedElement = element;
33422 };
33423 RowContainerComp.prototype.ensureDomOrder = function (eRow) {
33424 if (this.domOrder) {
33425 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["ensureDomOrder"])(this.eContainer, eRow, this.lastPlacedElement);
33426 this.lastPlacedElement = eRow;
33427 }
33428 };
33429 __decorate([
33430 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('beans')
33431 ], RowContainerComp.prototype, "beans", void 0);
33432 __decorate([
33433 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eViewport')
33434 ], RowContainerComp.prototype, "eViewport", void 0);
33435 __decorate([
33436 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
33437 ], RowContainerComp.prototype, "eContainer", void 0);
33438 __decorate([
33439 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eWrapper')
33440 ], RowContainerComp.prototype, "eWrapper", void 0);
33441 __decorate([
33442 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
33443 ], RowContainerComp.prototype, "postConstruct", null);
33444 __decorate([
33445 _context_context__WEBPACK_IMPORTED_MODULE_2__["PreDestroy"]
33446 ], RowContainerComp.prototype, "preDestroy", null);
33447 return RowContainerComp;
33448}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
33449
33450
33451
33452/***/ }),
33453/* 145 */
33454/***/ (function(module, __webpack_exports__, __webpack_require__) {
33455
33456"use strict";
33457__webpack_require__.r(__webpack_exports__);
33458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowComp", function() { return RowComp; });
33459/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
33460/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
33461/* harmony import */ var _cell_cellComp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(146);
33462/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
33463/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41);
33464/**
33465 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
33466 * @version v29.2.0
33467 * @link https://www.ag-grid.com/
33468 * @license MIT
33469 */
33470var __extends = (undefined && undefined.__extends) || (function () {
33471 var extendStatics = function (d, b) {
33472 extendStatics = Object.setPrototypeOf ||
33473 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33474 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
33475 return extendStatics(d, b);
33476 };
33477 return function (d, b) {
33478 extendStatics(d, b);
33479 function __() { this.constructor = d; }
33480 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33481 };
33482})();
33483
33484
33485
33486
33487
33488var RowComp = /** @class */ (function (_super) {
33489 __extends(RowComp, _super);
33490 function RowComp(ctrl, beans, containerType) {
33491 var _this = _super.call(this) || this;
33492 _this.cellComps = {};
33493 _this.beans = beans;
33494 _this.rowCtrl = ctrl;
33495 _this.setTemplate(/* html */ "<div comp-id=\"" + _this.getCompId() + "\" style=\"" + _this.getInitialStyle(containerType) + "\"/>");
33496 var eGui = _this.getGui();
33497 var style = eGui.style;
33498 var compProxy = {
33499 setDomOrder: function (domOrder) { return _this.domOrder = domOrder; },
33500 setCellCtrls: function (cellCtrls) { return _this.setCellCtrls(cellCtrls); },
33501 showFullWidth: function (compDetails) { return _this.showFullWidth(compDetails); },
33502 getFullWidthCellRenderer: function () { return _this.getFullWidthCellRenderer(); },
33503 addOrRemoveCssClass: function (name, on) { return _this.addOrRemoveCssClass(name, on); },
33504 setUserStyles: function (styles) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["addStylesToElement"])(eGui, styles); },
33505 setTop: function (top) { return style.top = top; },
33506 setTransform: function (transform) { return style.transform = transform; },
33507 setRowIndex: function (rowIndex) { return eGui.setAttribute('row-index', rowIndex); },
33508 setRole: function (role) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaRole"])(eGui, role); },
33509 setRowId: function (rowId) { return eGui.setAttribute('row-id', rowId); },
33510 setRowBusinessKey: function (businessKey) { return eGui.setAttribute('row-business-key', businessKey); },
33511 setTabIndex: function (tabIndex) { return eGui.setAttribute('tabindex', tabIndex.toString()); }
33512 };
33513 ctrl.setComp(compProxy, _this.getGui(), containerType);
33514 _this.addDestroyFunc(function () {
33515 ctrl.unsetComp(containerType);
33516 });
33517 return _this;
33518 }
33519 RowComp.prototype.getInitialStyle = function (containerType) {
33520 var transform = this.rowCtrl.getInitialTransform(containerType);
33521 var top = this.rowCtrl.getInitialRowTop(containerType);
33522 return transform ? "transform: " + transform : "top: " + top;
33523 };
33524 RowComp.prototype.showFullWidth = function (compDetails) {
33525 var _this = this;
33526 var callback = function (cellRenderer) {
33527 if (_this.isAlive()) {
33528 var eGui = cellRenderer.getGui();
33529 _this.getGui().appendChild(eGui);
33530 _this.rowCtrl.setupDetailRowAutoHeight(eGui);
33531 _this.setFullWidthRowComp(cellRenderer);
33532 }
33533 else {
33534 _this.beans.context.destroyBean(cellRenderer);
33535 }
33536 };
33537 // if not in cache, create new one
33538 var res = compDetails.newAgStackInstance();
33539 if (!res) {
33540 return;
33541 }
33542 res.then(callback);
33543 };
33544 RowComp.prototype.setCellCtrls = function (cellCtrls) {
33545 var _this = this;
33546 var cellsToRemove = Object.assign({}, this.cellComps);
33547 cellCtrls.forEach(function (cellCtrl) {
33548 var key = cellCtrl.getInstanceId();
33549 var existingCellComp = _this.cellComps[key];
33550 if (existingCellComp == null) {
33551 _this.newCellComp(cellCtrl);
33552 }
33553 else {
33554 cellsToRemove[key] = null;
33555 }
33556 });
33557 var cellCompsToRemove = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getAllValuesInObject"])(cellsToRemove)
33558 .filter(function (cellComp) { return cellComp != null; });
33559 this.destroyCells(cellCompsToRemove);
33560 this.ensureDomOrder(cellCtrls);
33561 };
33562 RowComp.prototype.ensureDomOrder = function (cellCtrls) {
33563 var _this = this;
33564 if (!this.domOrder) {
33565 return;
33566 }
33567 var elementsInOrder = [];
33568 cellCtrls.forEach(function (cellCtrl) {
33569 var cellComp = _this.cellComps[cellCtrl.getInstanceId()];
33570 if (cellComp) {
33571 elementsInOrder.push(cellComp.getGui());
33572 }
33573 });
33574 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDomChildOrder"])(this.getGui(), elementsInOrder);
33575 };
33576 RowComp.prototype.newCellComp = function (cellCtrl) {
33577 var cellComp = new _cell_cellComp__WEBPACK_IMPORTED_MODULE_2__["CellComp"](this.beans, cellCtrl, this.rowCtrl.isPrintLayout(), this.getGui(), this.rowCtrl.isEditing());
33578 this.cellComps[cellCtrl.getInstanceId()] = cellComp;
33579 this.getGui().appendChild(cellComp.getGui());
33580 };
33581 RowComp.prototype.destroy = function () {
33582 _super.prototype.destroy.call(this);
33583 this.destroyAllCells();
33584 };
33585 RowComp.prototype.destroyAllCells = function () {
33586 var cellsToDestroy = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getAllValuesInObject"])(this.cellComps).filter(function (cp) { return cp != null; });
33587 this.destroyCells(cellsToDestroy);
33588 };
33589 RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {
33590 var _this = this;
33591 if (this.fullWidthCellRenderer) {
33592 console.error('AG Grid - should not be setting fullWidthRowComponent twice');
33593 }
33594 this.fullWidthCellRenderer = fullWidthRowComponent;
33595 this.addDestroyFunc(function () {
33596 _this.fullWidthCellRenderer = _this.beans.context.destroyBean(_this.fullWidthCellRenderer);
33597 });
33598 };
33599 RowComp.prototype.getFullWidthCellRenderer = function () {
33600 return this.fullWidthCellRenderer;
33601 };
33602 RowComp.prototype.destroyCells = function (cellComps) {
33603 var _this = this;
33604 cellComps.forEach(function (cellComp) {
33605 // could be old reference, ie removed cell
33606 if (!cellComp) {
33607 return;
33608 }
33609 // check cellComp belongs in this container
33610 var instanceId = cellComp.getCtrl().getInstanceId();
33611 if (_this.cellComps[instanceId] !== cellComp) {
33612 return;
33613 }
33614 cellComp.detach();
33615 cellComp.destroy();
33616 _this.cellComps[instanceId] = null;
33617 });
33618 };
33619 return RowComp;
33620}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
33621
33622
33623
33624/***/ }),
33625/* 146 */
33626/***/ (function(module, __webpack_exports__, __webpack_require__) {
33627
33628"use strict";
33629__webpack_require__.r(__webpack_exports__);
33630/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return CellComp; });
33631/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
33632/* harmony import */ var _cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(147);
33633/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
33634/* harmony import */ var _utils_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(31);
33635/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
33636/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(45);
33637/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42);
33638/**
33639 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
33640 * @version v29.2.0
33641 * @link https://www.ag-grid.com/
33642 * @license MIT
33643 */
33644var __extends = (undefined && undefined.__extends) || (function () {
33645 var extendStatics = function (d, b) {
33646 extendStatics = Object.setPrototypeOf ||
33647 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
33648 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
33649 return extendStatics(d, b);
33650 };
33651 return function (d, b) {
33652 extendStatics(d, b);
33653 function __() { this.constructor = d; }
33654 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
33655 };
33656})();
33657
33658
33659
33660
33661
33662
33663
33664var CellComp = /** @class */ (function (_super) {
33665 __extends(CellComp, _super);
33666 function CellComp(beans, cellCtrl, printLayout, eRow, editingRow) {
33667 var _this = _super.call(this) || this;
33668 // every time we go into edit mode, or back again, this gets incremented.
33669 // it's the components way of dealing with the async nature of framework components,
33670 // so if a framework component takes a while to be created, we know if the object
33671 // is still relevant when creating is finished. eg we could click edit / un-edit 20
33672 // times before the first React edit component comes back - we should discard
33673 // the first 19.
33674 _this.rendererVersion = 0;
33675 _this.editorVersion = 0;
33676 _this.beans = beans;
33677 _this.column = cellCtrl.getColumn();
33678 _this.rowNode = cellCtrl.getRowNode();
33679 _this.rowCtrl = cellCtrl.getRowCtrl();
33680 _this.eRow = eRow;
33681 _this.setTemplate(/* html */ "<div comp-id=\"" + _this.getCompId() + "\"/>");
33682 var eGui = _this.getGui();
33683 _this.forceWrapper = cellCtrl.isForceWrapper();
33684 _this.refreshWrapper(false);
33685 var setAttribute = function (name, value, element) {
33686 var actualElement = element ? element : eGui;
33687 if (value != null && value != '') {
33688 actualElement.setAttribute(name, value);
33689 }
33690 else {
33691 actualElement.removeAttribute(name);
33692 }
33693 };
33694 var compProxy = {
33695 addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },
33696 setUserStyles: function (styles) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["addStylesToElement"])(eGui, styles); },
33697 getFocusableElement: function () { return _this.getFocusableElement(); },
33698 setTabIndex: function (tabIndex) { return setAttribute('tabindex', tabIndex.toString()); },
33699 setRole: function (role) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaRole"])(eGui, role); },
33700 setColId: function (colId) { return setAttribute('col-id', colId); },
33701 setTitle: function (title) { return setAttribute('title', title); },
33702 setIncludeSelection: function (include) { return _this.includeSelection = include; },
33703 setIncludeRowDrag: function (include) { return _this.includeRowDrag = include; },
33704 setIncludeDndSource: function (include) { return _this.includeDndSource = include; },
33705 setRenderDetails: function (compDetails, valueToDisplay, force) {
33706 return _this.setRenderDetails(compDetails, valueToDisplay, force);
33707 },
33708 setEditDetails: function (compDetails, popup, position) {
33709 return _this.setEditDetails(compDetails, popup, position);
33710 },
33711 getCellEditor: function () { return _this.cellEditor || null; },
33712 getCellRenderer: function () { return _this.cellRenderer || null; },
33713 getParentOfValue: function () { return _this.getParentOfValue(); }
33714 };
33715 _this.cellCtrl = cellCtrl;
33716 cellCtrl.setComp(compProxy, _this.getGui(), _this.eCellWrapper, printLayout, editingRow);
33717 return _this;
33718 }
33719 CellComp.prototype.getParentOfValue = function () {
33720 if (this.eCellValue) {
33721 // if not editing, and using wrapper, then value goes in eCellValue
33722 return this.eCellValue;
33723 }
33724 if (this.eCellWrapper) {
33725 // if editing, and using wrapper, value (cell editor) goes in eCellWrapper
33726 return this.eCellWrapper;
33727 }
33728 // if editing or rendering, and not using wrapper, value (or comp) is directly inside cell
33729 return this.getGui();
33730 };
33731 CellComp.prototype.setRenderDetails = function (compDetails, valueToDisplay, forceNewCellRendererInstance) {
33732 // this can happen if the users asks for the cell to refresh, but we are not showing the vale as we are editing
33733 var isInlineEditing = this.cellEditor && !this.cellEditorPopupWrapper;
33734 if (isInlineEditing) {
33735 return;
33736 }
33737 // this means firstRender will be true for one pass only, as it's initialised to undefined
33738 this.firstRender = this.firstRender == null;
33739 // if display template has changed, means any previous Cell Renderer is in the wrong location
33740 var controlWrapperChanged = this.refreshWrapper(false);
33741 this.refreshEditStyles(false);
33742 // all of these have dependencies on the eGui, so only do them after eGui is set
33743 if (compDetails) {
33744 var neverRefresh = forceNewCellRendererInstance || controlWrapperChanged;
33745 var cellRendererRefreshSuccessful = neverRefresh ? false : this.refreshCellRenderer(compDetails);
33746 if (!cellRendererRefreshSuccessful) {
33747 this.destroyRenderer();
33748 this.createCellRendererInstance(compDetails);
33749 }
33750 }
33751 else {
33752 this.destroyRenderer();
33753 this.insertValueWithoutCellRenderer(valueToDisplay);
33754 }
33755 };
33756 CellComp.prototype.setEditDetails = function (compDetails, popup, position) {
33757 if (compDetails) {
33758 this.createCellEditorInstance(compDetails, popup, position);
33759 }
33760 else {
33761 this.destroyEditor();
33762 }
33763 };
33764 CellComp.prototype.removeControls = function () {
33765 this.checkboxSelectionComp = this.beans.context.destroyBean(this.checkboxSelectionComp);
33766 this.dndSourceComp = this.beans.context.destroyBean(this.dndSourceComp);
33767 this.rowDraggingComp = this.beans.context.destroyBean(this.rowDraggingComp);
33768 };
33769 // returns true if wrapper was changed
33770 CellComp.prototype.refreshWrapper = function (editing) {
33771 var providingControls = this.includeRowDrag || this.includeDndSource || this.includeSelection;
33772 var usingWrapper = providingControls || this.forceWrapper;
33773 var putWrapperIn = usingWrapper && this.eCellWrapper == null;
33774 if (putWrapperIn) {
33775 this.eCellWrapper = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["loadTemplate"])(/* html */ "<div class=\"ag-cell-wrapper\" role=\"presentation\"></div>");
33776 this.getGui().appendChild(this.eCellWrapper);
33777 }
33778 var takeWrapperOut = !usingWrapper && this.eCellWrapper != null;
33779 if (takeWrapperOut) {
33780 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["removeFromParent"])(this.eCellWrapper);
33781 this.eCellWrapper = undefined;
33782 }
33783 this.addOrRemoveCssClass('ag-cell-value', !usingWrapper);
33784 var usingCellValue = !editing && usingWrapper;
33785 var putCellValueIn = usingCellValue && this.eCellValue == null;
33786 if (putCellValueIn) {
33787 this.eCellValue = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["loadTemplate"])(/* html */ "<span class=\"ag-cell-value\" role=\"presentation\"></span>");
33788 this.eCellWrapper.appendChild(this.eCellValue);
33789 }
33790 var takeCellValueOut = !usingCellValue && this.eCellValue != null;
33791 if (takeCellValueOut) {
33792 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["removeFromParent"])(this.eCellValue);
33793 this.eCellValue = undefined;
33794 }
33795 var templateChanged = putWrapperIn || takeWrapperOut || putCellValueIn || takeCellValueOut;
33796 if (templateChanged) {
33797 this.removeControls();
33798 }
33799 if (!editing) {
33800 if (providingControls) {
33801 this.addControls();
33802 }
33803 }
33804 return templateChanged;
33805 };
33806 CellComp.prototype.addControls = function () {
33807 if (this.includeRowDrag) {
33808 if (this.rowDraggingComp == null) {
33809 this.rowDraggingComp = this.cellCtrl.createRowDragComp();
33810 if (this.rowDraggingComp) {
33811 // put the checkbox in before the value
33812 this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);
33813 }
33814 }
33815 }
33816 if (this.includeDndSource) {
33817 if (this.dndSourceComp == null) {
33818 this.dndSourceComp = this.cellCtrl.createDndSource();
33819 // put the checkbox in before the value
33820 this.eCellWrapper.insertBefore(this.dndSourceComp.getGui(), this.eCellValue);
33821 }
33822 }
33823 if (this.includeSelection) {
33824 if (this.checkboxSelectionComp == null) {
33825 this.checkboxSelectionComp = this.cellCtrl.createSelectionCheckbox();
33826 this.eCellWrapper.insertBefore(this.checkboxSelectionComp.getGui(), this.eCellValue);
33827 }
33828 }
33829 };
33830 CellComp.prototype.createCellEditorInstance = function (compDetails, popup, position) {
33831 var _this = this;
33832 var versionCopy = this.editorVersion;
33833 var cellEditorPromise = compDetails.newAgStackInstance();
33834 if (!cellEditorPromise) {
33835 return;
33836 } // if empty, userComponentFactory already did a console message
33837 var params = compDetails.params;
33838 cellEditorPromise.then(function (c) { return _this.afterCellEditorCreated(versionCopy, c, params, popup, position); });
33839 // if we don't do this, and editor component is async, then there will be a period
33840 // when the component isn't present and keyboard navigation won't work - so example
33841 // of user hitting tab quickly (more quickly than renderers getting created) won't work
33842 var cellEditorAsync = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(this.cellEditor);
33843 if (cellEditorAsync && params.cellStartedEdit) {
33844 this.cellCtrl.focusCell(true);
33845 }
33846 };
33847 CellComp.prototype.insertValueWithoutCellRenderer = function (valueToDisplay) {
33848 var eParent = this.getParentOfValue();
33849 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["clearElement"])(eParent);
33850 var escapedValue = valueToDisplay != null ? Object(_utils_string__WEBPACK_IMPORTED_MODULE_3__["escapeString"])(valueToDisplay) : null;
33851 if (escapedValue != null) {
33852 eParent.innerHTML = escapedValue;
33853 }
33854 };
33855 CellComp.prototype.destroyEditorAndRenderer = function () {
33856 this.destroyRenderer();
33857 this.destroyEditor();
33858 };
33859 CellComp.prototype.destroyRenderer = function () {
33860 var context = this.beans.context;
33861 this.cellRenderer = context.destroyBean(this.cellRenderer);
33862 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["removeFromParent"])(this.cellRendererGui);
33863 this.cellRendererGui = null;
33864 this.rendererVersion++;
33865 };
33866 CellComp.prototype.destroyEditor = function () {
33867 var context = this.beans.context;
33868 if (this.hideEditorPopup) {
33869 this.hideEditorPopup();
33870 }
33871 this.hideEditorPopup = undefined;
33872 this.cellEditor = context.destroyBean(this.cellEditor);
33873 this.cellEditorPopupWrapper = context.destroyBean(this.cellEditorPopupWrapper);
33874 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["removeFromParent"])(this.cellEditorGui);
33875 this.cellEditorGui = null;
33876 this.editorVersion++;
33877 };
33878 CellComp.prototype.refreshCellRenderer = function (compClassAndParams) {
33879 if (this.cellRenderer == null || this.cellRenderer.refresh == null) {
33880 return false;
33881 }
33882 // if different Cell Renderer configured this time (eg user is using selector, and
33883 // returns different component) then don't refresh, force recreate of Cell Renderer
33884 if (this.cellRendererClass !== compClassAndParams.componentClass) {
33885 return false;
33886 }
33887 // take any custom params off of the user
33888 var result = this.cellRenderer.refresh(compClassAndParams.params);
33889 // NOTE on undefined: previous version of the cellRenderer.refresh() interface
33890 // returned nothing, if the method existed, we assumed it refreshed. so for
33891 // backwards compatibility, we assume if method exists and returns nothing,
33892 // that it was successful.
33893 return result === true || result === undefined;
33894 };
33895 CellComp.prototype.createCellRendererInstance = function (compDetails) {
33896 var _this = this;
33897 // never use task service if animation frame service is turned off.
33898 // and lastly we never use it if doing auto-height, as the auto-height service checks the
33899 // row height directly after the cell is created, it doesn't wait around for the tasks to complete
33900 var suppressAnimationFrame = this.beans.gridOptionsService.is('suppressAnimationFrame');
33901 var useTaskService = !suppressAnimationFrame;
33902 var displayComponentVersionCopy = this.rendererVersion;
33903 var componentClass = compDetails.componentClass;
33904 var createCellRendererFunc = function () {
33905 var staleTask = _this.rendererVersion !== displayComponentVersionCopy || !_this.isAlive();
33906 if (staleTask) {
33907 return;
33908 }
33909 // this can return null in the event that the user has switched from a renderer component to nothing, for example
33910 // when using a cellRendererSelect to return a component or null depending on row data etc
33911 var componentPromise = compDetails.newAgStackInstance();
33912 var callback = _this.afterCellRendererCreated.bind(_this, displayComponentVersionCopy, componentClass);
33913 if (componentPromise) {
33914 componentPromise.then(callback);
33915 }
33916 };
33917 // we only use task service when rendering for first time, which means it is not used when doing edits.
33918 // if we changed this (always use task service) would make sense, however it would break tests, possibly
33919 // test of users.
33920 if (useTaskService && this.firstRender) {
33921 this.beans.animationFrameService.createTask(createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');
33922 }
33923 else {
33924 createCellRendererFunc();
33925 }
33926 };
33927 CellComp.prototype.getCtrl = function () {
33928 return this.cellCtrl;
33929 };
33930 CellComp.prototype.getRowCtrl = function () {
33931 return this.rowCtrl;
33932 };
33933 CellComp.prototype.getCellRenderer = function () {
33934 return this.cellRenderer;
33935 };
33936 CellComp.prototype.getCellEditor = function () {
33937 return this.cellEditor;
33938 };
33939 CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRendererClass, cellRenderer) {
33940 var staleTask = !this.isAlive() || cellRendererVersion !== this.rendererVersion;
33941 if (staleTask) {
33942 this.beans.context.destroyBean(cellRenderer);
33943 return;
33944 }
33945 this.cellRenderer = cellRenderer;
33946 this.cellRendererClass = cellRendererClass;
33947 this.cellRendererGui = this.cellRenderer.getGui();
33948 if (this.cellRendererGui != null) {
33949 var eParent = this.getParentOfValue();
33950 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["clearElement"])(eParent);
33951 eParent.appendChild(this.cellRendererGui);
33952 }
33953 };
33954 CellComp.prototype.afterCellEditorCreated = function (requestVersion, cellEditor, params, popup, position) {
33955 // if editingCell=false, means user cancelled the editor before component was ready.
33956 // if versionMismatch, then user cancelled the edit, then started the edit again, and this
33957 // is the first editor which is now stale.
33958 var staleComp = requestVersion !== this.editorVersion;
33959 if (staleComp) {
33960 this.beans.context.destroyBean(cellEditor);
33961 return;
33962 }
33963 var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();
33964 if (editingCancelledByUserComp) {
33965 this.beans.context.destroyBean(cellEditor);
33966 this.cellCtrl.stopEditing(true);
33967 return;
33968 }
33969 if (!cellEditor.getGui) {
33970 console.warn("AG Grid: cellEditor for column " + this.column.getId() + " is missing getGui() method");
33971 this.beans.context.destroyBean(cellEditor);
33972 return;
33973 }
33974 this.cellEditor = cellEditor;
33975 this.cellEditorGui = cellEditor.getGui();
33976 var cellEditorInPopup = popup || (cellEditor.isPopup !== undefined && cellEditor.isPopup());
33977 if (cellEditorInPopup) {
33978 this.addPopupCellEditor(params, position);
33979 }
33980 else {
33981 this.addInCellEditor();
33982 }
33983 this.refreshEditStyles(true, cellEditorInPopup);
33984 if (cellEditor.afterGuiAttached) {
33985 cellEditor.afterGuiAttached();
33986 }
33987 };
33988 CellComp.prototype.refreshEditStyles = function (editing, isPopup) {
33989 var _a;
33990 this.addOrRemoveCssClass('ag-cell-inline-editing', editing && !isPopup);
33991 this.addOrRemoveCssClass('ag-cell-popup-editing', editing && !!isPopup);
33992 this.addOrRemoveCssClass('ag-cell-not-inline-editing', !editing || !!isPopup);
33993 (_a = this.rowCtrl) === null || _a === void 0 ? void 0 : _a.setInlineEditingCss(editing);
33994 };
33995 CellComp.prototype.addInCellEditor = function () {
33996 var eGui = this.getGui();
33997 // if focus is inside the cell, we move focus to the cell itself
33998 // before removing it's contents, otherwise errors could be thrown.
33999 var eDocument = this.beans.gridOptionsService.getDocument();
34000 if (eGui.contains(eDocument.activeElement)) {
34001 eGui.focus();
34002 }
34003 this.destroyRenderer();
34004 this.refreshWrapper(true);
34005 this.clearParentOfValue();
34006 if (this.cellEditorGui) {
34007 var eParent = this.getParentOfValue();
34008 eParent.appendChild(this.cellEditorGui);
34009 }
34010 };
34011 CellComp.prototype.addPopupCellEditor = function (params, position) {
34012 var _this = this;
34013 if (this.beans.gridOptionsService.get('editType') === 'fullRow') {
34014 console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +
34015 '- either turn off fullRowEdit, or stop using popup editors.');
34016 }
34017 var cellEditor = this.cellEditor;
34018 // if a popup, then we wrap in a popup editor and return the popup
34019 this.cellEditorPopupWrapper = this.beans.context.createBean(new _cellEditors_popupEditorWrapper__WEBPACK_IMPORTED_MODULE_1__["PopupEditorWrapper"](params));
34020 var ePopupGui = this.cellEditorPopupWrapper.getGui();
34021 if (this.cellEditorGui) {
34022 ePopupGui.appendChild(this.cellEditorGui);
34023 }
34024 var popupService = this.beans.popupService;
34025 var useModelPopup = this.beans.gridOptionsService.is('stopEditingWhenCellsLoseFocus');
34026 // see if position provided by colDef, if not then check old way of method on cellComp
34027 var positionToUse = position != null
34028 ? position
34029 : cellEditor.getPopupPosition
34030 ? cellEditor.getPopupPosition()
34031 : 'over';
34032 var isRtl = this.beans.gridOptionsService.is('enableRtl');
34033 var positionParams = {
34034 ePopup: ePopupGui,
34035 column: this.column,
34036 rowNode: this.rowNode,
34037 type: 'popupCellEditor',
34038 eventSource: this.getGui(),
34039 position: positionToUse,
34040 alignSide: isRtl ? 'right' : 'left',
34041 keepWithinBounds: true
34042 };
34043 var positionCallback = popupService.positionPopupByComponent.bind(popupService, positionParams);
34044 var translate = this.beans.localeService.getLocaleTextFunc();
34045 var addPopupRes = popupService.addPopup({
34046 modal: useModelPopup,
34047 eChild: ePopupGui,
34048 closeOnEsc: true,
34049 closedCallback: function () { _this.cellCtrl.onPopupEditorClosed(); },
34050 anchorToElement: this.getGui(),
34051 positionCallback: positionCallback,
34052 ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')
34053 });
34054 if (addPopupRes) {
34055 this.hideEditorPopup = addPopupRes.hideFunc;
34056 }
34057 };
34058 CellComp.prototype.detach = function () {
34059 this.eRow.removeChild(this.getGui());
34060 };
34061 // if the row is also getting destroyed, then we don't need to remove from dom,
34062 // as the row will also get removed, so no need to take out the cells from the row
34063 // if the row is going (removing is an expensive operation, so only need to remove
34064 // the top part)
34065 //
34066 // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.
34067 CellComp.prototype.destroy = function () {
34068 this.cellCtrl.stopEditing();
34069 this.destroyEditorAndRenderer();
34070 this.removeControls();
34071 _super.prototype.destroy.call(this);
34072 };
34073 CellComp.prototype.clearParentOfValue = function () {
34074 var eGui = this.getGui();
34075 // if focus is inside the cell, we move focus to the cell itself
34076 // before removing it's contents, otherwise errors could be thrown.
34077 var eDocument = this.beans.gridOptionsService.getDocument();
34078 if (eGui.contains(eDocument.activeElement) && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["browserSupportsPreventScroll"])()) {
34079 eGui.focus({ preventScroll: true });
34080 }
34081 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_5__["clearElement"])(this.getParentOfValue());
34082 };
34083 return CellComp;
34084}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
34085
34086
34087
34088/***/ }),
34089/* 147 */
34090/***/ (function(module, __webpack_exports__, __webpack_require__) {
34091
34092"use strict";
34093__webpack_require__.r(__webpack_exports__);
34094/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return PopupEditorWrapper; });
34095/* harmony import */ var _widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90);
34096/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47);
34097/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
34098/**
34099 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
34100 * @version v29.2.0
34101 * @link https://www.ag-grid.com/
34102 * @license MIT
34103 */
34104var __extends = (undefined && undefined.__extends) || (function () {
34105 var extendStatics = function (d, b) {
34106 extendStatics = Object.setPrototypeOf ||
34107 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34108 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
34109 return extendStatics(d, b);
34110 };
34111 return function (d, b) {
34112 extendStatics(d, b);
34113 function __() { this.constructor = d; }
34114 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34115 };
34116})();
34117var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34118 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34119 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34120 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;
34121 return c > 3 && r && Object.defineProperty(target, key, r), r;
34122};
34123
34124
34125
34126var PopupEditorWrapper = /** @class */ (function (_super) {
34127 __extends(PopupEditorWrapper, _super);
34128 function PopupEditorWrapper(params) {
34129 var _this = _super.call(this, /* html */ "<div class=\"ag-popup-editor\" tabindex=\"-1\"/>") || this;
34130 _this.params = params;
34131 return _this;
34132 }
34133 PopupEditorWrapper.prototype.postConstruct = function () {
34134 this.gridOptionsService.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);
34135 this.addKeyDownListener();
34136 };
34137 PopupEditorWrapper.prototype.addKeyDownListener = function () {
34138 var _this = this;
34139 var eGui = this.getGui();
34140 var params = this.params;
34141 var listener = function (event) {
34142 if (!Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_1__["isUserSuppressingKeyboardEvent"])(_this.gridOptionsService, event, params.node, params.column, true)) {
34143 params.onKeyDown(event);
34144 }
34145 };
34146 this.addManagedListener(eGui, 'keydown', listener);
34147 };
34148 PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';
34149 __decorate([
34150 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
34151 ], PopupEditorWrapper.prototype, "postConstruct", null);
34152 return PopupEditorWrapper;
34153}(_widgets_popupComponent__WEBPACK_IMPORTED_MODULE_0__["PopupComponent"]));
34154
34155
34156
34157/***/ }),
34158/* 148 */
34159/***/ (function(module, __webpack_exports__, __webpack_require__) {
34160
34161"use strict";
34162__webpack_require__.r(__webpack_exports__);
34163/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return BodyDropPivotTarget; });
34164/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(100);
34165/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
34166/**
34167 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
34168 * @version v29.2.0
34169 * @link https://www.ag-grid.com/
34170 * @license MIT
34171 */
34172var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34173 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34174 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34175 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;
34176 return c > 3 && r && Object.defineProperty(target, key, r), r;
34177};
34178
34179
34180var BodyDropPivotTarget = /** @class */ (function () {
34181 function BodyDropPivotTarget(pinned) {
34182 this.columnsToAggregate = [];
34183 this.columnsToGroup = [];
34184 this.columnsToPivot = [];
34185 this.pinned = pinned;
34186 }
34187 /** Callback for when drag enters */
34188 BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {
34189 var _this = this;
34190 this.clearColumnsList();
34191 // in pivot mode, we don't accept any drops if functions are read only
34192 if (this.gridOptionsService.is('functionsReadOnly')) {
34193 return;
34194 }
34195 var dragColumns = draggingEvent.dragItem.columns;
34196 if (!dragColumns) {
34197 return;
34198 }
34199 dragColumns.forEach(function (column) {
34200 // we don't allow adding secondary columns
34201 if (!column.isPrimary()) {
34202 return;
34203 }
34204 if (column.isAnyFunctionActive()) {
34205 return;
34206 }
34207 if (column.isAllowValue()) {
34208 _this.columnsToAggregate.push(column);
34209 }
34210 else if (column.isAllowRowGroup()) {
34211 _this.columnsToGroup.push(column);
34212 }
34213 else if (column.isAllowPivot()) {
34214 _this.columnsToPivot.push(column);
34215 }
34216 });
34217 };
34218 BodyDropPivotTarget.prototype.getIconName = function () {
34219 var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;
34220 if (totalColumns > 0) {
34221 return this.pinned ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_PINNED : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragAndDropService"].ICON_MOVE;
34222 }
34223 return null;
34224 };
34225 /** Callback for when drag leaves */
34226 BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {
34227 // if we are taking columns out of the center, then we remove them from the report
34228 this.clearColumnsList();
34229 };
34230 BodyDropPivotTarget.prototype.clearColumnsList = function () {
34231 this.columnsToAggregate.length = 0;
34232 this.columnsToGroup.length = 0;
34233 this.columnsToPivot.length = 0;
34234 };
34235 /** Callback for when dragging */
34236 BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {
34237 };
34238 /** Callback for when drag stops */
34239 BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {
34240 if (this.columnsToAggregate.length > 0) {
34241 this.columnModel.addValueColumns(this.columnsToAggregate, "toolPanelDragAndDrop");
34242 }
34243 if (this.columnsToGroup.length > 0) {
34244 this.columnModel.addRowGroupColumns(this.columnsToGroup, "toolPanelDragAndDrop");
34245 }
34246 if (this.columnsToPivot.length > 0) {
34247 this.columnModel.addPivotColumns(this.columnsToPivot, "toolPanelDragAndDrop");
34248 }
34249 };
34250 __decorate([
34251 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
34252 ], BodyDropPivotTarget.prototype, "columnModel", void 0);
34253 __decorate([
34254 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptionsService')
34255 ], BodyDropPivotTarget.prototype, "gridOptionsService", void 0);
34256 return BodyDropPivotTarget;
34257}());
34258
34259
34260
34261/***/ }),
34262/* 149 */
34263/***/ (function(module, __webpack_exports__, __webpack_require__) {
34264
34265"use strict";
34266__webpack_require__.r(__webpack_exports__);
34267/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return BodyDropTarget; });
34268/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(100);
34269/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
34270/* harmony import */ var _moveColumnFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(150);
34271/* harmony import */ var _bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(148);
34272/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17);
34273/**
34274 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
34275 * @version v29.2.0
34276 * @link https://www.ag-grid.com/
34277 * @license MIT
34278 */
34279var __extends = (undefined && undefined.__extends) || (function () {
34280 var extendStatics = function (d, b) {
34281 extendStatics = Object.setPrototypeOf ||
34282 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
34283 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
34284 return extendStatics(d, b);
34285 };
34286 return function (d, b) {
34287 extendStatics(d, b);
34288 function __() { this.constructor = d; }
34289 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
34290 };
34291})();
34292var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34293 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34294 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34295 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;
34296 return c > 3 && r && Object.defineProperty(target, key, r), r;
34297};
34298
34299
34300
34301
34302
34303var BodyDropTarget = /** @class */ (function (_super) {
34304 __extends(BodyDropTarget, _super);
34305 function BodyDropTarget(pinned, eContainer) {
34306 var _this = _super.call(this) || this;
34307 _this.pinned = pinned;
34308 _this.eContainer = eContainer;
34309 return _this;
34310 }
34311 BodyDropTarget.prototype.postConstruct = function () {
34312 var _this = this;
34313 this.ctrlsService.whenReady(function (p) {
34314 switch (_this.pinned) {
34315 case 'left':
34316 _this.eSecondaryContainers = [
34317 [p.gridBodyCtrl.getBodyViewportElement(), p.leftRowContainerCtrl.getContainerElement()],
34318 [p.bottomLeftRowContainerCtrl.getContainerElement()],
34319 [p.topLeftRowContainerCtrl.getContainerElement()]
34320 ];
34321 break;
34322 case 'right':
34323 _this.eSecondaryContainers = [
34324 [p.gridBodyCtrl.getBodyViewportElement(), p.rightRowContainerCtrl.getContainerElement()],
34325 [p.bottomRightRowContainerCtrl.getContainerElement()],
34326 [p.topRightRowContainerCtrl.getContainerElement()]
34327 ];
34328 break;
34329 default:
34330 _this.eSecondaryContainers = [
34331 [p.gridBodyCtrl.getBodyViewportElement(), p.centerRowContainerCtrl.getViewportElement()],
34332 [p.bottomCenterRowContainerCtrl.getViewportElement()],
34333 [p.topCenterRowContainerCtrl.getViewportElement()]
34334 ];
34335 break;
34336 }
34337 });
34338 };
34339 BodyDropTarget.prototype.isInterestedIn = function (type) {
34340 return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].HeaderCell ||
34341 (type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].ToolPanel && this.gridOptionsService.is('allowDragFromColumnsToolPanel'));
34342 };
34343 BodyDropTarget.prototype.getSecondaryContainers = function () {
34344 return this.eSecondaryContainers;
34345 };
34346 BodyDropTarget.prototype.getContainer = function () {
34347 return this.eContainer;
34348 };
34349 BodyDropTarget.prototype.init = function () {
34350 this.moveColumnFeature = this.createManagedBean(new _moveColumnFeature__WEBPACK_IMPORTED_MODULE_2__["MoveColumnFeature"](this.pinned, this.eContainer));
34351 this.bodyDropPivotTarget = this.createManagedBean(new _bodyDropPivotTarget__WEBPACK_IMPORTED_MODULE_3__["BodyDropPivotTarget"](this.pinned));
34352 this.dragAndDropService.addDropTarget(this);
34353 };
34354 BodyDropTarget.prototype.getIconName = function () {
34355 return this.currentDropListener.getIconName();
34356 };
34357 // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel
34358 // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when
34359 // dropped into the grid's body.
34360 BodyDropTarget.prototype.isDropColumnInPivotMode = function (draggingEvent) {
34361 // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's
34362 // a standard column move, however if it came from the toolpanel, then we are introducing
34363 // dimensions or values to the grid
34364 return this.columnModel.isPivotMode() && draggingEvent.dragSource.type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_0__["DragSourceType"].ToolPanel;
34365 };
34366 BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {
34367 // we pick the drop listener depending on whether we are in pivot mode are not. if we are
34368 // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise
34369 // we change visibility state and position.
34370 this.currentDropListener = this.isDropColumnInPivotMode(draggingEvent) ? this.bodyDropPivotTarget : this.moveColumnFeature;
34371 this.currentDropListener.onDragEnter(draggingEvent);
34372 };
34373 BodyDropTarget.prototype.onDragLeave = function (params) {
34374 this.currentDropListener.onDragLeave(params);
34375 };
34376 BodyDropTarget.prototype.onDragging = function (params) {
34377 this.currentDropListener.onDragging(params);
34378 };
34379 BodyDropTarget.prototype.onDragStop = function (params) {
34380 this.currentDropListener.onDragStop(params);
34381 };
34382 __decorate([
34383 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
34384 ], BodyDropTarget.prototype, "dragAndDropService", void 0);
34385 __decorate([
34386 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
34387 ], BodyDropTarget.prototype, "columnModel", void 0);
34388 __decorate([
34389 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
34390 ], BodyDropTarget.prototype, "ctrlsService", void 0);
34391 __decorate([
34392 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34393 ], BodyDropTarget.prototype, "postConstruct", null);
34394 __decorate([
34395 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
34396 ], BodyDropTarget.prototype, "init", null);
34397 return BodyDropTarget;
34398}(_context_beanStub__WEBPACK_IMPORTED_MODULE_4__["BeanStub"]));
34399
34400
34401
34402/***/ }),
34403/* 150 */
34404/***/ (function(module, __webpack_exports__, __webpack_require__) {
34405
34406"use strict";
34407__webpack_require__.r(__webpack_exports__);
34408/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MoveColumnFeature", function() { return MoveColumnFeature; });
34409/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
34410/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(100);
34411/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
34412/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
34413/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39);
34414/**
34415 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
34416 * @version v29.2.0
34417 * @link https://www.ag-grid.com/
34418 * @license MIT
34419 */
34420var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
34421 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
34422 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
34423 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;
34424 return c > 3 && r && Object.defineProperty(target, key, r), r;
34425};
34426var __read = (undefined && undefined.__read) || function (o, n) {
34427 var m = typeof Symbol === "function" && o[Symbol.iterator];
34428 if (!m) return o;
34429 var i = m.call(o), r, ar = [], e;
34430 try {
34431 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34432 }
34433 catch (error) { e = { error: error }; }
34434 finally {
34435 try {
34436 if (r && !r.done && (m = i["return"])) m.call(i);
34437 }
34438 finally { if (e) throw e.error; }
34439 }
34440 return ar;
34441};
34442
34443
34444
34445
34446
34447var MoveColumnFeature = /** @class */ (function () {
34448 function MoveColumnFeature(pinned, eContainer) {
34449 this.needToMoveLeft = false;
34450 this.needToMoveRight = false;
34451 this.lastMovedInfo = null;
34452 this.pinned = pinned;
34453 this.eContainer = eContainer;
34454 this.centerContainer = !Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(pinned);
34455 }
34456 MoveColumnFeature.prototype.init = function () {
34457 var _this = this;
34458 this.ctrlsService.whenReady(function () {
34459 _this.gridBodyCon = _this.ctrlsService.getGridBodyCtrl();
34460 });
34461 };
34462 MoveColumnFeature.prototype.getIconName = function () {
34463 return this.pinned ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragAndDropService"].ICON_PINNED : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragAndDropService"].ICON_MOVE;
34464 };
34465 MoveColumnFeature.prototype.onDragEnter = function (draggingEvent) {
34466 // we do dummy drag, so make sure column appears in the right location when first placed
34467 var columns = draggingEvent.dragItem.columns;
34468 var dragCameFromToolPanel = draggingEvent.dragSource.type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragSourceType"].ToolPanel;
34469 if (dragCameFromToolPanel) {
34470 // the if statement doesn't work if drag leaves grid, then enters again
34471 this.setColumnsVisible(columns, true, "uiColumnDragged");
34472 }
34473 else {
34474 // restore previous state of visible columns upon re-entering. this means if the user drags
34475 // a group out, and then drags the group back in, only columns that were originally visible
34476 // will be visible again. otherwise a group with three columns (but only two visible) could
34477 // be dragged out, then when it's dragged in again, all three are visible. this stops that.
34478 var visibleState_1 = draggingEvent.dragItem.visibleState;
34479 var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });
34480 this.setColumnsVisible(visibleColumns, true, "uiColumnDragged");
34481 }
34482 this.setColumnsPinned(columns, this.pinned, "uiColumnDragged");
34483 this.onDragging(draggingEvent, true, true);
34484 };
34485 MoveColumnFeature.prototype.onDragLeave = function () {
34486 this.ensureIntervalCleared();
34487 this.lastMovedInfo = null;
34488 };
34489 MoveColumnFeature.prototype.setColumnsVisible = function (columns, visible, source) {
34490 if (source === void 0) { source = "api"; }
34491 if (columns) {
34492 var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });
34493 this.columnModel.setColumnsVisible(allowedCols, visible, source);
34494 }
34495 };
34496 MoveColumnFeature.prototype.setColumnsPinned = function (columns, pinned, source) {
34497 if (source === void 0) { source = "api"; }
34498 if (columns) {
34499 var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });
34500 this.columnModel.setColumnsPinned(allowedCols, pinned, source);
34501 }
34502 };
34503 MoveColumnFeature.prototype.onDragStop = function () {
34504 this.onDragging(this.lastDraggingEvent, false, true, true);
34505 this.ensureIntervalCleared();
34506 this.lastMovedInfo = null;
34507 };
34508 MoveColumnFeature.prototype.normaliseX = function (x) {
34509 // flip the coordinate if doing RTL
34510 if (this.gridOptionsService.is('enableRtl')) {
34511 var clientWidth = this.eContainer.clientWidth;
34512 x = clientWidth - x;
34513 }
34514 // adjust for scroll only if centre container (the pinned containers don't scroll)
34515 if (this.centerContainer) {
34516 x += this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();
34517 }
34518 return x;
34519 };
34520 MoveColumnFeature.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {
34521 if (this.centerContainer) {
34522 // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)
34523 // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen
34524 var firstVisiblePixel = this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();
34525 var lastVisiblePixel = firstVisiblePixel + this.ctrlsService.getCenterRowContainerCtrl().getCenterWidth();
34526 if (this.gridOptionsService.is('enableRtl')) {
34527 this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);
34528 this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);
34529 }
34530 else {
34531 this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);
34532 this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);
34533 }
34534 if (this.needToMoveLeft || this.needToMoveRight) {
34535 this.ensureIntervalStarted();
34536 }
34537 else {
34538 this.ensureIntervalCleared();
34539 }
34540 }
34541 };
34542 MoveColumnFeature.prototype.onDragging = function (draggingEvent, fromEnter, fakeEvent, finished) {
34543 var _this = this;
34544 var _a;
34545 if (draggingEvent === void 0) { draggingEvent = this.lastDraggingEvent; }
34546 if (fromEnter === void 0) { fromEnter = false; }
34547 if (fakeEvent === void 0) { fakeEvent = false; }
34548 if (finished === void 0) { finished = false; }
34549 if (finished) {
34550 if (this.lastMovedInfo) {
34551 var _b = this.lastMovedInfo, columns = _b.columns, toIndex = _b.toIndex;
34552 this.moveColumns(columns, toIndex, 'uiColumnMoved', true);
34553 }
34554 return;
34555 }
34556 this.lastDraggingEvent = draggingEvent;
34557 // if moving up or down (ie not left or right) then do nothing
34558 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(draggingEvent.hDirection)) {
34559 return;
34560 }
34561 var mouseX = this.normaliseX(draggingEvent.x);
34562 // if the user is dragging into the panel, ie coming from the side panel into the main grid,
34563 // we don't want to scroll the grid this time, it would appear like the table is jumping
34564 // each time a column is dragged in.
34565 if (!fromEnter) {
34566 this.checkCenterForScrolling(mouseX);
34567 }
34568 var hDirection = this.normaliseDirection(draggingEvent.hDirection);
34569 var dragSourceType = draggingEvent.dragSource.type;
34570 var allMovingColumns = ((_a = draggingEvent.dragSource.getDragItem().columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) {
34571 if (col.getColDef().lockPinned) {
34572 // if locked return true only if both col and container are same pin type.
34573 // double equals (==) here on purpose so that null==undefined is true (for not pinned options)
34574 return col.getPinned() == _this.pinned;
34575 }
34576 // if not pin locked, then always allowed to be in this container
34577 return true;
34578 })) || [];
34579 this.attemptMoveColumns({ dragSourceType: dragSourceType, allMovingColumns: allMovingColumns, hDirection: hDirection, mouseX: mouseX, fromEnter: fromEnter, fakeEvent: fakeEvent });
34580 };
34581 MoveColumnFeature.prototype.normaliseDirection = function (hDirection) {
34582 if (this.gridOptionsService.is('enableRtl')) {
34583 switch (hDirection) {
34584 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["HorizontalDirection"].Left: return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["HorizontalDirection"].Right;
34585 case _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["HorizontalDirection"].Right: return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["HorizontalDirection"].Left;
34586 default: console.error("AG Grid: Unknown direction " + hDirection);
34587 }
34588 }
34589 else {
34590 return hDirection;
34591 }
34592 };
34593 MoveColumnFeature.prototype.attemptMoveColumns = function (params) {
34594 var dragSourceType = params.dragSourceType, hDirection = params.hDirection, mouseX = params.mouseX, fromEnter = params.fromEnter, fakeEvent = params.fakeEvent;
34595 var draggingLeft = hDirection === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["HorizontalDirection"].Left;
34596 var draggingRight = hDirection === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["HorizontalDirection"].Right;
34597 var allMovingColumns = params.allMovingColumns;
34598 if (dragSourceType === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragSourceType"].HeaderCell) {
34599 // If the columns we're dragging are the only visible columns of their group, move the hidden ones too
34600 var newCols_1 = [];
34601 allMovingColumns.forEach(function (col) {
34602 var movingGroup = null;
34603 var parent = col.getParent();
34604 while (parent != null && parent.getDisplayedLeafColumns().length === 1) {
34605 movingGroup = parent;
34606 parent = parent.getParent();
34607 }
34608 if (movingGroup != null) {
34609 movingGroup.getLeafColumns().forEach(function (newCol) {
34610 if (!newCols_1.includes(newCol)) {
34611 newCols_1.push(newCol);
34612 }
34613 });
34614 }
34615 else if (!newCols_1.includes(col)) {
34616 newCols_1.push(col);
34617 }
34618 });
34619 allMovingColumns = newCols_1;
34620 }
34621 // it is important to sort the moving columns as they are in grid columns, as the list of moving columns
34622 // could themselves be part of 'married children' groups, which means we need to maintain the order within
34623 // the moving list.
34624 var allMovingColumnsOrdered = allMovingColumns.slice();
34625 this.columnModel.sortColumnsLikeGridColumns(allMovingColumnsOrdered);
34626 var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);
34627 // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move
34628 // (ie left or right) to the mouse direction. however
34629 var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);
34630 if (validMoves.length === 0) {
34631 return;
34632 }
34633 var firstValidMove = validMoves[0];
34634 // the two check below stop an error when the user grabs a group my a middle column, then
34635 // it is possible the mouse pointer is to the right of a column while been dragged left.
34636 // so we need to make sure that the mouse pointer is actually left of the left most column
34637 // if moving left, and right of the right most column if moving right
34638 // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from
34639 // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should
34640 // place the column to the RHS even if the mouse is moving left and the column is already on
34641 // the LHS. otherwise we stick to the rule described above.
34642 var constrainDirection = oldIndex !== null && !fromEnter;
34643 // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag
34644 if (dragSourceType == _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragSourceType"].HeaderCell) {
34645 constrainDirection = oldIndex !== null;
34646 }
34647 // if the event was faked by a change in column pin state, then the original location of the column
34648 // is not reliable for dictating where the column may now be placed.
34649 if (constrainDirection && !fakeEvent) {
34650 // only allow left drag if this column is moving left
34651 if (draggingLeft && firstValidMove >= oldIndex) {
34652 return;
34653 }
34654 // only allow right drag if this column is moving right
34655 if (draggingRight && firstValidMove <= oldIndex) {
34656 return;
34657 }
34658 }
34659 // From when we find a move that passes all the rules
34660 // Remember what that move would look like in terms of displayed cols
34661 // keep going with further moves until we find a different result in displayed output
34662 // In this way potentialMoves contains all potential moves over 'hidden' columns
34663 var displayedCols = this.columnModel.getAllDisplayedColumns();
34664 var potentialMoves = [];
34665 var targetOrder = null;
34666 for (var i = 0; i < validMoves.length; i++) {
34667 var move = validMoves[i];
34668 var order = this.columnModel.getProposedColumnOrder(allMovingColumnsOrdered, move);
34669 if (!this.columnModel.doesOrderPassRules(order)) {
34670 continue;
34671 }
34672 var displayedOrder = order.filter(function (col) { return displayedCols.includes(col); });
34673 if (targetOrder === null) {
34674 targetOrder = displayedOrder;
34675 }
34676 else if (!_utils__WEBPACK_IMPORTED_MODULE_4__["_"].areEqual(displayedOrder, targetOrder)) {
34677 break; // Stop looking for potential moves if the displayed result changes from the target
34678 }
34679 var fragCount = this.groupFragCount(order);
34680 potentialMoves.push({ move: move, fragCount: fragCount });
34681 }
34682 if (potentialMoves.length === 0) {
34683 return;
34684 }
34685 // The best move is the move with least group fragmentation
34686 potentialMoves.sort(function (a, b) { return a.fragCount - b.fragCount; });
34687 this.moveColumns(allMovingColumns, potentialMoves[0].move, 'uiColumnMoved', false);
34688 };
34689 // returns the index of the first column in the list ONLY if the cols are all beside
34690 // each other. if the cols are not beside each other, then returns null
34691 MoveColumnFeature.prototype.calculateOldIndex = function (movingCols) {
34692 var gridCols = this.columnModel.getAllGridColumns();
34693 var indexes = Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["sortNumerically"])(movingCols.map(function (col) { return gridCols.indexOf(col); }));
34694 var firstIndex = indexes[0];
34695 var lastIndex = Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(indexes);
34696 var spread = lastIndex - firstIndex;
34697 var gapsExist = spread !== indexes.length - 1;
34698 return gapsExist ? null : firstIndex;
34699 };
34700 MoveColumnFeature.prototype.moveColumns = function (columns, toIndex, source, finished) {
34701 this.columnModel.moveColumns(columns, toIndex, source, finished);
34702 this.lastMovedInfo = finished ? null : { columns: columns, toIndex: toIndex };
34703 };
34704 // A measure of how fragmented in terms of groups an order of columns is
34705 MoveColumnFeature.prototype.groupFragCount = function (columns) {
34706 function parents(col) {
34707 var result = [];
34708 var parent = col.getOriginalParent();
34709 while (parent != null) {
34710 result.push(parent);
34711 parent = parent.getOriginalParent();
34712 }
34713 return result;
34714 }
34715 var count = 0;
34716 var _loop_1 = function (i) {
34717 var _a;
34718 var a = parents(columns[i]);
34719 var b = parents(columns[i + 1]);
34720 // iterate over the longest one
34721 _a = __read(a.length > b.length ? [a, b] : [b, a], 2), a = _a[0], b = _a[1];
34722 a.forEach(function (parent) {
34723 if (b.indexOf(parent) === -1) {
34724 count++; // More fragmented if other column doesn't share the parent
34725 }
34726 });
34727 };
34728 for (var i = 0; i < columns.length - 1; i++) {
34729 _loop_1(i);
34730 }
34731 return count;
34732 };
34733 MoveColumnFeature.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {
34734 var isMoveBlocked = this.gridOptionsService.is('suppressMovableColumns') || movingCols.some(function (col) { return col.getColDef().suppressMovable; });
34735 if (isMoveBlocked) {
34736 return [];
34737 }
34738 // this is the list of cols on the screen, so it's these we use when comparing the x mouse position
34739 var allDisplayedCols = this.columnModel.getDisplayedColumns(this.pinned);
34740 // but this list is the list of all cols, when we move a col it's the index within this list that gets used,
34741 // so the result we return has to be and index location for this list
34742 var allGridCols = this.columnModel.getAllGridColumns();
34743 var movingDisplayedCols = allDisplayedCols.filter(function (col) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["includes"])(movingCols, col); });
34744 var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["includes"])(movingCols, col); });
34745 var otherGridCols = allGridCols.filter(function (col) { return !Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["includes"])(movingCols, col); });
34746 // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.
34747 // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving
34748 // col between b and c (so that it is under the mouse position).
34749 var displayIndex = 0;
34750 var availableWidth = mouseX;
34751 // if we are dragging right, then the columns will be to the left of the mouse, so we also want to
34752 // include the width of the moving columns
34753 if (draggingRight) {
34754 var widthOfMovingDisplayedCols_1 = 0;
34755 movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });
34756 availableWidth -= widthOfMovingDisplayedCols_1;
34757 }
34758 if (availableWidth > 0) {
34759 // now count how many of the displayed columns will fit to the left
34760 for (var i = 0; i < otherDisplayedCols.length; i++) {
34761 var col = otherDisplayedCols[i];
34762 availableWidth -= col.getActualWidth();
34763 if (availableWidth < 0) {
34764 break;
34765 }
34766 displayIndex++;
34767 }
34768 // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works
34769 if (draggingRight) {
34770 displayIndex++;
34771 }
34772 }
34773 // the display index is with respect to all the showing columns, however when we move, it's with
34774 // respect to all grid columns, so we need to translate from display index to grid index
34775 var firstValidMove;
34776 if (displayIndex > 0) {
34777 var leftColumn = otherDisplayedCols[displayIndex - 1];
34778 firstValidMove = otherGridCols.indexOf(leftColumn) + 1;
34779 }
34780 else {
34781 firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);
34782 if (firstValidMove === -1) {
34783 firstValidMove = 0;
34784 }
34785 }
34786 var validMoves = [firstValidMove];
34787 var numberComparator = function (a, b) { return a - b; };
34788 // add in other valid moves due to hidden columns and married children. for example, a particular
34789 // move might break a group that has married children (so move isn't valid), however there could
34790 // be hidden columns (not displayed) that we could jump over to make the move valid. because
34791 // they are hidden, user doesn't see any different, however it allows moves that would otherwise
34792 // not work. for example imagine a group with 9 columns and all columns are hidden except the
34793 // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will
34794 // be relative to the not-shown column, however we need to consider the move jumping over all the
34795 // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the
34796 // grid, there would be no way to put a column after it (as the grid would only consider beside the
34797 // visible column, which would fail valid move rules).
34798 if (draggingRight) {
34799 // if dragging right, then we add all the additional moves to the right. so in other words
34800 // if the next move is not valid, find the next move to the right that is valid.
34801 var pointer = firstValidMove + 1;
34802 var lastIndex = allGridCols.length - 1;
34803 while (pointer <= lastIndex) {
34804 validMoves.push(pointer);
34805 pointer++;
34806 }
34807 // adding columns here means the order is now messed up
34808 validMoves.sort(numberComparator);
34809 }
34810 else {
34811 // if dragging left we do the reverse of dragging right, we add in all the valid moves to the
34812 // left. however we also have to consider moves to the right for all hidden columns first.
34813 // (this logic is hard to reason with, it was worked out with trial and error,
34814 // more observation rather than science).
34815 // add moves to the right
34816 var pointer = firstValidMove;
34817 var lastIndex = allGridCols.length - 1;
34818 var displacedCol = allGridCols[pointer];
34819 while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {
34820 pointer++;
34821 validMoves.push(pointer);
34822 displacedCol = allGridCols[pointer];
34823 }
34824 // add moves to the left
34825 pointer = firstValidMove - 1;
34826 var firstDisplayIndex = 0;
34827 while (pointer >= firstDisplayIndex) {
34828 validMoves.push(pointer);
34829 pointer--;
34830 }
34831 // adding columns here means the order is now messed up
34832 validMoves.sort(numberComparator).reverse();
34833 }
34834 return validMoves;
34835 };
34836 // isHidden takes into account visible=false and group=closed, ie it is not displayed
34837 MoveColumnFeature.prototype.isColumnHidden = function (displayedColumns, col) {
34838 return displayedColumns.indexOf(col) < 0;
34839 };
34840 MoveColumnFeature.prototype.ensureIntervalStarted = function () {
34841 if (!this.movingIntervalId) {
34842 this.intervalCount = 0;
34843 this.failedMoveAttempts = 0;
34844 this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);
34845 if (this.needToMoveLeft) {
34846 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragAndDropService"].ICON_LEFT, true);
34847 }
34848 else {
34849 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragAndDropService"].ICON_RIGHT, true);
34850 }
34851 }
34852 };
34853 MoveColumnFeature.prototype.ensureIntervalCleared = function () {
34854 if (this.movingIntervalId) {
34855 window.clearInterval(this.movingIntervalId);
34856 this.movingIntervalId = null;
34857 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragAndDropService"].ICON_MOVE);
34858 }
34859 };
34860 MoveColumnFeature.prototype.moveInterval = function () {
34861 // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow
34862 // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.
34863 var pixelsToMove;
34864 this.intervalCount++;
34865 pixelsToMove = 10 + (this.intervalCount * 5);
34866 if (pixelsToMove > 100) {
34867 pixelsToMove = 100;
34868 }
34869 var pixelsMoved = null;
34870 var scrollFeature = this.gridBodyCon.getScrollFeature();
34871 if (this.needToMoveLeft) {
34872 pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);
34873 }
34874 else if (this.needToMoveRight) {
34875 pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);
34876 }
34877 if (pixelsMoved !== 0) {
34878 this.onDragging(this.lastDraggingEvent);
34879 this.failedMoveAttempts = 0;
34880 }
34881 else {
34882 // we count the failed move attempts. if we fail to move 7 times, then we pin the column.
34883 // this is how we achieve pining by dragging the column to the edge of the grid.
34884 this.failedMoveAttempts++;
34885 var columns = this.lastDraggingEvent.dragItem.columns;
34886 var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });
34887 if (columnsThatCanPin.length > 0) {
34888 this.dragAndDropService.setGhostIcon(_dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_1__["DragAndDropService"].ICON_PINNED);
34889 if (this.failedMoveAttempts > 7) {
34890 var pinType = this.needToMoveLeft ? 'left' : 'right';
34891 this.setColumnsPinned(columnsThatCanPin, pinType, "uiColumnDragged");
34892 this.dragAndDropService.nudge();
34893 }
34894 }
34895 }
34896 };
34897 __decorate([
34898 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
34899 ], MoveColumnFeature.prototype, "columnModel", void 0);
34900 __decorate([
34901 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
34902 ], MoveColumnFeature.prototype, "dragAndDropService", void 0);
34903 __decorate([
34904 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsService')
34905 ], MoveColumnFeature.prototype, "gridOptionsService", void 0);
34906 __decorate([
34907 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
34908 ], MoveColumnFeature.prototype, "ctrlsService", void 0);
34909 __decorate([
34910 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
34911 ], MoveColumnFeature.prototype, "init", null);
34912 return MoveColumnFeature;
34913}());
34914
34915
34916
34917/***/ }),
34918/* 151 */
34919/***/ (function(module, __webpack_exports__, __webpack_require__) {
34920
34921"use strict";
34922__webpack_require__.r(__webpack_exports__);
34923/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return CssClassApplier; });
34924/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
34925/**
34926 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
34927 * @version v29.2.0
34928 * @link https://www.ag-grid.com/
34929 * @license MIT
34930 */
34931var __read = (undefined && undefined.__read) || function (o, n) {
34932 var m = typeof Symbol === "function" && o[Symbol.iterator];
34933 if (!m) return o;
34934 var i = m.call(o), r, ar = [], e;
34935 try {
34936 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34937 }
34938 catch (error) { e = { error: error }; }
34939 finally {
34940 try {
34941 if (r && !r.done && (m = i["return"])) m.call(i);
34942 }
34943 finally { if (e) throw e.error; }
34944 }
34945 return ar;
34946};
34947var __spread = (undefined && undefined.__spread) || function () {
34948 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
34949 return ar;
34950};
34951
34952var CssClassApplier = /** @class */ (function () {
34953 function CssClassApplier() {
34954 }
34955 CssClassApplier.getHeaderClassesFromColDef = function (abstractColDef, gridOptionsService, column, columnGroup) {
34956 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(abstractColDef)) {
34957 return [];
34958 }
34959 return this.getColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, gridOptionsService, column, columnGroup);
34960 };
34961 CssClassApplier.getToolPanelClassesFromColDef = function (abstractColDef, gridOptionsService, column, columnGroup) {
34962 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(abstractColDef)) {
34963 return [];
34964 }
34965 return this.getColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, gridOptionsService, column, columnGroup);
34966 };
34967 CssClassApplier.getClassParams = function (abstractColDef, gridOptionsService, column, columnGroup) {
34968 return {
34969 // bad naming, as colDef here can be a group or a column,
34970 // however most people won't appreciate the difference,
34971 // so keeping it as colDef to avoid confusion.
34972 colDef: abstractColDef,
34973 column: column,
34974 columnGroup: columnGroup,
34975 api: gridOptionsService.api,
34976 columnApi: gridOptionsService.columnApi,
34977 context: gridOptionsService.context
34978 };
34979 };
34980 CssClassApplier.getColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, gridOptionsService, column, columnGroup) {
34981 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["missing"])(classesOrFunc)) {
34982 return [];
34983 }
34984 var classToUse;
34985 if (typeof classesOrFunc === 'function') {
34986 var params = this.getClassParams(abstractColDef, gridOptionsService, column, columnGroup);
34987 classToUse = classesOrFunc(params);
34988 }
34989 else {
34990 classToUse = classesOrFunc;
34991 }
34992 if (typeof classToUse === 'string') {
34993 return [classToUse];
34994 }
34995 if (Array.isArray(classToUse)) {
34996 return __spread(classToUse);
34997 }
34998 return [];
34999 };
35000 return CssClassApplier;
35001}());
35002
35003
35004
35005/***/ }),
35006/* 152 */
35007/***/ (function(module, __webpack_exports__, __webpack_require__) {
35008
35009"use strict";
35010__webpack_require__.r(__webpack_exports__);
35011/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowContainerComp", function() { return HeaderRowContainerComp; });
35012/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
35013/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
35014/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12);
35015/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38);
35016/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57);
35017/* harmony import */ var _row_headerRowComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(153);
35018/* harmony import */ var _headerRowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(156);
35019/**
35020 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
35021 * @version v29.2.0
35022 * @link https://www.ag-grid.com/
35023 * @license MIT
35024 */
35025var __extends = (undefined && undefined.__extends) || (function () {
35026 var extendStatics = function (d, b) {
35027 extendStatics = Object.setPrototypeOf ||
35028 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35029 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35030 return extendStatics(d, b);
35031 };
35032 return function (d, b) {
35033 extendStatics(d, b);
35034 function __() { this.constructor = d; }
35035 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35036 };
35037})();
35038var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
35039 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35040 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35041 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;
35042 return c > 3 && r && Object.defineProperty(target, key, r), r;
35043};
35044
35045
35046
35047
35048
35049
35050
35051var HeaderRowContainerComp = /** @class */ (function (_super) {
35052 __extends(HeaderRowContainerComp, _super);
35053 function HeaderRowContainerComp(pinned) {
35054 var _this = _super.call(this) || this;
35055 _this.headerRowComps = {};
35056 _this.rowCompsList = [];
35057 _this.pinned = pinned;
35058 return _this;
35059 }
35060 HeaderRowContainerComp.prototype.init = function () {
35061 var _this = this;
35062 this.selectAndSetTemplate();
35063 var compProxy = {
35064 setDisplayed: function (displayed) { return _this.setDisplayed(displayed); },
35065 setCtrls: function (ctrls) { return _this.setCtrls(ctrls); },
35066 // only gets called for center section
35067 setCenterWidth: function (width) { return _this.eCenterContainer.style.width = width; },
35068 setContainerTransform: function (transform) { return _this.eCenterContainer.style.transform = transform; },
35069 // only gets called for pinned sections
35070 setPinnedContainerWidth: function (width) {
35071 var eGui = _this.getGui();
35072 eGui.style.width = width;
35073 eGui.style.maxWidth = width;
35074 eGui.style.minWidth = width;
35075 }
35076 };
35077 var ctrl = this.createManagedBean(new _headerRowContainerCtrl__WEBPACK_IMPORTED_MODULE_6__["HeaderRowContainerCtrl"](this.pinned));
35078 ctrl.setComp(compProxy, this.getGui());
35079 };
35080 HeaderRowContainerComp.prototype.selectAndSetTemplate = function () {
35081 var pinnedLeft = this.pinned == 'left';
35082 var pinnedRight = this.pinned == 'right';
35083 var template = pinnedLeft ? HeaderRowContainerComp.PINNED_LEFT_TEMPLATE :
35084 pinnedRight ? HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE : HeaderRowContainerComp.CENTER_TEMPLATE;
35085 this.setTemplate(template);
35086 // for left and right, we add rows directly to the root element,
35087 // but for center container we add elements to the child container.
35088 this.eRowContainer = this.eCenterContainer ? this.eCenterContainer : this.getGui();
35089 };
35090 HeaderRowContainerComp.prototype.destroyRowComps = function () {
35091 this.setCtrls([]);
35092 };
35093 HeaderRowContainerComp.prototype.destroyRowComp = function (rowComp) {
35094 this.destroyBean(rowComp);
35095 this.eRowContainer.removeChild(rowComp.getGui());
35096 };
35097 HeaderRowContainerComp.prototype.setCtrls = function (ctrls) {
35098 var _this = this;
35099 var oldRowComps = this.headerRowComps;
35100 this.headerRowComps = {};
35101 this.rowCompsList = [];
35102 var prevGui;
35103 var appendEnsuringDomOrder = function (rowComp) {
35104 var eGui = rowComp.getGui();
35105 var notAlreadyIn = eGui.parentElement != _this.eRowContainer;
35106 if (notAlreadyIn) {
35107 _this.eRowContainer.appendChild(eGui);
35108 }
35109 if (prevGui) {
35110 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["ensureDomOrder"])(_this.eRowContainer, eGui, prevGui);
35111 }
35112 prevGui = eGui;
35113 };
35114 ctrls.forEach(function (ctrl) {
35115 var ctrlId = ctrl.getInstanceId();
35116 var existingComp = oldRowComps[ctrlId];
35117 delete oldRowComps[ctrlId];
35118 var rowComp = existingComp ? existingComp : _this.createBean(new _row_headerRowComp__WEBPACK_IMPORTED_MODULE_5__["HeaderRowComp"](ctrl));
35119 _this.headerRowComps[ctrlId] = rowComp;
35120 _this.rowCompsList.push(rowComp);
35121 appendEnsuringDomOrder(rowComp);
35122 });
35123 Object(_utils_object__WEBPACK_IMPORTED_MODULE_2__["getAllValuesInObject"])(oldRowComps).forEach(function (c) { return _this.destroyRowComp(c); });
35124 };
35125 HeaderRowContainerComp.PINNED_LEFT_TEMPLATE = "<div class=\"ag-pinned-left-header\" role=\"presentation\"></div>";
35126 HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE = "<div class=\"ag-pinned-right-header\" role=\"presentation\"></div>";
35127 HeaderRowContainerComp.CENTER_TEMPLATE = "<div class=\"ag-header-viewport\" role=\"presentation\">\n <div class=\"ag-header-container\" ref=\"eCenterContainer\" role=\"rowgroup\"></div>\n </div>";
35128 __decorate([
35129 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eCenterContainer')
35130 ], HeaderRowContainerComp.prototype, "eCenterContainer", void 0);
35131 __decorate([
35132 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
35133 ], HeaderRowContainerComp.prototype, "init", null);
35134 __decorate([
35135 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
35136 ], HeaderRowContainerComp.prototype, "destroyRowComps", null);
35137 return HeaderRowContainerComp;
35138}(_widgets_component__WEBPACK_IMPORTED_MODULE_3__["Component"]));
35139
35140
35141
35142/***/ }),
35143/* 153 */
35144/***/ (function(module, __webpack_exports__, __webpack_require__) {
35145
35146"use strict";
35147__webpack_require__.r(__webpack_exports__);
35148/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowType", function() { return HeaderRowType; });
35149/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return HeaderRowComp; });
35150/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
35151/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
35152/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
35153/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
35154/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38);
35155/* harmony import */ var _cells_column_headerCellComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(154);
35156/* harmony import */ var _cells_columnGroup_headerGroupCellComp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(155);
35157/* harmony import */ var _cells_floatingFilter_headerFilterCellComp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(114);
35158/**
35159 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
35160 * @version v29.2.0
35161 * @link https://www.ag-grid.com/
35162 * @license MIT
35163 */
35164var __extends = (undefined && undefined.__extends) || (function () {
35165 var extendStatics = function (d, b) {
35166 extendStatics = Object.setPrototypeOf ||
35167 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35168 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35169 return extendStatics(d, b);
35170 };
35171 return function (d, b) {
35172 extendStatics(d, b);
35173 function __() { this.constructor = d; }
35174 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35175 };
35176})();
35177var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
35178 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35179 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35180 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;
35181 return c > 3 && r && Object.defineProperty(target, key, r), r;
35182};
35183
35184
35185
35186
35187
35188
35189
35190
35191var HeaderRowType;
35192(function (HeaderRowType) {
35193 HeaderRowType["COLUMN_GROUP"] = "group";
35194 HeaderRowType["COLUMN"] = "column";
35195 HeaderRowType["FLOATING_FILTER"] = "filter";
35196})(HeaderRowType || (HeaderRowType = {}));
35197var HeaderRowComp = /** @class */ (function (_super) {
35198 __extends(HeaderRowComp, _super);
35199 function HeaderRowComp(ctrl) {
35200 var _this = _super.call(this) || this;
35201 _this.headerComps = {};
35202 var extraClass = ctrl.getType() == HeaderRowType.COLUMN_GROUP ? "ag-header-row-column-group" :
35203 ctrl.getType() == HeaderRowType.FLOATING_FILTER ? "ag-header-row-column-filter" : "ag-header-row-column";
35204 _this.setTemplate(/* html */ "<div class=\"ag-header-row " + extraClass + "\" role=\"row\"></div>");
35205 _this.ctrl = ctrl;
35206 return _this;
35207 }
35208 //noinspection JSUnusedLocalSymbols
35209 HeaderRowComp.prototype.init = function () {
35210 var _this = this;
35211 var compProxy = {
35212 setTransform: function (transform) { return _this.getGui().style.transform = transform; },
35213 setHeight: function (height) { return _this.getGui().style.height = height; },
35214 setTop: function (top) { return _this.getGui().style.top = top; },
35215 setHeaderCtrls: function (ctrls) { return _this.setHeaderCtrls(ctrls); },
35216 setWidth: function (width) { return _this.getGui().style.width = width; },
35217 setAriaRowIndex: function (rowIndex) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_1__["setAriaRowIndex"])(_this.getGui(), rowIndex); }
35218 };
35219 this.ctrl.setComp(compProxy);
35220 };
35221 HeaderRowComp.prototype.destroyHeaderCtrls = function () {
35222 this.setHeaderCtrls([]);
35223 };
35224 HeaderRowComp.prototype.setHeaderCtrls = function (ctrls) {
35225 var _this = this;
35226 if (!this.isAlive()) {
35227 return;
35228 }
35229 var oldComps = this.headerComps;
35230 this.headerComps = {};
35231 ctrls.forEach(function (ctrl) {
35232 var id = ctrl.getInstanceId();
35233 var comp = oldComps[id];
35234 delete oldComps[id];
35235 if (comp == null) {
35236 comp = _this.createHeaderComp(ctrl);
35237 _this.getGui().appendChild(comp.getGui());
35238 }
35239 _this.headerComps[id] = comp;
35240 });
35241 Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["iterateObject"])(oldComps, function (id, comp) {
35242 _this.getGui().removeChild(comp.getGui());
35243 _this.destroyBean(comp);
35244 });
35245 var isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');
35246 var isPrintLayout = this.gridOptionsService.isDomLayout('print');
35247 if (isEnsureDomOrder || isPrintLayout) {
35248 var comps = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getAllValuesInObject"])(this.headerComps);
35249 // ordering the columns by left position orders them in the order they appear on the screen
35250 comps.sort(function (a, b) {
35251 var leftA = a.getCtrl().getColumnGroupChild().getLeft();
35252 var leftB = b.getCtrl().getColumnGroupChild().getLeft();
35253 return leftA - leftB;
35254 });
35255 var elementsInOrder = comps.map(function (c) { return c.getGui(); });
35256 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDomChildOrder"])(this.getGui(), elementsInOrder);
35257 }
35258 };
35259 HeaderRowComp.prototype.createHeaderComp = function (headerCtrl) {
35260 var result;
35261 switch (this.ctrl.getType()) {
35262 case HeaderRowType.COLUMN_GROUP:
35263 result = new _cells_columnGroup_headerGroupCellComp__WEBPACK_IMPORTED_MODULE_6__["HeaderGroupCellComp"](headerCtrl);
35264 break;
35265 case HeaderRowType.FLOATING_FILTER:
35266 result = new _cells_floatingFilter_headerFilterCellComp__WEBPACK_IMPORTED_MODULE_7__["HeaderFilterCellComp"](headerCtrl);
35267 break;
35268 default:
35269 result = new _cells_column_headerCellComp__WEBPACK_IMPORTED_MODULE_5__["HeaderCellComp"](headerCtrl);
35270 break;
35271 }
35272 this.createBean(result);
35273 result.setParentComponent(this);
35274 return result;
35275 };
35276 __decorate([
35277 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
35278 ], HeaderRowComp.prototype, "init", null);
35279 __decorate([
35280 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
35281 ], HeaderRowComp.prototype, "destroyHeaderCtrls", null);
35282 return HeaderRowComp;
35283}(_widgets_component__WEBPACK_IMPORTED_MODULE_4__["Component"]));
35284
35285
35286
35287/***/ }),
35288/* 154 */
35289/***/ (function(module, __webpack_exports__, __webpack_require__) {
35290
35291"use strict";
35292__webpack_require__.r(__webpack_exports__);
35293/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderCellComp", function() { return HeaderCellComp; });
35294/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
35295/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(41);
35296/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57);
35297/* harmony import */ var _abstractCell_abstractHeaderCellComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(115);
35298/**
35299 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
35300 * @version v29.2.0
35301 * @link https://www.ag-grid.com/
35302 * @license MIT
35303 */
35304var __extends = (undefined && undefined.__extends) || (function () {
35305 var extendStatics = function (d, b) {
35306 extendStatics = Object.setPrototypeOf ||
35307 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35308 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35309 return extendStatics(d, b);
35310 };
35311 return function (d, b) {
35312 extendStatics(d, b);
35313 function __() { this.constructor = d; }
35314 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35315 };
35316})();
35317var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
35318 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35319 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35320 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;
35321 return c > 3 && r && Object.defineProperty(target, key, r), r;
35322};
35323
35324
35325
35326
35327var HeaderCellComp = /** @class */ (function (_super) {
35328 __extends(HeaderCellComp, _super);
35329 function HeaderCellComp(ctrl) {
35330 var _this = _super.call(this, HeaderCellComp.TEMPLATE, ctrl) || this;
35331 _this.headerCompVersion = 0;
35332 _this.column = ctrl.getColumnGroupChild();
35333 _this.pinned = ctrl.getPinned();
35334 return _this;
35335 }
35336 HeaderCellComp.prototype.postConstruct = function () {
35337 var _this = this;
35338 var eGui = this.getGui();
35339 var setAttribute = function (name, value, element) {
35340 var actualElement = element ? element : eGui;
35341 if (value != null && value != '') {
35342 actualElement.setAttribute(name, value);
35343 }
35344 else {
35345 actualElement.removeAttribute(name);
35346 }
35347 };
35348 var compProxy = {
35349 setWidth: function (width) { return eGui.style.width = width; },
35350 addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },
35351 setColId: function (id) { return setAttribute('col-id', id); },
35352 setTitle: function (title) { return setAttribute('title', title); },
35353 setAriaDescription: function (label) { return Object(_utils_aria__WEBPACK_IMPORTED_MODULE_1__["setAriaDescription"])(eGui, label); },
35354 setAriaSort: function (sort) { return sort ? Object(_utils_aria__WEBPACK_IMPORTED_MODULE_1__["setAriaSort"])(eGui, sort) : Object(_utils_aria__WEBPACK_IMPORTED_MODULE_1__["removeAriaSort"])(eGui); },
35355 setUserCompDetails: function (compDetails) { return _this.setUserCompDetails(compDetails); },
35356 getUserCompInstance: function () { return _this.headerComp; }
35357 };
35358 this.ctrl.setComp(compProxy, this.getGui(), this.eResize, this.eHeaderCompWrapper);
35359 var selectAllGui = this.ctrl.getSelectAllGui();
35360 this.eResize.insertAdjacentElement('afterend', selectAllGui);
35361 };
35362 HeaderCellComp.prototype.destroyHeaderComp = function () {
35363 if (this.headerComp) {
35364 this.eHeaderCompWrapper.removeChild(this.headerCompGui);
35365 this.headerComp = this.destroyBean(this.headerComp);
35366 this.headerCompGui = undefined;
35367 }
35368 };
35369 HeaderCellComp.prototype.setUserCompDetails = function (compDetails) {
35370 var _this = this;
35371 this.headerCompVersion++;
35372 var versionCopy = this.headerCompVersion;
35373 compDetails.newAgStackInstance().then(function (comp) { return _this.afterCompCreated(versionCopy, comp); });
35374 };
35375 HeaderCellComp.prototype.afterCompCreated = function (version, headerComp) {
35376 if (version != this.headerCompVersion || !this.isAlive()) {
35377 this.destroyBean(headerComp);
35378 return;
35379 }
35380 this.destroyHeaderComp();
35381 this.headerComp = headerComp;
35382 this.headerCompGui = headerComp.getGui();
35383 this.eHeaderCompWrapper.appendChild(this.headerCompGui);
35384 this.ctrl.setDragSource(this.getGui());
35385 };
35386 HeaderCellComp.TEMPLATE = "<div class=\"ag-header-cell\" role=\"columnheader\" tabindex=\"-1\">\n <div ref=\"eResize\" class=\"ag-header-cell-resize\" role=\"presentation\"></div>\n <div ref=\"eHeaderCompWrapper\" class=\"ag-header-cell-comp-wrapper\" role=\"presentation\"></div>\n </div>";
35387 __decorate([
35388 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eResize')
35389 ], HeaderCellComp.prototype, "eResize", void 0);
35390 __decorate([
35391 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eHeaderCompWrapper')
35392 ], HeaderCellComp.prototype, "eHeaderCompWrapper", void 0);
35393 __decorate([
35394 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
35395 ], HeaderCellComp.prototype, "postConstruct", null);
35396 __decorate([
35397 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
35398 ], HeaderCellComp.prototype, "destroyHeaderComp", null);
35399 return HeaderCellComp;
35400}(_abstractCell_abstractHeaderCellComp__WEBPACK_IMPORTED_MODULE_3__["AbstractHeaderCellComp"]));
35401
35402
35403
35404/***/ }),
35405/* 155 */
35406/***/ (function(module, __webpack_exports__, __webpack_require__) {
35407
35408"use strict";
35409__webpack_require__.r(__webpack_exports__);
35410/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupCellComp", function() { return HeaderGroupCellComp; });
35411/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
35412/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
35413/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57);
35414/* harmony import */ var _abstractCell_abstractHeaderCellComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(115);
35415/**
35416 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
35417 * @version v29.2.0
35418 * @link https://www.ag-grid.com/
35419 * @license MIT
35420 */
35421var __extends = (undefined && undefined.__extends) || (function () {
35422 var extendStatics = function (d, b) {
35423 extendStatics = Object.setPrototypeOf ||
35424 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35425 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35426 return extendStatics(d, b);
35427 };
35428 return function (d, b) {
35429 extendStatics(d, b);
35430 function __() { this.constructor = d; }
35431 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35432 };
35433})();
35434var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
35435 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35436 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35437 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;
35438 return c > 3 && r && Object.defineProperty(target, key, r), r;
35439};
35440
35441
35442
35443
35444var HeaderGroupCellComp = /** @class */ (function (_super) {
35445 __extends(HeaderGroupCellComp, _super);
35446 function HeaderGroupCellComp(ctrl) {
35447 return _super.call(this, HeaderGroupCellComp.TEMPLATE, ctrl) || this;
35448 }
35449 HeaderGroupCellComp.prototype.postConstruct = function () {
35450 var _this = this;
35451 var eGui = this.getGui();
35452 var setAttribute = function (key, value) {
35453 return value != undefined ? eGui.setAttribute(key, value) : eGui.removeAttribute(key);
35454 };
35455 var compProxy = {
35456 addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },
35457 setResizableDisplayed: function (displayed) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["setDisplayed"])(_this.eResize, displayed); },
35458 setWidth: function (width) { return eGui.style.width = width; },
35459 setColId: function (id) { return eGui.setAttribute("col-id", id); },
35460 setAriaExpanded: function (expanded) { return setAttribute('aria-expanded', expanded); },
35461 setTitle: function (title) { return setAttribute("title", title); },
35462 setUserCompDetails: function (details) { return _this.setUserCompDetails(details); }
35463 };
35464 this.ctrl.setComp(compProxy, eGui, this.eResize);
35465 };
35466 HeaderGroupCellComp.prototype.setUserCompDetails = function (details) {
35467 var _this = this;
35468 details.newAgStackInstance().then(function (comp) { return _this.afterHeaderCompCreated(comp); });
35469 };
35470 HeaderGroupCellComp.prototype.afterHeaderCompCreated = function (headerGroupComp) {
35471 var _this = this;
35472 var destroyFunc = function () { return _this.destroyBean(headerGroupComp); };
35473 if (!this.isAlive()) {
35474 destroyFunc();
35475 return;
35476 }
35477 this.getGui().appendChild(headerGroupComp.getGui());
35478 this.addDestroyFunc(destroyFunc);
35479 this.ctrl.setDragSource(headerGroupComp.getGui());
35480 };
35481 HeaderGroupCellComp.TEMPLATE = "<div class=\"ag-header-group-cell\" role=\"columnheader\" tabindex=\"-1\">\n <div ref=\"eResize\" class=\"ag-header-cell-resize\" role=\"presentation\"></div>\n </div>";
35482 __decorate([
35483 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
35484 ], HeaderGroupCellComp.prototype, "userComponentFactory", void 0);
35485 __decorate([
35486 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eResize')
35487 ], HeaderGroupCellComp.prototype, "eResize", void 0);
35488 __decorate([
35489 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
35490 ], HeaderGroupCellComp.prototype, "postConstruct", null);
35491 return HeaderGroupCellComp;
35492}(_abstractCell_abstractHeaderCellComp__WEBPACK_IMPORTED_MODULE_3__["AbstractHeaderCellComp"]));
35493
35494
35495
35496/***/ }),
35497/* 156 */
35498/***/ (function(module, __webpack_exports__, __webpack_require__) {
35499
35500"use strict";
35501__webpack_require__.r(__webpack_exports__);
35502/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowContainerCtrl", function() { return HeaderRowContainerCtrl; });
35503/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
35504/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
35505/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9);
35506/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
35507/* harmony import */ var _gridBodyComp_centerWidthFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(140);
35508/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(39);
35509/* harmony import */ var _columnDrag_bodyDropTarget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(149);
35510/* harmony import */ var _row_headerRowComp__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(153);
35511/* harmony import */ var _row_headerRowCtrl__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(157);
35512/**
35513 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
35514 * @version v29.2.0
35515 * @link https://www.ag-grid.com/
35516 * @license MIT
35517 */
35518var __extends = (undefined && undefined.__extends) || (function () {
35519 var extendStatics = function (d, b) {
35520 extendStatics = Object.setPrototypeOf ||
35521 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35522 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35523 return extendStatics(d, b);
35524 };
35525 return function (d, b) {
35526 extendStatics(d, b);
35527 function __() { this.constructor = d; }
35528 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35529 };
35530})();
35531var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
35532 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35533 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35534 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;
35535 return c > 3 && r && Object.defineProperty(target, key, r), r;
35536};
35537var __read = (undefined && undefined.__read) || function (o, n) {
35538 var m = typeof Symbol === "function" && o[Symbol.iterator];
35539 if (!m) return o;
35540 var i = m.call(o), r, ar = [], e;
35541 try {
35542 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
35543 }
35544 catch (error) { e = { error: error }; }
35545 finally {
35546 try {
35547 if (r && !r.done && (m = i["return"])) m.call(i);
35548 }
35549 finally { if (e) throw e.error; }
35550 }
35551 return ar;
35552};
35553var __spread = (undefined && undefined.__spread) || function () {
35554 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
35555 return ar;
35556};
35557
35558
35559
35560
35561
35562
35563
35564
35565
35566var HeaderRowContainerCtrl = /** @class */ (function (_super) {
35567 __extends(HeaderRowContainerCtrl, _super);
35568 function HeaderRowContainerCtrl(pinned) {
35569 var _this = _super.call(this) || this;
35570 _this.hidden = false;
35571 _this.groupsRowCtrls = [];
35572 _this.pinned = pinned;
35573 return _this;
35574 }
35575 HeaderRowContainerCtrl.prototype.setComp = function (comp, eGui) {
35576 this.comp = comp;
35577 this.eViewport = eGui;
35578 this.setupCenterWidth();
35579 this.setupPinnedWidth();
35580 this.setupDragAndDrop(this.eViewport);
35581 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));
35582 this.addManagedListener(this.eViewport, 'scroll', this.resetScrollLeft.bind(this));
35583 this.ctrlsService.registerHeaderContainer(this, this.pinned);
35584 if (this.columnModel.isReady()) {
35585 this.refresh();
35586 }
35587 };
35588 HeaderRowContainerCtrl.prototype.setupDragAndDrop = function (dropContainer) {
35589 var bodyDropTarget = new _columnDrag_bodyDropTarget__WEBPACK_IMPORTED_MODULE_6__["BodyDropTarget"](this.pinned, dropContainer);
35590 this.createManagedBean(bodyDropTarget);
35591 };
35592 HeaderRowContainerCtrl.prototype.refresh = function (keepColumns) {
35593 var _this = this;
35594 if (keepColumns === void 0) { keepColumns = false; }
35595 var sequence = new _utils__WEBPACK_IMPORTED_MODULE_5__["NumberSequence"]();
35596 var focusedHeaderPosition = this.focusService.getFocusHeaderToUseAfterRefresh();
35597 var refreshColumnGroups = function () {
35598 var groupRowCount = _this.columnModel.getHeaderRowCount() - 1;
35599 _this.groupsRowCtrls = _this.destroyBeans(_this.groupsRowCtrls);
35600 for (var i = 0; i < groupRowCount; i++) {
35601 var ctrl = _this.createBean(new _row_headerRowCtrl__WEBPACK_IMPORTED_MODULE_8__["HeaderRowCtrl"](sequence.next(), _this.pinned, _row_headerRowComp__WEBPACK_IMPORTED_MODULE_7__["HeaderRowType"].COLUMN_GROUP));
35602 _this.groupsRowCtrls.push(ctrl);
35603 }
35604 };
35605 var refreshColumns = function () {
35606 var rowIndex = sequence.next();
35607 var needNewInstance = !_this.hidden && (_this.columnsRowCtrl == null || !keepColumns || _this.columnsRowCtrl.getRowIndex() !== rowIndex);
35608 var shouldDestroyInstance = needNewInstance || _this.hidden;
35609 if (shouldDestroyInstance) {
35610 _this.columnsRowCtrl = _this.destroyBean(_this.columnsRowCtrl);
35611 }
35612 if (needNewInstance) {
35613 _this.columnsRowCtrl = _this.createBean(new _row_headerRowCtrl__WEBPACK_IMPORTED_MODULE_8__["HeaderRowCtrl"](rowIndex, _this.pinned, _row_headerRowComp__WEBPACK_IMPORTED_MODULE_7__["HeaderRowType"].COLUMN));
35614 }
35615 };
35616 var refreshFilters = function () {
35617 var includeFloatingFilter = _this.columnModel.hasFloatingFilters() && !_this.hidden;
35618 var destroyPreviousComp = function () {
35619 _this.filtersRowCtrl = _this.destroyBean(_this.filtersRowCtrl);
35620 };
35621 if (!includeFloatingFilter) {
35622 destroyPreviousComp();
35623 return;
35624 }
35625 var rowIndex = sequence.next();
35626 if (_this.filtersRowCtrl) {
35627 var rowIndexMismatch = _this.filtersRowCtrl.getRowIndex() !== rowIndex;
35628 if (!keepColumns || rowIndexMismatch) {
35629 destroyPreviousComp();
35630 }
35631 }
35632 if (!_this.filtersRowCtrl) {
35633 _this.filtersRowCtrl = _this.createBean(new _row_headerRowCtrl__WEBPACK_IMPORTED_MODULE_8__["HeaderRowCtrl"](rowIndex, _this.pinned, _row_headerRowComp__WEBPACK_IMPORTED_MODULE_7__["HeaderRowType"].FLOATING_FILTER));
35634 }
35635 };
35636 refreshColumnGroups();
35637 refreshColumns();
35638 refreshFilters();
35639 var allCtrls = this.getAllCtrls();
35640 this.comp.setCtrls(allCtrls);
35641 this.restoreFocusOnHeader(focusedHeaderPosition);
35642 };
35643 HeaderRowContainerCtrl.prototype.restoreFocusOnHeader = function (position) {
35644 if (position == null || position.column.getPinned() != this.pinned) {
35645 return;
35646 }
35647 this.focusService.focusHeaderPosition({ headerPosition: position });
35648 };
35649 HeaderRowContainerCtrl.prototype.getAllCtrls = function () {
35650 var res = __spread(this.groupsRowCtrls);
35651 if (this.columnsRowCtrl) {
35652 res.push(this.columnsRowCtrl);
35653 }
35654 if (this.filtersRowCtrl) {
35655 res.push(this.filtersRowCtrl);
35656 }
35657 return res;
35658 };
35659 // grid cols have changed - this also means the number of rows in the header can have
35660 // changed. so we remove all the old rows and insert new ones for a complete refresh
35661 HeaderRowContainerCtrl.prototype.onGridColumnsChanged = function () {
35662 this.refresh(true);
35663 };
35664 HeaderRowContainerCtrl.prototype.setupCenterWidth = function () {
35665 var _this = this;
35666 if (this.pinned != null) {
35667 return;
35668 }
35669 this.createManagedBean(new _gridBodyComp_centerWidthFeature__WEBPACK_IMPORTED_MODULE_4__["CenterWidthFeature"](function (width) { return _this.comp.setCenterWidth(width + "px"); }));
35670 };
35671 HeaderRowContainerCtrl.prototype.setHorizontalScroll = function (offset) {
35672 this.comp.setContainerTransform("translateX(" + offset + "px)");
35673 };
35674 HeaderRowContainerCtrl.prototype.resetScrollLeft = function () {
35675 this.eViewport.scrollLeft = 0;
35676 };
35677 HeaderRowContainerCtrl.prototype.setupPinnedWidth = function () {
35678 var _this = this;
35679 if (this.pinned == null) {
35680 return;
35681 }
35682 var pinningLeft = this.pinned === 'left';
35683 var pinningRight = this.pinned === 'right';
35684 this.hidden = true;
35685 var listener = function () {
35686 var width = pinningLeft ? _this.pinnedWidthService.getPinnedLeftWidth() : _this.pinnedWidthService.getPinnedRightWidth();
35687 if (width == null) {
35688 return;
35689 } // can happen at initialisation, width not yet set
35690 var hidden = (width == 0);
35691 var hiddenChanged = _this.hidden !== hidden;
35692 var isRtl = _this.gridOptionsService.is('enableRtl');
35693 var scrollbarWidth = _this.gridOptionsService.getScrollbarWidth();
35694 // if there is a scroll showing (and taking up space, so Windows, and not iOS)
35695 // in the body, then we add extra space to keep header aligned with the body,
35696 // as body width fits the cols and the scrollbar
35697 var addPaddingForScrollbar = _this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));
35698 var widthWithPadding = addPaddingForScrollbar ? width + scrollbarWidth : width;
35699 _this.comp.setPinnedContainerWidth(widthWithPadding + "px");
35700 _this.comp.setDisplayed(!hidden);
35701 if (hiddenChanged) {
35702 _this.hidden = hidden;
35703 _this.refresh();
35704 }
35705 };
35706 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);
35707 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);
35708 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, listener);
35709 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED, listener);
35710 };
35711 HeaderRowContainerCtrl.prototype.getHeaderCtrlForColumn = function (column) {
35712 if (column instanceof _entities_column__WEBPACK_IMPORTED_MODULE_2__["Column"]) {
35713 if (!this.columnsRowCtrl) {
35714 return;
35715 }
35716 return this.columnsRowCtrl.getHeaderCellCtrl(column);
35717 }
35718 if (this.groupsRowCtrls.length === 0) {
35719 return;
35720 }
35721 for (var i = 0; i < this.groupsRowCtrls.length; i++) {
35722 var ctrl = this.groupsRowCtrls[i].getHeaderCellCtrl(column);
35723 if (ctrl) {
35724 return ctrl;
35725 }
35726 }
35727 };
35728 HeaderRowContainerCtrl.prototype.getHtmlElementForColumnHeader = function (column) {
35729 /* tslint:enable */
35730 var cellCtrl = this.getHeaderCtrlForColumn(column);
35731 if (!cellCtrl) {
35732 return null;
35733 }
35734 return cellCtrl.getGui();
35735 };
35736 HeaderRowContainerCtrl.prototype.getRowType = function (rowIndex) {
35737 var allCtrls = this.getAllCtrls();
35738 var ctrl = allCtrls[rowIndex];
35739 return ctrl ? ctrl.getType() : undefined;
35740 };
35741 HeaderRowContainerCtrl.prototype.focusHeader = function (rowIndex, column, event) {
35742 var allCtrls = this.getAllCtrls();
35743 var ctrl = allCtrls[rowIndex];
35744 if (!ctrl) {
35745 return false;
35746 }
35747 return ctrl.focusHeader(column, event);
35748 };
35749 HeaderRowContainerCtrl.prototype.getRowCount = function () {
35750 return this.getAllCtrls().length;
35751 };
35752 HeaderRowContainerCtrl.prototype.destroy = function () {
35753 if (this.filtersRowCtrl) {
35754 this.filtersRowCtrl = this.destroyBean(this.filtersRowCtrl);
35755 }
35756 if (this.columnsRowCtrl) {
35757 this.columnsRowCtrl = this.destroyBean(this.columnsRowCtrl);
35758 }
35759 if (this.groupsRowCtrls && this.groupsRowCtrls.length) {
35760 this.groupsRowCtrls = this.destroyBeans(this.groupsRowCtrls);
35761 }
35762 _super.prototype.destroy.call(this);
35763 };
35764 __decorate([
35765 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
35766 ], HeaderRowContainerCtrl.prototype, "ctrlsService", void 0);
35767 __decorate([
35768 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('scrollVisibleService')
35769 ], HeaderRowContainerCtrl.prototype, "scrollVisibleService", void 0);
35770 __decorate([
35771 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('pinnedWidthService')
35772 ], HeaderRowContainerCtrl.prototype, "pinnedWidthService", void 0);
35773 __decorate([
35774 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
35775 ], HeaderRowContainerCtrl.prototype, "columnModel", void 0);
35776 __decorate([
35777 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusService')
35778 ], HeaderRowContainerCtrl.prototype, "focusService", void 0);
35779 return HeaderRowContainerCtrl;
35780}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
35781
35782
35783
35784/***/ }),
35785/* 157 */
35786/***/ (function(module, __webpack_exports__, __webpack_require__) {
35787
35788"use strict";
35789__webpack_require__.r(__webpack_exports__);
35790/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderRowCtrl", function() { return HeaderRowCtrl; });
35791/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
35792/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
35793/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
35794/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
35795/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12);
35796/* harmony import */ var _cells_floatingFilter_headerFilterCellCtrl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(158);
35797/* harmony import */ var _cells_column_headerCellCtrl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(162);
35798/* harmony import */ var _cells_columnGroup_headerGroupCellCtrl__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(165);
35799/* harmony import */ var _headerRowComp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(153);
35800/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(7);
35801/**
35802 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
35803 * @version v29.2.0
35804 * @link https://www.ag-grid.com/
35805 * @license MIT
35806 */
35807var __extends = (undefined && undefined.__extends) || (function () {
35808 var extendStatics = function (d, b) {
35809 extendStatics = Object.setPrototypeOf ||
35810 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
35811 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
35812 return extendStatics(d, b);
35813 };
35814 return function (d, b) {
35815 extendStatics(d, b);
35816 function __() { this.constructor = d; }
35817 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
35818 };
35819})();
35820var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
35821 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
35822 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
35823 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;
35824 return c > 3 && r && Object.defineProperty(target, key, r), r;
35825};
35826
35827
35828
35829
35830
35831
35832
35833
35834
35835
35836var instanceIdSequence = 0;
35837var HeaderRowCtrl = /** @class */ (function (_super) {
35838 __extends(HeaderRowCtrl, _super);
35839 function HeaderRowCtrl(rowIndex, pinned, type) {
35840 var _this = _super.call(this) || this;
35841 _this.instanceId = instanceIdSequence++;
35842 _this.headerCellCtrls = {};
35843 _this.rowIndex = rowIndex;
35844 _this.pinned = pinned;
35845 _this.type = type;
35846 return _this;
35847 }
35848 HeaderRowCtrl.prototype.getInstanceId = function () {
35849 return this.instanceId;
35850 };
35851 HeaderRowCtrl.prototype.setComp = function (comp) {
35852 this.comp = comp;
35853 this.onRowHeightChanged();
35854 this.onVirtualColumnsChanged();
35855 this.setWidth();
35856 this.addEventListeners();
35857 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["isBrowserSafari"])()) {
35858 // fix for a Safari rendering bug that caused the header to flicker above chart panels
35859 // as you move the mouse over the header
35860 this.comp.setTransform('translateZ(0)');
35861 }
35862 comp.setAriaRowIndex(this.rowIndex + 1);
35863 };
35864 HeaderRowCtrl.prototype.addEventListeners = function () {
35865 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));
35866 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
35867 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));
35868 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_HEADER_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));
35869 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_GRID_STYLES_CHANGED, this.onRowHeightChanged.bind(this));
35870 // when print layout changes, it changes what columns are in what section
35871 this.addManagedPropertyListener('domLayout', this.onDisplayedColumnsChanged.bind(this));
35872 this.addManagedPropertyListener('headerHeight', this.onRowHeightChanged.bind(this));
35873 this.addManagedPropertyListener('pivotHeaderHeight', this.onRowHeightChanged.bind(this));
35874 this.addManagedPropertyListener('groupHeaderHeight', this.onRowHeightChanged.bind(this));
35875 this.addManagedPropertyListener('pivotGroupHeaderHeight', this.onRowHeightChanged.bind(this));
35876 this.addManagedPropertyListener('floatingFiltersHeight', this.onRowHeightChanged.bind(this));
35877 };
35878 HeaderRowCtrl.prototype.getHeaderCellCtrl = function (column) {
35879 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_9__["values"])(this.headerCellCtrls).find(function (cellCtrl) { return cellCtrl.getColumnGroupChild() === column; });
35880 };
35881 HeaderRowCtrl.prototype.onDisplayedColumnsChanged = function () {
35882 this.onVirtualColumnsChanged();
35883 this.setWidth();
35884 this.onRowHeightChanged();
35885 };
35886 HeaderRowCtrl.prototype.getType = function () {
35887 return this.type;
35888 };
35889 HeaderRowCtrl.prototype.onColumnResized = function () {
35890 this.setWidth();
35891 };
35892 HeaderRowCtrl.prototype.setWidth = function () {
35893 var width = this.getWidthForRow();
35894 this.comp.setWidth(width + "px");
35895 };
35896 HeaderRowCtrl.prototype.getWidthForRow = function () {
35897 var printLayout = this.gridOptionsService.isDomLayout('print');
35898 if (printLayout) {
35899 var pinned = this.pinned != null;
35900 if (pinned) {
35901 return 0;
35902 }
35903 return this.columnModel.getContainerWidth('right')
35904 + this.columnModel.getContainerWidth('left')
35905 + this.columnModel.getContainerWidth(null);
35906 }
35907 // if not printing, just return the width as normal
35908 return this.columnModel.getContainerWidth(this.pinned);
35909 };
35910 HeaderRowCtrl.prototype.onRowHeightChanged = function () {
35911 var headerRowCount = this.columnModel.getHeaderRowCount();
35912 var sizes = [];
35913 var numberOfFloating = 0;
35914 if (this.columnModel.hasFloatingFilters()) {
35915 headerRowCount++;
35916 numberOfFloating = 1;
35917 }
35918 var groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();
35919 var headerHeight = this.columnModel.getColumnHeaderRowHeight();
35920 var numberOfNonGroups = 1 + numberOfFloating;
35921 var numberOfGroups = headerRowCount - numberOfNonGroups;
35922 for (var i = 0; i < numberOfGroups; i++) {
35923 sizes.push(groupHeight);
35924 }
35925 sizes.push(headerHeight);
35926 for (var i = 0; i < numberOfFloating; i++) {
35927 sizes.push(this.columnModel.getFloatingFiltersHeight());
35928 }
35929 var topOffset = 0;
35930 for (var i = 0; i < this.rowIndex; i++) {
35931 topOffset += sizes[i];
35932 }
35933 var thisRowHeight = sizes[this.rowIndex] + 'px';
35934 this.comp.setTop(topOffset + 'px');
35935 this.comp.setHeight(thisRowHeight);
35936 };
35937 HeaderRowCtrl.prototype.getPinned = function () {
35938 return this.pinned;
35939 };
35940 HeaderRowCtrl.prototype.getRowIndex = function () {
35941 return this.rowIndex;
35942 };
35943 HeaderRowCtrl.prototype.onVirtualColumnsChanged = function () {
35944 var _this = this;
35945 var oldCtrls = this.headerCellCtrls;
35946 this.headerCellCtrls = {};
35947 var columns = this.getColumnsInViewport();
35948 columns.forEach(function (child) {
35949 // skip groups that have no displayed children. this can happen when the group is broken,
35950 // and this section happens to have nothing to display for the open / closed state.
35951 // (a broken group is one that is split, ie columns in the group have a non-group column
35952 // in between them)
35953 if (child.isEmptyGroup()) {
35954 return;
35955 }
35956 var idOfChild = child.getUniqueId();
35957 // if we already have this cell rendered, do nothing
35958 var headerCtrl = oldCtrls[idOfChild];
35959 delete oldCtrls[idOfChild];
35960 // it's possible there is a new Column with the same ID, but it's for a different Column.
35961 // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,
35962 // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are
35963 // about to replace it in the this.headerComps map.
35964 var forOldColumn = headerCtrl && headerCtrl.getColumnGroupChild() != child;
35965 if (forOldColumn) {
35966 _this.destroyBean(headerCtrl);
35967 headerCtrl = undefined;
35968 }
35969 if (headerCtrl == null) {
35970 switch (_this.type) {
35971 case _headerRowComp__WEBPACK_IMPORTED_MODULE_8__["HeaderRowType"].FLOATING_FILTER:
35972 headerCtrl = _this.createBean(new _cells_floatingFilter_headerFilterCellCtrl__WEBPACK_IMPORTED_MODULE_5__["HeaderFilterCellCtrl"](child, _this));
35973 break;
35974 case _headerRowComp__WEBPACK_IMPORTED_MODULE_8__["HeaderRowType"].COLUMN_GROUP:
35975 headerCtrl = _this.createBean(new _cells_columnGroup_headerGroupCellCtrl__WEBPACK_IMPORTED_MODULE_7__["HeaderGroupCellCtrl"](child, _this));
35976 break;
35977 default:
35978 headerCtrl = _this.createBean(new _cells_column_headerCellCtrl__WEBPACK_IMPORTED_MODULE_6__["HeaderCellCtrl"](child, _this));
35979 break;
35980 }
35981 }
35982 _this.headerCellCtrls[idOfChild] = headerCtrl;
35983 });
35984 // we want to keep columns that are focused, otherwise keyboard navigation breaks
35985 var isFocusedAndDisplayed = function (ctrl) {
35986 var isFocused = _this.focusService.isHeaderWrapperFocused(ctrl);
35987 if (!isFocused) {
35988 return false;
35989 }
35990 var isDisplayed = _this.columnModel.isDisplayed(ctrl.getColumnGroupChild());
35991 return isDisplayed;
35992 };
35993 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(oldCtrls, function (id, oldCtrl) {
35994 var keepCtrl = isFocusedAndDisplayed(oldCtrl);
35995 if (keepCtrl) {
35996 _this.headerCellCtrls[id] = oldCtrl;
35997 }
35998 else {
35999 _this.destroyBean(oldCtrl);
36000 }
36001 });
36002 var ctrlsToDisplay = Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["getAllValuesInObject"])(this.headerCellCtrls);
36003 this.comp.setHeaderCtrls(ctrlsToDisplay);
36004 };
36005 HeaderRowCtrl.prototype.getColumnsInViewport = function () {
36006 var printLayout = this.gridOptionsService.isDomLayout('print');
36007 return printLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();
36008 };
36009 HeaderRowCtrl.prototype.getColumnsInViewportPrintLayout = function () {
36010 var _this = this;
36011 // for print layout, we add all columns into the center
36012 if (this.pinned != null) {
36013 return [];
36014 }
36015 var viewportColumns = [];
36016 var actualDepth = this.getActualDepth();
36017 ['left', null, 'right'].forEach(function (pinned) {
36018 var items = _this.columnModel.getVirtualHeaderGroupRow(pinned, actualDepth);
36019 viewportColumns = viewportColumns.concat(items);
36020 });
36021 return viewportColumns;
36022 };
36023 HeaderRowCtrl.prototype.getActualDepth = function () {
36024 return this.type == _headerRowComp__WEBPACK_IMPORTED_MODULE_8__["HeaderRowType"].FLOATING_FILTER ? this.rowIndex - 1 : this.rowIndex;
36025 };
36026 HeaderRowCtrl.prototype.getColumnsInViewportNormalLayout = function () {
36027 // when in normal layout, we add the columns for that container only
36028 return this.columnModel.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());
36029 };
36030 HeaderRowCtrl.prototype.focusHeader = function (column, event) {
36031 var allCtrls = Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["getAllValuesInObject"])(this.headerCellCtrls);
36032 var ctrl = allCtrls.find(function (ctrl) { return ctrl.getColumnGroupChild() == column; });
36033 if (!ctrl) {
36034 return false;
36035 }
36036 ctrl.focus(event);
36037 return true;
36038 };
36039 HeaderRowCtrl.prototype.destroy = function () {
36040 var _this = this;
36041 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(this.headerCellCtrls, function (key, ctrl) {
36042 _this.destroyBean(ctrl);
36043 });
36044 this.headerCellCtrls = {};
36045 _super.prototype.destroy.call(this);
36046 };
36047 __decorate([
36048 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
36049 ], HeaderRowCtrl.prototype, "columnModel", void 0);
36050 __decorate([
36051 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusService')
36052 ], HeaderRowCtrl.prototype, "focusService", void 0);
36053 return HeaderRowCtrl;
36054}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
36055
36056
36057
36058/***/ }),
36059/* 158 */
36060/***/ (function(module, __webpack_exports__, __webpack_require__) {
36061
36062"use strict";
36063__webpack_require__.r(__webpack_exports__);
36064/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderFilterCellCtrl", function() { return HeaderFilterCellCtrl; });
36065/* harmony import */ var _abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(159);
36066/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48);
36067/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
36068/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
36069/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25);
36070/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(160);
36071/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45);
36072/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(46);
36073/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(64);
36074/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(161);
36075/**
36076 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
36077 * @version v29.2.0
36078 * @link https://www.ag-grid.com/
36079 * @license MIT
36080 */
36081var __extends = (undefined && undefined.__extends) || (function () {
36082 var extendStatics = function (d, b) {
36083 extendStatics = Object.setPrototypeOf ||
36084 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36085 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
36086 return extendStatics(d, b);
36087 };
36088 return function (d, b) {
36089 extendStatics(d, b);
36090 function __() { this.constructor = d; }
36091 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36092 };
36093})();
36094var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36095 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36096 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36097 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;
36098 return c > 3 && r && Object.defineProperty(target, key, r), r;
36099};
36100
36101
36102
36103
36104
36105
36106
36107
36108
36109
36110var HeaderFilterCellCtrl = /** @class */ (function (_super) {
36111 __extends(HeaderFilterCellCtrl, _super);
36112 function HeaderFilterCellCtrl(column, parentRowCtrl) {
36113 var _this = _super.call(this, column, parentRowCtrl) || this;
36114 _this.column = column;
36115 return _this;
36116 }
36117 HeaderFilterCellCtrl.prototype.setComp = function (comp, eGui, eButtonShowMainFilter, eFloatingFilterBody) {
36118 _super.prototype.setGui.call(this, eGui);
36119 this.comp = comp;
36120 this.eButtonShowMainFilter = eButtonShowMainFilter;
36121 this.eFloatingFilterBody = eFloatingFilterBody;
36122 var colDef = this.column.getColDef();
36123 var filterExists = !!colDef.filter || !!colDef.filterFramework;
36124 var floatingFilterExists = !!colDef.floatingFilter;
36125 this.active = filterExists && floatingFilterExists;
36126 this.setupWidth();
36127 this.setupLeft();
36128 this.setupHover();
36129 this.setupFocus();
36130 this.setupUserComp();
36131 this.setupSyncWithFilter();
36132 this.setupUi();
36133 this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));
36134 if (this.active) {
36135 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_FILTER_CHANGED, this.updateFilterButton.bind(this));
36136 }
36137 };
36138 HeaderFilterCellCtrl.prototype.setupUi = function () {
36139 this.comp.setButtonWrapperDisplayed(!this.suppressFilterButton && this.active);
36140 if (!this.active) {
36141 return;
36142 }
36143 this.comp.addOrRemoveBodyCssClass('ag-floating-filter-full-body', this.suppressFilterButton);
36144 this.comp.addOrRemoveBodyCssClass('ag-floating-filter-body', !this.suppressFilterButton);
36145 var eMenuIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_7__["createIconNoSpan"])('filter', this.gridOptionsService, this.column);
36146 if (eMenuIcon) {
36147 this.eButtonShowMainFilter.appendChild(eMenuIcon);
36148 }
36149 };
36150 HeaderFilterCellCtrl.prototype.setupFocus = function () {
36151 this.createManagedBean(new _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_8__["ManagedFocusFeature"](this.eGui, {
36152 shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),
36153 onTabKeyDown: this.onTabKeyDown.bind(this),
36154 handleKeyDown: this.handleKeyDown.bind(this),
36155 onFocusIn: this.onFocusIn.bind(this)
36156 }));
36157 };
36158 HeaderFilterCellCtrl.prototype.onTabKeyDown = function (e) {
36159 var eDocument = this.gridOptionsService.getDocument();
36160 var activeEl = eDocument.activeElement;
36161 var wrapperHasFocus = activeEl === this.eGui;
36162 if (wrapperHasFocus) {
36163 return;
36164 }
36165 var nextFocusableEl = this.focusService.findNextFocusableElement(this.eGui, null, e.shiftKey);
36166 if (nextFocusableEl) {
36167 this.beans.headerNavigationService.scrollToColumn(this.column);
36168 e.preventDefault();
36169 nextFocusableEl.focus();
36170 return;
36171 }
36172 var nextFocusableColumn = this.findNextColumnWithFloatingFilter(e.shiftKey);
36173 if (!nextFocusableColumn) {
36174 return;
36175 }
36176 if (this.focusService.focusHeaderPosition({
36177 headerPosition: {
36178 headerRowIndex: this.getParentRowCtrl().getRowIndex(),
36179 column: nextFocusableColumn
36180 },
36181 event: e
36182 })) {
36183 e.preventDefault();
36184 }
36185 };
36186 HeaderFilterCellCtrl.prototype.findNextColumnWithFloatingFilter = function (backwards) {
36187 var columModel = this.beans.columnModel;
36188 var nextCol = this.column;
36189 do {
36190 nextCol = backwards
36191 ? columModel.getDisplayedColBefore(nextCol)
36192 : columModel.getDisplayedColAfter(nextCol);
36193 if (!nextCol) {
36194 break;
36195 }
36196 } while (!nextCol.getColDef().filter || !nextCol.getColDef().floatingFilter);
36197 return nextCol;
36198 };
36199 HeaderFilterCellCtrl.prototype.handleKeyDown = function (e) {
36200 _super.prototype.handleKeyDown.call(this, e);
36201 var wrapperHasFocus = this.getWrapperHasFocus();
36202 switch (e.key) {
36203 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].UP:
36204 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].DOWN:
36205 if (!wrapperHasFocus) {
36206 e.preventDefault();
36207 }
36208 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].LEFT:
36209 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].RIGHT:
36210 if (wrapperHasFocus) {
36211 return;
36212 }
36213 e.stopPropagation();
36214 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].ENTER:
36215 if (wrapperHasFocus) {
36216 if (this.focusService.focusInto(this.eGui)) {
36217 e.preventDefault();
36218 }
36219 }
36220 break;
36221 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].ESCAPE:
36222 if (!wrapperHasFocus) {
36223 this.eGui.focus();
36224 }
36225 }
36226 };
36227 HeaderFilterCellCtrl.prototype.onFocusIn = function (e) {
36228 var isRelatedWithin = this.eGui.contains(e.relatedTarget);
36229 // when the focus is already within the component,
36230 // we default to the browser's behavior
36231 if (isRelatedWithin) {
36232 return;
36233 }
36234 var notFromHeaderWrapper = !!e.relatedTarget && !e.relatedTarget.classList.contains('ag-floating-filter');
36235 var fromWithinHeader = !!e.relatedTarget && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["isElementChildOfClass"])(e.relatedTarget, 'ag-floating-filter');
36236 if (notFromHeaderWrapper && fromWithinHeader && e.target === this.eGui) {
36237 var lastFocusEvent = this.lastFocusEvent;
36238 var fromTab = !!(lastFocusEvent && lastFocusEvent.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].TAB);
36239 if (lastFocusEvent && fromTab) {
36240 var shouldFocusLast = lastFocusEvent.shiftKey;
36241 this.focusService.focusInto(this.eGui, shouldFocusLast);
36242 }
36243 }
36244 var rowIndex = this.getRowIndex();
36245 this.beans.focusService.setFocusedHeader(rowIndex, this.column);
36246 };
36247 HeaderFilterCellCtrl.prototype.setupHover = function () {
36248 var _this = this;
36249 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_9__["HoverFeature"]([this.column], this.eGui));
36250 var listener = function () {
36251 if (!_this.gridOptionsService.is('columnHoverHighlight')) {
36252 return;
36253 }
36254 var hovered = _this.columnHoverService.isHovered(_this.column);
36255 _this.comp.addOrRemoveCssClass('ag-column-hover', hovered);
36256 };
36257 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_HOVER_CHANGED, listener);
36258 listener();
36259 };
36260 HeaderFilterCellCtrl.prototype.setupLeft = function () {
36261 var setLeftFeature = new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_5__["SetLeftFeature"](this.column, this.eGui, this.beans);
36262 this.createManagedBean(setLeftFeature);
36263 };
36264 HeaderFilterCellCtrl.prototype.setupUserComp = function () {
36265 var _this = this;
36266 if (!this.active) {
36267 return;
36268 }
36269 var colDef = this.column.getColDef();
36270 // this is unusual - we need a params value OUTSIDE the component the params are for.
36271 // the params are for the floating filter component, but this property is actually for the wrapper.
36272 this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;
36273 var compDetails = this.filterManager.getFloatingFilterCompDetails(this.column, function () { return _this.showParentFilter(); });
36274 if (compDetails) {
36275 this.comp.setCompDetails(compDetails);
36276 }
36277 };
36278 HeaderFilterCellCtrl.prototype.showParentFilter = function () {
36279 var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;
36280 this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'floatingFilter', 'filterMenuTab', ['filterMenuTab']);
36281 };
36282 HeaderFilterCellCtrl.prototype.setupSyncWithFilter = function () {
36283 var _this = this;
36284 if (!this.active) {
36285 return;
36286 }
36287 var syncWithFilter = function (filterChangedEvent) {
36288 var compPromise = _this.comp.getFloatingFilterComp();
36289 if (!compPromise) {
36290 return;
36291 }
36292 var parentModel = _this.filterManager.getCurrentFloatingFilterParentModel(_this.column);
36293 compPromise.then(function (comp) {
36294 if (comp) {
36295 comp.onParentModelChanged(parentModel, filterChangedEvent);
36296 }
36297 });
36298 };
36299 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_FILTER_CHANGED, syncWithFilter);
36300 if (this.filterManager.isFilterActive(this.column)) {
36301 syncWithFilter(null);
36302 }
36303 };
36304 HeaderFilterCellCtrl.prototype.setupWidth = function () {
36305 var _this = this;
36306 var listener = function () {
36307 var width = _this.column.getActualWidth() + "px";
36308 _this.comp.setWidth(width);
36309 };
36310 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_WIDTH_CHANGED, listener);
36311 listener();
36312 };
36313 HeaderFilterCellCtrl.prototype.updateFilterButton = function () {
36314 if (!this.suppressFilterButton && this.comp) {
36315 this.comp.setButtonWrapperDisplayed(this.filterManager.isFilterAllowed(this.column));
36316 }
36317 };
36318 __decorate([
36319 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('filterManager')
36320 ], HeaderFilterCellCtrl.prototype, "filterManager", void 0);
36321 __decorate([
36322 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnHoverService')
36323 ], HeaderFilterCellCtrl.prototype, "columnHoverService", void 0);
36324 __decorate([
36325 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('menuFactory')
36326 ], HeaderFilterCellCtrl.prototype, "menuFactory", void 0);
36327 return HeaderFilterCellCtrl;
36328}(_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_0__["AbstractHeaderCellCtrl"]));
36329
36330
36331
36332/***/ }),
36333/* 159 */
36334/***/ (function(module, __webpack_exports__, __webpack_require__) {
36335
36336"use strict";
36337__webpack_require__.r(__webpack_exports__);
36338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractHeaderCellCtrl", function() { return AbstractHeaderCellCtrl; });
36339/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
36340/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
36341/* harmony import */ var _utils_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47);
36342/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);
36343/**
36344 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
36345 * @version v29.2.0
36346 * @link https://www.ag-grid.com/
36347 * @license MIT
36348 */
36349var __extends = (undefined && undefined.__extends) || (function () {
36350 var extendStatics = function (d, b) {
36351 extendStatics = Object.setPrototypeOf ||
36352 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36353 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
36354 return extendStatics(d, b);
36355 };
36356 return function (d, b) {
36357 extendStatics(d, b);
36358 function __() { this.constructor = d; }
36359 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36360 };
36361})();
36362var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36363 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36364 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36365 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;
36366 return c > 3 && r && Object.defineProperty(target, key, r), r;
36367};
36368
36369
36370
36371
36372var instanceIdSequence = 0;
36373var AbstractHeaderCellCtrl = /** @class */ (function (_super) {
36374 __extends(AbstractHeaderCellCtrl, _super);
36375 function AbstractHeaderCellCtrl(columnGroupChild, parentRowCtrl) {
36376 var _this = _super.call(this) || this;
36377 _this.lastFocusEvent = null;
36378 _this.columnGroupChild = columnGroupChild;
36379 _this.parentRowCtrl = parentRowCtrl;
36380 // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'
36381 _this.instanceId = columnGroupChild.getUniqueId() + '-' + instanceIdSequence++;
36382 return _this;
36383 }
36384 AbstractHeaderCellCtrl.prototype.shouldStopEventPropagation = function (e) {
36385 var _a = this.focusService.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;
36386 return Object(_utils_keyboard__WEBPACK_IMPORTED_MODULE_2__["isUserSuppressingHeaderKeyboardEvent"])(this.gridOptionsService, e, headerRowIndex, column);
36387 };
36388 AbstractHeaderCellCtrl.prototype.getWrapperHasFocus = function () {
36389 var eDocument = this.gridOptionsService.getDocument();
36390 var activeEl = eDocument.activeElement;
36391 return activeEl === this.eGui;
36392 };
36393 AbstractHeaderCellCtrl.prototype.setGui = function (eGui) {
36394 this.eGui = eGui;
36395 this.addDomData();
36396 };
36397 AbstractHeaderCellCtrl.prototype.handleKeyDown = function (e) {
36398 var wrapperHasFocus = this.getWrapperHasFocus();
36399 switch (e.key) {
36400 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].PAGE_DOWN:
36401 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].PAGE_UP:
36402 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].PAGE_HOME:
36403 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].PAGE_END:
36404 if (wrapperHasFocus) {
36405 e.preventDefault();
36406 }
36407 }
36408 };
36409 AbstractHeaderCellCtrl.prototype.addDomData = function () {
36410 var _this = this;
36411 var key = AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL;
36412 this.gridOptionsService.setDomData(this.eGui, key, this);
36413 this.addDestroyFunc(function () { return _this.gridOptionsService.setDomData(_this.eGui, key, null); });
36414 };
36415 AbstractHeaderCellCtrl.prototype.getGui = function () {
36416 return this.eGui;
36417 };
36418 AbstractHeaderCellCtrl.prototype.focus = function (event) {
36419 if (!this.eGui) {
36420 return false;
36421 }
36422 this.lastFocusEvent = event || null;
36423 this.eGui.focus();
36424 return true;
36425 };
36426 AbstractHeaderCellCtrl.prototype.getRowIndex = function () {
36427 return this.parentRowCtrl.getRowIndex();
36428 };
36429 AbstractHeaderCellCtrl.prototype.getParentRowCtrl = function () {
36430 return this.parentRowCtrl;
36431 };
36432 AbstractHeaderCellCtrl.prototype.getPinned = function () {
36433 return this.parentRowCtrl.getPinned();
36434 };
36435 AbstractHeaderCellCtrl.prototype.getInstanceId = function () {
36436 return this.instanceId;
36437 };
36438 AbstractHeaderCellCtrl.prototype.getColumnGroupChild = function () {
36439 return this.columnGroupChild;
36440 };
36441 AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL = 'headerCtrl';
36442 __decorate([
36443 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusService')
36444 ], AbstractHeaderCellCtrl.prototype, "focusService", void 0);
36445 __decorate([
36446 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('beans')
36447 ], AbstractHeaderCellCtrl.prototype, "beans", void 0);
36448 __decorate([
36449 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('userComponentFactory')
36450 ], AbstractHeaderCellCtrl.prototype, "userComponentFactory", void 0);
36451 return AbstractHeaderCellCtrl;
36452}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
36453
36454
36455
36456/***/ }),
36457/* 160 */
36458/***/ (function(module, __webpack_exports__, __webpack_require__) {
36459
36460"use strict";
36461__webpack_require__.r(__webpack_exports__);
36462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return SetLeftFeature; });
36463/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
36464/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
36465/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
36466/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41);
36467/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
36468/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
36469/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(26);
36470/**
36471 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
36472 * @version v29.2.0
36473 * @link https://www.ag-grid.com/
36474 * @license MIT
36475 */
36476var __extends = (undefined && undefined.__extends) || (function () {
36477 var extendStatics = function (d, b) {
36478 extendStatics = Object.setPrototypeOf ||
36479 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36480 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
36481 return extendStatics(d, b);
36482 };
36483 return function (d, b) {
36484 extendStatics(d, b);
36485 function __() { this.constructor = d; }
36486 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36487 };
36488})();
36489var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36490 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36491 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36492 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;
36493 return c > 3 && r && Object.defineProperty(target, key, r), r;
36494};
36495
36496
36497
36498
36499
36500
36501
36502var SetLeftFeature = /** @class */ (function (_super) {
36503 __extends(SetLeftFeature, _super);
36504 function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {
36505 var _this = _super.call(this) || this;
36506 _this.columnOrGroup = columnOrGroup;
36507 _this.eCell = eCell;
36508 _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;
36509 _this.colsSpanning = colsSpanning;
36510 _this.beans = beans;
36511 return _this;
36512 }
36513 SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {
36514 this.colsSpanning = colsSpanning;
36515 this.onLeftChanged();
36516 };
36517 SetLeftFeature.prototype.getColumnOrGroup = function () {
36518 if (this.beans.gridOptionsService.is('enableRtl') && this.colsSpanning) {
36519 return Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(this.colsSpanning);
36520 }
36521 return this.columnOrGroup;
36522 };
36523 SetLeftFeature.prototype.postConstruct = function () {
36524 this.addManagedListener(this.columnOrGroup, _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"].EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));
36525 this.setLeftFirstTime();
36526 // when in print layout, the left position is also dependent on the width of the pinned sections.
36527 // so additionally update left if any column width changes.
36528 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));
36529 // setting left has a dependency on print layout
36530 this.addManagedPropertyListener('domLayout', this.onLeftChanged.bind(this));
36531 };
36532 SetLeftFeature.prototype.setLeftFirstTime = function () {
36533 var suppressMoveAnimation = this.beans.gridOptionsService.is('suppressColumnMoveAnimation');
36534 var oldLeftExists = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.columnOrGroup.getOldLeft());
36535 var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;
36536 if (animateColumnMove) {
36537 this.animateInLeft();
36538 }
36539 else {
36540 this.onLeftChanged();
36541 }
36542 };
36543 SetLeftFeature.prototype.animateInLeft = function () {
36544 var _this = this;
36545 var colOrGroup = this.getColumnOrGroup();
36546 var left = colOrGroup.getLeft();
36547 var oldLeft = colOrGroup.getOldLeft();
36548 var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);
36549 var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);
36550 this.setLeft(oldActualLeft);
36551 // we must keep track of the left we want to set to, as this would otherwise lead to a race
36552 // condition, if the user changed the left value many times in one VM turn, then we want to make
36553 // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left
36554 // position. eg if user changes column position twice, then setLeft() below executes twice in next
36555 // VM turn, but only one (the correct one) should get applied.
36556 this.actualLeft = actualLeft;
36557 this.beans.columnAnimationService.executeNextVMTurn(function () {
36558 // test this left value is the latest one to be applied, and if not, do nothing
36559 if (_this.actualLeft === actualLeft) {
36560 _this.setLeft(actualLeft);
36561 }
36562 });
36563 };
36564 SetLeftFeature.prototype.onLeftChanged = function () {
36565 var colOrGroup = this.getColumnOrGroup();
36566 var left = colOrGroup.getLeft();
36567 this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);
36568 this.setLeft(this.actualLeft);
36569 };
36570 SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {
36571 var printLayout = this.beans.gridOptionsService.isDomLayout('print');
36572 if (!printLayout) {
36573 return leftPosition;
36574 }
36575 if (colOrGroup.getPinned() === 'left') {
36576 return leftPosition;
36577 }
36578 var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();
36579 if (colOrGroup.getPinned() === 'right') {
36580 var bodyWidth = this.beans.columnModel.getBodyContainerWidth();
36581 return leftWidth + bodyWidth + leftPosition;
36582 }
36583 // is in body
36584 return leftWidth + leftPosition;
36585 };
36586 SetLeftFeature.prototype.setLeft = function (value) {
36587 // if the value is null, then that means the column is no longer
36588 // displayed. there is logic in the rendering to fade these columns
36589 // out, so we don't try and change their left positions.
36590 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(value)) {
36591 this.eCell.style.left = value + "px";
36592 }
36593 var indexColumn;
36594 if (this.columnOrGroup instanceof _entities_column__WEBPACK_IMPORTED_MODULE_0__["Column"]) {
36595 indexColumn = this.columnOrGroup;
36596 }
36597 else {
36598 var columnGroup = this.columnOrGroup;
36599 var children = columnGroup.getLeafColumns();
36600 if (!children.length) {
36601 return;
36602 }
36603 if (children.length > 1) {
36604 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaColSpan"])(this.ariaEl, children.length);
36605 }
36606 indexColumn = children[0];
36607 }
36608 var index = this.beans.columnModel.getAriaColumnIndex(indexColumn);
36609 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaColIndex"])(this.ariaEl, index);
36610 };
36611 __decorate([
36612 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
36613 ], SetLeftFeature.prototype, "postConstruct", null);
36614 return SetLeftFeature;
36615}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
36616
36617
36618
36619/***/ }),
36620/* 161 */
36621/***/ (function(module, __webpack_exports__, __webpack_require__) {
36622
36623"use strict";
36624__webpack_require__.r(__webpack_exports__);
36625/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HoverFeature", function() { return HoverFeature; });
36626/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
36627/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
36628/**
36629 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
36630 * @version v29.2.0
36631 * @link https://www.ag-grid.com/
36632 * @license MIT
36633 */
36634var __extends = (undefined && undefined.__extends) || (function () {
36635 var extendStatics = function (d, b) {
36636 extendStatics = Object.setPrototypeOf ||
36637 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36638 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
36639 return extendStatics(d, b);
36640 };
36641 return function (d, b) {
36642 extendStatics(d, b);
36643 function __() { this.constructor = d; }
36644 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36645 };
36646})();
36647var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36648 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36649 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36650 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;
36651 return c > 3 && r && Object.defineProperty(target, key, r), r;
36652};
36653
36654
36655var HoverFeature = /** @class */ (function (_super) {
36656 __extends(HoverFeature, _super);
36657 function HoverFeature(columns, element) {
36658 var _this = _super.call(this) || this;
36659 _this.columns = columns;
36660 _this.element = element;
36661 return _this;
36662 }
36663 HoverFeature.prototype.postConstruct = function () {
36664 if (this.gridOptionsService.is('columnHoverHighlight')) {
36665 this.addMouseHoverListeners();
36666 }
36667 };
36668 HoverFeature.prototype.addMouseHoverListeners = function () {
36669 this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));
36670 this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));
36671 };
36672 HoverFeature.prototype.onMouseOut = function () {
36673 this.columnHoverService.clearMouseOver();
36674 };
36675 HoverFeature.prototype.onMouseOver = function () {
36676 this.columnHoverService.setMouseOver(this.columns);
36677 };
36678 __decorate([
36679 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnHoverService')
36680 ], HoverFeature.prototype, "columnHoverService", void 0);
36681 __decorate([
36682 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
36683 ], HoverFeature.prototype, "postConstruct", null);
36684 return HoverFeature;
36685}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
36686
36687
36688
36689/***/ }),
36690/* 162 */
36691/***/ (function(module, __webpack_exports__, __webpack_require__) {
36692
36693"use strict";
36694__webpack_require__.r(__webpack_exports__);
36695/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderCellCtrl", function() { return HeaderCellCtrl; });
36696/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
36697/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
36698/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(100);
36699/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
36700/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26);
36701/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(160);
36702/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41);
36703/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64);
36704/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(130);
36705/* harmony import */ var _abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(159);
36706/* harmony import */ var _cssClassApplier__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(151);
36707/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(161);
36708/* harmony import */ var _resizeFeature__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(163);
36709/* harmony import */ var _selectAllFeature__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(164);
36710/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(45);
36711/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(13);
36712/**
36713 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
36714 * @version v29.2.0
36715 * @link https://www.ag-grid.com/
36716 * @license MIT
36717 */
36718var __extends = (undefined && undefined.__extends) || (function () {
36719 var extendStatics = function (d, b) {
36720 extendStatics = Object.setPrototypeOf ||
36721 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
36722 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
36723 return extendStatics(d, b);
36724 };
36725 return function (d, b) {
36726 extendStatics(d, b);
36727 function __() { this.constructor = d; }
36728 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
36729 };
36730})();
36731var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36732 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36733 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36734 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;
36735 return c > 3 && r && Object.defineProperty(target, key, r), r;
36736};
36737
36738
36739
36740
36741
36742
36743
36744
36745
36746
36747
36748
36749
36750
36751
36752
36753var HeaderCellCtrl = /** @class */ (function (_super) {
36754 __extends(HeaderCellCtrl, _super);
36755 function HeaderCellCtrl(column, parentRowCtrl) {
36756 var _this = _super.call(this, column, parentRowCtrl) || this;
36757 _this.refreshFunctions = [];
36758 _this.userHeaderClasses = new Set();
36759 _this.ariaDescriptionProperties = new Map();
36760 _this.column = column;
36761 return _this;
36762 }
36763 HeaderCellCtrl.prototype.setComp = function (comp, eGui, eResize, eHeaderCompWrapper) {
36764 var _this = this;
36765 _super.prototype.setGui.call(this, eGui);
36766 this.comp = comp;
36767 this.updateState();
36768 this.setupWidth();
36769 this.setupMovingCss();
36770 this.setupMenuClass();
36771 this.setupSortableClass();
36772 this.setupWrapTextClass();
36773 this.refreshSpanHeaderHeight();
36774 this.setupAutoHeight(eHeaderCompWrapper);
36775 this.addColumnHoverListener();
36776 this.setupFilterCss();
36777 this.setupColId();
36778 this.setupClassesFromColDef();
36779 this.setupTooltip();
36780 this.addActiveHeaderMouseListeners();
36781 this.setupSelectAll();
36782 this.setupUserComp();
36783 this.refreshAria();
36784 this.createManagedBean(new _resizeFeature__WEBPACK_IMPORTED_MODULE_12__["ResizeFeature"](this.getPinned(), this.column, eResize, comp, this));
36785 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_11__["HoverFeature"]([this.column], eGui));
36786 this.createManagedBean(new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_5__["SetLeftFeature"](this.column, eGui, this.beans));
36787 this.createManagedBean(new _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_7__["ManagedFocusFeature"](eGui, {
36788 shouldStopEventPropagation: function (e) { return _this.shouldStopEventPropagation(e); },
36789 onTabKeyDown: function () { return null; },
36790 handleKeyDown: this.handleKeyDown.bind(this),
36791 onFocusIn: this.onFocusIn.bind(this),
36792 onFocusOut: this.onFocusOut.bind(this)
36793 }));
36794 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));
36795 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));
36796 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));
36797 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));
36798 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));
36799 };
36800 HeaderCellCtrl.prototype.setupUserComp = function () {
36801 var compDetails = this.lookupUserCompDetails();
36802 this.setCompDetails(compDetails);
36803 };
36804 HeaderCellCtrl.prototype.setCompDetails = function (compDetails) {
36805 this.userCompDetails = compDetails;
36806 this.comp.setUserCompDetails(compDetails);
36807 };
36808 HeaderCellCtrl.prototype.lookupUserCompDetails = function () {
36809 var params = this.createParams();
36810 var colDef = this.column.getColDef();
36811 return this.userComponentFactory.getHeaderCompDetails(colDef, params);
36812 };
36813 HeaderCellCtrl.prototype.createParams = function () {
36814 var _this = this;
36815 var colDef = this.column.getColDef();
36816 var params = {
36817 column: this.column,
36818 displayName: this.displayName,
36819 enableSorting: colDef.sortable,
36820 enableMenu: this.menuEnabled,
36821 showColumnMenu: function (source) {
36822 _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);
36823 },
36824 progressSort: function (multiSort) {
36825 _this.sortController.progressSort(_this.column, !!multiSort, "uiColumnSorted");
36826 },
36827 setSort: function (sort, multiSort) {
36828 _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, "uiColumnSorted");
36829 },
36830 api: this.gridApi,
36831 columnApi: this.columnApi,
36832 context: this.gridOptionsService.context,
36833 eGridHeader: this.getGui()
36834 };
36835 return params;
36836 };
36837 HeaderCellCtrl.prototype.setupSelectAll = function () {
36838 this.selectAllFeature = this.createManagedBean(new _selectAllFeature__WEBPACK_IMPORTED_MODULE_13__["SelectAllFeature"](this.column));
36839 this.selectAllFeature.setComp(this);
36840 };
36841 HeaderCellCtrl.prototype.getSelectAllGui = function () {
36842 return this.selectAllFeature.getCheckboxGui();
36843 };
36844 HeaderCellCtrl.prototype.handleKeyDown = function (e) {
36845 _super.prototype.handleKeyDown.call(this, e);
36846 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].SPACE) {
36847 this.selectAllFeature.onSpaceKeyPressed(e);
36848 }
36849 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].ENTER) {
36850 this.onEnterKeyPressed(e);
36851 }
36852 };
36853 HeaderCellCtrl.prototype.onEnterKeyPressed = function (e) {
36854 /// THIS IS BAD - we are assuming the header is not a user provided comp
36855 var headerComp = this.comp.getUserCompInstance();
36856 if (!headerComp) {
36857 return;
36858 }
36859 if (e.ctrlKey || e.metaKey) {
36860 if (this.menuEnabled && headerComp.showMenu) {
36861 e.preventDefault();
36862 headerComp.showMenu();
36863 }
36864 }
36865 else if (this.sortable) {
36866 var multiSort = e.shiftKey;
36867 this.sortController.progressSort(this.column, multiSort, "uiColumnSorted");
36868 }
36869 };
36870 HeaderCellCtrl.prototype.isMenuEnabled = function () {
36871 return this.menuEnabled;
36872 };
36873 HeaderCellCtrl.prototype.onFocusIn = function (e) {
36874 if (!this.getGui().contains(e.relatedTarget)) {
36875 var rowIndex = this.getRowIndex();
36876 this.focusService.setFocusedHeader(rowIndex, this.column);
36877 }
36878 this.setActiveHeader(true);
36879 };
36880 HeaderCellCtrl.prototype.onFocusOut = function (e) {
36881 if (this.getGui().contains(e.relatedTarget)) {
36882 return;
36883 }
36884 this.setActiveHeader(false);
36885 };
36886 HeaderCellCtrl.prototype.setupTooltip = function () {
36887 var _this = this;
36888 var tooltipCtrl = {
36889 getColumn: function () { return _this.column; },
36890 getColDef: function () { return _this.column.getColDef(); },
36891 getGui: function () { return _this.eGui; },
36892 getLocation: function () { return 'header'; },
36893 getTooltipValue: function () {
36894 var res = _this.column.getColDef().headerTooltip;
36895 return res;
36896 },
36897 };
36898 var tooltipFeature = this.createManagedBean(new _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__["TooltipFeature"](tooltipCtrl, this.beans));
36899 tooltipFeature.setComp(this.comp);
36900 this.refreshFunctions.push(function () { return tooltipFeature.refreshToolTip(); });
36901 };
36902 HeaderCellCtrl.prototype.setupClassesFromColDef = function () {
36903 var _this = this;
36904 var refreshHeaderClasses = function () {
36905 var colDef = _this.column.getColDef();
36906 var classes = _cssClassApplier__WEBPACK_IMPORTED_MODULE_10__["CssClassApplier"].getHeaderClassesFromColDef(colDef, _this.gridOptionsService, _this.column, null);
36907 var oldClasses = _this.userHeaderClasses;
36908 _this.userHeaderClasses = new Set(classes);
36909 classes.forEach(function (c) {
36910 if (oldClasses.has(c)) {
36911 // class already added, no need to apply it, but remove from old set
36912 oldClasses.delete(c);
36913 }
36914 else {
36915 // class new since last time, so apply it
36916 _this.comp.addOrRemoveCssClass(c, true);
36917 }
36918 });
36919 // now old set only has classes that were applied last time, but not this time, so remove them
36920 oldClasses.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, false); });
36921 };
36922 this.refreshFunctions.push(refreshHeaderClasses);
36923 refreshHeaderClasses();
36924 };
36925 HeaderCellCtrl.prototype.setDragSource = function (eSource) {
36926 var _this = this;
36927 this.dragSourceElement = eSource;
36928 this.removeDragSource();
36929 if (!eSource) {
36930 return;
36931 }
36932 if (!this.draggable) {
36933 return;
36934 }
36935 var hideColumnOnExit = !this.gridOptionsService.is('suppressDragLeaveHidesColumns');
36936 this.moveDragSource = {
36937 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].HeaderCell,
36938 eElement: eSource,
36939 defaultIconName: hideColumnOnExit ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_HIDE : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_NOT_ALLOWED,
36940 getDragItem: function () { return _this.createDragItem(); },
36941 dragItemName: this.displayName,
36942 onDragStarted: function () { return _this.column.setMoving(true, "uiColumnMoved"); },
36943 onDragStopped: function () { return _this.column.setMoving(false, "uiColumnMoved"); },
36944 onGridEnter: function (dragItem) {
36945 var _a;
36946 if (hideColumnOnExit) {
36947 var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];
36948 _this.columnModel.setColumnsVisible(unlockedColumns, true, "uiColumnMoved");
36949 }
36950 },
36951 onGridExit: function (dragItem) {
36952 var _a;
36953 if (hideColumnOnExit) {
36954 var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];
36955 _this.columnModel.setColumnsVisible(unlockedColumns, false, "uiColumnMoved");
36956 }
36957 },
36958 };
36959 this.dragAndDropService.addDragSource(this.moveDragSource, true);
36960 };
36961 HeaderCellCtrl.prototype.createDragItem = function () {
36962 var visibleState = {};
36963 visibleState[this.column.getId()] = this.column.isVisible();
36964 return {
36965 columns: [this.column],
36966 visibleState: visibleState
36967 };
36968 };
36969 HeaderCellCtrl.prototype.removeDragSource = function () {
36970 if (this.moveDragSource) {
36971 this.dragAndDropService.removeDragSource(this.moveDragSource);
36972 this.moveDragSource = undefined;
36973 }
36974 };
36975 HeaderCellCtrl.prototype.onColDefChanged = function () {
36976 this.refresh();
36977 };
36978 HeaderCellCtrl.prototype.updateState = function () {
36979 var colDef = this.column.getColDef();
36980 this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;
36981 this.sortable = colDef.sortable;
36982 this.displayName = this.calculateDisplayName();
36983 this.draggable = this.workOutDraggable();
36984 };
36985 HeaderCellCtrl.prototype.addRefreshFunction = function (func) {
36986 this.refreshFunctions.push(func);
36987 };
36988 HeaderCellCtrl.prototype.refresh = function () {
36989 this.updateState();
36990 this.refreshHeaderComp();
36991 this.refreshAria();
36992 this.refreshFunctions.forEach(function (f) { return f(); });
36993 };
36994 HeaderCellCtrl.prototype.refreshHeaderComp = function () {
36995 var newCompDetails = this.lookupUserCompDetails();
36996 var compInstance = this.comp.getUserCompInstance();
36997 // only try refresh if old comp exists adn it is the correct type
36998 var attemptRefresh = compInstance != null && this.userCompDetails.componentClass == newCompDetails.componentClass;
36999 var headerCompRefreshed = attemptRefresh ? this.attemptHeaderCompRefresh(newCompDetails.params) : false;
37000 if (headerCompRefreshed) {
37001 // we do this as a refresh happens after colDefs change, and it's possible the column has had it's
37002 // draggable property toggled. no need to call this if not refreshing, as setDragSource is done
37003 // as part of appendHeaderComp
37004 this.setDragSource(this.dragSourceElement);
37005 }
37006 else {
37007 this.setCompDetails(newCompDetails);
37008 }
37009 };
37010 HeaderCellCtrl.prototype.attemptHeaderCompRefresh = function (params) {
37011 var headerComp = this.comp.getUserCompInstance();
37012 if (!headerComp) {
37013 return false;
37014 }
37015 // if no refresh method, then we want to replace the headerComp
37016 if (!headerComp.refresh) {
37017 return false;
37018 }
37019 var res = headerComp.refresh(params);
37020 return res;
37021 };
37022 HeaderCellCtrl.prototype.calculateDisplayName = function () {
37023 return this.columnModel.getDisplayNameForColumn(this.column, 'header', true);
37024 };
37025 HeaderCellCtrl.prototype.checkDisplayName = function () {
37026 // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)
37027 if (this.displayName !== this.calculateDisplayName()) {
37028 this.refresh();
37029 }
37030 };
37031 HeaderCellCtrl.prototype.workOutDraggable = function () {
37032 var colDef = this.column.getColDef();
37033 var isSuppressMovableColumns = this.gridOptionsService.is('suppressMovableColumns');
37034 var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;
37035 // we should still be allowed drag the column, even if it can't be moved, if the column
37036 // can be dragged to a rowGroup or pivot drop zone
37037 return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;
37038 };
37039 HeaderCellCtrl.prototype.onColumnRowGroupChanged = function () {
37040 this.checkDisplayName();
37041 };
37042 HeaderCellCtrl.prototype.onColumnPivotChanged = function () {
37043 this.checkDisplayName();
37044 };
37045 HeaderCellCtrl.prototype.onColumnValueChanged = function () {
37046 this.checkDisplayName();
37047 };
37048 HeaderCellCtrl.prototype.setupWidth = function () {
37049 var _this = this;
37050 var listener = function () {
37051 var columnWidth = _this.column.getActualWidth();
37052 _this.comp.setWidth(columnWidth + "px");
37053 };
37054 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_WIDTH_CHANGED, listener);
37055 listener();
37056 };
37057 HeaderCellCtrl.prototype.setupMovingCss = function () {
37058 var _this = this;
37059 var listener = function () {
37060 // this is what makes the header go dark when it is been moved (gives impression to
37061 // user that the column was picked up).
37062 _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.column.isMoving());
37063 };
37064 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_MOVING_CHANGED, listener);
37065 listener();
37066 };
37067 HeaderCellCtrl.prototype.setupMenuClass = function () {
37068 var _this = this;
37069 var listener = function () {
37070 _this.comp.addOrRemoveCssClass('ag-column-menu-visible', _this.column.isMenuVisible());
37071 };
37072 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_MENU_VISIBLE_CHANGED, listener);
37073 listener();
37074 };
37075 HeaderCellCtrl.prototype.setupSortableClass = function () {
37076 var _this = this;
37077 var updateSortableCssClass = function () {
37078 _this.comp.addOrRemoveCssClass('ag-header-cell-sortable', !!_this.sortable);
37079 };
37080 updateSortableCssClass();
37081 this.addRefreshFunction(updateSortableCssClass);
37082 this.addManagedListener(this.eventService, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_SORT_CHANGED, this.refreshAriaSort.bind(this));
37083 };
37084 HeaderCellCtrl.prototype.setupWrapTextClass = function () {
37085 var _this = this;
37086 var listener = function () {
37087 var wrapText = !!_this.column.getColDef().wrapHeaderText;
37088 _this.comp.addOrRemoveCssClass('ag-header-cell-wrap-text', wrapText);
37089 };
37090 listener();
37091 this.addRefreshFunction(listener);
37092 };
37093 HeaderCellCtrl.prototype.onHeaderHeightChanged = function () {
37094 this.refreshSpanHeaderHeight();
37095 };
37096 HeaderCellCtrl.prototype.refreshSpanHeaderHeight = function () {
37097 var _a = this, eGui = _a.eGui, column = _a.column, comp = _a.comp, columnModel = _a.columnModel, gridOptionsService = _a.gridOptionsService;
37098 if (!column.isSpanHeaderHeight()) {
37099 return;
37100 }
37101 var _b = this.getColumnGroupPaddingInfo(), numberOfParents = _b.numberOfParents, isSpanningTotal = _b.isSpanningTotal;
37102 comp.addOrRemoveCssClass('ag-header-span-height', numberOfParents > 0);
37103 if (numberOfParents === 0) {
37104 return;
37105 }
37106 comp.addOrRemoveCssClass('ag-header-span-total', isSpanningTotal);
37107 var pivotMode = gridOptionsService.is('pivotMode');
37108 var groupHeaderHeight = pivotMode
37109 ? columnModel.getPivotGroupHeaderHeight()
37110 : columnModel.getGroupHeaderHeight();
37111 var headerHeight = columnModel.getColumnHeaderRowHeight();
37112 var extraHeight = numberOfParents * groupHeaderHeight;
37113 eGui.style.setProperty('top', -extraHeight + "px");
37114 eGui.style.setProperty('height', headerHeight + extraHeight + "px");
37115 };
37116 HeaderCellCtrl.prototype.getColumnGroupPaddingInfo = function () {
37117 var parent = this.column.getParent();
37118 if (!parent || !parent.isPadding()) {
37119 return { numberOfParents: 0, isSpanningTotal: false };
37120 }
37121 var numberOfParents = parent.getPaddingLevel() + 1;
37122 var isSpanningTotal = true;
37123 while (parent) {
37124 if (!parent.isPadding()) {
37125 isSpanningTotal = false;
37126 break;
37127 }
37128 parent = parent.getParent();
37129 }
37130 return { numberOfParents: numberOfParents, isSpanningTotal: isSpanningTotal };
37131 };
37132 HeaderCellCtrl.prototype.setupAutoHeight = function (wrapperElement) {
37133 var _this = this;
37134 var measureHeight = function (timesCalled) {
37135 if (!_this.isAlive()) {
37136 return;
37137 }
37138 var _a = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_14__["getElementSize"])(_this.getGui()), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, borderBottomWidth = _a.borderBottomWidth, borderTopWidth = _a.borderTopWidth;
37139 var extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;
37140 var wrapperHeight = wrapperElement.offsetHeight;
37141 var autoHeight = wrapperHeight + extraHeight;
37142 if (timesCalled < 5) {
37143 // if not in doc yet, means framework not yet inserted, so wait for next VM turn,
37144 // maybe it will be ready next VM turn
37145 var doc = _this.beans.gridOptionsService.getDocument();
37146 var notYetInDom = !doc || !doc.contains(wrapperElement);
37147 // this happens in React, where React hasn't put any content in. we say 'possibly'
37148 // as a) may not be React and b) the cell could be empty anyway
37149 var possiblyNoContentYet = autoHeight == 0;
37150 if (notYetInDom || possiblyNoContentYet) {
37151 _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);
37152 return;
37153 }
37154 }
37155 _this.columnModel.setColumnHeaderHeight(_this.column, autoHeight);
37156 };
37157 var isMeasuring = false;
37158 var stopResizeObserver;
37159 var checkMeasuring = function () {
37160 var isSpanHeaderHeight = _this.column.isSpanHeaderHeight();
37161 var newValue = _this.column.isAutoHeaderHeight();
37162 if (isSpanHeaderHeight) {
37163 stopMeasuring();
37164 if (newValue) {
37165 var message_1 = "AG Grid: The properties `spanHeaderHeight` and `autoHeaderHeight` cannot be used together in the same column.";
37166 Object(_utils_function__WEBPACK_IMPORTED_MODULE_15__["doOnce"])(function () { return console.warn(message_1); }, 'HeaderCellCtrl.spanHeaderHeightAndAutoHeaderHeight');
37167 }
37168 return;
37169 }
37170 if (newValue && !isMeasuring) {
37171 startMeasuring();
37172 }
37173 if (!newValue && isMeasuring) {
37174 stopMeasuring();
37175 }
37176 };
37177 var startMeasuring = function () {
37178 isMeasuring = true;
37179 measureHeight(0);
37180 _this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', true);
37181 stopResizeObserver = _this.resizeObserverService.observeResize(wrapperElement, function () { return measureHeight(0); });
37182 };
37183 var stopMeasuring = function () {
37184 isMeasuring = false;
37185 if (stopResizeObserver) {
37186 stopResizeObserver();
37187 }
37188 _this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', false);
37189 stopResizeObserver = undefined;
37190 };
37191 checkMeasuring();
37192 this.addDestroyFunc(function () { return stopMeasuring(); });
37193 // In theory we could rely on the resize observer for everything - but since it's debounced
37194 // it can be a little janky for smooth movement. in this case its better to react to our own events
37195 // And unfortunately we cant _just_ rely on our own events, since custom components can change whenever
37196 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_WIDTH_CHANGED, function () { return isMeasuring && measureHeight(0); });
37197 // Displaying the sort icon changes the available area for text, so sort changes can affect height
37198 this.addManagedListener(this.eventService, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_SORT_CHANGED, function () {
37199 // Rendering changes for sort, happen after the event... not ideal
37200 if (isMeasuring) {
37201 _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(0); });
37202 }
37203 });
37204 this.addRefreshFunction(checkMeasuring);
37205 };
37206 HeaderCellCtrl.prototype.refreshAriaSort = function () {
37207 if (this.sortable) {
37208 var translate = this.localeService.getLocaleTextFunc();
37209 var sort = this.sortController.getDisplaySortForColumn(this.column) || null;
37210 this.comp.setAriaSort(Object(_utils_aria__WEBPACK_IMPORTED_MODULE_6__["getAriaSortState"])(sort));
37211 this.setAriaDescriptionProperty('sort', translate('ariaSortableColumn', 'Press ENTER to sort.'));
37212 }
37213 else {
37214 this.comp.setAriaSort();
37215 this.setAriaDescriptionProperty('sort', null);
37216 }
37217 };
37218 HeaderCellCtrl.prototype.refreshAriaMenu = function () {
37219 if (this.menuEnabled) {
37220 var translate = this.localeService.getLocaleTextFunc();
37221 this.setAriaDescriptionProperty('menu', translate('ariaMenuColumn', 'Press CTRL ENTER to open column menu.'));
37222 }
37223 else {
37224 this.setAriaDescriptionProperty('menu', null);
37225 }
37226 };
37227 HeaderCellCtrl.prototype.setAriaDescriptionProperty = function (property, value) {
37228 if (value != null) {
37229 this.ariaDescriptionProperties.set(property, value);
37230 }
37231 else {
37232 this.ariaDescriptionProperties.delete(property);
37233 }
37234 };
37235 HeaderCellCtrl.prototype.refreshAriaDescription = function () {
37236 var descriptionArray = Array.from(this.ariaDescriptionProperties.values());
37237 this.comp.setAriaDescription(descriptionArray.length ? descriptionArray.join(' ') : undefined);
37238 };
37239 HeaderCellCtrl.prototype.refreshAria = function () {
37240 this.refreshAriaSort();
37241 this.refreshAriaMenu();
37242 this.refreshAriaDescription();
37243 };
37244 HeaderCellCtrl.prototype.addColumnHoverListener = function () {
37245 var _this = this;
37246 var listener = function () {
37247 if (!_this.gridOptionsService.is('columnHoverHighlight')) {
37248 return;
37249 }
37250 var isHovered = _this.columnHoverService.isHovered(_this.column);
37251 _this.comp.addOrRemoveCssClass('ag-column-hover', isHovered);
37252 };
37253 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_4__["Events"].EVENT_COLUMN_HOVER_CHANGED, listener);
37254 listener();
37255 };
37256 HeaderCellCtrl.prototype.setupFilterCss = function () {
37257 var _this = this;
37258 var listener = function () {
37259 _this.comp.addOrRemoveCssClass('ag-header-cell-filtered', _this.column.isFilterActive());
37260 };
37261 this.addManagedListener(this.column, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_FILTER_ACTIVE_CHANGED, listener);
37262 listener();
37263 };
37264 HeaderCellCtrl.prototype.setupColId = function () {
37265 this.comp.setColId(this.column.getColId());
37266 };
37267 HeaderCellCtrl.prototype.addActiveHeaderMouseListeners = function () {
37268 var _this = this;
37269 var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };
37270 this.addManagedListener(this.getGui(), 'mouseenter', listener);
37271 this.addManagedListener(this.getGui(), 'mouseleave', listener);
37272 };
37273 HeaderCellCtrl.prototype.setActiveHeader = function (active) {
37274 this.comp.addOrRemoveCssClass('ag-header-active', active);
37275 };
37276 __decorate([
37277 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
37278 ], HeaderCellCtrl.prototype, "columnModel", void 0);
37279 __decorate([
37280 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnHoverService')
37281 ], HeaderCellCtrl.prototype, "columnHoverService", void 0);
37282 __decorate([
37283 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('sortController')
37284 ], HeaderCellCtrl.prototype, "sortController", void 0);
37285 __decorate([
37286 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('menuFactory')
37287 ], HeaderCellCtrl.prototype, "menuFactory", void 0);
37288 __decorate([
37289 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
37290 ], HeaderCellCtrl.prototype, "dragAndDropService", void 0);
37291 __decorate([
37292 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('resizeObserverService')
37293 ], HeaderCellCtrl.prototype, "resizeObserverService", void 0);
37294 __decorate([
37295 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
37296 ], HeaderCellCtrl.prototype, "gridApi", void 0);
37297 __decorate([
37298 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
37299 ], HeaderCellCtrl.prototype, "columnApi", void 0);
37300 __decorate([
37301 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
37302 ], HeaderCellCtrl.prototype, "removeDragSource", null);
37303 return HeaderCellCtrl;
37304}(_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_9__["AbstractHeaderCellCtrl"]));
37305
37306
37307
37308/***/ }),
37309/* 163 */
37310/***/ (function(module, __webpack_exports__, __webpack_require__) {
37311
37312"use strict";
37313__webpack_require__.r(__webpack_exports__);
37314/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeFeature", function() { return ResizeFeature; });
37315/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
37316/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
37317/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
37318/* harmony import */ var _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86);
37319/**
37320 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
37321 * @version v29.2.0
37322 * @link https://www.ag-grid.com/
37323 * @license MIT
37324 */
37325var __extends = (undefined && undefined.__extends) || (function () {
37326 var extendStatics = function (d, b) {
37327 extendStatics = Object.setPrototypeOf ||
37328 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37329 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
37330 return extendStatics(d, b);
37331 };
37332 return function (d, b) {
37333 extendStatics(d, b);
37334 function __() { this.constructor = d; }
37335 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37336 };
37337})();
37338var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37339 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37340 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37341 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;
37342 return c > 3 && r && Object.defineProperty(target, key, r), r;
37343};
37344
37345
37346
37347
37348var ResizeFeature = /** @class */ (function (_super) {
37349 __extends(ResizeFeature, _super);
37350 function ResizeFeature(pinned, column, eResize, comp, ctrl) {
37351 var _this = _super.call(this) || this;
37352 _this.pinned = pinned;
37353 _this.column = column;
37354 _this.eResize = eResize;
37355 _this.comp = comp;
37356 _this.ctrl = ctrl;
37357 return _this;
37358 }
37359 ResizeFeature.prototype.postConstruct = function () {
37360 var _this = this;
37361 var colDef = this.column.getColDef();
37362 var destroyResizeFuncs = [];
37363 var canResize;
37364 var canAutosize;
37365 var addResize = function () {
37366 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setDisplayed"])(_this.eResize, canResize);
37367 if (!canResize) {
37368 return;
37369 }
37370 var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({
37371 eResizeBar: _this.eResize,
37372 onResizeStart: _this.onResizeStart.bind(_this),
37373 onResizing: _this.onResizing.bind(_this, false),
37374 onResizeEnd: _this.onResizing.bind(_this, true)
37375 });
37376 destroyResizeFuncs.push(finishedWithResizeFunc);
37377 if (canAutosize) {
37378 var skipHeaderOnAutoSize_1 = _this.gridOptionsService.is('skipHeaderOnAutoSize');
37379 var autoSizeColListener_1 = function () {
37380 _this.columnModel.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, "uiColumnResized");
37381 };
37382 _this.eResize.addEventListener('dblclick', autoSizeColListener_1);
37383 var touchListener_1 = new _widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"](_this.eResize);
37384 touchListener_1.addEventListener(_widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"].EVENT_DOUBLE_TAP, autoSizeColListener_1);
37385 _this.addDestroyFunc(function () {
37386 _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);
37387 touchListener_1.removeEventListener(_widgets_touchListener__WEBPACK_IMPORTED_MODULE_3__["TouchListener"].EVENT_DOUBLE_TAP, autoSizeColListener_1);
37388 touchListener_1.destroy();
37389 });
37390 }
37391 };
37392 var removeResize = function () {
37393 destroyResizeFuncs.forEach(function (f) { return f(); });
37394 destroyResizeFuncs.length = 0;
37395 };
37396 var refresh = function () {
37397 var resize = _this.column.isResizable();
37398 var autoSize = !_this.gridOptionsService.is('suppressAutoSize') && !colDef.suppressAutoSize;
37399 var propertyChange = resize !== canResize || autoSize !== canAutosize;
37400 if (propertyChange) {
37401 canResize = resize;
37402 canAutosize = autoSize;
37403 removeResize();
37404 addResize();
37405 }
37406 };
37407 refresh();
37408 this.addDestroyFunc(removeResize);
37409 this.ctrl.addRefreshFunction(refresh);
37410 };
37411 ResizeFeature.prototype.onResizing = function (finished, resizeAmount) {
37412 var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);
37413 var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];
37414 this.columnModel.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, "uiColumnDragged");
37415 if (finished) {
37416 this.comp.addOrRemoveCssClass('ag-column-resizing', false);
37417 }
37418 };
37419 ResizeFeature.prototype.onResizeStart = function (shiftKey) {
37420 this.resizeStartWidth = this.column.getActualWidth();
37421 this.resizeWithShiftKey = shiftKey;
37422 this.comp.addOrRemoveCssClass('ag-column-resizing', true);
37423 };
37424 // optionally inverts the drag, depending on pinned and RTL
37425 // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?
37426 ResizeFeature.prototype.normaliseResizeAmount = function (dragChange) {
37427 var result = dragChange;
37428 var notPinningLeft = this.pinned !== 'left';
37429 var pinningRight = this.pinned === 'right';
37430 if (this.gridOptionsService.is('enableRtl')) {
37431 // for RTL, dragging left makes the col bigger, except when pinning left
37432 if (notPinningLeft) {
37433 result *= -1;
37434 }
37435 }
37436 else {
37437 // for LTR (ie normal), dragging left makes the col smaller, except when pinning right
37438 if (pinningRight) {
37439 result *= -1;
37440 }
37441 }
37442 return result;
37443 };
37444 __decorate([
37445 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('horizontalResizeService')
37446 ], ResizeFeature.prototype, "horizontalResizeService", void 0);
37447 __decorate([
37448 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
37449 ], ResizeFeature.prototype, "columnModel", void 0);
37450 __decorate([
37451 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
37452 ], ResizeFeature.prototype, "postConstruct", null);
37453 return ResizeFeature;
37454}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
37455
37456
37457
37458/***/ }),
37459/* 164 */
37460/***/ (function(module, __webpack_exports__, __webpack_require__) {
37461
37462"use strict";
37463__webpack_require__.r(__webpack_exports__);
37464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectAllFeature", function() { return SelectAllFeature; });
37465/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72);
37466/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
37467/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
37468/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25);
37469/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41);
37470/**
37471 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
37472 * @version v29.2.0
37473 * @link https://www.ag-grid.com/
37474 * @license MIT
37475 */
37476var __extends = (undefined && undefined.__extends) || (function () {
37477 var extendStatics = function (d, b) {
37478 extendStatics = Object.setPrototypeOf ||
37479 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37480 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
37481 return extendStatics(d, b);
37482 };
37483 return function (d, b) {
37484 extendStatics(d, b);
37485 function __() { this.constructor = d; }
37486 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37487 };
37488})();
37489var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37490 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37491 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37492 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;
37493 return c > 3 && r && Object.defineProperty(target, key, r), r;
37494};
37495
37496
37497
37498
37499
37500var SelectAllFeature = /** @class */ (function (_super) {
37501 __extends(SelectAllFeature, _super);
37502 function SelectAllFeature(column) {
37503 var _this = _super.call(this) || this;
37504 _this.cbSelectAllVisible = false;
37505 _this.processingEventFromCheckbox = false;
37506 _this.column = column;
37507 var colDef = column.getColDef();
37508 _this.filteredOnly = !!(colDef === null || colDef === void 0 ? void 0 : colDef.headerCheckboxSelectionFilteredOnly);
37509 _this.currentPageOnly = !!(colDef === null || colDef === void 0 ? void 0 : colDef.headerCheckboxSelectionCurrentPageOnly);
37510 return _this;
37511 }
37512 SelectAllFeature.prototype.onSpaceKeyPressed = function (e) {
37513 var checkbox = this.cbSelectAll;
37514 var eDocument = this.gridOptionsService.getDocument();
37515 if (checkbox.isDisplayed() && !checkbox.getGui().contains(eDocument.activeElement)) {
37516 e.preventDefault();
37517 checkbox.setValue(!checkbox.getValue());
37518 }
37519 };
37520 SelectAllFeature.prototype.getCheckboxGui = function () {
37521 return this.cbSelectAll.getGui();
37522 };
37523 SelectAllFeature.prototype.setComp = function (ctrl) {
37524 this.headerCellCtrl = ctrl;
37525 this.cbSelectAll = this.createManagedBean(new _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"]());
37526 this.cbSelectAll.addCssClass('ag-header-select-all');
37527 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaRole"])(this.cbSelectAll.getGui(), 'presentation');
37528 this.showOrHideSelectAll();
37529 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));
37530 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));
37531 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));
37532 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onSelectionChanged.bind(this));
37533 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));
37534 this.addManagedListener(this.cbSelectAll, _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"].EVENT_CHANGED, this.onCbSelectAll.bind(this));
37535 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaHidden"])(this.cbSelectAll.getGui(), true);
37536 this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');
37537 this.refreshSelectAllLabel();
37538 };
37539 SelectAllFeature.prototype.showOrHideSelectAll = function () {
37540 this.cbSelectAllVisible = this.isCheckboxSelection();
37541 this.cbSelectAll.setDisplayed(this.cbSelectAllVisible, { skipAriaHidden: true });
37542 if (this.cbSelectAllVisible) {
37543 // in case user is trying this feature with the wrong model type
37544 this.checkRightRowModelType('selectAllCheckbox');
37545 // make sure checkbox is showing the right state
37546 this.updateStateOfCheckbox();
37547 }
37548 this.refreshSelectAllLabel();
37549 };
37550 SelectAllFeature.prototype.onModelChanged = function () {
37551 if (!this.cbSelectAllVisible) {
37552 return;
37553 }
37554 this.updateStateOfCheckbox();
37555 };
37556 SelectAllFeature.prototype.onSelectionChanged = function () {
37557 if (!this.cbSelectAllVisible) {
37558 return;
37559 }
37560 this.updateStateOfCheckbox();
37561 };
37562 SelectAllFeature.prototype.updateStateOfCheckbox = function () {
37563 if (this.processingEventFromCheckbox) {
37564 return;
37565 }
37566 this.processingEventFromCheckbox = true;
37567 var allSelected = this.selectionService.getSelectAllState();
37568 this.cbSelectAll.setValue(allSelected);
37569 this.refreshSelectAllLabel();
37570 this.processingEventFromCheckbox = false;
37571 };
37572 SelectAllFeature.prototype.refreshSelectAllLabel = function () {
37573 if (!this.cbSelectAllVisible) {
37574 this.headerCellCtrl.setAriaDescriptionProperty('selectAll', null);
37575 this.cbSelectAll.setInputAriaLabel(null);
37576 }
37577 else {
37578 var translate = this.localeService.getLocaleTextFunc();
37579 var checked = this.cbSelectAll.getValue();
37580 var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');
37581 var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');
37582 this.headerCellCtrl.setAriaDescriptionProperty('selectAll', ariaLabel + " (" + ariaStatus + ")");
37583 this.cbSelectAll.setInputAriaLabel(ariaLabel + " (" + ariaStatus + ")");
37584 }
37585 this.headerCellCtrl.refreshAriaDescription();
37586 };
37587 SelectAllFeature.prototype.checkRightRowModelType = function (feature) {
37588 var rowModelType = this.rowModel.getType();
37589 var rowModelMatches = rowModelType === 'clientSide' || rowModelType === 'serverSide';
37590 if (!rowModelMatches) {
37591 console.warn("AG Grid: " + feature + " is only available if using 'clientSide' or 'serverSide' rowModelType, you are using " + rowModelType + ".");
37592 return false;
37593 }
37594 return true;
37595 };
37596 SelectAllFeature.prototype.onCbSelectAll = function () {
37597 if (this.processingEventFromCheckbox) {
37598 return;
37599 }
37600 if (!this.cbSelectAllVisible) {
37601 return;
37602 }
37603 var value = this.cbSelectAll.getValue();
37604 var source = 'uiSelectAll';
37605 if (this.currentPageOnly)
37606 source = 'uiSelectAllCurrentPage';
37607 else if (this.filteredOnly)
37608 source = 'uiSelectAllFiltered';
37609 var params = {
37610 source: source,
37611 justFiltered: this.filteredOnly,
37612 justCurrentPage: this.currentPageOnly,
37613 };
37614 if (value) {
37615 this.selectionService.selectAllRowNodes(params);
37616 }
37617 else {
37618 this.selectionService.deselectAllRowNodes(params);
37619 }
37620 };
37621 SelectAllFeature.prototype.isCheckboxSelection = function () {
37622 var result = this.column.getColDef().headerCheckboxSelection;
37623 if (typeof result === 'function') {
37624 var func = result;
37625 var params = {
37626 column: this.column,
37627 colDef: this.column.getColDef(),
37628 columnApi: this.columnApi,
37629 api: this.gridApi,
37630 context: this.gridOptionsService.context
37631 };
37632 result = func(params);
37633 }
37634 if (result) {
37635 return this.checkRightRowModelType('headerCheckboxSelection');
37636 }
37637 return false;
37638 };
37639 __decorate([
37640 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridApi')
37641 ], SelectAllFeature.prototype, "gridApi", void 0);
37642 __decorate([
37643 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnApi')
37644 ], SelectAllFeature.prototype, "columnApi", void 0);
37645 __decorate([
37646 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
37647 ], SelectAllFeature.prototype, "rowModel", void 0);
37648 __decorate([
37649 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('selectionService')
37650 ], SelectAllFeature.prototype, "selectionService", void 0);
37651 return SelectAllFeature;
37652}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
37653
37654
37655
37656/***/ }),
37657/* 165 */
37658/***/ (function(module, __webpack_exports__, __webpack_require__) {
37659
37660"use strict";
37661__webpack_require__.r(__webpack_exports__);
37662/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupCellCtrl", function() { return HeaderGroupCellCtrl; });
37663/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
37664/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
37665/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(100);
37666/* harmony import */ var _entities_column__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9);
37667/* harmony import */ var _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(8);
37668/* harmony import */ var _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(160);
37669/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19);
37670/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64);
37671/* harmony import */ var _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(130);
37672/* harmony import */ var _abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(159);
37673/* harmony import */ var _cssClassApplier__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(151);
37674/* harmony import */ var _hoverFeature__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(161);
37675/* harmony import */ var _groupResizeFeature__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(166);
37676/* harmony import */ var _groupWidthFeature__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(167);
37677/**
37678 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
37679 * @version v29.2.0
37680 * @link https://www.ag-grid.com/
37681 * @license MIT
37682 */
37683var __extends = (undefined && undefined.__extends) || (function () {
37684 var extendStatics = function (d, b) {
37685 extendStatics = Object.setPrototypeOf ||
37686 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37687 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
37688 return extendStatics(d, b);
37689 };
37690 return function (d, b) {
37691 extendStatics(d, b);
37692 function __() { this.constructor = d; }
37693 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37694 };
37695})();
37696var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37697 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37698 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37699 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;
37700 return c > 3 && r && Object.defineProperty(target, key, r), r;
37701};
37702
37703
37704
37705
37706
37707
37708
37709
37710
37711
37712
37713
37714
37715
37716var HeaderGroupCellCtrl = /** @class */ (function (_super) {
37717 __extends(HeaderGroupCellCtrl, _super);
37718 function HeaderGroupCellCtrl(columnGroup, parentRowCtrl) {
37719 var _this = _super.call(this, columnGroup, parentRowCtrl) || this;
37720 _this.columnGroup = columnGroup;
37721 return _this;
37722 }
37723 HeaderGroupCellCtrl.prototype.setComp = function (comp, eGui, eResize) {
37724 _super.prototype.setGui.call(this, eGui);
37725 this.comp = comp;
37726 this.displayName = this.columnModel.getDisplayNameForColumnGroup(this.columnGroup, 'header');
37727 this.addClasses();
37728 this.addAttributes();
37729 this.setupMovingCss();
37730 this.setupExpandable();
37731 this.setupTooltip();
37732 this.setupUserComp();
37733 var pinned = this.getParentRowCtrl().getPinned();
37734 var leafCols = this.columnGroup.getProvidedColumnGroup().getLeafColumns();
37735 this.createManagedBean(new _hoverFeature__WEBPACK_IMPORTED_MODULE_11__["HoverFeature"](leafCols, eGui));
37736 this.createManagedBean(new _rendering_features_setLeftFeature__WEBPACK_IMPORTED_MODULE_5__["SetLeftFeature"](this.columnGroup, eGui, this.beans));
37737 this.createManagedBean(new _groupWidthFeature__WEBPACK_IMPORTED_MODULE_13__["GroupWidthFeature"](comp, this.columnGroup));
37738 this.groupResizeFeature = this.createManagedBean(new _groupResizeFeature__WEBPACK_IMPORTED_MODULE_12__["GroupResizeFeature"](comp, eResize, pinned, this.columnGroup));
37739 this.createManagedBean(new _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_7__["ManagedFocusFeature"](eGui, {
37740 shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),
37741 onTabKeyDown: function () { return undefined; },
37742 handleKeyDown: this.handleKeyDown.bind(this),
37743 onFocusIn: this.onFocusIn.bind(this)
37744 }));
37745 };
37746 HeaderGroupCellCtrl.prototype.resizeLeafColumnsToFit = function () {
37747 var _a, _b;
37748 // AG-8205 Temp null check to avoid throwing when a component has not been setup yet (React 18)
37749 (_a = this.groupResizeFeature) === null || _a === void 0 ? void 0 : _a.onResizeStart(false);
37750 (_b = this.groupResizeFeature) === null || _b === void 0 ? void 0 : _b.resizeLeafColumnsToFit();
37751 };
37752 HeaderGroupCellCtrl.prototype.setupUserComp = function () {
37753 var _this = this;
37754 var displayName = this.displayName;
37755 var params = {
37756 displayName: this.displayName,
37757 columnGroup: this.columnGroup,
37758 setExpanded: function (expanded) {
37759 _this.columnModel.setColumnGroupOpened(_this.columnGroup.getProvidedColumnGroup(), expanded, "gridInitializing");
37760 },
37761 api: this.gridApi,
37762 columnApi: this.columnApi,
37763 context: this.gridOptionsService.context
37764 };
37765 if (!displayName) {
37766 var columnGroup = this.columnGroup;
37767 var leafCols = columnGroup.getLeafColumns();
37768 // find the top most column group that represents the same columns. so if we are dragging a group, we also
37769 // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels
37770 // of grouping, with each group only containing the next group, and the last group containing three columns,
37771 // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all
37772 // the groups represent the same column set.
37773 while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {
37774 columnGroup = columnGroup.getParent();
37775 }
37776 var colGroupDef = columnGroup.getColGroupDef();
37777 if (colGroupDef) {
37778 displayName = colGroupDef.headerName;
37779 }
37780 if (!displayName) {
37781 displayName = leafCols ? this.columnModel.getDisplayNameForColumn(leafCols[0], 'header', true) : '';
37782 }
37783 }
37784 var compDetails = this.userComponentFactory.getHeaderGroupCompDetails(params);
37785 this.comp.setUserCompDetails(compDetails);
37786 };
37787 HeaderGroupCellCtrl.prototype.setupTooltip = function () {
37788 var _this = this;
37789 var colGroupDef = this.columnGroup.getColGroupDef();
37790 var tooltipCtrl = {
37791 getColumn: function () { return _this.columnGroup; },
37792 getGui: function () { return _this.eGui; },
37793 getLocation: function () { return 'headerGroup'; },
37794 getTooltipValue: function () { return colGroupDef && colGroupDef.headerTooltip; }
37795 };
37796 if (colGroupDef) {
37797 tooltipCtrl.getColDef = function () { return colGroupDef; };
37798 }
37799 var tooltipFeature = this.createManagedBean(new _widgets_tooltipFeature__WEBPACK_IMPORTED_MODULE_8__["TooltipFeature"](tooltipCtrl, this.beans));
37800 tooltipFeature.setComp(this.comp);
37801 };
37802 HeaderGroupCellCtrl.prototype.setupExpandable = function () {
37803 var providedColGroup = this.columnGroup.getProvidedColumnGroup();
37804 this.refreshExpanded();
37805 this.addManagedListener(providedColGroup, _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"].EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));
37806 this.addManagedListener(providedColGroup, _entities_providedColumnGroup__WEBPACK_IMPORTED_MODULE_4__["ProvidedColumnGroup"].EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));
37807 };
37808 HeaderGroupCellCtrl.prototype.refreshExpanded = function () {
37809 var column = this.columnGroup;
37810 this.expandable = column.isExpandable();
37811 var expanded = column.isExpanded();
37812 if (this.expandable) {
37813 this.comp.setAriaExpanded(expanded ? 'true' : 'false');
37814 }
37815 else {
37816 this.comp.setAriaExpanded(undefined);
37817 }
37818 };
37819 HeaderGroupCellCtrl.prototype.addAttributes = function () {
37820 this.comp.setColId(this.columnGroup.getUniqueId());
37821 };
37822 HeaderGroupCellCtrl.prototype.addClasses = function () {
37823 var _this = this;
37824 var colGroupDef = this.columnGroup.getColGroupDef();
37825 var classes = _cssClassApplier__WEBPACK_IMPORTED_MODULE_10__["CssClassApplier"].getHeaderClassesFromColDef(colGroupDef, this.gridOptionsService, null, this.columnGroup);
37826 // having different classes below allows the style to not have a bottom border
37827 // on the group header, if no group is specified
37828 if (this.columnGroup.isPadding()) {
37829 classes.push('ag-header-group-cell-no-group');
37830 var leafCols = this.columnGroup.getLeafColumns();
37831 if (leafCols.every(function (col) { return col.isSpanHeaderHeight(); })) {
37832 classes.push('ag-header-span-height');
37833 }
37834 }
37835 else {
37836 classes.push('ag-header-group-cell-with-group');
37837 }
37838 classes.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, true); });
37839 };
37840 HeaderGroupCellCtrl.prototype.setupMovingCss = function () {
37841 var _this = this;
37842 var providedColumnGroup = this.columnGroup.getProvidedColumnGroup();
37843 var leafColumns = providedColumnGroup.getLeafColumns();
37844 // this function adds or removes the moving css, based on if the col is moving.
37845 // this is what makes the header go dark when it is been moved (gives impression to
37846 // user that the column was picked up).
37847 var listener = function () { return _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.columnGroup.isMoving()); };
37848 leafColumns.forEach(function (col) {
37849 _this.addManagedListener(col, _entities_column__WEBPACK_IMPORTED_MODULE_3__["Column"].EVENT_MOVING_CHANGED, listener);
37850 });
37851 listener();
37852 };
37853 HeaderGroupCellCtrl.prototype.onFocusIn = function (e) {
37854 if (!this.eGui.contains(e.relatedTarget)) {
37855 var rowIndex = this.getRowIndex();
37856 this.beans.focusService.setFocusedHeader(rowIndex, this.columnGroup);
37857 }
37858 };
37859 HeaderGroupCellCtrl.prototype.handleKeyDown = function (e) {
37860 _super.prototype.handleKeyDown.call(this, e);
37861 var wrapperHasFocus = this.getWrapperHasFocus();
37862 if (!this.expandable || !wrapperHasFocus) {
37863 return;
37864 }
37865 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].ENTER) {
37866 var column = this.columnGroup;
37867 var newExpandedValue = !column.isExpanded();
37868 this.columnModel.setColumnGroupOpened(column.getProvidedColumnGroup(), newExpandedValue, "uiColumnExpanded");
37869 }
37870 };
37871 // unlike columns, this will only get called once, as we don't react on props on column groups
37872 // (we will always destroy and recreate this comp if something changes)
37873 HeaderGroupCellCtrl.prototype.setDragSource = function (eHeaderGroup) {
37874 var _this = this;
37875 if (this.isSuppressMoving()) {
37876 return;
37877 }
37878 var allLeafColumns = this.columnGroup.getProvidedColumnGroup().getLeafColumns();
37879 var hideColumnOnExit = !this.gridOptionsService.is('suppressDragLeaveHidesColumns');
37880 var dragSource = {
37881 type: _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragSourceType"].HeaderCell,
37882 eElement: eHeaderGroup,
37883 defaultIconName: hideColumnOnExit ? _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_HIDE : _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_2__["DragAndDropService"].ICON_NOT_ALLOWED,
37884 dragItemName: this.displayName,
37885 // we add in the original group leaf columns, so we move both visible and non-visible items
37886 getDragItem: this.getDragItemForGroup.bind(this),
37887 onDragStarted: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(true, "uiColumnDragged"); }); },
37888 onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, "uiColumnDragged"); }); },
37889 onGridEnter: function (dragItem) {
37890 var _a;
37891 if (hideColumnOnExit) {
37892 var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];
37893 _this.columnModel.setColumnsVisible(unlockedColumns, true, "uiColumnMoved");
37894 }
37895 },
37896 onGridExit: function (dragItem) {
37897 var _a;
37898 if (hideColumnOnExit) {
37899 var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];
37900 _this.columnModel.setColumnsVisible(unlockedColumns, false, "uiColumnMoved");
37901 }
37902 },
37903 };
37904 this.dragAndDropService.addDragSource(dragSource, true);
37905 this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });
37906 };
37907 // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,
37908 // and in the order they are currently in the screen.
37909 HeaderGroupCellCtrl.prototype.getDragItemForGroup = function () {
37910 var allColumnsOriginalOrder = this.columnGroup.getProvidedColumnGroup().getLeafColumns();
37911 // capture visible state, used when re-entering grid to dictate which columns should be visible
37912 var visibleState = {};
37913 allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });
37914 var allColumnsCurrentOrder = [];
37915 this.columnModel.getAllDisplayedColumns().forEach(function (column) {
37916 if (allColumnsOriginalOrder.indexOf(column) >= 0) {
37917 allColumnsCurrentOrder.push(column);
37918 Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["removeFromArray"])(allColumnsOriginalOrder, column);
37919 }
37920 });
37921 // we are left with non-visible columns, stick these in at the end
37922 allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });
37923 // create and return dragItem
37924 return {
37925 columns: allColumnsCurrentOrder,
37926 visibleState: visibleState
37927 };
37928 };
37929 HeaderGroupCellCtrl.prototype.isSuppressMoving = function () {
37930 // if any child is fixed, then don't allow moving
37931 var childSuppressesMoving = false;
37932 this.columnGroup.getLeafColumns().forEach(function (column) {
37933 if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {
37934 childSuppressesMoving = true;
37935 }
37936 });
37937 var result = childSuppressesMoving || this.gridOptionsService.is('suppressMovableColumns');
37938 return result;
37939 };
37940 __decorate([
37941 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
37942 ], HeaderGroupCellCtrl.prototype, "columnModel", void 0);
37943 __decorate([
37944 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('dragAndDropService')
37945 ], HeaderGroupCellCtrl.prototype, "dragAndDropService", void 0);
37946 __decorate([
37947 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridApi')
37948 ], HeaderGroupCellCtrl.prototype, "gridApi", void 0);
37949 __decorate([
37950 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnApi')
37951 ], HeaderGroupCellCtrl.prototype, "columnApi", void 0);
37952 return HeaderGroupCellCtrl;
37953}(_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_9__["AbstractHeaderCellCtrl"]));
37954
37955
37956
37957/***/ }),
37958/* 166 */
37959/***/ (function(module, __webpack_exports__, __webpack_require__) {
37960
37961"use strict";
37962__webpack_require__.r(__webpack_exports__);
37963/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupResizeFeature", function() { return GroupResizeFeature; });
37964/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
37965/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
37966/**
37967 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
37968 * @version v29.2.0
37969 * @link https://www.ag-grid.com/
37970 * @license MIT
37971 */
37972var __extends = (undefined && undefined.__extends) || (function () {
37973 var extendStatics = function (d, b) {
37974 extendStatics = Object.setPrototypeOf ||
37975 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
37976 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
37977 return extendStatics(d, b);
37978 };
37979 return function (d, b) {
37980 extendStatics(d, b);
37981 function __() { this.constructor = d; }
37982 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
37983 };
37984})();
37985var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37986 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37987 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37988 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;
37989 return c > 3 && r && Object.defineProperty(target, key, r), r;
37990};
37991
37992
37993var GroupResizeFeature = /** @class */ (function (_super) {
37994 __extends(GroupResizeFeature, _super);
37995 function GroupResizeFeature(comp, eResize, pinned, columnGroup) {
37996 var _this = _super.call(this) || this;
37997 _this.eResize = eResize;
37998 _this.comp = comp;
37999 _this.pinned = pinned;
38000 _this.columnGroup = columnGroup;
38001 return _this;
38002 }
38003 GroupResizeFeature.prototype.postConstruct = function () {
38004 var _this = this;
38005 if (!this.columnGroup.isResizable()) {
38006 this.comp.setResizableDisplayed(false);
38007 return;
38008 }
38009 var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({
38010 eResizeBar: this.eResize,
38011 onResizeStart: this.onResizeStart.bind(this),
38012 onResizing: this.onResizing.bind(this, false),
38013 onResizeEnd: this.onResizing.bind(this, true)
38014 });
38015 this.addDestroyFunc(finishedWithResizeFunc);
38016 if (!this.gridOptionsService.is('suppressAutoSize')) {
38017 var skipHeaderOnAutoSize_1 = this.gridOptionsService.is('skipHeaderOnAutoSize');
38018 this.eResize.addEventListener('dblclick', function () {
38019 // get list of all the column keys we are responsible for
38020 var keys = [];
38021 var leafCols = _this.columnGroup.getDisplayedLeafColumns();
38022 leafCols.forEach(function (column) {
38023 // not all cols in the group may be participating with auto-resize
38024 if (!column.getColDef().suppressAutoSize) {
38025 keys.push(column.getColId());
38026 }
38027 });
38028 if (keys.length > 0) {
38029 _this.columnModel.autoSizeColumns({
38030 columns: keys,
38031 skipHeader: skipHeaderOnAutoSize_1,
38032 stopAtGroup: _this.columnGroup,
38033 source: 'uiColumnResized'
38034 });
38035 }
38036 _this.resizeLeafColumnsToFit();
38037 });
38038 }
38039 };
38040 GroupResizeFeature.prototype.onResizeStart = function (shiftKey) {
38041 var _this = this;
38042 this.calculateInitialValues();
38043 var takeFromGroup = null;
38044 if (shiftKey) {
38045 takeFromGroup = this.columnModel.getDisplayedGroupAfter(this.columnGroup);
38046 }
38047 if (takeFromGroup) {
38048 var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();
38049 this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });
38050 this.resizeTakeFromStartWidth = 0;
38051 this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });
38052 this.resizeTakeFromRatios = [];
38053 this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });
38054 }
38055 else {
38056 this.resizeTakeFromCols = null;
38057 this.resizeTakeFromStartWidth = null;
38058 this.resizeTakeFromRatios = null;
38059 }
38060 this.comp.addOrRemoveCssClass('ag-column-resizing', true);
38061 };
38062 GroupResizeFeature.prototype.onResizing = function (finished, resizeAmount) {
38063 var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);
38064 var width = this.resizeStartWidth + resizeAmountNormalised;
38065 this.resizeColumns(width, finished);
38066 };
38067 GroupResizeFeature.prototype.resizeLeafColumnsToFit = function () {
38068 var preferredSize = this.autoWidthCalculator.getPreferredWidthForColumnGroup(this.columnGroup);
38069 this.calculateInitialValues();
38070 if (preferredSize > this.resizeStartWidth) {
38071 this.resizeColumns(preferredSize, true);
38072 }
38073 };
38074 GroupResizeFeature.prototype.resizeColumns = function (totalWidth, finished) {
38075 if (finished === void 0) { finished = true; }
38076 var resizeSets = [];
38077 resizeSets.push({
38078 columns: this.resizeCols,
38079 ratios: this.resizeRatios,
38080 width: totalWidth
38081 });
38082 if (this.resizeTakeFromCols) {
38083 var diff = totalWidth - this.resizeStartWidth;
38084 resizeSets.push({
38085 columns: this.resizeTakeFromCols,
38086 ratios: this.resizeTakeFromRatios,
38087 width: this.resizeTakeFromStartWidth - diff
38088 });
38089 }
38090 this.columnModel.resizeColumnSets({
38091 resizeSets: resizeSets,
38092 finished: finished,
38093 source: 'uiColumnDragged'
38094 });
38095 if (finished) {
38096 this.comp.addOrRemoveCssClass('ag-column-resizing', false);
38097 }
38098 };
38099 GroupResizeFeature.prototype.calculateInitialValues = function () {
38100 var _this = this;
38101 var leafCols = this.columnGroup.getDisplayedLeafColumns();
38102 this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });
38103 this.resizeStartWidth = 0;
38104 this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });
38105 this.resizeRatios = [];
38106 this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });
38107 };
38108 // optionally inverts the drag, depending on pinned and RTL
38109 // note - this method is duplicated in RenderedHeaderCell - should refactor out?
38110 GroupResizeFeature.prototype.normaliseDragChange = function (dragChange) {
38111 var result = dragChange;
38112 if (this.gridOptionsService.is('enableRtl')) {
38113 // for RTL, dragging left makes the col bigger, except when pinning left
38114 if (this.pinned !== 'left') {
38115 result *= -1;
38116 }
38117 }
38118 else if (this.pinned === 'right') {
38119 // for LTR (ie normal), dragging left makes the col smaller, except when pinning right
38120 result *= -1;
38121 }
38122 return result;
38123 };
38124 __decorate([
38125 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('horizontalResizeService')
38126 ], GroupResizeFeature.prototype, "horizontalResizeService", void 0);
38127 __decorate([
38128 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('autoWidthCalculator')
38129 ], GroupResizeFeature.prototype, "autoWidthCalculator", void 0);
38130 __decorate([
38131 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
38132 ], GroupResizeFeature.prototype, "columnModel", void 0);
38133 __decorate([
38134 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
38135 ], GroupResizeFeature.prototype, "postConstruct", null);
38136 return GroupResizeFeature;
38137}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
38138
38139
38140
38141/***/ }),
38142/* 167 */
38143/***/ (function(module, __webpack_exports__, __webpack_require__) {
38144
38145"use strict";
38146__webpack_require__.r(__webpack_exports__);
38147/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupWidthFeature", function() { return GroupWidthFeature; });
38148/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
38149/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
38150/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21);
38151/**
38152 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38153 * @version v29.2.0
38154 * @link https://www.ag-grid.com/
38155 * @license MIT
38156 */
38157var __extends = (undefined && undefined.__extends) || (function () {
38158 var extendStatics = function (d, b) {
38159 extendStatics = Object.setPrototypeOf ||
38160 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38161 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38162 return extendStatics(d, b);
38163 };
38164 return function (d, b) {
38165 extendStatics(d, b);
38166 function __() { this.constructor = d; }
38167 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38168 };
38169})();
38170var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38171 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38172 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38173 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;
38174 return c > 3 && r && Object.defineProperty(target, key, r), r;
38175};
38176
38177
38178
38179var GroupWidthFeature = /** @class */ (function (_super) {
38180 __extends(GroupWidthFeature, _super);
38181 function GroupWidthFeature(comp, columnGroup) {
38182 var _this = _super.call(this) || this;
38183 // the children can change, we keep destroy functions related to listening to the children here
38184 _this.removeChildListenersFuncs = [];
38185 _this.columnGroup = columnGroup;
38186 _this.comp = comp;
38187 return _this;
38188 }
38189 GroupWidthFeature.prototype.postConstruct = function () {
38190 // we need to listen to changes in child columns, as they impact our width
38191 this.addListenersToChildrenColumns();
38192 // the children belonging to this group can change, so we need to add and remove listeners as they change
38193 this.addManagedListener(this.columnGroup, _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__["ColumnGroup"].EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));
38194 this.onWidthChanged();
38195 // the child listeners are not tied to this components life-cycle, as children can get added and removed
38196 // to the group - hence they are on a different life-cycle. so we must make sure the existing children
38197 // listeners are removed when we finally get destroyed
38198 this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));
38199 };
38200 GroupWidthFeature.prototype.addListenersToChildrenColumns = function () {
38201 var _this = this;
38202 // first destroy any old listeners
38203 this.removeListenersOnChildrenColumns();
38204 // now add new listeners to the new set of children
38205 var widthChangedListener = this.onWidthChanged.bind(this);
38206 this.columnGroup.getLeafColumns().forEach(function (column) {
38207 column.addEventListener('widthChanged', widthChangedListener);
38208 column.addEventListener('visibleChanged', widthChangedListener);
38209 _this.removeChildListenersFuncs.push(function () {
38210 column.removeEventListener('widthChanged', widthChangedListener);
38211 column.removeEventListener('visibleChanged', widthChangedListener);
38212 });
38213 });
38214 };
38215 GroupWidthFeature.prototype.removeListenersOnChildrenColumns = function () {
38216 this.removeChildListenersFuncs.forEach(function (func) { return func(); });
38217 this.removeChildListenersFuncs = [];
38218 };
38219 GroupWidthFeature.prototype.onDisplayedChildrenChanged = function () {
38220 this.addListenersToChildrenColumns();
38221 this.onWidthChanged();
38222 };
38223 GroupWidthFeature.prototype.onWidthChanged = function () {
38224 var columnWidth = this.columnGroup.getActualWidth();
38225 this.comp.setWidth(columnWidth + "px");
38226 this.comp.addOrRemoveCssClass('ag-hidden', columnWidth === 0);
38227 };
38228 __decorate([
38229 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
38230 ], GroupWidthFeature.prototype, "postConstruct", null);
38231 return GroupWidthFeature;
38232}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
38233
38234
38235
38236/***/ }),
38237/* 168 */
38238/***/ (function(module, __webpack_exports__, __webpack_require__) {
38239
38240"use strict";
38241__webpack_require__.r(__webpack_exports__);
38242/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridHeaderComp", function() { return GridHeaderComp; });
38243/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
38244/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
38245/* harmony import */ var _gridHeaderCtrl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(169);
38246/* harmony import */ var _rowContainer_headerRowContainerComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(152);
38247/**
38248 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38249 * @version v29.2.0
38250 * @link https://www.ag-grid.com/
38251 * @license MIT
38252 */
38253var __extends = (undefined && undefined.__extends) || (function () {
38254 var extendStatics = function (d, b) {
38255 extendStatics = Object.setPrototypeOf ||
38256 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38257 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38258 return extendStatics(d, b);
38259 };
38260 return function (d, b) {
38261 extendStatics(d, b);
38262 function __() { this.constructor = d; }
38263 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38264 };
38265})();
38266var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38267 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38268 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38269 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;
38270 return c > 3 && r && Object.defineProperty(target, key, r), r;
38271};
38272
38273
38274
38275
38276var GridHeaderComp = /** @class */ (function (_super) {
38277 __extends(GridHeaderComp, _super);
38278 function GridHeaderComp() {
38279 return _super.call(this, GridHeaderComp.TEMPLATE) || this;
38280 }
38281 GridHeaderComp.prototype.postConstruct = function () {
38282 var _this = this;
38283 var compProxy = {
38284 addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },
38285 setHeightAndMinHeight: function (height) {
38286 _this.getGui().style.height = height;
38287 _this.getGui().style.minHeight = height;
38288 }
38289 };
38290 var ctrl = this.createManagedBean(new _gridHeaderCtrl__WEBPACK_IMPORTED_MODULE_2__["GridHeaderCtrl"]());
38291 ctrl.setComp(compProxy, this.getGui(), this.getFocusableElement());
38292 var addContainer = function (container) {
38293 _this.createManagedBean(container);
38294 _this.appendChild(container);
38295 };
38296 addContainer(new _rowContainer_headerRowContainerComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowContainerComp"]('left'));
38297 addContainer(new _rowContainer_headerRowContainerComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowContainerComp"](null));
38298 addContainer(new _rowContainer_headerRowContainerComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowContainerComp"]('right'));
38299 };
38300 GridHeaderComp.TEMPLATE = "<div class=\"ag-header\" role=\"presentation\"/>";
38301 __decorate([
38302 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
38303 ], GridHeaderComp.prototype, "postConstruct", null);
38304 return GridHeaderComp;
38305}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
38306
38307
38308
38309/***/ }),
38310/* 169 */
38311/***/ (function(module, __webpack_exports__, __webpack_require__) {
38312
38313"use strict";
38314__webpack_require__.r(__webpack_exports__);
38315/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridHeaderCtrl", function() { return GridHeaderCtrl; });
38316/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48);
38317/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
38318/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
38319/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
38320/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
38321/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64);
38322/* harmony import */ var _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(170);
38323/**
38324 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38325 * @version v29.2.0
38326 * @link https://www.ag-grid.com/
38327 * @license MIT
38328 */
38329var __extends = (undefined && undefined.__extends) || (function () {
38330 var extendStatics = function (d, b) {
38331 extendStatics = Object.setPrototypeOf ||
38332 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38333 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38334 return extendStatics(d, b);
38335 };
38336 return function (d, b) {
38337 extendStatics(d, b);
38338 function __() { this.constructor = d; }
38339 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38340 };
38341})();
38342var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38343 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38344 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38345 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;
38346 return c > 3 && r && Object.defineProperty(target, key, r), r;
38347};
38348
38349
38350
38351
38352
38353
38354
38355var GridHeaderCtrl = /** @class */ (function (_super) {
38356 __extends(GridHeaderCtrl, _super);
38357 function GridHeaderCtrl() {
38358 return _super !== null && _super.apply(this, arguments) || this;
38359 }
38360 GridHeaderCtrl.prototype.setComp = function (comp, eGui, eFocusableElement) {
38361 this.comp = comp;
38362 this.eGui = eGui;
38363 this.createManagedBean(new _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_5__["ManagedFocusFeature"](eFocusableElement, {
38364 onTabKeyDown: this.onTabKeyDown.bind(this),
38365 handleKeyDown: this.handleKeyDown.bind(this),
38366 onFocusOut: this.onFocusOut.bind(this)
38367 }));
38368 // for setting ag-pivot-on / ag-pivot-off CSS classes
38369 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));
38370 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
38371 this.onPivotModeChanged();
38372 this.setupHeaderHeight();
38373 this.ctrlsService.registerGridHeaderCtrl(this);
38374 };
38375 GridHeaderCtrl.prototype.setupHeaderHeight = function () {
38376 var listener = this.setHeaderHeight.bind(this);
38377 listener();
38378 this.addManagedPropertyListener('headerHeight', listener);
38379 this.addManagedPropertyListener('pivotHeaderHeight', listener);
38380 this.addManagedPropertyListener('groupHeaderHeight', listener);
38381 this.addManagedPropertyListener('pivotGroupHeaderHeight', listener);
38382 this.addManagedPropertyListener('floatingFiltersHeight', listener);
38383 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
38384 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_COLUMN_HEADER_HEIGHT_CHANGED, listener);
38385 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_GRID_STYLES_CHANGED, listener);
38386 };
38387 GridHeaderCtrl.prototype.getHeaderHeight = function () {
38388 return this.headerHeight;
38389 };
38390 GridHeaderCtrl.prototype.setHeaderHeight = function () {
38391 var columnModel = this.columnModel;
38392 var numberOfFloating = 0;
38393 var headerRowCount = columnModel.getHeaderRowCount();
38394 var totalHeaderHeight;
38395 var hasFloatingFilters = columnModel.hasFloatingFilters();
38396 if (hasFloatingFilters) {
38397 headerRowCount++;
38398 numberOfFloating = 1;
38399 }
38400 var groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();
38401 var headerHeight = this.columnModel.getColumnHeaderRowHeight();
38402 var numberOfNonGroups = 1 + numberOfFloating;
38403 var numberOfGroups = headerRowCount - numberOfNonGroups;
38404 totalHeaderHeight = numberOfFloating * columnModel.getFloatingFiltersHeight();
38405 totalHeaderHeight += numberOfGroups * groupHeight;
38406 totalHeaderHeight += headerHeight;
38407 if (this.headerHeight === totalHeaderHeight) {
38408 return;
38409 }
38410 this.headerHeight = totalHeaderHeight;
38411 // one extra pixel is needed here to account for the
38412 // height of the border
38413 var px = totalHeaderHeight + 1 + "px";
38414 this.comp.setHeightAndMinHeight(px);
38415 this.eventService.dispatchEvent({
38416 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_HEADER_HEIGHT_CHANGED
38417 });
38418 };
38419 GridHeaderCtrl.prototype.onPivotModeChanged = function () {
38420 var pivotMode = this.columnModel.isPivotMode();
38421 this.comp.addOrRemoveCssClass('ag-pivot-on', pivotMode);
38422 this.comp.addOrRemoveCssClass('ag-pivot-off', !pivotMode);
38423 };
38424 GridHeaderCtrl.prototype.onDisplayedColumnsChanged = function () {
38425 var columns = this.columnModel.getAllDisplayedColumns();
38426 var shouldAllowOverflow = columns.some(function (col) { return col.isSpanHeaderHeight(); });
38427 this.comp.addOrRemoveCssClass('ag-header-allow-overflow', shouldAllowOverflow);
38428 };
38429 GridHeaderCtrl.prototype.onTabKeyDown = function (e) {
38430 var isRtl = this.gridOptionsService.is('enableRtl');
38431 var direction = e.shiftKey !== isRtl
38432 ? _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__["HeaderNavigationDirection"].LEFT
38433 : _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__["HeaderNavigationDirection"].RIGHT;
38434 if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||
38435 this.focusService.focusNextGridCoreContainer(e.shiftKey)) {
38436 e.preventDefault();
38437 }
38438 };
38439 GridHeaderCtrl.prototype.handleKeyDown = function (e) {
38440 var direction = null;
38441 switch (e.key) {
38442 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].LEFT:
38443 direction = _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__["HeaderNavigationDirection"].LEFT;
38444 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].RIGHT:
38445 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(direction)) {
38446 direction = _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__["HeaderNavigationDirection"].RIGHT;
38447 }
38448 this.headerNavigationService.navigateHorizontally(direction, false, e);
38449 break;
38450 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].UP:
38451 direction = _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__["HeaderNavigationDirection"].UP;
38452 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_0__["KeyCode"].DOWN:
38453 if (!Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(direction)) {
38454 direction = _common_headerNavigationService__WEBPACK_IMPORTED_MODULE_6__["HeaderNavigationDirection"].DOWN;
38455 }
38456 if (this.headerNavigationService.navigateVertically(direction, null, e)) {
38457 e.preventDefault();
38458 }
38459 break;
38460 default:
38461 return;
38462 }
38463 };
38464 GridHeaderCtrl.prototype.onFocusOut = function (e) {
38465 var eDocument = this.gridOptionsService.getDocument();
38466 var relatedTarget = e.relatedTarget;
38467 if (!relatedTarget && this.eGui.contains(eDocument.activeElement)) {
38468 return;
38469 }
38470 if (!this.eGui.contains(relatedTarget)) {
38471 this.focusService.clearFocusedHeader();
38472 }
38473 };
38474 __decorate([
38475 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('headerNavigationService')
38476 ], GridHeaderCtrl.prototype, "headerNavigationService", void 0);
38477 __decorate([
38478 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('focusService')
38479 ], GridHeaderCtrl.prototype, "focusService", void 0);
38480 __decorate([
38481 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('columnModel')
38482 ], GridHeaderCtrl.prototype, "columnModel", void 0);
38483 __decorate([
38484 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('ctrlsService')
38485 ], GridHeaderCtrl.prototype, "ctrlsService", void 0);
38486 return GridHeaderCtrl;
38487}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38488
38489
38490
38491/***/ }),
38492/* 170 */
38493/***/ (function(module, __webpack_exports__, __webpack_require__) {
38494
38495"use strict";
38496__webpack_require__.r(__webpack_exports__);
38497/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return HeaderNavigationDirection; });
38498/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return HeaderNavigationService; });
38499/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
38500/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
38501/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21);
38502/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
38503/**
38504 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38505 * @version v29.2.0
38506 * @link https://www.ag-grid.com/
38507 * @license MIT
38508 */
38509var __extends = (undefined && undefined.__extends) || (function () {
38510 var extendStatics = function (d, b) {
38511 extendStatics = Object.setPrototypeOf ||
38512 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38513 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38514 return extendStatics(d, b);
38515 };
38516 return function (d, b) {
38517 extendStatics(d, b);
38518 function __() { this.constructor = d; }
38519 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38520 };
38521})();
38522var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38523 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38524 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38525 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;
38526 return c > 3 && r && Object.defineProperty(target, key, r), r;
38527};
38528
38529
38530
38531
38532var HeaderNavigationDirection;
38533(function (HeaderNavigationDirection) {
38534 HeaderNavigationDirection[HeaderNavigationDirection["UP"] = 0] = "UP";
38535 HeaderNavigationDirection[HeaderNavigationDirection["DOWN"] = 1] = "DOWN";
38536 HeaderNavigationDirection[HeaderNavigationDirection["LEFT"] = 2] = "LEFT";
38537 HeaderNavigationDirection[HeaderNavigationDirection["RIGHT"] = 3] = "RIGHT";
38538})(HeaderNavigationDirection || (HeaderNavigationDirection = {}));
38539var HeaderNavigationService = /** @class */ (function (_super) {
38540 __extends(HeaderNavigationService, _super);
38541 function HeaderNavigationService() {
38542 return _super !== null && _super.apply(this, arguments) || this;
38543 }
38544 HeaderNavigationService.prototype.postConstruct = function () {
38545 var _this = this;
38546 this.ctrlsService.whenReady(function (p) {
38547 _this.gridBodyCon = p.gridBodyCtrl;
38548 });
38549 };
38550 HeaderNavigationService.prototype.getHeaderRowCount = function () {
38551 var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();
38552 return centerHeaderContainer ? centerHeaderContainer.getRowCount() : 0;
38553 };
38554 /*
38555 * This method navigates grid header vertically
38556 * @return {boolean} true to preventDefault on the event that caused this navigation.
38557 */
38558 HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {
38559 if (!fromHeader) {
38560 fromHeader = this.focusService.getFocusedHeader();
38561 }
38562 if (!fromHeader) {
38563 return false;
38564 }
38565 var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;
38566 var rowLen = this.getHeaderRowCount();
38567 var isUp = direction === HeaderNavigationDirection.UP;
38568 var _a = isUp
38569 ? this.headerPositionUtils.getColumnVisibleParent(column, headerRowIndex)
38570 : this.headerPositionUtils.getColumnVisibleChild(column, headerRowIndex), nextRow = _a.nextRow, nextFocusColumn = _a.nextFocusColumn;
38571 var skipColumn = false;
38572 if (nextRow < 0) {
38573 nextRow = 0;
38574 nextFocusColumn = column;
38575 skipColumn = true;
38576 }
38577 if (nextRow >= rowLen) {
38578 nextRow = -1; // -1 indicates the focus should move to grid rows.
38579 }
38580 if (!skipColumn && !nextFocusColumn) {
38581 return false;
38582 }
38583 return this.focusService.focusHeaderPosition({
38584 headerPosition: { headerRowIndex: nextRow, column: nextFocusColumn },
38585 allowUserOverride: true,
38586 event: event
38587 });
38588 };
38589 /*
38590 * This method navigates grid header horizontally
38591 * @return {boolean} true to preventDefault on the event that caused this navigation.
38592 */
38593 HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {
38594 if (fromTab === void 0) { fromTab = false; }
38595 var focusedHeader = this.focusService.getFocusedHeader();
38596 var isLeft = direction === HeaderNavigationDirection.LEFT;
38597 var isRtl = this.gridOptionsService.is('enableRtl');
38598 var nextHeader;
38599 var normalisedDirection;
38600 // either navigating to the left or isRtl (cannot be both)
38601 if (isLeft !== isRtl) {
38602 normalisedDirection = 'Before';
38603 nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);
38604 }
38605 else {
38606 normalisedDirection = 'After';
38607 nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);
38608 }
38609 if (nextHeader || !fromTab) {
38610 return this.focusService.focusHeaderPosition({
38611 headerPosition: nextHeader,
38612 direction: normalisedDirection,
38613 fromTab: fromTab,
38614 allowUserOverride: true,
38615 event: event
38616 });
38617 }
38618 return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);
38619 };
38620 HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {
38621 var currentIndex = focusedHeader.headerRowIndex;
38622 var nextPosition = null;
38623 var nextRowIndex;
38624 if (direction === 'Before') {
38625 if (currentIndex > 0) {
38626 nextRowIndex = currentIndex - 1;
38627 nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');
38628 }
38629 }
38630 else {
38631 nextRowIndex = currentIndex + 1;
38632 nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');
38633 }
38634 return this.focusService.focusHeaderPosition({
38635 headerPosition: nextPosition,
38636 direction: direction,
38637 fromTab: true,
38638 allowUserOverride: true,
38639 event: event
38640 });
38641 };
38642 HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {
38643 if (direction === void 0) { direction = 'After'; }
38644 if (column.getPinned()) {
38645 return;
38646 }
38647 var columnToScrollTo;
38648 if (column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__["ColumnGroup"]) {
38649 var columns = column.getDisplayedLeafColumns();
38650 columnToScrollTo = direction === 'Before' ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(columns) : columns[0];
38651 }
38652 else {
38653 columnToScrollTo = column;
38654 }
38655 this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);
38656 };
38657 __decorate([
38658 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusService')
38659 ], HeaderNavigationService.prototype, "focusService", void 0);
38660 __decorate([
38661 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('headerPositionUtils')
38662 ], HeaderNavigationService.prototype, "headerPositionUtils", void 0);
38663 __decorate([
38664 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
38665 ], HeaderNavigationService.prototype, "ctrlsService", void 0);
38666 __decorate([
38667 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
38668 ], HeaderNavigationService.prototype, "postConstruct", null);
38669 HeaderNavigationService = __decorate([
38670 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('headerNavigationService')
38671 ], HeaderNavigationService);
38672 return HeaderNavigationService;
38673}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
38674
38675
38676
38677/***/ }),
38678/* 171 */
38679/***/ (function(module, __webpack_exports__, __webpack_require__) {
38680
38681"use strict";
38682__webpack_require__.r(__webpack_exports__);
38683/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return HorizontalResizeService; });
38684/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
38685/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
38686/**
38687 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38688 * @version v29.2.0
38689 * @link https://www.ag-grid.com/
38690 * @license MIT
38691 */
38692var __extends = (undefined && undefined.__extends) || (function () {
38693 var extendStatics = function (d, b) {
38694 extendStatics = Object.setPrototypeOf ||
38695 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38696 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38697 return extendStatics(d, b);
38698 };
38699 return function (d, b) {
38700 extendStatics(d, b);
38701 function __() { this.constructor = d; }
38702 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38703 };
38704})();
38705var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38706 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38707 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38708 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;
38709 return c > 3 && r && Object.defineProperty(target, key, r), r;
38710};
38711
38712
38713var HorizontalResizeService = /** @class */ (function (_super) {
38714 __extends(HorizontalResizeService, _super);
38715 function HorizontalResizeService() {
38716 return _super !== null && _super.apply(this, arguments) || this;
38717 }
38718 HorizontalResizeService.prototype.addResizeBar = function (params) {
38719 var _this = this;
38720 var dragSource = {
38721 dragStartPixels: params.dragStartPixels || 0,
38722 eElement: params.eResizeBar,
38723 onDragStart: this.onDragStart.bind(this, params),
38724 onDragStop: this.onDragStop.bind(this, params),
38725 onDragging: this.onDragging.bind(this, params)
38726 };
38727 this.dragService.addDragSource(dragSource, true);
38728 // we pass remove func back to the caller, so call can tell us when they
38729 // are finished, and then we remove the listener from the drag source
38730 var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };
38731 return finishedWithResizeFunc;
38732 };
38733 HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {
38734 this.dragStartX = mouseEvent.clientX;
38735 this.setResizeIcons();
38736 var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;
38737 params.onResizeStart(shiftKey);
38738 };
38739 HorizontalResizeService.prototype.setResizeIcons = function () {
38740 var ctrl = this.ctrlsService.getGridCtrl();
38741 // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'
38742 ctrl.setResizeCursor(true);
38743 // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)
38744 ctrl.disableUserSelect(true);
38745 };
38746 HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {
38747 params.onResizeEnd(this.resizeAmount);
38748 this.resetIcons();
38749 };
38750 HorizontalResizeService.prototype.resetIcons = function () {
38751 var ctrl = this.ctrlsService.getGridCtrl();
38752 ctrl.setResizeCursor(false);
38753 ctrl.disableUserSelect(false);
38754 };
38755 HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {
38756 this.resizeAmount = mouseEvent.clientX - this.dragStartX;
38757 params.onResizing(this.resizeAmount);
38758 };
38759 __decorate([
38760 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragService')
38761 ], HorizontalResizeService.prototype, "dragService", void 0);
38762 __decorate([
38763 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
38764 ], HorizontalResizeService.prototype, "ctrlsService", void 0);
38765 HorizontalResizeService = __decorate([
38766 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('horizontalResizeService')
38767 ], HorizontalResizeService);
38768 return HorizontalResizeService;
38769}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38770
38771
38772
38773/***/ }),
38774/* 172 */
38775/***/ (function(module, __webpack_exports__, __webpack_require__) {
38776
38777"use strict";
38778__webpack_require__.r(__webpack_exports__);
38779/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return StandardMenuFactory; });
38780/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
38781/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
38782/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
38783/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);
38784/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(41);
38785/**
38786 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38787 * @version v29.2.0
38788 * @link https://www.ag-grid.com/
38789 * @license MIT
38790 */
38791var __extends = (undefined && undefined.__extends) || (function () {
38792 var extendStatics = function (d, b) {
38793 extendStatics = Object.setPrototypeOf ||
38794 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38795 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38796 return extendStatics(d, b);
38797 };
38798 return function (d, b) {
38799 extendStatics(d, b);
38800 function __() { this.constructor = d; }
38801 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38802 };
38803})();
38804var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38805 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38806 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38807 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;
38808 return c > 3 && r && Object.defineProperty(target, key, r), r;
38809};
38810
38811
38812
38813
38814
38815var StandardMenuFactory = /** @class */ (function (_super) {
38816 __extends(StandardMenuFactory, _super);
38817 function StandardMenuFactory() {
38818 return _super !== null && _super.apply(this, arguments) || this;
38819 }
38820 StandardMenuFactory.prototype.hideActiveMenu = function () {
38821 if (this.hidePopup) {
38822 this.hidePopup();
38823 }
38824 };
38825 StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {
38826 var _this = this;
38827 this.showPopup(column, function (eMenu) {
38828 _this.popupService.positionPopupUnderMouseEvent({
38829 column: column,
38830 type: 'columnMenu',
38831 mouseEvent: mouseEvent,
38832 ePopup: eMenu
38833 });
38834 }, 'columnMenu', mouseEvent.target);
38835 };
38836 StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType) {
38837 var _this = this;
38838 this.showPopup(column, function (eMenu) {
38839 _this.popupService.positionPopupByComponent({
38840 type: containerType,
38841 eventSource: eventSource,
38842 ePopup: eMenu,
38843 keepWithinBounds: true,
38844 position: 'under',
38845 column: column,
38846 shouldSetMaxHeight: true
38847 });
38848 }, containerType, eventSource);
38849 };
38850 StandardMenuFactory.prototype.showPopup = function (column, positionCallback, containerType, eventSource) {
38851 var _this = this;
38852 var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');
38853 if (!filterWrapper) {
38854 throw new Error('AG Grid - unable to show popup filter, filter instantiation failed');
38855 }
38856 var eMenu = document.createElement('div');
38857 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_4__["setAriaRole"])(eMenu, 'presentation');
38858 eMenu.classList.add('ag-menu');
38859 this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });
38860 filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });
38861 var hidePopup;
38862 var afterGuiDetached = function () { var _a; return (_a = filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.then(function (filter) { var _a; return (_a = filter === null || filter === void 0 ? void 0 : filter.afterGuiDetached) === null || _a === void 0 ? void 0 : _a.call(filter); }); };
38863 var anchorToElement = eventSource || this.ctrlsService.getGridBodyCtrl().getGui();
38864 var closedCallback = function (e) {
38865 column.setMenuVisible(false, 'contextMenu');
38866 var isKeyboardEvent = e instanceof KeyboardEvent;
38867 if (_this.tabListener) {
38868 _this.tabListener = _this.tabListener();
38869 }
38870 if (isKeyboardEvent && eventSource && Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isVisible"])(eventSource)) {
38871 var focusableEl = _this.focusService.findTabbableParent(eventSource);
38872 if (focusableEl) {
38873 focusableEl.focus();
38874 }
38875 }
38876 afterGuiDetached();
38877 };
38878 var translate = this.localeService.getLocaleTextFunc();
38879 var addPopupRes = this.popupService.addPopup({
38880 modal: true,
38881 eChild: eMenu,
38882 closeOnEsc: true,
38883 closedCallback: closedCallback,
38884 positionCallback: function () { return positionCallback(eMenu); },
38885 anchorToElement: anchorToElement,
38886 ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')
38887 });
38888 if (addPopupRes) {
38889 this.hidePopup = hidePopup = addPopupRes.hideFunc;
38890 }
38891 filterWrapper.filterPromise.then(function (filter) {
38892 // need to make sure the filter is present before positioning, as only
38893 // after filter it is visible can we find out what the width of it is
38894 positionCallback(eMenu);
38895 if (filter.afterGuiAttached) {
38896 filter.afterGuiAttached({ container: containerType, hidePopup: hidePopup });
38897 }
38898 });
38899 column.setMenuVisible(true, 'contextMenu');
38900 };
38901 StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {
38902 if (e.key !== _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].TAB ||
38903 e.defaultPrevented ||
38904 this.focusService.findNextFocusableElement(menu, false, e.shiftKey)) {
38905 return;
38906 }
38907 e.preventDefault();
38908 this.focusService.focusInto(menu, e.shiftKey);
38909 };
38910 StandardMenuFactory.prototype.isMenuEnabled = function (column) {
38911 // for standard, we show menu if filter is enabled, and the menu is not suppressed
38912 return column.isFilterAllowed();
38913 };
38914 __decorate([
38915 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
38916 ], StandardMenuFactory.prototype, "filterManager", void 0);
38917 __decorate([
38918 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
38919 ], StandardMenuFactory.prototype, "popupService", void 0);
38920 __decorate([
38921 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
38922 ], StandardMenuFactory.prototype, "focusService", void 0);
38923 __decorate([
38924 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
38925 ], StandardMenuFactory.prototype, "ctrlsService", void 0);
38926 StandardMenuFactory = __decorate([
38927 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('menuFactory')
38928 ], StandardMenuFactory);
38929 return StandardMenuFactory;
38930}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
38931
38932
38933
38934/***/ }),
38935/* 173 */
38936/***/ (function(module, __webpack_exports__, __webpack_require__) {
38937
38938"use strict";
38939__webpack_require__.r(__webpack_exports__);
38940/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return TabbedLayout; });
38941/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);
38942/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64);
38943/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
38944/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41);
38945/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
38946/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
38947/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38);
38948/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11);
38949/**
38950 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
38951 * @version v29.2.0
38952 * @link https://www.ag-grid.com/
38953 * @license MIT
38954 */
38955var __extends = (undefined && undefined.__extends) || (function () {
38956 var extendStatics = function (d, b) {
38957 extendStatics = Object.setPrototypeOf ||
38958 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
38959 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
38960 return extendStatics(d, b);
38961 };
38962 return function (d, b) {
38963 extendStatics(d, b);
38964 function __() { this.constructor = d; }
38965 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
38966 };
38967})();
38968var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38969 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38970 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38971 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;
38972 return c > 3 && r && Object.defineProperty(target, key, r), r;
38973};
38974
38975
38976
38977
38978
38979
38980
38981
38982var TabbedLayout = /** @class */ (function (_super) {
38983 __extends(TabbedLayout, _super);
38984 function TabbedLayout(params) {
38985 var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;
38986 _this.items = [];
38987 _this.tabbedItemScrollMap = new Map();
38988 _this.params = params;
38989 if (params.items) {
38990 params.items.forEach(function (item) { return _this.addItem(item); });
38991 }
38992 return _this;
38993 }
38994 TabbedLayout.prototype.postConstruct = function () {
38995 var _this = this;
38996 this.createManagedBean(new _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_1__["ManagedFocusFeature"](this.getFocusableElement(), {
38997 onTabKeyDown: this.onTabKeyDown.bind(this),
38998 handleKeyDown: this.handleKeyDown.bind(this)
38999 }));
39000 this.addDestroyFunc(function () { var _a, _b, _c; return (_c = (_b = (_a = _this.activeItem) === null || _a === void 0 ? void 0 : _a.tabbedItem) === null || _b === void 0 ? void 0 : _b.afterDetachedCallback) === null || _c === void 0 ? void 0 : _c.call(_b); });
39001 };
39002 TabbedLayout.getTemplate = function (cssClass) {
39003 return /* html */ "<div class=\"ag-tabs " + cssClass + "\">\n <div ref=\"eHeader\" role=\"tablist\" class=\"ag-tabs-header " + (cssClass ? cssClass + "-header" : '') + "\"></div>\n <div ref=\"eBody\" role=\"presentation\" class=\"ag-tabs-body " + (cssClass ? cssClass + "-body" : '') + "\"></div>\n </div>";
39004 };
39005 TabbedLayout.prototype.handleKeyDown = function (e) {
39006 var eDocument = this.gridOptionsService.getDocument();
39007 switch (e.key) {
39008 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT:
39009 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].LEFT:
39010 if (!this.eHeader.contains(eDocument.activeElement)) {
39011 return;
39012 }
39013 var isRightKey = e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT;
39014 var isRtl = this.gridOptionsService.is('enableRtl');
39015 var currentPosition = this.items.indexOf(this.activeItem);
39016 var nextPosition = isRightKey !== isRtl ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);
39017 if (currentPosition === nextPosition) {
39018 return;
39019 }
39020 e.preventDefault();
39021 var nextItem = this.items[nextPosition];
39022 this.showItemWrapper(nextItem);
39023 nextItem.eHeaderButton.focus();
39024 break;
39025 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].UP:
39026 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].DOWN:
39027 e.stopPropagation();
39028 break;
39029 }
39030 };
39031 TabbedLayout.prototype.onTabKeyDown = function (e) {
39032 if (e.defaultPrevented) {
39033 return;
39034 }
39035 var _a = this, focusService = _a.focusService, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;
39036 var eDocument = this.gridOptionsService.getDocument();
39037 var activeElement = eDocument.activeElement;
39038 var target = e.target;
39039 e.preventDefault();
39040 if (eHeader.contains(activeElement)) {
39041 // focus is in header, move into body of popup
39042 focusService.focusInto(eBody, e.shiftKey);
39043 return;
39044 }
39045 var nextEl = null;
39046 if (focusService.isTargetUnderManagedComponent(eBody, target)) {
39047 if (e.shiftKey) {
39048 nextEl = this.focusService.findFocusableElementBeforeTabGuard(eBody, target);
39049 }
39050 if (!nextEl) {
39051 nextEl = activeItem.eHeaderButton;
39052 }
39053 }
39054 if (!nextEl && eBody.contains(activeElement)) {
39055 nextEl = focusService.findNextFocusableElement(eBody, false, e.shiftKey);
39056 if (!nextEl) {
39057 nextEl = activeItem.eHeaderButton;
39058 }
39059 }
39060 if (nextEl) {
39061 nextEl.focus();
39062 }
39063 };
39064 TabbedLayout.prototype.setAfterAttachedParams = function (params) {
39065 this.afterAttachedParams = params;
39066 };
39067 TabbedLayout.prototype.showFirstItem = function () {
39068 if (this.items.length > 0) {
39069 this.showItemWrapper(this.items[0]);
39070 }
39071 };
39072 TabbedLayout.prototype.addItem = function (item) {
39073 var eHeaderButton = document.createElement('span');
39074 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaRole"])(eHeaderButton, 'tab');
39075 eHeaderButton.setAttribute('tabIndex', '-1');
39076 eHeaderButton.appendChild(item.title);
39077 eHeaderButton.classList.add('ag-tab');
39078 this.eHeader.appendChild(eHeaderButton);
39079 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaLabel"])(eHeaderButton, item.titleLabel);
39080 var wrapper = {
39081 tabbedItem: item,
39082 eHeaderButton: eHeaderButton
39083 };
39084 this.items.push(wrapper);
39085 eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));
39086 };
39087 TabbedLayout.prototype.showItem = function (tabbedItem) {
39088 var itemWrapper = this.items.find(function (wrapper) { return wrapper.tabbedItem === tabbedItem; });
39089 if (itemWrapper) {
39090 this.showItemWrapper(itemWrapper);
39091 }
39092 };
39093 TabbedLayout.prototype.showItemWrapper = function (wrapper) {
39094 var _this = this;
39095 var _a, _b;
39096 var tabbedItem = wrapper.tabbedItem, eHeaderButton = wrapper.eHeaderButton;
39097 if (this.params.onItemClicked) {
39098 this.params.onItemClicked({ item: tabbedItem });
39099 }
39100 if (this.activeItem === wrapper) {
39101 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["callIfPresent"])(this.params.onActiveItemClicked);
39102 return;
39103 }
39104 if (this.lastScrollListener) {
39105 this.lastScrollListener = this.lastScrollListener();
39106 }
39107 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["clearElement"])(this.eBody);
39108 tabbedItem.bodyPromise.then(function (body) {
39109 _this.eBody.appendChild(body);
39110 var onlyUnmanaged = !_this.focusService.isKeyboardMode();
39111 _this.focusService.focusInto(_this.eBody, false, onlyUnmanaged);
39112 if (tabbedItem.afterAttachedCallback) {
39113 tabbedItem.afterAttachedCallback(_this.afterAttachedParams);
39114 }
39115 if (_this.params.keepScrollPosition) {
39116 var scrollableContainer_1 = (tabbedItem.getScrollableContainer && tabbedItem.getScrollableContainer()) || body;
39117 _this.lastScrollListener = _this.addManagedListener(scrollableContainer_1, 'scroll', function () {
39118 _this.tabbedItemScrollMap.set(tabbedItem.name, scrollableContainer_1.scrollTop);
39119 });
39120 var scrollPosition_1 = _this.tabbedItemScrollMap.get(tabbedItem.name);
39121 if (scrollPosition_1 !== undefined) {
39122 // Safari needs a small timeout or it will fire a scroll event to position 0
39123 setTimeout(function () {
39124 scrollableContainer_1.scrollTop = scrollPosition_1;
39125 }, 0);
39126 }
39127 }
39128 });
39129 if (this.activeItem) {
39130 this.activeItem.eHeaderButton.classList.remove('ag-tab-selected');
39131 (_b = (_a = this.activeItem.tabbedItem).afterDetachedCallback) === null || _b === void 0 ? void 0 : _b.call(_a);
39132 }
39133 eHeaderButton.classList.add('ag-tab-selected');
39134 this.activeItem = wrapper;
39135 };
39136 __decorate([
39137 Object(_context_context__WEBPACK_IMPORTED_MODULE_7__["Autowired"])('focusService')
39138 ], TabbedLayout.prototype, "focusService", void 0);
39139 __decorate([
39140 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eHeader')
39141 ], TabbedLayout.prototype, "eHeader", void 0);
39142 __decorate([
39143 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eBody')
39144 ], TabbedLayout.prototype, "eBody", void 0);
39145 __decorate([
39146 _context_context__WEBPACK_IMPORTED_MODULE_7__["PostConstruct"]
39147 ], TabbedLayout.prototype, "postConstruct", null);
39148 return TabbedLayout;
39149}(_widgets_component__WEBPACK_IMPORTED_MODULE_6__["Component"]));
39150
39151
39152
39153/***/ }),
39154/* 174 */
39155/***/ (function(module, __webpack_exports__, __webpack_require__) {
39156
39157"use strict";
39158__webpack_require__.r(__webpack_exports__);
39159/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return simpleHttpRequest; });
39160/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
39161/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13);
39162/**
39163 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
39164 * @version v29.2.0
39165 * @link https://www.ag-grid.com/
39166 * @license MIT
39167 */
39168
39169
39170/**
39171 * @deprecated Since v29 simpleHttpRequest has been deprecated as it was only meant for use in internal AG Grid documentation examples. Please use the browser fetch api directly.
39172 */
39173function simpleHttpRequest(params) {
39174 Object(_utils_function__WEBPACK_IMPORTED_MODULE_1__["doOnce"])(function () { return console.warn("AG Grid: Since v29 simpleHttpRequest has been deprecated as it was only meant for use in internal AG Grid documentation examples. Please use the browser fetch api directly."); }, 'simpleHttpRequest');
39175 return new _utils__WEBPACK_IMPORTED_MODULE_0__["AgPromise"](function (resolve) {
39176 var httpRequest = new XMLHttpRequest();
39177 httpRequest.open('GET', params.url);
39178 httpRequest.send();
39179 httpRequest.onreadystatechange = function () {
39180 if (httpRequest.readyState === 4 && httpRequest.status === 200) {
39181 resolve(JSON.parse(httpRequest.responseText));
39182 }
39183 };
39184 });
39185}
39186
39187
39188/***/ }),
39189/* 175 */
39190/***/ (function(module, __webpack_exports__, __webpack_require__) {
39191
39192"use strict";
39193__webpack_require__.r(__webpack_exports__);
39194/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return ResizeObserverService; });
39195/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
39196/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
39197/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13);
39198/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
39199/**
39200 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
39201 * @version v29.2.0
39202 * @link https://www.ag-grid.com/
39203 * @license MIT
39204 */
39205var __extends = (undefined && undefined.__extends) || (function () {
39206 var extendStatics = function (d, b) {
39207 extendStatics = Object.setPrototypeOf ||
39208 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39209 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
39210 return extendStatics(d, b);
39211 };
39212 return function (d, b) {
39213 extendStatics(d, b);
39214 function __() { this.constructor = d; }
39215 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39216 };
39217})();
39218var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39219 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39220 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39221 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;
39222 return c > 3 && r && Object.defineProperty(target, key, r), r;
39223};
39224
39225
39226
39227
39228var DEBOUNCE_DELAY = 50;
39229var ResizeObserverService = /** @class */ (function (_super) {
39230 __extends(ResizeObserverService, _super);
39231 function ResizeObserverService() {
39232 var _this = _super !== null && _super.apply(this, arguments) || this;
39233 _this.polyfillFunctions = [];
39234 return _this;
39235 }
39236 ResizeObserverService.prototype.observeResize = function (element, callback) {
39237 var _this = this;
39238 var eDocument = this.gridOptionsService.getDocument();
39239 var win = (eDocument.defaultView || window);
39240 // this gets fired too often and might cause some relayout issues
39241 // so we add a debounce to the callback here to avoid the flashing effect.
39242 var debouncedCallback = Object(_utils_function__WEBPACK_IMPORTED_MODULE_2__["debounce"])(callback, DEBOUNCE_DELAY);
39243 var useBrowserResizeObserver = function () {
39244 var resizeObserver = new win.ResizeObserver(debouncedCallback);
39245 resizeObserver.observe(element);
39246 return function () { return resizeObserver.disconnect(); };
39247 };
39248 var usePolyfill = function () {
39249 // initialise to the current width and height, so first call will have no changes
39250 var widthLastTime = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetWidth"])(element);
39251 var heightLastTime = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetHeight"])(element);
39252 // when finished, this gets turned to false.
39253 var running = true;
39254 var periodicallyCheckWidthAndHeight = function () {
39255 if (running) {
39256 var newWidth = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetWidth"])(element);
39257 var newHeight = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["offsetHeight"])(element);
39258 var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;
39259 if (changed) {
39260 widthLastTime = newWidth;
39261 heightLastTime = newHeight;
39262 callback();
39263 }
39264 _this.doNextPolyfillTurn(periodicallyCheckWidthAndHeight);
39265 }
39266 };
39267 periodicallyCheckWidthAndHeight();
39268 // the callback function we return sets running to false
39269 return function () { return running = false; };
39270 };
39271 var suppressResize = this.gridOptionsService.is('suppressBrowserResizeObserver');
39272 var resizeObserverExists = !!win.ResizeObserver;
39273 if (resizeObserverExists && !suppressResize) {
39274 return useBrowserResizeObserver();
39275 }
39276 return usePolyfill();
39277 };
39278 ResizeObserverService.prototype.doNextPolyfillTurn = function (func) {
39279 this.polyfillFunctions.push(func);
39280 this.schedulePolyfill();
39281 };
39282 ResizeObserverService.prototype.schedulePolyfill = function () {
39283 var _this = this;
39284 if (this.polyfillScheduled) {
39285 return;
39286 }
39287 var executeAllFuncs = function () {
39288 var funcs = _this.polyfillFunctions;
39289 // make sure set scheduled to false and clear clear array
39290 // before executing the funcs, as the funcs could add more funcs
39291 _this.polyfillScheduled = false;
39292 _this.polyfillFunctions = [];
39293 funcs.forEach(function (f) { return f(); });
39294 };
39295 this.polyfillScheduled = true;
39296 this.getFrameworkOverrides().setTimeout(executeAllFuncs, DEBOUNCE_DELAY);
39297 };
39298 ResizeObserverService = __decorate([
39299 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('resizeObserverService')
39300 ], ResizeObserverService);
39301 return ResizeObserverService;
39302}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39303
39304
39305
39306/***/ }),
39307/* 176 */
39308/***/ (function(module, __webpack_exports__, __webpack_require__) {
39309
39310"use strict";
39311__webpack_require__.r(__webpack_exports__);
39312/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return AnimationFrameService; });
39313/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
39314/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
39315/**
39316 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
39317 * @version v29.2.0
39318 * @link https://www.ag-grid.com/
39319 * @license MIT
39320 */
39321var __extends = (undefined && undefined.__extends) || (function () {
39322 var extendStatics = function (d, b) {
39323 extendStatics = Object.setPrototypeOf ||
39324 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39325 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
39326 return extendStatics(d, b);
39327 };
39328 return function (d, b) {
39329 extendStatics(d, b);
39330 function __() { this.constructor = d; }
39331 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39332 };
39333})();
39334var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39335 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39336 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39337 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;
39338 return c > 3 && r && Object.defineProperty(target, key, r), r;
39339};
39340
39341
39342var AnimationFrameService = /** @class */ (function (_super) {
39343 __extends(AnimationFrameService, _super);
39344 function AnimationFrameService() {
39345 var _this = _super !== null && _super.apply(this, arguments) || this;
39346 // p1 and p2 are create tasks are to do with row and cell creation.
39347 // for them we want to execute according to row order, so we use
39348 // TaskItem so we know what index the item is for.
39349 _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows
39350 _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality
39351 // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new
39352 // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as
39353 // important.
39354 _this.destroyTasks = [];
39355 _this.ticking = false;
39356 // we need to know direction of scroll, to build up rows in the direction of
39357 // the scroll. eg if user scrolls down, we extend the rows by building down.
39358 _this.scrollGoingDown = true;
39359 _this.lastPage = 0;
39360 _this.lastScrollTop = 0;
39361 _this.taskCount = 0;
39362 _this.cancelledTasks = new Set();
39363 return _this;
39364 }
39365 AnimationFrameService.prototype.setScrollTop = function (scrollTop) {
39366 var isPaginationActive = this.gridOptionsService.is('pagination');
39367 this.scrollGoingDown = scrollTop >= this.lastScrollTop;
39368 if (isPaginationActive && scrollTop === 0) {
39369 var currentPage = this.paginationProxy.getCurrentPage();
39370 if (currentPage !== this.lastPage) {
39371 this.lastPage = currentPage;
39372 this.scrollGoingDown = true;
39373 }
39374 }
39375 this.lastScrollTop = scrollTop;
39376 };
39377 AnimationFrameService.prototype.init = function () {
39378 this.useAnimationFrame = !this.gridOptionsService.is('suppressAnimationFrame');
39379 };
39380 AnimationFrameService.prototype.isOn = function () {
39381 return this.useAnimationFrame;
39382 };
39383 // this method is for our AG Grid sanity only - if animation frames are turned off,
39384 // then no place in the code should be looking to add any work to be done in animation
39385 // frames. this stops bugs - where some code is asking for a frame to be executed
39386 // when it should not.
39387 AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {
39388 if (this.useAnimationFrame === false) {
39389 console.warn("AG Grid: AnimationFrameService." + methodName + " called but animation frames are off");
39390 }
39391 };
39392 AnimationFrameService.prototype.createTask = function (task, index, list) {
39393 this.verifyAnimationFrameOn(list);
39394 var taskItem = { task: task, index: index, createOrder: ++this.taskCount };
39395 this.addTaskToList(this[list], taskItem);
39396 this.schedule();
39397 };
39398 AnimationFrameService.prototype.cancelTask = function (task) {
39399 this.cancelledTasks.add(task);
39400 };
39401 AnimationFrameService.prototype.addTaskToList = function (taskList, task) {
39402 taskList.list.push(task);
39403 taskList.sorted = false;
39404 };
39405 AnimationFrameService.prototype.sortTaskList = function (taskList) {
39406 if (taskList.sorted) {
39407 return;
39408 }
39409 var sortDirection = this.scrollGoingDown ? 1 : -1;
39410 // sort first by row index (taking into account scroll direction), then by
39411 // order of task creation (always ascending, so cells will render left-to-right)
39412 taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });
39413 taskList.sorted = true;
39414 };
39415 AnimationFrameService.prototype.addDestroyTask = function (task) {
39416 this.verifyAnimationFrameOn('createTasksP3');
39417 this.destroyTasks.push(task);
39418 this.schedule();
39419 };
39420 AnimationFrameService.prototype.executeFrame = function (millis) {
39421 this.verifyAnimationFrameOn('executeFrame');
39422 var p1TaskList = this.createTasksP1;
39423 var p1Tasks = p1TaskList.list;
39424 var p2TaskList = this.createTasksP2;
39425 var p2Tasks = p2TaskList.list;
39426 var destroyTasks = this.destroyTasks;
39427 var frameStart = new Date().getTime();
39428 var duration = (new Date().getTime()) - frameStart;
39429 // 16ms is 60 fps
39430 var noMaxMillis = millis <= 0;
39431 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
39432 while (noMaxMillis || duration < millis) {
39433 var gridBodyDidSomething = gridBodyCon.getScrollFeature().scrollGridIfNeeded();
39434 if (!gridBodyDidSomething) {
39435 var task = void 0;
39436 if (p1Tasks.length) {
39437 this.sortTaskList(p1TaskList);
39438 task = p1Tasks.pop().task;
39439 }
39440 else if (p2Tasks.length) {
39441 this.sortTaskList(p2TaskList);
39442 task = p2Tasks.pop().task;
39443 }
39444 else if (destroyTasks.length) {
39445 task = destroyTasks.pop();
39446 }
39447 else {
39448 this.cancelledTasks.clear();
39449 break;
39450 }
39451 if (!this.cancelledTasks.has(task)) {
39452 task();
39453 }
39454 }
39455 duration = (new Date().getTime()) - frameStart;
39456 }
39457 if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {
39458 this.requestFrame();
39459 }
39460 else {
39461 this.stopTicking();
39462 }
39463 };
39464 AnimationFrameService.prototype.stopTicking = function () {
39465 this.ticking = false;
39466 };
39467 AnimationFrameService.prototype.flushAllFrames = function () {
39468 if (!this.useAnimationFrame) {
39469 return;
39470 }
39471 this.executeFrame(-1);
39472 };
39473 AnimationFrameService.prototype.schedule = function () {
39474 if (!this.useAnimationFrame) {
39475 return;
39476 }
39477 if (!this.ticking) {
39478 this.ticking = true;
39479 this.requestFrame();
39480 }
39481 };
39482 AnimationFrameService.prototype.requestFrame = function () {
39483 // check for the existence of requestAnimationFrame, and if
39484 // it's missing, then we polyfill it with setTimeout()
39485 var callback = this.executeFrame.bind(this, 60);
39486 var eDocument = this.gridOptionsService.getDocument();
39487 var win = (eDocument.defaultView || window);
39488 if (win.requestAnimationFrame) {
39489 win.requestAnimationFrame(callback);
39490 }
39491 else if (win.webkitRequestAnimationFrame) {
39492 win.webkitRequestAnimationFrame(callback);
39493 }
39494 else {
39495 win.setTimeout(callback, 0);
39496 }
39497 };
39498 AnimationFrameService.prototype.isQueueEmpty = function () {
39499 return !this.ticking;
39500 };
39501 // a debounce utility used for parts of the app involved with rendering.
39502 // the advantage over normal debounce is the client can call flushAllFrames()
39503 // to make sure all rendering is complete. we don't wait any milliseconds,
39504 // as this is intended to batch calls in one VM turn.
39505 AnimationFrameService.prototype.debounce = function (func) {
39506 var _this = this;
39507 var pending = false;
39508 return function () {
39509 if (!_this.isOn()) {
39510 _this.getFrameworkOverrides().setTimeout(func, 0);
39511 return;
39512 }
39513 if (pending) {
39514 return;
39515 }
39516 pending = true;
39517 _this.addDestroyTask(function () {
39518 pending = false;
39519 func();
39520 });
39521 };
39522 };
39523 __decorate([
39524 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
39525 ], AnimationFrameService.prototype, "ctrlsService", void 0);
39526 __decorate([
39527 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
39528 ], AnimationFrameService.prototype, "paginationProxy", void 0);
39529 __decorate([
39530 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
39531 ], AnimationFrameService.prototype, "init", null);
39532 AnimationFrameService = __decorate([
39533 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('animationFrameService')
39534 ], AnimationFrameService);
39535 return AnimationFrameService;
39536}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39537
39538
39539
39540/***/ }),
39541/* 177 */
39542/***/ (function(module, __webpack_exports__, __webpack_require__) {
39543
39544"use strict";
39545__webpack_require__.r(__webpack_exports__);
39546/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return AutoWidthCalculator; });
39547/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
39548/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
39549/**
39550 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
39551 * @version v29.2.0
39552 * @link https://www.ag-grid.com/
39553 * @license MIT
39554 */
39555var __extends = (undefined && undefined.__extends) || (function () {
39556 var extendStatics = function (d, b) {
39557 extendStatics = Object.setPrototypeOf ||
39558 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39559 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
39560 return extendStatics(d, b);
39561 };
39562 return function (d, b) {
39563 extendStatics(d, b);
39564 function __() { this.constructor = d; }
39565 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39566 };
39567})();
39568var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39569 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39570 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39571 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;
39572 return c > 3 && r && Object.defineProperty(target, key, r), r;
39573};
39574
39575
39576var AutoWidthCalculator = /** @class */ (function (_super) {
39577 __extends(AutoWidthCalculator, _super);
39578 function AutoWidthCalculator() {
39579 return _super !== null && _super.apply(this, arguments) || this;
39580 }
39581 AutoWidthCalculator.prototype.postConstruct = function () {
39582 var _this = this;
39583 this.ctrlsService.whenReady(function (p) {
39584 _this.centerRowContainerCtrl = p.centerRowContainerCtrl;
39585 });
39586 };
39587 // this is the trick: we create a dummy container and clone all the cells
39588 // into the dummy, then check the dummy's width. then destroy the dummy
39589 // as we don't need it any more.
39590 // drawback: only the cells visible on the screen are considered
39591 AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {
39592 var eHeaderCell = this.getHeaderCellForColumn(column);
39593 // cell isn't visible
39594 if (!eHeaderCell) {
39595 return -1;
39596 }
39597 var elements = this.rowRenderer.getAllCellsForColumn(column);
39598 if (!skipHeader) {
39599 // we only consider the lowest level cell, not the group cell. in 99% of the time, this
39600 // will be enough. if we consider groups, then it gets too complicated for what it's worth,
39601 // as the groups can span columns and this class only considers one column at a time.
39602 elements.push(eHeaderCell);
39603 }
39604 return this.addElementsToContainerAndGetWidth(elements);
39605 };
39606 AutoWidthCalculator.prototype.getPreferredWidthForColumnGroup = function (columnGroup) {
39607 var eHeaderCell = this.getHeaderCellForColumn(columnGroup);
39608 if (!eHeaderCell) {
39609 return -1;
39610 }
39611 return this.addElementsToContainerAndGetWidth([eHeaderCell]);
39612 };
39613 AutoWidthCalculator.prototype.addElementsToContainerAndGetWidth = function (elements) {
39614 var _this = this;
39615 // this element has to be a form, otherwise form elements within a cell
39616 // will be validated while being cloned. This can cause issues such as
39617 // radio buttons being reset and losing their values.
39618 var eDummyContainer = document.createElement('form');
39619 // position fixed, so it isn't restricted to the boundaries of the parent
39620 eDummyContainer.style.position = 'fixed';
39621 // we put the dummy into the body container, so it will inherit all the
39622 // css styles that the real cells are inheriting
39623 var eBodyContainer = this.centerRowContainerCtrl.getContainerElement();
39624 eBodyContainer.appendChild(eDummyContainer);
39625 elements.forEach(function (el) { return _this.cloneItemIntoDummy(el, eDummyContainer); });
39626 // at this point, all the clones are lined up vertically with natural widths. the dummy
39627 // container will have a width wide enough just to fit the largest.
39628 var dummyContainerWidth = eDummyContainer.offsetWidth;
39629 // we are finished with the dummy container, so get rid of it
39630 eBodyContainer.removeChild(eDummyContainer);
39631 // we add padding as I found sometimes the gui still put '...' after some of the texts. so the
39632 // user can configure the grid to add a few more pixels after the calculated width
39633 var autoSizePadding = this.getAutoSizePadding();
39634 return dummyContainerWidth + autoSizePadding;
39635 };
39636 AutoWidthCalculator.prototype.getAutoSizePadding = function () {
39637 var value = this.gridOptionsService.getNum('autoSizePadding');
39638 return value != null && value >= 0 ? value : 20;
39639 };
39640 AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {
39641 /* tslint:enable */
39642 var element = null;
39643 this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (container) {
39644 var res = container.getHtmlElementForColumnHeader(column);
39645 if (res != null) {
39646 element = res;
39647 }
39648 });
39649 return element;
39650 };
39651 AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {
39652 // make a deep clone of the cell
39653 var eCellClone = eCell.cloneNode(true);
39654 // the original has a fixed width, we remove this to allow the natural width based on content
39655 eCellClone.style.width = '';
39656 // the original has position = absolute, we need to remove this so it's positioned normally
39657 eCellClone.style.position = 'static';
39658 eCellClone.style.left = '';
39659 // we put the cell into a containing div, as otherwise the cells would just line up
39660 // on the same line, standard flow layout, by putting them into divs, they are laid
39661 // out one per line
39662 var eCloneParent = document.createElement('div');
39663 var eCloneParentClassList = eCloneParent.classList;
39664 var isHeader = ['ag-header-cell', 'ag-header-group-cell'].some(function (cls) { return eCellClone.classList.contains(cls); });
39665 if (isHeader) {
39666 eCloneParentClassList.add('ag-header', 'ag-header-row');
39667 eCloneParent.style.position = 'static';
39668 }
39669 else {
39670 eCloneParentClassList.add('ag-row');
39671 }
39672 // find parent using classes (headers have ag-header-cell, rows have ag-row), and copy classes from it.
39673 // if we didn't do this, things like ag-row-level-2 would be missing if present, which sets indents
39674 // onto group items.
39675 var pointer = eCell.parentElement;
39676 while (pointer) {
39677 var isRow = ['ag-header-row', 'ag-row'].some(function (cls) { return pointer.classList.contains(cls); });
39678 if (isRow) {
39679 for (var i = 0; i < pointer.classList.length; i++) {
39680 var item = pointer.classList[i];
39681 // we skip ag-row-position-absolute, as this has structural CSS applied that stops the
39682 // element from fitting into it's parent, and we need the element to stretch the parent
39683 // as we are measuring the parents width
39684 if (item != 'ag-row-position-absolute') {
39685 eCloneParentClassList.add(item);
39686 }
39687 }
39688 break;
39689 }
39690 pointer = pointer.parentElement;
39691 }
39692 // the twig on the branch, the branch on the tree, the tree in the hole,
39693 // the hole in the bog, the bog in the clone, the clone in the parent,
39694 // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....
39695 eCloneParent.appendChild(eCellClone);
39696 eDummyContainer.appendChild(eCloneParent);
39697 };
39698 __decorate([
39699 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
39700 ], AutoWidthCalculator.prototype, "rowRenderer", void 0);
39701 __decorate([
39702 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
39703 ], AutoWidthCalculator.prototype, "ctrlsService", void 0);
39704 __decorate([
39705 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowCssClassCalculator')
39706 ], AutoWidthCalculator.prototype, "rowCssClassCalculator", void 0);
39707 __decorate([
39708 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
39709 ], AutoWidthCalculator.prototype, "postConstruct", null);
39710 AutoWidthCalculator = __decorate([
39711 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('autoWidthCalculator')
39712 ], AutoWidthCalculator);
39713 return AutoWidthCalculator;
39714}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
39715
39716
39717
39718/***/ }),
39719/* 178 */
39720/***/ (function(module, __webpack_exports__, __webpack_require__) {
39721
39722"use strict";
39723__webpack_require__.r(__webpack_exports__);
39724/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return RowRenderer; });
39725/* harmony import */ var _row_rowCtrl__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(124);
39726/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
39727/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
39728/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
39729/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
39730/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12);
39731/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44);
39732/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13);
39733/* harmony import */ var _cell_cellCtrl__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(125);
39734/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(19);
39735/* harmony import */ var _features_stickyRowFeature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(179);
39736/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(42);
39737/**
39738 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
39739 * @version v29.2.0
39740 * @link https://www.ag-grid.com/
39741 * @license MIT
39742 */
39743var __extends = (undefined && undefined.__extends) || (function () {
39744 var extendStatics = function (d, b) {
39745 extendStatics = Object.setPrototypeOf ||
39746 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
39747 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
39748 return extendStatics(d, b);
39749 };
39750 return function (d, b) {
39751 extendStatics(d, b);
39752 function __() { this.constructor = d; }
39753 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
39754 };
39755})();
39756var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
39757 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39758 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
39759 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;
39760 return c > 3 && r && Object.defineProperty(target, key, r), r;
39761};
39762var __read = (undefined && undefined.__read) || function (o, n) {
39763 var m = typeof Symbol === "function" && o[Symbol.iterator];
39764 if (!m) return o;
39765 var i = m.call(o), r, ar = [], e;
39766 try {
39767 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
39768 }
39769 catch (error) { e = { error: error }; }
39770 finally {
39771 try {
39772 if (r && !r.done && (m = i["return"])) m.call(i);
39773 }
39774 finally { if (e) throw e.error; }
39775 }
39776 return ar;
39777};
39778var __spread = (undefined && undefined.__spread) || function () {
39779 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
39780 return ar;
39781};
39782var __values = (undefined && undefined.__values) || function(o) {
39783 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
39784 if (m) return m.call(o);
39785 if (o && typeof o.length === "number") return {
39786 next: function () {
39787 if (o && i >= o.length) o = void 0;
39788 return { value: o && o[i++], done: !o };
39789 }
39790 };
39791 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
39792};
39793
39794
39795
39796
39797
39798
39799
39800
39801
39802
39803
39804
39805var DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;
39806var RowRenderer = /** @class */ (function (_super) {
39807 __extends(RowRenderer, _super);
39808 function RowRenderer() {
39809 var _this = _super !== null && _super.apply(this, arguments) || this;
39810 _this.destroyFuncsForColumnListeners = [];
39811 // map of row ids to row objects. keeps track of which elements
39812 // are rendered for which rows in the dom.
39813 _this.rowCtrlsByRowIndex = {};
39814 _this.zombieRowCtrls = {};
39815 _this.allRowCtrls = [];
39816 _this.topRowCtrls = [];
39817 _this.bottomRowCtrls = [];
39818 // we only allow one refresh at a time, otherwise the internal memory structure here
39819 // will get messed up. this can happen if the user has a cellRenderer, and inside the
39820 // renderer they call an API method that results in another pass of the refresh,
39821 // then it will be trying to draw rows in the middle of a refresh.
39822 _this.refreshInProgress = false;
39823 _this.dataFirstRenderedFired = false;
39824 return _this;
39825 }
39826 RowRenderer.prototype.postConstruct = function () {
39827 var _this = this;
39828 this.ctrlsService.whenReady(function () {
39829 _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();
39830 _this.initialise();
39831 });
39832 };
39833 RowRenderer.prototype.initialise = function () {
39834 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));
39835 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));
39836 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));
39837 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_SCROLL, this.onBodyScroll.bind(this));
39838 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));
39839 this.addManagedPropertyListener('domLayout', this.onDomLayoutChanged.bind(this));
39840 this.addManagedPropertyListener('rowClass', this.redrawRows.bind(this));
39841 if (this.gridOptionsService.is('groupRowsSticky')) {
39842 if (this.rowModel.getType() != 'clientSide') {
39843 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () { return console.warn('AG Grid: The feature Sticky Row Groups only works with the Client Side Row Model'); }, 'rowRenderer.stickyWorksWithCsrmOnly');
39844 }
39845 else if (this.gridOptionsService.isTreeData()) {
39846 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () { return console.warn('AG Grid: The feature Sticky Row Groups does not work with Tree Data.'); }, 'rowRenderer.stickyDoesNotWorkWithTreeData');
39847 }
39848 else {
39849 this.stickyRowFeature = this.createManagedBean(new _features_stickyRowFeature__WEBPACK_IMPORTED_MODULE_10__["StickyRowFeature"](this.createRowCon.bind(this), this.destroyRowCtrls.bind(this)));
39850 }
39851 }
39852 this.registerCellEventListeners();
39853 this.initialiseCache();
39854 this.printLayout = this.gridOptionsService.isDomLayout('print');
39855 this.embedFullWidthRows = this.printLayout || this.gridOptionsService.is('embedFullWidthRows');
39856 this.redrawAfterModelUpdate();
39857 };
39858 RowRenderer.prototype.initialiseCache = function () {
39859 if (this.gridOptionsService.is('keepDetailRows')) {
39860 var countProp = this.getKeepDetailRowsCount();
39861 var count = countProp != null ? countProp : 3;
39862 this.cachedRowCtrls = new RowCtrlCache(count);
39863 }
39864 };
39865 RowRenderer.prototype.getKeepDetailRowsCount = function () {
39866 var keepDetailRowsCount = this.gridOptionsService.getNum('keepDetailRowsCount');
39867 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(keepDetailRowsCount) && keepDetailRowsCount > 0) {
39868 return keepDetailRowsCount;
39869 }
39870 return DEFAULT_KEEP_DETAIL_ROW_COUNT;
39871 };
39872 RowRenderer.prototype.getRowCtrls = function () {
39873 return this.allRowCtrls;
39874 };
39875 RowRenderer.prototype.getStickyTopRowCtrls = function () {
39876 if (!this.stickyRowFeature) {
39877 return [];
39878 }
39879 return this.stickyRowFeature.getStickyRowCtrls();
39880 };
39881 RowRenderer.prototype.updateAllRowCtrls = function () {
39882 var liveList = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(this.rowCtrlsByRowIndex);
39883 var isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');
39884 var isPrintLayout = this.gridOptionsService.isDomLayout('print');
39885 if (isEnsureDomOrder || isPrintLayout) {
39886 liveList.sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode.rowIndex; });
39887 }
39888 var zombieList = Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(this.zombieRowCtrls);
39889 var cachedList = this.cachedRowCtrls ? this.cachedRowCtrls.getEntries() : [];
39890 this.allRowCtrls = __spread(liveList, zombieList, cachedList);
39891 };
39892 RowRenderer.prototype.onCellFocusChanged = function (event) {
39893 this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellFocused(event); });
39894 this.getFullWidthRowCtrls().forEach(function (rowCtrl) { return rowCtrl.onFullWidthRowFocused(event); });
39895 };
39896 // in a clean design, each cell would register for each of these events. however when scrolling, all the cells
39897 // registering and de-registering for events is a performance bottleneck. so we register here once and inform
39898 // all active cells.
39899 RowRenderer.prototype.registerCellEventListeners = function () {
39900 var _this = this;
39901 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_FOCUSED, function (event) {
39902 _this.onCellFocusChanged(event);
39903 });
39904 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_FOCUS_CLEARED, function () {
39905 _this.onCellFocusChanged();
39906 });
39907 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FLASH_CELLS, function (event) {
39908 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onFlashCells(event); });
39909 });
39910 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_HOVER_CHANGED, function () {
39911 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onColumnHover(); });
39912 });
39913 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, function () {
39914 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onDisplayedColumnsChanged(); });
39915 });
39916 // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,
39917 // then changing the width of the containers will impact left position. eg the center cols all have their
39918 // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,
39919 // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are
39920 // in different containers so doesn't impact.
39921 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {
39922 if (_this.printLayout) {
39923 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onLeftChanged(); });
39924 }
39925 });
39926 var rangeSelectionEnabled = this.gridOptionsService.isEnableRangeSelection();
39927 if (rangeSelectionEnabled) {
39928 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_RANGE_SELECTION_CHANGED, function () {
39929 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRangeSelectionChanged(); });
39930 });
39931 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_MOVED, function () {
39932 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });
39933 });
39934 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PINNED, function () {
39935 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });
39936 });
39937 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_VISIBLE, function () {
39938 _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });
39939 });
39940 }
39941 // add listeners to the grid columns
39942 this.refreshListenersToColumnsForCellComps();
39943 // if the grid columns change, then refresh the listeners again
39944 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));
39945 this.addDestroyFunc(this.removeGridColumnListeners.bind(this));
39946 };
39947 // executes all functions in destroyFuncsForColumnListeners and then clears the list
39948 RowRenderer.prototype.removeGridColumnListeners = function () {
39949 this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });
39950 this.destroyFuncsForColumnListeners.length = 0;
39951 };
39952 // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.
39953 // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to
39954 // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here
39955 // once instead.
39956 RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {
39957 var _this = this;
39958 this.removeGridColumnListeners();
39959 var cols = this.columnModel.getAllGridColumns();
39960 if (!cols) {
39961 return;
39962 }
39963 cols.forEach(function (col) {
39964 var forEachCellWithThisCol = function (callback) {
39965 _this.getAllCellCtrls().forEach(function (cellCtrl) {
39966 if (cellCtrl.getColumn() === col) {
39967 callback(cellCtrl);
39968 }
39969 });
39970 };
39971 var leftChangedListener = function () {
39972 forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLeftChanged(); });
39973 };
39974 var widthChangedListener = function () {
39975 forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onWidthChanged(); });
39976 };
39977 var firstRightPinnedChangedListener = function () {
39978 forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onFirstRightPinnedChanged(); });
39979 };
39980 var lastLeftPinnedChangedListener = function () {
39981 forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLastLeftPinnedChanged(); });
39982 };
39983 var colDefChangedListener = function () {
39984 forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onColDefChanged(); });
39985 };
39986 col.addEventListener('leftChanged', leftChangedListener);
39987 col.addEventListener('widthChanged', widthChangedListener);
39988 col.addEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);
39989 col.addEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);
39990 col.addEventListener('colDefChanged', colDefChangedListener);
39991 _this.destroyFuncsForColumnListeners.push(function () {
39992 col.removeEventListener('leftChanged', leftChangedListener);
39993 col.removeEventListener('widthChanged', widthChangedListener);
39994 col.removeEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);
39995 col.removeEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);
39996 col.removeEventListener('colDefChanged', colDefChangedListener);
39997 });
39998 });
39999 };
40000 RowRenderer.prototype.onDomLayoutChanged = function () {
40001 var printLayout = this.gridOptionsService.isDomLayout('print');
40002 var embedFullWidthRows = printLayout || this.gridOptionsService.is('embedFullWidthRows');
40003 // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid
40004 // out using absolute positioning when doing print layout
40005 var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;
40006 this.printLayout = printLayout;
40007 this.embedFullWidthRows = embedFullWidthRows;
40008 if (destroyRows) {
40009 this.redrawAfterModelUpdate({ domLayoutChanged: true });
40010 }
40011 };
40012 // for row models that have datasources, when we update the datasource, we need to force the rowRenderer
40013 // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.
40014 RowRenderer.prototype.datasourceChanged = function () {
40015 this.firstRenderedRow = 0;
40016 this.lastRenderedRow = -1;
40017 var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);
40018 this.removeRowCtrls(rowIndexesToRemove);
40019 };
40020 RowRenderer.prototype.onPageLoaded = function (event) {
40021 var params = {
40022 recycleRows: event.keepRenderedRows,
40023 animate: event.animate,
40024 newData: event.newData,
40025 newPage: event.newPage,
40026 // because this is a model updated event (not pinned rows), we
40027 // can skip updating the pinned rows. this is needed so that if user
40028 // is doing transaction updates, the pinned rows are not getting constantly
40029 // trashed - or editing cells in pinned rows are not refreshed and put into read mode
40030 onlyBody: true
40031 };
40032 this.redrawAfterModelUpdate(params);
40033 };
40034 RowRenderer.prototype.getAllCellsForColumn = function (column) {
40035 var res = [];
40036 this.getAllRowCtrls().forEach(function (rowCtrl) {
40037 var eCell = rowCtrl.getCellElement(column);
40038 if (eCell) {
40039 res.push(eCell);
40040 }
40041 });
40042 return res;
40043 };
40044 RowRenderer.prototype.refreshFloatingRowComps = function () {
40045 this.refreshFloatingRows(this.topRowCtrls, this.pinnedRowModel.getPinnedTopRowData());
40046 this.refreshFloatingRows(this.bottomRowCtrls, this.pinnedRowModel.getPinnedBottomRowData());
40047 };
40048 RowRenderer.prototype.getTopRowCtrls = function () {
40049 return this.topRowCtrls;
40050 };
40051 RowRenderer.prototype.getBottomRowCtrls = function () {
40052 return this.bottomRowCtrls;
40053 };
40054 RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {
40055 var _this = this;
40056 rowComps.forEach(function (row) {
40057 row.destroyFirstPass();
40058 row.destroySecondPass();
40059 });
40060 rowComps.length = 0;
40061 if (!rowNodes) {
40062 return;
40063 }
40064 rowNodes.forEach(function (rowNode) {
40065 var rowCtrl = new _row_rowCtrl__WEBPACK_IMPORTED_MODULE_0__["RowCtrl"](rowNode, _this.beans, false, false, _this.printLayout);
40066 rowComps.push(rowCtrl);
40067 });
40068 };
40069 RowRenderer.prototype.onPinnedRowDataChanged = function () {
40070 // recycling rows in order to ensure cell editing is not cancelled
40071 var params = {
40072 recycleRows: true
40073 };
40074 this.redrawAfterModelUpdate(params);
40075 };
40076 // if the row nodes are not rendered, no index is returned
40077 RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {
40078 var result = [];
40079 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(rowNodes)) {
40080 return result;
40081 }
40082 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.rowCtrlsByRowIndex, function (index, renderedRow) {
40083 var rowNode = renderedRow.getRowNode();
40084 if (rowNodes.indexOf(rowNode) >= 0) {
40085 result.push(index);
40086 }
40087 });
40088 return result;
40089 };
40090 RowRenderer.prototype.redrawRows = function (rowNodes) {
40091 // if no row nodes provided, then refresh everything
40092 var partialRefresh = rowNodes != null && rowNodes.length > 0;
40093 if (partialRefresh) {
40094 var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);
40095 // remove the rows
40096 this.removeRowCtrls(indexesToRemove);
40097 }
40098 // add draw them again
40099 this.redrawAfterModelUpdate({
40100 recycleRows: partialRefresh
40101 });
40102 };
40103 RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {
40104 var focusedCell = (params === null || params === void 0 ? void 0 : params.suppressKeepFocus) ? null : this.focusService.getFocusCellToUseAfterRefresh();
40105 if (focusedCell == null) {
40106 return null;
40107 }
40108 // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this
40109 // solves is with editing - if the user is editing, eg focus is on a text field, and not on the
40110 // cell itself, then the cell can be registered as having focus, however it's the text field that
40111 // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus
40112 // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,
40113 // the focus is lost from the text field. we do not want this.
40114 var eDocument = this.gridOptionsService.getDocument();
40115 var activeElement = eDocument.activeElement;
40116 var cellDomData = this.gridOptionsService.getDomData(activeElement, _cell_cellCtrl__WEBPACK_IMPORTED_MODULE_8__["CellCtrl"].DOM_DATA_KEY_CELL_CTRL);
40117 var rowDomData = this.gridOptionsService.getDomData(activeElement, _row_rowCtrl__WEBPACK_IMPORTED_MODULE_0__["RowCtrl"].DOM_DATA_KEY_ROW_CTRL);
40118 var gridElementFocused = cellDomData || rowDomData;
40119 return gridElementFocused ? focusedCell : null;
40120 };
40121 // gets called from:
40122 // +) initialisation (in registerGridComp) params = null
40123 // +) onDomLayoutChanged, params = null
40124 // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true
40125 // +) onPinnedRowDataChanged, recycleRows = true
40126 // +) redrawRows (from Grid API), recycleRows = true/false
40127 RowRenderer.prototype.redrawAfterModelUpdate = function (params) {
40128 if (params === void 0) { params = {}; }
40129 this.getLockOnRefresh();
40130 var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);
40131 this.updateContainerHeights();
40132 this.scrollToTopIfNewData(params);
40133 // never recycle rows on layout change as rows could change from normal DOM layout
40134 // back to the grid's row positioning.
40135 var recycleRows = !params.domLayoutChanged && !!params.recycleRows;
40136 var animate = params.animate && this.gridOptionsService.isAnimateRows();
40137 // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,
40138 // however we can reuse the rows, so we keep them but index by rowNode.id
40139 var rowsToRecycle = recycleRows ? this.recycleRows() : null;
40140 if (!recycleRows) {
40141 this.removeAllRowComps();
40142 }
40143 this.redraw(rowsToRecycle, animate);
40144 this.gridBodyCtrl.updateRowCount();
40145 if (!params.onlyBody) {
40146 this.refreshFloatingRowComps();
40147 }
40148 this.dispatchDisplayedRowsChanged();
40149 // if a cell was focused before, ensure focus now.
40150 if (focusedCell != null) {
40151 this.restoreFocusedCell(focusedCell);
40152 }
40153 this.releaseLockOnRefresh();
40154 };
40155 RowRenderer.prototype.scrollToTopIfNewData = function (params) {
40156 var scrollToTop = params.newData || params.newPage;
40157 var suppressScrollToTop = this.gridOptionsService.is('suppressScrollOnNewData');
40158 if (scrollToTop && !suppressScrollToTop) {
40159 this.gridBodyCtrl.getScrollFeature().scrollToTop();
40160 }
40161 };
40162 RowRenderer.prototype.updateContainerHeights = function () {
40163 // when doing print layout, we don't explicitly set height on the containers
40164 if (this.printLayout) {
40165 this.rowContainerHeightService.setModelHeight(null);
40166 return;
40167 }
40168 var containerHeight = this.paginationProxy.getCurrentPageHeight();
40169 // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,
40170 // we still want the scroll to be present, otherwise there would be no way to scroll the header
40171 // which might be needed us user wants to access columns
40172 // on the RHS - and if that was where the filter was that cause no rows to be presented, there
40173 // is no way to remove the filter.
40174 if (containerHeight === 0) {
40175 containerHeight = 1;
40176 }
40177 this.rowContainerHeightService.setModelHeight(containerHeight);
40178 };
40179 RowRenderer.prototype.getLockOnRefresh = function () {
40180 if (this.refreshInProgress) {
40181 throw new Error("AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. " +
40182 "Your code probably called a grid API method while the grid was in the render stage. To overcome " +
40183 "this, put the API call into a timeout, e.g. instead of api.redrawRows(), " +
40184 "call setTimeout(function() { api.redrawRows(); }, 0). To see what part of your code " +
40185 "that caused the refresh check this stacktrace.");
40186 }
40187 this.refreshInProgress = true;
40188 };
40189 RowRenderer.prototype.releaseLockOnRefresh = function () {
40190 this.refreshInProgress = false;
40191 };
40192 RowRenderer.prototype.isRefreshInProgress = function () {
40193 return this.refreshInProgress;
40194 };
40195 // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without
40196 // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits
40197 // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the
40198 // edited cell).
40199 RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {
40200 if (cellPosition) {
40201 // we don't wish to dispatch an event as the rowRenderer is not capable of changing the selected cell,
40202 // so we mock a change event for the full width rows and cells to ensure they update to the newly selected
40203 // state
40204 this.onCellFocusChanged({
40205 rowIndex: cellPosition.rowIndex,
40206 column: cellPosition.column,
40207 rowPinned: cellPosition.rowPinned,
40208 forceBrowserFocus: true,
40209 preventScrollOnBrowserFocus: true,
40210 api: this.beans.gridApi,
40211 columnApi: this.beans.columnApi,
40212 context: this.beans.gridOptionsService.context,
40213 type: 'mock',
40214 });
40215 }
40216 };
40217 RowRenderer.prototype.stopEditing = function (cancel) {
40218 if (cancel === void 0) { cancel = false; }
40219 this.getAllRowCtrls().forEach(function (rowCtrl) {
40220 rowCtrl.stopEditing(cancel);
40221 });
40222 };
40223 RowRenderer.prototype.getAllCellCtrls = function () {
40224 var res = [];
40225 var rowCtrls = this.getAllRowCtrls();
40226 var rowCtrlsLength = rowCtrls.length;
40227 for (var i = 0; i < rowCtrlsLength; i++) {
40228 var cellCtrls = rowCtrls[i].getAllCellCtrls();
40229 var cellCtrlsLength = cellCtrls.length;
40230 for (var j = 0; j < cellCtrlsLength; j++) {
40231 res.push(cellCtrls[j]);
40232 }
40233 }
40234 return res;
40235 };
40236 RowRenderer.prototype.getAllRowCtrls = function () {
40237 var e_1, _a;
40238 var stickyRowCtrls = (this.stickyRowFeature && this.stickyRowFeature.getStickyRowCtrls()) || [];
40239 var res = __spread(this.topRowCtrls, this.bottomRowCtrls, stickyRowCtrls);
40240 try {
40241 for (var _b = __values(Object.keys(this.rowCtrlsByRowIndex)), _c = _b.next(); !_c.done; _c = _b.next()) {
40242 var key = _c.value;
40243 res.push(this.rowCtrlsByRowIndex[key]);
40244 }
40245 }
40246 catch (e_1_1) { e_1 = { error: e_1_1 }; }
40247 finally {
40248 try {
40249 if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
40250 }
40251 finally { if (e_1) throw e_1.error; }
40252 }
40253 return res;
40254 };
40255 RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {
40256 var rowComp = this.rowCtrlsByRowIndex[rowIndex];
40257 if (rowComp) {
40258 rowComp.addEventListener(eventName, callback);
40259 }
40260 };
40261 RowRenderer.prototype.flashCells = function (params) {
40262 if (params === void 0) { params = {}; }
40263 var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;
40264 this.getCellCtrls(params.rowNodes, params.columns)
40265 .forEach(function (cellCtrl) { return cellCtrl.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });
40266 };
40267 RowRenderer.prototype.refreshCells = function (params) {
40268 if (params === void 0) { params = {}; }
40269 var refreshCellParams = {
40270 forceRefresh: params.force,
40271 newData: false,
40272 suppressFlash: params.suppressFlash
40273 };
40274 this.getCellCtrls(params.rowNodes, params.columns)
40275 .forEach(function (cellCtrl) {
40276 if (cellCtrl.refreshShouldDestroy()) {
40277 var rowCtrl = cellCtrl.getRowCtrl();
40278 if (rowCtrl) {
40279 rowCtrl.refreshCell(cellCtrl);
40280 }
40281 }
40282 else {
40283 cellCtrl.refreshCell(refreshCellParams);
40284 }
40285 });
40286 this.getFullWidthRowCtrls(params.rowNodes).forEach(function (fullWidthRowCtrl) {
40287 fullWidthRowCtrl.refreshFullWidth();
40288 });
40289 };
40290 RowRenderer.prototype.getCellRendererInstances = function (params) {
40291 var _this = this;
40292 var _a;
40293 var cellRenderers = this.getCellCtrls(params.rowNodes, params.columns)
40294 .map(function (cellCtrl) { return cellCtrl.getCellRenderer(); })
40295 .filter(function (renderer) { return renderer != null; });
40296 if ((_a = params.columns) === null || _a === void 0 ? void 0 : _a.length) {
40297 return cellRenderers;
40298 }
40299 var fullWidthRenderers = [];
40300 var rowIdMap = this.mapRowNodes(params.rowNodes);
40301 this.getAllRowCtrls().forEach(function (rowCtrl) {
40302 if (rowIdMap && !_this.isRowInMap(rowCtrl.getRowNode(), rowIdMap)) {
40303 return;
40304 }
40305 if (!rowCtrl.isFullWidth()) {
40306 return;
40307 }
40308 var fullWidthRenderer = rowCtrl.getFullWidthCellRenderer();
40309 if (fullWidthRenderer) {
40310 fullWidthRenderers.push(fullWidthRenderer);
40311 }
40312 });
40313 return __spread(fullWidthRenderers, cellRenderers);
40314 };
40315 RowRenderer.prototype.getCellEditorInstances = function (params) {
40316 var res = [];
40317 this.getCellCtrls(params.rowNodes, params.columns).forEach(function (cellCtrl) {
40318 var cellEditor = cellCtrl.getCellEditor();
40319 if (cellEditor) {
40320 res.push(cellEditor);
40321 }
40322 });
40323 return res;
40324 };
40325 RowRenderer.prototype.getEditingCells = function () {
40326 var res = [];
40327 this.getAllCellCtrls().forEach(function (cellCtrl) {
40328 if (cellCtrl.isEditing()) {
40329 var cellPosition = cellCtrl.getCellPosition();
40330 res.push(cellPosition);
40331 }
40332 });
40333 return res;
40334 };
40335 RowRenderer.prototype.mapRowNodes = function (rowNodes) {
40336 if (!rowNodes) {
40337 return;
40338 }
40339 var res = {
40340 top: {},
40341 bottom: {},
40342 normal: {}
40343 };
40344 rowNodes.forEach(function (rowNode) {
40345 var id = rowNode.id;
40346 if (rowNode.rowPinned === 'top') {
40347 res.top[id] = rowNode;
40348 }
40349 else if (rowNode.rowPinned === 'bottom') {
40350 res.bottom[id] = rowNode;
40351 }
40352 else {
40353 res.normal[id] = rowNode;
40354 }
40355 });
40356 return res;
40357 };
40358 RowRenderer.prototype.isRowInMap = function (rowNode, rowIdsMap) {
40359 // skip this row if it is missing from the provided list
40360 var id = rowNode.id;
40361 var floating = rowNode.rowPinned;
40362 if (floating === 'bottom') {
40363 return rowIdsMap.bottom[id] != null;
40364 }
40365 if (floating === 'top') {
40366 return rowIdsMap.top[id] != null;
40367 }
40368 return rowIdsMap.normal[id] != null;
40369 };
40370 // returns CellCtrl's that match the provided rowNodes and columns. eg if one row node
40371 // and two columns provided, that identifies 4 cells, so 4 CellCtrl's returned.
40372 RowRenderer.prototype.getCellCtrls = function (rowNodes, columns) {
40373 var _this = this;
40374 var rowIdsMap = this.mapRowNodes(rowNodes);
40375 var res = [];
40376 var colIdsMap;
40377 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(columns)) {
40378 colIdsMap = {};
40379 columns.forEach(function (colKey) {
40380 var column = _this.columnModel.getGridColumn(colKey);
40381 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(column)) {
40382 colIdsMap[column.getId()] = true;
40383 }
40384 });
40385 }
40386 var processRow = function (rowCtrl) {
40387 var rowNode = rowCtrl.getRowNode();
40388 // skip this row if it is missing from the provided list
40389 if (rowIdsMap != null && !_this.isRowInMap(rowNode, rowIdsMap)) {
40390 return;
40391 }
40392 rowCtrl.getAllCellCtrls().forEach(function (cellCtrl) {
40393 var colId = cellCtrl.getColumn().getId();
40394 var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];
40395 if (excludeColFromRefresh) {
40396 return;
40397 }
40398 res.push(cellCtrl);
40399 });
40400 };
40401 this.getAllRowCtrls().forEach(function (row) { return processRow(row); });
40402 return res;
40403 };
40404 RowRenderer.prototype.destroy = function () {
40405 this.removeAllRowComps();
40406 _super.prototype.destroy.call(this);
40407 };
40408 RowRenderer.prototype.removeAllRowComps = function () {
40409 var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);
40410 this.removeRowCtrls(rowIndexesToRemove);
40411 };
40412 RowRenderer.prototype.recycleRows = function () {
40413 // remove all stub nodes, they can't be reused, as no rowNode id
40414 var stubNodeIndexes = [];
40415 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.rowCtrlsByRowIndex, function (index, rowComp) {
40416 var stubNode = rowComp.getRowNode().id == null;
40417 if (stubNode) {
40418 stubNodeIndexes.push(index);
40419 }
40420 });
40421 this.removeRowCtrls(stubNodeIndexes);
40422 // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex
40423 var ctrlsByIdMap = {};
40424 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.rowCtrlsByRowIndex, function (index, rowComp) {
40425 var rowNode = rowComp.getRowNode();
40426 ctrlsByIdMap[rowNode.id] = rowComp;
40427 });
40428 this.rowCtrlsByRowIndex = {};
40429 return ctrlsByIdMap;
40430 };
40431 // takes array of row indexes
40432 RowRenderer.prototype.removeRowCtrls = function (rowsToRemove) {
40433 var _this = this;
40434 // if no fromIndex then set to -1, which will refresh everything
40435 // let realFromIndex = -1;
40436 rowsToRemove.forEach(function (indexToRemove) {
40437 var rowCtrl = _this.rowCtrlsByRowIndex[indexToRemove];
40438 if (rowCtrl) {
40439 rowCtrl.destroyFirstPass();
40440 rowCtrl.destroySecondPass();
40441 }
40442 delete _this.rowCtrlsByRowIndex[indexToRemove];
40443 });
40444 };
40445 RowRenderer.prototype.onBodyScroll = function (e) {
40446 if (e.direction !== 'vertical') {
40447 return;
40448 }
40449 this.redrawAfterScroll();
40450 };
40451 // gets called when rows don't change, but viewport does, so after:
40452 // 1) height of grid body changes, ie number of displayed rows has changed
40453 // 2) grid scrolled to new position
40454 // 3) ensure index visible (which is a scroll)
40455 RowRenderer.prototype.redrawAfterScroll = function () {
40456 var cellFocused;
40457 // only try to refocus cells shifting in and out of sticky container
40458 // if the browser supports focus ({ preventScroll })
40459 if (this.stickyRowFeature && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_11__["browserSupportsPreventScroll"])()) {
40460 cellFocused = this.getCellToRestoreFocusToAfterRefresh() || undefined;
40461 }
40462 this.getLockOnRefresh();
40463 this.redraw(null, false, true);
40464 this.releaseLockOnRefresh();
40465 this.dispatchDisplayedRowsChanged();
40466 if (cellFocused != null) {
40467 var newFocusedCell = this.getCellToRestoreFocusToAfterRefresh();
40468 if (cellFocused != null && newFocusedCell == null) {
40469 this.animationFrameService.flushAllFrames();
40470 this.restoreFocusedCell(cellFocused);
40471 }
40472 }
40473 };
40474 RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {
40475 // for speedy lookup, dump into map
40476 var indexesToDrawMap = {};
40477 indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });
40478 var existingIndexes = Object.keys(this.rowCtrlsByRowIndex);
40479 var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });
40480 this.removeRowCtrls(indexesNotToDraw);
40481 };
40482 RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {
40483 var _this = this;
40484 // all in all indexes in the viewport
40485 var indexesToDraw = Object(_utils_number__WEBPACK_IMPORTED_MODULE_6__["createArrayOfNumbers"])(this.firstRenderedRow, this.lastRenderedRow);
40486 var checkRowToDraw = function (indexStr, rowComp) {
40487 var index = rowComp.getRowNode().rowIndex;
40488 if (index == null) {
40489 return;
40490 }
40491 if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {
40492 if (_this.doNotUnVirtualiseRow(rowComp)) {
40493 indexesToDraw.push(index);
40494 }
40495 }
40496 };
40497 // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex
40498 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(this.rowCtrlsByRowIndex, checkRowToDraw);
40499 // if we are redrawing due to model update, then old rows are in rowsToRecycle
40500 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(rowsToRecycle, checkRowToDraw);
40501 indexesToDraw.sort(function (a, b) { return a - b; });
40502 indexesToDraw = indexesToDraw.filter(function (index) {
40503 var rowNode = _this.paginationProxy.getRow(index);
40504 return rowNode && !rowNode.sticky;
40505 });
40506 return indexesToDraw;
40507 };
40508 RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {
40509 var _this = this;
40510 if (animate === void 0) { animate = false; }
40511 if (afterScroll === void 0) { afterScroll = false; }
40512 this.rowContainerHeightService.updateOffset();
40513 this.workOutFirstAndLastRowsToRender();
40514 if (this.stickyRowFeature) {
40515 this.stickyRowFeature.checkStickyRows();
40516 }
40517 // the row can already exist and be in the following:
40518 // rowsToRecycle -> if model change, then the index may be different, however row may
40519 // exist here from previous time (mapped by id).
40520 // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport
40521 // this is all the indexes we want, including those that already exist, so this method
40522 // will end up going through each index and drawing only if the row doesn't already exist
40523 var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);
40524 this.removeRowCompsNotToDraw(indexesToDraw);
40525 // never animate when doing print layout - as we want to get things ready to print as quickly as possible,
40526 // otherwise we risk the printer printing a row that's half faded (half way through fading in)
40527 if (this.printLayout) {
40528 animate = false;
40529 }
40530 // add in new rows
40531 var rowCtrls = [];
40532 indexesToDraw.forEach(function (rowIndex) {
40533 var rowCtrl = _this.createOrUpdateRowCtrl(rowIndex, rowsToRecycle, animate, afterScroll);
40534 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(rowCtrl)) {
40535 rowCtrls.push(rowCtrl);
40536 }
40537 });
40538 if (rowsToRecycle) {
40539 var useAnimationFrame = afterScroll && !this.gridOptionsService.is('suppressAnimationFrame') && !this.printLayout;
40540 if (useAnimationFrame) {
40541 this.beans.animationFrameService.addDestroyTask(function () {
40542 _this.destroyRowCtrls(rowsToRecycle, animate);
40543 _this.updateAllRowCtrls();
40544 _this.dispatchDisplayedRowsChanged();
40545 });
40546 }
40547 else {
40548 this.destroyRowCtrls(rowsToRecycle, animate);
40549 }
40550 }
40551 this.updateAllRowCtrls();
40552 };
40553 RowRenderer.prototype.dispatchDisplayedRowsChanged = function () {
40554 var event = { type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DISPLAYED_ROWS_CHANGED };
40555 this.eventService.dispatchEvent(event);
40556 };
40557 RowRenderer.prototype.onDisplayedColumnsChanged = function () {
40558 var pinningLeft = this.columnModel.isPinningLeft();
40559 var pinningRight = this.columnModel.isPinningRight();
40560 var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;
40561 if (atLeastOneChanged) {
40562 this.pinningLeft = pinningLeft;
40563 this.pinningRight = pinningRight;
40564 if (this.embedFullWidthRows) {
40565 this.redrawFullWidthEmbeddedRows();
40566 }
40567 }
40568 };
40569 // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,
40570 // then it should go into the pinned left area if pinning left, or the center area if not pinning.
40571 RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {
40572 // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when
40573 // embedded, as what appears in each section depends on whether we are pinned or not
40574 var rowsToRemove = [];
40575 this.getFullWidthRowCtrls().forEach(function (fullWidthCtrl) {
40576 var rowIndex = fullWidthCtrl.getRowNode().rowIndex;
40577 rowsToRemove.push(rowIndex.toString());
40578 });
40579 this.refreshFloatingRowComps();
40580 this.removeRowCtrls(rowsToRemove);
40581 this.redrawAfterScroll();
40582 };
40583 RowRenderer.prototype.getFullWidthRowCtrls = function (rowNodes) {
40584 var _this = this;
40585 var rowNodesMap = this.mapRowNodes(rowNodes);
40586 return Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["getAllValuesInObject"])(this.rowCtrlsByRowIndex).filter(function (rowCtrl) {
40587 // include just full width
40588 if (!rowCtrl.isFullWidth()) {
40589 return false;
40590 }
40591 // if Row Nodes provided, we exclude where Row Node is missing
40592 var rowNode = rowCtrl.getRowNode();
40593 if (rowNodesMap != null && !_this.isRowInMap(rowNode, rowNodesMap)) {
40594 return false;
40595 }
40596 return true;
40597 });
40598 };
40599 RowRenderer.prototype.refreshFullWidthRows = function (rowNodesToRefresh) {
40600 var rowsToRemove = [];
40601 var selectivelyRefreshing = !!rowNodesToRefresh;
40602 var idsToRefresh = selectivelyRefreshing ? {} : undefined;
40603 if (selectivelyRefreshing && idsToRefresh) {
40604 rowNodesToRefresh.forEach(function (r) { return idsToRefresh[r.id] = true; });
40605 }
40606 this.getFullWidthRowCtrls().forEach(function (fullWidthRowCtrl) {
40607 var rowNode = fullWidthRowCtrl.getRowNode();
40608 if (selectivelyRefreshing && idsToRefresh) {
40609 // we refresh if a) this node is present or b) this parents nodes is present. checking parent
40610 // node is important for master/detail, as we want detail to refresh on changes to parent node.
40611 // it's also possible, if user is provider their own fullWidth, that details panels contain
40612 // some info on the parent, eg if in tree data and child row shows some data from parent row also.
40613 var parentId = (rowNode.level > 0 && rowNode.parent) ? rowNode.parent.id : undefined;
40614 var skipThisNode = !idsToRefresh[rowNode.id] && !idsToRefresh[parentId];
40615 if (skipThisNode) {
40616 return;
40617 }
40618 }
40619 var fullWidthRowsRefreshed = fullWidthRowCtrl.refreshFullWidth();
40620 if (!fullWidthRowsRefreshed) {
40621 var rowIndex = fullWidthRowCtrl.getRowNode().rowIndex;
40622 rowsToRemove.push(rowIndex.toString());
40623 }
40624 });
40625 this.removeRowCtrls(rowsToRemove);
40626 this.redrawAfterScroll();
40627 };
40628 RowRenderer.prototype.createOrUpdateRowCtrl = function (rowIndex, rowsToRecycle, animate, afterScroll) {
40629 var rowNode;
40630 var rowCtrl = this.rowCtrlsByRowIndex[rowIndex];
40631 // if no row comp, see if we can get it from the previous rowComps
40632 if (!rowCtrl) {
40633 rowNode = this.paginationProxy.getRow(rowIndex);
40634 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(rowNode) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {
40635 rowCtrl = rowsToRecycle[rowNode.id];
40636 rowsToRecycle[rowNode.id] = null;
40637 }
40638 }
40639 var creatingNewRowCtrl = !rowCtrl;
40640 if (creatingNewRowCtrl) {
40641 // create a new one
40642 if (!rowNode) {
40643 rowNode = this.paginationProxy.getRow(rowIndex);
40644 }
40645 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(rowNode)) {
40646 rowCtrl = this.createRowCon(rowNode, animate, afterScroll);
40647 }
40648 else {
40649 // this should never happen - if somehow we are trying to create
40650 // a row for a rowNode that does not exist.
40651 return;
40652 }
40653 }
40654 if (rowNode) {
40655 // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures
40656 // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.
40657 rowNode.alreadyRendered = true;
40658 }
40659 this.rowCtrlsByRowIndex[rowIndex] = rowCtrl;
40660 return rowCtrl;
40661 };
40662 RowRenderer.prototype.destroyRowCtrls = function (rowCtrlsMap, animate) {
40663 var _this = this;
40664 var executeInAWhileFuncs = [];
40665 Object(_utils_object__WEBPACK_IMPORTED_MODULE_5__["iterateObject"])(rowCtrlsMap, function (nodeId, rowCtrl) {
40666 // if row was used, then it's null
40667 if (!rowCtrl) {
40668 return;
40669 }
40670 if (_this.cachedRowCtrls && rowCtrl.isCacheable()) {
40671 _this.cachedRowCtrls.addRow(rowCtrl);
40672 return;
40673 }
40674 rowCtrl.destroyFirstPass();
40675 if (animate) {
40676 _this.zombieRowCtrls[rowCtrl.getInstanceId()] = rowCtrl;
40677 executeInAWhileFuncs.push(function () {
40678 rowCtrl.destroySecondPass();
40679 delete _this.zombieRowCtrls[rowCtrl.getInstanceId()];
40680 });
40681 }
40682 else {
40683 rowCtrl.destroySecondPass();
40684 }
40685 });
40686 if (animate) {
40687 // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get
40688 // executed, as we added it to the end of the list.
40689 executeInAWhileFuncs.push(function () {
40690 _this.updateAllRowCtrls();
40691 _this.dispatchDisplayedRowsChanged();
40692 });
40693 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["executeInAWhile"])(executeInAWhileFuncs);
40694 }
40695 };
40696 RowRenderer.prototype.getRowBuffer = function () {
40697 var rowBuffer = this.gridOptionsService.getNum('rowBuffer');
40698 if (typeof rowBuffer === 'number') {
40699 if (rowBuffer < 0) {
40700 Object(_utils_function__WEBPACK_IMPORTED_MODULE_7__["doOnce"])(function () { return console.warn("AG Grid: rowBuffer should not be negative"); }, 'warn rowBuffer negative');
40701 rowBuffer = 0;
40702 this.gridOptionsService.set('rowBuffer', 0);
40703 }
40704 }
40705 else {
40706 rowBuffer = 10;
40707 }
40708 return rowBuffer;
40709 };
40710 RowRenderer.prototype.getRowBufferInPixels = function () {
40711 var rowsToBuffer = this.getRowBuffer();
40712 var defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();
40713 return rowsToBuffer * defaultRowHeight;
40714 };
40715 RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {
40716 var newFirst;
40717 var newLast;
40718 if (!this.paginationProxy.isRowsToRender()) {
40719 newFirst = 0;
40720 newLast = -1; // setting to -1 means nothing in range
40721 }
40722 else if (this.printLayout) {
40723 newFirst = this.paginationProxy.getPageFirstRow();
40724 newLast = this.paginationProxy.getPageLastRow();
40725 }
40726 else {
40727 var bufferPixels = this.getRowBufferInPixels();
40728 var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();
40729 var suppressRowVirtualisation = this.gridOptionsService.is('suppressRowVirtualisation');
40730 var rowHeightsChanged = false;
40731 var firstPixel = void 0;
40732 var lastPixel = void 0;
40733 do {
40734 var paginationOffset = this.paginationProxy.getPixelOffset();
40735 var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;
40736 var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();
40737 var bodyVRange = gridBodyCtrl.getScrollFeature().getVScrollPosition();
40738 var bodyTopPixel = bodyVRange.top;
40739 var bodyBottomPixel = bodyVRange.bottom;
40740 if (suppressRowVirtualisation) {
40741 firstPixel = pageFirstPixel + divStretchOffset;
40742 lastPixel = pageLastPixel + divStretchOffset;
40743 }
40744 else {
40745 firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;
40746 lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;
40747 }
40748 this.firstVisibleVPixel = Math.max(bodyTopPixel + paginationOffset, pageFirstPixel) + divStretchOffset;
40749 // if the rows we are about to display get their heights changed, then that upsets the calcs from above.
40750 rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);
40751 } while (rowHeightsChanged);
40752 var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);
40753 var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);
40754 var pageFirstRow = this.paginationProxy.getPageFirstRow();
40755 var pageLastRow = this.paginationProxy.getPageLastRow();
40756 // adjust, in case buffer extended actual size
40757 if (firstRowIndex < pageFirstRow) {
40758 firstRowIndex = pageFirstRow;
40759 }
40760 if (lastRowIndex > pageLastRow) {
40761 lastRowIndex = pageLastRow;
40762 }
40763 newFirst = firstRowIndex;
40764 newLast = lastRowIndex;
40765 }
40766 // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up
40767 // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of
40768 // killing the browser, we limit the number of rows. just in case some use case we didn't think
40769 // of, we also have a property to not do this operation.
40770 var rowLayoutNormal = this.gridOptionsService.isDomLayout('normal');
40771 var suppressRowCountRestriction = this.gridOptionsService.is('suppressMaxRenderedRowRestriction');
40772 var rowBufferMaxSize = Math.max(this.getRowBuffer(), 500);
40773 if (rowLayoutNormal && !suppressRowCountRestriction) {
40774 if (newLast - newFirst > rowBufferMaxSize) {
40775 newLast = newFirst + rowBufferMaxSize;
40776 }
40777 }
40778 var firstDiffers = newFirst !== this.firstRenderedRow;
40779 var lastDiffers = newLast !== this.lastRenderedRow;
40780 if (firstDiffers || lastDiffers) {
40781 this.firstRenderedRow = newFirst;
40782 this.lastRenderedRow = newLast;
40783 var event_1 = {
40784 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_VIEWPORT_CHANGED,
40785 firstRow: newFirst,
40786 lastRow: newLast
40787 };
40788 this.eventService.dispatchEvent(event_1);
40789 }
40790 };
40791 /**
40792 * This event will only be fired once, and is queued until after the browser next renders.
40793 * This allows us to fire an event during the start of the render cycle, when we first see data being rendered
40794 * but not execute the event until all of the data has finished being rendered to the dom.
40795 */
40796 RowRenderer.prototype.dispatchFirstDataRenderedEvent = function () {
40797 var _this = this;
40798 if (this.dataFirstRenderedFired) {
40799 return;
40800 }
40801 this.dataFirstRenderedFired = true;
40802 var event = {
40803 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FIRST_DATA_RENDERED,
40804 firstRow: this.firstRenderedRow,
40805 lastRow: this.lastRenderedRow,
40806 };
40807 // See AG-7018
40808 window.requestAnimationFrame(function () {
40809 _this.beans.eventService.dispatchEvent(event);
40810 });
40811 };
40812 RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {
40813 // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.
40814 // all the other row models just hard code so the method just returns back false
40815 var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);
40816 if (res) {
40817 this.updateContainerHeights();
40818 }
40819 return res;
40820 };
40821 RowRenderer.prototype.getFirstVisibleVerticalPixel = function () {
40822 return this.firstVisibleVPixel;
40823 };
40824 RowRenderer.prototype.getFirstVirtualRenderedRow = function () {
40825 return this.firstRenderedRow;
40826 };
40827 RowRenderer.prototype.getLastVirtualRenderedRow = function () {
40828 return this.lastRenderedRow;
40829 };
40830 // check that none of the rows to remove are editing or focused as:
40831 // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,
40832 // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered
40833 // the edit is reset - so we want to keep it rendered.
40834 // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,
40835 // otherwise the user can range select and drag (with focus cell going out of the viewport)
40836 // and then ctrl+c, nothing will happen if cell is removed from dom.
40837 // c) if detail record of master detail, as users complained that the context of detail rows
40838 // was getting lost when detail row out of view. eg user expands to show detail row,
40839 // then manipulates the detail panel (eg sorts the detail grid), then context is lost
40840 // after detail panel is scrolled out of / into view.
40841 RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {
40842 var REMOVE_ROW = false;
40843 var KEEP_ROW = true;
40844 var rowNode = rowComp.getRowNode();
40845 var rowHasFocus = this.focusService.isRowNodeFocused(rowNode);
40846 var rowIsEditing = rowComp.isEditing();
40847 var rowIsDetail = rowNode.detail;
40848 var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;
40849 // if we deffo don't want to keep it,
40850 if (!mightWantToKeepRow) {
40851 return REMOVE_ROW;
40852 }
40853 // editing row, only remove if it is no longer rendered, eg filtered out or new data set.
40854 // the reason we want to keep is if user is scrolling up and down, we don't want to loose
40855 // the context of the editing in process.
40856 var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);
40857 return rowNodePresent ? KEEP_ROW : REMOVE_ROW;
40858 };
40859 RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {
40860 var rowCtrlFromCache = this.cachedRowCtrls ? this.cachedRowCtrls.getRow(rowNode) : null;
40861 if (rowCtrlFromCache) {
40862 return rowCtrlFromCache;
40863 }
40864 // we don't use animations frames for printing, so the user can put the grid into print mode
40865 // and immediately print - otherwise the user would have to wait for the rows to draw in the background
40866 // (via the animation frames) which is awkward to do from code.
40867 // we only do the animation frames after scrolling, as this is where we want the smooth user experience.
40868 // having animation frames for other times makes the grid look 'jumpy'.
40869 var suppressAnimationFrame = this.gridOptionsService.is('suppressAnimationFrame');
40870 var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;
40871 var res = new _row_rowCtrl__WEBPACK_IMPORTED_MODULE_0__["RowCtrl"](rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);
40872 return res;
40873 };
40874 RowRenderer.prototype.getRenderedNodes = function () {
40875 var renderedRows = this.rowCtrlsByRowIndex;
40876 return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });
40877 };
40878 RowRenderer.prototype.getRowByPosition = function (rowPosition) {
40879 var rowCtrl;
40880 var rowIndex = rowPosition.rowIndex;
40881 switch (rowPosition.rowPinned) {
40882 case 'top':
40883 rowCtrl = this.topRowCtrls[rowIndex];
40884 break;
40885 case 'bottom':
40886 rowCtrl = this.bottomRowCtrls[rowIndex];
40887 break;
40888 default:
40889 rowCtrl = this.rowCtrlsByRowIndex[rowIndex];
40890 if (!rowCtrl) {
40891 rowCtrl = this.getStickyTopRowCtrls().find(function (ctrl) { return ctrl.getRowNode().rowIndex === rowIndex; }) || null;
40892 }
40893 break;
40894 }
40895 return rowCtrl;
40896 };
40897 RowRenderer.prototype.getRowNode = function (gridRow) {
40898 switch (gridRow.rowPinned) {
40899 case 'top':
40900 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
40901 case 'bottom':
40902 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
40903 default:
40904 return this.rowModel.getRow(gridRow.rowIndex);
40905 }
40906 };
40907 // returns true if any row between startIndex and endIndex is rendered. used by
40908 // SSRM or IRM, as they don't want to purge visible blocks from cache.
40909 RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {
40910 // parent closed means the parent node is not expanded, thus these blocks are not visible
40911 var parentClosed = startIndex == null || endIndex == null;
40912 if (parentClosed) {
40913 return false;
40914 }
40915 var blockAfterViewport = startIndex > this.lastRenderedRow;
40916 var blockBeforeViewport = endIndex < this.firstRenderedRow;
40917 var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;
40918 return blockInsideViewport;
40919 };
40920 __decorate([
40921 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("animationFrameService")
40922 ], RowRenderer.prototype, "animationFrameService", void 0);
40923 __decorate([
40924 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("paginationProxy")
40925 ], RowRenderer.prototype, "paginationProxy", void 0);
40926 __decorate([
40927 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("columnModel")
40928 ], RowRenderer.prototype, "columnModel", void 0);
40929 __decorate([
40930 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("pinnedRowModel")
40931 ], RowRenderer.prototype, "pinnedRowModel", void 0);
40932 __decorate([
40933 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("rowModel")
40934 ], RowRenderer.prototype, "rowModel", void 0);
40935 __decorate([
40936 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("focusService")
40937 ], RowRenderer.prototype, "focusService", void 0);
40938 __decorate([
40939 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("beans")
40940 ], RowRenderer.prototype, "beans", void 0);
40941 __decorate([
40942 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("rowContainerHeightService")
40943 ], RowRenderer.prototype, "rowContainerHeightService", void 0);
40944 __decorate([
40945 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])("ctrlsService")
40946 ], RowRenderer.prototype, "ctrlsService", void 0);
40947 __decorate([
40948 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
40949 ], RowRenderer.prototype, "postConstruct", null);
40950 RowRenderer = __decorate([
40951 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])("rowRenderer")
40952 ], RowRenderer);
40953 return RowRenderer;
40954}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
40955
40956var RowCtrlCache = /** @class */ (function () {
40957 function RowCtrlCache(maxCount) {
40958 // map for fast access
40959 this.entriesMap = {};
40960 // list for keeping order
40961 this.entriesList = [];
40962 this.maxCount = maxCount;
40963 }
40964 RowCtrlCache.prototype.addRow = function (rowCtrl) {
40965 this.entriesMap[rowCtrl.getRowNode().id] = rowCtrl;
40966 this.entriesList.push(rowCtrl);
40967 rowCtrl.setCached(true);
40968 if (this.entriesList.length > this.maxCount) {
40969 var rowCtrlToDestroy = this.entriesList[0];
40970 rowCtrlToDestroy.destroyFirstPass();
40971 rowCtrlToDestroy.destroySecondPass();
40972 this.removeFromCache(rowCtrlToDestroy);
40973 }
40974 };
40975 RowCtrlCache.prototype.getRow = function (rowNode) {
40976 if (rowNode == null || rowNode.id == null) {
40977 return null;
40978 }
40979 var res = this.entriesMap[rowNode.id];
40980 if (!res) {
40981 return null;
40982 }
40983 this.removeFromCache(res);
40984 res.setCached(false);
40985 // this can happen if user reloads data, and a new RowNode is reusing
40986 // the same ID as the old one
40987 var rowNodeMismatch = res.getRowNode() != rowNode;
40988 return rowNodeMismatch ? null : res;
40989 };
40990 RowCtrlCache.prototype.removeFromCache = function (rowCtrl) {
40991 var rowNodeId = rowCtrl.getRowNode().id;
40992 delete this.entriesMap[rowNodeId];
40993 Object(_utils_array__WEBPACK_IMPORTED_MODULE_9__["removeFromArray"])(this.entriesList, rowCtrl);
40994 };
40995 RowCtrlCache.prototype.getEntries = function () {
40996 return this.entriesList;
40997 };
40998 return RowCtrlCache;
40999}());
41000
41001
41002/***/ }),
41003/* 179 */
41004/***/ (function(module, __webpack_exports__, __webpack_require__) {
41005
41006"use strict";
41007__webpack_require__.r(__webpack_exports__);
41008/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StickyRowFeature", function() { return StickyRowFeature; });
41009/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
41010/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
41011/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19);
41012/**
41013 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41014 * @version v29.2.0
41015 * @link https://www.ag-grid.com/
41016 * @license MIT
41017 */
41018var __extends = (undefined && undefined.__extends) || (function () {
41019 var extendStatics = function (d, b) {
41020 extendStatics = Object.setPrototypeOf ||
41021 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41022 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
41023 return extendStatics(d, b);
41024 };
41025 return function (d, b) {
41026 extendStatics(d, b);
41027 function __() { this.constructor = d; }
41028 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41029 };
41030})();
41031var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41032 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41033 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41034 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;
41035 return c > 3 && r && Object.defineProperty(target, key, r), r;
41036};
41037var __values = (undefined && undefined.__values) || function(o) {
41038 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
41039 if (m) return m.call(o);
41040 if (o && typeof o.length === "number") return {
41041 next: function () {
41042 if (o && i >= o.length) o = void 0;
41043 return { value: o && o[i++], done: !o };
41044 }
41045 };
41046 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
41047};
41048var __read = (undefined && undefined.__read) || function (o, n) {
41049 var m = typeof Symbol === "function" && o[Symbol.iterator];
41050 if (!m) return o;
41051 var i = m.call(o), r, ar = [], e;
41052 try {
41053 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
41054 }
41055 catch (error) { e = { error: error }; }
41056 finally {
41057 try {
41058 if (r && !r.done && (m = i["return"])) m.call(i);
41059 }
41060 finally { if (e) throw e.error; }
41061 }
41062 return ar;
41063};
41064var __spread = (undefined && undefined.__spread) || function () {
41065 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
41066 return ar;
41067};
41068
41069
41070
41071var StickyRowFeature = /** @class */ (function (_super) {
41072 __extends(StickyRowFeature, _super);
41073 function StickyRowFeature(createRowCon, destroyRowCtrls) {
41074 var _this = _super.call(this) || this;
41075 _this.createRowCon = createRowCon;
41076 _this.destroyRowCtrls = destroyRowCtrls;
41077 _this.stickyRowCtrls = [];
41078 _this.containerHeight = 0;
41079 return _this;
41080 }
41081 StickyRowFeature.prototype.postConstruct = function () {
41082 var _this = this;
41083 this.ctrlsService.whenReady(function (params) {
41084 _this.gridBodyCtrl = params.gridBodyCtrl;
41085 });
41086 };
41087 StickyRowFeature.prototype.getStickyRowCtrls = function () {
41088 return this.stickyRowCtrls;
41089 };
41090 StickyRowFeature.prototype.checkStickyRows = function () {
41091 var height = 0;
41092 if (!this.gridOptionsService.is('groupRowsSticky')) {
41093 this.refreshNodesAndContainerHeight([], height);
41094 return;
41095 }
41096 var stickyRows = [];
41097 var firstPixel = this.rowRenderer.getFirstVisibleVerticalPixel();
41098 var addStickyRow = function (stickyRow) {
41099 stickyRows.push(stickyRow);
41100 var lastAncester = stickyRow;
41101 while (lastAncester.expanded) {
41102 lastAncester = Object(_utils_array__WEBPACK_IMPORTED_MODULE_2__["last"])(lastAncester.childrenAfterSort);
41103 }
41104 var lastChildBottom = lastAncester.rowTop + lastAncester.rowHeight;
41105 var stickRowBottom = firstPixel + height + stickyRow.rowHeight;
41106 if (lastChildBottom < stickRowBottom) {
41107 stickyRow.stickyRowTop = height + (lastChildBottom - stickRowBottom);
41108 }
41109 else {
41110 stickyRow.stickyRowTop = height;
41111 }
41112 height = 0;
41113 stickyRows.forEach(function (rowNode) {
41114 var thisRowLastPx = rowNode.stickyRowTop + rowNode.rowHeight;
41115 if (height < thisRowLastPx) {
41116 height = thisRowLastPx;
41117 }
41118 });
41119 };
41120 while (true) {
41121 var firstPixelAfterStickyRows = firstPixel + height;
41122 var firstIndex = this.rowModel.getRowIndexAtPixel(firstPixelAfterStickyRows);
41123 var firstRow = this.rowModel.getRow(firstIndex);
41124 if (firstRow == null) {
41125 break;
41126 }
41127 // only happens when pivoting, and we are showing root node
41128 if (firstRow.level < 0) {
41129 break;
41130 }
41131 var parents = [];
41132 var p = firstRow.parent;
41133 while (p.level >= 0) {
41134 parents.push(p);
41135 p = p.parent;
41136 }
41137 var firstMissingParent = parents.reverse().find(function (parent) { return stickyRows.indexOf(parent) < 0 && parent.displayed; });
41138 if (firstMissingParent) {
41139 addStickyRow(firstMissingParent);
41140 continue;
41141 }
41142 // if first row is an open group, and practically shown, it needs
41143 // to be stuck
41144 if (firstRow.group && firstRow.expanded && !firstRow.footer && firstRow.rowTop < firstPixelAfterStickyRows) {
41145 addStickyRow(firstRow);
41146 continue;
41147 }
41148 break;
41149 }
41150 this.refreshNodesAndContainerHeight(stickyRows, height);
41151 };
41152 StickyRowFeature.prototype.refreshNodesAndContainerHeight = function (allStickyNodes, height) {
41153 var e_1, _a, _b;
41154 var _this = this;
41155 var removedCtrls = this.stickyRowCtrls.filter(function (ctrl) { return allStickyNodes.indexOf(ctrl.getRowNode()) === -1; });
41156 var addedNodes = allStickyNodes.filter(function (rowNode) { return _this.stickyRowCtrls.findIndex(function (ctrl) { return ctrl.getRowNode() === rowNode; }) === -1; });
41157 var ctrlsToDestroy = {};
41158 removedCtrls.forEach(function (removedCtrl) {
41159 ctrlsToDestroy[removedCtrl.getRowNode().id] = removedCtrl;
41160 _this.stickyRowCtrls = _this.stickyRowCtrls.filter(function (ctrl) { return ctrl !== removedCtrl; });
41161 });
41162 try {
41163 for (var _c = __values(Object.values(ctrlsToDestroy)), _d = _c.next(); !_d.done; _d = _c.next()) {
41164 var ctrl = _d.value;
41165 ctrl.getRowNode().sticky = false;
41166 }
41167 }
41168 catch (e_1_1) { e_1 = { error: e_1_1 }; }
41169 finally {
41170 try {
41171 if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
41172 }
41173 finally { if (e_1) throw e_1.error; }
41174 }
41175 this.destroyRowCtrls(ctrlsToDestroy, false);
41176 var newCtrls = addedNodes.map(function (rowNode) {
41177 rowNode.sticky = true;
41178 return _this.createRowCon(rowNode, false, false);
41179 });
41180 (_b = this.stickyRowCtrls).push.apply(_b, __spread(newCtrls));
41181 this.stickyRowCtrls.forEach(function (ctrl) { return ctrl.setRowTop(ctrl.getRowNode().stickyRowTop); });
41182 this.stickyRowCtrls.sort(function (a, b) { return b.getRowNode().rowIndex - a.getRowNode().rowIndex; });
41183 if (this.containerHeight !== height) {
41184 this.containerHeight = height;
41185 this.gridBodyCtrl.setStickyTopHeight(height);
41186 }
41187 };
41188 __decorate([
41189 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("rowModel")
41190 ], StickyRowFeature.prototype, "rowModel", void 0);
41191 __decorate([
41192 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("rowRenderer")
41193 ], StickyRowFeature.prototype, "rowRenderer", void 0);
41194 __decorate([
41195 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])("ctrlsService")
41196 ], StickyRowFeature.prototype, "ctrlsService", void 0);
41197 __decorate([
41198 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
41199 ], StickyRowFeature.prototype, "postConstruct", null);
41200 return StickyRowFeature;
41201}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
41202
41203
41204
41205/***/ }),
41206/* 180 */
41207/***/ (function(module, __webpack_exports__, __webpack_require__) {
41208
41209"use strict";
41210__webpack_require__.r(__webpack_exports__);
41211/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return ValueFormatterService; });
41212/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
41213/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
41214/**
41215 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41216 * @version v29.2.0
41217 * @link https://www.ag-grid.com/
41218 * @license MIT
41219 */
41220var __extends = (undefined && undefined.__extends) || (function () {
41221 var extendStatics = function (d, b) {
41222 extendStatics = Object.setPrototypeOf ||
41223 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41224 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
41225 return extendStatics(d, b);
41226 };
41227 return function (d, b) {
41228 extendStatics(d, b);
41229 function __() { this.constructor = d; }
41230 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41231 };
41232})();
41233var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41234 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41235 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41236 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;
41237 return c > 3 && r && Object.defineProperty(target, key, r), r;
41238};
41239
41240
41241var ValueFormatterService = /** @class */ (function (_super) {
41242 __extends(ValueFormatterService, _super);
41243 function ValueFormatterService() {
41244 return _super !== null && _super.apply(this, arguments) || this;
41245 }
41246 ValueFormatterService.prototype.formatValue = function (column, node, value, suppliedFormatter, useFormatterFromColumn) {
41247 if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }
41248 var result = null;
41249 var formatter;
41250 var colDef = column.getColDef();
41251 if (suppliedFormatter) {
41252 // use supplied formatter if provided, e.g. set filter items can have their own value formatters
41253 formatter = suppliedFormatter;
41254 }
41255 else if (useFormatterFromColumn) {
41256 formatter = colDef.valueFormatter;
41257 }
41258 if (formatter) {
41259 var params = {
41260 value: value,
41261 node: node,
41262 data: node ? node.data : null,
41263 colDef: colDef,
41264 column: column,
41265 api: this.gridOptionsService.api,
41266 columnApi: this.gridOptionsService.columnApi,
41267 context: this.gridOptionsService.context
41268 };
41269 if (typeof formatter === 'function') {
41270 result = formatter(params);
41271 }
41272 else {
41273 result = this.expressionService.evaluate(formatter, params);
41274 }
41275 }
41276 else if (colDef.refData) {
41277 return colDef.refData[value] || '';
41278 }
41279 // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)
41280 if (result == null && Array.isArray(value)) {
41281 result = value.join(', ');
41282 }
41283 return result;
41284 };
41285 __decorate([
41286 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
41287 ], ValueFormatterService.prototype, "expressionService", void 0);
41288 ValueFormatterService = __decorate([
41289 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueFormatterService')
41290 ], ValueFormatterService);
41291 return ValueFormatterService;
41292}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
41293
41294
41295
41296/***/ }),
41297/* 181 */
41298/***/ (function(module, __webpack_exports__, __webpack_require__) {
41299
41300"use strict";
41301__webpack_require__.r(__webpack_exports__);
41302/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return PinnedRowModel; });
41303/* harmony import */ var _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97);
41304/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
41305/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
41306/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
41307/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
41308/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19);
41309/**
41310 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41311 * @version v29.2.0
41312 * @link https://www.ag-grid.com/
41313 * @license MIT
41314 */
41315var __extends = (undefined && undefined.__extends) || (function () {
41316 var extendStatics = function (d, b) {
41317 extendStatics = Object.setPrototypeOf ||
41318 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41319 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
41320 return extendStatics(d, b);
41321 };
41322 return function (d, b) {
41323 extendStatics(d, b);
41324 function __() { this.constructor = d; }
41325 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41326 };
41327})();
41328var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41329 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41330 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41331 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;
41332 return c > 3 && r && Object.defineProperty(target, key, r), r;
41333};
41334
41335
41336
41337
41338
41339
41340var PinnedRowModel = /** @class */ (function (_super) {
41341 __extends(PinnedRowModel, _super);
41342 function PinnedRowModel() {
41343 return _super !== null && _super.apply(this, arguments) || this;
41344 }
41345 PinnedRowModel.prototype.init = function () {
41346 this.setPinnedTopRowData(this.gridOptionsService.get('pinnedTopRowData'));
41347 this.setPinnedBottomRowData(this.gridOptionsService.get('pinnedBottomRowData'));
41348 };
41349 PinnedRowModel.prototype.isEmpty = function (floating) {
41350 var rows = floating === 'top' ? this.pinnedTopRows : this.pinnedBottomRows;
41351 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missingOrEmpty"])(rows);
41352 };
41353 PinnedRowModel.prototype.isRowsToRender = function (floating) {
41354 return !this.isEmpty(floating);
41355 };
41356 PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {
41357 var rows = floating === 'top' ? this.pinnedTopRows : this.pinnedBottomRows;
41358 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missingOrEmpty"])(rows)) {
41359 return 0; // this should never happen, just in case, 0 is graceful failure
41360 }
41361 for (var i = 0; i < rows.length; i++) {
41362 var rowNode = rows[i];
41363 var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;
41364 // only need to range check against the top pixel, as we are going through the list
41365 // in order, first row to hit the pixel wins
41366 if (rowTopPixel >= pixel) {
41367 return i;
41368 }
41369 }
41370 return rows.length - 1;
41371 };
41372 PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {
41373 this.pinnedTopRows = this.createNodesFromData(rowData, true);
41374 var event = {
41375 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_PINNED_ROW_DATA_CHANGED
41376 };
41377 this.eventService.dispatchEvent(event);
41378 };
41379 PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {
41380 this.pinnedBottomRows = this.createNodesFromData(rowData, false);
41381 var event = {
41382 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_PINNED_ROW_DATA_CHANGED
41383 };
41384 this.eventService.dispatchEvent(event);
41385 };
41386 PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {
41387 var _this = this;
41388 var rowNodes = [];
41389 if (allData) {
41390 var nextRowTop_1 = 0;
41391 allData.forEach(function (dataItem, index) {
41392 var rowNode = new _entities_rowNode__WEBPACK_IMPORTED_MODULE_0__["RowNode"](_this.beans);
41393 rowNode.data = dataItem;
41394 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;
41395 rowNode.id = idPrefix + index;
41396 rowNode.rowPinned = isTop ? 'top' : 'bottom';
41397 rowNode.setRowTop(nextRowTop_1);
41398 rowNode.setRowHeight(_this.gridOptionsService.getRowHeightForNode(rowNode).height);
41399 rowNode.setRowIndex(index);
41400 nextRowTop_1 += rowNode.rowHeight;
41401 rowNodes.push(rowNode);
41402 });
41403 }
41404 return rowNodes;
41405 };
41406 PinnedRowModel.prototype.getPinnedTopRowData = function () {
41407 return this.pinnedTopRows;
41408 };
41409 PinnedRowModel.prototype.getPinnedBottomRowData = function () {
41410 return this.pinnedBottomRows;
41411 };
41412 PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {
41413 return this.getTotalHeight(this.pinnedTopRows);
41414 };
41415 PinnedRowModel.prototype.getPinnedTopRowCount = function () {
41416 return this.pinnedTopRows ? this.pinnedTopRows.length : 0;
41417 };
41418 PinnedRowModel.prototype.getPinnedBottomRowCount = function () {
41419 return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;
41420 };
41421 PinnedRowModel.prototype.getPinnedTopRow = function (index) {
41422 return this.pinnedTopRows[index];
41423 };
41424 PinnedRowModel.prototype.getPinnedBottomRow = function (index) {
41425 return this.pinnedBottomRows[index];
41426 };
41427 PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {
41428 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missingOrEmpty"])(this.pinnedTopRows)) {
41429 return;
41430 }
41431 this.pinnedTopRows.forEach(callback);
41432 };
41433 PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {
41434 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missingOrEmpty"])(this.pinnedBottomRows)) {
41435 return;
41436 }
41437 this.pinnedBottomRows.forEach(callback);
41438 };
41439 PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {
41440 return this.getTotalHeight(this.pinnedBottomRows);
41441 };
41442 PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {
41443 if (!rowNodes || rowNodes.length === 0) {
41444 return 0;
41445 }
41446 var lastNode = Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["last"])(rowNodes);
41447 return lastNode.rowTop + lastNode.rowHeight;
41448 };
41449 __decorate([
41450 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('beans')
41451 ], PinnedRowModel.prototype, "beans", void 0);
41452 __decorate([
41453 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
41454 ], PinnedRowModel.prototype, "init", null);
41455 PinnedRowModel = __decorate([
41456 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('pinnedRowModel')
41457 ], PinnedRowModel);
41458 return PinnedRowModel;
41459}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
41460
41461
41462
41463/***/ }),
41464/* 182 */
41465/***/ (function(module, __webpack_exports__, __webpack_require__) {
41466
41467"use strict";
41468__webpack_require__.r(__webpack_exports__);
41469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return ServerSideTransactionResultStatus; });
41470/**
41471 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41472 * @version v29.2.0
41473 * @link https://www.ag-grid.com/
41474 * @license MIT
41475 */
41476var ServerSideTransactionResultStatus;
41477(function (ServerSideTransactionResultStatus) {
41478 /** Transaction was successfully applied */
41479 ServerSideTransactionResultStatus["Applied"] = "Applied";
41480 /**
41481 * Store was not found, transaction not applied.
41482 * Either invalid route, or the parent row has not yet been expanded.
41483 */
41484 ServerSideTransactionResultStatus["StoreNotFound"] = "StoreNotFound";
41485 /**
41486 * Store is loading, transaction not applied.
41487 */
41488 ServerSideTransactionResultStatus["StoreLoading"] = "StoreLoading";
41489 /**
41490 * Store is loading (as max loads exceeded), transaction not applied.
41491 */
41492 ServerSideTransactionResultStatus["StoreWaitingToLoad"] = "StoreWaitingToLoad";
41493 /**
41494 * Store load attempt failed, transaction not applied.
41495 */
41496 ServerSideTransactionResultStatus["StoreLoadingFailed"] = "StoreLoadingFailed";
41497 /**
41498 * Store is type Partial, which doesn't accept transactions
41499 */
41500 ServerSideTransactionResultStatus["StoreWrongType"] = "StoreWrongType";
41501 /**
41502 * Transaction was cancelled, due to grid.
41503 * Callback isApplyServerSideTransaction() returning false
41504 */
41505 ServerSideTransactionResultStatus["Cancelled"] = "Cancelled";
41506})(ServerSideTransactionResultStatus || (ServerSideTransactionResultStatus = {}));
41507
41508
41509/***/ }),
41510/* 183 */
41511/***/ (function(module, __webpack_exports__, __webpack_require__) {
41512
41513"use strict";
41514__webpack_require__.r(__webpack_exports__);
41515/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return ChangedPath; });
41516/**
41517 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41518 * @version v29.2.0
41519 * @link https://www.ag-grid.com/
41520 * @license MIT
41521 */
41522// when doing transactions, or change detection, and grouping is present
41523// in the data, there is no need for the ClientSideRowModel to update each
41524// group after an update, ony parts that were impacted by the change.
41525// this class keeps track of all groups that were impacted by a transaction.
41526// the the different CSRM operations (filter, sort etc) use the forEach method
41527// to visit each group that was changed.
41528var ChangedPath = /** @class */ (function () {
41529 function ChangedPath(keepingColumns, rootNode) {
41530 // whether changed path is active of not. it is active when a) doing
41531 // a transaction update or b) doing change detection. if we are doing
41532 // a CSRM refresh for other reasons (after sort or filter, or user calling
41533 // setRowData() without delta mode) then we are not active. we are also
41534 // marked as not active if secondary columns change in pivot (as this impacts
41535 // aggregations)
41536 this.active = true;
41537 // for each node in the change path, we also store which columns need
41538 // to be re-aggregated.
41539 this.nodeIdsToColumns = {};
41540 // for quick lookup, all items in the change path are mapped by nodeId
41541 this.mapToItems = {};
41542 this.keepingColumns = keepingColumns;
41543 this.pathRoot = {
41544 rowNode: rootNode,
41545 children: null
41546 };
41547 this.mapToItems[rootNode.id] = this.pathRoot;
41548 }
41549 // can be set inactive by:
41550 // a) ClientSideRowModel, if no transactions or
41551 // b) PivotService, if secondary columns changed
41552 ChangedPath.prototype.setInactive = function () {
41553 this.active = false;
41554 };
41555 ChangedPath.prototype.isActive = function () {
41556 return this.active;
41557 };
41558 ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {
41559 if (pathItem.children) {
41560 for (var i = 0; i < pathItem.children.length; i++) {
41561 this.depthFirstSearchChangedPath(pathItem.children[i], callback);
41562 }
41563 }
41564 callback(pathItem.rowNode);
41565 };
41566 ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {
41567 if (rowNode.childrenAfterGroup) {
41568 for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {
41569 var childNode = rowNode.childrenAfterGroup[i];
41570 if (childNode.childrenAfterGroup) {
41571 this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);
41572 }
41573 else if (traverseEverything) {
41574 callback(childNode);
41575 }
41576 }
41577 }
41578 callback(rowNode);
41579 };
41580 // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback
41581 // will be called for child nodes in addition to parent nodes.
41582 ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes, includeUnchangedNodes) {
41583 if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }
41584 if (includeUnchangedNodes === void 0) { includeUnchangedNodes = false; }
41585 if (this.active && !includeUnchangedNodes) {
41586 // if we are active, then use the change path to callback
41587 // only for updated groups
41588 this.depthFirstSearchChangedPath(this.pathRoot, callback);
41589 }
41590 else {
41591 // we are not active, so callback for everything, walk the entire path
41592 this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);
41593 }
41594 };
41595 ChangedPath.prototype.executeFromRootNode = function (callback) {
41596 callback(this.pathRoot.rowNode);
41597 };
41598 ChangedPath.prototype.createPathItems = function (rowNode) {
41599 var pointer = rowNode;
41600 var newEntryCount = 0;
41601 while (!this.mapToItems[pointer.id]) {
41602 var newEntry = {
41603 rowNode: pointer,
41604 children: null
41605 };
41606 this.mapToItems[pointer.id] = newEntry;
41607 newEntryCount++;
41608 pointer = pointer.parent;
41609 }
41610 return newEntryCount;
41611 };
41612 ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {
41613 var _this = this;
41614 if (!this.keepingColumns || !columns) {
41615 return;
41616 }
41617 var pointer = rowNode;
41618 while (pointer) {
41619 // if columns, add the columns in all the way to parent, merging
41620 // in any other columns that might be there already
41621 if (!this.nodeIdsToColumns[pointer.id]) {
41622 this.nodeIdsToColumns[pointer.id] = {};
41623 }
41624 columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });
41625 pointer = pointer.parent;
41626 }
41627 };
41628 ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {
41629 var pointer = rowNode;
41630 for (var i = 0; i < newEntryCount; i++) {
41631 var thisItem = this.mapToItems[pointer.id];
41632 var parentItem = this.mapToItems[pointer.parent.id];
41633 if (!parentItem.children) {
41634 parentItem.children = [];
41635 }
41636 parentItem.children.push(thisItem);
41637 pointer = pointer.parent;
41638 }
41639 };
41640 // called by
41641 // 1) change detection (provides cols) and
41642 // 2) groupStage if doing transaction update (doesn't provide cols)
41643 ChangedPath.prototype.addParentNode = function (rowNode, columns) {
41644 if (!rowNode || rowNode.isRowPinned()) {
41645 return;
41646 }
41647 // we cannot do both steps below in the same loop as
41648 // the second loop has a dependency on the first loop.
41649 // ie the hierarchy cannot be stitched up yet because
41650 // we don't have it built yet
41651 // create the new PathItem objects.
41652 var newEntryCount = this.createPathItems(rowNode);
41653 // link in the node items
41654 this.linkPathItems(rowNode, newEntryCount);
41655 // update columns
41656 this.populateColumnsMap(rowNode, columns);
41657 };
41658 ChangedPath.prototype.canSkip = function (rowNode) {
41659 return this.active && !this.mapToItems[rowNode.id];
41660 };
41661 ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {
41662 if (!this.keepingColumns) {
41663 return valueColumns;
41664 }
41665 var colsForThisNode = this.nodeIdsToColumns[rowNode.id];
41666 var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });
41667 return result;
41668 };
41669 ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {
41670 if (!this.keepingColumns) {
41671 return null;
41672 }
41673 var colsForThisNode = this.nodeIdsToColumns[rowNode.id];
41674 var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });
41675 return result;
41676 };
41677 return ChangedPath;
41678}());
41679
41680
41681
41682/***/ }),
41683/* 184 */
41684/***/ (function(module, __webpack_exports__, __webpack_require__) {
41685
41686"use strict";
41687__webpack_require__.r(__webpack_exports__);
41688/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return RowNodeBlock; });
41689/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
41690/**
41691 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41692 * @version v29.2.0
41693 * @link https://www.ag-grid.com/
41694 * @license MIT
41695 */
41696var __extends = (undefined && undefined.__extends) || (function () {
41697 var extendStatics = function (d, b) {
41698 extendStatics = Object.setPrototypeOf ||
41699 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41700 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
41701 return extendStatics(d, b);
41702 };
41703 return function (d, b) {
41704 extendStatics(d, b);
41705 function __() { this.constructor = d; }
41706 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41707 };
41708})();
41709
41710var RowNodeBlock = /** @class */ (function (_super) {
41711 __extends(RowNodeBlock, _super);
41712 function RowNodeBlock(id) {
41713 var _this = _super.call(this) || this;
41714 _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;
41715 _this.version = 0;
41716 _this.id = id;
41717 return _this;
41718 }
41719 RowNodeBlock.prototype.getId = function () {
41720 return this.id;
41721 };
41722 RowNodeBlock.prototype.load = function () {
41723 this.state = RowNodeBlock.STATE_LOADING;
41724 this.loadFromDatasource();
41725 };
41726 RowNodeBlock.prototype.getVersion = function () {
41727 return this.version;
41728 };
41729 RowNodeBlock.prototype.setStateWaitingToLoad = function () {
41730 // in case any current loads in progress, this will have their results ignored
41731 this.version++;
41732 this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;
41733 };
41734 RowNodeBlock.prototype.getState = function () {
41735 return this.state;
41736 };
41737 RowNodeBlock.prototype.pageLoadFailed = function (version) {
41738 var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);
41739 if (requestMostRecentAndLive) {
41740 this.state = RowNodeBlock.STATE_FAILED;
41741 this.processServerFail();
41742 }
41743 this.dispatchLoadCompleted(false);
41744 };
41745 RowNodeBlock.prototype.success = function (version, params) {
41746 this.successCommon(version, params);
41747 };
41748 RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {
41749 this.successCommon(version, { rowData: rows, rowCount: lastRow });
41750 };
41751 RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {
41752 // thisIsMostRecentRequest - if block was refreshed, then another request
41753 // could of been sent after this one.
41754 var thisIsMostRecentRequest = version === this.version;
41755 // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed
41756 // and new blocks created. so data loads of old blocks are discarded.
41757 var weAreNotDestroyed = this.isAlive();
41758 return thisIsMostRecentRequest && weAreNotDestroyed;
41759 };
41760 RowNodeBlock.prototype.successCommon = function (version, params) {
41761 // need to dispatch load complete before processing the data, as PaginationComp checks
41762 // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to
41763 // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)
41764 this.dispatchLoadCompleted();
41765 var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);
41766 if (requestMostRecentAndLive) {
41767 this.state = RowNodeBlock.STATE_LOADED;
41768 this.processServerResult(params);
41769 }
41770 };
41771 RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {
41772 if (success === void 0) { success = true; }
41773 // we fire event regardless of processing data or now, as we want
41774 // the concurrentLoadRequests count to be reduced in BlockLoader
41775 var event = {
41776 type: RowNodeBlock.EVENT_LOAD_COMPLETE,
41777 success: success,
41778 block: this
41779 };
41780 this.dispatchEvent(event);
41781 };
41782 RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';
41783 RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';
41784 RowNodeBlock.STATE_LOADING = 'loading';
41785 RowNodeBlock.STATE_LOADED = 'loaded';
41786 RowNodeBlock.STATE_FAILED = 'failed';
41787 return RowNodeBlock;
41788}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
41789
41790
41791
41792/***/ }),
41793/* 185 */
41794/***/ (function(module, __webpack_exports__, __webpack_require__) {
41795
41796"use strict";
41797__webpack_require__.r(__webpack_exports__);
41798/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return RowNodeBlockLoader; });
41799/* harmony import */ var _rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(184);
41800/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
41801/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
41802/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39);
41803/**
41804 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41805 * @version v29.2.0
41806 * @link https://www.ag-grid.com/
41807 * @license MIT
41808 */
41809var __extends = (undefined && undefined.__extends) || (function () {
41810 var extendStatics = function (d, b) {
41811 extendStatics = Object.setPrototypeOf ||
41812 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41813 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
41814 return extendStatics(d, b);
41815 };
41816 return function (d, b) {
41817 extendStatics(d, b);
41818 function __() { this.constructor = d; }
41819 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41820 };
41821})();
41822var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41823 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41824 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41825 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;
41826 return c > 3 && r && Object.defineProperty(target, key, r), r;
41827};
41828var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
41829 return function (target, key) { decorator(target, key, paramIndex); }
41830};
41831
41832
41833
41834
41835var RowNodeBlockLoader = /** @class */ (function (_super) {
41836 __extends(RowNodeBlockLoader, _super);
41837 function RowNodeBlockLoader() {
41838 var _this = _super !== null && _super.apply(this, arguments) || this;
41839 _this.activeBlockLoadsCount = 0;
41840 _this.blocks = [];
41841 _this.active = true;
41842 return _this;
41843 }
41844 RowNodeBlockLoader_1 = RowNodeBlockLoader;
41845 RowNodeBlockLoader.prototype.postConstruct = function () {
41846 this.maxConcurrentRequests = this.getMaxConcurrentDatasourceRequests();
41847 var blockLoadDebounceMillis = this.gridOptionsService.getNum('blockLoadDebounceMillis');
41848 if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {
41849 this.checkBlockToLoadDebounce = _utils__WEBPACK_IMPORTED_MODULE_3__["_"].debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);
41850 }
41851 };
41852 RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {
41853 this.logger = loggerFactory.create('RowNodeBlockLoader');
41854 };
41855 RowNodeBlockLoader.prototype.getMaxConcurrentDatasourceRequests = function () {
41856 var res = this.gridOptionsService.getNum('maxConcurrentDatasourceRequests');
41857 if (res == null) {
41858 return 2;
41859 } // 2 is the default
41860 if (res <= 0) {
41861 return;
41862 } // negative number, eg -1, means no max restriction
41863 return res;
41864 };
41865 RowNodeBlockLoader.prototype.addBlock = function (block) {
41866 this.blocks.push(block);
41867 // note that we do not remove this listener when removing the block. this is because the
41868 // cache can get destroyed (and containing blocks) when a block is loading. however the loading block
41869 // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.
41870 block.addEventListener(_rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"].EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));
41871 this.checkBlockToLoad();
41872 };
41873 RowNodeBlockLoader.prototype.removeBlock = function (block) {
41874 _utils__WEBPACK_IMPORTED_MODULE_3__["_"].removeFromArray(this.blocks, block);
41875 };
41876 RowNodeBlockLoader.prototype.destroy = function () {
41877 _super.prototype.destroy.call(this);
41878 this.active = false;
41879 };
41880 RowNodeBlockLoader.prototype.loadComplete = function () {
41881 this.activeBlockLoadsCount--;
41882 this.checkBlockToLoad();
41883 this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADED_EVENT });
41884 if (this.activeBlockLoadsCount == 0) {
41885 this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });
41886 }
41887 };
41888 RowNodeBlockLoader.prototype.checkBlockToLoad = function () {
41889 if (this.checkBlockToLoadDebounce) {
41890 this.checkBlockToLoadDebounce();
41891 }
41892 else {
41893 this.performCheckBlocksToLoad();
41894 }
41895 };
41896 RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {
41897 if (!this.active) {
41898 return;
41899 }
41900 this.printCacheStatus();
41901 if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {
41902 this.logger.log("checkBlockToLoad: max loads exceeded");
41903 return;
41904 }
41905 var loadAvailability = this.getAvailableLoadingCount();
41906 var blocksToLoad = this.blocks.filter(function (block) { return (block.getState() === _rowNodeBlock__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"].STATE_WAITING_TO_LOAD); }).slice(0, loadAvailability);
41907 this.registerLoads(blocksToLoad.length);
41908 blocksToLoad.forEach(function (block) { return block.load(); });
41909 this.printCacheStatus();
41910 };
41911 RowNodeBlockLoader.prototype.getBlockState = function () {
41912 if (this.gridOptionsService.isRowModelType('serverSide')) {
41913 var ssrm = this.rowModel;
41914 return ssrm.getBlockStates();
41915 }
41916 var result = {};
41917 this.blocks.forEach(function (block) {
41918 var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;
41919 result[id] = state;
41920 });
41921 return result;
41922 };
41923 RowNodeBlockLoader.prototype.printCacheStatus = function () {
41924 if (this.logger.isLogging()) {
41925 this.logger.log("printCacheStatus: activePageLoadsCount = " + this.activeBlockLoadsCount + ","
41926 + (" blocks = " + JSON.stringify(this.getBlockState())));
41927 }
41928 };
41929 RowNodeBlockLoader.prototype.isLoading = function () {
41930 return this.activeBlockLoadsCount > 0;
41931 };
41932 RowNodeBlockLoader.prototype.registerLoads = function (count) {
41933 this.activeBlockLoadsCount += count;
41934 };
41935 RowNodeBlockLoader.prototype.getAvailableLoadingCount = function () {
41936 return this.maxConcurrentRequests !== undefined ? this.maxConcurrentRequests - this.activeBlockLoadsCount : undefined;
41937 };
41938 var RowNodeBlockLoader_1;
41939 RowNodeBlockLoader.BLOCK_LOADED_EVENT = 'blockLoaded';
41940 RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';
41941 __decorate([
41942 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
41943 ], RowNodeBlockLoader.prototype, "rowModel", void 0);
41944 __decorate([
41945 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
41946 ], RowNodeBlockLoader.prototype, "postConstruct", null);
41947 __decorate([
41948 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('loggerFactory'))
41949 ], RowNodeBlockLoader.prototype, "setBeans", null);
41950 RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate([
41951 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowNodeBlockLoader')
41952 ], RowNodeBlockLoader);
41953 return RowNodeBlockLoader;
41954}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
41955
41956
41957
41958/***/ }),
41959/* 186 */
41960/***/ (function(module, __webpack_exports__, __webpack_require__) {
41961
41962"use strict";
41963__webpack_require__.r(__webpack_exports__);
41964/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return PaginationProxy; });
41965/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
41966/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
41967/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
41968/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7);
41969/**
41970 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
41971 * @version v29.2.0
41972 * @link https://www.ag-grid.com/
41973 * @license MIT
41974 */
41975var __extends = (undefined && undefined.__extends) || (function () {
41976 var extendStatics = function (d, b) {
41977 extendStatics = Object.setPrototypeOf ||
41978 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
41979 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
41980 return extendStatics(d, b);
41981 };
41982 return function (d, b) {
41983 extendStatics(d, b);
41984 function __() { this.constructor = d; }
41985 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
41986 };
41987})();
41988var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
41989 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
41990 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
41991 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;
41992 return c > 3 && r && Object.defineProperty(target, key, r), r;
41993};
41994
41995
41996
41997
41998var PaginationProxy = /** @class */ (function (_super) {
41999 __extends(PaginationProxy, _super);
42000 function PaginationProxy() {
42001 var _this = _super !== null && _super.apply(this, arguments) || this;
42002 _this.currentPage = 0;
42003 _this.topDisplayedRowIndex = 0;
42004 _this.bottomDisplayedRowIndex = 0;
42005 _this.pixelOffset = 0;
42006 _this.masterRowCount = 0;
42007 return _this;
42008 }
42009 PaginationProxy.prototype.postConstruct = function () {
42010 this.active = this.gridOptionsService.is('pagination');
42011 this.paginateChildRows = this.isPaginateChildRows();
42012 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));
42013 this.addManagedPropertyListener('pagination', this.onPaginationPageSizeChanged.bind(this));
42014 this.addManagedPropertyListener('paginationPageSize', this.onPaginationPageSizeChanged.bind(this));
42015 this.onModelUpdated();
42016 };
42017 PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
42018 var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());
42019 if (res) {
42020 this.calculatePages();
42021 }
42022 return res;
42023 };
42024 PaginationProxy.prototype.isPaginateChildRows = function () {
42025 var shouldPaginate = this.gridOptionsService.is('groupRemoveSingleChildren') || this.gridOptionsService.is('groupRemoveLowestSingleChildren');
42026 if (shouldPaginate) {
42027 return true;
42028 }
42029 return this.gridOptionsService.is('paginateChildRows');
42030 };
42031 PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {
42032 this.calculatePages();
42033 var paginationChangedEvent = {
42034 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED,
42035 animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,
42036 newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,
42037 newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,
42038 keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false
42039 };
42040 this.eventService.dispatchEvent(paginationChangedEvent);
42041 };
42042 PaginationProxy.prototype.onPaginationPageSizeChanged = function () {
42043 this.active = this.gridOptionsService.is('pagination');
42044 this.calculatePages();
42045 var paginationChangedEvent = {
42046 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_CHANGED,
42047 animate: false,
42048 newData: false,
42049 newPage: false,
42050 // important to keep rendered rows, otherwise every time grid is resized,
42051 // we would destroy all the rows.
42052 keepRenderedRows: true
42053 };
42054 this.eventService.dispatchEvent(paginationChangedEvent);
42055 };
42056 PaginationProxy.prototype.goToPage = function (page) {
42057 if (!this.active || this.currentPage === page || typeof this.currentPage !== 'number') {
42058 return;
42059 }
42060 this.currentPage = page;
42061 var event = {
42062 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED,
42063 animate: false,
42064 keepRenderedRows: false,
42065 newData: false,
42066 newPage: true
42067 };
42068 this.onModelUpdated(event);
42069 };
42070 PaginationProxy.prototype.getPixelOffset = function () {
42071 return this.pixelOffset;
42072 };
42073 PaginationProxy.prototype.getRow = function (index) {
42074 return this.rowModel.getRow(index);
42075 };
42076 PaginationProxy.prototype.getRowNode = function (id) {
42077 return this.rowModel.getRowNode(id);
42078 };
42079 PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {
42080 return this.rowModel.getRowIndexAtPixel(pixel);
42081 };
42082 PaginationProxy.prototype.getCurrentPageHeight = function () {
42083 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.topRowBounds) || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["missing"])(this.bottomRowBounds)) {
42084 return 0;
42085 }
42086 return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);
42087 };
42088 PaginationProxy.prototype.getCurrentPagePixelRange = function () {
42089 var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;
42090 var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;
42091 return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };
42092 };
42093 PaginationProxy.prototype.isRowPresent = function (rowNode) {
42094 if (!this.rowModel.isRowPresent(rowNode)) {
42095 return false;
42096 }
42097 var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;
42098 return nodeIsInPage;
42099 };
42100 PaginationProxy.prototype.isEmpty = function () {
42101 return this.rowModel.isEmpty();
42102 };
42103 PaginationProxy.prototype.isRowsToRender = function () {
42104 return this.rowModel.isRowsToRender();
42105 };
42106 PaginationProxy.prototype.forEachNode = function (callback) {
42107 return this.rowModel.forEachNode(callback);
42108 };
42109 PaginationProxy.prototype.forEachNodeOnPage = function (callback) {
42110 var firstRow = this.getPageFirstRow();
42111 var lastRow = this.getPageLastRow();
42112 for (var i = firstRow; i <= lastRow; i++) {
42113 var node = this.getRow(i);
42114 if (node) {
42115 callback(node);
42116 }
42117 }
42118 };
42119 PaginationProxy.prototype.getType = function () {
42120 return this.rowModel.getType();
42121 };
42122 PaginationProxy.prototype.getRowBounds = function (index) {
42123 var res = this.rowModel.getRowBounds(index);
42124 res.rowIndex = index;
42125 return res;
42126 };
42127 PaginationProxy.prototype.getPageFirstRow = function () {
42128 return this.topRowBounds ? this.topRowBounds.rowIndex : -1;
42129 };
42130 PaginationProxy.prototype.getPageLastRow = function () {
42131 return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;
42132 };
42133 PaginationProxy.prototype.getRowCount = function () {
42134 return this.rowModel.getRowCount();
42135 };
42136 PaginationProxy.prototype.getPageForIndex = function (index) {
42137 return Math.floor(index / this.pageSize);
42138 };
42139 PaginationProxy.prototype.goToPageWithIndex = function (index) {
42140 if (!this.active) {
42141 return;
42142 }
42143 var pageNumber = this.getPageForIndex(index);
42144 this.goToPage(pageNumber);
42145 };
42146 PaginationProxy.prototype.isRowInPage = function (row) {
42147 if (!this.active) {
42148 return true;
42149 }
42150 var rowPage = this.getPageForIndex(row.rowIndex);
42151 return rowPage === this.currentPage;
42152 };
42153 PaginationProxy.prototype.isLastPageFound = function () {
42154 return this.rowModel.isLastRowIndexKnown();
42155 };
42156 PaginationProxy.prototype.getCurrentPage = function () {
42157 return this.currentPage;
42158 };
42159 PaginationProxy.prototype.goToNextPage = function () {
42160 this.goToPage(this.currentPage + 1);
42161 };
42162 PaginationProxy.prototype.goToPreviousPage = function () {
42163 this.goToPage(this.currentPage - 1);
42164 };
42165 PaginationProxy.prototype.goToFirstPage = function () {
42166 this.goToPage(0);
42167 };
42168 PaginationProxy.prototype.goToLastPage = function () {
42169 var rowCount = this.rowModel.getRowCount();
42170 var lastPage = Math.floor(rowCount / this.pageSize);
42171 this.goToPage(lastPage);
42172 };
42173 PaginationProxy.prototype.getPageSize = function () {
42174 return this.pageSize;
42175 };
42176 PaginationProxy.prototype.getTotalPages = function () {
42177 return this.totalPages;
42178 };
42179 PaginationProxy.prototype.setPageSize = function () {
42180 // show put this into super class
42181 this.pageSize = this.gridOptionsService.getNum('paginationPageSize');
42182 if (this.pageSize == null || this.pageSize < 1) {
42183 this.pageSize = 100;
42184 }
42185 };
42186 PaginationProxy.prototype.calculatePages = function () {
42187 if (this.active) {
42188 this.setPageSize();
42189 if (this.paginateChildRows) {
42190 this.calculatePagesAllRows();
42191 }
42192 else {
42193 this.calculatePagesMasterRowsOnly();
42194 }
42195 }
42196 else {
42197 this.calculatedPagesNotActive();
42198 }
42199 this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);
42200 if (this.topRowBounds) {
42201 this.topRowBounds.rowIndex = this.topDisplayedRowIndex;
42202 }
42203 this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);
42204 if (this.bottomRowBounds) {
42205 this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;
42206 }
42207 this.setPixelOffset(Object(_utils_generic__WEBPACK_IMPORTED_MODULE_3__["exists"])(this.topRowBounds) ? this.topRowBounds.rowTop : 0);
42208 };
42209 PaginationProxy.prototype.setPixelOffset = function (value) {
42210 if (this.pixelOffset === value) {
42211 return;
42212 }
42213 this.pixelOffset = value;
42214 this.eventService.dispatchEvent({ type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });
42215 };
42216 PaginationProxy.prototype.setZeroRows = function () {
42217 this.masterRowCount = 0;
42218 this.topDisplayedRowIndex = 0;
42219 this.bottomDisplayedRowIndex = -1;
42220 this.currentPage = 0;
42221 this.totalPages = 0;
42222 };
42223 PaginationProxy.prototype.adjustCurrentPageIfInvalid = function () {
42224 if (this.currentPage >= this.totalPages) {
42225 this.currentPage = this.totalPages - 1;
42226 }
42227 if (!isFinite(this.currentPage) || isNaN(this.currentPage) || this.currentPage < 0) {
42228 this.currentPage = 0;
42229 }
42230 };
42231 PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {
42232 // const csrm = <ClientSideRowModel> this.rowModel;
42233 // const rootNode = csrm.getRootNode();
42234 // const masterRows = rootNode.childrenAfterSort;
42235 this.masterRowCount = this.rowModel.getTopLevelRowCount();
42236 // we say <=0 (rather than =0) as viewport returns -1 when no rows
42237 if (this.masterRowCount <= 0) {
42238 this.setZeroRows();
42239 return;
42240 }
42241 var masterLastRowIndex = this.masterRowCount - 1;
42242 this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;
42243 this.adjustCurrentPageIfInvalid();
42244 var masterPageStartIndex = this.pageSize * this.currentPage;
42245 var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;
42246 if (masterPageEndIndex > masterLastRowIndex) {
42247 masterPageEndIndex = masterLastRowIndex;
42248 }
42249 this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);
42250 // masterRows[masterPageStartIndex].rowIndex;
42251 if (masterPageEndIndex === masterLastRowIndex) {
42252 // if showing the last master row, then we want to show the very last row of the model
42253 this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;
42254 }
42255 else {
42256 var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);
42257 //masterRows[masterPageEndIndex + 1].rowIndex;
42258 // this gets the index of the last child - eg current row is open, we want to display all children,
42259 // the index of the last child is one less than the index of the next parent row.
42260 this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;
42261 }
42262 };
42263 PaginationProxy.prototype.getMasterRowCount = function () {
42264 return this.masterRowCount;
42265 };
42266 PaginationProxy.prototype.calculatePagesAllRows = function () {
42267 this.masterRowCount = this.rowModel.getRowCount();
42268 if (this.masterRowCount === 0) {
42269 this.setZeroRows();
42270 return;
42271 }
42272 var maxRowIndex = this.masterRowCount - 1;
42273 this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;
42274 this.adjustCurrentPageIfInvalid();
42275 this.topDisplayedRowIndex = this.pageSize * this.currentPage;
42276 this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;
42277 if (this.bottomDisplayedRowIndex > maxRowIndex) {
42278 this.bottomDisplayedRowIndex = maxRowIndex;
42279 }
42280 };
42281 PaginationProxy.prototype.calculatedPagesNotActive = function () {
42282 this.pageSize = this.rowModel.getRowCount();
42283 this.totalPages = 1;
42284 this.currentPage = 0;
42285 this.topDisplayedRowIndex = 0;
42286 this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;
42287 };
42288 __decorate([
42289 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('rowModel')
42290 ], PaginationProxy.prototype, "rowModel", void 0);
42291 __decorate([
42292 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
42293 ], PaginationProxy.prototype, "postConstruct", null);
42294 PaginationProxy = __decorate([
42295 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('paginationProxy')
42296 ], PaginationProxy);
42297 return PaginationProxy;
42298}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
42299
42300
42301
42302/***/ }),
42303/* 187 */
42304/***/ (function(module, __webpack_exports__, __webpack_require__) {
42305
42306"use strict";
42307__webpack_require__.r(__webpack_exports__);
42308/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return StylingService; });
42309/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
42310/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
42311/**
42312 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42313 * @version v29.2.0
42314 * @link https://www.ag-grid.com/
42315 * @license MIT
42316 */
42317var __extends = (undefined && undefined.__extends) || (function () {
42318 var extendStatics = function (d, b) {
42319 extendStatics = Object.setPrototypeOf ||
42320 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42321 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42322 return extendStatics(d, b);
42323 };
42324 return function (d, b) {
42325 extendStatics(d, b);
42326 function __() { this.constructor = d; }
42327 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42328 };
42329})();
42330var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42331 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42332 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42333 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;
42334 return c > 3 && r && Object.defineProperty(target, key, r), r;
42335};
42336
42337
42338var StylingService = /** @class */ (function (_super) {
42339 __extends(StylingService, _super);
42340 function StylingService() {
42341 return _super !== null && _super.apply(this, arguments) || this;
42342 }
42343 StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {
42344 this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);
42345 this.processStaticCellClasses(colDef, params, onApplicableClass);
42346 };
42347 StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {
42348 if (classRules == null) {
42349 return;
42350 }
42351 var classNames = Object.keys(classRules);
42352 var classesToApply = {};
42353 var classesToRemove = {};
42354 var _loop_1 = function (i) {
42355 var className = classNames[i];
42356 var rule = classRules[className];
42357 var resultOfRule;
42358 if (typeof rule === 'string') {
42359 resultOfRule = this_1.expressionService.evaluate(rule, params);
42360 }
42361 else if (typeof rule === 'function') {
42362 resultOfRule = rule(params);
42363 }
42364 // in case className = 'my-class1 my-class2', we need to split into individual class names
42365 className.split(' ').forEach(function (singleClass) {
42366 if (singleClass == null || singleClass.trim() == '') {
42367 return;
42368 }
42369 resultOfRule ? classesToApply[singleClass] = true : classesToRemove[singleClass] = true;
42370 });
42371 };
42372 var this_1 = this;
42373 for (var i = 0; i < classNames.length; i++) {
42374 _loop_1(i);
42375 }
42376 // we remove all classes first, then add all classes second,
42377 // in case a class appears in more than one rule, this means it will be added
42378 // if appears in at least one truthy rule
42379 if (onNotApplicableClass) {
42380 Object.keys(classesToRemove).forEach(onNotApplicableClass);
42381 }
42382 Object.keys(classesToApply).forEach(onApplicableClass);
42383 };
42384 StylingService.prototype.getStaticCellClasses = function (colDef, params) {
42385 var cellClass = colDef.cellClass;
42386 if (!cellClass) {
42387 return [];
42388 }
42389 var classOrClasses;
42390 if (typeof cellClass === 'function') {
42391 var cellClassFunc = cellClass;
42392 classOrClasses = cellClassFunc(params);
42393 }
42394 else {
42395 classOrClasses = cellClass;
42396 }
42397 if (typeof classOrClasses === 'string') {
42398 classOrClasses = [classOrClasses];
42399 }
42400 return classOrClasses || [];
42401 };
42402 StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {
42403 var classOrClasses = this.getStaticCellClasses(colDef, params);
42404 classOrClasses.forEach(function (cssClassItem) {
42405 onApplicableClass(cssClassItem);
42406 });
42407 };
42408 __decorate([
42409 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
42410 ], StylingService.prototype, "expressionService", void 0);
42411 StylingService = __decorate([
42412 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('stylingService')
42413 ], StylingService);
42414 return StylingService;
42415}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
42416
42417
42418
42419/***/ }),
42420/* 188 */
42421/***/ (function(module, __webpack_exports__, __webpack_require__) {
42422
42423"use strict";
42424__webpack_require__.r(__webpack_exports__);
42425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return AgToggleButton; });
42426/* harmony import */ var _agCheckbox__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72);
42427/**
42428 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42429 * @version v29.2.0
42430 * @link https://www.ag-grid.com/
42431 * @license MIT
42432 */
42433var __extends = (undefined && undefined.__extends) || (function () {
42434 var extendStatics = function (d, b) {
42435 extendStatics = Object.setPrototypeOf ||
42436 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42437 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42438 return extendStatics(d, b);
42439 };
42440 return function (d, b) {
42441 extendStatics(d, b);
42442 function __() { this.constructor = d; }
42443 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42444 };
42445})();
42446
42447var AgToggleButton = /** @class */ (function (_super) {
42448 __extends(AgToggleButton, _super);
42449 function AgToggleButton(config) {
42450 return _super.call(this, config, 'ag-toggle-button') || this;
42451 }
42452 AgToggleButton.prototype.setValue = function (value, silent) {
42453 _super.prototype.setValue.call(this, value, silent);
42454 this.addOrRemoveCssClass('ag-selected', this.getValue());
42455 return this;
42456 };
42457 return AgToggleButton;
42458}(_agCheckbox__WEBPACK_IMPORTED_MODULE_0__["AgCheckbox"]));
42459
42460
42461
42462/***/ }),
42463/* 189 */
42464/***/ (function(module, __webpack_exports__, __webpack_require__) {
42465
42466"use strict";
42467__webpack_require__.r(__webpack_exports__);
42468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return AgInputTextArea; });
42469/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
42470/**
42471 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42472 * @version v29.2.0
42473 * @link https://www.ag-grid.com/
42474 * @license MIT
42475 */
42476var __extends = (undefined && undefined.__extends) || (function () {
42477 var extendStatics = function (d, b) {
42478 extendStatics = Object.setPrototypeOf ||
42479 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42480 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42481 return extendStatics(d, b);
42482 };
42483 return function (d, b) {
42484 extendStatics(d, b);
42485 function __() { this.constructor = d; }
42486 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42487 };
42488})();
42489
42490var AgInputTextArea = /** @class */ (function (_super) {
42491 __extends(AgInputTextArea, _super);
42492 function AgInputTextArea(config) {
42493 return _super.call(this, config, 'ag-text-area', null, 'textarea') || this;
42494 }
42495 AgInputTextArea.prototype.setValue = function (value, silent) {
42496 var ret = _super.prototype.setValue.call(this, value, silent);
42497 this.eInput.value = value;
42498 return ret;
42499 };
42500 AgInputTextArea.prototype.setCols = function (cols) {
42501 this.eInput.cols = cols;
42502 return this;
42503 };
42504 AgInputTextArea.prototype.setRows = function (rows) {
42505 this.eInput.rows = rows;
42506 return this;
42507 };
42508 return AgInputTextArea;
42509}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
42510
42511
42512
42513/***/ }),
42514/* 190 */
42515/***/ (function(module, __webpack_exports__, __webpack_require__) {
42516
42517"use strict";
42518__webpack_require__.r(__webpack_exports__);
42519/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return AgInputRange; });
42520/* harmony import */ var _agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73);
42521/**
42522 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42523 * @version v29.2.0
42524 * @link https://www.ag-grid.com/
42525 * @license MIT
42526 */
42527var __extends = (undefined && undefined.__extends) || (function () {
42528 var extendStatics = function (d, b) {
42529 extendStatics = Object.setPrototypeOf ||
42530 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42531 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42532 return extendStatics(d, b);
42533 };
42534 return function (d, b) {
42535 extendStatics(d, b);
42536 function __() { this.constructor = d; }
42537 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42538 };
42539})();
42540
42541var AgInputRange = /** @class */ (function (_super) {
42542 __extends(AgInputRange, _super);
42543 function AgInputRange(config) {
42544 return _super.call(this, config, 'ag-range-field', 'range') || this;
42545 }
42546 AgInputRange.prototype.postConstruct = function () {
42547 _super.prototype.postConstruct.call(this);
42548 var _a = this.config, min = _a.min, max = _a.max, step = _a.step;
42549 if (min != null) {
42550 this.setMinValue(min);
42551 }
42552 if (max != null) {
42553 this.setMaxValue(max);
42554 }
42555 this.setStep(step || 1);
42556 };
42557 AgInputRange.prototype.addInputListeners = function () {
42558 var _this = this;
42559 this.addManagedListener(this.eInput, 'input', function (e) {
42560 var value = e.target.value;
42561 _this.setValue(value);
42562 });
42563 };
42564 AgInputRange.prototype.setMinValue = function (value) {
42565 this.min = value;
42566 this.eInput.setAttribute('min', value.toString());
42567 return this;
42568 };
42569 AgInputRange.prototype.setMaxValue = function (value) {
42570 this.max = value;
42571 this.eInput.setAttribute('max', value.toString());
42572 return this;
42573 };
42574 AgInputRange.prototype.setStep = function (value) {
42575 this.eInput.setAttribute('step', value.toString());
42576 return this;
42577 };
42578 AgInputRange.prototype.setValue = function (value, silent) {
42579 if (this.min != null) {
42580 value = Math.max(parseFloat(value), this.min).toString();
42581 }
42582 if (this.max != null) {
42583 value = Math.min(parseFloat(value), this.max).toString();
42584 }
42585 var ret = _super.prototype.setValue.call(this, value, silent);
42586 this.eInput.value = value;
42587 return ret;
42588 };
42589 return AgInputRange;
42590}(_agAbstractInputField__WEBPACK_IMPORTED_MODULE_0__["AgAbstractInputField"]));
42591
42592
42593
42594/***/ }),
42595/* 191 */
42596/***/ (function(module, __webpack_exports__, __webpack_require__) {
42597
42598"use strict";
42599__webpack_require__.r(__webpack_exports__);
42600/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return AgSlider; });
42601/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);
42602/* harmony import */ var _agAbstractLabel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68);
42603/* harmony import */ var _agAbstractField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67);
42604/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11);
42605/**
42606 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42607 * @version v29.2.0
42608 * @link https://www.ag-grid.com/
42609 * @license MIT
42610 */
42611var __extends = (undefined && undefined.__extends) || (function () {
42612 var extendStatics = function (d, b) {
42613 extendStatics = Object.setPrototypeOf ||
42614 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42615 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42616 return extendStatics(d, b);
42617 };
42618 return function (d, b) {
42619 extendStatics(d, b);
42620 function __() { this.constructor = d; }
42621 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42622 };
42623})();
42624var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42625 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42626 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42627 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;
42628 return c > 3 && r && Object.defineProperty(target, key, r), r;
42629};
42630
42631
42632
42633
42634var AgSlider = /** @class */ (function (_super) {
42635 __extends(AgSlider, _super);
42636 function AgSlider(config) {
42637 var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;
42638 _this.labelAlignment = 'top';
42639 return _this;
42640 }
42641 AgSlider.prototype.init = function () {
42642 this.eSlider.addCssClass('ag-slider-field');
42643 };
42644 AgSlider.prototype.onValueChange = function (callbackFn) {
42645 var _this = this;
42646 var eventChanged = _agAbstractField__WEBPACK_IMPORTED_MODULE_2__["AgAbstractField"].EVENT_CHANGED;
42647 this.addManagedListener(this.eText, eventChanged, function () {
42648 var textValue = parseFloat(_this.eText.getValue());
42649 _this.eSlider.setValue(textValue.toString(), true);
42650 callbackFn(textValue || 0);
42651 });
42652 this.addManagedListener(this.eSlider, eventChanged, function () {
42653 var sliderValue = _this.eSlider.getValue();
42654 _this.eText.setValue(sliderValue, true);
42655 callbackFn(parseFloat(sliderValue));
42656 });
42657 return this;
42658 };
42659 AgSlider.prototype.setSliderWidth = function (width) {
42660 this.eSlider.setWidth(width);
42661 return this;
42662 };
42663 AgSlider.prototype.setTextFieldWidth = function (width) {
42664 this.eText.setWidth(width);
42665 return this;
42666 };
42667 AgSlider.prototype.setMinValue = function (minValue) {
42668 this.eSlider.setMinValue(minValue);
42669 this.eText.setMin(minValue);
42670 return this;
42671 };
42672 AgSlider.prototype.setMaxValue = function (maxValue) {
42673 this.eSlider.setMaxValue(maxValue);
42674 this.eText.setMax(maxValue);
42675 return this;
42676 };
42677 AgSlider.prototype.getValue = function () {
42678 return this.eText.getValue();
42679 };
42680 AgSlider.prototype.setValue = function (value) {
42681 if (this.getValue() === value) {
42682 return this;
42683 }
42684 this.eText.setValue(value, true);
42685 this.eSlider.setValue(value, true);
42686 this.dispatchEvent({ type: _agAbstractField__WEBPACK_IMPORTED_MODULE_2__["AgAbstractField"].EVENT_CHANGED });
42687 return this;
42688 };
42689 AgSlider.prototype.setStep = function (step) {
42690 this.eSlider.setStep(step);
42691 this.eText.setStep(step);
42692 return this;
42693 };
42694 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>";
42695 __decorate([
42696 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eLabel')
42697 ], AgSlider.prototype, "eLabel", void 0);
42698 __decorate([
42699 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eSlider')
42700 ], AgSlider.prototype, "eSlider", void 0);
42701 __decorate([
42702 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eText')
42703 ], AgSlider.prototype, "eText", void 0);
42704 __decorate([
42705 _context_context__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]
42706 ], AgSlider.prototype, "init", null);
42707 return AgSlider;
42708}(_agAbstractLabel__WEBPACK_IMPORTED_MODULE_1__["AgAbstractLabel"]));
42709
42710
42711
42712/***/ }),
42713/* 192 */
42714/***/ (function(module, __webpack_exports__, __webpack_require__) {
42715
42716"use strict";
42717__webpack_require__.r(__webpack_exports__);
42718/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return AgGroupComponent; });
42719/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
42720/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
42721/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
42722/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46);
42723/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
42724/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(48);
42725/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41);
42726/**
42727 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42728 * @version v29.2.0
42729 * @link https://www.ag-grid.com/
42730 * @license MIT
42731 */
42732var __extends = (undefined && undefined.__extends) || (function () {
42733 var extendStatics = function (d, b) {
42734 extendStatics = Object.setPrototypeOf ||
42735 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42736 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42737 return extendStatics(d, b);
42738 };
42739 return function (d, b) {
42740 extendStatics(d, b);
42741 function __() { this.constructor = d; }
42742 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42743 };
42744})();
42745var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
42746 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
42747 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
42748 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;
42749 return c > 3 && r && Object.defineProperty(target, key, r), r;
42750};
42751
42752
42753
42754
42755
42756
42757
42758var AgGroupComponent = /** @class */ (function (_super) {
42759 __extends(AgGroupComponent, _super);
42760 function AgGroupComponent(params) {
42761 if (params === void 0) { params = {}; }
42762 var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;
42763 _this.suppressEnabledCheckbox = true;
42764 _this.suppressOpenCloseIcons = false;
42765 var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;
42766 _this.title = title;
42767 _this.cssIdentifier = params.cssIdentifier || 'default';
42768 _this.enabled = enabled != null ? enabled : true;
42769 _this.items = items || [];
42770 _this.alignItems = params.alignItems || 'center';
42771 if (suppressEnabledCheckbox != null) {
42772 _this.suppressEnabledCheckbox = suppressEnabledCheckbox;
42773 }
42774 if (suppressOpenCloseIcons != null) {
42775 _this.suppressOpenCloseIcons = suppressOpenCloseIcons;
42776 }
42777 return _this;
42778 }
42779 AgGroupComponent.getTemplate = function (params) {
42780 var cssIdentifier = params.cssIdentifier || 'default';
42781 var direction = params.direction || 'vertical';
42782 return /* html */ "<div class=\"ag-group ag-" + cssIdentifier + "-group\" role=\"presentation\">\n <div class=\"ag-group-title-bar ag-" + cssIdentifier + "-group-title-bar ag-unselectable\" ref=\"eTitleBar\" role=\"button\">\n <span class=\"ag-group-title-bar-icon ag-" + cssIdentifier + "-group-title-bar-icon\" ref=\"eGroupOpenedIcon\" role=\"presentation\"></span>\n <span class=\"ag-group-title-bar-icon ag-" + cssIdentifier + "-group-title-bar-icon\" ref=\"eGroupClosedIcon\" role=\"presentation\"></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>";
42783 };
42784 AgGroupComponent.prototype.postConstruct = function () {
42785 if (this.items.length) {
42786 var initialItems = this.items;
42787 this.items = [];
42788 this.addItems(initialItems);
42789 }
42790 var localeTextFunc = this.localeService.getLocaleTextFunc();
42791 this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));
42792 if (this.title) {
42793 this.setTitle(this.title);
42794 }
42795 if (this.enabled) {
42796 this.setEnabled(this.enabled);
42797 }
42798 this.setAlignItems(this.alignItems);
42799 this.hideEnabledCheckbox(this.suppressEnabledCheckbox);
42800 this.hideOpenCloseIcons(this.suppressOpenCloseIcons);
42801 this.setupExpandContract();
42802 this.refreshAriaStatus();
42803 this.refreshChildDisplay();
42804 };
42805 AgGroupComponent.prototype.setupExpandContract = function () {
42806 var _this = this;
42807 this.eGroupClosedIcon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnSelectClosed', this.gridOptionsService, null));
42808 this.eGroupOpenedIcon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_3__["createIcon"])('columnSelectOpen', this.gridOptionsService, null));
42809 this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });
42810 this.addManagedListener(this.eTitleBar, 'keydown', function (e) {
42811 switch (e.key) {
42812 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].ENTER:
42813 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].SPACE:
42814 e.preventDefault();
42815 _this.toggleGroupExpand();
42816 break;
42817 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT:
42818 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].LEFT:
42819 e.preventDefault();
42820 _this.toggleGroupExpand(e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_5__["KeyCode"].RIGHT);
42821 break;
42822 }
42823 });
42824 };
42825 AgGroupComponent.prototype.refreshAriaStatus = function () {
42826 if (!this.suppressOpenCloseIcons) {
42827 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_6__["setAriaExpanded"])(this.eTitleBar, this.expanded);
42828 }
42829 };
42830 AgGroupComponent.prototype.refreshChildDisplay = function () {
42831 var showIcon = !this.suppressOpenCloseIcons;
42832 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);
42833 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eGroupOpenedIcon, showIcon && this.expanded);
42834 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eGroupClosedIcon, showIcon && !this.expanded);
42835 };
42836 AgGroupComponent.prototype.isExpanded = function () {
42837 return this.expanded;
42838 };
42839 AgGroupComponent.prototype.setAlignItems = function (alignment) {
42840 if (this.alignItems !== alignment) {
42841 this.removeCssClass("ag-group-item-alignment-" + this.alignItems);
42842 }
42843 this.alignItems = alignment;
42844 var newCls = "ag-group-item-alignment-" + this.alignItems;
42845 this.addCssClass(newCls);
42846 return this;
42847 };
42848 AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {
42849 if (this.suppressOpenCloseIcons) {
42850 this.expanded = true;
42851 this.refreshChildDisplay();
42852 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eContainer, true);
42853 return this;
42854 }
42855 expanded = expanded != null ? expanded : !this.expanded;
42856 if (this.expanded === expanded) {
42857 return this;
42858 }
42859 this.expanded = expanded;
42860 this.refreshAriaStatus();
42861 this.refreshChildDisplay();
42862 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(this.eContainer, expanded);
42863 this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });
42864 return this;
42865 };
42866 AgGroupComponent.prototype.addItems = function (items) {
42867 var _this = this;
42868 items.forEach(function (item) { return _this.addItem(item); });
42869 };
42870 AgGroupComponent.prototype.addItem = function (item) {
42871 var container = this.eContainer;
42872 var el = item instanceof _component__WEBPACK_IMPORTED_MODULE_0__["Component"] ? item.getGui() : item;
42873 el.classList.add('ag-group-item', "ag-" + this.cssIdentifier + "-group-item");
42874 container.appendChild(el);
42875 this.items.push(el);
42876 };
42877 AgGroupComponent.prototype.hideItem = function (hide, index) {
42878 var itemToHide = this.items[index];
42879 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["setDisplayed"])(itemToHide, !hide);
42880 };
42881 AgGroupComponent.prototype.setTitle = function (title) {
42882 this.eTitle.innerText = title;
42883 return this;
42884 };
42885 AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {
42886 this.eTitleBar.classList.add(cssClass);
42887 };
42888 AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {
42889 this.enabled = enabled;
42890 this.refreshDisabledStyles();
42891 this.toggleGroupExpand(enabled);
42892 if (!skipToggle) {
42893 this.cbGroupEnabled.setValue(enabled);
42894 }
42895 return this;
42896 };
42897 AgGroupComponent.prototype.isEnabled = function () {
42898 return this.enabled;
42899 };
42900 AgGroupComponent.prototype.onEnableChange = function (callbackFn) {
42901 var _this = this;
42902 this.cbGroupEnabled.onValueChange(function (newSelection) {
42903 _this.setEnabled(newSelection, true);
42904 callbackFn(newSelection);
42905 });
42906 return this;
42907 };
42908 AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {
42909 this.suppressEnabledCheckbox = hide;
42910 this.refreshChildDisplay();
42911 this.refreshDisabledStyles();
42912 return this;
42913 };
42914 AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {
42915 this.suppressOpenCloseIcons = hide;
42916 if (hide) {
42917 this.toggleGroupExpand(true);
42918 }
42919 return this;
42920 };
42921 AgGroupComponent.prototype.refreshDisabledStyles = function () {
42922 this.addOrRemoveCssClass('ag-disabled', !this.enabled);
42923 if (this.suppressEnabledCheckbox && !this.enabled) {
42924 this.eTitleBar.classList.add('ag-disabled-group-title-bar');
42925 this.eTitleBar.removeAttribute('tabindex');
42926 }
42927 else {
42928 this.eTitleBar.classList.remove('ag-disabled-group-title-bar');
42929 this.eTitleBar.setAttribute('tabindex', '0');
42930 }
42931 this.eContainer.classList.toggle('ag-disabled-group-container', !this.enabled);
42932 };
42933 AgGroupComponent.EVENT_EXPANDED = 'expanded';
42934 AgGroupComponent.EVENT_COLLAPSED = 'collapsed';
42935 __decorate([
42936 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eTitleBar')
42937 ], AgGroupComponent.prototype, "eTitleBar", void 0);
42938 __decorate([
42939 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eGroupOpenedIcon')
42940 ], AgGroupComponent.prototype, "eGroupOpenedIcon", void 0);
42941 __decorate([
42942 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eGroupClosedIcon')
42943 ], AgGroupComponent.prototype, "eGroupClosedIcon", void 0);
42944 __decorate([
42945 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eToolbar')
42946 ], AgGroupComponent.prototype, "eToolbar", void 0);
42947 __decorate([
42948 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('cbGroupEnabled')
42949 ], AgGroupComponent.prototype, "cbGroupEnabled", void 0);
42950 __decorate([
42951 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eTitle')
42952 ], AgGroupComponent.prototype, "eTitle", void 0);
42953 __decorate([
42954 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
42955 ], AgGroupComponent.prototype, "eContainer", void 0);
42956 __decorate([
42957 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
42958 ], AgGroupComponent.prototype, "postConstruct", null);
42959 return AgGroupComponent;
42960}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
42961
42962
42963
42964/***/ }),
42965/* 193 */
42966/***/ (function(module, __webpack_exports__, __webpack_require__) {
42967
42968"use strict";
42969__webpack_require__.r(__webpack_exports__);
42970/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgMenuItemComponent", function() { return AgMenuItemComponent; });
42971/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
42972/* harmony import */ var _agMenuList__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(194);
42973/* harmony import */ var _agMenuPanel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(197);
42974/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38);
42975/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48);
42976/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46);
42977/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45);
42978/* harmony import */ var _customTooltipFeature__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(55);
42979/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(41);
42980/**
42981 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
42982 * @version v29.2.0
42983 * @link https://www.ag-grid.com/
42984 * @license MIT
42985 */
42986var __extends = (undefined && undefined.__extends) || (function () {
42987 var extendStatics = function (d, b) {
42988 extendStatics = Object.setPrototypeOf ||
42989 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
42990 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
42991 return extendStatics(d, b);
42992 };
42993 return function (d, b) {
42994 extendStatics(d, b);
42995 function __() { this.constructor = d; }
42996 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
42997 };
42998})();
42999var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43000 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43001 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43002 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;
43003 return c > 3 && r && Object.defineProperty(target, key, r), r;
43004};
43005
43006
43007
43008
43009
43010
43011
43012
43013
43014
43015var AgMenuItemComponent = /** @class */ (function (_super) {
43016 __extends(AgMenuItemComponent, _super);
43017 function AgMenuItemComponent(params) {
43018 var _this = _super.call(this) || this;
43019 _this.params = params;
43020 _this.isActive = false;
43021 _this.subMenuIsOpen = false;
43022 _this.setTemplate(/* html */ "<div class=\"" + _this.getClassName() + "\" tabindex=\"-1\" role=\"treeitem\"></div>");
43023 return _this;
43024 }
43025 AgMenuItemComponent.prototype.init = function () {
43026 var _this = this;
43027 this.addIcon();
43028 this.addName();
43029 this.addShortcut();
43030 this.addSubMenu();
43031 this.addTooltip();
43032 var eGui = this.getGui();
43033 if (this.params.disabled) {
43034 this.addCssClass(this.getClassName('disabled'));
43035 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_8__["setAriaDisabled"])(eGui, true);
43036 }
43037 else {
43038 this.addGuiEventListener('click', function (e) { return _this.onItemSelected(e); });
43039 this.addGuiEventListener('keydown', function (e) {
43040 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].ENTER || e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].SPACE) {
43041 e.preventDefault();
43042 _this.onItemSelected(e);
43043 }
43044 });
43045 this.addGuiEventListener('mousedown', function (e) {
43046 // Prevent event bubbling to other event handlers such as PopupService triggering
43047 // premature closing of any open sub-menu popup.
43048 e.stopPropagation();
43049 e.preventDefault();
43050 });
43051 this.addGuiEventListener('mouseenter', function () { return _this.onMouseEnter(); });
43052 this.addGuiEventListener('mouseleave', function () { return _this.onMouseLeave(); });
43053 }
43054 if (this.params.cssClasses) {
43055 this.params.cssClasses.forEach(function (it) { return _this.addCssClass(it); });
43056 }
43057 };
43058 AgMenuItemComponent.prototype.isDisabled = function () {
43059 return !!this.params.disabled;
43060 };
43061 AgMenuItemComponent.prototype.openSubMenu = function (activateFirstItem) {
43062 var _this = this;
43063 if (activateFirstItem === void 0) { activateFirstItem = false; }
43064 this.closeSubMenu();
43065 if (!this.params.subMenu) {
43066 return;
43067 }
43068 var ePopup = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["loadTemplate"])(/* html */ "<div class=\"ag-menu\" role=\"presentation\"></div>");
43069 var destroySubMenu;
43070 if (this.params.subMenu instanceof Array) {
43071 var currentLevel = Object(_utils_aria__WEBPACK_IMPORTED_MODULE_8__["getAriaLevel"])(this.getGui());
43072 var nextLevel = isNaN(currentLevel) ? 1 : (currentLevel + 1);
43073 var childMenu_1 = this.createBean(new _agMenuList__WEBPACK_IMPORTED_MODULE_1__["AgMenuList"](nextLevel));
43074 childMenu_1.setParentComponent(this);
43075 childMenu_1.addMenuItems(this.params.subMenu);
43076 ePopup.appendChild(childMenu_1.getGui());
43077 // bubble menu item selected events
43078 this.addManagedListener(childMenu_1, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });
43079 childMenu_1.addGuiEventListener('mouseenter', function () { return _this.cancelDeactivate(); });
43080 destroySubMenu = function () { return _this.destroyBean(childMenu_1); };
43081 if (activateFirstItem) {
43082 setTimeout(function () { return childMenu_1.activateFirstItem(); }, 0);
43083 }
43084 }
43085 else {
43086 var subMenu_1 = this.params.subMenu;
43087 var menuPanel = this.createBean(new _agMenuPanel__WEBPACK_IMPORTED_MODULE_2__["AgMenuPanel"](subMenu_1));
43088 menuPanel.setParentComponent(this);
43089 var subMenuGui_1 = menuPanel.getGui();
43090 var mouseEvent_1 = 'mouseenter';
43091 var mouseEnterListener_1 = function () { return _this.cancelDeactivate(); };
43092 subMenuGui_1.addEventListener(mouseEvent_1, mouseEnterListener_1);
43093 destroySubMenu = function () { return subMenuGui_1.removeEventListener(mouseEvent_1, mouseEnterListener_1); };
43094 ePopup.appendChild(subMenuGui_1);
43095 if (subMenu_1.afterGuiAttached) {
43096 setTimeout(function () { return subMenu_1.afterGuiAttached(); }, 0);
43097 }
43098 }
43099 var eGui = this.getGui();
43100 var positionCallback = this.popupService.positionPopupForMenu.bind(this.popupService, { eventSource: eGui, ePopup: ePopup, shouldSetMaxHeight: this.params.shouldSetMaxHeight });
43101 var translate = this.localeService.getLocaleTextFunc();
43102 var addPopupRes = this.popupService.addPopup({
43103 modal: true,
43104 eChild: ePopup,
43105 positionCallback: positionCallback,
43106 anchorToElement: eGui,
43107 ariaLabel: translate('ariaLabelSubMenu', 'SubMenu')
43108 });
43109 this.subMenuIsOpen = true;
43110 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_8__["setAriaExpanded"])(eGui, true);
43111 this.hideSubMenu = function () {
43112 if (addPopupRes) {
43113 addPopupRes.hideFunc();
43114 }
43115 _this.subMenuIsOpen = false;
43116 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_8__["setAriaExpanded"])(eGui, false);
43117 destroySubMenu();
43118 };
43119 };
43120 AgMenuItemComponent.prototype.closeSubMenu = function () {
43121 if (!this.hideSubMenu) {
43122 return;
43123 }
43124 this.hideSubMenu();
43125 this.hideSubMenu = null;
43126 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_8__["setAriaExpanded"])(this.getGui(), false);
43127 };
43128 AgMenuItemComponent.prototype.isSubMenuOpen = function () {
43129 return this.subMenuIsOpen;
43130 };
43131 AgMenuItemComponent.prototype.activate = function (openSubMenu) {
43132 var _this = this;
43133 this.cancelActivate();
43134 if (this.params.disabled) {
43135 return;
43136 }
43137 this.isActive = true;
43138 this.addCssClass(this.getClassName('active'));
43139 this.getGui().focus();
43140 if (openSubMenu && this.params.subMenu) {
43141 window.setTimeout(function () {
43142 if (_this.isAlive() && _this.isActive) {
43143 _this.openSubMenu();
43144 }
43145 }, 300);
43146 }
43147 this.onItemActivated();
43148 };
43149 AgMenuItemComponent.prototype.deactivate = function () {
43150 this.cancelDeactivate();
43151 this.removeCssClass(this.getClassName('active'));
43152 this.isActive = false;
43153 if (this.subMenuIsOpen) {
43154 this.hideSubMenu();
43155 }
43156 };
43157 AgMenuItemComponent.prototype.addIcon = function () {
43158 if (!this.params.checked && !this.params.icon && this.params.isCompact) {
43159 return;
43160 }
43161 var icon = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["loadTemplate"])(/* html */ "<span ref=\"eIcon\" class=\"" + this.getClassName('part') + " " + this.getClassName('icon') + "\" role=\"presentation\"></span>");
43162 if (this.params.checked) {
43163 icon.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_5__["createIconNoSpan"])('check', this.gridOptionsService));
43164 }
43165 else if (this.params.icon) {
43166 if (Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["isNodeOrElement"])(this.params.icon)) {
43167 icon.appendChild(this.params.icon);
43168 }
43169 else if (typeof this.params.icon === 'string') {
43170 icon.innerHTML = this.params.icon;
43171 }
43172 else {
43173 console.warn('AG Grid: menu item icon must be DOM node or string');
43174 }
43175 }
43176 this.getGui().appendChild(icon);
43177 };
43178 AgMenuItemComponent.prototype.addName = function () {
43179 if (!this.params.name && this.params.isCompact) {
43180 return;
43181 }
43182 var name = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["loadTemplate"])(/* html */ "<span ref=\"eName\" class=\"" + this.getClassName('part') + " " + this.getClassName('text') + "\">" + (this.params.name || '') + "</span>");
43183 this.getGui().appendChild(name);
43184 };
43185 AgMenuItemComponent.prototype.addTooltip = function () {
43186 if (!this.params.tooltip) {
43187 return;
43188 }
43189 this.tooltip = this.params.tooltip;
43190 if (this.gridOptionsService.is('enableBrowserTooltips')) {
43191 this.getGui().setAttribute('title', this.tooltip);
43192 }
43193 else {
43194 this.createManagedBean(new _customTooltipFeature__WEBPACK_IMPORTED_MODULE_7__["CustomTooltipFeature"](this));
43195 }
43196 };
43197 AgMenuItemComponent.prototype.getTooltipParams = function () {
43198 return {
43199 location: 'menu',
43200 value: this.tooltip
43201 };
43202 };
43203 AgMenuItemComponent.prototype.addShortcut = function () {
43204 if (!this.params.shortcut && this.params.isCompact) {
43205 return;
43206 }
43207 var shortcut = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["loadTemplate"])(/* html */ "<span ref=\"eShortcut\" class=\"" + this.getClassName('part') + " " + this.getClassName('shortcut') + "\">" + (this.params.shortcut || '') + "</span>");
43208 this.getGui().appendChild(shortcut);
43209 };
43210 AgMenuItemComponent.prototype.addSubMenu = function () {
43211 if (!this.params.subMenu && this.params.isCompact) {
43212 return;
43213 }
43214 var pointer = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_6__["loadTemplate"])(/* html */ "<span ref=\"ePopupPointer\" class=\"" + this.getClassName('part') + " " + this.getClassName('popup-pointer') + "\"></span>");
43215 var eGui = this.getGui();
43216 if (this.params.subMenu) {
43217 var iconName = this.gridOptionsService.is('enableRtl') ? 'smallLeft' : 'smallRight';
43218 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_8__["setAriaExpanded"])(eGui, false);
43219 pointer.appendChild(Object(_utils_icon__WEBPACK_IMPORTED_MODULE_5__["createIconNoSpan"])(iconName, this.gridOptionsService));
43220 }
43221 eGui.appendChild(pointer);
43222 };
43223 AgMenuItemComponent.prototype.onItemSelected = function (event) {
43224 if (this.params.action) {
43225 this.params.action();
43226 }
43227 else {
43228 this.openSubMenu(event && event.type === 'keydown');
43229 }
43230 if (this.params.subMenu && !this.params.action) {
43231 return;
43232 }
43233 var e = {
43234 type: AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED,
43235 action: this.params.action,
43236 checked: this.params.checked,
43237 cssClasses: this.params.cssClasses,
43238 disabled: this.params.disabled,
43239 icon: this.params.icon,
43240 name: this.params.name,
43241 shortcut: this.params.shortcut,
43242 subMenu: this.params.subMenu,
43243 tooltip: this.params.tooltip,
43244 event: event
43245 };
43246 this.dispatchEvent(e);
43247 };
43248 AgMenuItemComponent.prototype.onItemActivated = function () {
43249 var event = {
43250 type: AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED,
43251 menuItem: this,
43252 };
43253 this.dispatchEvent(event);
43254 };
43255 AgMenuItemComponent.prototype.cancelActivate = function () {
43256 if (this.activateTimeoutId) {
43257 window.clearTimeout(this.activateTimeoutId);
43258 this.activateTimeoutId = 0;
43259 }
43260 };
43261 AgMenuItemComponent.prototype.cancelDeactivate = function () {
43262 if (this.deactivateTimeoutId) {
43263 window.clearTimeout(this.deactivateTimeoutId);
43264 this.deactivateTimeoutId = 0;
43265 }
43266 };
43267 AgMenuItemComponent.prototype.onMouseEnter = function () {
43268 var _this = this;
43269 this.cancelDeactivate();
43270 if (this.params.isAnotherSubMenuOpen()) {
43271 // wait to see if the user enters the open sub-menu
43272 this.activateTimeoutId = window.setTimeout(function () { return _this.activate(true); }, AgMenuItemComponent.ACTIVATION_DELAY);
43273 }
43274 else {
43275 // activate immediately
43276 this.activate(true);
43277 }
43278 };
43279 AgMenuItemComponent.prototype.onMouseLeave = function () {
43280 var _this = this;
43281 this.cancelActivate();
43282 if (this.isSubMenuOpen()) {
43283 // wait to see if the user enters the sub-menu
43284 this.deactivateTimeoutId = window.setTimeout(function () { return _this.deactivate(); }, AgMenuItemComponent.ACTIVATION_DELAY);
43285 }
43286 else {
43287 // de-activate immediately
43288 this.deactivate();
43289 }
43290 };
43291 AgMenuItemComponent.prototype.getClassName = function (suffix) {
43292 var prefix = this.params.isCompact ? 'ag-compact-menu-option' : 'ag-menu-option';
43293 return suffix ? prefix + "-" + suffix : prefix;
43294 };
43295 AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED = 'menuItemSelected';
43296 AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED = 'menuItemActivated';
43297 AgMenuItemComponent.ACTIVATION_DELAY = 80;
43298 __decorate([
43299 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
43300 ], AgMenuItemComponent.prototype, "popupService", void 0);
43301 __decorate([
43302 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
43303 ], AgMenuItemComponent.prototype, "init", null);
43304 return AgMenuItemComponent;
43305}(_component__WEBPACK_IMPORTED_MODULE_3__["Component"]));
43306
43307
43308
43309/***/ }),
43310/* 194 */
43311/***/ (function(module, __webpack_exports__, __webpack_require__) {
43312
43313"use strict";
43314__webpack_require__.r(__webpack_exports__);
43315/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgMenuList", function() { return AgMenuList; });
43316/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
43317/* harmony import */ var _agMenuItemComponent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(193);
43318/* harmony import */ var _tabGuardComp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(195);
43319/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);
43320/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45);
43321/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(19);
43322/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41);
43323/**
43324 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
43325 * @version v29.2.0
43326 * @link https://www.ag-grid.com/
43327 * @license MIT
43328 */
43329var __extends = (undefined && undefined.__extends) || (function () {
43330 var extendStatics = function (d, b) {
43331 extendStatics = Object.setPrototypeOf ||
43332 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43333 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
43334 return extendStatics(d, b);
43335 };
43336 return function (d, b) {
43337 extendStatics(d, b);
43338 function __() { this.constructor = d; }
43339 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43340 };
43341})();
43342var __assign = (undefined && undefined.__assign) || function () {
43343 __assign = Object.assign || function(t) {
43344 for (var s, i = 1, n = arguments.length; i < n; i++) {
43345 s = arguments[i];
43346 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
43347 t[p] = s[p];
43348 }
43349 return t;
43350 };
43351 return __assign.apply(this, arguments);
43352};
43353var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43354 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43355 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43356 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;
43357 return c > 3 && r && Object.defineProperty(target, key, r), r;
43358};
43359
43360
43361
43362
43363
43364
43365
43366var AgMenuList = /** @class */ (function (_super) {
43367 __extends(AgMenuList, _super);
43368 function AgMenuList(level) {
43369 if (level === void 0) { level = 1; }
43370 var _this = _super.call(this, /* html */ "<div class=\"ag-menu-list\" role=\"tree\"></div>") || this;
43371 _this.level = level;
43372 _this.menuItems = [];
43373 return _this;
43374 }
43375 AgMenuList.prototype.postConstruct = function () {
43376 var _this = this;
43377 this.initialiseTabGuard({
43378 onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },
43379 handleKeyDown: function (e) { return _this.handleKeyDown(e); }
43380 });
43381 };
43382 AgMenuList.prototype.onTabKeyDown = function (e) {
43383 var parent = this.getParentComponent();
43384 var parentGui = parent && parent.getGui();
43385 var isManaged = parentGui && parentGui.classList.contains('ag-focus-managed');
43386 if (!isManaged) {
43387 e.preventDefault();
43388 }
43389 if (e.shiftKey) {
43390 this.closeIfIsChild(e);
43391 }
43392 };
43393 AgMenuList.prototype.handleKeyDown = function (e) {
43394 switch (e.key) {
43395 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP:
43396 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].RIGHT:
43397 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].DOWN:
43398 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].LEFT:
43399 e.preventDefault();
43400 this.handleNavKey(e.key);
43401 break;
43402 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].ESCAPE:
43403 var topMenu = this.findTopMenu();
43404 if (topMenu) {
43405 this.focusService.focusInto(topMenu.getGui());
43406 }
43407 break;
43408 }
43409 };
43410 AgMenuList.prototype.clearActiveItem = function () {
43411 if (this.activeMenuItem) {
43412 this.activeMenuItem.deactivate();
43413 this.activeMenuItem = null;
43414 }
43415 };
43416 AgMenuList.prototype.addMenuItems = function (menuItems) {
43417 var _this = this;
43418 if (menuItems == null) {
43419 return;
43420 }
43421 menuItems.forEach(function (menuItemOrString) {
43422 if (menuItemOrString === 'separator') {
43423 _this.addSeparator();
43424 }
43425 else if (typeof menuItemOrString === 'string') {
43426 console.warn("AG Grid: unrecognised menu item " + menuItemOrString);
43427 }
43428 else {
43429 _this.addItem(menuItemOrString);
43430 }
43431 });
43432 };
43433 AgMenuList.prototype.addItem = function (menuItemDef) {
43434 var _this = this;
43435 var menuItem = this.createManagedBean(new _agMenuItemComponent__WEBPACK_IMPORTED_MODULE_1__["AgMenuItemComponent"](__assign(__assign({}, menuItemDef), { isAnotherSubMenuOpen: function () { return _this.menuItems.some(function (m) { return m.isSubMenuOpen(); }); } })));
43436 menuItem.setParentComponent(this);
43437 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_6__["setAriaLevel"])(menuItem.getGui(), this.level);
43438 this.menuItems.push(menuItem);
43439 this.appendChild(menuItem.getGui());
43440 this.addManagedListener(menuItem, _agMenuItemComponent__WEBPACK_IMPORTED_MODULE_1__["AgMenuItemComponent"].EVENT_MENU_ITEM_SELECTED, function (event) {
43441 _this.dispatchEvent(event);
43442 });
43443 this.addManagedListener(menuItem, _agMenuItemComponent__WEBPACK_IMPORTED_MODULE_1__["AgMenuItemComponent"].EVENT_MENU_ITEM_ACTIVATED, function (event) {
43444 if (_this.activeMenuItem && _this.activeMenuItem !== event.menuItem) {
43445 _this.activeMenuItem.deactivate();
43446 }
43447 _this.activeMenuItem = event.menuItem;
43448 });
43449 };
43450 AgMenuList.prototype.activateFirstItem = function () {
43451 var item = this.menuItems.filter(function (currentItem) { return !currentItem.isDisabled(); })[0];
43452 if (!item) {
43453 return;
43454 }
43455 item.activate();
43456 };
43457 AgMenuList.prototype.addSeparator = function () {
43458 var separatorHtml = /* html */ "\n <div class=\"ag-menu-separator\" aria-hidden=\"true\">\n <div class=\"ag-menu-separator-part\"></div>\n <div class=\"ag-menu-separator-part\"></div>\n <div class=\"ag-menu-separator-part\"></div>\n <div class=\"ag-menu-separator-part\"></div>\n </div>";
43459 this.appendChild(Object(_utils_dom__WEBPACK_IMPORTED_MODULE_4__["loadTemplate"])(separatorHtml));
43460 };
43461 AgMenuList.prototype.findTopMenu = function () {
43462 var parent = this.getParentComponent();
43463 if (!parent && this instanceof AgMenuList) {
43464 return this;
43465 }
43466 while (true) {
43467 var nextParent = parent && parent.getParentComponent && parent.getParentComponent();
43468 if (!nextParent || (!(nextParent instanceof AgMenuList || nextParent instanceof _agMenuItemComponent__WEBPACK_IMPORTED_MODULE_1__["AgMenuItemComponent"]))) {
43469 break;
43470 }
43471 parent = nextParent;
43472 }
43473 return parent instanceof AgMenuList ? parent : undefined;
43474 };
43475 AgMenuList.prototype.handleNavKey = function (key) {
43476 switch (key) {
43477 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP:
43478 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].DOWN:
43479 var nextItem = this.findNextItem(key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP);
43480 if (nextItem && nextItem !== this.activeMenuItem) {
43481 nextItem.activate();
43482 }
43483 return;
43484 }
43485 var left = this.gridOptionsService.is('enableRtl') ? _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].RIGHT : _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].LEFT;
43486 if (key === left) {
43487 this.closeIfIsChild();
43488 }
43489 else {
43490 this.openChild();
43491 }
43492 };
43493 AgMenuList.prototype.closeIfIsChild = function (e) {
43494 var parentItem = this.getParentComponent();
43495 if (parentItem && parentItem instanceof _agMenuItemComponent__WEBPACK_IMPORTED_MODULE_1__["AgMenuItemComponent"]) {
43496 if (e) {
43497 e.preventDefault();
43498 }
43499 parentItem.closeSubMenu();
43500 parentItem.getGui().focus();
43501 }
43502 };
43503 AgMenuList.prototype.openChild = function () {
43504 if (this.activeMenuItem) {
43505 this.activeMenuItem.openSubMenu(true);
43506 }
43507 };
43508 AgMenuList.prototype.findNextItem = function (up) {
43509 var items = this.menuItems.filter(function (item) { return !item.isDisabled(); });
43510 if (!items.length) {
43511 return;
43512 }
43513 if (!this.activeMenuItem) {
43514 return up ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_5__["last"])(items) : items[0];
43515 }
43516 if (up) {
43517 items.reverse();
43518 }
43519 var nextItem;
43520 var foundCurrent = false;
43521 for (var i = 0; i < items.length; i++) {
43522 var item = items[i];
43523 if (!foundCurrent) {
43524 if (item === this.activeMenuItem) {
43525 foundCurrent = true;
43526 }
43527 continue;
43528 }
43529 nextItem = item;
43530 break;
43531 }
43532 return nextItem || this.activeMenuItem;
43533 };
43534 AgMenuList.prototype.destroy = function () {
43535 this.clearActiveItem();
43536 _super.prototype.destroy.call(this);
43537 };
43538 __decorate([
43539 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
43540 ], AgMenuList.prototype, "focusService", void 0);
43541 __decorate([
43542 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
43543 ], AgMenuList.prototype, "postConstruct", null);
43544 return AgMenuList;
43545}(_tabGuardComp__WEBPACK_IMPORTED_MODULE_2__["TabGuardComp"]));
43546
43547
43548
43549/***/ }),
43550/* 195 */
43551/***/ (function(module, __webpack_exports__, __webpack_require__) {
43552
43553"use strict";
43554__webpack_require__.r(__webpack_exports__);
43555/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabGuardComp", function() { return TabGuardComp; });
43556/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
43557/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
43558/* harmony import */ var _tabGuardCtrl__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(196);
43559/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41);
43560/**
43561 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
43562 * @version v29.2.0
43563 * @link https://www.ag-grid.com/
43564 * @license MIT
43565 */
43566var __extends = (undefined && undefined.__extends) || (function () {
43567 var extendStatics = function (d, b) {
43568 extendStatics = Object.setPrototypeOf ||
43569 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43570 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
43571 return extendStatics(d, b);
43572 };
43573 return function (d, b) {
43574 extendStatics(d, b);
43575 function __() { this.constructor = d; }
43576 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43577 };
43578})();
43579var __read = (undefined && undefined.__read) || function (o, n) {
43580 var m = typeof Symbol === "function" && o[Symbol.iterator];
43581 if (!m) return o;
43582 var i = m.call(o), r, ar = [], e;
43583 try {
43584 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
43585 }
43586 catch (error) { e = { error: error }; }
43587 finally {
43588 try {
43589 if (r && !r.done && (m = i["return"])) m.call(i);
43590 }
43591 finally { if (e) throw e.error; }
43592 }
43593 return ar;
43594};
43595var __spread = (undefined && undefined.__spread) || function () {
43596 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
43597 return ar;
43598};
43599
43600
43601
43602
43603var TabGuardComp = /** @class */ (function (_super) {
43604 __extends(TabGuardComp, _super);
43605 function TabGuardComp() {
43606 return _super !== null && _super.apply(this, arguments) || this;
43607 }
43608 TabGuardComp.prototype.initialiseTabGuard = function (params) {
43609 this.eTopGuard = this.createTabGuard('top');
43610 this.eBottomGuard = this.createTabGuard('bottom');
43611 this.eFocusableElement = this.getFocusableElement();
43612 var tabGuards = [this.eTopGuard, this.eBottomGuard];
43613 var compProxy = {
43614 setTabIndex: function (tabIndex) {
43615 tabGuards.forEach(function (tabGuard) { return tabIndex != null ? tabGuard.setAttribute('tabIndex', tabIndex) : tabGuard.removeAttribute('tabIndex'); });
43616 }
43617 };
43618 this.addTabGuards(this.eTopGuard, this.eBottomGuard);
43619 this.tabGuardCtrl = this.createManagedBean(new _tabGuardCtrl__WEBPACK_IMPORTED_MODULE_2__["TabGuardCtrl"]({
43620 comp: compProxy,
43621 eTopGuard: this.eTopGuard,
43622 eBottomGuard: this.eBottomGuard,
43623 eFocusableElement: this.eFocusableElement,
43624 onFocusIn: params.onFocusIn,
43625 onFocusOut: params.onFocusOut,
43626 focusInnerElement: params.focusInnerElement,
43627 handleKeyDown: params.handleKeyDown,
43628 onTabKeyDown: params.onTabKeyDown,
43629 shouldStopEventPropagation: params.shouldStopEventPropagation
43630 }));
43631 };
43632 TabGuardComp.prototype.createTabGuard = function (side) {
43633 var tabGuard = document.createElement('div');
43634 var cls = side === 'top' ? _tabGuardCtrl__WEBPACK_IMPORTED_MODULE_2__["TabGuardClassNames"].TAB_GUARD_TOP : _tabGuardCtrl__WEBPACK_IMPORTED_MODULE_2__["TabGuardClassNames"].TAB_GUARD_BOTTOM;
43635 tabGuard.classList.add(_tabGuardCtrl__WEBPACK_IMPORTED_MODULE_2__["TabGuardClassNames"].TAB_GUARD, cls);
43636 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_3__["setAriaRole"])(tabGuard, 'presentation');
43637 return tabGuard;
43638 };
43639 TabGuardComp.prototype.addTabGuards = function (topTabGuard, bottomTabGuard) {
43640 this.eFocusableElement.insertAdjacentElement('afterbegin', topTabGuard);
43641 this.eFocusableElement.insertAdjacentElement('beforeend', bottomTabGuard);
43642 };
43643 TabGuardComp.prototype.removeAllChildrenExceptTabGuards = function () {
43644 var tabGuards = [this.eTopGuard, this.eBottomGuard];
43645 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["clearElement"])(this.getFocusableElement());
43646 this.addTabGuards.apply(this, __spread(tabGuards));
43647 };
43648 TabGuardComp.prototype.forceFocusOutOfContainer = function (up) {
43649 if (up === void 0) { up = false; }
43650 this.tabGuardCtrl.forceFocusOutOfContainer(up);
43651 };
43652 TabGuardComp.prototype.appendChild = function (newChild, container) {
43653 if (!Object(_utils_dom__WEBPACK_IMPORTED_MODULE_1__["isNodeOrElement"])(newChild)) {
43654 newChild = newChild.getGui();
43655 }
43656 var bottomTabGuard = this.eBottomGuard;
43657 if (bottomTabGuard) {
43658 bottomTabGuard.insertAdjacentElement('beforebegin', newChild);
43659 }
43660 else {
43661 _super.prototype.appendChild.call(this, newChild, container);
43662 }
43663 };
43664 return TabGuardComp;
43665}(_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
43666
43667
43668
43669/***/ }),
43670/* 196 */
43671/***/ (function(module, __webpack_exports__, __webpack_require__) {
43672
43673"use strict";
43674__webpack_require__.r(__webpack_exports__);
43675/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabGuardClassNames", function() { return TabGuardClassNames; });
43676/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TabGuardCtrl", function() { return TabGuardCtrl; });
43677/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
43678/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
43679/* harmony import */ var _managedFocusFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64);
43680/**
43681 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
43682 * @version v29.2.0
43683 * @link https://www.ag-grid.com/
43684 * @license MIT
43685 */
43686var __extends = (undefined && undefined.__extends) || (function () {
43687 var extendStatics = function (d, b) {
43688 extendStatics = Object.setPrototypeOf ||
43689 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43690 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
43691 return extendStatics(d, b);
43692 };
43693 return function (d, b) {
43694 extendStatics(d, b);
43695 function __() { this.constructor = d; }
43696 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43697 };
43698})();
43699var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43700 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43701 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43702 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;
43703 return c > 3 && r && Object.defineProperty(target, key, r), r;
43704};
43705
43706
43707
43708var TabGuardClassNames;
43709(function (TabGuardClassNames) {
43710 TabGuardClassNames["TAB_GUARD"] = "ag-tab-guard";
43711 TabGuardClassNames["TAB_GUARD_TOP"] = "ag-tab-guard-top";
43712 TabGuardClassNames["TAB_GUARD_BOTTOM"] = "ag-tab-guard-bottom";
43713})(TabGuardClassNames || (TabGuardClassNames = {}));
43714;
43715var TabGuardCtrl = /** @class */ (function (_super) {
43716 __extends(TabGuardCtrl, _super);
43717 function TabGuardCtrl(params) {
43718 var _this = _super.call(this) || this;
43719 _this.skipTabGuardFocus = false;
43720 var comp = params.comp, eTopGuard = params.eTopGuard, eBottomGuard = params.eBottomGuard, focusInnerElement = params.focusInnerElement, onFocusIn = params.onFocusIn, onFocusOut = params.onFocusOut, shouldStopEventPropagation = params.shouldStopEventPropagation, onTabKeyDown = params.onTabKeyDown, handleKeyDown = params.handleKeyDown, eFocusableElement = params.eFocusableElement;
43721 _this.comp = comp;
43722 _this.eTopGuard = eTopGuard;
43723 _this.eBottomGuard = eBottomGuard;
43724 _this.providedFocusInnerElement = focusInnerElement;
43725 _this.eFocusableElement = eFocusableElement;
43726 _this.providedFocusIn = onFocusIn;
43727 _this.providedFocusOut = onFocusOut;
43728 _this.providedShouldStopEventPropagation = shouldStopEventPropagation;
43729 _this.providedOnTabKeyDown = onTabKeyDown;
43730 _this.providedHandleKeyDown = handleKeyDown;
43731 return _this;
43732 }
43733 TabGuardCtrl.prototype.postConstruct = function () {
43734 var _this = this;
43735 this.createManagedBean(new _managedFocusFeature__WEBPACK_IMPORTED_MODULE_2__["ManagedFocusFeature"](this.eFocusableElement, {
43736 shouldStopEventPropagation: function () { return _this.shouldStopEventPropagation(); },
43737 onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },
43738 handleKeyDown: function (e) { return _this.handleKeyDown(e); },
43739 onFocusIn: function (e) { return _this.onFocusIn(e); },
43740 onFocusOut: function (e) { return _this.onFocusOut(e); }
43741 }));
43742 this.activateTabGuards();
43743 [this.eTopGuard, this.eBottomGuard].forEach(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });
43744 };
43745 TabGuardCtrl.prototype.handleKeyDown = function (e) {
43746 if (this.providedHandleKeyDown) {
43747 this.providedHandleKeyDown(e);
43748 }
43749 };
43750 TabGuardCtrl.prototype.tabGuardsAreActive = function () {
43751 return !!this.eTopGuard && this.eTopGuard.hasAttribute('tabIndex');
43752 };
43753 TabGuardCtrl.prototype.shouldStopEventPropagation = function () {
43754 if (this.providedShouldStopEventPropagation) {
43755 return this.providedShouldStopEventPropagation();
43756 }
43757 return false;
43758 };
43759 TabGuardCtrl.prototype.activateTabGuards = function () {
43760 this.comp.setTabIndex(this.getGridTabIndex());
43761 };
43762 TabGuardCtrl.prototype.deactivateTabGuards = function () {
43763 this.comp.setTabIndex();
43764 };
43765 TabGuardCtrl.prototype.onFocus = function (e) {
43766 if (this.skipTabGuardFocus) {
43767 this.skipTabGuardFocus = false;
43768 return;
43769 }
43770 var fromBottom = e.target === this.eBottomGuard;
43771 if (this.providedFocusInnerElement) {
43772 this.providedFocusInnerElement(fromBottom);
43773 }
43774 else {
43775 this.focusInnerElement(fromBottom);
43776 }
43777 };
43778 TabGuardCtrl.prototype.onFocusIn = function (e) {
43779 if (this.providedFocusIn && this.providedFocusIn(e)) {
43780 return;
43781 }
43782 this.deactivateTabGuards();
43783 };
43784 TabGuardCtrl.prototype.onFocusOut = function (e) {
43785 if (this.providedFocusOut && this.providedFocusOut(e)) {
43786 return;
43787 }
43788 if (!this.eFocusableElement.contains(e.relatedTarget)) {
43789 this.activateTabGuards();
43790 }
43791 };
43792 TabGuardCtrl.prototype.onTabKeyDown = function (e) {
43793 var _this = this;
43794 if (this.providedOnTabKeyDown) {
43795 this.providedOnTabKeyDown(e);
43796 return;
43797 }
43798 if (e.defaultPrevented) {
43799 return;
43800 }
43801 var tabGuardsAreActive = this.tabGuardsAreActive();
43802 if (tabGuardsAreActive) {
43803 this.deactivateTabGuards();
43804 }
43805 var nextRoot = this.getNextFocusableElement(e.shiftKey);
43806 if (tabGuardsAreActive) {
43807 // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser
43808 // tabbing to the tab guard from inside the component
43809 setTimeout(function () { return _this.activateTabGuards(); }, 0);
43810 }
43811 if (!nextRoot) {
43812 return;
43813 }
43814 nextRoot.focus();
43815 e.preventDefault();
43816 };
43817 TabGuardCtrl.prototype.getGridTabIndex = function () {
43818 return (this.gridOptionsService.getNum('tabIndex') || 0).toString();
43819 };
43820 TabGuardCtrl.prototype.focusInnerElement = function (fromBottom) {
43821 if (fromBottom === void 0) { fromBottom = false; }
43822 var focusable = this.focusService.findFocusableElements(this.eFocusableElement);
43823 if (this.tabGuardsAreActive()) {
43824 // remove tab guards from this component from list of focusable elements
43825 focusable.splice(0, 1);
43826 focusable.splice(focusable.length - 1, 1);
43827 }
43828 if (!focusable.length) {
43829 return;
43830 }
43831 focusable[fromBottom ? focusable.length - 1 : 0].focus();
43832 };
43833 TabGuardCtrl.prototype.getNextFocusableElement = function (backwards) {
43834 return this.focusService.findNextFocusableElement(this.eFocusableElement, false, backwards);
43835 };
43836 TabGuardCtrl.prototype.forceFocusOutOfContainer = function (up) {
43837 if (up === void 0) { up = false; }
43838 var tabGuardToFocus = up ? this.eTopGuard : this.eBottomGuard;
43839 this.activateTabGuards();
43840 this.skipTabGuardFocus = true;
43841 tabGuardToFocus.focus();
43842 };
43843 __decorate([
43844 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('focusService')
43845 ], TabGuardCtrl.prototype, "focusService", void 0);
43846 __decorate([
43847 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
43848 ], TabGuardCtrl.prototype, "postConstruct", null);
43849 return TabGuardCtrl;
43850}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
43851
43852
43853
43854/***/ }),
43855/* 197 */
43856/***/ (function(module, __webpack_exports__, __webpack_require__) {
43857
43858"use strict";
43859__webpack_require__.r(__webpack_exports__);
43860/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgMenuPanel", function() { return AgMenuPanel; });
43861/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
43862/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48);
43863/* harmony import */ var _tabGuardComp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(195);
43864/**
43865 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
43866 * @version v29.2.0
43867 * @link https://www.ag-grid.com/
43868 * @license MIT
43869 */
43870var __extends = (undefined && undefined.__extends) || (function () {
43871 var extendStatics = function (d, b) {
43872 extendStatics = Object.setPrototypeOf ||
43873 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43874 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
43875 return extendStatics(d, b);
43876 };
43877 return function (d, b) {
43878 extendStatics(d, b);
43879 function __() { this.constructor = d; }
43880 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43881 };
43882})();
43883var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43884 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43885 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43886 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;
43887 return c > 3 && r && Object.defineProperty(target, key, r), r;
43888};
43889
43890
43891
43892var AgMenuPanel = /** @class */ (function (_super) {
43893 __extends(AgMenuPanel, _super);
43894 function AgMenuPanel(wrappedComponent) {
43895 var _this = _super.call(this) || this;
43896 _this.wrappedComponent = wrappedComponent;
43897 _this.setTemplateFromElement(wrappedComponent.getGui());
43898 return _this;
43899 }
43900 AgMenuPanel.prototype.postConstruct = function () {
43901 var _this = this;
43902 this.initialiseTabGuard({
43903 onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },
43904 handleKeyDown: function (e) { return _this.handleKeyDown(e); }
43905 });
43906 };
43907 AgMenuPanel.prototype.handleKeyDown = function (e) {
43908 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_1__["KeyCode"].ESCAPE) {
43909 this.closePanel();
43910 }
43911 };
43912 AgMenuPanel.prototype.onTabKeyDown = function (e) {
43913 if (e.defaultPrevented) {
43914 return;
43915 }
43916 this.closePanel();
43917 e.preventDefault();
43918 };
43919 AgMenuPanel.prototype.closePanel = function () {
43920 var menuItem = this.parentComponent;
43921 menuItem.closeSubMenu();
43922 setTimeout(function () { return menuItem.getGui().focus(); }, 0);
43923 };
43924 __decorate([
43925 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
43926 ], AgMenuPanel.prototype, "postConstruct", null);
43927 return AgMenuPanel;
43928}(_tabGuardComp__WEBPACK_IMPORTED_MODULE_2__["TabGuardComp"]));
43929
43930
43931
43932/***/ }),
43933/* 198 */
43934/***/ (function(module, __webpack_exports__, __webpack_require__) {
43935
43936"use strict";
43937__webpack_require__.r(__webpack_exports__);
43938/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return AgDialog; });
43939/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
43940/* harmony import */ var _agPanel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199);
43941/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38);
43942/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
43943/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46);
43944/**
43945 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
43946 * @version v29.2.0
43947 * @link https://www.ag-grid.com/
43948 * @license MIT
43949 */
43950var __extends = (undefined && undefined.__extends) || (function () {
43951 var extendStatics = function (d, b) {
43952 extendStatics = Object.setPrototypeOf ||
43953 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
43954 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
43955 return extendStatics(d, b);
43956 };
43957 return function (d, b) {
43958 extendStatics(d, b);
43959 function __() { this.constructor = d; }
43960 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
43961 };
43962})();
43963var __assign = (undefined && undefined.__assign) || function () {
43964 __assign = Object.assign || function(t) {
43965 for (var s, i = 1, n = arguments.length; i < n; i++) {
43966 s = arguments[i];
43967 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
43968 t[p] = s[p];
43969 }
43970 return t;
43971 };
43972 return __assign.apply(this, arguments);
43973};
43974var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
43975 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
43976 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
43977 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;
43978 return c > 3 && r && Object.defineProperty(target, key, r), r;
43979};
43980
43981
43982
43983
43984
43985var AgDialog = /** @class */ (function (_super) {
43986 __extends(AgDialog, _super);
43987 function AgDialog(config) {
43988 var _this = _super.call(this, __assign(__assign({}, config), { popup: true })) || this;
43989 _this.isMaximizable = false;
43990 _this.isMaximized = false;
43991 _this.maximizeListeners = [];
43992 _this.resizeListenerDestroy = null;
43993 _this.lastPosition = {
43994 x: 0,
43995 y: 0,
43996 width: 0,
43997 height: 0
43998 };
43999 return _this;
44000 }
44001 AgDialog.prototype.postConstruct = function () {
44002 var _this = this;
44003 var eGui = this.getGui();
44004 var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;
44005 this.addCssClass('ag-dialog');
44006 _super.prototype.postConstruct.call(this);
44007 this.addManagedListener(eGui, 'focusin', function (e) {
44008 if (eGui.contains(e.relatedTarget)) {
44009 return;
44010 }
44011 _this.popupService.bringPopupToFront(eGui);
44012 });
44013 if (movable) {
44014 this.setMovable(movable);
44015 }
44016 if (maximizable) {
44017 this.setMaximizable(maximizable);
44018 }
44019 if (resizable) {
44020 this.setResizable(resizable);
44021 }
44022 };
44023 AgDialog.prototype.renderComponent = function () {
44024 var eGui = this.getGui();
44025 var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal, title = _a.title;
44026 var translate = this.localeService.getLocaleTextFunc();
44027 var addPopupRes = this.popupService.addPopup({
44028 modal: modal,
44029 eChild: eGui,
44030 closeOnEsc: true,
44031 closedCallback: this.destroy.bind(this),
44032 alwaysOnTop: alwaysOnTop,
44033 ariaLabel: title || translate('ariaLabelDialog', 'Dialog')
44034 });
44035 if (addPopupRes) {
44036 this.close = addPopupRes.hideFunc;
44037 }
44038 };
44039 AgDialog.prototype.toggleMaximize = function () {
44040 var position = this.positionableFeature.getPosition();
44041 if (this.isMaximized) {
44042 var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;
44043 this.setWidth(width);
44044 this.setHeight(height);
44045 this.positionableFeature.offsetElement(x, y);
44046 }
44047 else {
44048 this.lastPosition.width = this.getWidth();
44049 this.lastPosition.height = this.getHeight();
44050 this.lastPosition.x = position.x;
44051 this.lastPosition.y = position.y;
44052 this.positionableFeature.offsetElement(0, 0);
44053 this.setHeight('100%');
44054 this.setWidth('100%');
44055 }
44056 this.isMaximized = !this.isMaximized;
44057 this.refreshMaximizeIcon();
44058 };
44059 AgDialog.prototype.refreshMaximizeIcon = function () {
44060 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.maximizeIcon, !this.isMaximized);
44061 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.minimizeIcon, this.isMaximized);
44062 };
44063 AgDialog.prototype.clearMaximizebleListeners = function () {
44064 if (this.maximizeListeners.length) {
44065 this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });
44066 this.maximizeListeners.length = 0;
44067 }
44068 if (this.resizeListenerDestroy) {
44069 this.resizeListenerDestroy();
44070 this.resizeListenerDestroy = null;
44071 }
44072 };
44073 AgDialog.prototype.destroy = function () {
44074 this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);
44075 this.clearMaximizebleListeners();
44076 _super.prototype.destroy.call(this);
44077 };
44078 AgDialog.prototype.setResizable = function (resizable) {
44079 this.positionableFeature.setResizable(resizable);
44080 };
44081 AgDialog.prototype.setMovable = function (movable) {
44082 this.positionableFeature.setMovable(movable, this.eTitleBar);
44083 };
44084 AgDialog.prototype.setMaximizable = function (maximizable) {
44085 var _this = this;
44086 if (!maximizable) {
44087 this.clearMaximizebleListeners();
44088 if (this.maximizeButtonComp) {
44089 this.destroyBean(this.maximizeButtonComp);
44090 this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;
44091 }
44092 return;
44093 }
44094 var eTitleBar = this.eTitleBar;
44095 if (!eTitleBar || maximizable === this.isMaximizable) {
44096 return;
44097 }
44098 var maximizeButtonComp = this.buildMaximizeAndMinimizeElements();
44099 this.refreshMaximizeIcon();
44100 maximizeButtonComp.addManagedListener(maximizeButtonComp.getGui(), 'click', this.toggleMaximize.bind(this));
44101 this.addTitleBarButton(maximizeButtonComp, 0);
44102 this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));
44103 this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {
44104 _this.isMaximized = false;
44105 _this.refreshMaximizeIcon();
44106 });
44107 };
44108 AgDialog.prototype.buildMaximizeAndMinimizeElements = function () {
44109 var maximizeButtonComp = this.maximizeButtonComp =
44110 this.createBean(new _component__WEBPACK_IMPORTED_MODULE_2__["Component"](/* html */ "<div class=\"ag-dialog-button\"></span>"));
44111 var eGui = maximizeButtonComp.getGui();
44112 this.maximizeIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('maximize', this.gridOptionsService);
44113 eGui.appendChild(this.maximizeIcon);
44114 this.maximizeIcon.classList.add('ag-panel-title-bar-button-icon');
44115 this.minimizeIcon = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('minimize', this.gridOptionsService);
44116 eGui.appendChild(this.minimizeIcon);
44117 this.minimizeIcon.classList.add('ag-panel-title-bar-button-icon');
44118 return maximizeButtonComp;
44119 };
44120 __decorate([
44121 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('popupService')
44122 ], AgDialog.prototype, "popupService", void 0);
44123 return AgDialog;
44124}(_agPanel__WEBPACK_IMPORTED_MODULE_1__["AgPanel"]));
44125
44126
44127
44128/***/ }),
44129/* 199 */
44130/***/ (function(module, __webpack_exports__, __webpack_require__) {
44131
44132"use strict";
44133__webpack_require__.r(__webpack_exports__);
44134/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return AgPanel; });
44135/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57);
44136/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
44137/* harmony import */ var _component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38);
44138/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
44139/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46);
44140/* harmony import */ var _rendering_features_positionableFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65);
44141/**
44142 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
44143 * @version v29.2.0
44144 * @link https://www.ag-grid.com/
44145 * @license MIT
44146 */
44147var __extends = (undefined && undefined.__extends) || (function () {
44148 var extendStatics = function (d, b) {
44149 extendStatics = Object.setPrototypeOf ||
44150 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44151 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
44152 return extendStatics(d, b);
44153 };
44154 return function (d, b) {
44155 extendStatics(d, b);
44156 function __() { this.constructor = d; }
44157 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44158 };
44159})();
44160var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44161 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44162 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44163 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;
44164 return c > 3 && r && Object.defineProperty(target, key, r), r;
44165};
44166
44167
44168
44169
44170
44171
44172var AgPanel = /** @class */ (function (_super) {
44173 __extends(AgPanel, _super);
44174 function AgPanel(config) {
44175 var _this = _super.call(this, AgPanel.getTemplate(config)) || this;
44176 _this.closable = true;
44177 _this.config = config;
44178 return _this;
44179 }
44180 AgPanel.getTemplate = function (config) {
44181 var cssIdentifier = (config && config.cssIdentifier) || 'default';
44182 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>";
44183 };
44184 AgPanel.prototype.postConstruct = function () {
44185 var _this = this;
44186 var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, _b = _a.minWidth, minWidth = _b === void 0 ? 250 : _b, width = _a.width, _c = _a.minHeight, minHeight = _c === void 0 ? 250 : _c, height = _a.height, centered = _a.centered, popup = _a.popup, x = _a.x, y = _a.y;
44187 this.positionableFeature = new _rendering_features_positionableFeature__WEBPACK_IMPORTED_MODULE_5__["PositionableFeature"](this.getGui(), {
44188 minWidth: minWidth, width: width, minHeight: minHeight, height: height, centered: centered, x: x, y: y, popup: popup,
44189 calculateTopBuffer: function () { return _this.positionableFeature.getHeight() - _this.getBodyHeight(); }
44190 });
44191 this.createManagedBean(this.positionableFeature);
44192 var eGui = this.getGui();
44193 if (component) {
44194 this.setBodyComponent(component);
44195 }
44196 if (!hideTitleBar) {
44197 if (title) {
44198 this.setTitle(title);
44199 }
44200 this.setClosable(closable != null ? closable : this.closable);
44201 }
44202 else {
44203 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["setDisplayed"])(this.eTitleBar, false);
44204 }
44205 this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {
44206 var eDocument = _this.gridOptionsService.getDocument();
44207 if (eGui.contains(e.relatedTarget) ||
44208 eGui.contains(eDocument.activeElement) ||
44209 _this.eTitleBarButtons.contains(e.target)) {
44210 e.preventDefault();
44211 return;
44212 }
44213 var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');
44214 if (focusEl) {
44215 focusEl.focus();
44216 }
44217 });
44218 if (popup && this.positionableFeature.isPositioned()) {
44219 return;
44220 }
44221 if (this.renderComponent) {
44222 this.renderComponent();
44223 }
44224 this.positionableFeature.initialisePosition();
44225 this.eContentWrapper.style.height = '0';
44226 };
44227 AgPanel.prototype.renderComponent = function () {
44228 var _this = this;
44229 var eGui = this.getGui();
44230 eGui.focus();
44231 this.close = function () {
44232 eGui.parentElement.removeChild(eGui);
44233 _this.destroy();
44234 };
44235 };
44236 AgPanel.prototype.getHeight = function () {
44237 return this.positionableFeature.getHeight();
44238 };
44239 AgPanel.prototype.setHeight = function (height) {
44240 this.positionableFeature.setHeight(height);
44241 };
44242 AgPanel.prototype.getWidth = function () {
44243 return this.positionableFeature.getWidth();
44244 };
44245 AgPanel.prototype.setWidth = function (width) {
44246 this.positionableFeature.setWidth(width);
44247 };
44248 AgPanel.prototype.setClosable = function (closable) {
44249 if (closable !== this.closable) {
44250 this.closable = closable;
44251 }
44252 if (closable) {
44253 var closeButtonComp = this.closeButtonComp = new _component__WEBPACK_IMPORTED_MODULE_2__["Component"](AgPanel.CLOSE_BTN_TEMPLATE);
44254 this.getContext().createBean(closeButtonComp);
44255 var eGui = closeButtonComp.getGui();
44256 var child = Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])('close', this.gridOptionsService);
44257 child.classList.add('ag-panel-title-bar-button-icon');
44258 eGui.appendChild(child);
44259 this.addTitleBarButton(closeButtonComp);
44260 closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));
44261 }
44262 else if (this.closeButtonComp) {
44263 var eGui = this.closeButtonComp.getGui();
44264 eGui.parentElement.removeChild(eGui);
44265 this.closeButtonComp = this.destroyBean(this.closeButtonComp);
44266 }
44267 };
44268 AgPanel.prototype.setBodyComponent = function (bodyComponent) {
44269 bodyComponent.setParentComponent(this);
44270 this.eContentWrapper.appendChild(bodyComponent.getGui());
44271 };
44272 AgPanel.prototype.addTitleBarButton = function (button, position) {
44273 var eTitleBarButtons = this.eTitleBarButtons;
44274 var buttons = eTitleBarButtons.children;
44275 var len = buttons.length;
44276 if (position == null) {
44277 position = len;
44278 }
44279 position = Math.max(0, Math.min(position, len));
44280 button.addCssClass('ag-panel-title-bar-button');
44281 var eGui = button.getGui();
44282 if (position === 0) {
44283 eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);
44284 }
44285 else if (position === len) {
44286 eTitleBarButtons.insertAdjacentElement('beforeend', eGui);
44287 }
44288 else {
44289 buttons[position - 1].insertAdjacentElement('afterend', eGui);
44290 }
44291 button.setParentComponent(this);
44292 };
44293 AgPanel.prototype.getBodyHeight = function () {
44294 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerHeight"])(this.eContentWrapper);
44295 };
44296 AgPanel.prototype.getBodyWidth = function () {
44297 return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["getInnerWidth"])(this.eContentWrapper);
44298 };
44299 AgPanel.prototype.setTitle = function (title) {
44300 this.eTitle.innerText = title;
44301 };
44302 // called when user hits the 'x' in the top right
44303 AgPanel.prototype.onBtClose = function () {
44304 this.close();
44305 };
44306 AgPanel.prototype.destroy = function () {
44307 if (this.closeButtonComp) {
44308 this.closeButtonComp = this.destroyBean(this.closeButtonComp);
44309 }
44310 var eGui = this.getGui();
44311 if (eGui && eGui.offsetParent) {
44312 this.close();
44313 }
44314 _super.prototype.destroy.call(this);
44315 };
44316 AgPanel.CLOSE_BTN_TEMPLATE = "<div class=\"ag-button\"></div>";
44317 __decorate([
44318 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eContentWrapper')
44319 ], AgPanel.prototype, "eContentWrapper", void 0);
44320 __decorate([
44321 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitleBar')
44322 ], AgPanel.prototype, "eTitleBar", void 0);
44323 __decorate([
44324 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitleBarButtons')
44325 ], AgPanel.prototype, "eTitleBarButtons", void 0);
44326 __decorate([
44327 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_0__["RefSelector"])('eTitle')
44328 ], AgPanel.prototype, "eTitle", void 0);
44329 __decorate([
44330 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
44331 ], AgPanel.prototype, "postConstruct", null);
44332 return AgPanel;
44333}(_component__WEBPACK_IMPORTED_MODULE_2__["Component"]));
44334
44335
44336
44337/***/ }),
44338/* 200 */
44339/***/ (function(module, __webpack_exports__, __webpack_require__) {
44340
44341"use strict";
44342__webpack_require__.r(__webpack_exports__);
44343/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return PopupService; });
44344/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
44345/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
44346/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
44347/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
44348/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
44349/* harmony import */ var _utils_event__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(18);
44350/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(48);
44351/* harmony import */ var _focusService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(201);
44352/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(39);
44353/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(41);
44354/**
44355 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
44356 * @version v29.2.0
44357 * @link https://www.ag-grid.com/
44358 * @license MIT
44359 */
44360var __extends = (undefined && undefined.__extends) || (function () {
44361 var extendStatics = function (d, b) {
44362 extendStatics = Object.setPrototypeOf ||
44363 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44364 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
44365 return extendStatics(d, b);
44366 };
44367 return function (d, b) {
44368 extendStatics(d, b);
44369 function __() { this.constructor = d; }
44370 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
44371 };
44372})();
44373var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
44374 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
44375 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
44376 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;
44377 return c > 3 && r && Object.defineProperty(target, key, r), r;
44378};
44379var __read = (undefined && undefined.__read) || function (o, n) {
44380 var m = typeof Symbol === "function" && o[Symbol.iterator];
44381 if (!m) return o;
44382 var i = m.call(o), r, ar = [], e;
44383 try {
44384 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44385 }
44386 catch (error) { e = { error: error }; }
44387 finally {
44388 try {
44389 if (r && !r.done && (m = i["return"])) m.call(i);
44390 }
44391 finally { if (e) throw e.error; }
44392 }
44393 return ar;
44394};
44395var __spread = (undefined && undefined.__spread) || function () {
44396 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
44397 return ar;
44398};
44399
44400
44401
44402
44403
44404
44405
44406
44407
44408
44409var DIRECTION;
44410(function (DIRECTION) {
44411 DIRECTION[DIRECTION["vertical"] = 0] = "vertical";
44412 DIRECTION[DIRECTION["horizontal"] = 1] = "horizontal";
44413})(DIRECTION || (DIRECTION = {}));
44414var instanceIdSeq = 0;
44415var PopupService = /** @class */ (function (_super) {
44416 __extends(PopupService, _super);
44417 function PopupService() {
44418 var _this = _super !== null && _super.apply(this, arguments) || this;
44419 _this.popupList = [];
44420 return _this;
44421 }
44422 PopupService_1 = PopupService;
44423 PopupService.prototype.postConstruct = function () {
44424 var _this = this;
44425 this.ctrlsService.whenReady(function (p) {
44426 _this.gridCtrl = p.gridCtrl;
44427 _this.addManagedListener(_this.gridCtrl, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_KEYBOARD_FOCUS, function () {
44428 _this.popupList.forEach(function (popup) { return popup.element.classList.add(_focusService__WEBPACK_IMPORTED_MODULE_7__["FocusService"].AG_KEYBOARD_FOCUS); });
44429 });
44430 _this.addManagedListener(_this.gridCtrl, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MOUSE_FOCUS, function () {
44431 _this.popupList.forEach(function (popup) { return popup.element.classList.remove(_focusService__WEBPACK_IMPORTED_MODULE_7__["FocusService"].AG_KEYBOARD_FOCUS); });
44432 });
44433 });
44434 };
44435 PopupService.prototype.getPopupParent = function () {
44436 var ePopupParent = this.gridOptionsService.get('popupParent');
44437 if (ePopupParent) {
44438 return ePopupParent;
44439 }
44440 return this.gridCtrl.getGui();
44441 };
44442 PopupService.prototype.positionPopupForMenu = function (params) {
44443 var sourceRect = params.eventSource.getBoundingClientRect();
44444 var parentRect = this.getParentRect();
44445 this.checkClearMaxHeight(params.ePopup, params.shouldSetMaxHeight);
44446 var y = this.keepXYWithinBounds(params.ePopup, sourceRect.top - parentRect.top, DIRECTION.vertical);
44447 var minWidth = (params.ePopup.clientWidth > 0) ? params.ePopup.clientWidth : 200;
44448 params.ePopup.style.minWidth = minWidth + "px";
44449 var widthOfParent = parentRect.right - parentRect.left;
44450 var maxX = widthOfParent - minWidth;
44451 // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup
44452 // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,
44453 // we try place it first to the left, and then if not to the right.
44454 var x;
44455 if (this.gridOptionsService.is('enableRtl')) {
44456 // for RTL, try left first
44457 x = xLeftPosition();
44458 if (x < 0) {
44459 x = xRightPosition();
44460 }
44461 if (x > maxX) {
44462 x = 0;
44463 }
44464 }
44465 else {
44466 // for LTR, try right first
44467 x = xRightPosition();
44468 if (x > maxX) {
44469 x = xLeftPosition();
44470 }
44471 if (x < 0) {
44472 x = 0;
44473 }
44474 }
44475 params.ePopup.style.left = x + "px";
44476 params.ePopup.style.top = y + "px";
44477 this.checkSetMaxHeight(params.ePopup, y, params.shouldSetMaxHeight);
44478 function xRightPosition() {
44479 return sourceRect.right - parentRect.left - 2;
44480 }
44481 function xLeftPosition() {
44482 return sourceRect.left - parentRect.left - minWidth;
44483 }
44484 };
44485 PopupService.prototype.positionPopupUnderMouseEvent = function (params) {
44486 var _this = this;
44487 var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver, shouldSetMaxHeight = params.shouldSetMaxHeight;
44488 this.positionPopup({
44489 ePopup: ePopup,
44490 nudgeX: nudgeX,
44491 nudgeY: nudgeY,
44492 keepWithinBounds: true,
44493 skipObserver: skipObserver,
44494 shouldSetMaxHeight: shouldSetMaxHeight,
44495 updatePosition: function () { return _this.calculatePointerAlign(params.mouseEvent); },
44496 postProcessCallback: function () { return _this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode); }
44497 });
44498 };
44499 PopupService.prototype.calculatePointerAlign = function (e) {
44500 var parentRect = this.getParentRect();
44501 return {
44502 x: e.clientX - parentRect.left,
44503 y: e.clientY - parentRect.top
44504 };
44505 };
44506 PopupService.prototype.positionPopupByComponent = function (params) {
44507 var _this = this;
44508 var sourceRect = params.eventSource.getBoundingClientRect();
44509 var alignSide = params.alignSide || 'left';
44510 var position = params.position || 'over';
44511 var parentRect = this.getParentRect();
44512 var updatePosition = function () {
44513 var x = sourceRect.left - parentRect.left;
44514 if (alignSide === 'right') {
44515 x -= (params.ePopup.offsetWidth - sourceRect.width);
44516 }
44517 var y = position === 'over'
44518 ? (sourceRect.top - parentRect.top)
44519 : (sourceRect.top - parentRect.top + sourceRect.height);
44520 return { x: x, y: y };
44521 };
44522 this.positionPopup({
44523 ePopup: params.ePopup,
44524 nudgeX: params.nudgeX,
44525 nudgeY: params.nudgeY,
44526 keepWithinBounds: params.keepWithinBounds,
44527 shouldSetMaxHeight: params.shouldSetMaxHeight,
44528 updatePosition: updatePosition,
44529 postProcessCallback: function () { return _this.callPostProcessPopup(params.type, params.ePopup, params.eventSource, null, params.column, params.rowNode); }
44530 });
44531 };
44532 PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {
44533 var callback = this.gridOptionsService.getCallback('postProcessPopup');
44534 if (callback) {
44535 var params = {
44536 column: column,
44537 rowNode: rowNode,
44538 ePopup: ePopup,
44539 type: type,
44540 eventSource: eventSource,
44541 mouseEvent: mouseEvent
44542 };
44543 callback(params);
44544 }
44545 };
44546 PopupService.prototype.positionPopup = function (params) {
44547 var _this = this;
44548 var ePopup = params.ePopup, keepWithinBounds = params.keepWithinBounds, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver, shouldSetMaxHeight = params.shouldSetMaxHeight, updatePosition = params.updatePosition;
44549 var lastSize = { width: 0, height: 0 };
44550 var updatePopupPosition = function (fromResizeObserver) {
44551 if (fromResizeObserver === void 0) { fromResizeObserver = false; }
44552 var _a = updatePosition(), x = _a.x, y = _a.y;
44553 if (fromResizeObserver &&
44554 ePopup.clientWidth === lastSize.width &&
44555 ePopup.clientHeight === lastSize.height) {
44556 return;
44557 }
44558 lastSize.width = ePopup.clientWidth;
44559 lastSize.height = ePopup.clientHeight;
44560 if (nudgeX) {
44561 x += nudgeX;
44562 }
44563 if (nudgeY) {
44564 y += nudgeY;
44565 }
44566 _this.checkClearMaxHeight(ePopup, shouldSetMaxHeight);
44567 // if popup is overflowing to the bottom, move it up
44568 if (keepWithinBounds) {
44569 x = _this.keepXYWithinBounds(ePopup, x, DIRECTION.horizontal);
44570 y = _this.keepXYWithinBounds(ePopup, y, DIRECTION.vertical);
44571 }
44572 ePopup.style.left = x + "px";
44573 ePopup.style.top = y + "px";
44574 _this.checkSetMaxHeight(ePopup, y, shouldSetMaxHeight);
44575 if (params.postProcessCallback) {
44576 params.postProcessCallback();
44577 }
44578 };
44579 updatePopupPosition();
44580 // Mouse tracking will recalculate positioning when moving, so won't need to recalculate here
44581 if (!skipObserver) {
44582 // Since rendering popup contents can be asynchronous, use a resize observer to
44583 // reposition the popup after initial updates to the size of the contents
44584 var resizeObserverDestroyFunc_1 = this.resizeObserverService.observeResize(ePopup, function () { return updatePopupPosition(true); });
44585 // Only need to reposition when first open, so can clean up after a bit of time
44586 setTimeout(function () { return resizeObserverDestroyFunc_1(); }, PopupService_1.WAIT_FOR_POPUP_CONTENT_RESIZE);
44587 }
44588 };
44589 PopupService.prototype.getActivePopups = function () {
44590 return this.popupList.map(function (popup) { return popup.element; });
44591 };
44592 PopupService.prototype.getPopupList = function () {
44593 return this.popupList;
44594 };
44595 PopupService.prototype.getParentRect = function () {
44596 // subtract the popup parent borders, because popupParent.getBoundingClientRect
44597 // returns the rect outside the borders, but the 0,0 coordinate for absolute
44598 // positioning is inside the border, leading the popup to be off by the width
44599 // of the border
44600 var eDocument = this.gridOptionsService.getDocument();
44601 var popupParent = this.getPopupParent();
44602 if (popupParent === eDocument.body) {
44603 popupParent = eDocument.documentElement;
44604 }
44605 else if (getComputedStyle(popupParent).position === 'static') {
44606 popupParent = popupParent.offsetParent;
44607 }
44608 var style = getComputedStyle(popupParent);
44609 var bounds = popupParent.getBoundingClientRect();
44610 return {
44611 top: bounds.top + parseFloat(style.borderTopWidth) || 0,
44612 left: bounds.left + parseFloat(style.borderLeftWidth) || 0,
44613 right: bounds.right + parseFloat(style.borderRightWidth) || 0,
44614 bottom: bounds.bottom + parseFloat(style.borderBottomWidth) || 0,
44615 };
44616 };
44617 PopupService.prototype.keepXYWithinBounds = function (ePopup, position, direction) {
44618 var isVertical = direction === DIRECTION.vertical;
44619 var sizeProperty = isVertical ? 'clientHeight' : 'clientWidth';
44620 var anchorProperty = isVertical ? 'top' : 'left';
44621 var offsetProperty = isVertical ? 'offsetHeight' : 'offsetWidth';
44622 var scrollPositionProperty = isVertical ? 'scrollTop' : 'scrollLeft';
44623 var eDocument = this.gridOptionsService.getDocument();
44624 var docElement = eDocument.documentElement;
44625 var popupParent = this.getPopupParent();
44626 var parentRect = popupParent.getBoundingClientRect();
44627 var documentRect = eDocument.documentElement.getBoundingClientRect();
44628 var isBody = popupParent === eDocument.body;
44629 var offsetSize = ePopup[offsetProperty];
44630 var getSize = isVertical ? _utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteHeight"] : _utils_dom__WEBPACK_IMPORTED_MODULE_3__["getAbsoluteWidth"];
44631 var sizeOfParent = isBody ? (getSize(docElement) + docElement[scrollPositionProperty]) : popupParent[sizeProperty];
44632 if (isBody) {
44633 sizeOfParent -= Math.abs(documentRect[anchorProperty] - parentRect[anchorProperty]);
44634 }
44635 var max = sizeOfParent - offsetSize;
44636 return Math.min(Math.max(position, 0), Math.abs(max));
44637 };
44638 PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {
44639 var _this = this;
44640 var eParent = this.getPopupParent();
44641 var parentRect = eParent.getBoundingClientRect();
44642 var sourceRect = params.element.getBoundingClientRect();
44643 var initialDiffTop = parentRect.top - sourceRect.top;
44644 var initialDiffLeft = parentRect.left - sourceRect.left;
44645 var lastDiffTop = initialDiffTop;
44646 var lastDiffLeft = initialDiffLeft;
44647 var topPx = params.ePopup.style.top;
44648 var top = parseInt(topPx.substring(0, topPx.length - 1), 10);
44649 var leftPx = params.ePopup.style.left;
44650 var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);
44651 return new _utils__WEBPACK_IMPORTED_MODULE_8__["AgPromise"](function (resolve) {
44652 _this.getFrameworkOverrides().setInterval(function () {
44653 var pRect = eParent.getBoundingClientRect();
44654 var sRect = params.element.getBoundingClientRect();
44655 var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;
44656 if (elementNotInDom) {
44657 params.hidePopup();
44658 return;
44659 }
44660 var currentDiffTop = pRect.top - sRect.top;
44661 if (currentDiffTop != lastDiffTop) {
44662 var newTop = _this.keepXYWithinBounds(params.ePopup, top + initialDiffTop - currentDiffTop, DIRECTION.vertical);
44663 params.ePopup.style.top = newTop + "px";
44664 }
44665 lastDiffTop = currentDiffTop;
44666 var currentDiffLeft = pRect.left - sRect.left;
44667 if (currentDiffLeft != lastDiffLeft) {
44668 var newLeft = _this.keepXYWithinBounds(params.ePopup, left + initialDiffLeft - currentDiffLeft, DIRECTION.horizontal);
44669 params.ePopup.style.left = newLeft + "px";
44670 }
44671 lastDiffLeft = currentDiffLeft;
44672 }, 200).then(function (intervalId) {
44673 var result = function () {
44674 if (intervalId != null) {
44675 window.clearInterval(intervalId);
44676 }
44677 };
44678 resolve(result);
44679 });
44680 });
44681 };
44682 PopupService.prototype.addPopup = function (params) {
44683 var _a;
44684 var _this = this;
44685 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, ariaLabel = params.ariaLabel;
44686 var eDocument = this.gridOptionsService.getDocument();
44687 var destroyPositionTracker = new _utils__WEBPACK_IMPORTED_MODULE_8__["AgPromise"](function (resolve) { return resolve(function () { }); });
44688 if (!eDocument) {
44689 console.warn('AG Grid: could not find the document, document is empty');
44690 return { hideFunc: function () { }, stopAnchoringPromise: destroyPositionTracker };
44691 }
44692 var pos = this.popupList.findIndex(function (popup) { return popup.element === eChild; });
44693 if (pos !== -1) {
44694 var popup = this.popupList[pos];
44695 return { hideFunc: popup.hideFunc, stopAnchoringPromise: popup.stopAnchoringPromise };
44696 }
44697 var ePopupParent = this.getPopupParent();
44698 if (eChild.style.top == null) {
44699 eChild.style.top = '0px';
44700 }
44701 if (eChild.style.left == null) {
44702 eChild.style.left = '0px';
44703 }
44704 // add env CSS class to child, in case user provided a popup parent, which means
44705 // theme class may be missing
44706 var eWrapper = document.createElement('div');
44707 var allThemes = this.environment.getTheme().allThemes;
44708 if (allThemes.length) {
44709 (_a = eWrapper.classList).add.apply(_a, __spread(allThemes));
44710 }
44711 eWrapper.classList.add('ag-popup');
44712 eChild.classList.add(this.gridOptionsService.is('enableRtl') ? 'ag-rtl' : 'ag-ltr', 'ag-popup-child');
44713 if (!eChild.hasAttribute('role')) {
44714 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaRole"])(eChild, 'dialog');
44715 }
44716 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_9__["setAriaLabel"])(eChild, ariaLabel);
44717 if (this.focusService.isKeyboardMode()) {
44718 eChild.classList.add(_focusService__WEBPACK_IMPORTED_MODULE_7__["FocusService"].AG_KEYBOARD_FOCUS);
44719 }
44720 eWrapper.appendChild(eChild);
44721 ePopupParent.appendChild(eWrapper);
44722 if (alwaysOnTop) {
44723 this.setAlwaysOnTop(eWrapper, true);
44724 }
44725 else {
44726 this.bringPopupToFront(eWrapper);
44727 }
44728 var popupHidden = false;
44729 var hidePopupOnKeyboardEvent = function (event) {
44730 if (!eWrapper.contains(eDocument.activeElement)) {
44731 return;
44732 }
44733 var key = event.key;
44734 if (key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_6__["KeyCode"].ESCAPE) {
44735 hidePopup({ keyboardEvent: event });
44736 }
44737 };
44738 var hidePopupOnMouseEvent = function (event) { return hidePopup({ mouseEvent: event }); };
44739 var hidePopupOnTouchEvent = function (event) { return hidePopup({ touchEvent: event }); };
44740 var hidePopup = function (popupParams) {
44741 if (popupParams === void 0) { popupParams = {}; }
44742 var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;
44743 if (
44744 // we don't hide popup if the event was on the child, or any
44745 // children of this child
44746 _this.isEventFromCurrentPopup({ mouseEvent: mouseEvent, touchEvent: touchEvent }, eChild) ||
44747 // if the event to close is actually the open event, then ignore it
44748 _this.isEventSameChainAsOriginalEvent({ originalMouseEvent: click, mouseEvent: mouseEvent, touchEvent: touchEvent }) ||
44749 // this method should only be called once. the client can have different
44750 // paths, each one wanting to close, so this method may be called multiple times.
44751 popupHidden) {
44752 return;
44753 }
44754 popupHidden = true;
44755 ePopupParent.removeChild(eWrapper);
44756 eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);
44757 eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);
44758 eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);
44759 eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);
44760 _this.eventService.removeEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED, hidePopupOnMouseEvent);
44761 if (closedCallback) {
44762 closedCallback(mouseEvent || touchEvent || keyboardEvent);
44763 }
44764 _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });
44765 if (destroyPositionTracker) {
44766 destroyPositionTracker.then(function (destroyFunc) { return destroyFunc && destroyFunc(); });
44767 }
44768 };
44769 if (afterGuiAttached) {
44770 afterGuiAttached({ hidePopup: hidePopup });
44771 }
44772 // if we add these listeners now, then the current mouse
44773 // click will be included, which we don't want
44774 window.setTimeout(function () {
44775 if (closeOnEsc) {
44776 eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);
44777 }
44778 if (modal) {
44779 eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);
44780 _this.eventService.addEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_DRAG_STARTED, hidePopupOnMouseEvent);
44781 eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);
44782 eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);
44783 }
44784 }, 0);
44785 if (positionCallback) {
44786 positionCallback();
44787 }
44788 if (anchorToElement) {
44789 // keeps popup positioned under created, eg if context menu, if user scrolls
44790 // using touchpad and the cell moves, it moves the popup to keep it with the cell.
44791 destroyPositionTracker = this.keepPopupPositionedRelativeTo({
44792 element: anchorToElement,
44793 ePopup: eChild,
44794 hidePopup: hidePopup
44795 });
44796 }
44797 this.popupList.push({
44798 element: eChild,
44799 wrapper: eWrapper,
44800 hideFunc: hidePopup,
44801 stopAnchoringPromise: destroyPositionTracker,
44802 instanceId: instanceIdSeq++,
44803 isAnchored: !!anchorToElement
44804 });
44805 return {
44806 hideFunc: hidePopup,
44807 stopAnchoringPromise: destroyPositionTracker
44808 };
44809 };
44810 PopupService.prototype.hasAnchoredPopup = function () {
44811 return this.popupList.some(function (popup) { return popup.isAnchored; });
44812 };
44813 PopupService.prototype.isEventFromCurrentPopup = function (params, target) {
44814 var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;
44815 var event = mouseEvent ? mouseEvent : touchEvent;
44816 if (!event) {
44817 return false;
44818 }
44819 var indexOfThisChild = this.popupList.findIndex(function (popup) { return popup.element === target; });
44820 if (indexOfThisChild === -1) {
44821 return false;
44822 }
44823 for (var i = indexOfThisChild; i < this.popupList.length; i++) {
44824 var popup = this.popupList[i];
44825 if (Object(_utils_event__WEBPACK_IMPORTED_MODULE_5__["isElementInEventPath"])(popup.element, event)) {
44826 return true;
44827 }
44828 }
44829 // if the user did not write their own Custom Element to be rendered as popup
44830 // and this component has an additional popup element, they should have the
44831 // `ag-custom-component-popup` class to be detected as part of the Custom Component
44832 return this.isElementWithinCustomPopup(event.target);
44833 };
44834 PopupService.prototype.isElementWithinCustomPopup = function (el) {
44835 var eDocument = this.gridOptionsService.getDocument();
44836 while (el && el !== eDocument.body) {
44837 if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {
44838 return true;
44839 }
44840 el = el.parentElement;
44841 }
44842 return false;
44843 };
44844 // in some browsers, the context menu event can be fired before the click event, which means
44845 // the context menu event could open the popup, but then the click event closes it straight away.
44846 PopupService.prototype.isEventSameChainAsOriginalEvent = function (params) {
44847 var originalMouseEvent = params.originalMouseEvent, mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;
44848 // we check the coordinates of the event, to see if it's the same event. there is a 1 / 1000 chance that
44849 // the event is a different event, however that is an edge case that is not very relevant (the user clicking
44850 // twice on the same location isn't a normal path).
44851 // event could be mouse event or touch event.
44852 var mouseEventOrTouch = null;
44853 if (mouseEvent) {
44854 // mouse event can be used direction, it has coordinates
44855 mouseEventOrTouch = mouseEvent;
44856 }
44857 else if (touchEvent) {
44858 // touch event doesn't have coordinates, need it's touch object
44859 mouseEventOrTouch = touchEvent.touches[0];
44860 }
44861 if (mouseEventOrTouch && originalMouseEvent) {
44862 // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed
44863 // by browser click (when you finger up, touch is interrupted as click in browser)
44864 var screenX_1 = mouseEvent ? mouseEvent.screenX : 0;
44865 var screenY_1 = mouseEvent ? mouseEvent.screenY : 0;
44866 var xMatch = Math.abs(originalMouseEvent.screenX - screenX_1) < 5;
44867 var yMatch = Math.abs(originalMouseEvent.screenY - screenY_1) < 5;
44868 if (xMatch && yMatch) {
44869 return true;
44870 }
44871 }
44872 return false;
44873 };
44874 PopupService.prototype.getWrapper = function (ePopup) {
44875 while (!ePopup.classList.contains('ag-popup') && ePopup.parentElement) {
44876 ePopup = ePopup.parentElement;
44877 }
44878 return ePopup.classList.contains('ag-popup') ? ePopup : null;
44879 };
44880 PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {
44881 var eWrapper = this.getWrapper(ePopup);
44882 if (!eWrapper) {
44883 return;
44884 }
44885 eWrapper.classList.toggle('ag-always-on-top', !!alwaysOnTop);
44886 if (alwaysOnTop) {
44887 this.bringPopupToFront(eWrapper);
44888 }
44889 };
44890 PopupService.prototype.bringPopupToFront = function (ePopup) {
44891 var parent = this.getPopupParent();
44892 var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));
44893 var popupLen = popupList.length;
44894 var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));
44895 var onTopLength = alwaysOnTopList.length;
44896 var eWrapper = this.getWrapper(ePopup);
44897 if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {
44898 return;
44899 }
44900 var pos = popupList.indexOf(eWrapper);
44901 var innerEls = eWrapper.querySelectorAll('div');
44902 var innerElsScrollMap = [];
44903 innerEls.forEach(function (el) {
44904 if (el.scrollTop !== 0) {
44905 innerElsScrollMap.push([el, el.scrollTop]);
44906 }
44907 });
44908 if (onTopLength) {
44909 var isPopupAlwaysOnTop = eWrapper.classList.contains('ag-always-on-top');
44910 if (isPopupAlwaysOnTop) {
44911 if (pos !== popupLen - 1) {
44912 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);
44913 }
44914 }
44915 else if (pos !== popupLen - onTopLength - 1) {
44916 alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);
44917 }
44918 }
44919 else if (pos !== popupLen - 1) {
44920 Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(popupList).insertAdjacentElement('afterend', eWrapper);
44921 }
44922 while (innerElsScrollMap.length) {
44923 var currentEl = innerElsScrollMap.pop();
44924 currentEl[0].scrollTop = currentEl[1];
44925 }
44926 var params = {
44927 type: 'popupToFront',
44928 api: this.gridOptionsService.api,
44929 columnApi: this.gridOptionsService.columnApi,
44930 eWrapper: eWrapper
44931 };
44932 this.eventService.dispatchEvent(params);
44933 };
44934 PopupService.prototype.checkClearMaxHeight = function (ePopup, shouldSetMaxHeight) {
44935 if (shouldSetMaxHeight) {
44936 // positionPopup can be called multiple times, so need to clear before bounds check
44937 ePopup.style.removeProperty('max-height');
44938 }
44939 };
44940 PopupService.prototype.checkSetMaxHeight = function (ePopup, y, shouldSetMaxHeight) {
44941 if (shouldSetMaxHeight && getComputedStyle(ePopup).maxHeight === '100%') {
44942 // max height could be overridden, so only set if the default (100%)
44943 ePopup.style.maxHeight = "calc(100% - " + y + "px)";
44944 }
44945 };
44946 var PopupService_1;
44947 PopupService.WAIT_FOR_POPUP_CONTENT_RESIZE = 200;
44948 __decorate([
44949 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
44950 ], PopupService.prototype, "focusService", void 0);
44951 __decorate([
44952 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
44953 ], PopupService.prototype, "ctrlsService", void 0);
44954 __decorate([
44955 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
44956 ], PopupService.prototype, "resizeObserverService", void 0);
44957 __decorate([
44958 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
44959 ], PopupService.prototype, "postConstruct", null);
44960 PopupService = PopupService_1 = __decorate([
44961 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('popupService')
44962 ], PopupService);
44963 return PopupService;
44964}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
44965
44966
44967
44968/***/ }),
44969/* 201 */
44970/***/ (function(module, __webpack_exports__, __webpack_require__) {
44971
44972"use strict";
44973__webpack_require__.r(__webpack_exports__);
44974/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FocusService", function() { return FocusService; });
44975/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
44976/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
44977/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
44978/* harmony import */ var _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(64);
44979/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42);
44980/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
44981/* harmony import */ var _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(124);
44982/* harmony import */ var _headerRendering_cells_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(159);
44983/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(19);
44984/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(45);
44985/* harmony import */ var _widgets_tabGuardCtrl__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(196);
44986/**
44987 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
44988 * @version v29.2.0
44989 * @link https://www.ag-grid.com/
44990 * @license MIT
44991 */
44992var __extends = (undefined && undefined.__extends) || (function () {
44993 var extendStatics = function (d, b) {
44994 extendStatics = Object.setPrototypeOf ||
44995 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
44996 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
44997 return extendStatics(d, b);
44998 };
44999 return function (d, b) {
45000 extendStatics(d, b);
45001 function __() { this.constructor = d; }
45002 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45003 };
45004})();
45005var __assign = (undefined && undefined.__assign) || function () {
45006 __assign = Object.assign || function(t) {
45007 for (var s, i = 1, n = arguments.length; i < n; i++) {
45008 s = arguments[i];
45009 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
45010 t[p] = s[p];
45011 }
45012 return t;
45013 };
45014 return __assign.apply(this, arguments);
45015};
45016var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45017 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45018 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45019 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;
45020 return c > 3 && r && Object.defineProperty(target, key, r), r;
45021};
45022var __read = (undefined && undefined.__read) || function (o, n) {
45023 var m = typeof Symbol === "function" && o[Symbol.iterator];
45024 if (!m) return o;
45025 var i = m.call(o), r, ar = [], e;
45026 try {
45027 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
45028 }
45029 catch (error) { e = { error: error }; }
45030 finally {
45031 try {
45032 if (r && !r.done && (m = i["return"])) m.call(i);
45033 }
45034 finally { if (e) throw e.error; }
45035 }
45036 return ar;
45037};
45038var __spread = (undefined && undefined.__spread) || function () {
45039 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
45040 return ar;
45041};
45042
45043
45044
45045
45046
45047
45048
45049
45050
45051
45052
45053var FocusService = /** @class */ (function (_super) {
45054 __extends(FocusService, _super);
45055 function FocusService() {
45056 return _super !== null && _super.apply(this, arguments) || this;
45057 }
45058 FocusService_1 = FocusService;
45059 /**
45060 * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode
45061 * in a specific HTMLDocument.
45062 *
45063 * @param doc {Document} - The Document containing the gridCore.
45064 * @param gridCore {GridComp} - The GridCore to be monitored.
45065 */
45066 FocusService.addKeyboardModeEvents = function (doc, controller) {
45067 var docControllers = FocusService_1.instancesMonitored.get(doc);
45068 if (docControllers && docControllers.length > 0) {
45069 if (docControllers.indexOf(controller) === -1) {
45070 docControllers.push(controller);
45071 }
45072 }
45073 else {
45074 FocusService_1.instancesMonitored.set(doc, [controller]);
45075 doc.addEventListener('keydown', FocusService_1.toggleKeyboardMode);
45076 doc.addEventListener('mousedown', FocusService_1.toggleKeyboardMode);
45077 }
45078 };
45079 /**
45080 * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode
45081 * in a specific HTMLDocument.
45082 *
45083 * @param doc {Document} - The Document containing the gridCore.
45084 * @param gridCore {GridComp} - The GridCore to be removed.
45085 */
45086 FocusService.removeKeyboardModeEvents = function (doc, controller) {
45087 var docControllers = FocusService_1.instancesMonitored.get(doc);
45088 var newControllers = [];
45089 if (docControllers && docControllers.length) {
45090 newControllers = __spread(docControllers).filter(function (currentGridCore) { return currentGridCore !== controller; });
45091 FocusService_1.instancesMonitored.set(doc, newControllers);
45092 }
45093 if (newControllers.length === 0) {
45094 doc.removeEventListener('keydown', FocusService_1.toggleKeyboardMode);
45095 doc.removeEventListener('mousedown', FocusService_1.toggleKeyboardMode);
45096 }
45097 };
45098 /**
45099 * This method will be called by `keydown` and `mousedown` events on all Documents monitoring
45100 * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in
45101 * the Document allowing each gridCore to maintain a state for KeyboardMode.
45102 *
45103 * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.
45104 */
45105 FocusService.toggleKeyboardMode = function (event) {
45106 var isKeyboardActive = FocusService_1.keyboardModeActive;
45107 var isKeyboardEvent = event.type === 'keydown';
45108 if (isKeyboardEvent) {
45109 // the following keys should not toggle keyboard mode.
45110 if (event.ctrlKey || event.metaKey || event.altKey) {
45111 return;
45112 }
45113 }
45114 if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {
45115 return;
45116 }
45117 FocusService_1.keyboardModeActive = isKeyboardEvent;
45118 var doc = event.target.ownerDocument;
45119 if (!doc) {
45120 return;
45121 }
45122 var controllersForDoc = FocusService_1.instancesMonitored.get(doc);
45123 if (controllersForDoc) {
45124 controllersForDoc.forEach(function (controller) {
45125 controller.dispatchEvent({ type: isKeyboardEvent ? _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_KEYBOARD_FOCUS : _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_MOUSE_FOCUS });
45126 });
45127 }
45128 };
45129 FocusService.prototype.init = function () {
45130 var _this = this;
45131 var clearFocusedCellListener = this.clearFocusedCell.bind(this);
45132 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);
45133 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));
45134 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);
45135 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);
45136 this.ctrlsService.whenReady(function (p) {
45137 _this.gridCtrl = p.gridCtrl;
45138 var doc = _this.gridOptionsService.getDocument();
45139 FocusService_1.addKeyboardModeEvents(doc, _this.gridCtrl);
45140 _this.addDestroyFunc(function () { return _this.unregisterGridCompController(_this.gridCtrl); });
45141 });
45142 };
45143 FocusService.prototype.unregisterGridCompController = function (gridCompController) {
45144 var doc = this.gridOptionsService.getDocument();
45145 FocusService_1.removeKeyboardModeEvents(doc, gridCompController);
45146 };
45147 FocusService.prototype.onColumnEverythingChanged = function () {
45148 // if the columns change, check and see if this column still exists. if it does, then
45149 // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.
45150 if (!this.focusedCellPosition) {
45151 return;
45152 }
45153 var col = this.focusedCellPosition.column;
45154 var colFromColumnModel = this.columnModel.getGridColumn(col.getId());
45155 if (col !== colFromColumnModel) {
45156 this.clearFocusedCell();
45157 }
45158 };
45159 FocusService.prototype.isKeyboardMode = function () {
45160 return FocusService_1.keyboardModeActive;
45161 };
45162 // we check if the browser is focusing something, and if it is, and
45163 // it's the cell we think is focused, then return the cell. so this
45164 // methods returns the cell if a) we think it has focus and b) the
45165 // browser thinks it has focus. this then returns nothing if we
45166 // first focus a cell, then second click outside the grid, as then the
45167 // grid cell will still be focused as far as the grid is concerned,
45168 // however the browser focus will have moved somewhere else.
45169 FocusService.prototype.getFocusCellToUseAfterRefresh = function () {
45170 var eDocument = this.gridOptionsService.getDocument();
45171 if (this.gridOptionsService.is('suppressFocusAfterRefresh') || !this.focusedCellPosition) {
45172 return null;
45173 }
45174 // we check that the browser is actually focusing on the grid, if it is not, then
45175 // we have nothing to worry about. we check for ROW data, as this covers both focused Rows (for Full Width Rows)
45176 // and Cells (covers cells as cells live in rows)
45177 if (this.isDomDataMissingInHierarchy(eDocument.activeElement, _rendering_row_rowCtrl__WEBPACK_IMPORTED_MODULE_6__["RowCtrl"].DOM_DATA_KEY_ROW_CTRL)) {
45178 return null;
45179 }
45180 return this.focusedCellPosition;
45181 };
45182 FocusService.prototype.getFocusHeaderToUseAfterRefresh = function () {
45183 var eDocument = this.gridOptionsService.getDocument();
45184 if (this.gridOptionsService.is('suppressFocusAfterRefresh') || !this.focusedHeaderPosition) {
45185 return null;
45186 }
45187 // we check that the browser is actually focusing on the grid, if it is not, then
45188 // we have nothing to worry about
45189 if (this.isDomDataMissingInHierarchy(eDocument.activeElement, _headerRendering_cells_abstractCell_abstractHeaderCellCtrl__WEBPACK_IMPORTED_MODULE_7__["AbstractHeaderCellCtrl"].DOM_DATA_KEY_HEADER_CTRL)) {
45190 return null;
45191 }
45192 return this.focusedHeaderPosition;
45193 };
45194 FocusService.prototype.isDomDataMissingInHierarchy = function (eBrowserCell, key) {
45195 var ePointer = eBrowserCell;
45196 while (ePointer) {
45197 var data = this.gridOptionsService.getDomData(ePointer, key);
45198 if (data) {
45199 return false;
45200 }
45201 ePointer = ePointer.parentNode;
45202 }
45203 return true;
45204 };
45205 FocusService.prototype.getFocusedCell = function () {
45206 return this.focusedCellPosition;
45207 };
45208 FocusService.prototype.getFocusEventParams = function () {
45209 var _a = this.focusedCellPosition, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned, column = _a.column;
45210 var params = {
45211 rowIndex: rowIndex,
45212 rowPinned: rowPinned,
45213 column: column,
45214 isFullWidthCell: false
45215 };
45216 var rowCtrl = this.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });
45217 if (rowCtrl) {
45218 params.isFullWidthCell = rowCtrl.isFullWidth();
45219 }
45220 return params;
45221 };
45222 FocusService.prototype.clearFocusedCell = function () {
45223 if (this.focusedCellPosition == null) {
45224 return;
45225 }
45226 var event = __assign({ type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_CELL_FOCUS_CLEARED }, this.getFocusEventParams());
45227 this.focusedCellPosition = null;
45228 this.eventService.dispatchEvent(event);
45229 };
45230 FocusService.prototype.setFocusedCell = function (params) {
45231 var column = params.column, rowIndex = params.rowIndex, rowPinned = params.rowPinned, _a = params.forceBrowserFocus, forceBrowserFocus = _a === void 0 ? false : _a, _b = params.preventScrollOnBrowserFocus, preventScrollOnBrowserFocus = _b === void 0 ? false : _b;
45232 var gridColumn = this.columnModel.getGridColumn(column);
45233 // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,
45234 // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries
45235 // to re-focus the focused cell.
45236 if (!gridColumn) {
45237 this.focusedCellPosition = null;
45238 return;
45239 }
45240 this.focusedCellPosition = gridColumn ? {
45241 rowIndex: rowIndex,
45242 rowPinned: Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["makeNull"])(rowPinned),
45243 column: gridColumn
45244 } : null;
45245 var event = __assign(__assign({ type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_CELL_FOCUSED }, this.getFocusEventParams()), { forceBrowserFocus: forceBrowserFocus,
45246 preventScrollOnBrowserFocus: preventScrollOnBrowserFocus, floating: null });
45247 this.eventService.dispatchEvent(event);
45248 };
45249 FocusService.prototype.isCellFocused = function (cellPosition) {
45250 if (this.focusedCellPosition == null) {
45251 return false;
45252 }
45253 return this.focusedCellPosition.column === cellPosition.column &&
45254 this.isRowFocused(cellPosition.rowIndex, cellPosition.rowPinned);
45255 };
45256 FocusService.prototype.isRowNodeFocused = function (rowNode) {
45257 return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);
45258 };
45259 FocusService.prototype.isHeaderWrapperFocused = function (headerCtrl) {
45260 if (this.focusedHeaderPosition == null) {
45261 return false;
45262 }
45263 var column = headerCtrl.getColumnGroupChild();
45264 var headerRowIndex = headerCtrl.getRowIndex();
45265 var pinned = headerCtrl.getPinned();
45266 var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;
45267 return column === focusedColumn &&
45268 headerRowIndex === focusedHeaderRowIndex &&
45269 pinned == focusedColumn.getPinned();
45270 };
45271 FocusService.prototype.clearFocusedHeader = function () {
45272 this.focusedHeaderPosition = null;
45273 };
45274 FocusService.prototype.getFocusedHeader = function () {
45275 return this.focusedHeaderPosition;
45276 };
45277 FocusService.prototype.setFocusedHeader = function (headerRowIndex, column) {
45278 this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };
45279 };
45280 FocusService.prototype.focusHeaderPosition = function (params) {
45281 var direction = params.direction, fromTab = params.fromTab, allowUserOverride = params.allowUserOverride, event = params.event;
45282 var headerPosition = params.headerPosition;
45283 if (allowUserOverride) {
45284 var currentPosition = this.getFocusedHeader();
45285 var headerRowCount = this.headerNavigationService.getHeaderRowCount();
45286 if (fromTab) {
45287 var userFunc = this.gridOptionsService.getCallback('tabToNextHeader');
45288 if (userFunc) {
45289 var params_1 = {
45290 backwards: direction === 'Before',
45291 previousHeaderPosition: currentPosition,
45292 nextHeaderPosition: headerPosition,
45293 headerRowCount: headerRowCount,
45294 };
45295 headerPosition = userFunc(params_1);
45296 }
45297 }
45298 else {
45299 var userFunc = this.gridOptionsService.getCallback('navigateToNextHeader');
45300 if (userFunc && event) {
45301 var params_2 = {
45302 key: event.key,
45303 previousHeaderPosition: currentPosition,
45304 nextHeaderPosition: headerPosition,
45305 headerRowCount: headerRowCount,
45306 event: event,
45307 };
45308 headerPosition = userFunc(params_2);
45309 }
45310 }
45311 }
45312 if (!headerPosition) {
45313 return false;
45314 }
45315 if (headerPosition.headerRowIndex === -1) {
45316 return this.focusGridView(headerPosition.column);
45317 }
45318 this.headerNavigationService.scrollToColumn(headerPosition.column, direction);
45319 var headerRowContainerCtrl = this.ctrlsService.getHeaderRowContainerCtrl(headerPosition.column.getPinned());
45320 // this will automatically call the setFocusedHeader method above
45321 var focusSuccess = headerRowContainerCtrl.focusHeader(headerPosition.headerRowIndex, headerPosition.column, event);
45322 return focusSuccess;
45323 };
45324 FocusService.prototype.focusFirstHeader = function () {
45325 var firstColumn = this.columnModel.getAllDisplayedColumns()[0];
45326 if (!firstColumn) {
45327 return false;
45328 }
45329 if (firstColumn.getParent()) {
45330 firstColumn = this.columnModel.getColumnGroupAtLevel(firstColumn, 0);
45331 }
45332 return this.focusHeaderPosition({
45333 headerPosition: { headerRowIndex: 0, column: firstColumn }
45334 });
45335 };
45336 FocusService.prototype.focusLastHeader = function (event) {
45337 var headerRowIndex = this.headerNavigationService.getHeaderRowCount() - 1;
45338 var column = Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(this.columnModel.getAllDisplayedColumns());
45339 return this.focusHeaderPosition({
45340 headerPosition: { headerRowIndex: headerRowIndex, column: column },
45341 event: event
45342 });
45343 };
45344 FocusService.prototype.isAnyCellFocused = function () {
45345 return !!this.focusedCellPosition;
45346 };
45347 FocusService.prototype.isRowFocused = function (rowIndex, floating) {
45348 if (this.focusedCellPosition == null) {
45349 return false;
45350 }
45351 return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["makeNull"])(floating);
45352 };
45353 FocusService.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {
45354 if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }
45355 var focusableString = _utils_dom__WEBPACK_IMPORTED_MODULE_9__["FOCUSABLE_SELECTOR"];
45356 var excludeString = _utils_dom__WEBPACK_IMPORTED_MODULE_9__["FOCUSABLE_EXCLUDE"];
45357 if (exclude) {
45358 excludeString += ', ' + exclude;
45359 }
45360 if (onlyUnmanaged) {
45361 excludeString += ', [tabindex="-1"]';
45362 }
45363 var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));
45364 var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));
45365 if (!excludeNodes.length) {
45366 return nodes;
45367 }
45368 var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };
45369 return diff(nodes, excludeNodes);
45370 };
45371 FocusService.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {
45372 if (up === void 0) { up = false; }
45373 if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }
45374 var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);
45375 var toFocus = up ? Object(_utils_array__WEBPACK_IMPORTED_MODULE_8__["last"])(focusableElements) : focusableElements[0];
45376 if (toFocus) {
45377 toFocus.focus();
45378 return true;
45379 }
45380 return false;
45381 };
45382 FocusService.prototype.findFocusableElementBeforeTabGuard = function (rootNode, referenceElement) {
45383 if (!referenceElement) {
45384 return null;
45385 }
45386 var focusableElements = this.findFocusableElements(rootNode);
45387 var referenceIndex = focusableElements.indexOf(referenceElement);
45388 if (referenceIndex === -1) {
45389 return null;
45390 }
45391 var lastTabGuardIndex = -1;
45392 for (var i = referenceIndex - 1; i >= 0; i--) {
45393 if (focusableElements[i].classList.contains(_widgets_tabGuardCtrl__WEBPACK_IMPORTED_MODULE_10__["TabGuardClassNames"].TAB_GUARD_TOP)) {
45394 lastTabGuardIndex = i;
45395 break;
45396 }
45397 }
45398 if (lastTabGuardIndex <= 0) {
45399 return null;
45400 }
45401 return focusableElements[lastTabGuardIndex - 1];
45402 };
45403 FocusService.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {
45404 if (rootNode === void 0) { rootNode = this.eGridDiv; }
45405 var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex="-1"])' : null);
45406 var eDocument = this.gridOptionsService.getDocument();
45407 var activeEl = eDocument.activeElement;
45408 var currentIndex;
45409 if (onlyManaged) {
45410 currentIndex = focusable.findIndex(function (el) { return el.contains(activeEl); });
45411 }
45412 else {
45413 currentIndex = focusable.indexOf(activeEl);
45414 }
45415 var nextIndex = currentIndex + (backwards ? -1 : 1);
45416 if (nextIndex < 0 || nextIndex >= focusable.length) {
45417 return null;
45418 }
45419 return focusable[nextIndex];
45420 };
45421 FocusService.prototype.isTargetUnderManagedComponent = function (rootNode, target) {
45422 if (!target) {
45423 return false;
45424 }
45425 var managedContainers = rootNode.querySelectorAll("." + _widgets_managedFocusFeature__WEBPACK_IMPORTED_MODULE_3__["ManagedFocusFeature"].FOCUS_MANAGED_CLASS);
45426 if (!managedContainers.length) {
45427 return false;
45428 }
45429 for (var i = 0; i < managedContainers.length; i++) {
45430 if (managedContainers[i].contains(target)) {
45431 return true;
45432 }
45433 }
45434 return false;
45435 };
45436 FocusService.prototype.findTabbableParent = function (node, limit) {
45437 if (limit === void 0) { limit = 5; }
45438 var counter = 0;
45439 while (node && Object(_utils_browser__WEBPACK_IMPORTED_MODULE_4__["getTabIndex"])(node) === null && ++counter <= limit) {
45440 node = node.parentElement;
45441 }
45442 if (Object(_utils_browser__WEBPACK_IMPORTED_MODULE_4__["getTabIndex"])(node) === null) {
45443 return null;
45444 }
45445 return node;
45446 };
45447 FocusService.prototype.focusGridView = function (column, backwards) {
45448 // if suppressCellFocus is `true`, it means the user does not want to
45449 // navigate between the cells using tab. Instead, we put focus on either
45450 // the header or after the grid, depending on whether tab or shift-tab was pressed.
45451 if (this.gridOptionsService.is('suppressCellFocus')) {
45452 if (backwards) {
45453 return this.focusLastHeader();
45454 }
45455 return this.focusNextGridCoreContainer(false);
45456 }
45457 var nextRow = backwards
45458 ? this.rowPositionUtils.getLastRow()
45459 : this.rowPositionUtils.getFirstRow();
45460 if (!nextRow) {
45461 return false;
45462 }
45463 var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;
45464 var focusedHeader = this.getFocusedHeader();
45465 if (!column && focusedHeader) {
45466 column = focusedHeader.column;
45467 }
45468 if (rowIndex == null || !column) {
45469 return false;
45470 }
45471 this.navigationService.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });
45472 this.setFocusedCell({
45473 rowIndex: rowIndex,
45474 column: column,
45475 rowPinned: Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["makeNull"])(rowPinned),
45476 forceBrowserFocus: true
45477 });
45478 if (this.rangeService) {
45479 var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };
45480 this.rangeService.setRangeToCell(cellPosition);
45481 }
45482 return true;
45483 };
45484 FocusService.prototype.focusNextGridCoreContainer = function (backwards) {
45485 if (this.gridCtrl.focusNextInnerContainer(backwards)) {
45486 return true;
45487 }
45488 if (!backwards && !this.gridCtrl.isDetailGrid()) {
45489 this.gridCtrl.forceFocusOutOfContainer();
45490 }
45491 return false;
45492 };
45493 var FocusService_1;
45494 FocusService.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';
45495 FocusService.keyboardModeActive = false;
45496 FocusService.instancesMonitored = new Map();
45497 __decorate([
45498 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eGridDiv')
45499 ], FocusService.prototype, "eGridDiv", void 0);
45500 __decorate([
45501 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
45502 ], FocusService.prototype, "columnModel", void 0);
45503 __decorate([
45504 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('headerNavigationService')
45505 ], FocusService.prototype, "headerNavigationService", void 0);
45506 __decorate([
45507 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
45508 ], FocusService.prototype, "rowRenderer", void 0);
45509 __decorate([
45510 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
45511 ], FocusService.prototype, "rowPositionUtils", void 0);
45512 __decorate([
45513 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeService')
45514 ], FocusService.prototype, "rangeService", void 0);
45515 __decorate([
45516 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('navigationService')
45517 ], FocusService.prototype, "navigationService", void 0);
45518 __decorate([
45519 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
45520 ], FocusService.prototype, "ctrlsService", void 0);
45521 __decorate([
45522 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
45523 ], FocusService.prototype, "init", null);
45524 FocusService = FocusService_1 = __decorate([
45525 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('focusService')
45526 ], FocusService);
45527 return FocusService;
45528}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
45529
45530
45531
45532/***/ }),
45533/* 202 */
45534/***/ (function(module, __webpack_exports__, __webpack_require__) {
45535
45536"use strict";
45537__webpack_require__.r(__webpack_exports__);
45538/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return VirtualList; });
45539/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
45540/* harmony import */ var _componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
45541/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41);
45542/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48);
45543/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
45544/* harmony import */ var _tabGuardComp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(195);
45545/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(26);
45546/**
45547 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
45548 * @version v29.2.0
45549 * @link https://www.ag-grid.com/
45550 * @license MIT
45551 */
45552var __extends = (undefined && undefined.__extends) || (function () {
45553 var extendStatics = function (d, b) {
45554 extendStatics = Object.setPrototypeOf ||
45555 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45556 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
45557 return extendStatics(d, b);
45558 };
45559 return function (d, b) {
45560 extendStatics(d, b);
45561 function __() { this.constructor = d; }
45562 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45563 };
45564})();
45565var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45566 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45567 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45568 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;
45569 return c > 3 && r && Object.defineProperty(target, key, r), r;
45570};
45571
45572
45573
45574
45575
45576
45577
45578var VirtualList = /** @class */ (function (_super) {
45579 __extends(VirtualList, _super);
45580 function VirtualList(cssIdentifier, ariaRole, listName) {
45581 if (cssIdentifier === void 0) { cssIdentifier = 'default'; }
45582 if (ariaRole === void 0) { ariaRole = 'listbox'; }
45583 var _this = _super.call(this, VirtualList.getTemplate(cssIdentifier)) || this;
45584 _this.cssIdentifier = cssIdentifier;
45585 _this.ariaRole = ariaRole;
45586 _this.listName = listName;
45587 _this.renderedRows = new Map();
45588 _this.rowHeight = 20;
45589 return _this;
45590 }
45591 VirtualList.prototype.postConstruct = function () {
45592 var _this = this;
45593 this.addScrollListener();
45594 this.rowHeight = this.getItemHeight();
45595 this.addResizeObserver();
45596 this.initialiseTabGuard({
45597 onFocusIn: function (e) { return _this.onFocusIn(e); },
45598 onFocusOut: function (e) { return _this.onFocusOut(e); },
45599 focusInnerElement: function (fromBottom) { return _this.focusInnerElement(fromBottom); },
45600 onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },
45601 handleKeyDown: function (e) { return _this.handleKeyDown(e); }
45602 });
45603 this.setAriaProperties();
45604 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_6__["Events"].EVENT_GRID_STYLES_CHANGED, this.onGridStylesChanged.bind(this));
45605 };
45606 VirtualList.prototype.onGridStylesChanged = function () {
45607 this.rowHeight = this.getItemHeight();
45608 this.refresh();
45609 };
45610 VirtualList.prototype.setAriaProperties = function () {
45611 var translate = this.localeService.getLocaleTextFunc();
45612 var listName = translate('ariaDefaultListName', this.listName || 'List');
45613 var ariaEl = this.eContainer;
45614 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaRole"])(ariaEl, this.ariaRole);
45615 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaLabel"])(ariaEl, listName);
45616 };
45617 VirtualList.prototype.addResizeObserver = function () {
45618 var _this = this;
45619 var listener = function () { return _this.drawVirtualRows(); };
45620 var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);
45621 this.addDestroyFunc(destroyObserver);
45622 };
45623 VirtualList.prototype.focusInnerElement = function (fromBottom) {
45624 this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);
45625 };
45626 VirtualList.prototype.onFocusIn = function (e) {
45627 var target = e.target;
45628 if (target.classList.contains('ag-virtual-list-item')) {
45629 this.lastFocusedRowIndex = Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["getAriaPosInSet"])(target) - 1;
45630 }
45631 return false;
45632 };
45633 VirtualList.prototype.onFocusOut = function (e) {
45634 if (!this.getFocusableElement().contains(e.relatedTarget)) {
45635 this.lastFocusedRowIndex = null;
45636 }
45637 return false;
45638 };
45639 VirtualList.prototype.handleKeyDown = function (e) {
45640 switch (e.key) {
45641 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP:
45642 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].DOWN:
45643 if (this.navigate(e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_3__["KeyCode"].UP)) {
45644 e.preventDefault();
45645 }
45646 break;
45647 }
45648 };
45649 VirtualList.prototype.onTabKeyDown = function (e) {
45650 if (this.navigate(e.shiftKey)) {
45651 e.preventDefault();
45652 }
45653 else {
45654 this.forceFocusOutOfContainer(e.shiftKey);
45655 }
45656 };
45657 VirtualList.prototype.navigate = function (up) {
45658 if (this.lastFocusedRowIndex == null) {
45659 return false;
45660 }
45661 var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);
45662 if (nextRow < 0 || nextRow >= this.model.getRowCount()) {
45663 return false;
45664 }
45665 this.focusRow(nextRow);
45666 return true;
45667 };
45668 VirtualList.prototype.getLastFocusedRow = function () {
45669 return this.lastFocusedRowIndex;
45670 };
45671 VirtualList.prototype.focusRow = function (rowNumber) {
45672 var _this = this;
45673 this.ensureIndexVisible(rowNumber);
45674 window.setTimeout(function () {
45675 if (!_this.isAlive()) {
45676 return;
45677 }
45678 var renderedRow = _this.renderedRows.get(rowNumber);
45679 if (renderedRow) {
45680 renderedRow.eDiv.focus();
45681 }
45682 }, 10);
45683 };
45684 VirtualList.prototype.getComponentAt = function (rowIndex) {
45685 var comp = this.renderedRows.get(rowIndex);
45686 return comp && comp.rowComponent;
45687 };
45688 VirtualList.prototype.forEachRenderedRow = function (func) {
45689 this.renderedRows.forEach(function (value, key) { return func(value.rowComponent, key); });
45690 };
45691 VirtualList.getTemplate = function (cssIdentifier) {
45692 return /* html */ "\n <div class=\"ag-virtual-list-viewport ag-" + cssIdentifier + "-virtual-list-viewport\" role=\"presentation\">\n <div class=\"ag-virtual-list-container ag-" + cssIdentifier + "-virtual-list-container\" ref=\"eContainer\"></div>\n </div>";
45693 };
45694 VirtualList.prototype.getItemHeight = function () {
45695 return this.environment.getListItemHeight();
45696 };
45697 VirtualList.prototype.ensureIndexVisible = function (index) {
45698 var lastRow = this.model.getRowCount();
45699 if (typeof index !== 'number' || index < 0 || index >= lastRow) {
45700 console.warn('AG Grid: invalid row index for ensureIndexVisible: ' + index);
45701 return;
45702 }
45703 var rowTopPixel = index * this.rowHeight;
45704 var rowBottomPixel = rowTopPixel + this.rowHeight;
45705 var eGui = this.getGui();
45706 var viewportTopPixel = eGui.scrollTop;
45707 var viewportHeight = eGui.offsetHeight;
45708 var viewportBottomPixel = viewportTopPixel + viewportHeight;
45709 var viewportScrolledPastRow = viewportTopPixel > rowTopPixel;
45710 var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel;
45711 if (viewportScrolledPastRow) {
45712 // if row is before, scroll up with row at top
45713 eGui.scrollTop = rowTopPixel;
45714 }
45715 else if (viewportScrolledBeforeRow) {
45716 // if row is below, scroll down with row at bottom
45717 var newScrollPosition = rowBottomPixel - viewportHeight;
45718 eGui.scrollTop = newScrollPosition;
45719 }
45720 };
45721 VirtualList.prototype.setComponentCreator = function (componentCreator) {
45722 this.componentCreator = componentCreator;
45723 };
45724 VirtualList.prototype.setComponentUpdater = function (componentUpdater) {
45725 this.componentUpdater = componentUpdater;
45726 };
45727 VirtualList.prototype.getRowHeight = function () {
45728 return this.rowHeight;
45729 };
45730 VirtualList.prototype.getScrollTop = function () {
45731 return this.getGui().scrollTop;
45732 };
45733 VirtualList.prototype.setRowHeight = function (rowHeight) {
45734 this.rowHeight = rowHeight;
45735 this.refresh();
45736 };
45737 VirtualList.prototype.refresh = function (softRefresh) {
45738 var _this = this;
45739 if (this.model == null || !this.isAlive()) {
45740 return;
45741 }
45742 var rowCount = this.model.getRowCount();
45743 this.eContainer.style.height = rowCount * this.rowHeight + "px";
45744 // ensure height is applied before attempting to redraw rows
45745 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["waitUntil"])(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {
45746 if (!_this.isAlive()) {
45747 return;
45748 }
45749 if (_this.canSoftRefresh(softRefresh)) {
45750 _this.drawVirtualRows(true);
45751 }
45752 else {
45753 _this.clearVirtualRows();
45754 _this.drawVirtualRows();
45755 }
45756 });
45757 };
45758 VirtualList.prototype.canSoftRefresh = function (softRefresh) {
45759 return !!(softRefresh && this.renderedRows.size && typeof this.model.areRowsEqual === 'function' && this.componentUpdater);
45760 };
45761 VirtualList.prototype.clearVirtualRows = function () {
45762 var _this = this;
45763 this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });
45764 };
45765 VirtualList.prototype.drawVirtualRows = function (softRefresh) {
45766 if (!this.isAlive()) {
45767 return;
45768 }
45769 var gui = this.getGui();
45770 var topPixel = gui.scrollTop;
45771 var bottomPixel = topPixel + gui.offsetHeight;
45772 var firstRow = Math.floor(topPixel / this.rowHeight);
45773 var lastRow = Math.floor(bottomPixel / this.rowHeight);
45774 this.ensureRowsRendered(firstRow, lastRow, softRefresh);
45775 };
45776 VirtualList.prototype.ensureRowsRendered = function (start, finish, softRefresh) {
45777 var _this = this;
45778 // remove any rows that are no longer required
45779 this.renderedRows.forEach(function (_, rowIndex) {
45780 if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {
45781 _this.removeRow(rowIndex);
45782 }
45783 });
45784 if (softRefresh) {
45785 // refresh any existing rows
45786 this.refreshRows();
45787 }
45788 // insert any required new rows
45789 for (var rowIndex = start; rowIndex <= finish; rowIndex++) {
45790 if (this.renderedRows.has(rowIndex)) {
45791 continue;
45792 }
45793 // check this row actually exists (in case overflow buffer window exceeds real data)
45794 if (rowIndex < this.model.getRowCount()) {
45795 this.insertRow(rowIndex);
45796 }
45797 }
45798 };
45799 VirtualList.prototype.insertRow = function (rowIndex) {
45800 var _this = this;
45801 var value = this.model.getRow(rowIndex);
45802 var eDiv = document.createElement('div');
45803 eDiv.classList.add('ag-virtual-list-item', "ag-" + this.cssIdentifier + "-virtual-list-item");
45804 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaRole"])(eDiv, this.ariaRole === 'tree' ? 'treeitem' : 'option');
45805 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaSetSize"])(eDiv, this.model.getRowCount());
45806 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaPosInSet"])(eDiv, rowIndex + 1);
45807 eDiv.setAttribute('tabindex', '-1');
45808 if (typeof this.model.isRowSelected === 'function') {
45809 var isSelected = this.model.isRowSelected(rowIndex);
45810 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaSelected"])(eDiv, !!isSelected);
45811 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_2__["setAriaChecked"])(eDiv, isSelected);
45812 }
45813 eDiv.style.height = this.rowHeight + "px";
45814 eDiv.style.top = this.rowHeight * rowIndex + "px";
45815 var rowComponent = this.componentCreator(value, eDiv);
45816 rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });
45817 eDiv.appendChild(rowComponent.getGui());
45818 // keep the DOM order consistent with the order of the rows
45819 if (this.renderedRows.has(rowIndex - 1)) {
45820 this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);
45821 }
45822 else if (this.renderedRows.has(rowIndex + 1)) {
45823 this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);
45824 }
45825 else {
45826 this.eContainer.appendChild(eDiv);
45827 }
45828 this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv, value: value });
45829 };
45830 VirtualList.prototype.removeRow = function (rowIndex) {
45831 var component = this.renderedRows.get(rowIndex);
45832 this.eContainer.removeChild(component.eDiv);
45833 this.destroyBean(component.rowComponent);
45834 this.renderedRows.delete(rowIndex);
45835 };
45836 VirtualList.prototype.refreshRows = function () {
45837 var _this = this;
45838 var rowCount = this.model.getRowCount();
45839 this.renderedRows.forEach(function (row, rowIndex) {
45840 var _a, _b;
45841 if (rowIndex >= rowCount) {
45842 _this.removeRow(rowIndex);
45843 }
45844 else {
45845 var newValue = _this.model.getRow(rowIndex);
45846 if ((_b = (_a = _this.model).areRowsEqual) === null || _b === void 0 ? void 0 : _b.call(_a, row.value, newValue)) {
45847 _this.componentUpdater(newValue, row.rowComponent);
45848 }
45849 else {
45850 // to be replaced later
45851 _this.removeRow(rowIndex);
45852 }
45853 }
45854 });
45855 };
45856 VirtualList.prototype.addScrollListener = function () {
45857 var _this = this;
45858 this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); }, { passive: true });
45859 };
45860 VirtualList.prototype.setModel = function (model) {
45861 this.model = model;
45862 };
45863 VirtualList.prototype.destroy = function () {
45864 if (!this.isAlive()) {
45865 return;
45866 }
45867 this.clearVirtualRows();
45868 _super.prototype.destroy.call(this);
45869 };
45870 __decorate([
45871 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
45872 ], VirtualList.prototype, "resizeObserverService", void 0);
45873 __decorate([
45874 Object(_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('eContainer')
45875 ], VirtualList.prototype, "eContainer", void 0);
45876 __decorate([
45877 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
45878 ], VirtualList.prototype, "postConstruct", null);
45879 return VirtualList;
45880}(_tabGuardComp__WEBPACK_IMPORTED_MODULE_5__["TabGuardComp"]));
45881
45882
45883
45884/***/ }),
45885/* 203 */
45886/***/ (function(module, __webpack_exports__, __webpack_require__) {
45887
45888"use strict";
45889__webpack_require__.r(__webpack_exports__);
45890/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return VanillaFrameworkOverrides; });
45891/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19);
45892/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39);
45893/**
45894 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
45895 * @version v29.2.0
45896 * @link https://www.ag-grid.com/
45897 * @license MIT
45898 */
45899
45900
45901var OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave'];
45902var PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];
45903/** The base frameworks, eg React & Angular, override this bean with implementations specific to their requirement. */
45904var VanillaFrameworkOverrides = /** @class */ (function () {
45905 function VanillaFrameworkOverrides() {
45906 this.isOutsideAngular = function (eventType) { return Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(OUTSIDE_ANGULAR_EVENTS, eventType); };
45907 }
45908 // for Vanilla JS, we use simple timeout
45909 VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {
45910 window.setTimeout(action, timeout);
45911 };
45912 VanillaFrameworkOverrides.prototype.setInterval = function (action, timeout) {
45913 return new _utils__WEBPACK_IMPORTED_MODULE_1__["AgPromise"](function (resolve) {
45914 resolve(window.setInterval(action, timeout));
45915 });
45916 };
45917 // for Vanilla JS, we just add the event to the element
45918 VanillaFrameworkOverrides.prototype.addEventListener = function (element, type, listener, useCapture) {
45919 var isPassive = Object(_utils_array__WEBPACK_IMPORTED_MODULE_0__["includes"])(PASSIVE_EVENTS, type);
45920 element.addEventListener(type, listener, { capture: !!useCapture, passive: isPassive });
45921 };
45922 // for Vanilla JS, we just execute the listener
45923 VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener, global) {
45924 if (global === void 0) { global = false; }
45925 listener();
45926 };
45927 VanillaFrameworkOverrides.prototype.frameworkComponent = function (name) {
45928 return null;
45929 };
45930 VanillaFrameworkOverrides.prototype.isFrameworkComponent = function (comp) {
45931 return false;
45932 };
45933 return VanillaFrameworkOverrides;
45934}());
45935
45936
45937
45938/***/ }),
45939/* 204 */
45940/***/ (function(module, __webpack_exports__, __webpack_require__) {
45941
45942"use strict";
45943__webpack_require__.r(__webpack_exports__);
45944/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return CellNavigationService; });
45945/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
45946/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
45947/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
45948/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(19);
45949/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48);
45950/**
45951 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
45952 * @version v29.2.0
45953 * @link https://www.ag-grid.com/
45954 * @license MIT
45955 */
45956var __extends = (undefined && undefined.__extends) || (function () {
45957 var extendStatics = function (d, b) {
45958 extendStatics = Object.setPrototypeOf ||
45959 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
45960 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
45961 return extendStatics(d, b);
45962 };
45963 return function (d, b) {
45964 extendStatics(d, b);
45965 function __() { this.constructor = d; }
45966 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
45967 };
45968})();
45969var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
45970 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
45971 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
45972 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;
45973 return c > 3 && r && Object.defineProperty(target, key, r), r;
45974};
45975var __read = (undefined && undefined.__read) || function (o, n) {
45976 var m = typeof Symbol === "function" && o[Symbol.iterator];
45977 if (!m) return o;
45978 var i = m.call(o), r, ar = [], e;
45979 try {
45980 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
45981 }
45982 catch (error) { e = { error: error }; }
45983 finally {
45984 try {
45985 if (r && !r.done && (m = i["return"])) m.call(i);
45986 }
45987 finally { if (e) throw e.error; }
45988 }
45989 return ar;
45990};
45991var __spread = (undefined && undefined.__spread) || function () {
45992 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
45993 return ar;
45994};
45995
45996
45997
45998
45999
46000var CellNavigationService = /** @class */ (function (_super) {
46001 __extends(CellNavigationService, _super);
46002 function CellNavigationService() {
46003 return _super !== null && _super.apply(this, arguments) || this;
46004 }
46005 // returns null if no cell to focus on, ie at the end of the grid
46006 CellNavigationService.prototype.getNextCellToFocus = function (key, focusedCell, ctrlPressed) {
46007 if (ctrlPressed === void 0) { ctrlPressed = false; }
46008 if (ctrlPressed) {
46009 return this.getNextCellToFocusWithCtrlPressed(key, focusedCell);
46010 }
46011 return this.getNextCellToFocusWithoutCtrlPressed(key, focusedCell);
46012 };
46013 CellNavigationService.prototype.getNextCellToFocusWithCtrlPressed = function (key, focusedCell) {
46014 var upKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP;
46015 var downKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN;
46016 var leftKey = key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT;
46017 var column;
46018 var rowIndex;
46019 if (upKey || downKey) {
46020 rowIndex = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();
46021 column = focusedCell.column;
46022 }
46023 else {
46024 var allColumns = this.columnModel.getAllDisplayedColumns();
46025 var isRtl = this.gridOptionsService.is('enableRtl');
46026 rowIndex = focusedCell.rowIndex;
46027 column = leftKey !== isRtl ? allColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(allColumns);
46028 }
46029 return {
46030 rowIndex: rowIndex,
46031 rowPinned: null,
46032 column: column
46033 };
46034 };
46035 CellNavigationService.prototype.getNextCellToFocusWithoutCtrlPressed = function (key, focusedCell) {
46036 // starting with the provided cell, we keep moving until we find a cell we can
46037 // focus on.
46038 var pointer = focusedCell;
46039 var finished = false;
46040 // finished will be true when either:
46041 // a) cell found that we can focus on
46042 // b) run out of cells (ie the method returns null)
46043 while (!finished) {
46044 switch (key) {
46045 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].UP:
46046 pointer = this.getCellAbove(pointer);
46047 break;
46048 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].DOWN:
46049 pointer = this.getCellBelow(pointer);
46050 break;
46051 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].RIGHT:
46052 if (this.gridOptionsService.is('enableRtl')) {
46053 pointer = this.getCellToLeft(pointer);
46054 }
46055 else {
46056 pointer = this.getCellToRight(pointer);
46057 }
46058 break;
46059 case _constants_keyCode__WEBPACK_IMPORTED_MODULE_4__["KeyCode"].LEFT:
46060 if (this.gridOptionsService.is('enableRtl')) {
46061 pointer = this.getCellToRight(pointer);
46062 }
46063 else {
46064 pointer = this.getCellToLeft(pointer);
46065 }
46066 break;
46067 default:
46068 pointer = null;
46069 console.warn('AG Grid: unknown key for navigation ' + key);
46070 break;
46071 }
46072 if (pointer) {
46073 finished = this.isCellGoodToFocusOn(pointer);
46074 }
46075 else {
46076 finished = true;
46077 }
46078 }
46079 return pointer;
46080 };
46081 CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {
46082 var column = gridCell.column;
46083 var rowNode;
46084 switch (gridCell.rowPinned) {
46085 case 'top':
46086 rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);
46087 break;
46088 case 'bottom':
46089 rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);
46090 break;
46091 default:
46092 rowNode = this.rowModel.getRow(gridCell.rowIndex);
46093 break;
46094 }
46095 if (!rowNode) {
46096 return false;
46097 }
46098 var suppressNavigable = column.isSuppressNavigable(rowNode);
46099 return !suppressNavigable;
46100 };
46101 CellNavigationService.prototype.getCellToLeft = function (lastCell) {
46102 if (!lastCell) {
46103 return null;
46104 }
46105 var colToLeft = this.columnModel.getDisplayedColBefore(lastCell.column);
46106 if (!colToLeft) {
46107 return null;
46108 }
46109 return {
46110 rowIndex: lastCell.rowIndex,
46111 column: colToLeft,
46112 rowPinned: lastCell.rowPinned
46113 };
46114 };
46115 CellNavigationService.prototype.getCellToRight = function (lastCell) {
46116 if (!lastCell) {
46117 return null;
46118 }
46119 var colToRight = this.columnModel.getDisplayedColAfter(lastCell.column);
46120 // if already on right, do nothing
46121 if (!colToRight) {
46122 return null;
46123 }
46124 return {
46125 rowIndex: lastCell.rowIndex,
46126 column: colToRight,
46127 rowPinned: lastCell.rowPinned
46128 };
46129 };
46130 CellNavigationService.prototype.getRowBelow = function (rowPosition) {
46131 // if already on top row, do nothing
46132 var index = rowPosition.rowIndex;
46133 var pinned = rowPosition.rowPinned;
46134 if (this.isLastRowInContainer(rowPosition)) {
46135 switch (pinned) {
46136 case 'bottom':
46137 // never any rows after pinned bottom
46138 return null;
46139 case 'top':
46140 // if on last row of pinned top, then next row is main body (if rows exist),
46141 // otherwise it's the pinned bottom
46142 if (this.rowModel.isRowsToRender()) {
46143 return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };
46144 }
46145 if (this.pinnedRowModel.isRowsToRender('bottom')) {
46146 return { rowIndex: 0, rowPinned: 'bottom' };
46147 }
46148 return null;
46149 default:
46150 // if in the main body, then try pinned bottom, otherwise return nothing
46151 if (this.pinnedRowModel.isRowsToRender('bottom')) {
46152 return { rowIndex: 0, rowPinned: 'bottom' };
46153 }
46154 return null;
46155 }
46156 }
46157 var rowNode = this.rowModel.getRow(rowPosition.rowIndex);
46158 var nextStickyPosition = this.getNextStickyPosition(rowNode);
46159 if (nextStickyPosition) {
46160 return nextStickyPosition;
46161 }
46162 return { rowIndex: index + 1, rowPinned: pinned };
46163 };
46164 CellNavigationService.prototype.getNextStickyPosition = function (rowNode, up) {
46165 if (!this.gridOptionsService.is('groupRowsSticky') || !rowNode || !rowNode.sticky) {
46166 return;
46167 }
46168 var stickyRowCtrls = __spread(this.rowRenderer.getStickyTopRowCtrls()).sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode().rowIndex; });
46169 var diff = up ? -1 : 1;
46170 var idx = stickyRowCtrls.findIndex(function (ctrl) { return ctrl.getRowNode().rowIndex === rowNode.rowIndex; });
46171 var nextCtrl = stickyRowCtrls[idx + diff];
46172 if (nextCtrl) {
46173 return { rowIndex: nextCtrl.getRowNode().rowIndex, rowPinned: null };
46174 }
46175 };
46176 CellNavigationService.prototype.getCellBelow = function (lastCell) {
46177 if (!lastCell) {
46178 return null;
46179 }
46180 var rowBelow = this.getRowBelow(lastCell);
46181 if (rowBelow) {
46182 return {
46183 rowIndex: rowBelow.rowIndex,
46184 column: lastCell.column,
46185 rowPinned: rowBelow.rowPinned
46186 };
46187 }
46188 return null;
46189 };
46190 CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {
46191 var pinned = rowPosition.rowPinned;
46192 var index = rowPosition.rowIndex;
46193 if (pinned === 'top') {
46194 var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;
46195 return lastTopIndex <= index;
46196 }
46197 if (pinned === 'bottom') {
46198 var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;
46199 return lastBottomIndex <= index;
46200 }
46201 var lastBodyIndex = this.paginationProxy.getPageLastRow();
46202 return lastBodyIndex <= index;
46203 };
46204 CellNavigationService.prototype.getRowAbove = function (rowPosition) {
46205 // if already on top row, do nothing
46206 var index = rowPosition.rowIndex;
46207 var pinned = rowPosition.rowPinned;
46208 var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();
46209 // if already on top row, do nothing
46210 if (isFirstRow) {
46211 if (pinned === 'top') {
46212 return null;
46213 }
46214 if (!pinned) {
46215 if (this.pinnedRowModel.isRowsToRender('top')) {
46216 return this.getLastFloatingTopRow();
46217 }
46218 return null;
46219 }
46220 // last floating bottom
46221 if (this.rowModel.isRowsToRender()) {
46222 return this.getLastBodyCell();
46223 }
46224 if (this.pinnedRowModel.isRowsToRender('top')) {
46225 return this.getLastFloatingTopRow();
46226 }
46227 return null;
46228 }
46229 var rowNode = this.rowModel.getRow(rowPosition.rowIndex);
46230 var nextStickyPosition = this.getNextStickyPosition(rowNode, true);
46231 if (nextStickyPosition) {
46232 return nextStickyPosition;
46233 }
46234 return { rowIndex: index - 1, rowPinned: pinned };
46235 };
46236 CellNavigationService.prototype.getCellAbove = function (lastCell) {
46237 if (!lastCell) {
46238 return null;
46239 }
46240 var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });
46241 if (rowAbove) {
46242 return {
46243 rowIndex: rowAbove.rowIndex,
46244 column: lastCell.column,
46245 rowPinned: rowAbove.rowPinned
46246 };
46247 }
46248 return null;
46249 };
46250 CellNavigationService.prototype.getLastBodyCell = function () {
46251 var lastBodyRow = this.paginationProxy.getPageLastRow();
46252 return { rowIndex: lastBodyRow, rowPinned: null };
46253 };
46254 CellNavigationService.prototype.getLastFloatingTopRow = function () {
46255 var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;
46256 return { rowIndex: lastFloatingRow, rowPinned: 'top' };
46257 };
46258 CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {
46259 if (backwards) {
46260 return this.getNextTabbedCellBackwards(gridCell);
46261 }
46262 return this.getNextTabbedCellForwards(gridCell);
46263 };
46264 CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {
46265 var displayedColumns = this.columnModel.getAllDisplayedColumns();
46266 var newRowIndex = gridCell.rowIndex;
46267 var newFloating = gridCell.rowPinned;
46268 // move along to the next cell
46269 var newColumn = this.columnModel.getDisplayedColAfter(gridCell.column);
46270 // check if end of the row, and if so, go forward a row
46271 if (!newColumn) {
46272 newColumn = displayedColumns[0];
46273 var rowBelow = this.getRowBelow(gridCell);
46274 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(rowBelow)) {
46275 return null;
46276 }
46277 // If we are tabbing and there is a paging panel present, tabbing should go
46278 // to the paging panel instead of loading the next page.
46279 if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {
46280 return null;
46281 }
46282 newRowIndex = rowBelow ? rowBelow.rowIndex : null;
46283 newFloating = rowBelow ? rowBelow.rowPinned : null;
46284 }
46285 return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };
46286 };
46287 CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {
46288 var displayedColumns = this.columnModel.getAllDisplayedColumns();
46289 var newRowIndex = gridCell.rowIndex;
46290 var newFloating = gridCell.rowPinned;
46291 // move along to the next cell
46292 var newColumn = this.columnModel.getDisplayedColBefore(gridCell.column);
46293 // check if end of the row, and if so, go forward a row
46294 if (!newColumn) {
46295 newColumn = Object(_utils_array__WEBPACK_IMPORTED_MODULE_3__["last"])(displayedColumns);
46296 var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });
46297 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["missing"])(rowAbove)) {
46298 return null;
46299 }
46300 // If we are tabbing and there is a paging panel present, tabbing should go
46301 // to the paging panel instead of loading the next page.
46302 if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {
46303 return null;
46304 }
46305 newRowIndex = rowAbove ? rowAbove.rowIndex : null;
46306 newFloating = rowAbove ? rowAbove.rowPinned : null;
46307 }
46308 return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };
46309 };
46310 __decorate([
46311 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
46312 ], CellNavigationService.prototype, "columnModel", void 0);
46313 __decorate([
46314 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
46315 ], CellNavigationService.prototype, "rowModel", void 0);
46316 __decorate([
46317 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
46318 ], CellNavigationService.prototype, "rowRenderer", void 0);
46319 __decorate([
46320 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
46321 ], CellNavigationService.prototype, "pinnedRowModel", void 0);
46322 __decorate([
46323 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
46324 ], CellNavigationService.prototype, "paginationProxy", void 0);
46325 CellNavigationService = __decorate([
46326 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('cellNavigationService')
46327 ], CellNavigationService);
46328 return CellNavigationService;
46329}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
46330
46331
46332
46333/***/ }),
46334/* 205 */
46335/***/ (function(module, __webpack_exports__, __webpack_require__) {
46336
46337"use strict";
46338__webpack_require__.r(__webpack_exports__);
46339/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return AlignedGridsService; });
46340/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25);
46341/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
46342/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
46343/**
46344 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
46345 * @version v29.2.0
46346 * @link https://www.ag-grid.com/
46347 * @license MIT
46348 */
46349var __extends = (undefined && undefined.__extends) || (function () {
46350 var extendStatics = function (d, b) {
46351 extendStatics = Object.setPrototypeOf ||
46352 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
46353 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
46354 return extendStatics(d, b);
46355 };
46356 return function (d, b) {
46357 extendStatics(d, b);
46358 function __() { this.constructor = d; }
46359 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
46360 };
46361})();
46362var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
46363 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
46364 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
46365 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;
46366 return c > 3 && r && Object.defineProperty(target, key, r), r;
46367};
46368var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
46369 return function (target, key) { decorator(target, key, paramIndex); }
46370};
46371
46372
46373
46374
46375
46376
46377var AlignedGridsService = /** @class */ (function (_super) {
46378 __extends(AlignedGridsService, _super);
46379 function AlignedGridsService() {
46380 var _this = _super !== null && _super.apply(this, arguments) || this;
46381 // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master
46382 // while processing a master event) we mark this if consuming an event, and if we are, then
46383 // we don't fire back any events.
46384 _this.consuming = false;
46385 return _this;
46386 }
46387 AlignedGridsService.prototype.setBeans = function (loggerFactory) {
46388 this.logger = loggerFactory.create('AlignedGridsService');
46389 };
46390 AlignedGridsService.prototype.init = function () {
46391 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));
46392 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));
46393 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));
46394 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));
46395 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));
46396 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));
46397 };
46398 // common logic across all the fire methods
46399 AlignedGridsService.prototype.fireEvent = function (callback) {
46400 // if we are already consuming, then we are acting on an event from a master,
46401 // so we don't cause a cyclic firing of events
46402 if (this.consuming) {
46403 return;
46404 }
46405 // iterate through the aligned grids, and pass each aligned grid service to the callback
46406 var otherGrids = this.gridOptionsService.get('alignedGrids');
46407 if (otherGrids) {
46408 otherGrids.forEach(function (otherGridOptions) {
46409 if (otherGridOptions.api) {
46410 var alignedGridService = otherGridOptions.api.__getAlignedGridService();
46411 callback(alignedGridService);
46412 }
46413 });
46414 }
46415 };
46416 // common logic across all consume methods. very little common logic, however extracting
46417 // guarantees consistency across the methods.
46418 AlignedGridsService.prototype.onEvent = function (callback) {
46419 this.consuming = true;
46420 callback();
46421 this.consuming = false;
46422 };
46423 AlignedGridsService.prototype.fireColumnEvent = function (event) {
46424 this.fireEvent(function (alignedGridsService) {
46425 alignedGridsService.onColumnEvent(event);
46426 });
46427 };
46428 AlignedGridsService.prototype.fireScrollEvent = function (event) {
46429 if (event.direction !== 'horizontal') {
46430 return;
46431 }
46432 this.fireEvent(function (alignedGridsService) {
46433 alignedGridsService.onScrollEvent(event);
46434 });
46435 };
46436 AlignedGridsService.prototype.onScrollEvent = function (event) {
46437 var _this = this;
46438 this.onEvent(function () {
46439 var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();
46440 gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left);
46441 });
46442 };
46443 AlignedGridsService.prototype.getMasterColumns = function (event) {
46444 var result = [];
46445 if (event.columns) {
46446 event.columns.forEach(function (column) {
46447 result.push(column);
46448 });
46449 }
46450 else if (event.column) {
46451 result.push(event.column);
46452 }
46453 return result;
46454 };
46455 AlignedGridsService.prototype.getColumnIds = function (event) {
46456 var result = [];
46457 if (event.columns) {
46458 event.columns.forEach(function (column) {
46459 result.push(column.getColId());
46460 });
46461 }
46462 else if (event.column) {
46463 result.push(event.column.getColId());
46464 }
46465 return result;
46466 };
46467 AlignedGridsService.prototype.onColumnEvent = function (event) {
46468 var _this = this;
46469 this.onEvent(function () {
46470 switch (event.type) {
46471 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED:
46472 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE:
46473 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED:
46474 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED:
46475 var colEvent = event;
46476 _this.processColumnEvent(colEvent);
46477 break;
46478 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_GROUP_OPENED:
46479 var groupOpenedEvent = event;
46480 _this.processGroupOpenedEvent(groupOpenedEvent);
46481 break;
46482 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_CHANGED:
46483 // we cannot support pivoting with aligned grids as the columns will be out of sync as the
46484 // grids will have columns created based on the row data of the grid.
46485 console.warn('AG Grid: pivoting is not supported with aligned grids. ' +
46486 'You can only use one of these features at a time in a grid.');
46487 break;
46488 }
46489 });
46490 };
46491 AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {
46492 // likewise for column group
46493 var masterColumnGroup = groupOpenedEvent.columnGroup;
46494 var otherColumnGroup = null;
46495 if (masterColumnGroup) {
46496 var groupId = masterColumnGroup.getGroupId();
46497 otherColumnGroup = this.columnModel.getProvidedColumnGroup(groupId);
46498 }
46499 if (masterColumnGroup && !otherColumnGroup) {
46500 return;
46501 }
46502 this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());
46503 this.columnModel.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), "alignedGridChanged");
46504 };
46505 AlignedGridsService.prototype.processColumnEvent = function (colEvent) {
46506 var _this = this;
46507 var _a;
46508 // the column in the event is from the master grid. need to
46509 // look up the equivalent from this (other) grid
46510 var masterColumn = colEvent.column;
46511 var otherColumn = null;
46512 if (masterColumn) {
46513 otherColumn = this.columnModel.getPrimaryColumn(masterColumn.getColId());
46514 }
46515 // if event was with respect to a master column, that is not present in this
46516 // grid, then we ignore the event
46517 if (masterColumn && !otherColumn) {
46518 return;
46519 }
46520 // in time, all the methods below should use the column ids, it's a more generic way
46521 // of handling columns, and also allows for single or multi column events
46522 var masterColumns = this.getMasterColumns(colEvent);
46523 switch (colEvent.type) {
46524 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_MOVED:
46525 // when the user moves columns via applyColumnState, we can't depend on moving specific columns
46526 // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).
46527 // so only way to be sure is match the order of all columns using Column State.
46528 {
46529 var movedEvent = colEvent;
46530 var srcColState = colEvent.columnApi.getColumnState();
46531 var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });
46532 this.columnModel.applyColumnState({ state: destColState, applyOrder: true }, "alignedGridChanged");
46533 this.logger.log("onColumnEvent-> processing " + colEvent.type + " toIndex = " + movedEvent.toIndex);
46534 }
46535 break;
46536 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VISIBLE:
46537 // when the user changes visibility via applyColumnState, we can't depend on visibility flag in event
46538 // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).
46539 // so only way to be sure is match the visibility of all columns using Column State.
46540 {
46541 var visibleEvent = colEvent;
46542 var srcColState = colEvent.columnApi.getColumnState();
46543 var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });
46544 this.columnModel.applyColumnState({ state: destColState }, "alignedGridChanged");
46545 this.logger.log("onColumnEvent-> processing " + colEvent.type + " visible = " + visibleEvent.visible);
46546 }
46547 break;
46548 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PINNED:
46549 {
46550 var pinnedEvent = colEvent;
46551 var srcColState = colEvent.columnApi.getColumnState();
46552 var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });
46553 this.columnModel.applyColumnState({ state: destColState }, "alignedGridChanged");
46554 this.logger.log("onColumnEvent-> processing " + colEvent.type + " pinned = " + pinnedEvent.pinned);
46555 }
46556 break;
46557 case _events__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_RESIZED:
46558 var resizedEvent = colEvent;
46559 var columnWidths_1 = {};
46560 masterColumns.forEach(function (column) {
46561 _this.logger.log("onColumnEvent-> processing " + colEvent.type + " actualWidth = " + column.getActualWidth());
46562 columnWidths_1[column.getId()] = { key: column.getColId(), newWidth: column.getActualWidth() };
46563 });
46564 // don't set flex columns width
46565 (_a = resizedEvent.flexColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {
46566 if (columnWidths_1[col.getId()]) {
46567 delete columnWidths_1[col.getId()];
46568 }
46569 });
46570 this.columnModel.setColumnWidths(Object.values(columnWidths_1), false, resizedEvent.finished, "alignedGridChanged");
46571 break;
46572 }
46573 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
46574 var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();
46575 var alignedGrids = this.gridOptionsService.get('alignedGrids');
46576 if (alignedGrids) {
46577 alignedGrids.forEach(function (grid) {
46578 if (grid.api) {
46579 grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);
46580 }
46581 });
46582 }
46583 };
46584 __decorate([
46585 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
46586 ], AlignedGridsService.prototype, "columnModel", void 0);
46587 __decorate([
46588 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
46589 ], AlignedGridsService.prototype, "ctrlsService", void 0);
46590 __decorate([
46591 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('loggerFactory'))
46592 ], AlignedGridsService.prototype, "setBeans", null);
46593 __decorate([
46594 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
46595 ], AlignedGridsService.prototype, "init", null);
46596 AlignedGridsService = __decorate([
46597 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('alignedGridsService')
46598 ], AlignedGridsService);
46599 return AlignedGridsService;
46600}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
46601
46602
46603
46604/***/ }),
46605/* 206 */
46606/***/ (function(module, __webpack_exports__, __webpack_require__) {
46607
46608"use strict";
46609__webpack_require__.r(__webpack_exports__);
46610/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return Grid; });
46611/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return GridCoreCreator; });
46612/* harmony import */ var _selectionService__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(207);
46613/* harmony import */ var _columns_columnApi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(208);
46614/* harmony import */ var _columns_columnModel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20);
46615/* harmony import */ var _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(178);
46616/* harmony import */ var _headerRendering_gridHeaderComp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(168);
46617/* harmony import */ var _filter_filterManager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(111);
46618/* harmony import */ var _valueService_valueService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(209);
46619/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(10);
46620/* harmony import */ var _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(116);
46621/* harmony import */ var _gridApi__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(112);
46622/* harmony import */ var _columns_columnFactory__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(5);
46623/* harmony import */ var _columns_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(34);
46624/* harmony import */ var _valueService_expressionService__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(210);
46625/* harmony import */ var _templateService__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(211);
46626/* harmony import */ var _widgets_popupService__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(200);
46627/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(212);
46628/* harmony import */ var _columns_columnUtils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(33);
46629/* harmony import */ var _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(177);
46630/* harmony import */ var _headerRendering_common_horizontalResizeService__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(171);
46631/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(11);
46632/* harmony import */ var _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(213);
46633/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(100);
46634/* harmony import */ var _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(109);
46635/* harmony import */ var _sortController__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(215);
46636/* harmony import */ var _focusService__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(201);
46637/* harmony import */ var _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(142);
46638/* harmony import */ var _cellNavigationService__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(204);
46639/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(25);
46640/* harmony import */ var _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(180);
46641/* harmony import */ var _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(72);
46642/* harmony import */ var _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(71);
46643/* harmony import */ var _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(203);
46644/* harmony import */ var _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(141);
46645/* harmony import */ var _styling_stylingService__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(187);
46646/* harmony import */ var _rendering_columnHoverService__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(216);
46647/* harmony import */ var _rendering_columnAnimationService__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(217);
46648/* harmony import */ var _columns_autoGroupColService__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(30);
46649/* harmony import */ var _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(186);
46650/* harmony import */ var _pagination_paginationAutoPageSizeService__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(218);
46651/* harmony import */ var _valueService_valueCache__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(219);
46652/* harmony import */ var _valueService_changeDetectionService__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(220);
46653/* harmony import */ var _alignedGridsService__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(205);
46654/* harmony import */ var _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(105);
46655/* harmony import */ var _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(36);
46656/* harmony import */ var _components_framework_agComponentUtils__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(221);
46657/* harmony import */ var _components_framework_componentMetadataProvider__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(222);
46658/* harmony import */ var _rendering_beans__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(132);
46659/* harmony import */ var _environment__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(223);
46660/* harmony import */ var _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(176);
46661/* harmony import */ var _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(143);
46662/* harmony import */ var _rendering_rowContainerHeightService__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(224);
46663/* harmony import */ var _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(225);
46664/* harmony import */ var _pagination_paginationComp__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(226);
46665/* harmony import */ var _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(175);
46666/* harmony import */ var _rendering_overlays_overlayWrapperComponent__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(227);
46667/* harmony import */ var _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(192);
46668/* harmony import */ var _widgets_agDialog__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(198);
46669/* harmony import */ var _widgets_agPanel__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(199);
46670/* harmony import */ var _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(79);
46671/* harmony import */ var _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(189);
46672/* harmony import */ var _widgets_agSlider__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(191);
46673/* harmony import */ var _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(80);
46674/* harmony import */ var _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(190);
46675/* harmony import */ var _widgets_agSelect__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(66);
46676/* harmony import */ var _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(188);
46677/* harmony import */ var _entities_rowPositionUtils__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(228);
46678/* harmony import */ var _entities_cellPositionUtils__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(229);
46679/* harmony import */ var _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(181);
46680/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(15);
46681/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(14);
46682/* harmony import */ var _undoRedo_undoRedoService__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(230);
46683/* harmony import */ var _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(35);
46684/* harmony import */ var _headerRendering_common_headerPosition__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(232);
46685/* harmony import */ var _headerRendering_common_headerNavigationService__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(170);
46686/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(7);
46687/* harmony import */ var _columns_columnDefFactory__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(233);
46688/* harmony import */ var _rendering_row_rowCssClassCalculator__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(234);
46689/* harmony import */ var _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(185);
46690/* harmony import */ var _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(235);
46691/* harmony import */ var _ctrlsService__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(236);
46692/* harmony import */ var _ctrlsFactory__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(237);
46693/* harmony import */ var _gridBodyComp_fakeHScrollComp__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(238);
46694/* harmony import */ var _gridBodyComp_pinnedWidthService__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(240);
46695/* harmony import */ var _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(144);
46696/* harmony import */ var _entities_rowNodeEventThrottle__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(241);
46697/* harmony import */ var _headerRendering_cells_column_standardMenu__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(172);
46698/* harmony import */ var _headerRendering_cells_column_sortIndicatorComp__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(87);
46699/* harmony import */ var _gridOptionsService__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(242);
46700/* harmony import */ var _localeService__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(243);
46701/* harmony import */ var _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(22);
46702/* harmony import */ var _gridBodyComp_fakeVScrollComp__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(244);
46703/**
46704 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
46705 * @version v29.2.0
46706 * @link https://www.ag-grid.com/
46707 * @license MIT
46708 */
46709var __read = (undefined && undefined.__read) || function (o, n) {
46710 var m = typeof Symbol === "function" && o[Symbol.iterator];
46711 if (!m) return o;
46712 var i = m.call(o), r, ar = [], e;
46713 try {
46714 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
46715 }
46716 catch (error) { e = { error: error }; }
46717 finally {
46718 try {
46719 if (r && !r.done && (m = i["return"])) m.call(i);
46720 }
46721 finally { if (e) throw e.error; }
46722 }
46723 return ar;
46724};
46725var __spread = (undefined && undefined.__spread) || function () {
46726 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
46727 return ar;
46728};
46729
46730
46731
46732
46733
46734
46735
46736
46737
46738
46739
46740
46741
46742
46743
46744
46745
46746
46747
46748
46749
46750
46751
46752
46753
46754
46755
46756
46757
46758
46759
46760
46761
46762
46763
46764
46765
46766
46767
46768
46769
46770
46771
46772
46773
46774
46775
46776
46777
46778
46779
46780
46781
46782
46783
46784
46785
46786
46787
46788
46789
46790
46791
46792
46793
46794
46795
46796
46797
46798
46799
46800
46801
46802
46803
46804
46805
46806
46807
46808
46809
46810
46811
46812
46813
46814
46815
46816
46817
46818
46819
46820// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can
46821// be wrapped by the framework wrappers
46822var Grid = /** @class */ (function () {
46823 function Grid(eGridDiv, gridOptions, params) {
46824 if (!gridOptions) {
46825 console.error('AG Grid: no gridOptions provided to the grid');
46826 return;
46827 }
46828 this.gridOptions = gridOptions;
46829 new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {
46830 var gridComp = new _gridComp_gridComp__WEBPACK_IMPORTED_MODULE_20__["GridComp"](eGridDiv);
46831 context.createBean(gridComp);
46832 }, undefined, params);
46833 }
46834 Grid.prototype.destroy = function () {
46835 if (this.gridOptions && this.gridOptions.api) {
46836 this.gridOptions.api.destroy();
46837 }
46838 };
46839 return Grid;
46840}());
46841
46842// created services of grid only, no UI, so frameworks can use this if providing
46843// their own UI
46844var GridCoreCreator = /** @class */ (function () {
46845 function GridCoreCreator() {
46846 }
46847 GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, createUi, acceptChanges, params) {
46848 var _this = this;
46849 var debug = !!gridOptions.debug;
46850 var registeredModules = this.getRegisteredModules(params);
46851 var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules);
46852 var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);
46853 if (!beanClasses) {
46854 return;
46855 } // happens when no row model found
46856 var contextParams = {
46857 providedBeanInstances: providedBeanInstances,
46858 beanClasses: beanClasses,
46859 debug: debug
46860 };
46861 var logger = new _logger__WEBPACK_IMPORTED_MODULE_15__["Logger"]('AG Grid', function () { return gridOptions.debug; });
46862 var contextLogger = new _logger__WEBPACK_IMPORTED_MODULE_15__["Logger"]('Context', function () { return contextParams.debug; });
46863 var context = new _context_context__WEBPACK_IMPORTED_MODULE_19__["Context"](contextParams, contextLogger);
46864 var beans = context.getBean('beans');
46865 this.registerModuleUserComponents(beans, registeredModules);
46866 this.registerStackComponents(beans, registeredModules);
46867 this.registerControllers(beans, registeredModules);
46868 createUi(context);
46869 // we wait until the UI has finished initialising before setting in columns and rows
46870 beans.ctrlsService.whenReady(function () {
46871 _this.setColumnsAndData(beans);
46872 _this.dispatchGridReadyEvent(beans);
46873 var isEnterprise = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_68__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_69__["ModuleNames"].EnterpriseCoreModule);
46874 logger.log("initialised successfully, enterprise = " + isEnterprise);
46875 });
46876 if (acceptChanges) {
46877 acceptChanges(context);
46878 }
46879 };
46880 GridCoreCreator.prototype.registerControllers = function (beans, registeredModules) {
46881 registeredModules.forEach(function (module) {
46882 if (module.controllers) {
46883 module.controllers.forEach(function (meta) { return beans.ctrlsFactory.register(meta); });
46884 }
46885 });
46886 };
46887 GridCoreCreator.prototype.registerStackComponents = function (beans, registeredModules) {
46888 var agStackComponents = this.createAgStackComponentsList(registeredModules);
46889 beans.agStackComponentsRegistry.setupComponents(agStackComponents);
46890 };
46891 GridCoreCreator.prototype.getRegisteredModules = function (params) {
46892 var passedViaConstructor = params ? params.modules : null;
46893 var registered = _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_68__["ModuleRegistry"].getRegisteredModules();
46894 var allModules = [];
46895 var mapNames = {};
46896 // adds to list and removes duplicates
46897 function addModule(moduleBased, mod) {
46898 function addIndividualModule(currentModule) {
46899 if (!mapNames[currentModule.moduleName]) {
46900 mapNames[currentModule.moduleName] = true;
46901 allModules.push(currentModule);
46902 _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_68__["ModuleRegistry"].register(currentModule, moduleBased);
46903 }
46904 }
46905 addIndividualModule(mod);
46906 if (mod.dependantModules) {
46907 mod.dependantModules.forEach(addModule.bind(null, moduleBased));
46908 }
46909 }
46910 if (passedViaConstructor) {
46911 passedViaConstructor.forEach(addModule.bind(null, true));
46912 }
46913 if (registered) {
46914 registered.forEach(addModule.bind(null, !_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_68__["ModuleRegistry"].isPackageBased()));
46915 }
46916 return allModules;
46917 };
46918 GridCoreCreator.prototype.registerModuleUserComponents = function (beans, registeredModules) {
46919 var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });
46920 moduleUserComps.forEach(function (compMeta) {
46921 beans.userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);
46922 });
46923 };
46924 GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {
46925 var frameworkOverrides = params ? params.frameworkOverrides : null;
46926 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_74__["missing"])(frameworkOverrides)) {
46927 frameworkOverrides = new _vanillaFrameworkOverrides__WEBPACK_IMPORTED_MODULE_31__["VanillaFrameworkOverrides"]();
46928 }
46929 var seed = {
46930 gridOptions: gridOptions,
46931 eGridDiv: eGridDiv,
46932 globalEventListener: params ? params.globalEventListener : null,
46933 frameworkOverrides: frameworkOverrides
46934 };
46935 if (params && params.providedBeanInstances) {
46936 Object.assign(seed, params.providedBeanInstances);
46937 }
46938 return seed;
46939 };
46940 GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {
46941 var components = [
46942 { componentName: 'AgCheckbox', componentClass: _widgets_agCheckbox__WEBPACK_IMPORTED_MODULE_29__["AgCheckbox"] },
46943 { componentName: 'AgRadioButton', componentClass: _widgets_agRadioButton__WEBPACK_IMPORTED_MODULE_30__["AgRadioButton"] },
46944 { componentName: 'AgToggleButton', componentClass: _widgets_agToggleButton__WEBPACK_IMPORTED_MODULE_64__["AgToggleButton"] },
46945 { componentName: 'AgInputTextField', componentClass: _widgets_agInputTextField__WEBPACK_IMPORTED_MODULE_58__["AgInputTextField"] },
46946 { componentName: 'AgInputTextArea', componentClass: _widgets_agInputTextArea__WEBPACK_IMPORTED_MODULE_59__["AgInputTextArea"] },
46947 { componentName: 'AgInputNumberField', componentClass: _widgets_agInputNumberField__WEBPACK_IMPORTED_MODULE_61__["AgInputNumberField"] },
46948 { componentName: 'AgInputRange', componentClass: _widgets_agInputRange__WEBPACK_IMPORTED_MODULE_62__["AgInputRange"] },
46949 { componentName: 'AgSelect', componentClass: _widgets_agSelect__WEBPACK_IMPORTED_MODULE_63__["AgSelect"] },
46950 { componentName: 'AgSlider', componentClass: _widgets_agSlider__WEBPACK_IMPORTED_MODULE_60__["AgSlider"] },
46951 { componentName: 'AgGridBody', componentClass: _gridBodyComp_gridBodyComp__WEBPACK_IMPORTED_MODULE_8__["GridBodyComp"] },
46952 { componentName: 'AgHeaderRoot', componentClass: _headerRendering_gridHeaderComp__WEBPACK_IMPORTED_MODULE_4__["GridHeaderComp"] },
46953 { componentName: 'AgSortIndicator', componentClass: _headerRendering_cells_column_sortIndicatorComp__WEBPACK_IMPORTED_MODULE_86__["SortIndicatorComp"] },
46954 { componentName: 'AgPagination', componentClass: _pagination_paginationComp__WEBPACK_IMPORTED_MODULE_52__["PaginationComp"] },
46955 { componentName: 'AgOverlayWrapper', componentClass: _rendering_overlays_overlayWrapperComponent__WEBPACK_IMPORTED_MODULE_54__["OverlayWrapperComponent"] },
46956 { componentName: 'AgGroupComponent', componentClass: _widgets_agGroupComponent__WEBPACK_IMPORTED_MODULE_55__["AgGroupComponent"] },
46957 { componentName: 'AgPanel', componentClass: _widgets_agPanel__WEBPACK_IMPORTED_MODULE_57__["AgPanel"] },
46958 { componentName: 'AgDialog', componentClass: _widgets_agDialog__WEBPACK_IMPORTED_MODULE_56__["AgDialog"] },
46959 { componentName: 'AgRowContainer', componentClass: _gridBodyComp_rowContainer_rowContainerComp__WEBPACK_IMPORTED_MODULE_83__["RowContainerComp"] },
46960 { componentName: 'AgFakeHorizontalScroll', componentClass: _gridBodyComp_fakeHScrollComp__WEBPACK_IMPORTED_MODULE_81__["FakeHScrollComp"] },
46961 { componentName: 'AgFakeVerticalScroll', componentClass: _gridBodyComp_fakeVScrollComp__WEBPACK_IMPORTED_MODULE_90__["FakeVScrollComp"] }
46962 ];
46963 var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });
46964 components = components.concat(moduleAgStackComps);
46965 return components;
46966 };
46967 GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules) {
46968 if (rowModelType === void 0) { rowModelType = 'clientSide'; }
46969 // only load beans matching the required row model
46970 var rowModelModules = registeredModules.filter(function (module) { return !module.rowModel || module.rowModel === rowModelType; });
46971 // assert that the relevant module has been loaded
46972 var rowModelModuleNames = {
46973 clientSide: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_69__["ModuleNames"].ClientSideRowModelModule,
46974 infinite: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_69__["ModuleNames"].InfiniteRowModelModule,
46975 serverSide: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_69__["ModuleNames"].ServerSideRowModelModule,
46976 viewport: _modules_moduleNames__WEBPACK_IMPORTED_MODULE_69__["ModuleNames"].ViewportRowModelModule
46977 };
46978 if (!rowModelModuleNames[rowModelType]) {
46979 console.error('AG Grid: could not find row model for rowModelType = ' + rowModelType);
46980 return;
46981 }
46982 if (!_modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_68__["ModuleRegistry"].assertRegistered(rowModelModuleNames[rowModelType], "rowModelType = '" + rowModelType + "'")) {
46983 return;
46984 }
46985 // beans should only contain SERVICES, it should NEVER contain COMPONENTS
46986 var beans = [
46987 _rendering_beans__WEBPACK_IMPORTED_MODULE_46__["Beans"], _entities_rowPositionUtils__WEBPACK_IMPORTED_MODULE_65__["RowPositionUtils"], _entities_cellPositionUtils__WEBPACK_IMPORTED_MODULE_66__["CellPositionUtils"], _headerRendering_common_headerPosition__WEBPACK_IMPORTED_MODULE_72__["HeaderPositionUtils"],
46988 _pagination_paginationAutoPageSizeService__WEBPACK_IMPORTED_MODULE_38__["PaginationAutoPageSizeService"], _gridApi__WEBPACK_IMPORTED_MODULE_9__["GridApi"], _components_framework_userComponentRegistry__WEBPACK_IMPORTED_MODULE_43__["UserComponentRegistry"], _components_framework_agComponentUtils__WEBPACK_IMPORTED_MODULE_44__["AgComponentUtils"],
46989 _components_framework_componentMetadataProvider__WEBPACK_IMPORTED_MODULE_45__["ComponentMetadataProvider"], _misc_resizeObserverService__WEBPACK_IMPORTED_MODULE_53__["ResizeObserverService"], _components_framework_userComponentFactory__WEBPACK_IMPORTED_MODULE_42__["UserComponentFactory"],
46990 _rendering_rowContainerHeightService__WEBPACK_IMPORTED_MODULE_50__["RowContainerHeightService"], _headerRendering_common_horizontalResizeService__WEBPACK_IMPORTED_MODULE_18__["HorizontalResizeService"], _localeService__WEBPACK_IMPORTED_MODULE_88__["LocaleService"], _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_89__["GridOptionsValidator"],
46991 _pinnedRowModel_pinnedRowModel__WEBPACK_IMPORTED_MODULE_67__["PinnedRowModel"], _dragAndDrop_dragService__WEBPACK_IMPORTED_MODULE_22__["DragService"], _columns_displayedGroupCreator__WEBPACK_IMPORTED_MODULE_11__["DisplayedGroupCreator"], _eventService__WEBPACK_IMPORTED_MODULE_7__["EventService"], _gridOptionsService__WEBPACK_IMPORTED_MODULE_87__["GridOptionsService"],
46992 _widgets_popupService__WEBPACK_IMPORTED_MODULE_14__["PopupService"], _selectionService__WEBPACK_IMPORTED_MODULE_0__["SelectionService"], _filter_filterManager__WEBPACK_IMPORTED_MODULE_5__["FilterManager"], _columns_columnModel__WEBPACK_IMPORTED_MODULE_2__["ColumnModel"], _headerRendering_common_headerNavigationService__WEBPACK_IMPORTED_MODULE_73__["HeaderNavigationService"],
46993 _pagination_paginationProxy__WEBPACK_IMPORTED_MODULE_37__["PaginationProxy"], _rendering_rowRenderer__WEBPACK_IMPORTED_MODULE_3__["RowRenderer"], _valueService_expressionService__WEBPACK_IMPORTED_MODULE_12__["ExpressionService"], _columns_columnFactory__WEBPACK_IMPORTED_MODULE_10__["ColumnFactory"], _templateService__WEBPACK_IMPORTED_MODULE_13__["TemplateService"],
46994 _alignedGridsService__WEBPACK_IMPORTED_MODULE_41__["AlignedGridsService"], _gridBodyComp_navigationService__WEBPACK_IMPORTED_MODULE_49__["NavigationService"], _valueService_valueCache__WEBPACK_IMPORTED_MODULE_39__["ValueCache"], _valueService_valueService__WEBPACK_IMPORTED_MODULE_6__["ValueService"], _logger__WEBPACK_IMPORTED_MODULE_15__["LoggerFactory"],
46995 _columns_columnUtils__WEBPACK_IMPORTED_MODULE_16__["ColumnUtils"], _rendering_autoWidthCalculator__WEBPACK_IMPORTED_MODULE_17__["AutoWidthCalculator"], _headerRendering_cells_column_standardMenu__WEBPACK_IMPORTED_MODULE_85__["StandardMenuFactory"], _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_21__["DragAndDropService"], _columns_columnApi__WEBPACK_IMPORTED_MODULE_1__["ColumnApi"],
46996 _focusService__WEBPACK_IMPORTED_MODULE_24__["FocusService"], _gridBodyComp_mouseEventService__WEBPACK_IMPORTED_MODULE_25__["MouseEventService"], _environment__WEBPACK_IMPORTED_MODULE_47__["Environment"], _cellNavigationService__WEBPACK_IMPORTED_MODULE_26__["CellNavigationService"], _rendering_valueFormatterService__WEBPACK_IMPORTED_MODULE_28__["ValueFormatterService"],
46997 _styling_stylingService__WEBPACK_IMPORTED_MODULE_33__["StylingService"], _gridBodyComp_scrollVisibleService__WEBPACK_IMPORTED_MODULE_32__["ScrollVisibleService"], _sortController__WEBPACK_IMPORTED_MODULE_23__["SortController"], _rendering_columnHoverService__WEBPACK_IMPORTED_MODULE_34__["ColumnHoverService"], _rendering_columnAnimationService__WEBPACK_IMPORTED_MODULE_35__["ColumnAnimationService"],
46998 _rowNodes_selectableService__WEBPACK_IMPORTED_MODULE_51__["SelectableService"], _columns_autoGroupColService__WEBPACK_IMPORTED_MODULE_36__["AutoGroupColService"], _valueService_changeDetectionService__WEBPACK_IMPORTED_MODULE_40__["ChangeDetectionService"], _misc_animationFrameService__WEBPACK_IMPORTED_MODULE_48__["AnimationFrameService"],
46999 _undoRedo_undoRedoService__WEBPACK_IMPORTED_MODULE_70__["UndoRedoService"], _components_agStackComponentsRegistry__WEBPACK_IMPORTED_MODULE_71__["AgStackComponentsRegistry"], _columns_columnDefFactory__WEBPACK_IMPORTED_MODULE_75__["ColumnDefFactory"],
47000 _rendering_row_rowCssClassCalculator__WEBPACK_IMPORTED_MODULE_76__["RowCssClassCalculator"], _rowNodeCache_rowNodeBlockLoader__WEBPACK_IMPORTED_MODULE_77__["RowNodeBlockLoader"], _rowNodes_rowNodeSorter__WEBPACK_IMPORTED_MODULE_78__["RowNodeSorter"], _ctrlsService__WEBPACK_IMPORTED_MODULE_79__["CtrlsService"],
47001 _gridBodyComp_pinnedWidthService__WEBPACK_IMPORTED_MODULE_82__["PinnedWidthService"], _entities_rowNodeEventThrottle__WEBPACK_IMPORTED_MODULE_84__["RowNodeEventThrottle"], _ctrlsFactory__WEBPACK_IMPORTED_MODULE_80__["CtrlsFactory"]
47002 ];
47003 var moduleBeans = this.extractModuleEntity(rowModelModules, function (module) { return module.beans ? module.beans : []; });
47004 beans.push.apply(beans, __spread(moduleBeans));
47005 // check for duplicates, as different modules could include the same beans that
47006 // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community
47007 var beansNoDuplicates = [];
47008 beans.forEach(function (bean) {
47009 if (beansNoDuplicates.indexOf(bean) < 0) {
47010 beansNoDuplicates.push(bean);
47011 }
47012 });
47013 return beansNoDuplicates;
47014 };
47015 GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {
47016 return [].concat.apply([], __spread(moduleEntities.map(extractor)));
47017 };
47018 GridCoreCreator.prototype.setColumnsAndData = function (beans) {
47019 var columnDefs = beans.gridOptionsService.get('columnDefs');
47020 beans.columnModel.setColumnDefs(columnDefs || [], "gridInitializing");
47021 beans.rowModel.start();
47022 };
47023 GridCoreCreator.prototype.dispatchGridReadyEvent = function (beans) {
47024 var readyEvent = {
47025 type: _events__WEBPACK_IMPORTED_MODULE_27__["Events"].EVENT_GRID_READY,
47026 };
47027 beans.eventService.dispatchEvent(readyEvent);
47028 };
47029 return GridCoreCreator;
47030}());
47031
47032
47033
47034/***/ }),
47035/* 207 */
47036/***/ (function(module, __webpack_exports__, __webpack_require__) {
47037
47038"use strict";
47039__webpack_require__.r(__webpack_exports__);
47040/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionService", function() { return SelectionService; });
47041/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
47042/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
47043/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
47044/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(183);
47045/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12);
47046/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
47047/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(39);
47048/**
47049 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
47050 * @version v29.2.0
47051 * @link https://www.ag-grid.com/
47052 * @license MIT
47053 */
47054var __extends = (undefined && undefined.__extends) || (function () {
47055 var extendStatics = function (d, b) {
47056 extendStatics = Object.setPrototypeOf ||
47057 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47058 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
47059 return extendStatics(d, b);
47060 };
47061 return function (d, b) {
47062 extendStatics(d, b);
47063 function __() { this.constructor = d; }
47064 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47065 };
47066})();
47067var __assign = (undefined && undefined.__assign) || function () {
47068 __assign = Object.assign || function(t) {
47069 for (var s, i = 1, n = arguments.length; i < n; i++) {
47070 s = arguments[i];
47071 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
47072 t[p] = s[p];
47073 }
47074 return t;
47075 };
47076 return __assign.apply(this, arguments);
47077};
47078var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47079 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47080 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47081 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;
47082 return c > 3 && r && Object.defineProperty(target, key, r), r;
47083};
47084var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
47085 return function (target, key) { decorator(target, key, paramIndex); }
47086};
47087var __read = (undefined && undefined.__read) || function (o, n) {
47088 var m = typeof Symbol === "function" && o[Symbol.iterator];
47089 if (!m) return o;
47090 var i = m.call(o), r, ar = [], e;
47091 try {
47092 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
47093 }
47094 catch (error) { e = { error: error }; }
47095 finally {
47096 try {
47097 if (r && !r.done && (m = i["return"])) m.call(i);
47098 }
47099 finally { if (e) throw e.error; }
47100 }
47101 return ar;
47102};
47103
47104
47105
47106
47107
47108
47109
47110
47111
47112
47113var SelectionService = /** @class */ (function (_super) {
47114 __extends(SelectionService, _super);
47115 function SelectionService() {
47116 return _super !== null && _super.apply(this, arguments) || this;
47117 }
47118 SelectionService.prototype.setBeans = function (loggerFactory) {
47119 this.logger = loggerFactory.create('selectionService');
47120 this.reset();
47121 };
47122 SelectionService.prototype.init = function () {
47123 var _this = this;
47124 this.groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');
47125 this.addManagedPropertyListener('groupSelectsChildren', function (propChange) { return _this.groupSelectsChildren = propChange.currentValue; });
47126 this.rowSelection = this.gridOptionsService.get('rowSelection');
47127 this.addManagedPropertyListener('rowSelection', function (propChange) { return _this.rowSelection = propChange.currentValue; });
47128 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_SELECTED, this.onRowSelected.bind(this));
47129 };
47130 SelectionService.prototype.isMultiselect = function () {
47131 return this.rowSelection === 'multiple';
47132 };
47133 SelectionService.prototype.setNodeSelected = function (params) {
47134 var _a;
47135 var newValue = params.newValue, clearSelection = params.clearSelection, suppressFinishActions = params.suppressFinishActions, rangeSelect = params.rangeSelect, event = params.event, node = params.node, _b = params.source, source = _b === void 0 ? 'api' : _b;
47136 // groupSelectsFiltered only makes sense when group selects children
47137 var groupSelectsFiltered = this.groupSelectsChildren && (params.groupSelectsFiltered === true);
47138 if (node.id === undefined) {
47139 console.warn('AG Grid: cannot select node until id for node is known');
47140 return 0;
47141 }
47142 if (node.rowPinned) {
47143 console.warn('AG Grid: cannot select pinned rows');
47144 return 0;
47145 }
47146 // if we are a footer, we don't do selection, just pass the info
47147 // to the sibling (the parent of the group)
47148 if (node.footer) {
47149 return this.setNodeSelected(__assign(__assign({}, params), { node: node.sibling }));
47150 }
47151 var lastSelectedNode = this.getLastSelectedNode();
47152 if (rangeSelect && lastSelectedNode) {
47153 var newRowClicked = lastSelectedNode !== node;
47154 if (newRowClicked && this.isMultiselect()) {
47155 var nodesChanged = this.selectRange(node, lastSelectedNode, params.newValue, source);
47156 this.setLastSelectedNode(node);
47157 return nodesChanged;
47158 }
47159 }
47160 // when groupSelectsFiltered, then this node may end up intermediate despite
47161 // trying to set it to true / false. this group will be calculated further on
47162 // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it
47163 // here, otherwise the updatedCount would include it.
47164 var skipThisNode = groupSelectsFiltered && node.group;
47165 var updatedCount = 0;
47166 if (!skipThisNode) {
47167 var thisNodeWasSelected = node.selectThisNode(newValue, params.event, source);
47168 if (thisNodeWasSelected) {
47169 updatedCount++;
47170 }
47171 }
47172 if (this.groupSelectsChildren && ((_a = node.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {
47173 updatedCount += this.selectChildren(node, newValue, groupSelectsFiltered, source);
47174 }
47175 // clear other nodes if not doing multi select
47176 if (!suppressFinishActions) {
47177 var clearOtherNodes = newValue && (clearSelection || !this.isMultiselect());
47178 if (clearOtherNodes) {
47179 updatedCount += this.clearOtherNodes(node, source);
47180 }
47181 // only if we selected something, then update groups and fire events
47182 if (updatedCount > 0) {
47183 this.updateGroupsFromChildrenSelections(source);
47184 // this is the very end of the 'action node', so we are finished all the updates,
47185 // include any parent / child changes that this method caused
47186 var event_1 = {
47187 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
47188 source: source
47189 };
47190 this.eventService.dispatchEvent(event_1);
47191 }
47192 // so if user next does shift-select, we know where to start the selection from
47193 if (newValue) {
47194 this.setLastSelectedNode(node);
47195 }
47196 }
47197 return updatedCount;
47198 };
47199 // selects all rows between this node and the last selected node (or the top if this is the first selection).
47200 // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by
47201 // holding down 'shift'.
47202 SelectionService.prototype.selectRange = function (fromNode, toNode, value, source) {
47203 var _this = this;
47204 if (value === void 0) { value = true; }
47205 var nodesToSelect = this.rowModel.getNodesInRangeForSelection(fromNode, toNode);
47206 var updatedCount = 0;
47207 nodesToSelect.forEach(function (rowNode) {
47208 if (rowNode.group && _this.groupSelectsChildren || (value === false && fromNode === rowNode)) {
47209 return;
47210 }
47211 var nodeWasSelected = rowNode.selectThisNode(value, undefined, source);
47212 if (nodeWasSelected) {
47213 updatedCount++;
47214 }
47215 });
47216 this.updateGroupsFromChildrenSelections(source);
47217 var event = {
47218 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
47219 source: source
47220 };
47221 this.eventService.dispatchEvent(event);
47222 return updatedCount;
47223 };
47224 SelectionService.prototype.selectChildren = function (node, newValue, groupSelectsFiltered, source) {
47225 var children = groupSelectsFiltered ? node.childrenAfterAggFilter : node.childrenAfterGroup;
47226 if (_utils__WEBPACK_IMPORTED_MODULE_6__["_"].missing(children)) {
47227 return 0;
47228 }
47229 var updatedCount = 0;
47230 for (var i = 0; i < children.length; i++) {
47231 updatedCount += children[i].setSelectedParams({
47232 newValue: newValue,
47233 clearSelection: false,
47234 suppressFinishActions: true,
47235 groupSelectsFiltered: groupSelectsFiltered,
47236 source: source
47237 });
47238 }
47239 return updatedCount;
47240 };
47241 SelectionService.prototype.setLastSelectedNode = function (rowNode) {
47242 this.lastSelectedNode = rowNode;
47243 };
47244 SelectionService.prototype.getLastSelectedNode = function () {
47245 return this.lastSelectedNode;
47246 };
47247 SelectionService.prototype.getSelectedNodes = function () {
47248 var selectedNodes = [];
47249 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
47250 if (rowNode) {
47251 selectedNodes.push(rowNode);
47252 }
47253 });
47254 return selectedNodes;
47255 };
47256 SelectionService.prototype.getSelectedRows = function () {
47257 var selectedRows = [];
47258 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(this.selectedNodes, function (key, rowNode) {
47259 if (rowNode && rowNode.data) {
47260 selectedRows.push(rowNode.data);
47261 }
47262 });
47263 return selectedRows;
47264 };
47265 SelectionService.prototype.getSelectionCount = function () {
47266 return Object.values(this.selectedNodes).length;
47267 };
47268 /**
47269 * This method is used by the CSRM to remove groups which are being disposed of,
47270 * events do not need fired in this case
47271 */
47272 SelectionService.prototype.filterFromSelection = function (predicate) {
47273 var newSelectedNodes = {};
47274 Object.entries(this.selectedNodes).forEach(function (_a) {
47275 var _b = __read(_a, 2), key = _b[0], node = _b[1];
47276 var passesPredicate = node && predicate(node);
47277 if (passesPredicate) {
47278 newSelectedNodes[key] = node;
47279 }
47280 });
47281 this.selectedNodes = newSelectedNodes;
47282 };
47283 // should only be called if groupSelectsChildren=true
47284 SelectionService.prototype.updateGroupsFromChildrenSelections = function (source, changedPath) {
47285 // we only do this when group selection state depends on selected children
47286 if (!this.groupSelectsChildren) {
47287 return false;
47288 }
47289 // also only do it if CSRM (code should never allow this anyway)
47290 if (this.rowModel.getType() !== 'clientSide') {
47291 return false;
47292 }
47293 var clientSideRowModel = this.rowModel;
47294 var rootNode = clientSideRowModel.getRootNode();
47295 if (!changedPath) {
47296 changedPath = new _utils_changedPath__WEBPACK_IMPORTED_MODULE_3__["ChangedPath"](true, rootNode);
47297 changedPath.setInactive();
47298 }
47299 var selectionChanged = false;
47300 changedPath.forEachChangedNodeDepthFirst(function (rowNode) {
47301 if (rowNode !== rootNode) {
47302 var selected = rowNode.calculateSelectedFromChildren();
47303 selectionChanged = rowNode.selectThisNode(selected === null ? false : selected, undefined, source) || selectionChanged;
47304 }
47305 });
47306 return selectionChanged;
47307 };
47308 SelectionService.prototype.clearOtherNodes = function (rowNodeToKeepSelected, source) {
47309 var _this = this;
47310 var groupsToRefresh = {};
47311 var updatedCount = 0;
47312 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(this.selectedNodes, function (key, otherRowNode) {
47313 if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {
47314 var rowNode = _this.selectedNodes[otherRowNode.id];
47315 updatedCount += rowNode.setSelectedParams({
47316 newValue: false,
47317 clearSelection: false,
47318 suppressFinishActions: true,
47319 source: source
47320 });
47321 if (_this.groupSelectsChildren && otherRowNode.parent) {
47322 groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;
47323 }
47324 }
47325 });
47326 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(groupsToRefresh, function (key, group) {
47327 var selected = group.calculateSelectedFromChildren();
47328 group.selectThisNode(selected === null ? false : selected, undefined, source);
47329 });
47330 return updatedCount;
47331 };
47332 SelectionService.prototype.onRowSelected = function (event) {
47333 var rowNode = event.node;
47334 // we do not store the group rows when the groups select children
47335 if (this.groupSelectsChildren && rowNode.group) {
47336 return;
47337 }
47338 if (rowNode.isSelected()) {
47339 this.selectedNodes[rowNode.id] = rowNode;
47340 }
47341 else {
47342 this.selectedNodes[rowNode.id] = undefined;
47343 }
47344 };
47345 SelectionService.prototype.syncInRowNode = function (rowNode, oldNode) {
47346 this.syncInOldRowNode(rowNode, oldNode);
47347 this.syncInNewRowNode(rowNode);
47348 };
47349 // if the id has changed for the node, then this means the rowNode
47350 // is getting used for a different data item, which breaks
47351 // our selectedNodes, as the node now is mapped by the old id
47352 // which is inconsistent. so to keep the old node as selected,
47353 // we swap in the clone (with the old id and old data). this means
47354 // the oldNode is effectively a daemon we keep a reference to,
47355 // so if client calls api.getSelectedNodes(), it gets the daemon
47356 // in the result. when the client un-selects, the reference to the
47357 // daemon is removed. the daemon, because it's an oldNode, is not
47358 // used by the grid for rendering, it's a copy of what the node used
47359 // to be like before the id was changed.
47360 SelectionService.prototype.syncInOldRowNode = function (rowNode, oldNode) {
47361 var oldNodeHasDifferentId = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(oldNode) && (rowNode.id !== oldNode.id);
47362 if (oldNodeHasDifferentId && oldNode) {
47363 var id = oldNode.id;
47364 var oldNodeSelected = this.selectedNodes[id] == rowNode;
47365 if (oldNodeSelected) {
47366 this.selectedNodes[oldNode.id] = oldNode;
47367 }
47368 }
47369 };
47370 SelectionService.prototype.syncInNewRowNode = function (rowNode) {
47371 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.selectedNodes[rowNode.id])) {
47372 rowNode.setSelectedInitialValue(true);
47373 this.selectedNodes[rowNode.id] = rowNode;
47374 }
47375 else {
47376 rowNode.setSelectedInitialValue(false);
47377 }
47378 };
47379 SelectionService.prototype.reset = function () {
47380 this.logger.log('reset');
47381 this.selectedNodes = {};
47382 this.lastSelectedNode = null;
47383 };
47384 // returns a list of all nodes at 'best cost' - a feature to be used
47385 // with groups / trees. if a group has all it's children selected,
47386 // then the group appears in the result, but not the children.
47387 // Designed for use with 'children' as the group selection type,
47388 // where groups don't actually appear in the selection normally.
47389 SelectionService.prototype.getBestCostNodeSelection = function () {
47390 if (this.rowModel.getType() !== 'clientSide') {
47391 // Error logged as part of gridApi as that is only call point for this method.
47392 return;
47393 }
47394 var clientSideRowModel = this.rowModel;
47395 var topLevelNodes = clientSideRowModel.getTopLevelNodes();
47396 if (topLevelNodes === null) {
47397 return;
47398 }
47399 var result = [];
47400 // recursive function, to find the selected nodes
47401 function traverse(nodes) {
47402 for (var i = 0, l = nodes.length; i < l; i++) {
47403 var node = nodes[i];
47404 if (node.isSelected()) {
47405 result.push(node);
47406 }
47407 else {
47408 // if not selected, then if it's a group, and the group
47409 // has children, continue to search for selections
47410 var maybeGroup = node;
47411 if (maybeGroup.group && maybeGroup.children) {
47412 traverse(maybeGroup.children);
47413 }
47414 }
47415 }
47416 }
47417 traverse(topLevelNodes);
47418 return result;
47419 };
47420 SelectionService.prototype.isEmpty = function () {
47421 var count = 0;
47422 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(this.selectedNodes, function (nodeId, rowNode) {
47423 if (rowNode) {
47424 count++;
47425 }
47426 });
47427 return count === 0;
47428 };
47429 SelectionService.prototype.deselectAllRowNodes = function (params) {
47430 var callback = function (rowNode) { return rowNode.selectThisNode(false, undefined, source); };
47431 var rowModelClientSide = this.rowModel.getType() === 'clientSide';
47432 var source = params.source, justFiltered = params.justFiltered, justCurrentPage = params.justCurrentPage;
47433 if (justCurrentPage || justFiltered) {
47434 if (!rowModelClientSide) {
47435 console.error("AG Grid: selecting just filtered only works when gridOptions.rowModelType='clientSide'");
47436 return;
47437 }
47438 this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);
47439 }
47440 else {
47441 Object(_utils_object__WEBPACK_IMPORTED_MODULE_4__["iterateObject"])(this.selectedNodes, function (id, rowNode) {
47442 // remember the reference can be to null, as we never 'delete' from the map
47443 if (rowNode) {
47444 callback(rowNode);
47445 }
47446 });
47447 // this clears down the map (whereas above only sets the items in map to 'undefined')
47448 this.reset();
47449 }
47450 // the above does not clean up the parent rows if they are selected
47451 if (rowModelClientSide && this.groupSelectsChildren) {
47452 this.updateGroupsFromChildrenSelections(source);
47453 }
47454 var event = {
47455 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
47456 source: source
47457 };
47458 this.eventService.dispatchEvent(event);
47459 };
47460 SelectionService.prototype.getSelectAllState = function (justFiltered, justCurrentPage) {
47461 var _this = this;
47462 var selectedCount = 0;
47463 var notSelectedCount = 0;
47464 var callback = function (node) {
47465 if (_this.groupSelectsChildren && node.group) {
47466 return;
47467 }
47468 if (node.isSelected()) {
47469 selectedCount++;
47470 }
47471 else if (!node.selectable) {
47472 // don't count non-selectable nodes!
47473 }
47474 else {
47475 notSelectedCount++;
47476 }
47477 };
47478 this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);
47479 // if no rows, always have it unselected
47480 if (selectedCount === 0 && notSelectedCount === 0) {
47481 return false;
47482 }
47483 // if mix of selected and unselected, this is indeterminate
47484 if (selectedCount > 0 && notSelectedCount > 0) {
47485 return null;
47486 }
47487 // only selected
47488 return selectedCount > 0;
47489 };
47490 /**
47491 * @param justFiltered whether to just include nodes which have passed the filter
47492 * @param justCurrentPage whether to just include nodes on the current page
47493 * @returns all nodes including unselectable nodes which are the target of this selection attempt
47494 */
47495 SelectionService.prototype.getNodesToSelect = function (justFiltered, justCurrentPage) {
47496 var _this = this;
47497 if (justFiltered === void 0) { justFiltered = false; }
47498 if (justCurrentPage === void 0) { justCurrentPage = false; }
47499 if (this.rowModel.getType() !== 'clientSide') {
47500 throw new Error("selectAll only available when rowModelType='clientSide', ie not " + this.rowModel.getType());
47501 }
47502 var nodes = [];
47503 if (justCurrentPage) {
47504 this.paginationProxy.forEachNodeOnPage(function (node) {
47505 if (!node.group) {
47506 nodes.push(node);
47507 return;
47508 }
47509 if (!node.expanded) {
47510 // even with groupSelectsChildren, do this recursively as only the filtered children
47511 // are considered as the current page
47512 var recursivelyAddChildren_1 = function (child) {
47513 var _a;
47514 nodes.push(child);
47515 if ((_a = child.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.length) {
47516 child.childrenAfterFilter.forEach(recursivelyAddChildren_1);
47517 }
47518 };
47519 recursivelyAddChildren_1(node);
47520 return;
47521 }
47522 // if the group node is expanded, the pagination proxy will include the visible nodes to select
47523 if (!_this.groupSelectsChildren) {
47524 nodes.push(node);
47525 }
47526 });
47527 return nodes;
47528 }
47529 var clientSideRowModel = this.rowModel;
47530 if (justFiltered) {
47531 clientSideRowModel.forEachNodeAfterFilter(function (node) {
47532 nodes.push(node);
47533 });
47534 return nodes;
47535 }
47536 clientSideRowModel.forEachNode(function (node) {
47537 nodes.push(node);
47538 });
47539 return nodes;
47540 };
47541 SelectionService.prototype.selectAllRowNodes = function (params) {
47542 if (this.rowModel.getType() !== 'clientSide') {
47543 throw new Error("selectAll only available when rowModelType='clientSide', ie not " + this.rowModel.getType());
47544 }
47545 var source = params.source, justFiltered = params.justFiltered, justCurrentPage = params.justCurrentPage;
47546 var callback = function (rowNode) { return rowNode.selectThisNode(true, undefined, source); };
47547 this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);
47548 // the above does not clean up the parent rows if they are selected
47549 if (this.rowModel.getType() === 'clientSide' && this.groupSelectsChildren) {
47550 this.updateGroupsFromChildrenSelections(source);
47551 }
47552 var event = {
47553 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SELECTION_CHANGED,
47554 source: source
47555 };
47556 this.eventService.dispatchEvent(event);
47557 };
47558 // Used by SSRM
47559 SelectionService.prototype.getServerSideSelectionState = function () {
47560 return null;
47561 };
47562 SelectionService.prototype.setServerSideSelectionState = function (state) { };
47563 __decorate([
47564 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
47565 ], SelectionService.prototype, "rowModel", void 0);
47566 __decorate([
47567 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
47568 ], SelectionService.prototype, "paginationProxy", void 0);
47569 __decorate([
47570 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
47571 ], SelectionService.prototype, "setBeans", null);
47572 __decorate([
47573 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
47574 ], SelectionService.prototype, "init", null);
47575 SelectionService = __decorate([
47576 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('selectionService')
47577 ], SelectionService);
47578 return SelectionService;
47579}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
47580
47581
47582
47583/***/ }),
47584/* 208 */
47585/***/ (function(module, __webpack_exports__, __webpack_require__) {
47586
47587"use strict";
47588__webpack_require__.r(__webpack_exports__);
47589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return ColumnApi; });
47590/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
47591/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39);
47592/* harmony import */ var _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22);
47593/**
47594 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
47595 * @version v29.2.0
47596 * @link https://www.ag-grid.com/
47597 * @license MIT
47598 */
47599var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47600 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47601 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47602 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;
47603 return c > 3 && r && Object.defineProperty(target, key, r), r;
47604};
47605
47606
47607
47608var ColumnApi = /** @class */ (function () {
47609 function ColumnApi() {
47610 }
47611 /** Gets the grid to size the columns to the specified width in pixels, e.g. `sizeColumnsToFit(900)`. To have the grid fit the columns to the grid's width, use the Grid API `gridApi.sizeColumnsToFit()` instead. */
47612 ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {
47613 // AG-3403 validate that gridWidth is provided because this method has the same name as
47614 // a method on the grid API that takes no arguments, and it's easy to confuse the two
47615 if (typeof gridWidth === "undefined") {
47616 console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');
47617 }
47618 this.columnModel.sizeColumnsToFit(gridWidth, 'api');
47619 };
47620 /** Call this if you want to open or close a column group. */
47621 ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnModel.setColumnGroupOpened(group, newValue, 'api'); };
47622 /** Returns the column group with the given name. */
47623 ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnModel.getColumnGroup(name, instanceId); };
47624 /** Returns the provided column group with the given name. */
47625 ColumnApi.prototype.getProvidedColumnGroup = function (name) { return this.columnModel.getProvidedColumnGroup(name); };
47626 /** Returns the display name for a column. Useful if you are doing your own header rendering and want the grid to work out if `headerValueGetter` is used, or if you are doing your own column management GUI, to know what to show as the column name. */
47627 ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnModel.getDisplayNameForColumn(column, location) || ''; };
47628 /** Returns the display name for a column group (when grouping columns). */
47629 ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnModel.getDisplayNameForColumnGroup(columnGroup, location) || ''; };
47630 /** Returns the column with the given `colKey`, which can either be the `colId` (a string) or the `colDef` (an object). */
47631 ColumnApi.prototype.getColumn = function (key) { return this.columnModel.getPrimaryColumn(key); };
47632 /** Returns all the columns, regardless of visible or not. */
47633 ColumnApi.prototype.getColumns = function () { return this.columnModel.getAllPrimaryColumns(); };
47634 /** Applies the state of the columns from a previous state. Returns `false` if one or more columns could not be found. */
47635 ColumnApi.prototype.applyColumnState = function (params) { return this.columnModel.applyColumnState(params, 'api'); };
47636 /** Gets the state of the columns. Typically used when saving column state. */
47637 ColumnApi.prototype.getColumnState = function () { return this.columnModel.getColumnState(); };
47638 /** Sets the state back to match the originally provided column definitions. */
47639 ColumnApi.prototype.resetColumnState = function () { this.columnModel.resetColumnState('api'); };
47640 /** Gets the state of the column groups. Typically used when saving column group state. */
47641 ColumnApi.prototype.getColumnGroupState = function () { return this.columnModel.getColumnGroupState(); };
47642 /** Sets the state of the column group state from a previous state. */
47643 ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnModel.setColumnGroupState(stateItems, 'api'); };
47644 /** Sets the state back to match the originally provided column definitions. */
47645 ColumnApi.prototype.resetColumnGroupState = function () { this.columnModel.resetColumnGroupState('api'); };
47646 /** Returns `true` if pinning left or right, otherwise `false`. */
47647 ColumnApi.prototype.isPinning = function () { return this.columnModel.isPinningLeft() || this.columnModel.isPinningRight(); };
47648 /** Returns `true` if pinning left, otherwise `false`. */
47649 ColumnApi.prototype.isPinningLeft = function () { return this.columnModel.isPinningLeft(); };
47650 /** Returns `true` if pinning right, otherwise `false`. */
47651 ColumnApi.prototype.isPinningRight = function () { return this.columnModel.isPinningRight(); };
47652 /** Returns the column to the right of the provided column, taking into consideration open / closed column groups and visible columns. This is useful if you need to know what column is beside yours e.g. if implementing your own cell navigation. */
47653 ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnModel.getDisplayedColAfter(col); };
47654 /** Same as `getVisibleColAfter` except gives column to the left. */
47655 ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnModel.getDisplayedColBefore(col); };
47656 /** Sets the visibility of a column. Key can be the column ID or `Column` object. */
47657 ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnModel.setColumnVisible(key, visible, 'api'); };
47658 /** Same as `setColumnVisible`, but provide a list of column keys. */
47659 ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnModel.setColumnsVisible(keys, visible, 'api'); };
47660 /** Sets the column pinned / unpinned. Key can be the column ID, field, `ColDef` object or `Column` object. */
47661 ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnModel.setColumnPinned(key, pinned, 'api'); };
47662 /** Same as `setColumnPinned`, but provide a list of column keys. */
47663 ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnModel.setColumnsPinned(keys, pinned, 'api'); };
47664 /**
47665 * Returns all the grid columns, same as `getColumns()`, except
47666 *
47667 * a) it has the order of the columns that are presented in the grid
47668 *
47669 * b) it's after the 'pivot' step, so if pivoting, has the value columns for the pivot.
47670 */
47671 ColumnApi.prototype.getAllGridColumns = function () { return this.columnModel.getAllGridColumns(); };
47672 /** Same as `getAllDisplayedColumns` but just for the pinned left portion of the grid. */
47673 ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnModel.getDisplayedLeftColumns(); };
47674 /** Same as `getAllDisplayedColumns` but just for the center portion of the grid. */
47675 ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnModel.getDisplayedCenterColumns(); };
47676 /** Same as `getAllDisplayedColumns` but just for the pinned right portion of the grid. */
47677 ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnModel.getDisplayedRightColumns(); };
47678 /** Returns all columns currently displayed (e.g. are visible and if in a group, the group is showing the columns) for the pinned left, centre and pinned right portions of the grid. */
47679 ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnModel.getAllDisplayedColumns(); };
47680 /** Same as `getAllGridColumns()`, except only returns rendered columns, i.e. columns that are not within the viewport and therefore not rendered, due to column virtualisation, are not displayed. */
47681 ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnModel.getViewportColumns(); };
47682 /** Moves a column to `toIndex`. The column is first removed, then added at the `toIndex` location, thus index locations will change to the right of the column after the removal. */
47683 ColumnApi.prototype.moveColumn = function (key, toIndex) {
47684 this.columnModel.moveColumn(key, toIndex, 'api');
47685 };
47686 /** Same as `moveColumn` but works on index locations. */
47687 ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnModel.moveColumnByIndex(fromIndex, toIndex, 'api'); };
47688 /** Same as `moveColumn` but works on list. */
47689 ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnModel.moveColumns(columnsToMoveKeys, toIndex, 'api'); };
47690 /** Move the column to a new position in the row grouping order. */
47691 ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnModel.moveRowGroupColumn(fromIndex, toIndex); };
47692 /** Sets the agg function for a column. `aggFunc` can be one of the built-in aggregations or a custom aggregation by name or direct function. */
47693 ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnModel.setColumnAggFunc(key, aggFunc); };
47694 /** Sets the column width on a single column. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */
47695 ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished, source) {
47696 if (finished === void 0) { finished = true; }
47697 this.columnModel.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished, source);
47698 };
47699 /** Sets the column widths on multiple columns. This method offers better performance than calling `setColumnWidth` multiple times. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */
47700 ColumnApi.prototype.setColumnWidths = function (columnWidths, finished, source) {
47701 if (finished === void 0) { finished = true; }
47702 this.columnModel.setColumnWidths(columnWidths, false, finished, source);
47703 };
47704 /** Set the pivot mode. */
47705 ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnModel.setPivotMode(pivotMode); };
47706 /** Get the pivot mode. */
47707 ColumnApi.prototype.isPivotMode = function () { return this.columnModel.isPivotMode(); };
47708 /** Returns the pivot result column for the given `pivotKeys` and `valueColId`. Useful to then call operations on the pivot column. */
47709 ColumnApi.prototype.getPivotResultColumn = function (pivotKeys, valueColKey) { return this.columnModel.getSecondaryPivotColumn(pivotKeys, valueColKey); };
47710 /** Set the value columns to the provided list of columns. */
47711 ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnModel.setValueColumns(colKeys, 'api'); };
47712 /** Get a list of the existing value columns. */
47713 ColumnApi.prototype.getValueColumns = function () { return this.columnModel.getValueColumns(); };
47714 /** Remove the given column from the existing set of value columns. */
47715 ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnModel.removeValueColumn(colKey, 'api'); };
47716 /** Like `removeValueColumn` but remove the given list of columns from the existing set of value columns. */
47717 ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnModel.removeValueColumns(colKeys, 'api'); };
47718 /** Add the given column to the set of existing value columns. */
47719 ColumnApi.prototype.addValueColumn = function (colKey) { this.columnModel.addValueColumn(colKey, 'api'); };
47720 /** Like `addValueColumn` but add the given list of columns to the existing set of value columns. */
47721 ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnModel.addValueColumns(colKeys, 'api'); };
47722 /** Set the row group columns. */
47723 ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnModel.setRowGroupColumns(colKeys, 'api'); };
47724 /** Remove a column from the row groups. */
47725 ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnModel.removeRowGroupColumn(colKey, 'api'); };
47726 /** Same as `removeRowGroupColumn` but provide a list of columns. */
47727 ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnModel.removeRowGroupColumns(colKeys, 'api'); };
47728 /** Add a column to the row groups. */
47729 ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnModel.addRowGroupColumn(colKey, 'api'); };
47730 /** Same as `addRowGroupColumn` but provide a list of columns. */
47731 ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnModel.addRowGroupColumns(colKeys, 'api'); };
47732 /** Get row group columns. */
47733 ColumnApi.prototype.getRowGroupColumns = function () { return this.columnModel.getRowGroupColumns(); };
47734 /** Set the pivot columns. */
47735 ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnModel.setPivotColumns(colKeys, 'api'); };
47736 /** Remove a pivot column. */
47737 ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnModel.removePivotColumn(colKey, 'api'); };
47738 /** Same as `removePivotColumn` but provide a list of columns. */
47739 ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnModel.removePivotColumns(colKeys, 'api'); };
47740 /** Add a pivot column. */
47741 ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnModel.addPivotColumn(colKey, 'api'); };
47742 /** Same as `addPivotColumn` but provide a list of columns. */
47743 ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnModel.addPivotColumns(colKeys, 'api'); };
47744 /** Get the pivot columns. */
47745 ColumnApi.prototype.getPivotColumns = function () { return this.columnModel.getPivotColumns(); };
47746 /** Same as `getAllDisplayedColumnGroups` but just for the pinned left portion of the grid. */
47747 ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeLeft(); };
47748 /** Same as `getAllDisplayedColumnGroups` but just for the center portion of the grid. */
47749 ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeCentre(); };
47750 /** Same as `getAllDisplayedColumnGroups` but just for the pinned right portion of the grid. */
47751 ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeRight(); };
47752 /** Returns all 'root' column headers. If you are not grouping columns, these return the columns. If you are grouping, these return the top level groups - you can navigate down through each one to get the other lower level headers and finally the columns at the bottom. */
47753 ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnModel.getAllDisplayedTrees(); };
47754 /** Auto-sizes a column based on its contents. */
47755 ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnModel.autoSizeColumn(key, skipHeader, 'api'); };
47756 /** Same as `autoSizeColumn`, but provide a list of column keys. */
47757 ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) {
47758 this.columnModel.autoSizeColumns({ columns: keys, skipHeader: skipHeader });
47759 };
47760 /** Calls `autoSizeColumns` on all displayed columns. */
47761 ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnModel.autoSizeAllColumns(skipHeader, 'api'); };
47762 /** Set the pivot result columns. */
47763 ColumnApi.prototype.setPivotResultColumns = function (colDefs) { this.columnModel.setSecondaryColumns(colDefs, 'api'); };
47764 /** Returns the grid's pivot result columns. */
47765 ColumnApi.prototype.getPivotResultColumns = function () { return this.columnModel.getSecondaryColumns(); };
47766 ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {
47767 // some users were raising support issues with regards memory leaks. the problem was the customers applications
47768 // were keeping references to the API. trying to educate them all would be difficult, easier to just remove
47769 // all references in the API so at least the core grid can be garbage collected.
47770 //
47771 // wait about 100ms before clearing down the references, in case user has some cleanup to do,
47772 // and needs to deference the API first
47773 setTimeout(_utils__WEBPACK_IMPORTED_MODULE_1__["_"].removeAllReferences.bind(window, this, 'Column API'), 100);
47774 };
47775 /** @deprecated v28 Use `getColumns` instead */
47776 ColumnApi.prototype.getAllColumns = function () {
47777 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__["logDeprecation"])('28.0', 'getAllColumns', 'getColumns');
47778 return this.getColumns();
47779 };
47780 /** @deprecated v27 getOriginalColumnGroup is deprecated, use getProvidedColumnGroup. */
47781 ColumnApi.prototype.getOriginalColumnGroup = function (name) {
47782 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__["logDeprecation"])('27.0', 'getOriginalColumnGroup', 'getProvidedColumnGroup');
47783 return this.columnModel.getProvidedColumnGroup(name);
47784 };
47785 /** @deprecated v28 Use `getColumns` instead. */
47786 ColumnApi.prototype.getPrimaryColumns = function () {
47787 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__["logDeprecation"])('28.0', 'getPrimaryColumns', 'getColumns');
47788 return this.getColumns();
47789 };
47790 /** @deprecated v28 Use `getPivotResultColumns` instead. */
47791 ColumnApi.prototype.getSecondaryColumns = function () {
47792 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__["logDeprecation"])('28.0', 'getSecondaryColumns', 'getPivotResultColumns');
47793 return this.getPivotResultColumns();
47794 };
47795 /** @deprecated v28 Use `setPivotResultColumns` instead. */
47796 ColumnApi.prototype.setSecondaryColumns = function (colDefs) {
47797 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__["logDeprecation"])('28.0', 'setSecondaryColumns', 'setPivotResultColumns');
47798 this.setPivotResultColumns(colDefs);
47799 };
47800 /** @deprecated v28 Use `getPivotResultColumn` instead */
47801 ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {
47802 Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_2__["logDeprecation"])('28.0', 'getSecondaryPivotColumn', 'getPivotResultColumn');
47803 return this.getPivotResultColumn(pivotKeys, valueColKey);
47804 };
47805 __decorate([
47806 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
47807 ], ColumnApi.prototype, "columnModel", void 0);
47808 __decorate([
47809 _context_context__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
47810 ], ColumnApi.prototype, "cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid", null);
47811 ColumnApi = __decorate([
47812 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnApi')
47813 ], ColumnApi);
47814 return ColumnApi;
47815}());
47816
47817
47818
47819/***/ }),
47820/* 209 */
47821/***/ (function(module, __webpack_exports__, __webpack_require__) {
47822
47823"use strict";
47824__webpack_require__.r(__webpack_exports__);
47825/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return ValueService; });
47826/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
47827/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
47828/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
47829/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
47830/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);
47831/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13);
47832/**
47833 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
47834 * @version v29.2.0
47835 * @link https://www.ag-grid.com/
47836 * @license MIT
47837 */
47838var __extends = (undefined && undefined.__extends) || (function () {
47839 var extendStatics = function (d, b) {
47840 extendStatics = Object.setPrototypeOf ||
47841 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
47842 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
47843 return extendStatics(d, b);
47844 };
47845 return function (d, b) {
47846 extendStatics(d, b);
47847 function __() { this.constructor = d; }
47848 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
47849 };
47850})();
47851var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
47852 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
47853 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
47854 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;
47855 return c > 3 && r && Object.defineProperty(target, key, r), r;
47856};
47857
47858
47859
47860
47861
47862
47863var ValueService = /** @class */ (function (_super) {
47864 __extends(ValueService, _super);
47865 function ValueService() {
47866 var _this = _super !== null && _super.apply(this, arguments) || this;
47867 _this.initialised = false;
47868 return _this;
47869 }
47870 ValueService.prototype.init = function () {
47871 var _this = this;
47872 this.cellExpressions = this.gridOptionsService.is('enableCellExpressions');
47873 this.isTreeData = this.gridOptionsService.is('treeData');
47874 this.initialised = true;
47875 // We listen to our own event and use it to call the columnSpecific callback,
47876 // this way the handler calls are correctly interleaved with other global events
47877 this.eventService.addEventListener(_events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED, function (event) { return _this.callColumnCellValueChangedHandler(event); }, this.gridOptionsService.useAsyncEvents());
47878 this.addManagedPropertyListener('treeData', function (propChange) { return _this.isTreeData = propChange.currentValue; });
47879 };
47880 ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {
47881 if (forFilter === void 0) { forFilter = false; }
47882 if (ignoreAggData === void 0) { ignoreAggData = false; }
47883 // hack - the grid is getting refreshed before this bean gets initialised, race condition.
47884 // really should have a way so they get initialised in the right order???
47885 if (!this.initialised) {
47886 this.init();
47887 }
47888 if (!rowNode) {
47889 return;
47890 }
47891 // pull these out to make code below easier to read
47892 var colDef = column.getColDef();
47893 var field = colDef.field;
47894 var colId = column.getColId();
47895 var data = rowNode.data;
47896 var result;
47897 // if there is a value getter, this gets precedence over a field
47898 var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;
47899 var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;
47900 if (forFilter && colDef.filterValueGetter) {
47901 result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);
47902 }
47903 else if (this.isTreeData && aggDataExists) {
47904 result = rowNode.aggData[colId];
47905 }
47906 else if (this.isTreeData && colDef.valueGetter) {
47907 result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);
47908 }
47909 else if (this.isTreeData && (field && data)) {
47910 result = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getValueUsingField"])(data, field, column.isFieldContainsDots());
47911 }
47912 else if (groupDataExists) {
47913 result = rowNode.groupData[colId];
47914 }
47915 else if (aggDataExists) {
47916 result = rowNode.aggData[colId];
47917 }
47918 else if (colDef.valueGetter) {
47919 result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);
47920 }
47921 else if (field && data) {
47922 result = Object(_utils_object__WEBPACK_IMPORTED_MODULE_3__["getValueUsingField"])(data, field, column.isFieldContainsDots());
47923 }
47924 // the result could be an expression itself, if we are allowing cell values to be expressions
47925 if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {
47926 var cellValueGetter = result.substring(1);
47927 result = this.executeValueGetter(cellValueGetter, data, column, rowNode);
47928 }
47929 if (result == null) {
47930 var openedGroup = this.getOpenedGroup(rowNode, column);
47931 if (openedGroup != null) {
47932 return openedGroup;
47933 }
47934 }
47935 return result;
47936 };
47937 ValueService.prototype.getOpenedGroup = function (rowNode, column) {
47938 if (!this.gridOptionsService.is('showOpenedGroup')) {
47939 return;
47940 }
47941 var colDef = column.getColDef();
47942 if (!colDef.showRowGroup) {
47943 return;
47944 }
47945 var showRowGroup = column.getColDef().showRowGroup;
47946 var pointer = rowNode.parent;
47947 while (pointer != null) {
47948 if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getColId())) {
47949 return pointer.key;
47950 }
47951 pointer = pointer.parent;
47952 }
47953 return undefined;
47954 };
47955 /**
47956 * Sets the value of a GridCell
47957 * @param rowNode The `RowNode` to be updated
47958 * @param colKey The `Column` to be updated
47959 * @param newValue The new value to be set
47960 * @param eventSource The event source
47961 * @returns `True` if the value has been updated, otherwise`False`.
47962 */
47963 ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {
47964 var column = this.columnModel.getPrimaryColumn(colKey);
47965 if (!rowNode || !column) {
47966 return false;
47967 }
47968 // this will only happen if user is trying to paste into a group row, which doesn't make sense
47969 // the user should not be trying to paste into group rows
47970 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(rowNode.data)) {
47971 rowNode.data = {};
47972 }
47973 var _a = column.getColDef(), field = _a.field, valueSetter = _a.valueSetter;
47974 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(field) && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["missing"])(valueSetter)) {
47975 console.warn("AG Grid: you need either field or valueSetter set on colDef for editing to work");
47976 return false;
47977 }
47978 var params = {
47979 node: rowNode,
47980 data: rowNode.data,
47981 oldValue: this.getValue(column, rowNode),
47982 newValue: newValue,
47983 colDef: column.getColDef(),
47984 column: column,
47985 api: this.gridOptionsService.api,
47986 columnApi: this.gridOptionsService.columnApi,
47987 context: this.gridOptionsService.context
47988 };
47989 params.newValue = newValue;
47990 var valueWasDifferent;
47991 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_4__["exists"])(valueSetter)) {
47992 if (typeof valueSetter === 'function') {
47993 valueWasDifferent = valueSetter(params);
47994 }
47995 else {
47996 valueWasDifferent = this.expressionService.evaluate(valueSetter, params);
47997 }
47998 }
47999 else {
48000 valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());
48001 }
48002 // in case user forgot to return something (possible if they are not using TypeScript
48003 // and just forgot we default the return value to true, so we always refresh.
48004 if (valueWasDifferent === undefined) {
48005 valueWasDifferent = true;
48006 }
48007 // if no change to the value, then no need to do the updating, or notifying via events.
48008 // otherwise the user could be tabbing around the grid, and cellValueChange would get called
48009 // all the time.
48010 if (!valueWasDifferent) {
48011 return false;
48012 }
48013 // reset quick filter on this row
48014 rowNode.resetQuickFilterAggregateText();
48015 this.valueCache.onDataChanged();
48016 params.newValue = this.getValue(column, rowNode);
48017 var event = {
48018 type: _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED,
48019 event: null,
48020 rowIndex: rowNode.rowIndex,
48021 rowPinned: rowNode.rowPinned,
48022 column: params.column,
48023 api: params.api,
48024 columnApi: params.columnApi,
48025 colDef: params.colDef,
48026 context: params.context,
48027 data: rowNode.data,
48028 node: rowNode,
48029 oldValue: params.oldValue,
48030 newValue: params.newValue,
48031 value: params.newValue,
48032 source: eventSource
48033 };
48034 this.eventService.dispatchEvent(event);
48035 return true;
48036 };
48037 ValueService.prototype.callColumnCellValueChangedHandler = function (event) {
48038 var onCellValueChanged = event.colDef.onCellValueChanged;
48039 if (typeof onCellValueChanged === 'function') {
48040 onCellValueChanged({
48041 node: event.node,
48042 data: event.data,
48043 oldValue: event.oldValue,
48044 newValue: event.newValue,
48045 colDef: event.colDef,
48046 column: event.column,
48047 api: event.api,
48048 columnApi: event.columnApi,
48049 context: event.context
48050 });
48051 }
48052 };
48053 ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {
48054 if (!field) {
48055 return false;
48056 }
48057 // if no '.', then it's not a deep value
48058 var valuesAreSame = false;
48059 if (!isFieldContainsDots) {
48060 // soft comparison to match strings and numbers
48061 valuesAreSame = data[field] == newValue;
48062 if (!valuesAreSame) {
48063 data[field] = newValue;
48064 }
48065 }
48066 else {
48067 // otherwise it is a deep value, so need to dig for it
48068 var fieldPieces = field.split('.');
48069 var currentObject = data;
48070 while (fieldPieces.length > 0 && currentObject) {
48071 var fieldPiece = fieldPieces.shift();
48072 if (fieldPieces.length === 0) {
48073 // soft comparison to match strings and numbers
48074 valuesAreSame = currentObject[fieldPiece] == newValue;
48075 if (!valuesAreSame) {
48076 currentObject[fieldPiece] = newValue;
48077 }
48078 }
48079 else {
48080 currentObject = currentObject[fieldPiece];
48081 }
48082 }
48083 }
48084 return !valuesAreSame;
48085 };
48086 ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {
48087 var params = {
48088 data: data,
48089 node: rowNode,
48090 column: column,
48091 colDef: column.getColDef(),
48092 api: this.gridOptionsService.api,
48093 columnApi: this.gridOptionsService.columnApi,
48094 context: this.gridOptionsService.context,
48095 getValue: this.getValueCallback.bind(this, rowNode)
48096 };
48097 if (typeof valueGetter === 'function') {
48098 return valueGetter(params);
48099 }
48100 return this.expressionService.evaluate(valueGetter, params);
48101 };
48102 ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {
48103 var colId = column.getColId();
48104 // if inside the same turn, just return back the value we got last time
48105 var valueFromCache = this.valueCache.getValue(rowNode, colId);
48106 if (valueFromCache !== undefined) {
48107 return valueFromCache;
48108 }
48109 var params = {
48110 data: data,
48111 node: rowNode,
48112 column: column,
48113 colDef: column.getColDef(),
48114 api: this.gridOptionsService.api,
48115 columnApi: this.gridOptionsService.columnApi,
48116 context: this.gridOptionsService.context,
48117 getValue: this.getValueCallback.bind(this, rowNode)
48118 };
48119 var result;
48120 if (typeof valueGetter === 'function') {
48121 result = valueGetter(params);
48122 }
48123 else {
48124 result = this.expressionService.evaluate(valueGetter, params);
48125 }
48126 // if a turn is active, store the value in case the grid asks for it again
48127 this.valueCache.setValue(rowNode, colId, result);
48128 return result;
48129 };
48130 ValueService.prototype.getValueCallback = function (node, field) {
48131 var otherColumn = this.columnModel.getPrimaryColumn(field);
48132 if (otherColumn) {
48133 return this.getValue(otherColumn, node);
48134 }
48135 return null;
48136 };
48137 // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col
48138 ValueService.prototype.getKeyForNode = function (col, rowNode) {
48139 var value = this.getValue(col, rowNode);
48140 var keyCreator = col.getColDef().keyCreator;
48141 var result = value;
48142 if (keyCreator) {
48143 var keyParams = {
48144 value: value,
48145 colDef: col.getColDef(),
48146 column: col,
48147 node: rowNode,
48148 data: rowNode.data,
48149 api: this.gridOptionsService.api,
48150 columnApi: this.gridOptionsService.columnApi,
48151 context: this.gridOptionsService.context
48152 };
48153 result = keyCreator(keyParams);
48154 }
48155 // if already a string, or missing, just return it
48156 if (typeof result === 'string' || result == null) {
48157 return result;
48158 }
48159 result = String(result);
48160 if (result === '[object Object]') {
48161 Object(_utils_function__WEBPACK_IMPORTED_MODULE_5__["doOnce"])(function () {
48162 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');
48163 }, 'getKeyForNode - warn about [object,object]');
48164 }
48165 return result;
48166 };
48167 __decorate([
48168 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('expressionService')
48169 ], ValueService.prototype, "expressionService", void 0);
48170 __decorate([
48171 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
48172 ], ValueService.prototype, "columnModel", void 0);
48173 __decorate([
48174 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
48175 ], ValueService.prototype, "valueCache", void 0);
48176 __decorate([
48177 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
48178 ], ValueService.prototype, "init", null);
48179 ValueService = __decorate([
48180 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueService')
48181 ], ValueService);
48182 return ValueService;
48183}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
48184
48185
48186
48187/***/ }),
48188/* 210 */
48189/***/ (function(module, __webpack_exports__, __webpack_require__) {
48190
48191"use strict";
48192__webpack_require__.r(__webpack_exports__);
48193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return ExpressionService; });
48194/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
48195/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
48196/**
48197 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48198 * @version v29.2.0
48199 * @link https://www.ag-grid.com/
48200 * @license MIT
48201 */
48202var __extends = (undefined && undefined.__extends) || (function () {
48203 var extendStatics = function (d, b) {
48204 extendStatics = Object.setPrototypeOf ||
48205 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48206 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
48207 return extendStatics(d, b);
48208 };
48209 return function (d, b) {
48210 extendStatics(d, b);
48211 function __() { this.constructor = d; }
48212 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48213 };
48214})();
48215var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48216 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48217 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48218 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;
48219 return c > 3 && r && Object.defineProperty(target, key, r), r;
48220};
48221var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
48222 return function (target, key) { decorator(target, key, paramIndex); }
48223};
48224
48225
48226
48227var ExpressionService = /** @class */ (function (_super) {
48228 __extends(ExpressionService, _super);
48229 function ExpressionService() {
48230 var _this = _super !== null && _super.apply(this, arguments) || this;
48231 _this.expressionToFunctionCache = {};
48232 return _this;
48233 }
48234 ExpressionService.prototype.setBeans = function (loggerFactory) {
48235 this.logger = loggerFactory.create('ExpressionService');
48236 };
48237 ExpressionService.prototype.evaluate = function (expression, params) {
48238 if (typeof expression === 'string') {
48239 // valueGetter is an expression, so execute the expression
48240 return this.evaluateExpression(expression, params);
48241 }
48242 else {
48243 console.error('AG Grid: value should be either a string or a function', expression);
48244 }
48245 };
48246 ExpressionService.prototype.evaluateExpression = function (expression, params) {
48247 try {
48248 var javaScriptFunction = this.createExpressionFunction(expression);
48249 // the params don't have all these values, rather we add every possible
48250 // value a params can have, which makes whatever is in the params available.
48251 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);
48252 return result;
48253 }
48254 catch (e) {
48255 // the expression failed, which can happen, as it's the client that
48256 // provides the expression. so print a nice message
48257 // tslint:disable-next-line
48258 console.log('Processing of the expression failed');
48259 // tslint:disable-next-line
48260 console.log('Expression = ' + expression);
48261 // tslint:disable-next-line
48262 console.log('Params =', params);
48263 // tslint:disable-next-line
48264 console.log('Exception = ' + e);
48265 return null;
48266 }
48267 };
48268 ExpressionService.prototype.createExpressionFunction = function (expression) {
48269 // check cache first
48270 if (this.expressionToFunctionCache[expression]) {
48271 return this.expressionToFunctionCache[expression];
48272 }
48273 // if not found in cache, return the function
48274 var functionBody = this.createFunctionBody(expression);
48275 var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);
48276 // store in cache
48277 this.expressionToFunctionCache[expression] = theFunction;
48278 return theFunction;
48279 };
48280 ExpressionService.prototype.createFunctionBody = function (expression) {
48281 // if the expression has the 'return' word in it, then use as is,
48282 // if not, then wrap it with return and ';' to make a function
48283 if (expression.indexOf('return') >= 0) {
48284 return expression;
48285 }
48286 else {
48287 return 'return ' + expression + ';';
48288 }
48289 };
48290 __decorate([
48291 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
48292 ], ExpressionService.prototype, "setBeans", null);
48293 ExpressionService = __decorate([
48294 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('expressionService')
48295 ], ExpressionService);
48296 return ExpressionService;
48297}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
48298
48299
48300
48301/***/ }),
48302/* 211 */
48303/***/ (function(module, __webpack_exports__, __webpack_require__) {
48304
48305"use strict";
48306__webpack_require__.r(__webpack_exports__);
48307/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return TemplateService; });
48308/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
48309/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
48310/**
48311 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48312 * @version v29.2.0
48313 * @link https://www.ag-grid.com/
48314 * @license MIT
48315 */
48316var __extends = (undefined && undefined.__extends) || (function () {
48317 var extendStatics = function (d, b) {
48318 extendStatics = Object.setPrototypeOf ||
48319 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48320 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
48321 return extendStatics(d, b);
48322 };
48323 return function (d, b) {
48324 extendStatics(d, b);
48325 function __() { this.constructor = d; }
48326 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48327 };
48328})();
48329var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48330 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48331 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48332 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;
48333 return c > 3 && r && Object.defineProperty(target, key, r), r;
48334};
48335
48336
48337var TemplateService = /** @class */ (function (_super) {
48338 __extends(TemplateService, _super);
48339 function TemplateService() {
48340 var _this = _super !== null && _super.apply(this, arguments) || this;
48341 _this.templateCache = {};
48342 _this.waitingCallbacks = {};
48343 return _this;
48344 }
48345 // returns the template if it is loaded, or null if it is not loaded
48346 // but will call the callback when it is loaded
48347 TemplateService.prototype.getTemplate = function (url, callback) {
48348 var templateFromCache = this.templateCache[url];
48349 if (templateFromCache) {
48350 return templateFromCache;
48351 }
48352 var callbackList = this.waitingCallbacks[url];
48353 var that = this;
48354 if (!callbackList) {
48355 // first time this was called, so need a new list for callbacks
48356 callbackList = [];
48357 this.waitingCallbacks[url] = callbackList;
48358 // and also need to do the http request
48359 var client = new XMLHttpRequest();
48360 client.onload = function () {
48361 that.handleHttpResult(this, url);
48362 };
48363 client.open("GET", url);
48364 client.send();
48365 }
48366 // add this callback
48367 if (callback) {
48368 callbackList.push(callback);
48369 }
48370 // caller needs to wait for template to load, so return null
48371 return null;
48372 };
48373 TemplateService.prototype.handleHttpResult = function (httpResult, url) {
48374 if (httpResult.status !== 200 || httpResult.response === null) {
48375 console.warn("AG Grid: Unable to get template error " + httpResult.status + " - " + url);
48376 return;
48377 }
48378 // response success, so process it
48379 // in IE9 the response is in - responseText
48380 this.templateCache[url] = httpResult.response || httpResult.responseText;
48381 // inform all listeners that this is now in the cache
48382 var callbacks = this.waitingCallbacks[url];
48383 for (var i = 0; i < callbacks.length; i++) {
48384 var callback = callbacks[i];
48385 // we could pass the callback the response, however we know the client of this code
48386 // is the cell renderer, and it passes the 'cellRefresh' method in as the callback
48387 // which doesn't take any parameters.
48388 callback();
48389 }
48390 };
48391 TemplateService = __decorate([
48392 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('templateService')
48393 ], TemplateService);
48394 return TemplateService;
48395}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
48396
48397
48398
48399/***/ }),
48400/* 212 */
48401/***/ (function(module, __webpack_exports__, __webpack_require__) {
48402
48403"use strict";
48404__webpack_require__.r(__webpack_exports__);
48405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return LoggerFactory; });
48406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return Logger; });
48407/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
48408/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
48409/**
48410 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48411 * @version v29.2.0
48412 * @link https://www.ag-grid.com/
48413 * @license MIT
48414 */
48415var __extends = (undefined && undefined.__extends) || (function () {
48416 var extendStatics = function (d, b) {
48417 extendStatics = Object.setPrototypeOf ||
48418 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48419 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
48420 return extendStatics(d, b);
48421 };
48422 return function (d, b) {
48423 extendStatics(d, b);
48424 function __() { this.constructor = d; }
48425 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48426 };
48427})();
48428var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48429 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48430 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48431 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;
48432 return c > 3 && r && Object.defineProperty(target, key, r), r;
48433};
48434var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
48435 return function (target, key) { decorator(target, key, paramIndex); }
48436};
48437
48438
48439
48440var LoggerFactory = /** @class */ (function (_super) {
48441 __extends(LoggerFactory, _super);
48442 function LoggerFactory() {
48443 return _super !== null && _super.apply(this, arguments) || this;
48444 }
48445 LoggerFactory.prototype.setBeans = function (gridOptionsService) {
48446 this.logging = gridOptionsService.is('debug');
48447 };
48448 LoggerFactory.prototype.create = function (name) {
48449 return new Logger(name, this.isLogging.bind(this));
48450 };
48451 LoggerFactory.prototype.isLogging = function () {
48452 return this.logging;
48453 };
48454 __decorate([
48455 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('gridOptionsService'))
48456 ], LoggerFactory.prototype, "setBeans", null);
48457 LoggerFactory = __decorate([
48458 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('loggerFactory')
48459 ], LoggerFactory);
48460 return LoggerFactory;
48461}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
48462
48463var Logger = /** @class */ (function () {
48464 function Logger(name, isLoggingFunc) {
48465 this.name = name;
48466 this.isLoggingFunc = isLoggingFunc;
48467 }
48468 Logger.prototype.isLogging = function () {
48469 return this.isLoggingFunc();
48470 };
48471 Logger.prototype.log = function (message) {
48472 if (this.isLoggingFunc()) {
48473 // tslint:disable-next-line
48474 console.log('AG Grid.' + this.name + ': ' + message);
48475 }
48476 };
48477 return Logger;
48478}());
48479
48480
48481
48482/***/ }),
48483/* 213 */
48484/***/ (function(module, __webpack_exports__, __webpack_require__) {
48485
48486"use strict";
48487__webpack_require__.r(__webpack_exports__);
48488/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return GridComp; });
48489/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
48490/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57);
48491/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
48492/* harmony import */ var _focusService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(201);
48493/* harmony import */ var _gridCtrl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(214);
48494/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(117);
48495/* harmony import */ var _widgets_tabGuardComp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(195);
48496/**
48497 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48498 * @version v29.2.0
48499 * @link https://www.ag-grid.com/
48500 * @license MIT
48501 */
48502var __extends = (undefined && undefined.__extends) || (function () {
48503 var extendStatics = function (d, b) {
48504 extendStatics = Object.setPrototypeOf ||
48505 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48506 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
48507 return extendStatics(d, b);
48508 };
48509 return function (d, b) {
48510 extendStatics(d, b);
48511 function __() { this.constructor = d; }
48512 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48513 };
48514})();
48515var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48516 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48517 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48518 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;
48519 return c > 3 && r && Object.defineProperty(target, key, r), r;
48520};
48521
48522
48523
48524
48525
48526
48527
48528var GridComp = /** @class */ (function (_super) {
48529 __extends(GridComp, _super);
48530 function GridComp(eGridDiv) {
48531 var _this = _super.call(this) || this;
48532 _this.eGridDiv = eGridDiv;
48533 return _this;
48534 }
48535 GridComp.prototype.postConstruct = function () {
48536 var _this = this;
48537 this.logger = this.loggerFactory.create('GridComp');
48538 var compProxy = {
48539 destroyGridUi: function () { return _this.destroyBean(_this); },
48540 setRtlClass: function (cssClass) { return _this.addCssClass(cssClass); },
48541 addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(_focusService__WEBPACK_IMPORTED_MODULE_3__["FocusService"].AG_KEYBOARD_FOCUS, addOrRemove); },
48542 forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),
48543 updateLayoutClasses: this.updateLayoutClasses.bind(this),
48544 getFocusableContainers: this.getFocusableContainers.bind(this),
48545 setUserSelect: function (value) {
48546 _this.getGui().style.userSelect = value != null ? value : '';
48547 _this.getGui().style.webkitUserSelect = value != null ? value : '';
48548 },
48549 setCursor: function (value) {
48550 _this.getGui().style.cursor = value != null ? value : '';
48551 }
48552 };
48553 this.ctrl = this.createManagedBean(new _gridCtrl__WEBPACK_IMPORTED_MODULE_4__["GridCtrl"]());
48554 var template = this.createTemplate();
48555 this.setTemplate(template);
48556 this.ctrl.setComp(compProxy, this.eGridDiv, this.getGui());
48557 this.insertGridIntoDom();
48558 this.initialiseTabGuard({
48559 // we want to override the default behaviour to do nothing for onTabKeyDown
48560 onTabKeyDown: function () { return undefined; },
48561 focusInnerElement: function (fromBottom) { return _this.ctrl.focusInnerElement(fromBottom); }
48562 });
48563 };
48564 GridComp.prototype.insertGridIntoDom = function () {
48565 var _this = this;
48566 var eGui = this.getGui();
48567 this.eGridDiv.appendChild(eGui);
48568 this.addDestroyFunc(function () {
48569 _this.eGridDiv.removeChild(eGui);
48570 _this.logger.log('Grid removed from DOM');
48571 });
48572 };
48573 GridComp.prototype.updateLayoutClasses = function (cssClass, params) {
48574 var eRootWrapperBodyClassList = this.eRootWrapperBody.classList;
48575 eRootWrapperBodyClassList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
48576 eRootWrapperBodyClassList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__["LayoutCssClasses"].NORMAL, params.normal);
48577 eRootWrapperBodyClassList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__["LayoutCssClasses"].PRINT, params.print);
48578 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
48579 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__["LayoutCssClasses"].NORMAL, params.normal);
48580 this.addOrRemoveCssClass(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_5__["LayoutCssClasses"].PRINT, params.print);
48581 };
48582 GridComp.prototype.createTemplate = function () {
48583 var dropZones = this.ctrl.showDropZones() ? '<ag-grid-header-drop-zones></ag-grid-header-drop-zones>' : '';
48584 var sideBar = this.ctrl.showSideBar() ? '<ag-side-bar ref="sideBar"></ag-side-bar>' : '';
48585 var statusBar = this.ctrl.showStatusBar() ? '<ag-status-bar ref="statusBar"></ag-status-bar>' : '';
48586 var watermark = this.ctrl.showWatermark() ? '<ag-watermark></ag-watermark>' : '';
48587 var template = /* html */ "<div class=\"ag-root-wrapper\" role=\"presentation\">\n " + dropZones + "\n <div class=\"ag-root-wrapper-body\" ref=\"rootWrapperBody\" role=\"presentation\">\n <ag-grid-body ref=\"gridBody\"></ag-grid-body>\n " + sideBar + "\n </div>\n " + statusBar + "\n <ag-pagination></ag-pagination>\n " + watermark + "\n </div>";
48588 return template;
48589 };
48590 GridComp.prototype.getFocusableElement = function () {
48591 return this.eRootWrapperBody;
48592 };
48593 GridComp.prototype.getFocusableContainers = function () {
48594 var focusableContainers = [
48595 this.gridBodyComp.getGui()
48596 ];
48597 if (this.sideBarComp) {
48598 focusableContainers.push(this.sideBarComp.getGui());
48599 }
48600 return focusableContainers.filter(function (el) { return Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["isVisible"])(el); });
48601 };
48602 __decorate([
48603 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('loggerFactory')
48604 ], GridComp.prototype, "loggerFactory", void 0);
48605 __decorate([
48606 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('gridBody')
48607 ], GridComp.prototype, "gridBodyComp", void 0);
48608 __decorate([
48609 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('sideBar')
48610 ], GridComp.prototype, "sideBarComp", void 0);
48611 __decorate([
48612 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_1__["RefSelector"])('rootWrapperBody')
48613 ], GridComp.prototype, "eRootWrapperBody", void 0);
48614 __decorate([
48615 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
48616 ], GridComp.prototype, "postConstruct", null);
48617 return GridComp;
48618}(_widgets_tabGuardComp__WEBPACK_IMPORTED_MODULE_6__["TabGuardComp"]));
48619
48620
48621
48622/***/ }),
48623/* 214 */
48624/***/ (function(module, __webpack_exports__, __webpack_require__) {
48625
48626"use strict";
48627__webpack_require__.r(__webpack_exports__);
48628/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridCtrl", function() { return GridCtrl; });
48629/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
48630/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
48631/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(15);
48632/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14);
48633/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(117);
48634/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26);
48635/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(19);
48636/* harmony import */ var _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(100);
48637/**
48638 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48639 * @version v29.2.0
48640 * @link https://www.ag-grid.com/
48641 * @license MIT
48642 */
48643var __extends = (undefined && undefined.__extends) || (function () {
48644 var extendStatics = function (d, b) {
48645 extendStatics = Object.setPrototypeOf ||
48646 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48647 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
48648 return extendStatics(d, b);
48649 };
48650 return function (d, b) {
48651 extendStatics(d, b);
48652 function __() { this.constructor = d; }
48653 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48654 };
48655})();
48656var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48657 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48658 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48659 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;
48660 return c > 3 && r && Object.defineProperty(target, key, r), r;
48661};
48662
48663
48664
48665
48666
48667
48668
48669
48670var GridCtrl = /** @class */ (function (_super) {
48671 __extends(GridCtrl, _super);
48672 function GridCtrl() {
48673 return _super !== null && _super.apply(this, arguments) || this;
48674 }
48675 GridCtrl.prototype.setComp = function (view, eGridDiv, eGui) {
48676 var _this = this;
48677 this.view = view;
48678 this.eGridHostDiv = eGridDiv;
48679 this.eGui = eGui;
48680 // this drop target is just used to see if the drop event is inside the grid
48681 this.dragAndDropService.addDropTarget({
48682 getContainer: function () { return _this.eGui; },
48683 isInterestedIn: function (type) { return type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_7__["DragSourceType"].HeaderCell || type === _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_7__["DragSourceType"].ToolPanel; },
48684 getIconName: function () { return _dragAndDrop_dragAndDropService__WEBPACK_IMPORTED_MODULE_7__["DragAndDropService"].ICON_NOT_ALLOWED; },
48685 });
48686 this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);
48687 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutFeature"](this.view));
48688 this.addRtlSupport();
48689 this.addManagedListener(this, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_KEYBOARD_FOCUS, function () {
48690 _this.view.addOrRemoveKeyboardFocusClass(true);
48691 });
48692 this.addManagedListener(this, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_MOUSE_FOCUS, function () {
48693 _this.view.addOrRemoveKeyboardFocusClass(false);
48694 });
48695 var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));
48696 this.addDestroyFunc(function () { return unsubscribeFromResize(); });
48697 this.ctrlsService.registerGridCtrl(this);
48698 };
48699 GridCtrl.prototype.isDetailGrid = function () {
48700 var _a;
48701 var el = this.focusService.findTabbableParent(this.getGui());
48702 return ((_a = el === null || el === void 0 ? void 0 : el.getAttribute('row-id')) === null || _a === void 0 ? void 0 : _a.startsWith('detail')) || false;
48703 };
48704 GridCtrl.prototype.showDropZones = function () {
48705 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].RowGroupingModule);
48706 };
48707 GridCtrl.prototype.showSideBar = function () {
48708 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].SideBarModule);
48709 };
48710 GridCtrl.prototype.showStatusBar = function () {
48711 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].StatusBarModule);
48712 };
48713 GridCtrl.prototype.showWatermark = function () {
48714 return _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_2__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"].EnterpriseCoreModule);
48715 };
48716 GridCtrl.prototype.onGridSizeChanged = function () {
48717 var event = {
48718 type: _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_GRID_SIZE_CHANGED,
48719 clientWidth: this.eGridHostDiv.clientWidth,
48720 clientHeight: this.eGridHostDiv.clientHeight
48721 };
48722 this.eventService.dispatchEvent(event);
48723 };
48724 GridCtrl.prototype.addRtlSupport = function () {
48725 var cssClass = this.gridOptionsService.is('enableRtl') ? 'ag-rtl' : 'ag-ltr';
48726 this.view.setRtlClass(cssClass);
48727 };
48728 GridCtrl.prototype.destroyGridUi = function () {
48729 this.view.destroyGridUi();
48730 };
48731 GridCtrl.prototype.getGui = function () {
48732 return this.eGui;
48733 };
48734 GridCtrl.prototype.setResizeCursor = function (on) {
48735 this.view.setCursor(on ? 'ew-resize' : null);
48736 };
48737 GridCtrl.prototype.disableUserSelect = function (on) {
48738 this.view.setUserSelect(on ? 'none' : null);
48739 };
48740 GridCtrl.prototype.focusNextInnerContainer = function (backwards) {
48741 var eDocument = this.gridOptionsService.getDocument();
48742 var focusableContainers = this.view.getFocusableContainers();
48743 var idxWithFocus = focusableContainers.findIndex(function (container) { return container.contains(eDocument.activeElement); });
48744 var nextIdx = idxWithFocus + (backwards ? -1 : 1);
48745 if (nextIdx <= 0 || nextIdx >= focusableContainers.length) {
48746 return false;
48747 }
48748 return this.focusService.focusInto(focusableContainers[nextIdx]);
48749 };
48750 GridCtrl.prototype.focusInnerElement = function (fromBottom) {
48751 var focusableContainers = this.view.getFocusableContainers();
48752 if (fromBottom) {
48753 if (focusableContainers.length > 1) {
48754 return this.focusService.focusInto(Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["last"])(focusableContainers), true);
48755 }
48756 var lastColumn = Object(_utils_array__WEBPACK_IMPORTED_MODULE_6__["last"])(this.columnModel.getAllDisplayedColumns());
48757 if (this.focusService.focusGridView(lastColumn, true)) {
48758 return true;
48759 }
48760 }
48761 return this.focusService.focusFirstHeader();
48762 };
48763 GridCtrl.prototype.forceFocusOutOfContainer = function (up) {
48764 if (up === void 0) { up = false; }
48765 this.view.forceFocusOutOfContainer(up);
48766 };
48767 __decorate([
48768 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
48769 ], GridCtrl.prototype, "focusService", void 0);
48770 __decorate([
48771 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('resizeObserverService')
48772 ], GridCtrl.prototype, "resizeObserverService", void 0);
48773 __decorate([
48774 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
48775 ], GridCtrl.prototype, "columnModel", void 0);
48776 __decorate([
48777 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
48778 ], GridCtrl.prototype, "ctrlsService", void 0);
48779 __decorate([
48780 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('mouseEventService')
48781 ], GridCtrl.prototype, "mouseEventService", void 0);
48782 __decorate([
48783 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('dragAndDropService')
48784 ], GridCtrl.prototype, "dragAndDropService", void 0);
48785 return GridCtrl;
48786}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
48787
48788
48789
48790/***/ }),
48791/* 215 */
48792/***/ (function(module, __webpack_exports__, __webpack_require__) {
48793
48794"use strict";
48795__webpack_require__.r(__webpack_exports__);
48796/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return SortController; });
48797/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
48798/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
48799/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
48800/**
48801 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48802 * @version v29.2.0
48803 * @link https://www.ag-grid.com/
48804 * @license MIT
48805 */
48806var __extends = (undefined && undefined.__extends) || (function () {
48807 var extendStatics = function (d, b) {
48808 extendStatics = Object.setPrototypeOf ||
48809 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
48810 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
48811 return extendStatics(d, b);
48812 };
48813 return function (d, b) {
48814 extendStatics(d, b);
48815 function __() { this.constructor = d; }
48816 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
48817 };
48818})();
48819var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
48820 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
48821 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
48822 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;
48823 return c > 3 && r && Object.defineProperty(target, key, r), r;
48824};
48825var __read = (undefined && undefined.__read) || function (o, n) {
48826 var m = typeof Symbol === "function" && o[Symbol.iterator];
48827 if (!m) return o;
48828 var i = m.call(o), r, ar = [], e;
48829 try {
48830 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
48831 }
48832 catch (error) { e = { error: error }; }
48833 finally {
48834 try {
48835 if (r && !r.done && (m = i["return"])) m.call(i);
48836 }
48837 finally { if (e) throw e.error; }
48838 }
48839 return ar;
48840};
48841var __spread = (undefined && undefined.__spread) || function () {
48842 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
48843 return ar;
48844};
48845
48846
48847
48848var SortController = /** @class */ (function (_super) {
48849 __extends(SortController, _super);
48850 function SortController() {
48851 return _super !== null && _super.apply(this, arguments) || this;
48852 }
48853 SortController_1 = SortController;
48854 SortController.prototype.progressSort = function (column, multiSort, source) {
48855 var nextDirection = this.getNextSortDirection(column);
48856 this.setSortForColumn(column, nextDirection, multiSort, source);
48857 };
48858 SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {
48859 // auto correct - if sort not legal value, then set it to 'no sort' (which is null)
48860 if (sort !== 'asc' && sort !== 'desc') {
48861 sort = null;
48862 }
48863 var isColumnsSortingCoupledToGroup = this.gridOptionsService.isColumnsSortingCoupledToGroup();
48864 var columnsToUpdate = [column];
48865 if (isColumnsSortingCoupledToGroup && column.getColDef().showRowGroup) {
48866 if (!column.getColDef().field) {
48867 // if no field is present, this column shouldn't have it's own sort direction
48868 columnsToUpdate = [];
48869 }
48870 var rowGroupColumns = this.columnModel.getSourceColumnsForGroupColumn(column);
48871 var sortableRowGroupColumns = rowGroupColumns === null || rowGroupColumns === void 0 ? void 0 : rowGroupColumns.filter(function (col) { return col.getColDef().sortable; });
48872 if (sortableRowGroupColumns) {
48873 columnsToUpdate = __spread(columnsToUpdate, sortableRowGroupColumns);
48874 }
48875 }
48876 columnsToUpdate.forEach(function (col) { return col.setSort(sort, source); });
48877 var doingMultiSort = (multiSort || this.gridOptionsService.is('alwaysMultiSort')) && !this.gridOptionsService.is('suppressMultiSort');
48878 // clear sort on all columns except those changed, and update the icons
48879 if (!doingMultiSort) {
48880 this.clearSortBarTheseColumns(columnsToUpdate, source);
48881 }
48882 // sortIndex used for knowing order of cols when multi-col sort
48883 this.updateSortIndex(column);
48884 this.dispatchSortChangedEvents(source);
48885 };
48886 SortController.prototype.updateSortIndex = function (lastColToChange) {
48887 var isCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();
48888 var groupParent = this.columnModel.getGroupDisplayColumnForGroup(lastColToChange.getId());
48889 var lastSortIndexCol = isCoupled ? groupParent || lastColToChange : lastColToChange;
48890 var allSortedCols = this.getColumnsWithSortingOrdered(true);
48891 // reset sort index on everything
48892 this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (col) { return col.setSortIndex(null); });
48893 var allSortedColsWithoutChanges = allSortedCols.filter(function (col) { return col !== lastSortIndexCol; });
48894 var sortedColsWithIndices = !!lastSortIndexCol.getSort() ? __spread(allSortedColsWithoutChanges, [lastSortIndexCol]) : allSortedColsWithoutChanges;
48895 sortedColsWithIndices.forEach(function (col, idx) { return (col.setSortIndex(idx)); });
48896 };
48897 // gets called by API, so if data changes, use can call this, which will end up
48898 // working out the sort order again of the rows.
48899 SortController.prototype.onSortChanged = function (source) {
48900 this.dispatchSortChangedEvents(source);
48901 };
48902 SortController.prototype.isSortActive = function () {
48903 // pull out all the columns that have sorting set
48904 var allCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();
48905 var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });
48906 return sortedCols && sortedCols.length > 0;
48907 };
48908 SortController.prototype.dispatchSortChangedEvents = function (source) {
48909 var event = {
48910 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SORT_CHANGED,
48911 source: source
48912 };
48913 this.eventService.dispatchEvent(event);
48914 };
48915 SortController.prototype.clearSortBarTheseColumns = function (columnsToSkip, source) {
48916 this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {
48917 // Do not clear if either holding shift, or if column in question was clicked
48918 if (!columnsToSkip.includes(columnToClear)) {
48919 // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise
48920 // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.
48921 columnToClear.setSort(undefined, source);
48922 }
48923 });
48924 };
48925 SortController.prototype.getNextSortDirection = function (column) {
48926 var sortingOrder;
48927 if (column.getColDef().sortingOrder) {
48928 sortingOrder = column.getColDef().sortingOrder;
48929 }
48930 else if (this.gridOptionsService.get('sortingOrder')) {
48931 sortingOrder = this.gridOptionsService.get('sortingOrder');
48932 }
48933 else {
48934 sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;
48935 }
48936 if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {
48937 console.warn("AG Grid: sortingOrder must be an array with at least one element, currently it's " + sortingOrder);
48938 return null;
48939 }
48940 // if a field is present, this column could have it's own sort, otherwise it's calculated from other columns
48941 var currentSort = !!column.getColDef().field ? column.getSort() : this.getDisplaySortForColumn(column);
48942 var result = sortingOrder[0];
48943 if (currentSort !== 'mixed') {
48944 var currentIndex = sortingOrder.indexOf(currentSort);
48945 var notInArray = currentIndex < 0;
48946 var lastItemInArray = currentIndex == sortingOrder.length - 1;
48947 if (notInArray || lastItemInArray) {
48948 result = sortingOrder[0];
48949 }
48950 else {
48951 result = sortingOrder[currentIndex + 1];
48952 }
48953 }
48954 // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid
48955 if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {
48956 console.warn('AG Grid: invalid sort type ' + result);
48957 return null;
48958 }
48959 return result;
48960 };
48961 /**
48962 * @param includeRedundantColumns whether to include non-grouped, non-secondary, non-aggregated columns when pivot active
48963 * @returns a map of sort indexes for every sorted column, if groups sort primaries then they will have equivalent indices
48964 */
48965 SortController.prototype.getIndexedSortMap = function (includeRedundantColumns) {
48966 var _this = this;
48967 if (includeRedundantColumns === void 0) { includeRedundantColumns = false; }
48968 // pull out all the columns that have sorting set
48969 var allSortedCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns()
48970 .filter(function (col) { return !!col.getSort(); });
48971 if (!includeRedundantColumns && this.columnModel.isPivotMode()) {
48972 allSortedCols = allSortedCols.filter(function (col) { return (!!col.getAggFunc() || !col.isPrimary() || _this.columnModel.getGroupDisplayColumnForGroup(col.getId())); });
48973 }
48974 var sortedRowGroupCols = this.columnModel.getRowGroupColumns()
48975 .filter(function (col) { return !!col.getSort(); });
48976 var isSortLinked = this.gridOptionsService.isColumnsSortingCoupledToGroup() && !!sortedRowGroupCols.length;
48977 if (isSortLinked) {
48978 allSortedCols = __spread(new Set(
48979 // if linked sorting, replace all columns with the display group column for index purposes, and ensure uniqueness
48980 allSortedCols.map(function (col) { var _a; return (_a = _this.columnModel.getGroupDisplayColumnForGroup(col.getId())) !== null && _a !== void 0 ? _a : col; })));
48981 }
48982 // when both cols are missing sortIndex, we use the position of the col in all cols list.
48983 // this means if colDefs only have sort, but no sortIndex, we deterministically pick which
48984 // cols is sorted by first.
48985 var allColsIndexes = {};
48986 allSortedCols.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });
48987 // put the columns in order of which one got sorted first
48988 allSortedCols.sort(function (a, b) {
48989 var iA = a.getSortIndex();
48990 var iB = b.getSortIndex();
48991 if (iA != null && iB != null) {
48992 return iA - iB; // both present, normal comparison
48993 }
48994 else if (iA == null && iB == null) {
48995 // both missing, compare using column positions
48996 var posA = allColsIndexes[a.getId()];
48997 var posB = allColsIndexes[b.getId()];
48998 return posA > posB ? 1 : -1;
48999 }
49000 else if (iB == null) {
49001 return -1; // iB missing
49002 }
49003 else {
49004 return 1; // iA missing
49005 }
49006 });
49007 var indexMap = new Map();
49008 allSortedCols.forEach(function (col, idx) { return indexMap.set(col, idx); });
49009 // add the row group cols back
49010 if (isSortLinked) {
49011 sortedRowGroupCols.forEach(function (col) {
49012 var groupDisplayCol = _this.columnModel.getGroupDisplayColumnForGroup(col.getId());
49013 indexMap.set(col, indexMap.get(groupDisplayCol));
49014 });
49015 }
49016 return indexMap;
49017 };
49018 SortController.prototype.getColumnsWithSortingOrdered = function (includeRedundantColumns) {
49019 if (includeRedundantColumns === void 0) { includeRedundantColumns = false; }
49020 // pull out all the columns that have sorting set
49021 return __spread(this.getIndexedSortMap(includeRedundantColumns).entries()).sort(function (_a, _b) {
49022 var _c = __read(_a, 2), col1 = _c[0], idx1 = _c[1];
49023 var _d = __read(_b, 2), col2 = _d[0], idx2 = _d[1];
49024 return idx1 - idx2;
49025 })
49026 .map(function (_a) {
49027 var _b = __read(_a, 1), col = _b[0];
49028 return col;
49029 });
49030 };
49031 // used by server side row models, to sent sort to server
49032 SortController.prototype.getSortModel = function () {
49033 // because this is used by the SSRM, we include redundant options and let the server decide
49034 return this.getColumnsWithSortingOrdered(true).map(function (column) { return ({
49035 sort: column.getSort(),
49036 colId: column.getId()
49037 }); });
49038 };
49039 SortController.prototype.getSortOptions = function () {
49040 // this is used for client side sorting, as such we can ignore redundant column sorts
49041 return this.getColumnsWithSortingOrdered().map(function (column) { return ({
49042 sort: column.getSort(),
49043 column: column
49044 }); });
49045 };
49046 SortController.prototype.canColumnDisplayMixedSort = function (column) {
49047 var isColumnSortCouplingActive = this.gridOptionsService.isColumnsSortingCoupledToGroup();
49048 var isGroupDisplayColumn = !!column.getColDef().showRowGroup;
49049 return isColumnSortCouplingActive && isGroupDisplayColumn;
49050 };
49051 SortController.prototype.getDisplaySortForColumn = function (column) {
49052 var linkedColumns = this.columnModel.getSourceColumnsForGroupColumn(column);
49053 if (!this.canColumnDisplayMixedSort(column) || !(linkedColumns === null || linkedColumns === void 0 ? void 0 : linkedColumns.length)) {
49054 return column.getSort();
49055 }
49056 // if column has unique data, its sorting is independent - but can still be mixed
49057 var columnHasUniqueData = !!column.getColDef().field;
49058 var sortableColumns = columnHasUniqueData ? __spread([column], linkedColumns) : linkedColumns;
49059 var firstSort = sortableColumns[0].getSort();
49060 // the == is intentional, as null and undefined both represent no sort, which means they are equivalent
49061 var allMatch = sortableColumns.every(function (col) { return col.getSort() == firstSort; });
49062 if (!allMatch) {
49063 return 'mixed';
49064 }
49065 return firstSort;
49066 };
49067 SortController.prototype.getDisplaySortIndexForColumn = function (column) {
49068 return this.getIndexedSortMap().get(column);
49069 };
49070 var SortController_1;
49071 SortController.DEFAULT_SORTING_ORDER = ['asc', 'desc', null];
49072 __decorate([
49073 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
49074 ], SortController.prototype, "columnModel", void 0);
49075 SortController = SortController_1 = __decorate([
49076 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortController')
49077 ], SortController);
49078 return SortController;
49079}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
49080
49081
49082
49083/***/ }),
49084/* 216 */
49085/***/ (function(module, __webpack_exports__, __webpack_require__) {
49086
49087"use strict";
49088__webpack_require__.r(__webpack_exports__);
49089/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnHoverService", function() { return ColumnHoverService; });
49090/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
49091/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
49092/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
49093/**
49094 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49095 * @version v29.2.0
49096 * @link https://www.ag-grid.com/
49097 * @license MIT
49098 */
49099var __extends = (undefined && undefined.__extends) || (function () {
49100 var extendStatics = function (d, b) {
49101 extendStatics = Object.setPrototypeOf ||
49102 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49103 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49104 return extendStatics(d, b);
49105 };
49106 return function (d, b) {
49107 extendStatics(d, b);
49108 function __() { this.constructor = d; }
49109 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49110 };
49111})();
49112var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49113 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49114 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49115 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;
49116 return c > 3 && r && Object.defineProperty(target, key, r), r;
49117};
49118
49119
49120
49121var ColumnHoverService = /** @class */ (function (_super) {
49122 __extends(ColumnHoverService, _super);
49123 function ColumnHoverService() {
49124 return _super !== null && _super.apply(this, arguments) || this;
49125 }
49126 ColumnHoverService.prototype.setMouseOver = function (columns) {
49127 this.selectedColumns = columns;
49128 var event = {
49129 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_HOVER_CHANGED
49130 };
49131 this.eventService.dispatchEvent(event);
49132 };
49133 ColumnHoverService.prototype.clearMouseOver = function () {
49134 this.selectedColumns = null;
49135 var event = {
49136 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_COLUMN_HOVER_CHANGED
49137 };
49138 this.eventService.dispatchEvent(event);
49139 };
49140 ColumnHoverService.prototype.isHovered = function (column) {
49141 return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;
49142 };
49143 ColumnHoverService = __decorate([
49144 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('columnHoverService')
49145 ], ColumnHoverService);
49146 return ColumnHoverService;
49147}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
49148
49149
49150
49151/***/ }),
49152/* 217 */
49153/***/ (function(module, __webpack_exports__, __webpack_require__) {
49154
49155"use strict";
49156__webpack_require__.r(__webpack_exports__);
49157/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnAnimationService", function() { return ColumnAnimationService; });
49158/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
49159/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
49160/**
49161 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49162 * @version v29.2.0
49163 * @link https://www.ag-grid.com/
49164 * @license MIT
49165 */
49166var __extends = (undefined && undefined.__extends) || (function () {
49167 var extendStatics = function (d, b) {
49168 extendStatics = Object.setPrototypeOf ||
49169 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49170 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49171 return extendStatics(d, b);
49172 };
49173 return function (d, b) {
49174 extendStatics(d, b);
49175 function __() { this.constructor = d; }
49176 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49177 };
49178})();
49179var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49180 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49181 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49182 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;
49183 return c > 3 && r && Object.defineProperty(target, key, r), r;
49184};
49185
49186
49187var ColumnAnimationService = /** @class */ (function (_super) {
49188 __extends(ColumnAnimationService, _super);
49189 function ColumnAnimationService() {
49190 var _this = _super !== null && _super.apply(this, arguments) || this;
49191 _this.executeNextFuncs = [];
49192 _this.executeLaterFuncs = [];
49193 _this.active = false;
49194 _this.animationThreadCount = 0;
49195 return _this;
49196 }
49197 ColumnAnimationService.prototype.postConstruct = function () {
49198 var _this = this;
49199 this.ctrlsService.whenReady(function (p) { return _this.gridBodyCtrl = p.gridBodyCtrl; });
49200 };
49201 ColumnAnimationService.prototype.isActive = function () {
49202 return this.active;
49203 };
49204 ColumnAnimationService.prototype.start = function () {
49205 if (this.active) {
49206 return;
49207 }
49208 if (this.gridOptionsService.is('suppressColumnMoveAnimation')) {
49209 return;
49210 }
49211 // if doing RTL, we don't animate open / close as due to how the pixels are inverted,
49212 // the animation moves all the row the the right rather than to the left (ie it's the static
49213 // columns that actually get their coordinates updated)
49214 if (this.gridOptionsService.is('enableRtl')) {
49215 return;
49216 }
49217 this.ensureAnimationCssClassPresent();
49218 this.active = true;
49219 };
49220 ColumnAnimationService.prototype.finish = function () {
49221 if (!this.active) {
49222 return;
49223 }
49224 this.flush();
49225 this.active = false;
49226 };
49227 ColumnAnimationService.prototype.executeNextVMTurn = function (func) {
49228 if (this.active) {
49229 this.executeNextFuncs.push(func);
49230 }
49231 else {
49232 func();
49233 }
49234 };
49235 ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {
49236 if (this.active) {
49237 this.executeLaterFuncs.push(func);
49238 }
49239 else {
49240 func();
49241 }
49242 };
49243 ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {
49244 var _this = this;
49245 // up the count, so we can tell if someone else has updated the count
49246 // by the time the 'wait' func executes
49247 this.animationThreadCount++;
49248 var animationThreadCountCopy = this.animationThreadCount;
49249 this.gridBodyCtrl.setColumnMovingCss(true);
49250 this.executeLaterFuncs.push(function () {
49251 // only remove the class if this thread was the last one to update it
49252 if (_this.animationThreadCount === animationThreadCountCopy) {
49253 _this.gridBodyCtrl.setColumnMovingCss(false);
49254 }
49255 });
49256 };
49257 ColumnAnimationService.prototype.flush = function () {
49258 var nowFuncs = this.executeNextFuncs;
49259 this.executeNextFuncs = [];
49260 var waitFuncs = this.executeLaterFuncs;
49261 this.executeLaterFuncs = [];
49262 if (nowFuncs.length === 0 && waitFuncs.length === 0) {
49263 return;
49264 }
49265 window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);
49266 window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);
49267 };
49268 __decorate([
49269 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
49270 ], ColumnAnimationService.prototype, "ctrlsService", void 0);
49271 __decorate([
49272 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
49273 ], ColumnAnimationService.prototype, "postConstruct", null);
49274 ColumnAnimationService = __decorate([
49275 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnAnimationService')
49276 ], ColumnAnimationService);
49277 return ColumnAnimationService;
49278}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
49279
49280
49281
49282/***/ }),
49283/* 218 */
49284/***/ (function(module, __webpack_exports__, __webpack_require__) {
49285
49286"use strict";
49287__webpack_require__.r(__webpack_exports__);
49288/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaginationAutoPageSizeService", function() { return PaginationAutoPageSizeService; });
49289/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
49290/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25);
49291/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
49292/**
49293 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49294 * @version v29.2.0
49295 * @link https://www.ag-grid.com/
49296 * @license MIT
49297 */
49298var __extends = (undefined && undefined.__extends) || (function () {
49299 var extendStatics = function (d, b) {
49300 extendStatics = Object.setPrototypeOf ||
49301 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49302 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49303 return extendStatics(d, b);
49304 };
49305 return function (d, b) {
49306 extendStatics(d, b);
49307 function __() { this.constructor = d; }
49308 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49309 };
49310})();
49311var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49312 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49313 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49314 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;
49315 return c > 3 && r && Object.defineProperty(target, key, r), r;
49316};
49317
49318
49319
49320var PaginationAutoPageSizeService = /** @class */ (function (_super) {
49321 __extends(PaginationAutoPageSizeService, _super);
49322 function PaginationAutoPageSizeService() {
49323 return _super !== null && _super.apply(this, arguments) || this;
49324 }
49325 PaginationAutoPageSizeService.prototype.postConstruct = function () {
49326 var _this = this;
49327 this.ctrlsService.whenReady(function (p) {
49328 _this.centerRowContainerCon = p.centerRowContainerCtrl;
49329 _this.addManagedListener(_this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_HEIGHT_CHANGED, _this.onBodyHeightChanged.bind(_this));
49330 _this.addManagedListener(_this.eventService, _events__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, _this.onScrollVisibilityChanged.bind(_this));
49331 _this.checkPageSize();
49332 });
49333 };
49334 PaginationAutoPageSizeService.prototype.notActive = function () {
49335 return !this.gridOptionsService.is('paginationAutoPageSize');
49336 };
49337 PaginationAutoPageSizeService.prototype.onScrollVisibilityChanged = function () {
49338 this.checkPageSize();
49339 };
49340 PaginationAutoPageSizeService.prototype.onBodyHeightChanged = function () {
49341 this.checkPageSize();
49342 };
49343 PaginationAutoPageSizeService.prototype.checkPageSize = function () {
49344 if (this.notActive()) {
49345 return;
49346 }
49347 var rowHeight = this.gridOptionsService.getRowHeightAsNumber();
49348 var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();
49349 if (bodyHeight > 0) {
49350 var newPageSize = Math.floor(bodyHeight / rowHeight);
49351 this.gridOptionsService.set('paginationPageSize', newPageSize);
49352 }
49353 };
49354 __decorate([
49355 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('ctrlsService')
49356 ], PaginationAutoPageSizeService.prototype, "ctrlsService", void 0);
49357 __decorate([
49358 _context_context__WEBPACK_IMPORTED_MODULE_2__["PostConstruct"]
49359 ], PaginationAutoPageSizeService.prototype, "postConstruct", null);
49360 PaginationAutoPageSizeService = __decorate([
49361 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('paginationAutoPageSizeService')
49362 ], PaginationAutoPageSizeService);
49363 return PaginationAutoPageSizeService;
49364}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
49365
49366
49367
49368/***/ }),
49369/* 219 */
49370/***/ (function(module, __webpack_exports__, __webpack_require__) {
49371
49372"use strict";
49373__webpack_require__.r(__webpack_exports__);
49374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return ValueCache; });
49375/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
49376/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
49377/**
49378 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49379 * @version v29.2.0
49380 * @link https://www.ag-grid.com/
49381 * @license MIT
49382 */
49383var __extends = (undefined && undefined.__extends) || (function () {
49384 var extendStatics = function (d, b) {
49385 extendStatics = Object.setPrototypeOf ||
49386 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49387 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49388 return extendStatics(d, b);
49389 };
49390 return function (d, b) {
49391 extendStatics(d, b);
49392 function __() { this.constructor = d; }
49393 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49394 };
49395})();
49396var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49397 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49398 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49399 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;
49400 return c > 3 && r && Object.defineProperty(target, key, r), r;
49401};
49402
49403
49404var ValueCache = /** @class */ (function (_super) {
49405 __extends(ValueCache, _super);
49406 function ValueCache() {
49407 var _this = _super !== null && _super.apply(this, arguments) || this;
49408 _this.cacheVersion = 0;
49409 return _this;
49410 }
49411 ValueCache.prototype.init = function () {
49412 this.active = this.gridOptionsService.is('valueCache');
49413 this.neverExpires = this.gridOptionsService.is('valueCacheNeverExpires');
49414 };
49415 ValueCache.prototype.onDataChanged = function () {
49416 if (this.neverExpires) {
49417 return;
49418 }
49419 this.expire();
49420 };
49421 ValueCache.prototype.expire = function () {
49422 this.cacheVersion++;
49423 };
49424 ValueCache.prototype.setValue = function (rowNode, colId, value) {
49425 if (this.active) {
49426 if (rowNode.__cacheVersion !== this.cacheVersion) {
49427 rowNode.__cacheVersion = this.cacheVersion;
49428 rowNode.__cacheData = {};
49429 }
49430 rowNode.__cacheData[colId] = value;
49431 }
49432 };
49433 ValueCache.prototype.getValue = function (rowNode, colId) {
49434 if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {
49435 return undefined;
49436 }
49437 return rowNode.__cacheData[colId];
49438 };
49439 __decorate([
49440 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
49441 ], ValueCache.prototype, "init", null);
49442 ValueCache = __decorate([
49443 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('valueCache')
49444 ], ValueCache);
49445 return ValueCache;
49446}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
49447
49448
49449
49450/***/ }),
49451/* 220 */
49452/***/ (function(module, __webpack_exports__, __webpack_require__) {
49453
49454"use strict";
49455__webpack_require__.r(__webpack_exports__);
49456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ChangeDetectionService", function() { return ChangeDetectionService; });
49457/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
49458/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
49459/* harmony import */ var _utils_changedPath__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183);
49460/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25);
49461/**
49462 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49463 * @version v29.2.0
49464 * @link https://www.ag-grid.com/
49465 * @license MIT
49466 */
49467var __extends = (undefined && undefined.__extends) || (function () {
49468 var extendStatics = function (d, b) {
49469 extendStatics = Object.setPrototypeOf ||
49470 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49471 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49472 return extendStatics(d, b);
49473 };
49474 return function (d, b) {
49475 extendStatics(d, b);
49476 function __() { this.constructor = d; }
49477 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49478 };
49479})();
49480var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49481 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49482 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49483 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;
49484 return c > 3 && r && Object.defineProperty(target, key, r), r;
49485};
49486
49487
49488
49489
49490// Matches value in clipboard module
49491var SOURCE_PASTE = 'paste';
49492var ChangeDetectionService = /** @class */ (function (_super) {
49493 __extends(ChangeDetectionService, _super);
49494 function ChangeDetectionService() {
49495 return _super !== null && _super.apply(this, arguments) || this;
49496 }
49497 ChangeDetectionService.prototype.init = function () {
49498 if (this.rowModel.getType() === 'clientSide') {
49499 this.clientSideRowModel = this.rowModel;
49500 }
49501 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));
49502 };
49503 ChangeDetectionService.prototype.onCellValueChanged = function (event) {
49504 // Clipboard service manages its own change detection, so no need to do it here.
49505 // The clipboard manages its own as otherwise this would happen once for every cell
49506 // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,
49507 // this doChangeDetection would get called 100 times (once for each cell), instead clipboard
49508 // service executes the logic we have here once (in essence batching up all cell changes
49509 // into one change detection).
49510 if (event.source === SOURCE_PASTE) {
49511 return;
49512 }
49513 this.doChangeDetection(event.node, event.column);
49514 };
49515 ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {
49516 if (this.gridOptionsService.is('suppressChangeDetection')) {
49517 return;
49518 }
49519 // step 1 of change detection is to update the aggregated values
49520 if (this.clientSideRowModel && !rowNode.isRowPinned()) {
49521 var onlyChangedColumns = this.gridOptionsService.is('aggregateOnlyChangedColumns');
49522 var changedPath = new _utils_changedPath__WEBPACK_IMPORTED_MODULE_2__["ChangedPath"](onlyChangedColumns, this.clientSideRowModel.getRootNode());
49523 changedPath.addParentNode(rowNode.parent, [column]);
49524 this.clientSideRowModel.doAggregate(changedPath);
49525 }
49526 // step 2 of change detection is to refresh the cells
49527 this.rowRenderer.refreshCells();
49528 };
49529 __decorate([
49530 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
49531 ], ChangeDetectionService.prototype, "rowModel", void 0);
49532 __decorate([
49533 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowRenderer')
49534 ], ChangeDetectionService.prototype, "rowRenderer", void 0);
49535 __decorate([
49536 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
49537 ], ChangeDetectionService.prototype, "init", null);
49538 ChangeDetectionService = __decorate([
49539 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('changeDetectionService')
49540 ], ChangeDetectionService);
49541 return ChangeDetectionService;
49542}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
49543
49544
49545
49546/***/ }),
49547/* 221 */
49548/***/ (function(module, __webpack_exports__, __webpack_require__) {
49549
49550"use strict";
49551__webpack_require__.r(__webpack_exports__);
49552/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AgComponentUtils", function() { return AgComponentUtils; });
49553/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
49554/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
49555/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
49556/**
49557 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49558 * @version v29.2.0
49559 * @link https://www.ag-grid.com/
49560 * @license MIT
49561 */
49562var __extends = (undefined && undefined.__extends) || (function () {
49563 var extendStatics = function (d, b) {
49564 extendStatics = Object.setPrototypeOf ||
49565 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49566 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49567 return extendStatics(d, b);
49568 };
49569 return function (d, b) {
49570 extendStatics(d, b);
49571 function __() { this.constructor = d; }
49572 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49573 };
49574})();
49575var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49576 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49577 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49578 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;
49579 return c > 3 && r && Object.defineProperty(target, key, r), r;
49580};
49581
49582
49583
49584var AgComponentUtils = /** @class */ (function (_super) {
49585 __extends(AgComponentUtils, _super);
49586 function AgComponentUtils() {
49587 return _super !== null && _super.apply(this, arguments) || this;
49588 }
49589 AgComponentUtils.prototype.adaptFunction = function (propertyName, jsCompFunc) {
49590 var metadata = this.componentMetadataProvider.retrieve(propertyName);
49591 if (metadata && metadata.functionAdapter) {
49592 return metadata.functionAdapter(jsCompFunc);
49593 }
49594 return null;
49595 };
49596 AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {
49597 var Adapter = /** @class */ (function () {
49598 function Adapter() {
49599 }
49600 Adapter.prototype.refresh = function (params) {
49601 return false;
49602 };
49603 Adapter.prototype.getGui = function () {
49604 return this.eGui;
49605 };
49606 Adapter.prototype.init = function (params) {
49607 var callbackResult = callback(params);
49608 var type = typeof callbackResult;
49609 if (type === 'string' || type === 'number' || type === 'boolean') {
49610 this.eGui = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span>' + callbackResult + '</span>');
49611 return;
49612 }
49613 if (callbackResult == null) {
49614 this.eGui = Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["loadTemplate"])('<span></span>');
49615 return;
49616 }
49617 this.eGui = callbackResult;
49618 };
49619 return Adapter;
49620 }());
49621 return Adapter;
49622 };
49623 AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {
49624 if (!candidate) {
49625 return false;
49626 }
49627 return candidate.prototype && 'getGui' in candidate.prototype;
49628 };
49629 __decorate([
49630 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("componentMetadataProvider")
49631 ], AgComponentUtils.prototype, "componentMetadataProvider", void 0);
49632 AgComponentUtils = __decorate([
49633 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])("agComponentUtils")
49634 ], AgComponentUtils);
49635 return AgComponentUtils;
49636}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
49637
49638
49639
49640/***/ }),
49641/* 222 */
49642/***/ (function(module, __webpack_exports__, __webpack_require__) {
49643
49644"use strict";
49645__webpack_require__.r(__webpack_exports__);
49646/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ComponentMetadataProvider", function() { return ComponentMetadataProvider; });
49647/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
49648/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
49649/**
49650 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49651 * @version v29.2.0
49652 * @link https://www.ag-grid.com/
49653 * @license MIT
49654 */
49655var __extends = (undefined && undefined.__extends) || (function () {
49656 var extendStatics = function (d, b) {
49657 extendStatics = Object.setPrototypeOf ||
49658 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49659 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49660 return extendStatics(d, b);
49661 };
49662 return function (d, b) {
49663 extendStatics(d, b);
49664 function __() { this.constructor = d; }
49665 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49666 };
49667})();
49668var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49669 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49670 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49671 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;
49672 return c > 3 && r && Object.defineProperty(target, key, r), r;
49673};
49674
49675
49676var ComponentMetadataProvider = /** @class */ (function (_super) {
49677 __extends(ComponentMetadataProvider, _super);
49678 function ComponentMetadataProvider() {
49679 return _super !== null && _super.apply(this, arguments) || this;
49680 }
49681 ComponentMetadataProvider.prototype.postConstruct = function () {
49682 this.componentMetaData = {
49683 dateComponent: {
49684 mandatoryMethodList: ['getDate', 'setDate'],
49685 optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']
49686 },
49687 detailCellRenderer: {
49688 mandatoryMethodList: [],
49689 optionalMethodList: ['refresh'],
49690 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
49691 },
49692 headerComponent: {
49693 mandatoryMethodList: [],
49694 optionalMethodList: ['refresh']
49695 },
49696 headerGroupComponent: {
49697 mandatoryMethodList: [],
49698 optionalMethodList: []
49699 },
49700 loadingCellRenderer: {
49701 mandatoryMethodList: [],
49702 optionalMethodList: []
49703 },
49704 loadingOverlayComponent: {
49705 mandatoryMethodList: [],
49706 optionalMethodList: []
49707 },
49708 noRowsOverlayComponent: {
49709 mandatoryMethodList: [],
49710 optionalMethodList: []
49711 },
49712 floatingFilterComponent: {
49713 mandatoryMethodList: ['onParentModelChanged'],
49714 optionalMethodList: ['afterGuiAttached']
49715 },
49716 floatingFilterWrapperComponent: {
49717 mandatoryMethodList: [],
49718 optionalMethodList: []
49719 },
49720 cellRenderer: {
49721 mandatoryMethodList: [],
49722 optionalMethodList: ['refresh', 'afterGuiAttached'],
49723 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
49724 },
49725 cellEditor: {
49726 mandatoryMethodList: ['getValue'],
49727 optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']
49728 },
49729 innerRenderer: {
49730 mandatoryMethodList: [],
49731 optionalMethodList: ['afterGuiAttached'],
49732 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
49733 },
49734 fullWidthCellRenderer: {
49735 mandatoryMethodList: [],
49736 optionalMethodList: ['refresh', 'afterGuiAttached'],
49737 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
49738 },
49739 groupRowRenderer: {
49740 mandatoryMethodList: [],
49741 optionalMethodList: ['afterGuiAttached'],
49742 functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)
49743 },
49744 filter: {
49745 mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],
49746 optionalMethodList: ['afterGuiAttached', 'afterGuiDetached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']
49747 },
49748 filterComponent: {
49749 mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],
49750 optionalMethodList: ['afterGuiAttached', 'afterGuiDetached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']
49751 },
49752 statusPanel: {
49753 mandatoryMethodList: [],
49754 optionalMethodList: ['afterGuiAttached'],
49755 },
49756 toolPanel: {
49757 mandatoryMethodList: [],
49758 optionalMethodList: ['refresh', 'afterGuiAttached']
49759 },
49760 tooltipComponent: {
49761 mandatoryMethodList: [],
49762 optionalMethodList: []
49763 }
49764 };
49765 };
49766 ComponentMetadataProvider.prototype.retrieve = function (name) {
49767 return this.componentMetaData[name];
49768 };
49769 __decorate([
49770 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("agComponentUtils")
49771 ], ComponentMetadataProvider.prototype, "agComponentUtils", void 0);
49772 __decorate([
49773 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
49774 ], ComponentMetadataProvider.prototype, "postConstruct", null);
49775 ComponentMetadataProvider = __decorate([
49776 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])("componentMetadataProvider")
49777 ], ComponentMetadataProvider);
49778 return ComponentMetadataProvider;
49779}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
49780
49781
49782
49783/***/ }),
49784/* 223 */
49785/***/ (function(module, __webpack_exports__, __webpack_require__) {
49786
49787"use strict";
49788__webpack_require__.r(__webpack_exports__);
49789/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return Environment; });
49790/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
49791/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
49792/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
49793/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
49794/**
49795 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
49796 * @version v29.2.0
49797 * @link https://www.ag-grid.com/
49798 * @license MIT
49799 */
49800var __extends = (undefined && undefined.__extends) || (function () {
49801 var extendStatics = function (d, b) {
49802 extendStatics = Object.setPrototypeOf ||
49803 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
49804 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
49805 return extendStatics(d, b);
49806 };
49807 return function (d, b) {
49808 extendStatics(d, b);
49809 function __() { this.constructor = d; }
49810 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
49811 };
49812})();
49813var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
49814 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
49815 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
49816 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;
49817 return c > 3 && r && Object.defineProperty(target, key, r), r;
49818};
49819var __read = (undefined && undefined.__read) || function (o, n) {
49820 var m = typeof Symbol === "function" && o[Symbol.iterator];
49821 if (!m) return o;
49822 var i = m.call(o), r, ar = [], e;
49823 try {
49824 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
49825 }
49826 catch (error) { e = { error: error }; }
49827 finally {
49828 try {
49829 if (r && !r.done && (m = i["return"])) m.call(i);
49830 }
49831 finally { if (e) throw e.error; }
49832 }
49833 return ar;
49834};
49835var __spread = (undefined && undefined.__spread) || function () {
49836 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
49837 return ar;
49838};
49839
49840
49841
49842
49843var DEFAULT_ROW_HEIGHT = 25;
49844var MIN_COL_WIDTH = 10;
49845var MAT_GRID_SIZE = 8;
49846var BASE_GRID_SIZE = 4;
49847var BALHAM_GRID_SIZE = 4;
49848var ALPINE_GRID_SIZE = 6;
49849var HARD_CODED_SIZES = {
49850 // this item is required for custom themes
49851 'ag-theme-custom': {
49852 headerHeight: 25,
49853 headerCellMinWidth: 24,
49854 listItemHeight: BASE_GRID_SIZE * 5,
49855 rowHeight: 25,
49856 chartMenuPanelWidth: 220
49857 },
49858 'ag-theme-material': {
49859 headerHeight: MAT_GRID_SIZE * 7,
49860 headerCellMinWidth: 48,
49861 listItemHeight: MAT_GRID_SIZE * 4,
49862 rowHeight: MAT_GRID_SIZE * 6,
49863 chartMenuPanelWidth: 240
49864 },
49865 'ag-theme-balham': {
49866 headerHeight: BALHAM_GRID_SIZE * 8,
49867 headerCellMinWidth: 24,
49868 listItemHeight: BALHAM_GRID_SIZE * 6,
49869 rowHeight: BALHAM_GRID_SIZE * 7,
49870 chartMenuPanelWidth: 220
49871 },
49872 'ag-theme-alpine': {
49873 headerHeight: ALPINE_GRID_SIZE * 8,
49874 headerCellMinWidth: 36,
49875 listItemHeight: ALPINE_GRID_SIZE * 4,
49876 rowHeight: ALPINE_GRID_SIZE * 7,
49877 chartMenuPanelWidth: 240
49878 }
49879};
49880/**
49881 * this object contains a list of Sass variables and an array
49882 * of CSS styles required to get the correct value.
49883 * eg. $virtual-item-height requires a structure, so we can get its height.
49884 * <div class="ag-theme-balham">
49885 * <div class="ag-virtual-list-container">
49886 * <div class="ag-virtual-list-item"></div>
49887 * </div>
49888 * </div>
49889 */
49890var SASS_PROPERTY_BUILDER = {
49891 headerHeight: ['ag-header-row'],
49892 headerCellMinWidth: ['ag-header-cell'],
49893 listItemHeight: ['ag-virtual-list-item'],
49894 rowHeight: ['ag-row'],
49895 chartMenuPanelWidth: ['ag-chart-docked-container']
49896};
49897var Environment = /** @class */ (function (_super) {
49898 __extends(Environment, _super);
49899 function Environment() {
49900 var _this = _super !== null && _super.apply(this, arguments) || this;
49901 _this.calculatedSizes = {};
49902 return _this;
49903 }
49904 Environment.prototype.postConstruct = function () {
49905 var _this = this;
49906 var _a;
49907 var el = (_a = this.getTheme().el) !== null && _a !== void 0 ? _a : this.eGridDiv;
49908 this.mutationObserver = new MutationObserver(function () {
49909 _this.calculatedSizes = {};
49910 _this.fireGridStylesChangedEvent();
49911 });
49912 this.mutationObserver.observe(el || this.eGridDiv, {
49913 attributes: true,
49914 attributeFilter: ['class']
49915 });
49916 };
49917 Environment.prototype.fireGridStylesChangedEvent = function () {
49918 var event = {
49919 type: _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_GRID_STYLES_CHANGED
49920 };
49921 this.eventService.dispatchEvent(event);
49922 };
49923 Environment.prototype.getSassVariable = function (key) {
49924 var _a = this.getTheme(), themeFamily = _a.themeFamily, el = _a.el;
49925 if (!themeFamily || themeFamily.indexOf('ag-theme') !== 0) {
49926 return;
49927 }
49928 if (!this.calculatedSizes) {
49929 this.calculatedSizes = {};
49930 }
49931 if (!this.calculatedSizes[themeFamily]) {
49932 this.calculatedSizes[themeFamily] = {};
49933 }
49934 var size = this.calculatedSizes[themeFamily][key];
49935 if (size != null) {
49936 return size;
49937 }
49938 this.calculatedSizes[themeFamily][key] = this.calculateValueForSassProperty(key, themeFamily, el);
49939 return this.calculatedSizes[themeFamily][key];
49940 };
49941 Environment.prototype.calculateValueForSassProperty = function (property, theme, themeElement) {
49942 var _a;
49943 var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');
49944 var defaultValue = HARD_CODED_SIZES[useTheme][property];
49945 var eDocument = this.gridOptionsService.getDocument();
49946 if (!themeElement) {
49947 themeElement = this.eGridDiv;
49948 }
49949 if (!SASS_PROPERTY_BUILDER[property]) {
49950 return defaultValue;
49951 }
49952 var classList = SASS_PROPERTY_BUILDER[property];
49953 var div = eDocument.createElement('div');
49954 // this will apply SASS variables that were manually added to the current theme
49955 var classesFromThemeElement = Array.from(themeElement.classList);
49956 (_a = div.classList).add.apply(_a, __spread([theme], classesFromThemeElement));
49957 div.style.position = 'absolute';
49958 var el = classList.reduce(function (prevEl, currentClass) {
49959 var currentDiv = eDocument.createElement('div');
49960 currentDiv.style.position = 'static';
49961 currentDiv.classList.add(currentClass);
49962 prevEl.appendChild(currentDiv);
49963 return currentDiv;
49964 }, div);
49965 var calculatedValue = 0;
49966 if (eDocument.body) {
49967 eDocument.body.appendChild(div);
49968 var sizeName = property.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';
49969 calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);
49970 eDocument.body.removeChild(div);
49971 }
49972 return calculatedValue || defaultValue;
49973 };
49974 Environment.prototype.isThemeDark = function () {
49975 var theme = this.getTheme().theme;
49976 return !!theme && theme.indexOf('dark') >= 0;
49977 };
49978 Environment.prototype.chartMenuPanelWidth = function () {
49979 return this.getSassVariable('chartMenuPanelWidth');
49980 };
49981 Environment.prototype.getTheme = function () {
49982 var reg = /\bag-(material|(?:theme-([\w\-]*)))\b/g;
49983 var el = this.eGridDiv;
49984 var themeMatch = null;
49985 var allThemes = [];
49986 while (el) {
49987 themeMatch = reg.exec(el.className);
49988 if (!themeMatch) {
49989 el = el.parentElement || undefined;
49990 }
49991 else {
49992 var matched = el.className.match(reg);
49993 if (matched) {
49994 allThemes = matched;
49995 }
49996 break;
49997 }
49998 }
49999 if (!themeMatch) {
50000 return { allThemes: allThemes };
50001 }
50002 var theme = themeMatch[0];
50003 return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, ''), allThemes: allThemes };
50004 };
50005 Environment.prototype.getFromTheme = function (defaultValue, sassVariableName) {
50006 var _a;
50007 return (_a = this.getSassVariable(sassVariableName)) !== null && _a !== void 0 ? _a : defaultValue;
50008 };
50009 Environment.prototype.getDefaultRowHeight = function () {
50010 return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');
50011 };
50012 Environment.prototype.getListItemHeight = function () {
50013 return this.getFromTheme(20, 'listItemHeight');
50014 };
50015 Environment.prototype.setRowHeightVariable = function (height) {
50016 var oldRowHeight = this.eGridDiv.style.getPropertyValue('--ag-line-height').trim();
50017 var newRowHeight = height + "px";
50018 if (oldRowHeight != newRowHeight) {
50019 this.eGridDiv.style.setProperty('--ag-line-height', newRowHeight);
50020 }
50021 };
50022 Environment.prototype.getMinColWidth = function () {
50023 var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');
50024 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(measuredMin) ? Math.max(measuredMin, MIN_COL_WIDTH) : MIN_COL_WIDTH;
50025 };
50026 Environment.prototype.destroy = function () {
50027 this.calculatedSizes = null;
50028 if (this.mutationObserver) {
50029 this.mutationObserver.disconnect();
50030 }
50031 _super.prototype.destroy.call(this);
50032 };
50033 __decorate([
50034 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('eGridDiv')
50035 ], Environment.prototype, "eGridDiv", void 0);
50036 __decorate([
50037 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50038 ], Environment.prototype, "postConstruct", null);
50039 Environment = __decorate([
50040 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('environment')
50041 ], Environment);
50042 return Environment;
50043}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
50044
50045
50046
50047/***/ }),
50048/* 224 */
50049/***/ (function(module, __webpack_exports__, __webpack_require__) {
50050
50051"use strict";
50052__webpack_require__.r(__webpack_exports__);
50053/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowContainerHeightService", function() { return RowContainerHeightService; });
50054/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
50055/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
50056/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
50057/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42);
50058/**
50059 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50060 * @version v29.2.0
50061 * @link https://www.ag-grid.com/
50062 * @license MIT
50063 */
50064var __extends = (undefined && undefined.__extends) || (function () {
50065 var extendStatics = function (d, b) {
50066 extendStatics = Object.setPrototypeOf ||
50067 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50068 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
50069 return extendStatics(d, b);
50070 };
50071 return function (d, b) {
50072 extendStatics(d, b);
50073 function __() { this.constructor = d; }
50074 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50075 };
50076})();
50077var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50078 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50079 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50080 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;
50081 return c > 3 && r && Object.defineProperty(target, key, r), r;
50082};
50083var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
50084 return function (target, key) { decorator(target, key, paramIndex); }
50085};
50086
50087
50088
50089
50090/**
50091 * This class solves the 'max height' problem, where the user might want to show more data than
50092 * the max div height actually allows.
50093 */
50094var RowContainerHeightService = /** @class */ (function (_super) {
50095 __extends(RowContainerHeightService, _super);
50096 function RowContainerHeightService() {
50097 var _this = _super !== null && _super.apply(this, arguments) || this;
50098 // the scrollY position
50099 _this.scrollY = 0;
50100 // how tall the body is
50101 _this.uiBodyHeight = 0;
50102 return _this;
50103 }
50104 RowContainerHeightService.prototype.agWire = function (loggerFactory) {
50105 this.logger = loggerFactory.create("RowContainerHeightService");
50106 };
50107 RowContainerHeightService.prototype.postConstruct = function () {
50108 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));
50109 this.maxDivHeight = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_3__["getMaxDivHeight"])();
50110 this.logger.log('maxDivHeight = ' + this.maxDivHeight);
50111 };
50112 RowContainerHeightService.prototype.isStretching = function () {
50113 return this.stretching;
50114 };
50115 RowContainerHeightService.prototype.getDivStretchOffset = function () {
50116 return this.divStretchOffset;
50117 };
50118 RowContainerHeightService.prototype.updateOffset = function () {
50119 if (!this.stretching) {
50120 return;
50121 }
50122 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
50123 var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;
50124 var newBodyHeight = this.getUiBodyHeight();
50125 var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;
50126 if (atLeastOneChanged) {
50127 this.scrollY = newScrollY;
50128 this.uiBodyHeight = newBodyHeight;
50129 this.calculateOffset();
50130 }
50131 };
50132 RowContainerHeightService.prototype.calculateOffset = function () {
50133 this.setUiContainerHeight(this.maxDivHeight);
50134 this.pixelsToShave = this.modelHeight - this.uiContainerHeight;
50135 this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;
50136 var scrollPercent = this.scrollY / this.maxScrollY;
50137 var divStretchOffset = scrollPercent * this.pixelsToShave;
50138 this.logger.log("Div Stretch Offset = " + divStretchOffset + " (" + this.pixelsToShave + " * " + scrollPercent + ")");
50139 this.setDivStretchOffset(divStretchOffset);
50140 };
50141 RowContainerHeightService.prototype.setUiContainerHeight = function (height) {
50142 if (height !== this.uiContainerHeight) {
50143 this.uiContainerHeight = height;
50144 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_ROW_CONTAINER_HEIGHT_CHANGED });
50145 }
50146 };
50147 RowContainerHeightService.prototype.clearOffset = function () {
50148 this.setUiContainerHeight(this.modelHeight);
50149 this.pixelsToShave = 0;
50150 this.setDivStretchOffset(0);
50151 };
50152 RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {
50153 // because we are talking pixels, no point in confusing things with half numbers
50154 var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;
50155 if (this.divStretchOffset === newOffsetFloor) {
50156 return;
50157 }
50158 this.divStretchOffset = newOffsetFloor;
50159 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_HEIGHT_SCALE_CHANGED });
50160 };
50161 RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {
50162 this.modelHeight = modelHeight;
50163 this.stretching = modelHeight != null // null happens when in print layout
50164 && this.maxDivHeight > 0
50165 && modelHeight > this.maxDivHeight;
50166 if (this.stretching) {
50167 this.calculateOffset();
50168 }
50169 else {
50170 this.clearOffset();
50171 }
50172 };
50173 RowContainerHeightService.prototype.getUiContainerHeight = function () {
50174 return this.uiContainerHeight;
50175 };
50176 RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {
50177 return modelPixel - this.divStretchOffset;
50178 };
50179 RowContainerHeightService.prototype.getUiBodyHeight = function () {
50180 var gridBodyCon = this.ctrlsService.getGridBodyCtrl();
50181 var pos = gridBodyCon.getScrollFeature().getVScrollPosition();
50182 return pos.bottom - pos.top;
50183 };
50184 RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {
50185 if (this.pixelsToShave <= 0) {
50186 return rowTop;
50187 }
50188 var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();
50189 var scrollPercent = rowTop / modelMaxScroll;
50190 var scrollPixel = this.maxScrollY * scrollPercent;
50191 return scrollPixel;
50192 };
50193 __decorate([
50194 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('ctrlsService')
50195 ], RowContainerHeightService.prototype, "ctrlsService", void 0);
50196 __decorate([
50197 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])("loggerFactory"))
50198 ], RowContainerHeightService.prototype, "agWire", null);
50199 __decorate([
50200 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
50201 ], RowContainerHeightService.prototype, "postConstruct", null);
50202 RowContainerHeightService = __decorate([
50203 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowContainerHeightService')
50204 ], RowContainerHeightService);
50205 return RowContainerHeightService;
50206}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
50207
50208
50209
50210/***/ }),
50211/* 225 */
50212/***/ (function(module, __webpack_exports__, __webpack_require__) {
50213
50214"use strict";
50215__webpack_require__.r(__webpack_exports__);
50216/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return SelectableService; });
50217/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
50218/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
50219/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
50220/**
50221 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50222 * @version v29.2.0
50223 * @link https://www.ag-grid.com/
50224 * @license MIT
50225 */
50226var __extends = (undefined && undefined.__extends) || (function () {
50227 var extendStatics = function (d, b) {
50228 extendStatics = Object.setPrototypeOf ||
50229 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50230 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
50231 return extendStatics(d, b);
50232 };
50233 return function (d, b) {
50234 extendStatics(d, b);
50235 function __() { this.constructor = d; }
50236 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50237 };
50238})();
50239var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50240 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50241 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50242 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;
50243 return c > 3 && r && Object.defineProperty(target, key, r), r;
50244};
50245
50246
50247
50248var SelectableService = /** @class */ (function (_super) {
50249 __extends(SelectableService, _super);
50250 function SelectableService() {
50251 return _super !== null && _super.apply(this, arguments) || this;
50252 }
50253 SelectableService.prototype.init = function () {
50254 this.groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');
50255 this.isRowSelectableFunc = this.gridOptionsService.get('isRowSelectable');
50256 };
50257 SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {
50258 if (this.isRowSelectableFunc) {
50259 var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };
50260 this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);
50261 }
50262 };
50263 SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {
50264 var _this = this;
50265 if (!children) {
50266 return;
50267 }
50268 children.forEach(function (child) {
50269 if (!child.group) {
50270 return;
50271 } // only interested in groups
50272 if (child.hasChildren()) {
50273 _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);
50274 }
50275 var rowSelectable;
50276 if (_this.groupSelectsChildren) {
50277 // have this group selectable if at least one direct child is selectable
50278 var firstSelectable = (nextChildrenFunc(child) || []).find(function (rowNode) { return rowNode.selectable === true; });
50279 rowSelectable = Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(firstSelectable);
50280 }
50281 else {
50282 // directly retrieve selectable value from user callback
50283 rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;
50284 }
50285 child.setRowSelectable(rowSelectable);
50286 });
50287 };
50288 __decorate([
50289 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50290 ], SelectableService.prototype, "init", null);
50291 SelectableService = __decorate([
50292 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('selectableService')
50293 ], SelectableService);
50294 return SelectableService;
50295}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
50296
50297
50298
50299/***/ }),
50300/* 226 */
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__, "PaginationComp", function() { return PaginationComp; });
50306/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38);
50307/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
50308/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57);
50309/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(25);
50310/* harmony import */ var _utils_icon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46);
50311/* harmony import */ var _utils_number__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44);
50312/* harmony import */ var _utils_aria__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(41);
50313/* harmony import */ var _constants_keyCode__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48);
50314/**
50315 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50316 * @version v29.2.0
50317 * @link https://www.ag-grid.com/
50318 * @license MIT
50319 */
50320var __extends = (undefined && undefined.__extends) || (function () {
50321 var extendStatics = function (d, b) {
50322 extendStatics = Object.setPrototypeOf ||
50323 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50324 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
50325 return extendStatics(d, b);
50326 };
50327 return function (d, b) {
50328 extendStatics(d, b);
50329 function __() { this.constructor = d; }
50330 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50331 };
50332})();
50333var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50334 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50335 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50336 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;
50337 return c > 3 && r && Object.defineProperty(target, key, r), r;
50338};
50339
50340
50341
50342
50343
50344
50345
50346
50347var PaginationComp = /** @class */ (function (_super) {
50348 __extends(PaginationComp, _super);
50349 function PaginationComp() {
50350 var _this = _super.call(this) || this;
50351 _this.previousAndFirstButtonsDisabled = false;
50352 _this.nextButtonDisabled = false;
50353 _this.lastButtonDisabled = false;
50354 _this.areListenersSetup = false;
50355 return _this;
50356 }
50357 PaginationComp.prototype.postConstruct = function () {
50358 var isRtl = this.gridOptionsService.is('enableRtl');
50359 this.setTemplate(this.getTemplate());
50360 this.btFirst.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'last' : 'first', this.gridOptionsService));
50361 this.btPrevious.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'next' : 'previous', this.gridOptionsService));
50362 this.btNext.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'previous' : 'next', this.gridOptionsService));
50363 this.btLast.insertAdjacentElement('afterbegin', Object(_utils_icon__WEBPACK_IMPORTED_MODULE_4__["createIconNoSpan"])(isRtl ? 'first' : 'last', this.gridOptionsService));
50364 this.addManagedPropertyListener('pagination', this.onPaginationChanged.bind(this));
50365 this.addManagedPropertyListener('suppressPaginationPanel', this.onPaginationChanged.bind(this));
50366 this.onPaginationChanged();
50367 };
50368 PaginationComp.prototype.onPaginationChanged = function () {
50369 var isPaging = this.gridOptionsService.is('pagination');
50370 var paginationPanelEnabled = isPaging && !this.gridOptionsService.is('suppressPaginationPanel');
50371 this.setDisplayed(paginationPanelEnabled);
50372 if (!paginationPanelEnabled) {
50373 return;
50374 }
50375 this.setupListeners();
50376 this.enableOrDisableButtons();
50377 this.updateRowLabels();
50378 this.setCurrentPageLabel();
50379 this.setTotalLabels();
50380 };
50381 PaginationComp.prototype.setupListeners = function () {
50382 var _this = this;
50383 if (!this.areListenersSetup) {
50384 this.addManagedListener(this.eventService, _events__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));
50385 [
50386 { el: this.btFirst, fn: this.onBtFirst.bind(this) },
50387 { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },
50388 { el: this.btNext, fn: this.onBtNext.bind(this) },
50389 { el: this.btLast, fn: this.onBtLast.bind(this) }
50390 ].forEach(function (item) {
50391 var el = item.el, fn = item.fn;
50392 _this.addManagedListener(el, 'click', fn);
50393 _this.addManagedListener(el, 'keydown', function (e) {
50394 if (e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_7__["KeyCode"].ENTER || e.key === _constants_keyCode__WEBPACK_IMPORTED_MODULE_7__["KeyCode"].SPACE) {
50395 e.preventDefault();
50396 fn();
50397 }
50398 });
50399 });
50400 this.areListenersSetup = true;
50401 }
50402 };
50403 PaginationComp.prototype.onBtFirst = function () {
50404 if (!this.previousAndFirstButtonsDisabled) {
50405 this.paginationProxy.goToFirstPage();
50406 }
50407 };
50408 PaginationComp.prototype.setCurrentPageLabel = function () {
50409 var pagesExist = this.paginationProxy.getTotalPages() > 0;
50410 var currentPage = this.paginationProxy.getCurrentPage();
50411 var toDisplay = pagesExist ? currentPage + 1 : 0;
50412 this.lbCurrent.innerHTML = this.formatNumber(toDisplay);
50413 };
50414 PaginationComp.prototype.formatNumber = function (value) {
50415 var userFunc = this.gridOptionsService.getCallback('paginationNumberFormatter');
50416 if (userFunc) {
50417 var params = { value: value };
50418 return userFunc(params);
50419 }
50420 var localeTextFunc = this.localeService.getLocaleTextFunc();
50421 var thousandSeparator = localeTextFunc('thousandSeparator', ',');
50422 var decimalSeparator = localeTextFunc('decimalSeparator', '.');
50423 return Object(_utils_number__WEBPACK_IMPORTED_MODULE_5__["formatNumberCommas"])(value, thousandSeparator, decimalSeparator);
50424 };
50425 PaginationComp.prototype.getTemplate = function () {
50426 var localeTextFunc = this.localeService.getLocaleTextFunc();
50427 var strPage = localeTextFunc('page', 'Page');
50428 var strTo = localeTextFunc('to', 'to');
50429 var strOf = localeTextFunc('of', 'of');
50430 var strFirst = localeTextFunc('firstPage', 'First Page');
50431 var strPrevious = localeTextFunc('previousPage', 'Previous Page');
50432 var strNext = localeTextFunc('nextPage', 'Next Page');
50433 var strLast = localeTextFunc('lastPage', 'Last Page');
50434 var compId = this.getCompId();
50435 return /* html */ "<div class=\"ag-paging-panel ag-unselectable\" id=\"ag-" + compId + "\">\n <span class=\"ag-paging-row-summary-panel\" role=\"status\">\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 + "\"></div>\n <div ref=\"btPrevious\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strPrevious + "\"></div>\n <span class=\"ag-paging-description\" role=\"status\">\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 + "\"></div>\n <div ref=\"btLast\" class=\"ag-paging-button\" role=\"button\" aria-label=\"" + strLast + "\"></div>\n </span>\n </div>";
50436 };
50437 PaginationComp.prototype.onBtNext = function () {
50438 if (!this.nextButtonDisabled) {
50439 this.paginationProxy.goToNextPage();
50440 }
50441 };
50442 PaginationComp.prototype.onBtPrevious = function () {
50443 if (!this.previousAndFirstButtonsDisabled) {
50444 this.paginationProxy.goToPreviousPage();
50445 }
50446 };
50447 PaginationComp.prototype.onBtLast = function () {
50448 if (!this.lastButtonDisabled) {
50449 this.paginationProxy.goToLastPage();
50450 }
50451 };
50452 PaginationComp.prototype.enableOrDisableButtons = function () {
50453 var currentPage = this.paginationProxy.getCurrentPage();
50454 var maxRowFound = this.paginationProxy.isLastPageFound();
50455 var totalPages = this.paginationProxy.getTotalPages();
50456 this.previousAndFirstButtonsDisabled = currentPage === 0;
50457 this.toggleButtonDisabled(this.btFirst, this.previousAndFirstButtonsDisabled);
50458 this.toggleButtonDisabled(this.btPrevious, this.previousAndFirstButtonsDisabled);
50459 var zeroPagesToDisplay = this.isZeroPagesToDisplay();
50460 var onLastPage = maxRowFound && currentPage === (totalPages - 1);
50461 this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;
50462 this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);
50463 this.toggleButtonDisabled(this.btNext, this.nextButtonDisabled);
50464 this.toggleButtonDisabled(this.btLast, this.lastButtonDisabled);
50465 };
50466 PaginationComp.prototype.toggleButtonDisabled = function (button, disabled) {
50467 Object(_utils_aria__WEBPACK_IMPORTED_MODULE_6__["setAriaDisabled"])(button, disabled);
50468 button.classList.toggle('ag-disabled', disabled);
50469 if (disabled) {
50470 button.removeAttribute('tabindex');
50471 }
50472 else {
50473 button.setAttribute('tabindex', '0');
50474 }
50475 };
50476 PaginationComp.prototype.updateRowLabels = function () {
50477 var currentPage = this.paginationProxy.getCurrentPage();
50478 var pageSize = this.paginationProxy.getPageSize();
50479 var maxRowFound = this.paginationProxy.isLastPageFound();
50480 var rowCount = this.paginationProxy.isLastPageFound() ?
50481 this.paginationProxy.getMasterRowCount() : null;
50482 var startRow;
50483 var endRow;
50484 if (this.isZeroPagesToDisplay()) {
50485 startRow = endRow = 0;
50486 }
50487 else {
50488 startRow = (pageSize * currentPage) + 1;
50489 endRow = startRow + pageSize - 1;
50490 if (maxRowFound && endRow > rowCount) {
50491 endRow = rowCount;
50492 }
50493 }
50494 this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);
50495 if (this.rowNodeBlockLoader.isLoading()) {
50496 this.lbLastRowOnPage.innerHTML = '?';
50497 }
50498 else {
50499 this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);
50500 }
50501 };
50502 PaginationComp.prototype.isZeroPagesToDisplay = function () {
50503 var maxRowFound = this.paginationProxy.isLastPageFound();
50504 var totalPages = this.paginationProxy.getTotalPages();
50505 return maxRowFound && totalPages === 0;
50506 };
50507 PaginationComp.prototype.setTotalLabels = function () {
50508 var lastPageFound = this.paginationProxy.isLastPageFound();
50509 var totalPages = this.paginationProxy.getTotalPages();
50510 var rowCount = lastPageFound ? this.paginationProxy.getMasterRowCount() : null;
50511 // When `pivotMode=true` and no grouping or value columns exist, a single 'hidden' group row (root node) is in
50512 // the grid and the pagination totals will correctly display total = 1. However this is confusing to users as
50513 // they can't see it. To address this UX issue we simply set the totals to zero in the pagination panel.
50514 if (rowCount === 1) {
50515 var firstRow = this.paginationProxy.getRow(0);
50516 // a group node with no group or agg data will not be visible to users
50517 var hiddenGroupRow = firstRow && firstRow.group && !(firstRow.groupData || firstRow.aggData);
50518 if (hiddenGroupRow) {
50519 this.setTotalLabelsToZero();
50520 return;
50521 }
50522 }
50523 if (lastPageFound) {
50524 this.lbTotal.innerHTML = this.formatNumber(totalPages);
50525 this.lbRecordCount.innerHTML = this.formatNumber(rowCount);
50526 }
50527 else {
50528 var moreText = this.localeService.getLocaleTextFunc()('more', 'more');
50529 this.lbTotal.innerHTML = moreText;
50530 this.lbRecordCount.innerHTML = moreText;
50531 }
50532 };
50533 PaginationComp.prototype.setTotalLabelsToZero = function () {
50534 this.lbFirstRowOnPage.innerHTML = this.formatNumber(0);
50535 this.lbCurrent.innerHTML = this.formatNumber(0);
50536 this.lbLastRowOnPage.innerHTML = this.formatNumber(0);
50537 this.lbTotal.innerHTML = this.formatNumber(0);
50538 this.lbRecordCount.innerHTML = this.formatNumber(0);
50539 };
50540 __decorate([
50541 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('paginationProxy')
50542 ], PaginationComp.prototype, "paginationProxy", void 0);
50543 __decorate([
50544 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowNodeBlockLoader')
50545 ], PaginationComp.prototype, "rowNodeBlockLoader", void 0);
50546 __decorate([
50547 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btFirst')
50548 ], PaginationComp.prototype, "btFirst", void 0);
50549 __decorate([
50550 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btPrevious')
50551 ], PaginationComp.prototype, "btPrevious", void 0);
50552 __decorate([
50553 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btNext')
50554 ], PaginationComp.prototype, "btNext", void 0);
50555 __decorate([
50556 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('btLast')
50557 ], PaginationComp.prototype, "btLast", void 0);
50558 __decorate([
50559 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbRecordCount')
50560 ], PaginationComp.prototype, "lbRecordCount", void 0);
50561 __decorate([
50562 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbFirstRowOnPage')
50563 ], PaginationComp.prototype, "lbFirstRowOnPage", void 0);
50564 __decorate([
50565 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbLastRowOnPage')
50566 ], PaginationComp.prototype, "lbLastRowOnPage", void 0);
50567 __decorate([
50568 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbCurrent')
50569 ], PaginationComp.prototype, "lbCurrent", void 0);
50570 __decorate([
50571 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('lbTotal')
50572 ], PaginationComp.prototype, "lbTotal", void 0);
50573 __decorate([
50574 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
50575 ], PaginationComp.prototype, "postConstruct", null);
50576 return PaginationComp;
50577}(_widgets_component__WEBPACK_IMPORTED_MODULE_0__["Component"]));
50578
50579
50580
50581/***/ }),
50582/* 227 */
50583/***/ (function(module, __webpack_exports__, __webpack_require__) {
50584
50585"use strict";
50586__webpack_require__.r(__webpack_exports__);
50587/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OverlayWrapperComponent", function() { return OverlayWrapperComponent; });
50588/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
50589/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38);
50590/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57);
50591/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45);
50592/* harmony import */ var _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(117);
50593/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26);
50594/**
50595 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50596 * @version v29.2.0
50597 * @link https://www.ag-grid.com/
50598 * @license MIT
50599 */
50600var __extends = (undefined && undefined.__extends) || (function () {
50601 var extendStatics = function (d, b) {
50602 extendStatics = Object.setPrototypeOf ||
50603 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50604 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
50605 return extendStatics(d, b);
50606 };
50607 return function (d, b) {
50608 extendStatics(d, b);
50609 function __() { this.constructor = d; }
50610 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50611 };
50612})();
50613var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50614 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50615 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50616 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;
50617 return c > 3 && r && Object.defineProperty(target, key, r), r;
50618};
50619
50620
50621
50622
50623
50624
50625var LoadingType;
50626(function (LoadingType) {
50627 LoadingType[LoadingType["Loading"] = 0] = "Loading";
50628 LoadingType[LoadingType["NoRows"] = 1] = "NoRows";
50629})(LoadingType || (LoadingType = {}));
50630var OverlayWrapperComponent = /** @class */ (function (_super) {
50631 __extends(OverlayWrapperComponent, _super);
50632 function OverlayWrapperComponent() {
50633 var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;
50634 _this.inProgress = false;
50635 _this.destroyRequested = false;
50636 _this.manuallyDisplayed = false;
50637 return _this;
50638 }
50639 OverlayWrapperComponent.prototype.updateLayoutClasses = function (cssClass, params) {
50640 var overlayWrapperClassList = this.eOverlayWrapper.classList;
50641 overlayWrapperClassList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].AUTO_HEIGHT, params.autoHeight);
50642 overlayWrapperClassList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].NORMAL, params.normal);
50643 overlayWrapperClassList.toggle(_styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutCssClasses"].PRINT, params.print);
50644 };
50645 OverlayWrapperComponent.prototype.postConstruct = function () {
50646 this.createManagedBean(new _styling_layoutFeature__WEBPACK_IMPORTED_MODULE_4__["LayoutFeature"](this));
50647 this.setDisplayed(false, { skipAriaHidden: true });
50648 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_ROW_DATA_UPDATED, this.onRowDataUpdated.bind(this));
50649 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_5__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));
50650 if (this.gridOptionsService.isRowModelType('clientSide') && !this.gridOptionsService.get('rowData')) {
50651 this.showLoadingOverlay();
50652 }
50653 this.gridApi.registerOverlayWrapperComp(this);
50654 };
50655 OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {
50656 var overlayWrapperClassList = this.eOverlayWrapper.classList;
50657 overlayWrapperClassList.toggle('ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);
50658 overlayWrapperClassList.toggle('ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);
50659 };
50660 OverlayWrapperComponent.prototype.showLoadingOverlay = function () {
50661 if (this.gridOptionsService.is('suppressLoadingOverlay')) {
50662 return;
50663 }
50664 var params = {};
50665 var compDetails = this.userComponentFactory.getLoadingOverlayCompDetails(params);
50666 var promise = compDetails.newAgStackInstance();
50667 this.showOverlay(promise, LoadingType.Loading);
50668 };
50669 OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {
50670 if (this.gridOptionsService.is('suppressNoRowsOverlay')) {
50671 return;
50672 }
50673 var params = {};
50674 var compDetails = this.userComponentFactory.getNoRowsOverlayCompDetails(params);
50675 var promise = compDetails.newAgStackInstance();
50676 this.showOverlay(promise, LoadingType.NoRows);
50677 };
50678 OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {
50679 var _this = this;
50680 if (this.inProgress) {
50681 return;
50682 }
50683 this.setWrapperTypeClass(type);
50684 this.destroyActiveOverlay();
50685 this.inProgress = true;
50686 if (workItem) {
50687 workItem.then(function (comp) {
50688 _this.inProgress = false;
50689 _this.eOverlayWrapper.appendChild(comp.getGui());
50690 _this.activeOverlay = comp;
50691 if (_this.destroyRequested) {
50692 _this.destroyRequested = false;
50693 _this.destroyActiveOverlay();
50694 }
50695 });
50696 }
50697 this.manuallyDisplayed = this.columnModel.isReady() && !this.paginationProxy.isEmpty();
50698 this.setDisplayed(true, { skipAriaHidden: true });
50699 };
50700 OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {
50701 if (this.inProgress) {
50702 this.destroyRequested = true;
50703 return;
50704 }
50705 if (!this.activeOverlay) {
50706 return;
50707 }
50708 this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);
50709 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_3__["clearElement"])(this.eOverlayWrapper);
50710 };
50711 OverlayWrapperComponent.prototype.hideOverlay = function () {
50712 this.manuallyDisplayed = false;
50713 this.destroyActiveOverlay();
50714 this.setDisplayed(false, { skipAriaHidden: true });
50715 };
50716 OverlayWrapperComponent.prototype.destroy = function () {
50717 this.destroyActiveOverlay();
50718 _super.prototype.destroy.call(this);
50719 };
50720 OverlayWrapperComponent.prototype.showOrHideOverlay = function () {
50721 var isEmpty = this.paginationProxy.isEmpty();
50722 var isSuppressNoRowsOverlay = this.gridOptionsService.is('suppressNoRowsOverlay');
50723 if (isEmpty && !isSuppressNoRowsOverlay) {
50724 this.showNoRowsOverlay();
50725 }
50726 else {
50727 this.hideOverlay();
50728 }
50729 };
50730 OverlayWrapperComponent.prototype.onRowDataUpdated = function () {
50731 this.showOrHideOverlay();
50732 };
50733 OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {
50734 // hide overlay if columns and rows exist, this can happen if columns are loaded after data.
50735 // this problem exists before of the race condition between the services (column controller in this case)
50736 // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,
50737 // this race condition would not happen.
50738 if (this.columnModel.isReady() && !this.paginationProxy.isEmpty() && !this.manuallyDisplayed) {
50739 this.hideOverlay();
50740 }
50741 };
50742 // wrapping in outer div, and wrapper, is needed to center the loading icon
50743 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>";
50744 __decorate([
50745 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('userComponentFactory')
50746 ], OverlayWrapperComponent.prototype, "userComponentFactory", void 0);
50747 __decorate([
50748 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
50749 ], OverlayWrapperComponent.prototype, "paginationProxy", void 0);
50750 __decorate([
50751 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridApi')
50752 ], OverlayWrapperComponent.prototype, "gridApi", void 0);
50753 __decorate([
50754 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
50755 ], OverlayWrapperComponent.prototype, "columnModel", void 0);
50756 __decorate([
50757 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_2__["RefSelector"])('eOverlayWrapper')
50758 ], OverlayWrapperComponent.prototype, "eOverlayWrapper", void 0);
50759 __decorate([
50760 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
50761 ], OverlayWrapperComponent.prototype, "postConstruct", null);
50762 return OverlayWrapperComponent;
50763}(_widgets_component__WEBPACK_IMPORTED_MODULE_1__["Component"]));
50764
50765
50766
50767/***/ }),
50768/* 228 */
50769/***/ (function(module, __webpack_exports__, __webpack_require__) {
50770
50771"use strict";
50772__webpack_require__.r(__webpack_exports__);
50773/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return RowPositionUtils; });
50774/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
50775/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
50776/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
50777/**
50778 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50779 * @version v29.2.0
50780 * @link https://www.ag-grid.com/
50781 * @license MIT
50782 */
50783var __extends = (undefined && undefined.__extends) || (function () {
50784 var extendStatics = function (d, b) {
50785 extendStatics = Object.setPrototypeOf ||
50786 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50787 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
50788 return extendStatics(d, b);
50789 };
50790 return function (d, b) {
50791 extendStatics(d, b);
50792 function __() { this.constructor = d; }
50793 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50794 };
50795})();
50796var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50797 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50798 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50799 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;
50800 return c > 3 && r && Object.defineProperty(target, key, r), r;
50801};
50802
50803
50804
50805var RowPositionUtils = /** @class */ (function (_super) {
50806 __extends(RowPositionUtils, _super);
50807 function RowPositionUtils() {
50808 return _super !== null && _super.apply(this, arguments) || this;
50809 }
50810 RowPositionUtils.prototype.getFirstRow = function () {
50811 var rowIndex = 0;
50812 var rowPinned;
50813 if (this.pinnedRowModel.getPinnedTopRowCount()) {
50814 rowPinned = 'top';
50815 }
50816 else if (this.rowModel.getRowCount()) {
50817 rowPinned = null;
50818 rowIndex = this.paginationProxy.getPageFirstRow();
50819 }
50820 else if (this.pinnedRowModel.getPinnedBottomRowCount()) {
50821 rowPinned = 'bottom';
50822 }
50823 return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };
50824 };
50825 RowPositionUtils.prototype.getLastRow = function () {
50826 var rowIndex;
50827 var rowPinned = null;
50828 var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();
50829 var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();
50830 if (pinnedBottomCount) {
50831 rowPinned = 'bottom';
50832 rowIndex = pinnedBottomCount - 1;
50833 }
50834 else if (this.rowModel.getRowCount()) {
50835 rowPinned = null;
50836 rowIndex = this.paginationProxy.getPageLastRow();
50837 }
50838 else if (pinnedTopCount) {
50839 rowPinned = 'top';
50840 rowIndex = pinnedTopCount - 1;
50841 }
50842 return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };
50843 };
50844 RowPositionUtils.prototype.getRowNode = function (gridRow) {
50845 switch (gridRow.rowPinned) {
50846 case 'top':
50847 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
50848 case 'bottom':
50849 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
50850 default:
50851 return this.rowModel.getRow(gridRow.rowIndex);
50852 }
50853 };
50854 RowPositionUtils.prototype.sameRow = function (rowA, rowB) {
50855 // if both missing
50856 if (!rowA && !rowB) {
50857 return true;
50858 }
50859 // if only one missing
50860 if ((rowA && !rowB) || (!rowA && rowB)) {
50861 return false;
50862 }
50863 // otherwise compare (use == to compare rowPinned because it can be null or undefined)
50864 return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;
50865 };
50866 // tests if this row selection is before the other row selection
50867 RowPositionUtils.prototype.before = function (rowA, rowB) {
50868 switch (rowA.rowPinned) {
50869 case 'top':
50870 // we we are floating top, and other isn't, then we are always before
50871 if (rowB.rowPinned !== 'top') {
50872 return true;
50873 }
50874 break;
50875 case 'bottom':
50876 // if we are floating bottom, and the other isn't, then we are never before
50877 if (rowB.rowPinned !== 'bottom') {
50878 return false;
50879 }
50880 break;
50881 default:
50882 // if we are not floating, but the other one is floating...
50883 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_2__["exists"])(rowB.rowPinned)) {
50884 return rowB.rowPinned !== 'top';
50885 }
50886 break;
50887 }
50888 return rowA.rowIndex < rowB.rowIndex;
50889 };
50890 RowPositionUtils.prototype.rowMax = function (rows) {
50891 var _this = this;
50892 var max;
50893 rows.forEach(function (row) {
50894 if (max === undefined || _this.before(max, row)) {
50895 max = row;
50896 }
50897 });
50898 return max;
50899 };
50900 RowPositionUtils.prototype.rowMin = function (rows) {
50901 var _this = this;
50902 var min;
50903 rows.forEach(function (row) {
50904 if (min === undefined || _this.before(row, min)) {
50905 min = row;
50906 }
50907 });
50908 return min;
50909 };
50910 __decorate([
50911 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
50912 ], RowPositionUtils.prototype, "rowModel", void 0);
50913 __decorate([
50914 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
50915 ], RowPositionUtils.prototype, "pinnedRowModel", void 0);
50916 __decorate([
50917 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('paginationProxy')
50918 ], RowPositionUtils.prototype, "paginationProxy", void 0);
50919 RowPositionUtils = __decorate([
50920 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowPositionUtils')
50921 ], RowPositionUtils);
50922 return RowPositionUtils;
50923}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
50924
50925
50926
50927/***/ }),
50928/* 229 */
50929/***/ (function(module, __webpack_exports__, __webpack_require__) {
50930
50931"use strict";
50932__webpack_require__.r(__webpack_exports__);
50933/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return CellPositionUtils; });
50934/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
50935/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
50936/**
50937 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
50938 * @version v29.2.0
50939 * @link https://www.ag-grid.com/
50940 * @license MIT
50941 */
50942var __extends = (undefined && undefined.__extends) || (function () {
50943 var extendStatics = function (d, b) {
50944 extendStatics = Object.setPrototypeOf ||
50945 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
50946 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
50947 return extendStatics(d, b);
50948 };
50949 return function (d, b) {
50950 extendStatics(d, b);
50951 function __() { this.constructor = d; }
50952 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
50953 };
50954})();
50955var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
50956 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
50957 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
50958 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;
50959 return c > 3 && r && Object.defineProperty(target, key, r), r;
50960};
50961
50962
50963var CellPositionUtils = /** @class */ (function (_super) {
50964 __extends(CellPositionUtils, _super);
50965 function CellPositionUtils() {
50966 return _super !== null && _super.apply(this, arguments) || this;
50967 }
50968 CellPositionUtils.prototype.createId = function (cellPosition) {
50969 var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;
50970 return this.createIdFromValues({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });
50971 };
50972 CellPositionUtils.prototype.createIdFromValues = function (cellPosition) {
50973 var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;
50974 return rowIndex + "." + (rowPinned == null ? 'null' : rowPinned) + "." + column.getId();
50975 };
50976 CellPositionUtils.prototype.equals = function (cellA, cellB) {
50977 var colsMatch = cellA.column === cellB.column;
50978 var floatingMatch = cellA.rowPinned === cellB.rowPinned;
50979 var indexMatch = cellA.rowIndex === cellB.rowIndex;
50980 return colsMatch && floatingMatch && indexMatch;
50981 };
50982 CellPositionUtils = __decorate([
50983 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('cellPositionUtils')
50984 ], CellPositionUtils);
50985 return CellPositionUtils;
50986}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
50987
50988
50989
50990/***/ }),
50991/* 230 */
50992/***/ (function(module, __webpack_exports__, __webpack_require__) {
50993
50994"use strict";
50995__webpack_require__.r(__webpack_exports__);
50996/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoService", function() { return UndoRedoService; });
50997/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
50998/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
50999/* harmony import */ var _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231);
51000/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17);
51001/**
51002 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51003 * @version v29.2.0
51004 * @link https://www.ag-grid.com/
51005 * @license MIT
51006 */
51007var __extends = (undefined && undefined.__extends) || (function () {
51008 var extendStatics = function (d, b) {
51009 extendStatics = Object.setPrototypeOf ||
51010 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51011 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
51012 return extendStatics(d, b);
51013 };
51014 return function (d, b) {
51015 extendStatics(d, b);
51016 function __() { this.constructor = d; }
51017 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51018 };
51019})();
51020var __assign = (undefined && undefined.__assign) || function () {
51021 __assign = Object.assign || function(t) {
51022 for (var s, i = 1, n = arguments.length; i < n; i++) {
51023 s = arguments[i];
51024 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
51025 t[p] = s[p];
51026 }
51027 return t;
51028 };
51029 return __assign.apply(this, arguments);
51030};
51031var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51032 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51033 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51034 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;
51035 return c > 3 && r && Object.defineProperty(target, key, r), r;
51036};
51037var __read = (undefined && undefined.__read) || function (o, n) {
51038 var m = typeof Symbol === "function" && o[Symbol.iterator];
51039 if (!m) return o;
51040 var i = m.call(o), r, ar = [], e;
51041 try {
51042 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
51043 }
51044 catch (error) { e = { error: error }; }
51045 finally {
51046 try {
51047 if (r && !r.done && (m = i["return"])) m.call(i);
51048 }
51049 finally { if (e) throw e.error; }
51050 }
51051 return ar;
51052};
51053var __spread = (undefined && undefined.__spread) || function () {
51054 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
51055 return ar;
51056};
51057
51058
51059
51060
51061var UndoRedoService = /** @class */ (function (_super) {
51062 __extends(UndoRedoService, _super);
51063 function UndoRedoService() {
51064 var _this = _super !== null && _super.apply(this, arguments) || this;
51065 _this.cellValueChanges = [];
51066 _this.activeCellEdit = null;
51067 _this.activeRowEdit = null;
51068 _this.isPasting = false;
51069 _this.isRangeInAction = false;
51070 _this.onCellValueChanged = function (event) {
51071 var eventCell = { column: event.column, rowIndex: event.rowIndex, rowPinned: event.rowPinned };
51072 var isCellEditing = _this.activeCellEdit !== null && _this.cellPositionUtils.equals(_this.activeCellEdit, eventCell);
51073 var isRowEditing = _this.activeRowEdit !== null && _this.rowPositionUtils.sameRow(_this.activeRowEdit, eventCell);
51074 var shouldCaptureAction = isCellEditing || isRowEditing || _this.isPasting || _this.isRangeInAction;
51075 if (!shouldCaptureAction) {
51076 return;
51077 }
51078 var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;
51079 var cellValueChange = {
51080 rowPinned: rowPinned,
51081 rowIndex: rowIndex,
51082 columnId: column.getColId(),
51083 newValue: value,
51084 oldValue: oldValue
51085 };
51086 _this.cellValueChanges.push(cellValueChange);
51087 };
51088 _this.clearStacks = function () {
51089 _this.undoStack.clear();
51090 _this.redoStack.clear();
51091 };
51092 return _this;
51093 }
51094 UndoRedoService.prototype.init = function () {
51095 var _this = this;
51096 if (!this.gridOptionsService.is('undoRedoCellEditing')) {
51097 return;
51098 }
51099 var undoRedoLimit = this.gridOptionsService.getNum('undoRedoCellEditingLimit');
51100 if (undoRedoLimit <= 0) {
51101 return;
51102 }
51103 this.undoStack = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoStack"](undoRedoLimit);
51104 this.redoStack = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoStack"](undoRedoLimit);
51105 this.addRowEditingListeners();
51106 this.addCellEditingListeners();
51107 this.addPasteListeners();
51108 this.addFillListeners();
51109 this.addCellKeyListeners();
51110 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);
51111 // undo / redo is restricted to actual editing so we clear the stacks when other operations are
51112 // performed that change the order of the row / cols.
51113 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_MODEL_UPDATED, function (e) {
51114 if (!e.keepUndoRedoStack) {
51115 _this.clearStacks();
51116 }
51117 });
51118 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);
51119 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_NEW_COLUMNS_LOADED, this.clearStacks);
51120 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_GROUP_OPENED, this.clearStacks);
51121 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);
51122 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_MOVED, this.clearStacks);
51123 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_PINNED, this.clearStacks);
51124 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_COLUMN_VISIBLE, this.clearStacks);
51125 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_DRAG_END, this.clearStacks);
51126 this.ctrlsService.whenReady(function () {
51127 _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();
51128 });
51129 };
51130 UndoRedoService.prototype.getCurrentUndoStackSize = function () {
51131 return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;
51132 };
51133 UndoRedoService.prototype.getCurrentRedoStackSize = function () {
51134 return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;
51135 };
51136 UndoRedoService.prototype.undo = function (source) {
51137 var startEvent = {
51138 type: _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_UNDO_STARTED,
51139 source: source
51140 };
51141 this.eventService.dispatchEvent(startEvent);
51142 var operationPerformed = this.undoRedo(this.undoStack, this.redoStack, 'initialRange', 'oldValue', 'undo');
51143 var endEvent = {
51144 type: _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_UNDO_ENDED,
51145 source: source,
51146 operationPerformed: operationPerformed
51147 };
51148 this.eventService.dispatchEvent(endEvent);
51149 };
51150 UndoRedoService.prototype.redo = function (source) {
51151 var startEvent = {
51152 type: _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_REDO_STARTED,
51153 source: source
51154 };
51155 this.eventService.dispatchEvent(startEvent);
51156 var operationPerformed = this.undoRedo(this.redoStack, this.undoStack, 'finalRange', 'newValue', 'redo');
51157 var endEvent = {
51158 type: _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_REDO_ENDED,
51159 source: source,
51160 operationPerformed: operationPerformed
51161 };
51162 this.eventService.dispatchEvent(endEvent);
51163 };
51164 UndoRedoService.prototype.undoRedo = function (undoRedoStack, opposingUndoRedoStack, rangeProperty, cellValueChangeProperty, source) {
51165 if (!undoRedoStack) {
51166 return false;
51167 }
51168 var undoRedoAction = undoRedoStack.pop();
51169 if (!undoRedoAction || !undoRedoAction.cellValueChanges) {
51170 return false;
51171 }
51172 this.processAction(undoRedoAction, function (cellValueChange) { return cellValueChange[cellValueChangeProperty]; }, source);
51173 if (undoRedoAction instanceof _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["RangeUndoRedoAction"]) {
51174 this.processRange(undoRedoAction.ranges || [undoRedoAction[rangeProperty]]);
51175 }
51176 else {
51177 this.processCell(undoRedoAction.cellValueChanges);
51178 }
51179 opposingUndoRedoStack.push(undoRedoAction);
51180 return true;
51181 };
51182 UndoRedoService.prototype.processAction = function (action, valueExtractor, source) {
51183 var _this = this;
51184 action.cellValueChanges.forEach(function (cellValueChange) {
51185 var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;
51186 var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };
51187 var currentRow = _this.getRowNode(rowPosition);
51188 // checks if the row has been filtered out
51189 if (!currentRow.displayed) {
51190 return;
51191 }
51192 currentRow.setDataValue(columnId, valueExtractor(cellValueChange), source);
51193 });
51194 };
51195 UndoRedoService.prototype.processRange = function (ranges) {
51196 var _this = this;
51197 var lastFocusedCell;
51198 this.rangeService.removeAllCellRanges(true);
51199 ranges.forEach(function (range, idx) {
51200 if (!range) {
51201 return;
51202 }
51203 var startRow = range.startRow;
51204 var endRow = range.endRow;
51205 if (idx === ranges.length - 1) {
51206 lastFocusedCell = {
51207 rowPinned: startRow.rowPinned,
51208 rowIndex: startRow.rowIndex,
51209 columnId: range.startColumn.getColId()
51210 };
51211 _this.setLastFocusedCell(lastFocusedCell);
51212 }
51213 var cellRangeParams = {
51214 rowStartIndex: startRow.rowIndex,
51215 rowStartPinned: startRow.rowPinned,
51216 rowEndIndex: endRow.rowIndex,
51217 rowEndPinned: endRow.rowPinned,
51218 columnStart: range.startColumn,
51219 columns: range.columns
51220 };
51221 _this.rangeService.addCellRange(cellRangeParams);
51222 });
51223 };
51224 UndoRedoService.prototype.processCell = function (cellValueChanges) {
51225 var cellValueChange = cellValueChanges[0];
51226 var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;
51227 var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };
51228 var row = this.getRowNode(rowPosition);
51229 var lastFocusedCell = {
51230 rowPinned: cellValueChange.rowPinned,
51231 rowIndex: row.rowIndex,
51232 columnId: cellValueChange.columnId
51233 };
51234 // when single cells are being processed, they should be considered
51235 // as ranges when the rangeService is present (singleCellRanges).
51236 // otherwise focus will be restore but the range will not.
51237 this.setLastFocusedCell(lastFocusedCell, !!this.rangeService);
51238 };
51239 UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell, setRangeToCell) {
51240 var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;
51241 var scrollFeature = this.gridBodyCtrl.getScrollFeature();
51242 var column = this.columnModel.getGridColumn(columnId);
51243 if (!column) {
51244 return;
51245 }
51246 scrollFeature.ensureIndexVisible(rowIndex);
51247 scrollFeature.ensureColumnVisible(column);
51248 var cellPosition = { rowIndex: rowIndex, column: column, rowPinned: rowPinned };
51249 this.focusService.setFocusedCell(__assign(__assign({}, cellPosition), { forceBrowserFocus: true }));
51250 if (setRangeToCell) {
51251 this.rangeService.setRangeToCell(cellPosition);
51252 }
51253 };
51254 UndoRedoService.prototype.addRowEditingListeners = function () {
51255 var _this = this;
51256 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STARTED, function (e) {
51257 _this.activeRowEdit = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };
51258 });
51259 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_ROW_EDITING_STOPPED, function () {
51260 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
51261 _this.pushActionsToUndoStack(action);
51262 _this.activeRowEdit = null;
51263 });
51264 };
51265 UndoRedoService.prototype.addCellEditingListeners = function () {
51266 var _this = this;
51267 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STARTED, function (e) {
51268 _this.activeCellEdit = { column: e.column, rowIndex: e.rowIndex, rowPinned: e.rowPinned };
51269 });
51270 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_CELL_EDITING_STOPPED, function (e) {
51271 _this.activeCellEdit = null;
51272 var shouldPushAction = e.valueChanged && !_this.activeRowEdit && !_this.isPasting && !_this.isRangeInAction;
51273 if (shouldPushAction) {
51274 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
51275 _this.pushActionsToUndoStack(action);
51276 }
51277 });
51278 };
51279 UndoRedoService.prototype.addPasteListeners = function () {
51280 var _this = this;
51281 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PASTE_START, function () {
51282 _this.isPasting = true;
51283 });
51284 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_PASTE_END, function () {
51285 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
51286 _this.pushActionsToUndoStack(action);
51287 _this.isPasting = false;
51288 });
51289 };
51290 UndoRedoService.prototype.addFillListeners = function () {
51291 var _this = this;
51292 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FILL_START, function () {
51293 _this.isRangeInAction = true;
51294 });
51295 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_FILL_END, function (event) {
51296 var action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["RangeUndoRedoAction"](_this.cellValueChanges, event.initialRange, event.finalRange);
51297 _this.pushActionsToUndoStack(action);
51298 _this.isRangeInAction = false;
51299 });
51300 };
51301 UndoRedoService.prototype.addCellKeyListeners = function () {
51302 var _this = this;
51303 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_KEY_SHORTCUT_CHANGED_CELL_START, function () {
51304 _this.isRangeInAction = true;
51305 });
51306 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_KEY_SHORTCUT_CHANGED_CELL_END, function () {
51307 var action;
51308 if (_this.rangeService && _this.gridOptionsService.isEnableRangeSelection()) {
51309 action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["RangeUndoRedoAction"](_this.cellValueChanges, undefined, undefined, __spread(_this.rangeService.getCellRanges()));
51310 }
51311 else {
51312 action = new _undoRedoStack__WEBPACK_IMPORTED_MODULE_2__["UndoRedoAction"](_this.cellValueChanges);
51313 }
51314 _this.pushActionsToUndoStack(action);
51315 _this.isRangeInAction = false;
51316 });
51317 };
51318 UndoRedoService.prototype.pushActionsToUndoStack = function (action) {
51319 this.undoStack.push(action);
51320 this.cellValueChanges = [];
51321 this.redoStack.clear();
51322 };
51323 UndoRedoService.prototype.getRowNode = function (gridRow) {
51324 switch (gridRow.rowPinned) {
51325 case 'top':
51326 return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];
51327 case 'bottom':
51328 return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];
51329 default:
51330 return this.rowModel.getRow(gridRow.rowIndex);
51331 }
51332 };
51333 __decorate([
51334 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('focusService')
51335 ], UndoRedoService.prototype, "focusService", void 0);
51336 __decorate([
51337 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
51338 ], UndoRedoService.prototype, "ctrlsService", void 0);
51339 __decorate([
51340 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
51341 ], UndoRedoService.prototype, "rowModel", void 0);
51342 __decorate([
51343 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
51344 ], UndoRedoService.prototype, "pinnedRowModel", void 0);
51345 __decorate([
51346 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('cellPositionUtils')
51347 ], UndoRedoService.prototype, "cellPositionUtils", void 0);
51348 __decorate([
51349 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowPositionUtils')
51350 ], UndoRedoService.prototype, "rowPositionUtils", void 0);
51351 __decorate([
51352 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
51353 ], UndoRedoService.prototype, "columnModel", void 0);
51354 __decorate([
51355 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Optional"])('rangeService')
51356 ], UndoRedoService.prototype, "rangeService", void 0);
51357 __decorate([
51358 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
51359 ], UndoRedoService.prototype, "init", null);
51360 UndoRedoService = __decorate([
51361 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('undoRedoService')
51362 ], UndoRedoService);
51363 return UndoRedoService;
51364}(_context_beanStub__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]));
51365
51366
51367
51368/***/ }),
51369/* 231 */
51370/***/ (function(module, __webpack_exports__, __webpack_require__) {
51371
51372"use strict";
51373__webpack_require__.r(__webpack_exports__);
51374/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoAction", function() { return UndoRedoAction; });
51375/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RangeUndoRedoAction", function() { return RangeUndoRedoAction; });
51376/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UndoRedoStack", function() { return UndoRedoStack; });
51377/**
51378 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51379 * @version v29.2.0
51380 * @link https://www.ag-grid.com/
51381 * @license MIT
51382 */
51383var __extends = (undefined && undefined.__extends) || (function () {
51384 var extendStatics = function (d, b) {
51385 extendStatics = Object.setPrototypeOf ||
51386 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51387 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
51388 return extendStatics(d, b);
51389 };
51390 return function (d, b) {
51391 extendStatics(d, b);
51392 function __() { this.constructor = d; }
51393 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51394 };
51395})();
51396var UndoRedoAction = /** @class */ (function () {
51397 function UndoRedoAction(cellValueChanges) {
51398 this.cellValueChanges = cellValueChanges;
51399 }
51400 return UndoRedoAction;
51401}());
51402
51403var RangeUndoRedoAction = /** @class */ (function (_super) {
51404 __extends(RangeUndoRedoAction, _super);
51405 function RangeUndoRedoAction(cellValueChanges, initialRange, finalRange, ranges) {
51406 var _this = _super.call(this, cellValueChanges) || this;
51407 _this.initialRange = initialRange;
51408 _this.finalRange = finalRange;
51409 _this.ranges = ranges;
51410 return _this;
51411 }
51412 return RangeUndoRedoAction;
51413}(UndoRedoAction));
51414
51415var UndoRedoStack = /** @class */ (function () {
51416 function UndoRedoStack(maxStackSize) {
51417 this.actionStack = [];
51418 this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;
51419 this.actionStack = new Array(this.maxStackSize);
51420 }
51421 UndoRedoStack.prototype.pop = function () {
51422 return this.actionStack.pop();
51423 };
51424 UndoRedoStack.prototype.push = function (item) {
51425 var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;
51426 if (!shouldAddActions) {
51427 return;
51428 }
51429 if (this.actionStack.length === this.maxStackSize) {
51430 this.actionStack.shift();
51431 }
51432 this.actionStack.push(item);
51433 };
51434 UndoRedoStack.prototype.clear = function () {
51435 this.actionStack = [];
51436 };
51437 UndoRedoStack.prototype.getCurrentStackSize = function () {
51438 return this.actionStack.length;
51439 };
51440 UndoRedoStack.DEFAULT_STACK_SIZE = 10;
51441 return UndoRedoStack;
51442}());
51443
51444
51445
51446/***/ }),
51447/* 232 */
51448/***/ (function(module, __webpack_exports__, __webpack_require__) {
51449
51450"use strict";
51451__webpack_require__.r(__webpack_exports__);
51452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return HeaderPositionUtils; });
51453/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
51454/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
51455/* harmony import */ var _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21);
51456/* harmony import */ var _row_headerRowComp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(153);
51457/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(19);
51458/**
51459 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51460 * @version v29.2.0
51461 * @link https://www.ag-grid.com/
51462 * @license MIT
51463 */
51464var __extends = (undefined && undefined.__extends) || (function () {
51465 var extendStatics = function (d, b) {
51466 extendStatics = Object.setPrototypeOf ||
51467 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51468 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
51469 return extendStatics(d, b);
51470 };
51471 return function (d, b) {
51472 extendStatics(d, b);
51473 function __() { this.constructor = d; }
51474 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51475 };
51476})();
51477var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51478 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51479 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51480 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;
51481 return c > 3 && r && Object.defineProperty(target, key, r), r;
51482};
51483
51484
51485
51486
51487
51488var HeaderPositionUtils = /** @class */ (function (_super) {
51489 __extends(HeaderPositionUtils, _super);
51490 function HeaderPositionUtils() {
51491 return _super !== null && _super.apply(this, arguments) || this;
51492 }
51493 HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {
51494 var nextColumn;
51495 var getGroupMethod;
51496 var getColMethod;
51497 if (focusedHeader.column instanceof _entities_columnGroup__WEBPACK_IMPORTED_MODULE_2__["ColumnGroup"]) {
51498 getGroupMethod = "getDisplayedGroup" + direction;
51499 nextColumn = this.columnModel[getGroupMethod](focusedHeader.column);
51500 }
51501 else {
51502 getColMethod = "getDisplayedCol" + direction;
51503 nextColumn = this.columnModel[getColMethod](focusedHeader.column);
51504 }
51505 if (!nextColumn) {
51506 return;
51507 }
51508 var headerRowIndex = focusedHeader.headerRowIndex;
51509 var currentRowType = this.getHeaderRowType(headerRowIndex);
51510 if (currentRowType === _row_headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
51511 var columnGroup = nextColumn;
51512 if (columnGroup.isPadding() && this.isAnyChildSpanningHeaderHeight(columnGroup)) {
51513 var _a = this.getColumnVisibleChild(columnGroup, headerRowIndex, direction), nextFocusColumn = _a.nextFocusColumn, nextRow = _a.nextRow;
51514 if (nextFocusColumn) {
51515 nextColumn = nextFocusColumn;
51516 headerRowIndex = nextRow;
51517 }
51518 }
51519 }
51520 return {
51521 column: nextColumn,
51522 headerRowIndex: headerRowIndex
51523 };
51524 };
51525 HeaderPositionUtils.prototype.isAnyChildSpanningHeaderHeight = function (columnGroup) {
51526 if (!columnGroup) {
51527 return false;
51528 }
51529 return columnGroup.getLeafColumns().some(function (col) { return col.isSpanHeaderHeight(); });
51530 };
51531 HeaderPositionUtils.prototype.getColumnVisibleParent = function (currentColumn, currentIndex) {
51532 var currentRowType = this.getHeaderRowType(currentIndex);
51533 var isFloatingFilter = currentRowType === _row_headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].FLOATING_FILTER;
51534 var isColumn = currentRowType === _row_headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN;
51535 var nextFocusColumn = isFloatingFilter ? currentColumn : currentColumn.getParent();
51536 var nextRow = currentIndex - 1;
51537 if (isColumn && this.isAnyChildSpanningHeaderHeight(currentColumn.getParent())) {
51538 while (nextFocusColumn && nextFocusColumn.isPadding()) {
51539 nextFocusColumn = nextFocusColumn.getParent();
51540 nextRow--;
51541 }
51542 if (nextRow < 0) {
51543 nextFocusColumn = currentColumn;
51544 nextRow = currentIndex;
51545 }
51546 }
51547 return { nextFocusColumn: nextFocusColumn, nextRow: nextRow };
51548 };
51549 HeaderPositionUtils.prototype.getColumnVisibleChild = function (column, currentIndex, direction) {
51550 if (direction === void 0) { direction = 'After'; }
51551 var currentRowType = this.getHeaderRowType(currentIndex);
51552 var nextFocusColumn = column;
51553 var nextRow = currentIndex + 1;
51554 if (currentRowType === _row_headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
51555 var leafColumns = column.getLeafColumns();
51556 var leafChild = direction === 'After' ? leafColumns[0] : Object(_utils_array__WEBPACK_IMPORTED_MODULE_4__["last"])(leafColumns);
51557 if (this.isAnyChildSpanningHeaderHeight(leafChild.getParent())) {
51558 nextFocusColumn = leafChild;
51559 var currentColumn = leafChild.getParent();
51560 while (currentColumn && currentColumn !== column) {
51561 currentColumn = currentColumn.getParent();
51562 nextRow++;
51563 }
51564 }
51565 else {
51566 nextFocusColumn = column.getDisplayedChildren()[0];
51567 }
51568 }
51569 return { nextFocusColumn: nextFocusColumn, nextRow: nextRow };
51570 };
51571 HeaderPositionUtils.prototype.getHeaderRowType = function (rowIndex) {
51572 var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();
51573 if (centerHeaderContainer) {
51574 return centerHeaderContainer.getRowType(rowIndex);
51575 }
51576 };
51577 HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {
51578 var displayedColumns = this.columnModel.getAllDisplayedColumns();
51579 var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];
51580 if (!column) {
51581 return;
51582 }
51583 var childContainer = this.ctrlsService.getHeaderRowContainerCtrl(column.getPinned());
51584 var type = childContainer.getRowType(level);
51585 if (type == _row_headerRowComp__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"].COLUMN_GROUP) {
51586 var columnGroup = this.columnModel.getColumnGroupAtLevel(column, level);
51587 return {
51588 headerRowIndex: level,
51589 column: columnGroup
51590 };
51591 }
51592 return {
51593 // if type==null, means the header level didn't exist
51594 headerRowIndex: type == null ? -1 : level,
51595 column: column
51596 };
51597 };
51598 __decorate([
51599 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
51600 ], HeaderPositionUtils.prototype, "columnModel", void 0);
51601 __decorate([
51602 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
51603 ], HeaderPositionUtils.prototype, "ctrlsService", void 0);
51604 HeaderPositionUtils = __decorate([
51605 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('headerPositionUtils')
51606 ], HeaderPositionUtils);
51607 return HeaderPositionUtils;
51608}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
51609
51610
51611
51612/***/ }),
51613/* 233 */
51614/***/ (function(module, __webpack_exports__, __webpack_require__) {
51615
51616"use strict";
51617__webpack_require__.r(__webpack_exports__);
51618/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ColumnDefFactory", function() { return ColumnDefFactory; });
51619/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
51620/* harmony import */ var _utils_object__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12);
51621/**
51622 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51623 * @version v29.2.0
51624 * @link https://www.ag-grid.com/
51625 * @license MIT
51626 */
51627var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51628 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51629 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51630 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;
51631 return c > 3 && r && Object.defineProperty(target, key, r), r;
51632};
51633
51634
51635var ColumnDefFactory = /** @class */ (function () {
51636 function ColumnDefFactory() {
51637 }
51638 ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {
51639 var _this = this;
51640 var res = [];
51641 var colGroupDefs = {};
51642 cols.forEach(function (col) {
51643 var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);
51644 var addToResult = true;
51645 var childDef = colDef;
51646 var pointer = col.getOriginalParent();
51647 while (pointer) {
51648 var parentDef = null;
51649 // we don't include padding groups, as the column groups provided
51650 // by application didn't have these. the whole point of padding groups
51651 // is to balance the column tree that the user provided.
51652 if (pointer.isPadding()) {
51653 pointer = pointer.getOriginalParent();
51654 continue;
51655 }
51656 // if colDef for this group already exists, use it
51657 var existingParentDef = colGroupDefs[pointer.getGroupId()];
51658 if (existingParentDef) {
51659 existingParentDef.children.push(childDef);
51660 // if we added to result, it would be the second time we did it
51661 addToResult = false;
51662 // we don't want to continue up the tree, as it has already been
51663 // done for this group
51664 break;
51665 }
51666 parentDef = _this.createDefFromGroup(pointer);
51667 if (parentDef) {
51668 parentDef.children = [childDef];
51669 colGroupDefs[parentDef.groupId] = parentDef;
51670 childDef = parentDef;
51671 pointer = pointer.getOriginalParent();
51672 }
51673 }
51674 if (addToResult) {
51675 res.push(childDef);
51676 }
51677 });
51678 return res;
51679 };
51680 ColumnDefFactory.prototype.createDefFromGroup = function (group) {
51681 var defCloned = Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["deepCloneDefinition"])(group.getColGroupDef(), ['children']);
51682 if (defCloned) {
51683 defCloned.groupId = group.getGroupId();
51684 }
51685 return defCloned;
51686 };
51687 ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {
51688 var colDefCloned = Object(_utils_object__WEBPACK_IMPORTED_MODULE_1__["deepCloneDefinition"])(col.getColDef());
51689 colDefCloned.colId = col.getColId();
51690 colDefCloned.width = col.getActualWidth();
51691 colDefCloned.rowGroup = col.isRowGroupActive();
51692 colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;
51693 colDefCloned.pivot = col.isPivotActive();
51694 colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;
51695 colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;
51696 colDefCloned.hide = col.isVisible() ? undefined : true;
51697 colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;
51698 colDefCloned.sort = col.getSort() ? col.getSort() : null;
51699 colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;
51700 return colDefCloned;
51701 };
51702 ColumnDefFactory = __decorate([
51703 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('columnDefFactory')
51704 ], ColumnDefFactory);
51705 return ColumnDefFactory;
51706}());
51707
51708
51709
51710/***/ }),
51711/* 234 */
51712/***/ (function(module, __webpack_exports__, __webpack_require__) {
51713
51714"use strict";
51715__webpack_require__.r(__webpack_exports__);
51716/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowCssClassCalculator", function() { return RowCssClassCalculator; });
51717/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
51718/* harmony import */ var _utils_array__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19);
51719/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
51720/**
51721 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51722 * @version v29.2.0
51723 * @link https://www.ag-grid.com/
51724 * @license MIT
51725 */
51726var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51727 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51728 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51729 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;
51730 return c > 3 && r && Object.defineProperty(target, key, r), r;
51731};
51732
51733
51734
51735var RowCssClassCalculator = /** @class */ (function () {
51736 function RowCssClassCalculator() {
51737 }
51738 RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {
51739 var classes = [];
51740 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_0__["exists"])(params.extraCssClass)) {
51741 classes.push(params.extraCssClass);
51742 }
51743 classes.push('ag-row');
51744 classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');
51745 if (params.fadeRowIn) {
51746 classes.push('ag-opacity-zero');
51747 }
51748 classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');
51749 if (params.rowNode.isRowPinned()) {
51750 classes.push('ag-row-pinned');
51751 }
51752 if (params.rowNode.isSelected()) {
51753 classes.push('ag-row-selected');
51754 }
51755 if (params.rowNode.footer) {
51756 classes.push('ag-row-footer');
51757 }
51758 classes.push('ag-row-level-' + params.rowLevel);
51759 if (params.rowNode.stub) {
51760 classes.push('ag-row-loading');
51761 }
51762 if (params.fullWidthRow) {
51763 classes.push('ag-full-width-row');
51764 }
51765 if (params.expandable) {
51766 classes.push('ag-row-group');
51767 classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');
51768 }
51769 if (params.rowNode.dragging) {
51770 classes.push('ag-row-dragging');
51771 }
51772 Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["pushAll"])(classes, this.processClassesFromGridOptions(params.rowNode));
51773 Object(_utils_array__WEBPACK_IMPORTED_MODULE_1__["pushAll"])(classes, this.preProcessRowClassRules(params.rowNode));
51774 // we use absolute position unless we are doing print layout
51775 classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');
51776 if (params.firstRowOnPage) {
51777 classes.push('ag-row-first');
51778 }
51779 if (params.lastRowOnPage) {
51780 classes.push('ag-row-last');
51781 }
51782 if (params.fullWidthRow) {
51783 if (params.pinned === 'left') {
51784 classes.push('ag-cell-last-left-pinned');
51785 }
51786 if (params.pinned === 'right') {
51787 classes.push('ag-cell-first-right-pinned');
51788 }
51789 }
51790 return classes;
51791 };
51792 RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode) {
51793 var res = [];
51794 var process = function (rowCls) {
51795 if (typeof rowCls === 'string') {
51796 res.push(rowCls);
51797 }
51798 else if (Array.isArray(rowCls)) {
51799 rowCls.forEach(function (e) { return res.push(e); });
51800 }
51801 };
51802 // part 1 - rowClass
51803 var rowClass = this.gridOptionsService.get('rowClass');
51804 if (rowClass) {
51805 if (typeof rowClass === 'function') {
51806 console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');
51807 return [];
51808 }
51809 process(rowClass);
51810 }
51811 // part 2 - rowClassFunc
51812 var rowClassFunc = this.gridOptionsService.getCallback('getRowClass');
51813 if (rowClassFunc) {
51814 var params = {
51815 data: rowNode.data,
51816 node: rowNode,
51817 rowIndex: rowNode.rowIndex
51818 };
51819 var rowClassFuncResult = rowClassFunc(params);
51820 process(rowClassFuncResult);
51821 }
51822 return res;
51823 };
51824 RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode) {
51825 var res = [];
51826 this.processRowClassRules(rowNode, function (className) {
51827 res.push(className);
51828 }, function (className) {
51829 // not catered for, if creating, no need
51830 // to remove class as it was never there
51831 });
51832 return res;
51833 };
51834 RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, onApplicableClass, onNotApplicableClass) {
51835 var rowClassParams = {
51836 data: rowNode.data,
51837 node: rowNode,
51838 rowIndex: rowNode.rowIndex,
51839 api: this.gridOptionsService.api,
51840 columnApi: this.gridOptionsService.columnApi,
51841 context: this.gridOptionsService.context
51842 };
51843 this.stylingService.processClassRules(this.gridOptionsService.get('rowClassRules'), rowClassParams, onApplicableClass, onNotApplicableClass);
51844 };
51845 RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {
51846 if (rowNode.group) {
51847 return rowNode.level;
51848 }
51849 // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item
51850 return rowNode.parent ? (rowNode.parent.level + 1) : 0;
51851 };
51852 __decorate([
51853 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('stylingService')
51854 ], RowCssClassCalculator.prototype, "stylingService", void 0);
51855 __decorate([
51856 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Autowired"])('gridOptionsService')
51857 ], RowCssClassCalculator.prototype, "gridOptionsService", void 0);
51858 RowCssClassCalculator = __decorate([
51859 Object(_context_context__WEBPACK_IMPORTED_MODULE_2__["Bean"])('rowCssClassCalculator')
51860 ], RowCssClassCalculator);
51861 return RowCssClassCalculator;
51862}());
51863
51864
51865
51866/***/ }),
51867/* 235 */
51868/***/ (function(module, __webpack_exports__, __webpack_require__) {
51869
51870"use strict";
51871__webpack_require__.r(__webpack_exports__);
51872/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return RowNodeSorter; });
51873/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
51874/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39);
51875/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17);
51876/**
51877 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
51878 * @version v29.2.0
51879 * @link https://www.ag-grid.com/
51880 * @license MIT
51881 */
51882var __extends = (undefined && undefined.__extends) || (function () {
51883 var extendStatics = function (d, b) {
51884 extendStatics = Object.setPrototypeOf ||
51885 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
51886 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
51887 return extendStatics(d, b);
51888 };
51889 return function (d, b) {
51890 extendStatics(d, b);
51891 function __() { this.constructor = d; }
51892 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
51893 };
51894})();
51895var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
51896 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
51897 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
51898 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;
51899 return c > 3 && r && Object.defineProperty(target, key, r), r;
51900};
51901
51902
51903
51904// this logic is used by both SSRM and CSRM
51905var RowNodeSorter = /** @class */ (function (_super) {
51906 __extends(RowNodeSorter, _super);
51907 function RowNodeSorter() {
51908 return _super !== null && _super.apply(this, arguments) || this;
51909 }
51910 RowNodeSorter.prototype.init = function () {
51911 var _this = this;
51912 this.isAccentedSort = this.gridOptionsService.is('accentedSort');
51913 this.primaryColumnsSortGroups = this.gridOptionsService.isColumnsSortingCoupledToGroup();
51914 this.addManagedPropertyListener('accentedSort', function (propChange) { return _this.isAccentedSort = propChange.currentValue; });
51915 this.addManagedPropertyListener('autoGroupColumnDef', function () { return _this.primaryColumnsSortGroups = _this.gridOptionsService.isColumnsSortingCoupledToGroup(); });
51916 };
51917 RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {
51918 var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };
51919 var sortedRowNodes = rowNodes.map(mapper);
51920 sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));
51921 return sortedRowNodes.map(function (item) { return item.rowNode; });
51922 };
51923 RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {
51924 var nodeA = sortedNodeA.rowNode;
51925 var nodeB = sortedNodeB.rowNode;
51926 // Iterate columns, return the first that doesn't match
51927 for (var i = 0, len = sortOptions.length; i < len; i++) {
51928 var sortOption = sortOptions[i];
51929 var isDescending = sortOption.sort === 'desc';
51930 var valueA = this.getValue(nodeA, sortOption.column);
51931 var valueB = this.getValue(nodeB, sortOption.column);
51932 var comparatorResult = void 0;
51933 var providedComparator = this.getComparator(sortOption, nodeA);
51934 if (providedComparator) {
51935 //if comparator provided, use it
51936 comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isDescending);
51937 }
51938 else {
51939 //otherwise do our own comparison
51940 comparatorResult = _utils__WEBPACK_IMPORTED_MODULE_1__["_"].defaultComparator(valueA, valueB, this.isAccentedSort);
51941 }
51942 // user provided comparators can return 'NaN' if they don't correctly handle 'undefined' values, this
51943 // typically occurs when the comparator is used on a group row
51944 var validResult = !isNaN(comparatorResult);
51945 if (validResult && comparatorResult !== 0) {
51946 return sortOption.sort === 'asc' ? comparatorResult : comparatorResult * -1;
51947 }
51948 }
51949 // All matched, we make is so that the original sort order is kept:
51950 return sortedNodeA.currentPos - sortedNodeB.currentPos;
51951 };
51952 RowNodeSorter.prototype.getComparator = function (sortOption, rowNode) {
51953 var column = sortOption.column;
51954 // comparator on col get preference over everything else
51955 var comparatorOnCol = column.getColDef().comparator;
51956 if (comparatorOnCol != null) {
51957 return comparatorOnCol;
51958 }
51959 if (!column.getColDef().showRowGroup) {
51960 return;
51961 }
51962 // if a 'field' is supplied on the autoGroupColumnDef we need to use the associated column comparator
51963 var groupLeafField = !rowNode.group && column.getColDef().field;
51964 if (!groupLeafField) {
51965 return;
51966 }
51967 var primaryColumn = this.columnModel.getPrimaryColumn(groupLeafField);
51968 if (!primaryColumn) {
51969 return;
51970 }
51971 return primaryColumn.getColDef().comparator;
51972 };
51973 RowNodeSorter.prototype.getValue = function (node, column) {
51974 var _a, _b;
51975 if (!this.primaryColumnsSortGroups) {
51976 return this.valueService.getValue(column, node, false, false);
51977 }
51978 var isNodeGroupedAtLevel = node.rowGroupColumn === column;
51979 if (isNodeGroupedAtLevel) {
51980 var isGroupRows = this.gridOptionsService.isGroupUseEntireRow(this.columnModel.isPivotActive());
51981 if (isGroupRows) {
51982 // if the column has a provided a keyCreator, we have to use the key, as the group could be
51983 // irrelevant to the column value
51984 var keyCreator = column.getColDef().keyCreator;
51985 if (keyCreator) {
51986 return node.key;
51987 }
51988 // if the group was generated from the column data, all the leaf children should return the same
51989 // value
51990 var leafChild = (_a = node.allLeafChildren) === null || _a === void 0 ? void 0 : _a[0];
51991 if (leafChild) {
51992 return this.valueService.getValue(column, leafChild, false, false);
51993 }
51994 return undefined;
51995 }
51996 var displayCol = this.columnModel.getGroupDisplayColumnForGroup(column.getId());
51997 if (!displayCol) {
51998 return undefined;
51999 }
52000 return (_b = node.groupData) === null || _b === void 0 ? void 0 : _b[displayCol.getId()];
52001 }
52002 if (node.group && column.getColDef().showRowGroup) {
52003 return undefined;
52004 }
52005 return this.valueService.getValue(column, node, false, false);
52006 };
52007 __decorate([
52008 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
52009 ], RowNodeSorter.prototype, "valueService", void 0);
52010 __decorate([
52011 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
52012 ], RowNodeSorter.prototype, "columnModel", void 0);
52013 __decorate([
52014 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
52015 ], RowNodeSorter.prototype, "init", null);
52016 RowNodeSorter = __decorate([
52017 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowNodeSorter')
52018 ], RowNodeSorter);
52019 return RowNodeSorter;
52020}(_context_beanStub__WEBPACK_IMPORTED_MODULE_2__["BeanStub"]));
52021
52022
52023
52024/***/ }),
52025/* 236 */
52026/***/ (function(module, __webpack_exports__, __webpack_require__) {
52027
52028"use strict";
52029__webpack_require__.r(__webpack_exports__);
52030/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CtrlsService", function() { return CtrlsService; });
52031/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
52032/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
52033/**
52034 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52035 * @version v29.2.0
52036 * @link https://www.ag-grid.com/
52037 * @license MIT
52038 */
52039var __extends = (undefined && undefined.__extends) || (function () {
52040 var extendStatics = function (d, b) {
52041 extendStatics = Object.setPrototypeOf ||
52042 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52043 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
52044 return extendStatics(d, b);
52045 };
52046 return function (d, b) {
52047 extendStatics(d, b);
52048 function __() { this.constructor = d; }
52049 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52050 };
52051})();
52052var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52053 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52054 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52055 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;
52056 return c > 3 && r && Object.defineProperty(target, key, r), r;
52057};
52058
52059
52060var CtrlsService = /** @class */ (function (_super) {
52061 __extends(CtrlsService, _super);
52062 function CtrlsService() {
52063 var _this = _super !== null && _super.apply(this, arguments) || this;
52064 _this.ready = false;
52065 _this.readyCallbacks = [];
52066 return _this;
52067 }
52068 CtrlsService_1 = CtrlsService;
52069 CtrlsService.prototype.checkReady = function () {
52070 this.ready =
52071 this.gridCtrl != null
52072 && this.gridBodyCtrl != null
52073 && this.centerRowContainerCtrl != null
52074 && this.leftRowContainerCtrl != null
52075 && this.rightRowContainerCtrl != null
52076 && this.bottomCenterRowContainerCtrl != null
52077 && this.bottomLeftRowContainerCtrl != null
52078 && this.bottomRightRowContainerCtrl != null
52079 && this.topCenterRowContainerCtrl != null
52080 && this.topLeftRowContainerCtrl != null
52081 && this.topRightRowContainerCtrl != null
52082 && this.stickyTopCenterRowContainerCtrl != null
52083 && this.stickyTopLeftRowContainerCtrl != null
52084 && this.stickyTopRightRowContainerCtrl != null
52085 && this.centerHeaderRowContainerCtrl != null
52086 && this.leftHeaderRowContainerCtrl != null
52087 && this.rightHeaderRowContainerCtrl != null
52088 && this.fakeHScrollComp != null
52089 && this.fakeVScrollComp != null
52090 && this.gridHeaderCtrl != null;
52091 if (this.ready) {
52092 var p_1 = this.createReadyParams();
52093 this.readyCallbacks.forEach(function (c) { return c(p_1); });
52094 this.readyCallbacks.length = 0;
52095 }
52096 };
52097 CtrlsService.prototype.whenReady = function (callback) {
52098 if (this.ready) {
52099 callback(this.createReadyParams());
52100 }
52101 else {
52102 this.readyCallbacks.push(callback);
52103 }
52104 };
52105 CtrlsService.prototype.createReadyParams = function () {
52106 return {
52107 centerRowContainerCtrl: this.centerRowContainerCtrl,
52108 leftRowContainerCtrl: this.leftRowContainerCtrl,
52109 rightRowContainerCtrl: this.rightRowContainerCtrl,
52110 bottomCenterRowContainerCtrl: this.bottomCenterRowContainerCtrl,
52111 bottomLeftRowContainerCtrl: this.bottomLeftRowContainerCtrl,
52112 bottomRightRowContainerCtrl: this.bottomRightRowContainerCtrl,
52113 topCenterRowContainerCtrl: this.topCenterRowContainerCtrl,
52114 topLeftRowContainerCtrl: this.topLeftRowContainerCtrl,
52115 topRightRowContainerCtrl: this.topRightRowContainerCtrl,
52116 stickyTopCenterRowContainerCtrl: this.stickyTopCenterRowContainerCtrl,
52117 stickyTopLeftRowContainerCtrl: this.stickyTopLeftRowContainerCtrl,
52118 stickyTopRightRowContainerCtrl: this.stickyTopRightRowContainerCtrl,
52119 centerHeaderRowContainerCtrl: this.centerHeaderRowContainerCtrl,
52120 leftHeaderRowContainerCtrl: this.leftHeaderRowContainerCtrl,
52121 rightHeaderRowContainerCtrl: this.rightHeaderRowContainerCtrl,
52122 fakeHScrollComp: this.fakeHScrollComp,
52123 fakeVScrollComp: this.fakeVScrollComp,
52124 gridBodyCtrl: this.gridBodyCtrl,
52125 gridCtrl: this.gridCtrl,
52126 gridHeaderCtrl: this.gridHeaderCtrl,
52127 };
52128 };
52129 CtrlsService.prototype.registerFakeHScrollComp = function (comp) {
52130 this.fakeHScrollComp = comp;
52131 this.checkReady();
52132 };
52133 CtrlsService.prototype.registerFakeVScrollComp = function (comp) {
52134 this.fakeVScrollComp = comp;
52135 this.checkReady();
52136 };
52137 CtrlsService.prototype.registerGridHeaderCtrl = function (gridHeaderCtrl) {
52138 this.gridHeaderCtrl = gridHeaderCtrl;
52139 this.checkReady();
52140 };
52141 CtrlsService.prototype.registerCenterRowContainerCtrl = function (ctrl) {
52142 this.centerRowContainerCtrl = ctrl;
52143 this.checkReady();
52144 };
52145 CtrlsService.prototype.registerLeftRowContainerCtrl = function (ctrl) {
52146 this.leftRowContainerCtrl = ctrl;
52147 this.checkReady();
52148 };
52149 CtrlsService.prototype.registerRightRowContainerCtrl = function (ctrl) {
52150 this.rightRowContainerCtrl = ctrl;
52151 this.checkReady();
52152 };
52153 CtrlsService.prototype.registerTopCenterRowContainerCtrl = function (ctrl) {
52154 this.topCenterRowContainerCtrl = ctrl;
52155 this.checkReady();
52156 };
52157 CtrlsService.prototype.registerTopLeftRowContainerCon = function (ctrl) {
52158 this.topLeftRowContainerCtrl = ctrl;
52159 this.checkReady();
52160 };
52161 CtrlsService.prototype.registerTopRightRowContainerCtrl = function (ctrl) {
52162 this.topRightRowContainerCtrl = ctrl;
52163 this.checkReady();
52164 };
52165 CtrlsService.prototype.registerStickyTopCenterRowContainerCtrl = function (ctrl) {
52166 this.stickyTopCenterRowContainerCtrl = ctrl;
52167 this.checkReady();
52168 };
52169 CtrlsService.prototype.registerStickyTopLeftRowContainerCon = function (ctrl) {
52170 this.stickyTopLeftRowContainerCtrl = ctrl;
52171 this.checkReady();
52172 };
52173 CtrlsService.prototype.registerStickyTopRightRowContainerCtrl = function (ctrl) {
52174 this.stickyTopRightRowContainerCtrl = ctrl;
52175 this.checkReady();
52176 };
52177 CtrlsService.prototype.registerBottomCenterRowContainerCtrl = function (ctrl) {
52178 this.bottomCenterRowContainerCtrl = ctrl;
52179 this.checkReady();
52180 };
52181 CtrlsService.prototype.registerBottomLeftRowContainerCtrl = function (ctrl) {
52182 this.bottomLeftRowContainerCtrl = ctrl;
52183 this.checkReady();
52184 };
52185 CtrlsService.prototype.registerBottomRightRowContainerCtrl = function (ctrl) {
52186 this.bottomRightRowContainerCtrl = ctrl;
52187 this.checkReady();
52188 };
52189 CtrlsService.prototype.registerHeaderContainer = function (ctrl, pinned) {
52190 switch (pinned) {
52191 case 'left':
52192 this.leftHeaderRowContainerCtrl = ctrl;
52193 break;
52194 case 'right':
52195 this.rightHeaderRowContainerCtrl = ctrl;
52196 break;
52197 default:
52198 this.centerHeaderRowContainerCtrl = ctrl;
52199 break;
52200 }
52201 this.checkReady();
52202 };
52203 CtrlsService.prototype.registerGridBodyCtrl = function (ctrl) {
52204 this.gridBodyCtrl = ctrl;
52205 this.checkReady();
52206 };
52207 CtrlsService.prototype.registerGridCtrl = function (ctrl) {
52208 this.gridCtrl = ctrl;
52209 this.checkReady();
52210 };
52211 CtrlsService.prototype.getFakeHScrollComp = function () {
52212 return this.fakeHScrollComp;
52213 };
52214 CtrlsService.prototype.getFakeVScrollComp = function () {
52215 return this.fakeVScrollComp;
52216 };
52217 CtrlsService.prototype.getGridHeaderCtrl = function () {
52218 return this.gridHeaderCtrl;
52219 };
52220 CtrlsService.prototype.getGridCtrl = function () {
52221 return this.gridCtrl;
52222 };
52223 CtrlsService.prototype.getCenterRowContainerCtrl = function () {
52224 return this.centerRowContainerCtrl;
52225 };
52226 CtrlsService.prototype.getTopCenterRowContainerCtrl = function () {
52227 return this.topCenterRowContainerCtrl;
52228 };
52229 CtrlsService.prototype.getBottomCenterRowContainerCtrl = function () {
52230 return this.bottomCenterRowContainerCtrl;
52231 };
52232 CtrlsService.prototype.getStickyTopCenterRowContainerCtrl = function () {
52233 return this.stickyTopCenterRowContainerCtrl;
52234 };
52235 CtrlsService.prototype.getGridBodyCtrl = function () {
52236 return this.gridBodyCtrl;
52237 };
52238 CtrlsService.prototype.getHeaderRowContainerCtrls = function () {
52239 return [this.leftHeaderRowContainerCtrl, this.rightHeaderRowContainerCtrl, this.centerHeaderRowContainerCtrl];
52240 };
52241 CtrlsService.prototype.getHeaderRowContainerCtrl = function (pinned) {
52242 switch (pinned) {
52243 case 'left': return this.leftHeaderRowContainerCtrl;
52244 case 'right': return this.rightHeaderRowContainerCtrl;
52245 default: return this.centerHeaderRowContainerCtrl;
52246 }
52247 };
52248 var CtrlsService_1;
52249 CtrlsService.NAME = 'ctrlsService';
52250 CtrlsService = CtrlsService_1 = __decorate([
52251 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])(CtrlsService_1.NAME)
52252 ], CtrlsService);
52253 return CtrlsService;
52254}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
52255
52256
52257
52258/***/ }),
52259/* 237 */
52260/***/ (function(module, __webpack_exports__, __webpack_require__) {
52261
52262"use strict";
52263__webpack_require__.r(__webpack_exports__);
52264/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CtrlsFactory", function() { return CtrlsFactory; });
52265/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
52266/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
52267/**
52268 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52269 * @version v29.2.0
52270 * @link https://www.ag-grid.com/
52271 * @license MIT
52272 */
52273var __extends = (undefined && undefined.__extends) || (function () {
52274 var extendStatics = function (d, b) {
52275 extendStatics = Object.setPrototypeOf ||
52276 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52277 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
52278 return extendStatics(d, b);
52279 };
52280 return function (d, b) {
52281 extendStatics(d, b);
52282 function __() { this.constructor = d; }
52283 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52284 };
52285})();
52286var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52287 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52288 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52289 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;
52290 return c > 3 && r && Object.defineProperty(target, key, r), r;
52291};
52292
52293
52294var CtrlsFactory = /** @class */ (function (_super) {
52295 __extends(CtrlsFactory, _super);
52296 function CtrlsFactory() {
52297 var _this = _super !== null && _super.apply(this, arguments) || this;
52298 _this.registry = {};
52299 return _this;
52300 }
52301 CtrlsFactory.prototype.register = function (meta) {
52302 this.registry[meta.controllerName] = meta.controllerClass;
52303 };
52304 CtrlsFactory.prototype.getInstance = function (name) {
52305 var ControllerClass = this.registry[name];
52306 if (ControllerClass == null) {
52307 return undefined;
52308 }
52309 return new ControllerClass();
52310 };
52311 CtrlsFactory = __decorate([
52312 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('ctrlsFactory')
52313 ], CtrlsFactory);
52314 return CtrlsFactory;
52315}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52316
52317
52318
52319/***/ }),
52320/* 238 */
52321/***/ (function(module, __webpack_exports__, __webpack_require__) {
52322
52323"use strict";
52324__webpack_require__.r(__webpack_exports__);
52325/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FakeHScrollComp", function() { return FakeHScrollComp; });
52326/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
52327/* harmony import */ var _abstractFakeScrollComp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(239);
52328/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
52329/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26);
52330/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57);
52331/* harmony import */ var _centerWidthFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(140);
52332/**
52333 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52334 * @version v29.2.0
52335 * @link https://www.ag-grid.com/
52336 * @license MIT
52337 */
52338var __extends = (undefined && undefined.__extends) || (function () {
52339 var extendStatics = function (d, b) {
52340 extendStatics = Object.setPrototypeOf ||
52341 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52342 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
52343 return extendStatics(d, b);
52344 };
52345 return function (d, b) {
52346 extendStatics(d, b);
52347 function __() { this.constructor = d; }
52348 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52349 };
52350})();
52351var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52352 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52353 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52354 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;
52355 return c > 3 && r && Object.defineProperty(target, key, r), r;
52356};
52357
52358
52359
52360
52361
52362
52363var FakeHScrollComp = /** @class */ (function (_super) {
52364 __extends(FakeHScrollComp, _super);
52365 function FakeHScrollComp() {
52366 return _super.call(this, FakeHScrollComp.TEMPLATE, 'horizontal') || this;
52367 }
52368 FakeHScrollComp.prototype.postConstruct = function () {
52369 var _this = this;
52370 _super.prototype.postConstruct.call(this);
52371 // When doing printing, this changes whether cols are pinned or not
52372 var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);
52373 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);
52374 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);
52375 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_3__["Events"].EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));
52376 this.addManagedPropertyListener('domLayout', spacerWidthsListener);
52377 this.ctrlsService.registerFakeHScrollComp(this);
52378 this.createManagedBean(new _centerWidthFeature__WEBPACK_IMPORTED_MODULE_5__["CenterWidthFeature"](function (width) { return _this.eContainer.style.width = width + "px"; }));
52379 };
52380 FakeHScrollComp.prototype.initialiseInvisibleScrollbar = function () {
52381 if (this.invisibleScrollbar !== undefined) {
52382 return;
52383 }
52384 this.enableRtl = this.gridOptionsService.is('enableRtl');
52385 _super.prototype.initialiseInvisibleScrollbar.call(this);
52386 if (this.invisibleScrollbar) {
52387 this.refreshCompBottom();
52388 }
52389 };
52390 FakeHScrollComp.prototype.onPinnedRowDataChanged = function () {
52391 this.refreshCompBottom();
52392 };
52393 FakeHScrollComp.prototype.refreshCompBottom = function () {
52394 if (!this.invisibleScrollbar) {
52395 return;
52396 }
52397 var bottomPinnedHeight = this.pinnedRowModel.getPinnedBottomTotalHeight();
52398 this.getGui().style.bottom = bottomPinnedHeight + "px";
52399 };
52400 FakeHScrollComp.prototype.onScrollVisibilityChanged = function () {
52401 _super.prototype.onScrollVisibilityChanged.call(this);
52402 this.setFakeHScrollSpacerWidths();
52403 };
52404 FakeHScrollComp.prototype.setFakeHScrollSpacerWidths = function () {
52405 var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();
52406 // we pad the right based on a) if cols are pinned to the right and
52407 // b) if v scroll is showing on the right (normal position of scroll)
52408 var rightSpacing = this.columnModel.getDisplayedColumnsRightWidth();
52409 var scrollOnRight = !this.enableRtl && vScrollShowing;
52410 var scrollbarWidth = this.gridOptionsService.getScrollbarWidth();
52411 if (scrollOnRight) {
52412 rightSpacing += scrollbarWidth;
52413 }
52414 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.eRightSpacer, rightSpacing);
52415 this.eRightSpacer.classList.toggle('ag-scroller-corner', rightSpacing <= scrollbarWidth);
52416 // we pad the left based on a) if cols are pinned to the left and
52417 // b) if v scroll is showing on the left (happens in LTR layout only)
52418 var leftSpacing = this.columnModel.getDisplayedColumnsLeftWidth();
52419 var scrollOnLeft = this.enableRtl && vScrollShowing;
52420 if (scrollOnLeft) {
52421 leftSpacing += scrollbarWidth;
52422 }
52423 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.eLeftSpacer, leftSpacing);
52424 this.eLeftSpacer.classList.toggle('ag-scroller-corner', leftSpacing <= scrollbarWidth);
52425 };
52426 FakeHScrollComp.prototype.setScrollVisible = function () {
52427 var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();
52428 var invisibleScrollbar = this.invisibleScrollbar;
52429 var isSuppressHorizontalScroll = this.gridOptionsService.is('suppressHorizontalScroll');
52430 var scrollbarWidth = hScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;
52431 var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;
52432 var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;
52433 this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);
52434 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedHeight"])(this.getGui(), scrollContainerSize);
52435 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedHeight"])(this.eViewport, scrollContainerSize);
52436 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedHeight"])(this.eContainer, scrollContainerSize);
52437 this.setDisplayed(hScrollShowing, { skipAriaHidden: true });
52438 };
52439 FakeHScrollComp.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>";
52440 __decorate([
52441 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eLeftSpacer')
52442 ], FakeHScrollComp.prototype, "eLeftSpacer", void 0);
52443 __decorate([
52444 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eRightSpacer')
52445 ], FakeHScrollComp.prototype, "eRightSpacer", void 0);
52446 __decorate([
52447 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
52448 ], FakeHScrollComp.prototype, "columnModel", void 0);
52449 __decorate([
52450 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
52451 ], FakeHScrollComp.prototype, "pinnedRowModel", void 0);
52452 __decorate([
52453 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
52454 ], FakeHScrollComp.prototype, "postConstruct", null);
52455 return FakeHScrollComp;
52456}(_abstractFakeScrollComp__WEBPACK_IMPORTED_MODULE_1__["AbstractFakeScrollComp"]));
52457
52458
52459
52460/***/ }),
52461/* 239 */
52462/***/ (function(module, __webpack_exports__, __webpack_require__) {
52463
52464"use strict";
52465__webpack_require__.r(__webpack_exports__);
52466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractFakeScrollComp", function() { return AbstractFakeScrollComp; });
52467/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
52468/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26);
52469/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42);
52470/* harmony import */ var _widgets_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38);
52471/* harmony import */ var _widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57);
52472/**
52473 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52474 * @version v29.2.0
52475 * @link https://www.ag-grid.com/
52476 * @license MIT
52477 */
52478var __extends = (undefined && undefined.__extends) || (function () {
52479 var extendStatics = function (d, b) {
52480 extendStatics = Object.setPrototypeOf ||
52481 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52482 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
52483 return extendStatics(d, b);
52484 };
52485 return function (d, b) {
52486 extendStatics(d, b);
52487 function __() { this.constructor = d; }
52488 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52489 };
52490})();
52491var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52492 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52493 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52494 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;
52495 return c > 3 && r && Object.defineProperty(target, key, r), r;
52496};
52497
52498
52499
52500
52501
52502var AbstractFakeScrollComp = /** @class */ (function (_super) {
52503 __extends(AbstractFakeScrollComp, _super);
52504 function AbstractFakeScrollComp(template, direction) {
52505 var _this = _super.call(this, template) || this;
52506 _this.direction = direction;
52507 _this.hideTimeout = null;
52508 return _this;
52509 }
52510 AbstractFakeScrollComp.prototype.postConstruct = function () {
52511 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));
52512 this.onScrollVisibilityChanged();
52513 this.addOrRemoveCssClass('ag-apple-scrollbar', Object(_utils_browser__WEBPACK_IMPORTED_MODULE_2__["isMacOsUserAgent"])() || Object(_utils_browser__WEBPACK_IMPORTED_MODULE_2__["isIOSUserAgent"])());
52514 };
52515 AbstractFakeScrollComp.prototype.initialiseInvisibleScrollbar = function () {
52516 if (this.invisibleScrollbar !== undefined) {
52517 return;
52518 }
52519 this.invisibleScrollbar = Object(_utils_browser__WEBPACK_IMPORTED_MODULE_2__["isInvisibleScrollbar"])();
52520 if (this.invisibleScrollbar) {
52521 this.hideAndShowInvisibleScrollAsNeeded();
52522 this.addActiveListenerToggles();
52523 }
52524 };
52525 AbstractFakeScrollComp.prototype.addActiveListenerToggles = function () {
52526 var _this = this;
52527 var activateEvents = ['mouseenter', 'mousedown', 'touchstart'];
52528 var deactivateEvents = ['mouseleave', 'touchend'];
52529 var eGui = this.getGui();
52530 activateEvents.forEach(function (eventName) { return _this.addManagedListener(eGui, eventName, function () { return _this.addOrRemoveCssClass('ag-scrollbar-active', true); }); });
52531 deactivateEvents.forEach(function (eventName) { return _this.addManagedListener(eGui, eventName, function () { return _this.addOrRemoveCssClass('ag-scrollbar-active', false); }); });
52532 };
52533 AbstractFakeScrollComp.prototype.onScrollVisibilityChanged = function () {
52534 // initialiseInvisibleScrollbar should only be called once, but the reason
52535 // this can't be inside `setComp` or `PostConstruct` is the DOM might not
52536 // be ready, so we call it until eventually, it gets calculated.
52537 if (this.invisibleScrollbar === undefined) {
52538 this.initialiseInvisibleScrollbar();
52539 }
52540 this.setScrollVisible();
52541 };
52542 AbstractFakeScrollComp.prototype.hideAndShowInvisibleScrollAsNeeded = function () {
52543 var _this = this;
52544 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_SCROLL, function (params) {
52545 if (params.direction === _this.direction) {
52546 if (_this.hideTimeout !== null) {
52547 window.clearTimeout(_this.hideTimeout);
52548 _this.hideTimeout = null;
52549 }
52550 _this.addOrRemoveCssClass('ag-scrollbar-scrolling', true);
52551 }
52552 });
52553 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_1__["Events"].EVENT_BODY_SCROLL_END, function () {
52554 _this.hideTimeout = window.setTimeout(function () {
52555 _this.addOrRemoveCssClass('ag-scrollbar-scrolling', false);
52556 _this.hideTimeout = null;
52557 }, 400);
52558 });
52559 };
52560 AbstractFakeScrollComp.prototype.getViewport = function () {
52561 return this.eViewport;
52562 };
52563 AbstractFakeScrollComp.prototype.getContainer = function () {
52564 return this.eContainer;
52565 };
52566 __decorate([
52567 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eViewport')
52568 ], AbstractFakeScrollComp.prototype, "eViewport", void 0);
52569 __decorate([
52570 Object(_widgets_componentAnnotations__WEBPACK_IMPORTED_MODULE_4__["RefSelector"])('eContainer')
52571 ], AbstractFakeScrollComp.prototype, "eContainer", void 0);
52572 __decorate([
52573 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('scrollVisibleService')
52574 ], AbstractFakeScrollComp.prototype, "scrollVisibleService", void 0);
52575 __decorate([
52576 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('ctrlsService')
52577 ], AbstractFakeScrollComp.prototype, "ctrlsService", void 0);
52578 return AbstractFakeScrollComp;
52579}(_widgets_component__WEBPACK_IMPORTED_MODULE_3__["Component"]));
52580
52581
52582
52583/***/ }),
52584/* 240 */
52585/***/ (function(module, __webpack_exports__, __webpack_require__) {
52586
52587"use strict";
52588__webpack_require__.r(__webpack_exports__);
52589/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PinnedWidthService", function() { return PinnedWidthService; });
52590/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
52591/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
52592/* harmony import */ var _eventKeys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(26);
52593/**
52594 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52595 * @version v29.2.0
52596 * @link https://www.ag-grid.com/
52597 * @license MIT
52598 */
52599var __extends = (undefined && undefined.__extends) || (function () {
52600 var extendStatics = function (d, b) {
52601 extendStatics = Object.setPrototypeOf ||
52602 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52603 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
52604 return extendStatics(d, b);
52605 };
52606 return function (d, b) {
52607 extendStatics(d, b);
52608 function __() { this.constructor = d; }
52609 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52610 };
52611})();
52612var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52613 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52614 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52615 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;
52616 return c > 3 && r && Object.defineProperty(target, key, r), r;
52617};
52618
52619
52620
52621var PinnedWidthService = /** @class */ (function (_super) {
52622 __extends(PinnedWidthService, _super);
52623 function PinnedWidthService() {
52624 return _super !== null && _super.apply(this, arguments) || this;
52625 }
52626 PinnedWidthService.prototype.postConstruct = function () {
52627 var listener = this.checkContainerWidths.bind(this);
52628 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_CHANGED, listener);
52629 this.addManagedListener(this.eventService, _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);
52630 this.addManagedPropertyListener('domLayout', listener);
52631 };
52632 PinnedWidthService.prototype.checkContainerWidths = function () {
52633 var printLayout = this.gridOptionsService.isDomLayout('print');
52634 var newLeftWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsLeftWidth();
52635 var newRightWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsRightWidth();
52636 if (newLeftWidth != this.leftWidth) {
52637 this.leftWidth = newLeftWidth;
52638 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_LEFT_PINNED_WIDTH_CHANGED });
52639 }
52640 if (newRightWidth != this.rightWidth) {
52641 this.rightWidth = newRightWidth;
52642 this.eventService.dispatchEvent({ type: _eventKeys__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_RIGHT_PINNED_WIDTH_CHANGED });
52643 }
52644 };
52645 PinnedWidthService.prototype.getPinnedRightWidth = function () {
52646 return this.rightWidth;
52647 };
52648 PinnedWidthService.prototype.getPinnedLeftWidth = function () {
52649 return this.leftWidth;
52650 };
52651 __decorate([
52652 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('columnModel')
52653 ], PinnedWidthService.prototype, "columnModel", void 0);
52654 __decorate([
52655 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
52656 ], PinnedWidthService.prototype, "postConstruct", null);
52657 PinnedWidthService = __decorate([
52658 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('pinnedWidthService')
52659 ], PinnedWidthService);
52660 return PinnedWidthService;
52661}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52662
52663
52664
52665/***/ }),
52666/* 241 */
52667/***/ (function(module, __webpack_exports__, __webpack_require__) {
52668
52669"use strict";
52670__webpack_require__.r(__webpack_exports__);
52671/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowNodeEventThrottle", function() { return RowNodeEventThrottle; });
52672/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17);
52673/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
52674/**
52675 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52676 * @version v29.2.0
52677 * @link https://www.ag-grid.com/
52678 * @license MIT
52679 */
52680var __extends = (undefined && undefined.__extends) || (function () {
52681 var extendStatics = function (d, b) {
52682 extendStatics = Object.setPrototypeOf ||
52683 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
52684 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
52685 return extendStatics(d, b);
52686 };
52687 return function (d, b) {
52688 extendStatics(d, b);
52689 function __() { this.constructor = d; }
52690 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
52691 };
52692})();
52693var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52694 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52695 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52696 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;
52697 return c > 3 && r && Object.defineProperty(target, key, r), r;
52698};
52699
52700
52701var RowNodeEventThrottle = /** @class */ (function (_super) {
52702 __extends(RowNodeEventThrottle, _super);
52703 function RowNodeEventThrottle() {
52704 var _this = _super !== null && _super.apply(this, arguments) || this;
52705 _this.events = [];
52706 return _this;
52707 }
52708 RowNodeEventThrottle.prototype.postConstruct = function () {
52709 if (this.rowModel.getType() == 'clientSide') {
52710 this.clientSideRowModel = this.rowModel;
52711 }
52712 };
52713 // because the user can call rowNode.setExpanded() many times in one VM turn,
52714 // we throttle the calls to ClientSideRowModel using animationFrameService. this means for 100
52715 // row nodes getting expanded, we only update the CSRM once, and then we fire all events after
52716 // CSRM has updated.
52717 //
52718 // if we did not do this, then the user could call setExpanded on 100+ rows, causing the grid
52719 // to re-render 100+ times, which would be a performance lag.
52720 //
52721 // we use animationFrameService
52722 // rather than _.debounce() so this will get done if anyone flushes the animationFrameService
52723 // (eg user calls api.ensureRowVisible(), which in turn flushes ).
52724 RowNodeEventThrottle.prototype.dispatchExpanded = function (event) {
52725 var _this = this;
52726 // if not using CSRM, we don't debounce. otherwise this breaks the SSRM.
52727 if (this.clientSideRowModel == null) {
52728 this.eventService.dispatchEvent(event);
52729 return;
52730 }
52731 this.events.push(event);
52732 var func = function () {
52733 if (_this.clientSideRowModel) {
52734 _this.clientSideRowModel.onRowGroupOpened();
52735 }
52736 _this.events.forEach(function (e) { return _this.eventService.dispatchEvent(e); });
52737 _this.events = [];
52738 };
52739 if (this.dispatchExpandedDebounced == null) {
52740 this.dispatchExpandedDebounced = this.animationFrameService.debounce(func);
52741 }
52742 this.dispatchExpandedDebounced();
52743 };
52744 __decorate([
52745 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('animationFrameService')
52746 ], RowNodeEventThrottle.prototype, "animationFrameService", void 0);
52747 __decorate([
52748 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('rowModel')
52749 ], RowNodeEventThrottle.prototype, "rowModel", void 0);
52750 __decorate([
52751 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
52752 ], RowNodeEventThrottle.prototype, "postConstruct", null);
52753 RowNodeEventThrottle = __decorate([
52754 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('rowNodeEventThrottle')
52755 ], RowNodeEventThrottle);
52756 return RowNodeEventThrottle;
52757}(_context_beanStub__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
52758
52759
52760
52761/***/ }),
52762/* 242 */
52763/***/ (function(module, __webpack_exports__, __webpack_require__) {
52764
52765"use strict";
52766__webpack_require__.r(__webpack_exports__);
52767/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridOptionsService", function() { return GridOptionsService; });
52768/* harmony import */ var _components_componentUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24);
52769/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11);
52770/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25);
52771/* harmony import */ var _eventService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10);
52772/* harmony import */ var _utils_function__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
52773/* harmony import */ var _utils_generic__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(7);
52774/* harmony import */ var _utils_browser__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42);
52775/* harmony import */ var _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15);
52776/* harmony import */ var _modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(14);
52777/* harmony import */ var _gridOptionsValidator__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(22);
52778/**
52779 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
52780 * @version v29.2.0
52781 * @link https://www.ag-grid.com/
52782 * @license MIT
52783 */
52784var __assign = (undefined && undefined.__assign) || function () {
52785 __assign = Object.assign || function(t) {
52786 for (var s, i = 1, n = arguments.length; i < n; i++) {
52787 s = arguments[i];
52788 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
52789 t[p] = s[p];
52790 }
52791 return t;
52792 };
52793 return __assign.apply(this, arguments);
52794};
52795var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
52796 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
52797 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
52798 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;
52799 return c > 3 && r && Object.defineProperty(target, key, r), r;
52800};
52801var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
52802 return function (target, key) { decorator(target, key, paramIndex); }
52803};
52804var __read = (undefined && undefined.__read) || function (o, n) {
52805 var m = typeof Symbol === "function" && o[Symbol.iterator];
52806 if (!m) return o;
52807 var i = m.call(o), r, ar = [], e;
52808 try {
52809 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
52810 }
52811 catch (error) { e = { error: error }; }
52812 finally {
52813 try {
52814 if (r && !r.done && (m = i["return"])) m.call(i);
52815 }
52816 finally { if (e) throw e.error; }
52817 }
52818 return ar;
52819};
52820var __spread = (undefined && undefined.__spread) || function () {
52821 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
52822 return ar;
52823};
52824
52825
52826
52827
52828
52829
52830
52831
52832
52833
52834function toNumber(value) {
52835 if (typeof value == 'number') {
52836 return value;
52837 }
52838 if (typeof value == 'string') {
52839 return parseInt(value, 10);
52840 }
52841}
52842function isTrue(value) {
52843 return value === true || value === 'true';
52844}
52845var GridOptionsService = /** @class */ (function () {
52846 function GridOptionsService() {
52847 this.destroyed = false;
52848 this.domDataKey = '__AG_' + Math.random().toString();
52849 this.propertyEventService = new _eventService__WEBPACK_IMPORTED_MODULE_3__["EventService"]();
52850 }
52851 Object.defineProperty(GridOptionsService.prototype, "context", {
52852 // This is quicker then having code call gridOptionsService.get('context')
52853 get: function () {
52854 return this.gridOptions['context'];
52855 },
52856 enumerable: false,
52857 configurable: true
52858 });
52859 GridOptionsService.prototype.agWire = function (gridApi, columnApi) {
52860 this.gridOptions.api = gridApi;
52861 this.gridOptions.columnApi = columnApi;
52862 this.api = gridApi;
52863 this.columnApi = columnApi;
52864 };
52865 GridOptionsService.prototype.init = function () {
52866 this.gridOptionLookup = new Set(__spread(_components_componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].ALL_PROPERTIES, _components_componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].EVENT_CALLBACKS));
52867 var async = !this.is('suppressAsyncEvents');
52868 this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);
52869 // sets an initial calculation for the scrollbar width
52870 this.getScrollbarWidth();
52871 };
52872 GridOptionsService.prototype.destroy = function () {
52873 // need to remove these, as we don't own the lifecycle of the gridOptions, we need to
52874 // remove the references in case the user keeps the grid options, we want the rest
52875 // of the grid to be picked up by the garbage collector
52876 this.gridOptions.api = null;
52877 this.gridOptions.columnApi = null;
52878 this.destroyed = true;
52879 };
52880 /**
52881 * Is the given GridOption property set to true.
52882 * @param property GridOption property that has the type `boolean | undefined`
52883 */
52884 GridOptionsService.prototype.is = function (property) {
52885 return isTrue(this.gridOptions[property]);
52886 };
52887 /**
52888 * Get the raw value of the GridOptions property provided.
52889 * @param property
52890 */
52891 GridOptionsService.prototype.get = function (property) {
52892 return this.gridOptions[property];
52893 };
52894 /**
52895 * Get the GridOption property as a number, raw value is returned via a toNumber coercion function.
52896 * @param property GridOption property that has the type `number | undefined`
52897 */
52898 GridOptionsService.prototype.getNum = function (property) {
52899 return toNumber(this.gridOptions[property]);
52900 };
52901 /**
52902 * Get the GridOption callback but wrapped so that the common params of api,columnApi and context are automatically applied to the params.
52903 * @param property GridOption callback properties based on the fact that this property has a callback with params extending AgGridCommon
52904 */
52905 GridOptionsService.prototype.getCallback = function (property) {
52906 return this.mergeGridCommonParams(this.gridOptions[property]);
52907 };
52908 /**
52909 * Returns `true` if a value has been specified for this GridOption.
52910 * @param property GridOption property
52911 */
52912 GridOptionsService.prototype.exists = function (property) {
52913 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.gridOptions[property]);
52914 };
52915 /**
52916 * Wrap the user callback and attach the api, columnApi and context to the params object on the way through.
52917 * @param callback User provided callback
52918 * @returns Wrapped callback where the params object not require api, columnApi and context
52919 */
52920 GridOptionsService.prototype.mergeGridCommonParams = function (callback) {
52921 var _this = this;
52922 if (callback) {
52923 var wrapped = function (callbackParams) {
52924 var mergedParams = callbackParams;
52925 mergedParams.api = _this.api;
52926 mergedParams.columnApi = _this.columnApi;
52927 mergedParams.context = _this.context;
52928 return callback(mergedParams);
52929 };
52930 return wrapped;
52931 }
52932 return callback;
52933 };
52934 /**
52935 *
52936 * @param key - key of the GridOption property to update
52937 * @param newValue - new value for this property
52938 * @param force - force the property change Event to be fired even if the value has not changed
52939 * @param eventParams - additional params to merge into the property changed event
52940 */
52941 GridOptionsService.prototype.set = function (key, newValue, force, eventParams) {
52942 if (force === void 0) { force = false; }
52943 if (eventParams === void 0) { eventParams = {}; }
52944 if (this.gridOptionLookup.has(key)) {
52945 var previousValue = this.gridOptions[key];
52946 if (force || previousValue !== newValue) {
52947 this.gridOptions[key] = newValue;
52948 var event_1 = __assign({ type: key, currentValue: newValue, previousValue: previousValue }, eventParams);
52949 this.propertyEventService.dispatchEvent(event_1);
52950 }
52951 }
52952 };
52953 GridOptionsService.prototype.addEventListener = function (key, listener) {
52954 this.propertyEventService.addEventListener(key, listener);
52955 };
52956 GridOptionsService.prototype.removeEventListener = function (key, listener) {
52957 this.propertyEventService.removeEventListener(key, listener);
52958 };
52959 // responsible for calling the onXXX functions on gridOptions
52960 GridOptionsService.prototype.globalEventHandler = function (eventName, event) {
52961 // prevent events from being fired _after_ the grid has been destroyed
52962 if (this.destroyed) {
52963 return;
52964 }
52965 var callbackMethodName = _components_componentUtil__WEBPACK_IMPORTED_MODULE_0__["ComponentUtil"].getCallbackForEvent(eventName);
52966 if (typeof this.gridOptions[callbackMethodName] === 'function') {
52967 this.gridOptions[callbackMethodName](event);
52968 }
52969 };
52970 // *************** Helper methods ************************** //
52971 // Methods to share common GridOptions related logic that goes above accessing a single property
52972 // the user might be using some non-standard scrollbar, eg a scrollbar that has zero
52973 // width and overlays (like the Safari scrollbar, but presented in Chrome). so we
52974 // allow the user to provide the scroll width before we work it out.
52975 GridOptionsService.prototype.getScrollbarWidth = function () {
52976 if (this.scrollbarWidth == null) {
52977 var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;
52978 var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : Object(_utils_browser__WEBPACK_IMPORTED_MODULE_6__["getScrollbarWidth"])();
52979 if (scrollbarWidth != null) {
52980 this.scrollbarWidth = scrollbarWidth;
52981 this.eventService.dispatchEvent({
52982 type: _events__WEBPACK_IMPORTED_MODULE_2__["Events"].EVENT_SCROLLBAR_WIDTH_CHANGED
52983 });
52984 }
52985 }
52986 return this.scrollbarWidth;
52987 };
52988 GridOptionsService.prototype.isRowModelType = function (rowModelType) {
52989 return this.gridOptions.rowModelType === rowModelType ||
52990 (rowModelType === 'clientSide' && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.gridOptions.rowModelType));
52991 };
52992 GridOptionsService.prototype.isDomLayout = function (domLayout) {
52993 var _a;
52994 var gridLayout = (_a = this.gridOptions.domLayout) !== null && _a !== void 0 ? _a : 'normal';
52995 return gridLayout === domLayout;
52996 };
52997 GridOptionsService.prototype.isRowSelection = function () {
52998 return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';
52999 };
53000 GridOptionsService.prototype.useAsyncEvents = function () {
53001 return !this.is('suppressAsyncEvents');
53002 };
53003 GridOptionsService.prototype.isGetRowHeightFunction = function () {
53004 return typeof this.gridOptions.getRowHeight === 'function';
53005 };
53006 GridOptionsService.prototype.getRowHeightForNode = function (rowNode, allowEstimate, defaultRowHeight) {
53007 if (allowEstimate === void 0) { allowEstimate = false; }
53008 if (defaultRowHeight == null) {
53009 defaultRowHeight = this.environment.getDefaultRowHeight();
53010 }
53011 // check the function first, in case use set both function and
53012 // number, when using virtual pagination then function can be
53013 // used for pinned rows and the number for the body rows.
53014 if (this.isGetRowHeightFunction()) {
53015 if (allowEstimate) {
53016 return { height: defaultRowHeight, estimated: true };
53017 }
53018 var params = {
53019 node: rowNode,
53020 data: rowNode.data
53021 };
53022 var height = this.getCallback('getRowHeight')(params);
53023 if (this.isNumeric(height)) {
53024 if (height === 0) {
53025 Object(_utils_function__WEBPACK_IMPORTED_MODULE_4__["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');
53026 }
53027 return { height: Math.max(1, height), estimated: false };
53028 }
53029 }
53030 if (rowNode.detail && this.is('masterDetail')) {
53031 return this.getMasterDetailRowHeight();
53032 }
53033 var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;
53034 return { height: rowHeight, estimated: false };
53035 };
53036 GridOptionsService.prototype.getMasterDetailRowHeight = function () {
53037 // if autoHeight, we want the height to grow to the new height starting at 1, as otherwise a flicker would happen,
53038 // as the detail goes to the default (eg 200px) and then immediately shrink up/down to the new measured height
53039 // (due to auto height) which looks bad, especially if doing row animation.
53040 if (this.is('detailRowAutoHeight')) {
53041 return { height: 1, estimated: false };
53042 }
53043 if (this.isNumeric(this.gridOptions.detailRowHeight)) {
53044 return { height: this.gridOptions.detailRowHeight, estimated: false };
53045 }
53046 return { height: 300, estimated: false };
53047 };
53048 // we don't allow dynamic row height for virtual paging
53049 GridOptionsService.prototype.getRowHeightAsNumber = function () {
53050 if (!this.gridOptions.rowHeight || Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(this.gridOptions.rowHeight)) {
53051 return this.environment.getDefaultRowHeight();
53052 }
53053 var rowHeight = this.gridOptions.rowHeight;
53054 if (rowHeight && this.isNumeric(rowHeight)) {
53055 this.environment.setRowHeightVariable(rowHeight);
53056 return rowHeight;
53057 }
53058 console.warn('AG Grid row height must be a number if not using standard row model');
53059 return this.environment.getDefaultRowHeight();
53060 };
53061 GridOptionsService.prototype.isNumeric = function (value) {
53062 return !isNaN(value) && typeof value === 'number' && isFinite(value);
53063 };
53064 GridOptionsService.prototype.getDomDataKey = function () {
53065 return this.domDataKey;
53066 };
53067 // returns the dom data, or undefined if not found
53068 GridOptionsService.prototype.getDomData = function (element, key) {
53069 var domData = element[this.getDomDataKey()];
53070 return domData ? domData[key] : undefined;
53071 };
53072 GridOptionsService.prototype.setDomData = function (element, key, value) {
53073 var domDataKey = this.getDomDataKey();
53074 var domData = element[domDataKey];
53075 if (Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["missing"])(domData)) {
53076 domData = {};
53077 element[domDataKey] = domData;
53078 }
53079 domData[key] = value;
53080 };
53081 GridOptionsService.prototype.getDocument = function () {
53082 // if user is providing document, we use the users one,
53083 // otherwise we use the document on the global namespace.
53084 var result = null;
53085 if (this.gridOptions.getDocument && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.gridOptions.getDocument)) {
53086 result = this.gridOptions.getDocument();
53087 }
53088 else if (this.eGridDiv) {
53089 result = this.eGridDiv.ownerDocument;
53090 }
53091 if (result && Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(result)) {
53092 return result;
53093 }
53094 return document;
53095 };
53096 GridOptionsService.prototype.getRootNode = function () {
53097 return this.eGridDiv.getRootNode();
53098 };
53099 GridOptionsService.prototype.getRowIdFunc = function () {
53100 var getRowId = this.getCallback('getRowId');
53101 if (getRowId) {
53102 return getRowId;
53103 }
53104 // this is the deprecated way, so provide a proxy to make it compatible
53105 var getRowNodeId = this.gridOptions.getRowNodeId;
53106 if (getRowNodeId) {
53107 return function (params) { return getRowNodeId(params.data); };
53108 }
53109 };
53110 GridOptionsService.prototype.getAsyncTransactionWaitMillis = function () {
53111 return Object(_utils_generic__WEBPACK_IMPORTED_MODULE_5__["exists"])(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : 50;
53112 };
53113 GridOptionsService.prototype.isAnimateRows = function () {
53114 // never allow animating if enforcing the row order
53115 if (this.is('ensureDomOrder')) {
53116 return false;
53117 }
53118 return this.is('animateRows');
53119 };
53120 GridOptionsService.prototype.isTreeData = function () {
53121 return this.is('treeData') && _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RowGroupingModule, 'Tree Data');
53122 };
53123 GridOptionsService.prototype.isMasterDetail = function () {
53124 return this.is('masterDetail') && _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].assertRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].MasterDetailModule, 'masterDetail');
53125 };
53126 GridOptionsService.prototype.isEnableRangeSelection = function () {
53127 return this.is('enableRangeSelection') && _modules_moduleRegistry__WEBPACK_IMPORTED_MODULE_7__["ModuleRegistry"].isRegistered(_modules_moduleNames__WEBPACK_IMPORTED_MODULE_8__["ModuleNames"].RangeSelectionModule);
53128 };
53129 GridOptionsService.prototype.isColumnsSortingCoupledToGroup = function () {
53130 var autoGroupColumnDef = this.gridOptions.autoGroupColumnDef;
53131 var isClientSideRowModel = this.isRowModelType('clientSide');
53132 return isClientSideRowModel && !(autoGroupColumnDef === null || autoGroupColumnDef === void 0 ? void 0 : autoGroupColumnDef.comparator);
53133 };
53134 GridOptionsService.prototype.getGroupAggFiltering = function () {
53135 var userValue = this.gridOptions.groupAggFiltering;
53136 if (typeof userValue === 'function') {
53137 return this.getCallback('groupAggFiltering');
53138 }
53139 if (isTrue(userValue)) {
53140 return function () { return true; };
53141 }
53142 return undefined;
53143 };
53144 GridOptionsService.prototype.isGroupMultiAutoColumn = function () {
53145 if (this.gridOptions.groupDisplayType) {
53146 return Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_9__["matchesGroupDisplayType"])('multipleColumns', this.gridOptions.groupDisplayType);
53147 }
53148 // if we are doing hideOpenParents we also show multiple columns, otherwise hideOpenParents would not work
53149 return this.is('groupHideOpenParents');
53150 };
53151 GridOptionsService.prototype.isGroupUseEntireRow = function (pivotMode) {
53152 // we never allow groupDisplayType = 'groupRows' if in pivot mode, otherwise we won't see the pivot values.
53153 if (pivotMode) {
53154 return false;
53155 }
53156 return this.gridOptions.groupDisplayType ? Object(_gridOptionsValidator__WEBPACK_IMPORTED_MODULE_9__["matchesGroupDisplayType"])('groupRows', this.gridOptions.groupDisplayType) : false;
53157 };
53158 __decorate([
53159 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('gridOptions')
53160 ], GridOptionsService.prototype, "gridOptions", void 0);
53161 __decorate([
53162 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('eventService')
53163 ], GridOptionsService.prototype, "eventService", void 0);
53164 __decorate([
53165 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('environment')
53166 ], GridOptionsService.prototype, "environment", void 0);
53167 __decorate([
53168 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Autowired"])('eGridDiv')
53169 ], GridOptionsService.prototype, "eGridDiv", void 0);
53170 __decorate([
53171 __param(0, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('gridApi')), __param(1, Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Qualifier"])('columnApi'))
53172 ], GridOptionsService.prototype, "agWire", null);
53173 __decorate([
53174 _context_context__WEBPACK_IMPORTED_MODULE_1__["PostConstruct"]
53175 ], GridOptionsService.prototype, "init", null);
53176 __decorate([
53177 _context_context__WEBPACK_IMPORTED_MODULE_1__["PreDestroy"]
53178 ], GridOptionsService.prototype, "destroy", null);
53179 GridOptionsService = __decorate([
53180 Object(_context_context__WEBPACK_IMPORTED_MODULE_1__["Bean"])('gridOptionsService')
53181 ], GridOptionsService);
53182 return GridOptionsService;
53183}());
53184
53185
53186
53187/***/ }),
53188/* 243 */
53189/***/ (function(module, __webpack_exports__, __webpack_require__) {
53190
53191"use strict";
53192__webpack_require__.r(__webpack_exports__);
53193/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LocaleService", function() { return LocaleService; });
53194/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
53195/* harmony import */ var _context_beanStub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(17);
53196/**
53197 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
53198 * @version v29.2.0
53199 * @link https://www.ag-grid.com/
53200 * @license MIT
53201 */
53202var __extends = (undefined && undefined.__extends) || (function () {
53203 var extendStatics = function (d, b) {
53204 extendStatics = Object.setPrototypeOf ||
53205 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
53206 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
53207 return extendStatics(d, b);
53208 };
53209 return function (d, b) {
53210 extendStatics(d, b);
53211 function __() { this.constructor = d; }
53212 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
53213 };
53214})();
53215var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
53216 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53217 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
53218 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;
53219 return c > 3 && r && Object.defineProperty(target, key, r), r;
53220};
53221
53222
53223var LocaleService = /** @class */ (function (_super) {
53224 __extends(LocaleService, _super);
53225 function LocaleService() {
53226 return _super !== null && _super.apply(this, arguments) || this;
53227 }
53228 LocaleService.prototype.getLocaleTextFunc = function () {
53229 var getLocaleText = this.gridOptionsService.getCallback('getLocaleText');
53230 if (getLocaleText) {
53231 //key: string, defaultValue: string, variableValues?: string[]
53232 return function (key, defaultValue, variableValues) {
53233 var params = {
53234 key: key,
53235 defaultValue: defaultValue,
53236 variableValues: variableValues
53237 };
53238 return getLocaleText(params);
53239 };
53240 }
53241 var localeTextFunc = this.gridOptionsService.get('localeTextFunc');
53242 if (localeTextFunc) {
53243 return localeTextFunc;
53244 }
53245 var localeText = this.gridOptionsService.get('localeText');
53246 return function (key, defaultValue, variableValues) {
53247 var localisedText = localeText && localeText[key];
53248 if (localisedText && variableValues && variableValues.length) {
53249 var found = 0;
53250 while (true) {
53251 if (found >= variableValues.length) {
53252 break;
53253 }
53254 var idx = localisedText.indexOf('${variable}');
53255 if (idx === -1) {
53256 break;
53257 }
53258 localisedText = localisedText.replace('${variable}', variableValues[found++]);
53259 }
53260 }
53261 return localisedText !== null && localisedText !== void 0 ? localisedText : defaultValue;
53262 };
53263 };
53264 LocaleService = __decorate([
53265 Object(_context_context__WEBPACK_IMPORTED_MODULE_0__["Bean"])('localeService')
53266 ], LocaleService);
53267 return LocaleService;
53268}(_context_beanStub__WEBPACK_IMPORTED_MODULE_1__["BeanStub"]));
53269
53270
53271
53272/***/ }),
53273/* 244 */
53274/***/ (function(module, __webpack_exports__, __webpack_require__) {
53275
53276"use strict";
53277__webpack_require__.r(__webpack_exports__);
53278/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FakeVScrollComp", function() { return FakeVScrollComp; });
53279/* harmony import */ var _context_context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11);
53280/* harmony import */ var _abstractFakeScrollComp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(239);
53281/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45);
53282/* harmony import */ var _rowContainer_setHeightFeature__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(138);
53283/**
53284 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
53285 * @version v29.2.0
53286 * @link https://www.ag-grid.com/
53287 * @license MIT
53288 */
53289var __extends = (undefined && undefined.__extends) || (function () {
53290 var extendStatics = function (d, b) {
53291 extendStatics = Object.setPrototypeOf ||
53292 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
53293 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
53294 return extendStatics(d, b);
53295 };
53296 return function (d, b) {
53297 extendStatics(d, b);
53298 function __() { this.constructor = d; }
53299 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
53300 };
53301})();
53302var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
53303 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53304 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
53305 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;
53306 return c > 3 && r && Object.defineProperty(target, key, r), r;
53307};
53308
53309
53310
53311
53312var FakeVScrollComp = /** @class */ (function (_super) {
53313 __extends(FakeVScrollComp, _super);
53314 function FakeVScrollComp() {
53315 return _super.call(this, FakeVScrollComp.TEMPLATE, 'vertical') || this;
53316 }
53317 FakeVScrollComp.prototype.postConstruct = function () {
53318 _super.prototype.postConstruct.call(this);
53319 this.createManagedBean(new _rowContainer_setHeightFeature__WEBPACK_IMPORTED_MODULE_3__["SetHeightFeature"](this.eContainer));
53320 this.ctrlsService.registerFakeVScrollComp(this);
53321 };
53322 FakeVScrollComp.prototype.setScrollVisible = function () {
53323 var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();
53324 var invisibleScrollbar = this.invisibleScrollbar;
53325 var scrollbarWidth = vScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;
53326 var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;
53327 this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);
53328 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.getGui(), adjustedScrollbarWidth);
53329 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.eViewport, adjustedScrollbarWidth);
53330 Object(_utils_dom__WEBPACK_IMPORTED_MODULE_2__["setFixedWidth"])(this.eContainer, adjustedScrollbarWidth);
53331 this.setDisplayed(vScrollShowing, { skipAriaHidden: true });
53332 };
53333 FakeVScrollComp.TEMPLATE = "<div class=\"ag-body-vertical-scroll\" aria-hidden=\"true\">\n <div class=\"ag-body-vertical-scroll-viewport\" ref=\"eViewport\">\n <div class=\"ag-body-vertical-scroll-container\" ref=\"eContainer\"></div>\n </div>\n </div>";
53334 __decorate([
53335 _context_context__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
53336 ], FakeVScrollComp.prototype, "postConstruct", null);
53337 return FakeVScrollComp;
53338}(_abstractFakeScrollComp__WEBPACK_IMPORTED_MODULE_1__["AbstractFakeScrollComp"]));
53339
53340
53341
53342/***/ }),
53343/* 245 */
53344/***/ (function(module, __webpack_exports__, __webpack_require__) {
53345
53346"use strict";
53347__webpack_require__.r(__webpack_exports__);
53348/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return BaseComponentWrapper; });
53349/**
53350 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
53351 * @version v29.2.0
53352 * @link https://www.ag-grid.com/
53353 * @license MIT
53354 */
53355var BaseComponentWrapper = /** @class */ (function () {
53356 function BaseComponentWrapper() {
53357 }
53358 BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType) {
53359 var _this = this;
53360 if (optionalMethodList === void 0) { optionalMethodList = []; }
53361 var wrapper = this.createWrapper(OriginalConstructor, componentType);
53362 mandatoryMethodList.forEach((function (methodName) {
53363 _this.createMethod(wrapper, methodName, true);
53364 }));
53365 optionalMethodList.forEach((function (methodName) {
53366 _this.createMethod(wrapper, methodName, false);
53367 }));
53368 return wrapper;
53369 };
53370 BaseComponentWrapper.prototype.unwrap = function (comp) {
53371 return comp;
53372 };
53373 BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {
53374 wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));
53375 };
53376 BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {
53377 return function () {
53378 if (wrapper.hasMethod(methodName)) {
53379 return wrapper.callMethod(methodName, arguments);
53380 }
53381 if (mandatory) {
53382 console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');
53383 }
53384 return null;
53385 };
53386 };
53387 return BaseComponentWrapper;
53388}());
53389
53390
53391
53392/***/ }),
53393/* 246 */
53394/***/ (function(module, __webpack_exports__, __webpack_require__) {
53395
53396"use strict";
53397__webpack_require__.r(__webpack_exports__);
53398/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_CHART_GROUPS", function() { return DEFAULT_CHART_GROUPS; });
53399/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOL_PANEL_ALLOW_LIST", function() { return CHART_TOOL_PANEL_ALLOW_LIST; });
53400/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOLBAR_ALLOW_LIST", function() { return CHART_TOOLBAR_ALLOW_LIST; });
53401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOL_PANEL_MENU_OPTIONS", function() { return CHART_TOOL_PANEL_MENU_OPTIONS; });
53402/**
53403 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
53404 * @version v29.2.0
53405 * @link https://www.ag-grid.com/
53406 * @license MIT
53407 */
53408var DEFAULT_CHART_GROUPS = {
53409 columnGroup: [
53410 'column',
53411 'stackedColumn',
53412 'normalizedColumn'
53413 ],
53414 barGroup: [
53415 'bar',
53416 'stackedBar',
53417 'normalizedBar'
53418 ],
53419 pieGroup: [
53420 'pie',
53421 'doughnut'
53422 ],
53423 lineGroup: [
53424 'line'
53425 ],
53426 scatterGroup: [
53427 'scatter',
53428 'bubble'
53429 ],
53430 areaGroup: [
53431 'area',
53432 'stackedArea',
53433 'normalizedArea'
53434 ],
53435 histogramGroup: [
53436 'histogram'
53437 ],
53438 combinationGroup: [
53439 'columnLineCombo',
53440 'areaColumnCombo',
53441 'customCombo'
53442 ]
53443};
53444var CHART_TOOL_PANEL_ALLOW_LIST = [
53445 'chartSettings',
53446 'chartData',
53447 'chartFormat'
53448];
53449var CHART_TOOLBAR_ALLOW_LIST = [
53450 'chartUnlink',
53451 'chartLink',
53452 'chartDownload'
53453];
53454var CHART_TOOL_PANEL_MENU_OPTIONS = {
53455 settings: "chartSettings",
53456 data: "chartData",
53457 format: "chartFormat"
53458};
53459
53460
53461/***/ }),
53462/* 247 */
53463/***/ (function(module, __webpack_exports__, __webpack_require__) {
53464
53465"use strict";
53466__webpack_require__.r(__webpack_exports__);
53467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__FORCE_MODULE_DETECTION", function() { return __FORCE_MODULE_DETECTION; });
53468/**
53469 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
53470 * @version v29.2.0
53471 * @link https://www.ag-grid.com/
53472 * @license MIT
53473 */
53474/**
53475 * Internal Use Only: Used to ensure this file is treated as a module until we can use moduleDetection flag in Ts v4.7
53476 */
53477var __FORCE_MODULE_DETECTION = 0;
53478
53479
53480/***/ }),
53481/* 248 */
53482/***/ (function(module, __webpack_exports__, __webpack_require__) {
53483
53484"use strict";
53485__webpack_require__.r(__webpack_exports__);
53486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BarColumnLabelPlacement", function() { return BarColumnLabelPlacement; });
53487/**
53488 * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
53489 * @version v29.2.0
53490 * @link https://www.ag-grid.com/
53491 * @license MIT
53492 */
53493var BarColumnLabelPlacement;
53494(function (BarColumnLabelPlacement) {
53495 BarColumnLabelPlacement["InsideBase"] = "insideBase";
53496 BarColumnLabelPlacement["InsideEnd"] = "insideEnd";
53497 BarColumnLabelPlacement["Center"] = "center";
53498 BarColumnLabelPlacement["OutsideEnd"] = "outsideEnd";
53499})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));
53500
53501
53502/***/ }),
53503/* 249 */
53504/***/ (function(module, __webpack_exports__, __webpack_require__) {
53505
53506"use strict";
53507__webpack_require__.r(__webpack_exports__);
53508/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModel", function() { return ClientSideRowModel; });
53509/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
53510/* harmony import */ var _clientSideNodeManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(250);
53511var __extends = (undefined && undefined.__extends) || (function () {
53512 var extendStatics = function (d, b) {
53513 extendStatics = Object.setPrototypeOf ||
53514 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
53515 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
53516 return extendStatics(d, b);
53517 };
53518 return function (d, b) {
53519 extendStatics(d, b);
53520 function __() { this.constructor = d; }
53521 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
53522 };
53523})();
53524var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
53525 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
53526 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
53527 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;
53528 return c > 3 && r && Object.defineProperty(target, key, r), r;
53529};
53530var __read = (undefined && undefined.__read) || function (o, n) {
53531 var m = typeof Symbol === "function" && o[Symbol.iterator];
53532 if (!m) return o;
53533 var i = m.call(o), r, ar = [], e;
53534 try {
53535 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
53536 }
53537 catch (error) { e = { error: error }; }
53538 finally {
53539 try {
53540 if (r && !r.done && (m = i["return"])) m.call(i);
53541 }
53542 finally { if (e) throw e.error; }
53543 }
53544 return ar;
53545};
53546var __spread = (undefined && undefined.__spread) || function () {
53547 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
53548 return ar;
53549};
53550
53551
53552var RecursionType;
53553(function (RecursionType) {
53554 RecursionType[RecursionType["Normal"] = 0] = "Normal";
53555 RecursionType[RecursionType["AfterFilter"] = 1] = "AfterFilter";
53556 RecursionType[RecursionType["AfterFilterAndSort"] = 2] = "AfterFilterAndSort";
53557 RecursionType[RecursionType["PivotNodes"] = 3] = "PivotNodes";
53558})(RecursionType || (RecursionType = {}));
53559var ClientSideRowModel = /** @class */ (function (_super) {
53560 __extends(ClientSideRowModel, _super);
53561 function ClientSideRowModel() {
53562 var _this = _super !== null && _super.apply(this, arguments) || this;
53563 _this.onRowHeightChanged_debounced = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].debounce(_this.onRowHeightChanged.bind(_this), 100);
53564 _this.rowsToDisplay = []; // the rows mapped to rows to display
53565 return _this;
53566 }
53567 ClientSideRowModel.prototype.init = function () {
53568 var refreshEverythingFunc = this.refreshModel.bind(this, { step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING });
53569 var animate = !this.gridOptionsService.is('suppressAnimationFrame');
53570 var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {
53571 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
53572 afterColumnsChanged: true,
53573 keepRenderedRows: true,
53574 animate: animate
53575 });
53576 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);
53577 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);
53578 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));
53579 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 }));
53580 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
53581 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
53582 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);
53583 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_GRID_STYLES_CHANGED, this.resetRowHeights.bind(this));
53584 var refreshMapListener = this.refreshModel.bind(this, {
53585 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP,
53586 keepRenderedRows: true,
53587 animate: animate
53588 });
53589 this.addManagedPropertyListener('groupRemoveSingleChildren', refreshMapListener);
53590 this.addManagedPropertyListener('groupRemoveLowestSingleChildren', refreshMapListener);
53591 this.rootNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"](this.beans);
53592 this.nodeManager = new _clientSideNodeManager__WEBPACK_IMPORTED_MODULE_1__["ClientSideNodeManager"](this.rootNode, this.gridOptionsService, this.eventService, this.columnModel, this.selectionService, this.beans);
53593 };
53594 ClientSideRowModel.prototype.start = function () {
53595 var rowData = this.gridOptionsService.get('rowData');
53596 if (rowData) {
53597 this.setRowData(rowData);
53598 }
53599 };
53600 ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
53601 var atLeastOneChange;
53602 var res = false;
53603 // we do this multiple times as changing the row heights can also change the first and last rows,
53604 // so the first pass can make lots of rows smaller, which means the second pass we end up changing
53605 // more rows.
53606 do {
53607 atLeastOneChange = false;
53608 var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);
53609 var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);
53610 // keep check to current page if doing pagination
53611 var firstRow = Math.max(rowAtStartPixel, startLimitIndex);
53612 var lastRow = Math.min(rowAtEndPixel, endLimitIndex);
53613 for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {
53614 var rowNode = this.getRow(rowIndex);
53615 if (rowNode.rowHeightEstimated) {
53616 var rowHeight = this.gridOptionsService.getRowHeightForNode(rowNode);
53617 rowNode.setRowHeight(rowHeight.height);
53618 atLeastOneChange = true;
53619 res = true;
53620 }
53621 }
53622 if (atLeastOneChange) {
53623 this.setRowTopAndRowIndex();
53624 }
53625 } while (atLeastOneChange);
53626 return res;
53627 };
53628 ClientSideRowModel.prototype.setRowTopAndRowIndex = function () {
53629 var defaultRowHeight = this.environment.getDefaultRowHeight();
53630 var nextRowTop = 0;
53631 // mapping displayed rows is not needed for this method, however it's used in
53632 // clearRowTopAndRowIndex(), and given we are looping through this.rowsToDisplay here,
53633 // we create the map here for performance reasons, so we don't loop a second time
53634 // in clearRowTopAndRowIndex()
53635 var displayedRowsMapped = new Set();
53636 // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time
53637 // with these two layouts.
53638 var allowEstimate = this.gridOptionsService.isDomLayout('normal');
53639 for (var i = 0; i < this.rowsToDisplay.length; i++) {
53640 var rowNode = this.rowsToDisplay[i];
53641 if (rowNode.id != null) {
53642 displayedRowsMapped.add(rowNode.id);
53643 }
53644 if (rowNode.rowHeight == null) {
53645 var rowHeight = this.gridOptionsService.getRowHeightForNode(rowNode, allowEstimate, defaultRowHeight);
53646 rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);
53647 }
53648 rowNode.setRowTop(nextRowTop);
53649 rowNode.setRowIndex(i);
53650 nextRowTop += rowNode.rowHeight;
53651 }
53652 return displayedRowsMapped;
53653 };
53654 ClientSideRowModel.prototype.clearRowTopAndRowIndex = function (changedPath, displayedRowsMapped) {
53655 var changedPathActive = changedPath.isActive();
53656 var clearIfNotDisplayed = function (rowNode) {
53657 if (rowNode && rowNode.id != null && !displayedRowsMapped.has(rowNode.id)) {
53658 rowNode.clearRowTopAndRowIndex();
53659 }
53660 };
53661 var recurse = function (rowNode) {
53662 clearIfNotDisplayed(rowNode);
53663 clearIfNotDisplayed(rowNode.detailNode);
53664 clearIfNotDisplayed(rowNode.sibling);
53665 if (rowNode.hasChildren()) {
53666 if (rowNode.childrenAfterGroup) {
53667 // if a changedPath is active, it means we are here because of a transaction update or
53668 // a change detection. neither of these impacts the open/closed state of groups. so if
53669 // a group is not open this time, it was not open last time. so we know all closed groups
53670 // already have their top positions cleared. so there is no need to traverse all the way
53671 // when changedPath is active and the rowNode is not expanded.
53672 var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,
53673 // as expanded=undefined for root node
53674 var skipChildren = changedPathActive && !isRootNode && !rowNode.expanded;
53675 if (!skipChildren) {
53676 rowNode.childrenAfterGroup.forEach(recurse);
53677 }
53678 }
53679 }
53680 };
53681 recurse(this.rootNode);
53682 };
53683 // returns false if row was moved, otherwise true
53684 ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {
53685 var _this = this;
53686 if (increment === void 0) { increment = 0; }
53687 var indexAtPixelNow = this.getRowIndexAtPixel(pixel);
53688 var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);
53689 var animate = !this.gridOptionsService.is('suppressAnimationFrame');
53690 if (rowNodeAtPixelNow === rowNodes[0]) {
53691 return false;
53692 }
53693 rowNodes.forEach(function (rowNode) {
53694 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].removeFromArray(_this.rootNode.allLeafChildren, rowNode);
53695 });
53696 rowNodes.forEach(function (rowNode, idx) {
53697 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);
53698 });
53699 this.refreshModel({
53700 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
53701 keepRenderedRows: true,
53702 keepEditingRows: true,
53703 animate: animate
53704 });
53705 return true;
53706 };
53707 ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {
53708 var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;
53709 var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;
53710 if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {
53711 if (this.lastHighlightedRow) {
53712 this.lastHighlightedRow.setHighlighted(null);
53713 this.lastHighlightedRow = null;
53714 }
53715 return;
53716 }
53717 var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);
53718 if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {
53719 this.lastHighlightedRow.setHighlighted(null);
53720 this.lastHighlightedRow = null;
53721 }
53722 rowNodeAtPixelNow.setHighlighted(highlight);
53723 this.lastHighlightedRow = rowNodeAtPixelNow;
53724 };
53725 ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {
53726 if (!rowNode) {
53727 var index = this.getRowIndexAtPixel(pixel);
53728 rowNode = this.getRow(index || 0);
53729 if (!rowNode) {
53730 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowHighlightPosition"].Below;
53731 }
53732 }
53733 var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;
53734 return pixel - rowTop < rowHeight / 2 ? _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowHighlightPosition"].Above : _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowHighlightPosition"].Below;
53735 };
53736 ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {
53737 return this.lastHighlightedRow;
53738 };
53739 ClientSideRowModel.prototype.isLastRowIndexKnown = function () {
53740 return true;
53741 };
53742 ClientSideRowModel.prototype.getRowCount = function () {
53743 if (this.rowsToDisplay) {
53744 return this.rowsToDisplay.length;
53745 }
53746 return 0;
53747 };
53748 ClientSideRowModel.prototype.getTopLevelRowCount = function () {
53749 var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;
53750 if (showingRootNode) {
53751 return 1;
53752 }
53753 var filteredChildren = this.rootNode.childrenAfterAggFilter;
53754 return filteredChildren ? filteredChildren.length : 0;
53755 };
53756 ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {
53757 var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;
53758 if (showingRootNode) {
53759 return topLevelIndex;
53760 }
53761 var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];
53762 if (this.gridOptionsService.is('groupHideOpenParents')) {
53763 // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is
53764 while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {
53765 rowNode = rowNode.childrenAfterSort[0];
53766 }
53767 }
53768 return rowNode.rowIndex;
53769 };
53770 ClientSideRowModel.prototype.getRowBounds = function (index) {
53771 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rowsToDisplay)) {
53772 return null;
53773 }
53774 var rowNode = this.rowsToDisplay[index];
53775 if (rowNode) {
53776 return {
53777 rowTop: rowNode.rowTop,
53778 rowHeight: rowNode.rowHeight
53779 };
53780 }
53781 return null;
53782 };
53783 ClientSideRowModel.prototype.onRowGroupOpened = function () {
53784 var animate = this.gridOptionsService.isAnimateRows();
53785 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP, keepRenderedRows: true, animate: animate });
53786 };
53787 ClientSideRowModel.prototype.onFilterChanged = function (event) {
53788 if (event.afterDataChange) {
53789 return;
53790 }
53791 var animate = this.gridOptionsService.isAnimateRows();
53792 var primaryOrQuickFilterChanged = event.columns.length === 0 || event.columns.some(function (col) { return col.isPrimary(); });
53793 var step = primaryOrQuickFilterChanged ? _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER : _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER_AGGREGATES;
53794 this.refreshModel({ step: step, keepRenderedRows: true, animate: animate });
53795 };
53796 ClientSideRowModel.prototype.onSortChanged = function () {
53797 var animate = this.gridOptionsService.isAnimateRows();
53798 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });
53799 };
53800 ClientSideRowModel.prototype.getType = function () {
53801 return 'clientSide';
53802 };
53803 ClientSideRowModel.prototype.onValueChanged = function () {
53804 if (this.columnModel.isPivotActive()) {
53805 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT });
53806 }
53807 else {
53808 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE });
53809 }
53810 };
53811 ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {
53812 // for updates, if the row is updated at all, then we re-calc all the values
53813 // in that row. we could compare each value to each old value, however if we
53814 // did this, we would be calling the valueService twice, once on the old value
53815 // and once on the new value. so it's less valueGetter calls if we just assume
53816 // each column is different. that way the changedPath is used so that only
53817 // the impacted parent rows are recalculated, parents who's children have
53818 // not changed are not impacted.
53819 var noTransactions = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(rowNodeTransactions);
53820 var changedPath = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ChangedPath"](false, this.rootNode);
53821 if (noTransactions || this.gridOptionsService.isTreeData()) {
53822 changedPath.setInactive();
53823 }
53824 return changedPath;
53825 };
53826 ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {
53827 if (!this.gridOptionsService.is('suppressModelUpdateAfterUpdateTransaction')) {
53828 return false;
53829 }
53830 // return true if we are only doing update transactions
53831 if (params.rowNodeTransactions == null) {
53832 return false;
53833 }
53834 var transWithAddsOrDeletes = params.rowNodeTransactions.filter(function (tx) {
53835 return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);
53836 });
53837 var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;
53838 return transactionsContainUpdatesOnly;
53839 };
53840 ClientSideRowModel.prototype.buildRefreshModelParams = function (step) {
53841 var paramsStep = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING;
53842 var stepsMapped = {
53843 everything: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
53844 group: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
53845 filter: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER,
53846 map: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP,
53847 aggregate: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE,
53848 sort: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT,
53849 pivot: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT
53850 };
53851 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(step)) {
53852 paramsStep = stepsMapped[step];
53853 }
53854 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(paramsStep)) {
53855 console.error("AG Grid: invalid step " + step + ", available steps are " + Object.keys(stepsMapped).join(', '));
53856 return undefined;
53857 }
53858 var animate = !this.gridOptionsService.is('suppressAnimationFrame');
53859 var modelParams = {
53860 step: paramsStep,
53861 keepRenderedRows: true,
53862 keepEditingRows: true,
53863 animate: animate
53864 };
53865 return modelParams;
53866 };
53867 ClientSideRowModel.prototype.refreshModel = function (paramsOrStep) {
53868 var params = typeof paramsOrStep === 'object' && "step" in paramsOrStep ? paramsOrStep : this.buildRefreshModelParams(paramsOrStep);
53869 if (!params) {
53870 return;
53871 }
53872 if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {
53873 return;
53874 }
53875 // this goes through the pipeline of stages. what's in my head is similar
53876 // to the diagram on this page:
53877 // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html
53878 // however we want to keep the results of each stage, hence we manually call
53879 // each step rather than have them chain each other.
53880 // fallthrough in below switch is on purpose,
53881 // eg if STEP_FILTER, then all steps below this
53882 // step get done
53883 // let start: number;
53884 // console.log('======= start =======');
53885 var changedPath = this.createChangePath(params.rowNodeTransactions);
53886 switch (params.step) {
53887 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING:
53888 this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);
53889 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER:
53890 this.doFilter(changedPath);
53891 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].PIVOT:
53892 this.doPivot(changedPath);
53893 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].AGGREGATE: // depends on agg fields
53894 this.doAggregate(changedPath);
53895 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].FILTER_AGGREGATES:
53896 this.doFilterAggregates(changedPath);
53897 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].SORT:
53898 this.doSort(params.rowNodeTransactions, changedPath);
53899 case _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP:
53900 this.doRowsToDisplay();
53901 }
53902 // set all row tops to null, then set row tops on all visible rows. if we don't
53903 // do this, then the algorithm below only sets row tops, old row tops from old rows
53904 // will still lie around
53905 var displayedNodesMapped = this.setRowTopAndRowIndex();
53906 this.clearRowTopAndRowIndex(changedPath, displayedNodesMapped);
53907 var event = {
53908 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MODEL_UPDATED,
53909 animate: params.animate,
53910 keepRenderedRows: params.keepRenderedRows,
53911 newData: params.newData,
53912 newPage: false,
53913 keepUndoRedoStack: params.keepUndoRedoStack
53914 };
53915 this.eventService.dispatchEvent(event);
53916 };
53917 ClientSideRowModel.prototype.isEmpty = function () {
53918 var rowsMissing = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;
53919 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.rootNode) || rowsMissing || !this.columnModel.isReady();
53920 };
53921 ClientSideRowModel.prototype.isRowsToRender = function () {
53922 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;
53923 };
53924 ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
53925 // if lastSelectedNode is missing, we start at the first row
53926 var firstRowHit = !lastInRange;
53927 var lastRowHit = false;
53928 var lastRow;
53929 var result = [];
53930 var groupsSelectChildren = this.gridOptionsService.is('groupSelectsChildren');
53931 this.forEachNodeAfterFilterAndSort(function (rowNode) {
53932 var lookingForLastRow = firstRowHit && !lastRowHit;
53933 // check if we need to flip the select switch
53934 if (!firstRowHit) {
53935 if (rowNode === lastInRange || rowNode === firstInRange) {
53936 firstRowHit = true;
53937 }
53938 }
53939 var skipThisGroupNode = rowNode.group && groupsSelectChildren;
53940 if (!skipThisGroupNode) {
53941 var inRange = firstRowHit && !lastRowHit;
53942 var childOfLastRow = rowNode.isParentOfNode(lastRow);
53943 if (inRange || childOfLastRow) {
53944 result.push(rowNode);
53945 }
53946 }
53947 if (lookingForLastRow) {
53948 if (rowNode === lastInRange || rowNode === firstInRange) {
53949 lastRowHit = true;
53950 if (rowNode === lastInRange) {
53951 lastRow = lastInRange;
53952 }
53953 else {
53954 lastRow = firstInRange;
53955 }
53956 }
53957 }
53958 });
53959 return result;
53960 };
53961 ClientSideRowModel.prototype.setDatasource = function (datasource) {
53962 console.error('AG Grid: should never call setDatasource on clientSideRowController');
53963 };
53964 ClientSideRowModel.prototype.getTopLevelNodes = function () {
53965 return this.rootNode ? this.rootNode.childrenAfterGroup : null;
53966 };
53967 ClientSideRowModel.prototype.getRootNode = function () {
53968 return this.rootNode;
53969 };
53970 ClientSideRowModel.prototype.getRow = function (index) {
53971 return this.rowsToDisplay[index];
53972 };
53973 ClientSideRowModel.prototype.isRowPresent = function (rowNode) {
53974 return this.rowsToDisplay.indexOf(rowNode) >= 0;
53975 };
53976 ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {
53977 if (this.isEmpty() || this.rowsToDisplay.length === 0) {
53978 return -1;
53979 }
53980 // do binary search of tree
53981 // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/
53982 var bottomPointer = 0;
53983 var topPointer = this.rowsToDisplay.length - 1;
53984 // quick check, if the pixel is out of bounds, then return last row
53985 if (pixelToMatch <= 0) {
53986 // if pixel is less than or equal zero, it's always the first row
53987 return 0;
53988 }
53989 var lastNode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].last(this.rowsToDisplay);
53990 if (lastNode.rowTop <= pixelToMatch) {
53991 return this.rowsToDisplay.length - 1;
53992 }
53993 var oldBottomPointer = -1;
53994 var oldTopPointer = -1;
53995 while (true) {
53996 var midPointer = Math.floor((bottomPointer + topPointer) / 2);
53997 var currentRowNode = this.rowsToDisplay[midPointer];
53998 if (this.isRowInPixel(currentRowNode, pixelToMatch)) {
53999 return midPointer;
54000 }
54001 if (currentRowNode.rowTop < pixelToMatch) {
54002 bottomPointer = midPointer + 1;
54003 }
54004 else if (currentRowNode.rowTop > pixelToMatch) {
54005 topPointer = midPointer - 1;
54006 }
54007 // infinite loops happen when there is space between rows. this can happen
54008 // when Auto Height is active, cos we re-calculate row tops asyncronously
54009 // when row heights change, which can temporarly result in gaps between rows.
54010 var caughtInInfiniteLoop = oldBottomPointer === bottomPointer
54011 && oldTopPointer === topPointer;
54012 if (caughtInInfiniteLoop) {
54013 return midPointer;
54014 }
54015 oldBottomPointer = bottomPointer;
54016 oldTopPointer = topPointer;
54017 }
54018 };
54019 ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {
54020 var topPixel = rowNode.rowTop;
54021 var bottomPixel = rowNode.rowTop + rowNode.rowHeight;
54022 var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;
54023 return pixelInRow;
54024 };
54025 ClientSideRowModel.prototype.forEachLeafNode = function (callback) {
54026 if (this.rootNode.allLeafChildren) {
54027 this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });
54028 }
54029 };
54030 ClientSideRowModel.prototype.forEachNode = function (callback, includeFooterNodes) {
54031 if (includeFooterNodes === void 0) { includeFooterNodes = false; }
54032 this.recursivelyWalkNodesAndCallback({
54033 nodes: __spread((this.rootNode.childrenAfterGroup || [])),
54034 callback: callback,
54035 recursionType: RecursionType.Normal,
54036 index: 0,
54037 includeFooterNodes: includeFooterNodes
54038 });
54039 };
54040 ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback, includeFooterNodes) {
54041 if (includeFooterNodes === void 0) { includeFooterNodes = false; }
54042 this.recursivelyWalkNodesAndCallback({
54043 nodes: __spread((this.rootNode.childrenAfterAggFilter || [])),
54044 callback: callback,
54045 recursionType: RecursionType.AfterFilter,
54046 index: 0,
54047 includeFooterNodes: includeFooterNodes
54048 });
54049 };
54050 ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback, includeFooterNodes) {
54051 if (includeFooterNodes === void 0) { includeFooterNodes = false; }
54052 this.recursivelyWalkNodesAndCallback({
54053 nodes: __spread((this.rootNode.childrenAfterSort || [])),
54054 callback: callback,
54055 recursionType: RecursionType.AfterFilterAndSort,
54056 index: 0,
54057 includeFooterNodes: includeFooterNodes
54058 });
54059 };
54060 ClientSideRowModel.prototype.forEachPivotNode = function (callback, includeFooterNodes) {
54061 if (includeFooterNodes === void 0) { includeFooterNodes = false; }
54062 this.recursivelyWalkNodesAndCallback({
54063 nodes: [this.rootNode],
54064 callback: callback,
54065 recursionType: RecursionType.PivotNodes,
54066 index: 0,
54067 includeFooterNodes: includeFooterNodes
54068 });
54069 };
54070 // iterates through each item in memory, and calls the callback function
54071 // nodes - the rowNodes to traverse
54072 // callback - the user provided callback
54073 // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc
54074 // index - works similar to the index in forEach in javascript's array function
54075 ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (params) {
54076 var _a;
54077 var nodes = params.nodes, callback = params.callback, recursionType = params.recursionType, includeFooterNodes = params.includeFooterNodes;
54078 var index = params.index;
54079 var firstNode = nodes[0];
54080 if (includeFooterNodes && ((_a = firstNode === null || firstNode === void 0 ? void 0 : firstNode.parent) === null || _a === void 0 ? void 0 : _a.sibling)) {
54081 nodes.push(firstNode.parent.sibling);
54082 }
54083 for (var i = 0; i < nodes.length; i++) {
54084 var node = nodes[i];
54085 callback(node, index++);
54086 // go to the next level if it is a group
54087 if (node.hasChildren() && !node.footer) {
54088 // depending on the recursion type, we pick a difference set of children
54089 var nodeChildren = null;
54090 switch (recursionType) {
54091 case RecursionType.Normal:
54092 nodeChildren = node.childrenAfterGroup;
54093 break;
54094 case RecursionType.AfterFilter:
54095 nodeChildren = node.childrenAfterAggFilter;
54096 break;
54097 case RecursionType.AfterFilterAndSort:
54098 nodeChildren = node.childrenAfterSort;
54099 break;
54100 case RecursionType.PivotNodes:
54101 // for pivot, we don't go below leafGroup levels
54102 nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;
54103 break;
54104 }
54105 if (nodeChildren) {
54106 index = this.recursivelyWalkNodesAndCallback({
54107 nodes: __spread(nodeChildren),
54108 callback: callback,
54109 recursionType: recursionType,
54110 index: index,
54111 includeFooterNodes: includeFooterNodes
54112 });
54113 }
54114 }
54115 }
54116 return index;
54117 };
54118 // it's possible to recompute the aggregate without doing the other parts
54119 // + api.refreshClientSideRowModel('aggregate')
54120 ClientSideRowModel.prototype.doAggregate = function (changedPath) {
54121 if (this.aggregationStage) {
54122 this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
54123 }
54124 };
54125 ClientSideRowModel.prototype.doFilterAggregates = function (changedPath) {
54126 if (this.filterAggregatesStage) {
54127 this.filterAggregatesStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
54128 }
54129 else {
54130 // If filterAggregatesStage is undefined, then so is the grouping stage, so all children should be on the rootNode.
54131 this.rootNode.childrenAfterAggFilter = this.rootNode.childrenAfterFilter;
54132 }
54133 };
54134 // + gridApi.expandAll()
54135 // + gridApi.collapseAll()
54136 ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {
54137 var usingTreeData = this.gridOptionsService.isTreeData();
54138 var usingPivotMode = this.columnModel.isPivotActive();
54139 var recursiveExpandOrCollapse = function (rowNodes) {
54140 if (!rowNodes) {
54141 return;
54142 }
54143 rowNodes.forEach(function (rowNode) {
54144 var actionRow = function () {
54145 rowNode.expanded = expand;
54146 recursiveExpandOrCollapse(rowNode.childrenAfterGroup);
54147 };
54148 if (usingTreeData) {
54149 var hasChildren = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(rowNode.childrenAfterGroup);
54150 if (hasChildren) {
54151 actionRow();
54152 }
54153 return;
54154 }
54155 if (usingPivotMode) {
54156 var notLeafGroup = !rowNode.leafGroup;
54157 if (notLeafGroup) {
54158 actionRow();
54159 }
54160 return;
54161 }
54162 var isRowGroup = rowNode.group;
54163 if (isRowGroup) {
54164 actionRow();
54165 }
54166 });
54167 };
54168 if (this.rootNode) {
54169 recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);
54170 }
54171 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP });
54172 var eventSource = expand ? 'expandAll' : 'collapseAll';
54173 var event = {
54174 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_EXPAND_COLLAPSE_ALL,
54175 source: eventSource
54176 };
54177 this.eventService.dispatchEvent(event);
54178 };
54179 ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {
54180 this.sortStage.execute({
54181 rowNode: this.rootNode,
54182 rowNodeTransactions: rowNodeTransactions,
54183 changedPath: changedPath
54184 });
54185 };
54186 ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {
54187 if (this.groupStage) {
54188 if (rowNodeTransactions) {
54189 this.groupStage.execute({
54190 rowNode: this.rootNode,
54191 rowNodeTransactions: rowNodeTransactions,
54192 rowNodeOrder: rowNodeOrder,
54193 changedPath: changedPath
54194 });
54195 }
54196 else {
54197 this.groupStage.execute({
54198 rowNode: this.rootNode,
54199 changedPath: changedPath,
54200 afterColumnsChanged: afterColumnsChanged
54201 });
54202 // set open/closed state on groups
54203 this.restoreGroupState(groupState);
54204 }
54205 if (this.gridOptionsService.is('groupSelectsChildren')) {
54206 var selectionChanged = this.selectionService.updateGroupsFromChildrenSelections('rowGroupChanged', changedPath);
54207 if (selectionChanged) {
54208 var event_1 = {
54209 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SELECTION_CHANGED,
54210 source: 'rowGroupChanged'
54211 };
54212 this.eventService.dispatchEvent(event_1);
54213 }
54214 }
54215 }
54216 else {
54217 this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;
54218 if (this.rootNode.sibling) {
54219 this.rootNode.sibling.childrenAfterGroup = this.rootNode.childrenAfterGroup;
54220 }
54221 this.rootNode.updateHasChildren();
54222 }
54223 };
54224 ClientSideRowModel.prototype.restoreGroupState = function (groupState) {
54225 if (!groupState) {
54226 return;
54227 }
54228 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {
54229 // if the group was open last time, then open it this time. however
54230 // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'
54231 // setting will take effect.
54232 if (typeof groupState[key] === 'boolean') {
54233 node.expanded = groupState[key];
54234 }
54235 });
54236 };
54237 ClientSideRowModel.prototype.doFilter = function (changedPath) {
54238 this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
54239 };
54240 ClientSideRowModel.prototype.doPivot = function (changedPath) {
54241 if (this.pivotStage) {
54242 this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });
54243 }
54244 };
54245 ClientSideRowModel.prototype.getGroupState = function () {
54246 if (!this.rootNode.childrenAfterGroup || !this.gridOptionsService.is('rememberGroupStateWhenNewData')) {
54247 return null;
54248 }
54249 var result = {};
54250 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });
54251 return result;
54252 };
54253 ClientSideRowModel.prototype.getCopyOfNodesMap = function () {
54254 return this.nodeManager.getCopyOfNodesMap();
54255 };
54256 ClientSideRowModel.prototype.getRowNode = function (id) {
54257 // although id is typed a string, this could be called by the user, and they could have passed a number
54258 var idIsGroup = typeof id == 'string' && id.indexOf(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"].ID_PREFIX_ROW_GROUP) == 0;
54259 if (idIsGroup) {
54260 // only one users complained about getRowNode not working for groups, after years of
54261 // this working for normal rows. so have done quick implementation. if users complain
54262 // about performance, then GroupStage should store / manage created groups in a map,
54263 // which is a chunk of work.
54264 var res_1 = undefined;
54265 this.forEachNode(function (node) {
54266 if (node.id === id) {
54267 res_1 = node;
54268 }
54269 });
54270 return res_1;
54271 }
54272 return this.nodeManager.getRowNode(id);
54273 };
54274 // rows: the rows to put into the model
54275 ClientSideRowModel.prototype.setRowData = function (rowData) {
54276 // no need to invalidate cache, as the cache is stored on the rowNode,
54277 // so new rowNodes means the cache is wiped anyway.
54278 // remember group state, so we can expand groups that should be expanded
54279 var groupState = this.getGroupState();
54280 this.nodeManager.setRowData(rowData);
54281 // - clears selection
54282 this.selectionService.reset();
54283 // - updates filters
54284 this.filterManager.onNewRowsLoaded('rowDataUpdated');
54285 // this event kicks off:
54286 // - shows 'no rows' overlay if needed
54287 var rowDataUpdatedEvent = {
54288 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_DATA_UPDATED
54289 };
54290 this.eventService.dispatchEvent(rowDataUpdatedEvent);
54291 this.refreshModel({
54292 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
54293 groupState: groupState,
54294 newData: true
54295 });
54296 };
54297 ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {
54298 var _this = this;
54299 if (this.applyAsyncTransactionsTimeout == null) {
54300 this.rowDataTransactionBatch = [];
54301 var waitMillis = this.gridOptionsService.getAsyncTransactionWaitMillis();
54302 this.applyAsyncTransactionsTimeout = window.setTimeout(function () {
54303 _this.executeBatchUpdateRowData();
54304 }, waitMillis);
54305 }
54306 this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });
54307 };
54308 ClientSideRowModel.prototype.flushAsyncTransactions = function () {
54309 if (this.applyAsyncTransactionsTimeout != null) {
54310 clearTimeout(this.applyAsyncTransactionsTimeout);
54311 this.executeBatchUpdateRowData();
54312 }
54313 };
54314 ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {
54315 var _this = this;
54316 this.valueCache.onDataChanged();
54317 var callbackFuncsBound = [];
54318 var rowNodeTrans = [];
54319 // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to
54320 // commonUpdateRowData, using addIndex would have no effect when grouping.
54321 var forceRowNodeOrder = false;
54322 if (this.rowDataTransactionBatch) {
54323 this.rowDataTransactionBatch.forEach(function (tranItem) {
54324 var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);
54325 rowNodeTrans.push(rowNodeTran);
54326 if (tranItem.callback) {
54327 callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));
54328 }
54329 if (typeof tranItem.rowDataTransaction.addIndex === 'number') {
54330 forceRowNodeOrder = true;
54331 }
54332 });
54333 }
54334 this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);
54335 // do callbacks in next VM turn so it's async
54336 if (callbackFuncsBound.length > 0) {
54337 window.setTimeout(function () {
54338 callbackFuncsBound.forEach(function (func) { return func(); });
54339 }, 0);
54340 }
54341 if (rowNodeTrans.length > 0) {
54342 var event_2 = {
54343 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ASYNC_TRANSACTIONS_FLUSHED,
54344 results: rowNodeTrans
54345 };
54346 this.eventService.dispatchEvent(event_2);
54347 }
54348 this.rowDataTransactionBatch = null;
54349 this.applyAsyncTransactionsTimeout = undefined;
54350 };
54351 ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {
54352 this.valueCache.onDataChanged();
54353 var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);
54354 // if doing immutableData, addIndex is never present. however if doing standard transaction, and user
54355 // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup
54356 // stage also uses the
54357 var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';
54358 this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);
54359 return rowNodeTran;
54360 };
54361 ClientSideRowModel.prototype.createRowNodeOrder = function () {
54362 var suppressSortOrder = this.gridOptionsService.is('suppressMaintainUnsortedOrder');
54363 if (suppressSortOrder) {
54364 return;
54365 }
54366 var orderMap = {};
54367 if (this.rootNode && this.rootNode.allLeafChildren) {
54368 for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {
54369 var node = this.rootNode.allLeafChildren[index];
54370 orderMap[node.id] = index;
54371 }
54372 }
54373 return orderMap;
54374 };
54375 // common to updateRowData and batchUpdateRowData
54376 ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {
54377 var animate = !this.gridOptionsService.is('suppressAnimationFrame');
54378 if (forceRowNodeOrder) {
54379 rowNodeOrder = this.createRowNodeOrder();
54380 }
54381 this.refreshModel({
54382 step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].EVERYTHING,
54383 rowNodeTransactions: rowNodeTrans,
54384 rowNodeOrder: rowNodeOrder,
54385 keepRenderedRows: true,
54386 keepEditingRows: true,
54387 animate: animate
54388 });
54389 // - updates filters
54390 this.filterManager.onNewRowsLoaded('rowDataUpdated');
54391 var event = {
54392 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_ROW_DATA_UPDATED
54393 };
54394 this.eventService.dispatchEvent(event);
54395 };
54396 ClientSideRowModel.prototype.doRowsToDisplay = function () {
54397 this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });
54398 };
54399 ClientSideRowModel.prototype.onRowHeightChanged = function () {
54400 this.refreshModel({ step: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelSteps"].MAP, keepRenderedRows: true, keepEditingRows: true, keepUndoRedoStack: true });
54401 };
54402 /** This method is debounced. It is used for row auto-height. If we don't debounce,
54403 * then the Row Models will end up recalculating each row position
54404 * for each row height change and result in the Row Renderer laying out rows.
54405 * This is particularly bad if using print layout, and showing eg 1,000 rows,
54406 * each row will change it's height, causing Row Model to update 1,000 times.
54407 */
54408 ClientSideRowModel.prototype.onRowHeightChangedDebounced = function () {
54409 this.onRowHeightChanged_debounced();
54410 };
54411 ClientSideRowModel.prototype.resetRowHeights = function () {
54412 var atLeastOne = false;
54413 this.forEachNode(function (rowNode) {
54414 rowNode.setRowHeight(rowNode.rowHeight, true);
54415 // we keep the height each row is at, however we set estimated=true rather than clear the height.
54416 // this means the grid will not reset the row heights back to defaults, rather it will re-calc
54417 // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.
54418 var detailNode = rowNode.detailNode;
54419 if (detailNode) {
54420 detailNode.setRowHeight(detailNode.rowHeight, true);
54421 }
54422 atLeastOne = true;
54423 });
54424 // when pivotMode but pivot not active, root node is displayed on its own
54425 // because it's only ever displayed alone, refreshing the model (onRowHeightChanged) is not required
54426 this.rootNode.setRowHeight(this.rootNode.rowHeight, true);
54427 if (atLeastOne) {
54428 this.onRowHeightChanged();
54429 }
54430 };
54431 __decorate([
54432 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
54433 ], ClientSideRowModel.prototype, "columnModel", void 0);
54434 __decorate([
54435 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionService')
54436 ], ClientSideRowModel.prototype, "selectionService", void 0);
54437 __decorate([
54438 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
54439 ], ClientSideRowModel.prototype, "filterManager", void 0);
54440 __decorate([
54441 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueCache')
54442 ], ClientSideRowModel.prototype, "valueCache", void 0);
54443 __decorate([
54444 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
54445 ], ClientSideRowModel.prototype, "beans", void 0);
54446 __decorate([
54447 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterStage')
54448 ], ClientSideRowModel.prototype, "filterStage", void 0);
54449 __decorate([
54450 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortStage')
54451 ], ClientSideRowModel.prototype, "sortStage", void 0);
54452 __decorate([
54453 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('flattenStage')
54454 ], ClientSideRowModel.prototype, "flattenStage", void 0);
54455 __decorate([
54456 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('groupStage')
54457 ], ClientSideRowModel.prototype, "groupStage", void 0);
54458 __decorate([
54459 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('aggregationStage')
54460 ], ClientSideRowModel.prototype, "aggregationStage", void 0);
54461 __decorate([
54462 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('pivotStage')
54463 ], ClientSideRowModel.prototype, "pivotStage", void 0);
54464 __decorate([
54465 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Optional"])('filterAggregatesStage')
54466 ], ClientSideRowModel.prototype, "filterAggregatesStage", void 0);
54467 __decorate([
54468 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
54469 ], ClientSideRowModel.prototype, "init", null);
54470 ClientSideRowModel = __decorate([
54471 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowModel')
54472 ], ClientSideRowModel);
54473 return ClientSideRowModel;
54474}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
54475
54476
54477
54478/***/ }),
54479/* 250 */
54480/***/ (function(module, __webpack_exports__, __webpack_require__) {
54481
54482"use strict";
54483__webpack_require__.r(__webpack_exports__);
54484/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientSideNodeManager", function() { return ClientSideNodeManager; });
54485/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
54486var __read = (undefined && undefined.__read) || function (o, n) {
54487 var m = typeof Symbol === "function" && o[Symbol.iterator];
54488 if (!m) return o;
54489 var i = m.call(o), r, ar = [], e;
54490 try {
54491 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
54492 }
54493 catch (error) { e = { error: error }; }
54494 finally {
54495 try {
54496 if (r && !r.done && (m = i["return"])) m.call(i);
54497 }
54498 finally { if (e) throw e.error; }
54499 }
54500 return ar;
54501};
54502var __spread = (undefined && undefined.__spread) || function () {
54503 for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
54504 return ar;
54505};
54506
54507var ClientSideNodeManager = /** @class */ (function () {
54508 function ClientSideNodeManager(rootNode, gridOptionsService, eventService, columnModel, selectionService, beans) {
54509 this.nextId = 0;
54510 // when user is provide the id's, we also keep a map of ids to row nodes for convenience
54511 this.allNodesMap = {};
54512 this.rootNode = rootNode;
54513 this.gridOptionsService = gridOptionsService;
54514 this.eventService = eventService;
54515 this.columnModel = columnModel;
54516 this.beans = beans;
54517 this.selectionService = selectionService;
54518 this.rootNode.group = true;
54519 this.rootNode.level = -1;
54520 this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;
54521 this.rootNode.allLeafChildren = [];
54522 this.rootNode.childrenAfterGroup = [];
54523 this.rootNode.childrenAfterSort = [];
54524 this.rootNode.childrenAfterAggFilter = [];
54525 this.rootNode.childrenAfterFilter = [];
54526 // if we make this class a bean, then can annotate postConstruct
54527 this.postConstruct();
54528 }
54529 // @PostConstruct - this is not a bean, so postConstruct called by constructor
54530 ClientSideNodeManager.prototype.postConstruct = function () {
54531 // func below doesn't have 'this' pointer, so need to pull out these bits
54532 this.suppressParentsInRowNodes = this.gridOptionsService.is('suppressParentsInRowNodes');
54533 this.isRowMasterFunc = this.gridOptionsService.get('isRowMaster');
54534 this.doingTreeData = this.gridOptionsService.isTreeData();
54535 this.doingMasterDetail = this.gridOptionsService.isMasterDetail();
54536 };
54537 ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {
54538 return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].cloneObject(this.allNodesMap);
54539 };
54540 ClientSideNodeManager.prototype.getRowNode = function (id) {
54541 return this.allNodesMap[id];
54542 };
54543 ClientSideNodeManager.prototype.setRowData = function (rowData) {
54544 var _this = this;
54545 if (typeof rowData === 'string') {
54546 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');
54547 return;
54548 }
54549 var rootNode = this.rootNode;
54550 var sibling = this.rootNode.sibling;
54551 rootNode.childrenAfterFilter = null;
54552 rootNode.childrenAfterGroup = null;
54553 rootNode.childrenAfterAggFilter = null;
54554 rootNode.childrenAfterSort = null;
54555 rootNode.childrenMapped = null;
54556 rootNode.updateHasChildren();
54557 this.nextId = 0;
54558 this.allNodesMap = {};
54559 if (rowData) {
54560 // we use rootNode as the parent, however if using ag-grid-enterprise, the grouping stage
54561 // sets the parent node on each row (even if we are not grouping). so setting parent node
54562 // here is for benefit of ag-grid-community users
54563 rootNode.allLeafChildren = rowData.map(function (dataItem) { return _this.createNode(dataItem, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });
54564 }
54565 else {
54566 rootNode.allLeafChildren = [];
54567 rootNode.childrenAfterGroup = [];
54568 }
54569 if (sibling) {
54570 sibling.childrenAfterFilter = rootNode.childrenAfterFilter;
54571 sibling.childrenAfterGroup = rootNode.childrenAfterGroup;
54572 sibling.childrenAfterAggFilter = rootNode.childrenAfterAggFilter;
54573 sibling.childrenAfterSort = rootNode.childrenAfterSort;
54574 sibling.childrenMapped = rootNode.childrenMapped;
54575 sibling.allLeafChildren = rootNode.allLeafChildren;
54576 }
54577 };
54578 ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {
54579 var rowNodeTransaction = {
54580 remove: [],
54581 update: [],
54582 add: []
54583 };
54584 var nodesToUnselect = [];
54585 this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);
54586 this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);
54587 this.executeAdd(rowDataTran, rowNodeTransaction);
54588 this.updateSelection(nodesToUnselect, 'rowDataChanged');
54589 if (rowNodeOrder) {
54590 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);
54591 }
54592 return rowNodeTransaction;
54593 };
54594 ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect, source) {
54595 var selectionChanged = nodesToUnselect.length > 0;
54596 if (selectionChanged) {
54597 nodesToUnselect.forEach(function (rowNode) {
54598 rowNode.setSelected(false, false, true, source);
54599 });
54600 }
54601 // we do this regardless of nodes to unselect or not, as it's possible
54602 // a new node was inserted, so a parent that was previously selected (as all
54603 // children were selected) should not be tri-state (as new one unselected against
54604 // all other selected children).
54605 this.selectionService.updateGroupsFromChildrenSelections(source);
54606 if (selectionChanged) {
54607 var event_1 = {
54608 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SELECTION_CHANGED,
54609 source: source
54610 };
54611 this.eventService.dispatchEvent(event_1);
54612 }
54613 };
54614 ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {
54615 var _this = this;
54616 var _a;
54617 var add = rowDataTran.add, addIndex = rowDataTran.addIndex;
54618 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(add)) {
54619 return;
54620 }
54621 // create new row nodes for each data item
54622 var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });
54623 if (typeof addIndex === 'number' && addIndex >= 0) {
54624 // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.
54625 // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.
54626 var allLeafChildren = this.rootNode.allLeafChildren;
54627 var len = allLeafChildren.length;
54628 var normalisedAddIndex = addIndex;
54629 if (this.doingTreeData && addIndex > 0 && len > 0) {
54630 for (var i = 0; i < len; i++) {
54631 if (((_a = allLeafChildren[i]) === null || _a === void 0 ? void 0 : _a.rowIndex) == addIndex - 1) {
54632 normalisedAddIndex = i + 1;
54633 break;
54634 }
54635 }
54636 }
54637 var nodesBeforeIndex = allLeafChildren.slice(0, normalisedAddIndex);
54638 var nodesAfterIndex = allLeafChildren.slice(normalisedAddIndex, allLeafChildren.length);
54639 this.rootNode.allLeafChildren = __spread(nodesBeforeIndex, newNodes, nodesAfterIndex);
54640 }
54641 else {
54642 this.rootNode.allLeafChildren = __spread(this.rootNode.allLeafChildren, newNodes);
54643 }
54644 if (this.rootNode.sibling) {
54645 this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;
54646 }
54647 // add new row nodes to the transaction add items
54648 rowNodeTransaction.add = newNodes;
54649 };
54650 ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {
54651 var _this = this;
54652 var remove = rowDataTran.remove;
54653 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(remove)) {
54654 return;
54655 }
54656 var rowIdsRemoved = {};
54657 remove.forEach(function (item) {
54658 var rowNode = _this.lookupRowNode(item);
54659 if (!rowNode) {
54660 return;
54661 }
54662 // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for
54663 // each row node updated, instead it is raised once by the calling code if any selected nodes exist.
54664 if (rowNode.isSelected()) {
54665 nodesToUnselect.push(rowNode);
54666 }
54667 // so row renderer knows to fade row out (and not reposition it)
54668 rowNode.clearRowTopAndRowIndex();
54669 // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially
54670 // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list
54671 rowIdsRemoved[rowNode.id] = true;
54672 // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);
54673 delete _this.allNodesMap[rowNode.id];
54674 rowNodeTransaction.remove.push(rowNode);
54675 });
54676 this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });
54677 if (this.rootNode.sibling) {
54678 this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;
54679 }
54680 };
54681 ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {
54682 var _this = this;
54683 var update = rowDataTran.update;
54684 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(update)) {
54685 return;
54686 }
54687 update.forEach(function (item) {
54688 var rowNode = _this.lookupRowNode(item);
54689 if (!rowNode) {
54690 return;
54691 }
54692 rowNode.updateData(item);
54693 if (!rowNode.selectable && rowNode.isSelected()) {
54694 nodesToUnselect.push(rowNode);
54695 }
54696 _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);
54697 rowNodeTransaction.update.push(rowNode);
54698 });
54699 };
54700 ClientSideNodeManager.prototype.lookupRowNode = function (data) {
54701 var getRowIdFunc = this.gridOptionsService.getRowIdFunc();
54702 var rowNode;
54703 if (getRowIdFunc) {
54704 // find rowNode using id
54705 var id = getRowIdFunc({ data: data, level: 0 });
54706 rowNode = this.allNodesMap[id];
54707 if (!rowNode) {
54708 console.error("AG Grid: could not find row id=" + id + ", data item was not found for this id");
54709 return null;
54710 }
54711 }
54712 else {
54713 // find rowNode using object references
54714 rowNode = this.rootNode.allLeafChildren.find(function (node) { return node.data === data; });
54715 if (!rowNode) {
54716 console.error("AG Grid: could not find data item as object was not found", data);
54717 console.error("Consider using getRowId to help the Grid find matching row data");
54718 return null;
54719 }
54720 }
54721 return rowNode || null;
54722 };
54723 ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {
54724 var node = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"](this.beans);
54725 node.group = false;
54726 this.setMasterForRow(node, dataItem, level, true);
54727 if (parent && !this.suppressParentsInRowNodes) {
54728 node.parent = parent;
54729 }
54730 node.level = level;
54731 node.setDataAndId(dataItem, this.nextId.toString());
54732 if (this.allNodesMap[node.id]) {
54733 console.warn("AG Grid: duplicate node id '" + node.id + "' detected from getRowId callback, this could cause issues in your grid.");
54734 }
54735 this.allNodesMap[node.id] = node;
54736 this.nextId++;
54737 return node;
54738 };
54739 ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {
54740 if (this.doingTreeData) {
54741 rowNode.setMaster(false);
54742 if (setExpanded) {
54743 rowNode.expanded = false;
54744 }
54745 }
54746 else {
54747 // this is the default, for when doing grid data
54748 if (this.doingMasterDetail) {
54749 // if we are doing master detail, then the
54750 // default is that everything can be a Master Row.
54751 if (this.isRowMasterFunc) {
54752 rowNode.setMaster(this.isRowMasterFunc(data));
54753 }
54754 else {
54755 rowNode.setMaster(true);
54756 }
54757 }
54758 else {
54759 rowNode.setMaster(false);
54760 }
54761 if (setExpanded) {
54762 var rowGroupColumns = this.columnModel.getRowGroupColumns();
54763 var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;
54764 // need to take row group into account when determining level
54765 var masterRowLevel = level + numRowGroupColumns;
54766 rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;
54767 }
54768 }
54769 };
54770 ClientSideNodeManager.prototype.isExpanded = function (level) {
54771 var expandByDefault = this.gridOptionsService.getNum('groupDefaultExpanded');
54772 if (expandByDefault === -1) {
54773 return true;
54774 }
54775 return level < expandByDefault;
54776 };
54777 ClientSideNodeManager.TOP_LEVEL = 0;
54778 ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';
54779 return ClientSideNodeManager;
54780}());
54781
54782
54783
54784/***/ }),
54785/* 251 */
54786/***/ (function(module, __webpack_exports__, __webpack_require__) {
54787
54788"use strict";
54789__webpack_require__.r(__webpack_exports__);
54790/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterStage", function() { return FilterStage; });
54791/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
54792var __extends = (undefined && undefined.__extends) || (function () {
54793 var extendStatics = function (d, b) {
54794 extendStatics = Object.setPrototypeOf ||
54795 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
54796 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
54797 return extendStatics(d, b);
54798 };
54799 return function (d, b) {
54800 extendStatics(d, b);
54801 function __() { this.constructor = d; }
54802 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
54803 };
54804})();
54805var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
54806 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
54807 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
54808 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;
54809 return c > 3 && r && Object.defineProperty(target, key, r), r;
54810};
54811
54812var FilterStage = /** @class */ (function (_super) {
54813 __extends(FilterStage, _super);
54814 function FilterStage() {
54815 return _super !== null && _super.apply(this, arguments) || this;
54816 }
54817 FilterStage.prototype.execute = function (params) {
54818 var changedPath = params.changedPath;
54819 this.filterService.filter(changedPath);
54820 };
54821 __decorate([
54822 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterService')
54823 ], FilterStage.prototype, "filterService", void 0);
54824 FilterStage = __decorate([
54825 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('filterStage')
54826 ], FilterStage);
54827 return FilterStage;
54828}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
54829
54830
54831
54832/***/ }),
54833/* 252 */
54834/***/ (function(module, __webpack_exports__, __webpack_require__) {
54835
54836"use strict";
54837__webpack_require__.r(__webpack_exports__);
54838/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortStage", function() { return SortStage; });
54839/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
54840var __extends = (undefined && undefined.__extends) || (function () {
54841 var extendStatics = function (d, b) {
54842 extendStatics = Object.setPrototypeOf ||
54843 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
54844 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
54845 return extendStatics(d, b);
54846 };
54847 return function (d, b) {
54848 extendStatics(d, b);
54849 function __() { this.constructor = d; }
54850 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
54851 };
54852})();
54853var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
54854 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
54855 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
54856 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;
54857 return c > 3 && r && Object.defineProperty(target, key, r), r;
54858};
54859
54860var SortStage = /** @class */ (function (_super) {
54861 __extends(SortStage, _super);
54862 function SortStage() {
54863 return _super !== null && _super.apply(this, arguments) || this;
54864 }
54865 SortStage.prototype.execute = function (params) {
54866 var _this = this;
54867 var sortOptions = this.sortController.getSortOptions();
54868 var sortActive = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(sortOptions) && sortOptions.length > 0;
54869 var deltaSort = sortActive
54870 && _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(params.rowNodeTransactions)
54871 // in time we can remove this check, so that delta sort is always
54872 // on if transactions are present. it's off for now so that we can
54873 // selectively turn it on and test it with some select users before
54874 // rolling out to everyone.
54875 && this.gridOptionsService.is('deltaSort');
54876 var sortContainsGroupColumns = sortOptions.some(function (opt) { return !!_this.columnModel.getGroupDisplayColumnForGroup(opt.column.getId()); });
54877 this.sortService.sort(sortOptions, sortActive, deltaSort, params.rowNodeTransactions, params.changedPath, sortContainsGroupColumns);
54878 };
54879 __decorate([
54880 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortService')
54881 ], SortStage.prototype, "sortService", void 0);
54882 __decorate([
54883 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
54884 ], SortStage.prototype, "sortController", void 0);
54885 __decorate([
54886 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
54887 ], SortStage.prototype, "columnModel", void 0);
54888 SortStage = __decorate([
54889 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortStage')
54890 ], SortStage);
54891 return SortStage;
54892}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
54893
54894
54895
54896/***/ }),
54897/* 253 */
54898/***/ (function(module, __webpack_exports__, __webpack_require__) {
54899
54900"use strict";
54901__webpack_require__.r(__webpack_exports__);
54902/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FlattenStage", function() { return FlattenStage; });
54903/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
54904var __extends = (undefined && undefined.__extends) || (function () {
54905 var extendStatics = function (d, b) {
54906 extendStatics = Object.setPrototypeOf ||
54907 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
54908 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
54909 return extendStatics(d, b);
54910 };
54911 return function (d, b) {
54912 extendStatics(d, b);
54913 function __() { this.constructor = d; }
54914 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
54915 };
54916})();
54917var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
54918 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
54919 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
54920 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;
54921 return c > 3 && r && Object.defineProperty(target, key, r), r;
54922};
54923
54924var FlattenStage = /** @class */ (function (_super) {
54925 __extends(FlattenStage, _super);
54926 function FlattenStage() {
54927 return _super !== null && _super.apply(this, arguments) || this;
54928 }
54929 FlattenStage.prototype.execute = function (params) {
54930 var rootNode = params.rowNode;
54931 // even if not doing grouping, we do the mapping, as the client might
54932 // of passed in data that already has a grouping in it somewhere
54933 var result = [];
54934 // putting value into a wrapper so it's passed by reference
54935 var nextRowTop = { value: 0 };
54936 var skipLeafNodes = this.columnModel.isPivotMode();
54937 // if we are reducing, and not grouping, then we want to show the root node, as that
54938 // is where the pivot values are
54939 var showRootNode = skipLeafNodes && rootNode.leafGroup;
54940 var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;
54941 this.recursivelyAddToRowsToDisplay(topList, result, nextRowTop, skipLeafNodes, 0);
54942 // we do not want the footer total if the gris is empty
54943 var atLeastOneRowPresent = result.length > 0;
54944 var includeGroupTotalFooter = !showRootNode
54945 // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)
54946 && atLeastOneRowPresent
54947 && this.gridOptionsService.is('groupIncludeTotalFooter');
54948 if (includeGroupTotalFooter) {
54949 rootNode.createFooter();
54950 this.addRowNodeToRowsToDisplay(rootNode.sibling, result, nextRowTop, 0);
54951 }
54952 return result;
54953 };
54954 FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (rowsToFlatten, result, nextRowTop, skipLeafNodes, uiLevel) {
54955 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missingOrEmpty(rowsToFlatten)) {
54956 return;
54957 }
54958 var hideOpenParents = this.gridOptionsService.is('groupHideOpenParents');
54959 // these two are mutually exclusive, so if first set, we don't set the second
54960 var groupRemoveSingleChildren = this.gridOptionsService.is('groupRemoveSingleChildren');
54961 var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsService.is('groupRemoveLowestSingleChildren');
54962 for (var i = 0; i < rowsToFlatten.length; i++) {
54963 var rowNode = rowsToFlatten[i];
54964 // check all these cases, for working out if this row should be included in the final mapped list
54965 var isParent = rowNode.hasChildren();
54966 var isSkippedLeafNode = skipLeafNodes && !isParent;
54967 var isRemovedSingleChildrenGroup = groupRemoveSingleChildren &&
54968 isParent &&
54969 rowNode.childrenAfterGroup.length === 1;
54970 var isRemovedLowestSingleChildrenGroup = groupRemoveLowestSingleChildren &&
54971 isParent &&
54972 rowNode.leafGroup &&
54973 rowNode.childrenAfterGroup.length === 1;
54974 // hide open parents means when group is open, we don't show it. we also need to make sure the
54975 // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).
54976 // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all')
54977 var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;
54978 var isHiddenOpenParent = hideOpenParents && rowNode.expanded && !rowNode.master && (!neverAllowToExpand);
54979 var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&
54980 !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;
54981 if (thisRowShouldBeRendered) {
54982 this.addRowNodeToRowsToDisplay(rowNode, result, nextRowTop, uiLevel);
54983 }
54984 // if we are pivoting, we never map below the leaf group
54985 if (skipLeafNodes && rowNode.leafGroup) {
54986 continue;
54987 }
54988 if (isParent) {
54989 var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;
54990 // we traverse the group if it is expended, however we always traverse if the parent node
54991 // was removed (as the group will never be opened if it is not displayed, we show the children instead)
54992 if (rowNode.expanded || excludedParent) {
54993 // if the parent was excluded, then ui level is that of the parent
54994 var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;
54995 this.recursivelyAddToRowsToDisplay(rowNode.childrenAfterSort, result, nextRowTop, skipLeafNodes, uiLevelForChildren);
54996 // put a footer in if user is looking for it
54997 if (this.gridOptionsService.is('groupIncludeFooter')) {
54998 this.addRowNodeToRowsToDisplay(rowNode.sibling, result, nextRowTop, uiLevel);
54999 }
55000 }
55001 }
55002 else if (rowNode.master && rowNode.expanded) {
55003 var detailNode = this.createDetailNode(rowNode);
55004 this.addRowNodeToRowsToDisplay(detailNode, result, nextRowTop, uiLevel);
55005 }
55006 }
55007 };
55008 // duplicated method, it's also in floatingRowModel
55009 FlattenStage.prototype.addRowNodeToRowsToDisplay = function (rowNode, result, nextRowTop, uiLevel) {
55010 var isGroupMultiAutoColumn = this.gridOptionsService.isGroupMultiAutoColumn();
55011 result.push(rowNode);
55012 rowNode.setUiLevel(isGroupMultiAutoColumn ? 0 : uiLevel);
55013 };
55014 FlattenStage.prototype.createDetailNode = function (masterNode) {
55015 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(masterNode.detailNode)) {
55016 return masterNode.detailNode;
55017 }
55018 var detailNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"](this.beans);
55019 detailNode.detail = true;
55020 detailNode.selectable = false;
55021 detailNode.parent = masterNode;
55022 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(masterNode.id)) {
55023 detailNode.id = 'detail_' + masterNode.id;
55024 }
55025 detailNode.data = masterNode.data;
55026 detailNode.level = masterNode.level + 1;
55027 masterNode.detailNode = detailNode;
55028 return detailNode;
55029 };
55030 __decorate([
55031 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
55032 ], FlattenStage.prototype, "columnModel", void 0);
55033 __decorate([
55034 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
55035 ], FlattenStage.prototype, "beans", void 0);
55036 FlattenStage = __decorate([
55037 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('flattenStage')
55038 ], FlattenStage);
55039 return FlattenStage;
55040}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
55041
55042
55043
55044/***/ }),
55045/* 254 */
55046/***/ (function(module, __webpack_exports__, __webpack_require__) {
55047
55048"use strict";
55049__webpack_require__.r(__webpack_exports__);
55050/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SortService", function() { return SortService; });
55051/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
55052var __extends = (undefined && undefined.__extends) || (function () {
55053 var extendStatics = function (d, b) {
55054 extendStatics = Object.setPrototypeOf ||
55055 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
55056 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
55057 return extendStatics(d, b);
55058 };
55059 return function (d, b) {
55060 extendStatics(d, b);
55061 function __() { this.constructor = d; }
55062 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55063 };
55064})();
55065var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
55066 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
55067 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
55068 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;
55069 return c > 3 && r && Object.defineProperty(target, key, r), r;
55070};
55071
55072var SortService = /** @class */ (function (_super) {
55073 __extends(SortService, _super);
55074 function SortService() {
55075 return _super !== null && _super.apply(this, arguments) || this;
55076 }
55077 SortService.prototype.init = function () {
55078 this.postSortFunc = this.getPostSortFunc();
55079 };
55080 SortService.prototype.sort = function (sortOptions, sortActive, useDeltaSort, rowNodeTransactions, changedPath, sortContainsGroupColumns) {
55081 var _this = this;
55082 var groupMaintainOrder = this.gridOptionsService.is('groupMaintainOrder');
55083 var groupColumnsPresent = this.columnModel.getAllGridColumns().some(function (c) { return c.isRowGroupActive(); });
55084 var allDirtyNodes = {};
55085 if (useDeltaSort && rowNodeTransactions) {
55086 allDirtyNodes = this.calculateDirtyNodes(rowNodeTransactions);
55087 }
55088 var isPivotMode = this.columnModel.isPivotMode();
55089 var callback = function (rowNode) {
55090 // we clear out the 'pull down open parents' first, as the values mix up the sorting
55091 _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterAggFilter, true);
55092 // It's pointless to sort rows which aren't being displayed. in pivot mode we don't need to sort the leaf group children.
55093 var skipSortingPivotLeafs = isPivotMode && rowNode.leafGroup;
55094 // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,
55095 // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we
55096 // are going to inspect the original array position. This is what sortedRowNodes is for.
55097 var skipSortingGroups = groupMaintainOrder && groupColumnsPresent && !rowNode.leafGroup && !sortContainsGroupColumns;
55098 if (skipSortingGroups) {
55099 var childrenToBeSorted = rowNode.childrenAfterAggFilter.slice(0);
55100 if (rowNode.childrenAfterSort) {
55101 var indexedOrders_1 = {};
55102 rowNode.childrenAfterSort.forEach(function (node, idx) {
55103 indexedOrders_1[node.id] = idx;
55104 });
55105 childrenToBeSorted.sort(function (row1, row2) { var _a, _b; return ((_a = indexedOrders_1[row1.id]) !== null && _a !== void 0 ? _a : 0) - ((_b = indexedOrders_1[row2.id]) !== null && _b !== void 0 ? _b : 0); });
55106 }
55107 rowNode.childrenAfterSort = childrenToBeSorted;
55108 }
55109 else if (!sortActive || skipSortingPivotLeafs) {
55110 // if there's no sort to make, skip this step
55111 rowNode.childrenAfterSort = rowNode.childrenAfterAggFilter.slice(0);
55112 }
55113 else if (useDeltaSort) {
55114 rowNode.childrenAfterSort = _this.doDeltaSort(rowNode, allDirtyNodes, changedPath, sortOptions);
55115 }
55116 else {
55117 rowNode.childrenAfterSort = _this.rowNodeSorter.doFullSort(rowNode.childrenAfterAggFilter, sortOptions);
55118 }
55119 if (rowNode.sibling) {
55120 rowNode.sibling.childrenAfterSort = rowNode.childrenAfterSort;
55121 }
55122 _this.updateChildIndexes(rowNode);
55123 if (_this.postSortFunc) {
55124 var params = { nodes: rowNode.childrenAfterSort };
55125 _this.postSortFunc(params);
55126 }
55127 };
55128 if (changedPath) {
55129 changedPath.forEachChangedNodeDepthFirst(callback);
55130 }
55131 this.updateGroupDataForHideOpenParents(changedPath);
55132 };
55133 SortService.prototype.getPostSortFunc = function () {
55134 var postSortRows = this.gridOptionsService.getCallback('postSortRows');
55135 if (postSortRows) {
55136 return postSortRows;
55137 }
55138 // this is the deprecated way, so provide a proxy to make it compatible
55139 var postSort = this.gridOptionsService.get('postSort');
55140 if (postSort) {
55141 return function (params) { return postSort(params.nodes); };
55142 }
55143 };
55144 SortService.prototype.calculateDirtyNodes = function (rowNodeTransactions) {
55145 var dirtyNodes = {};
55146 var addNodesFunc = function (rowNodes) {
55147 if (rowNodes) {
55148 rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });
55149 }
55150 };
55151 // all leaf level nodes in the transaction were impacted
55152 if (rowNodeTransactions) {
55153 rowNodeTransactions.forEach(function (tran) {
55154 addNodesFunc(tran.add);
55155 addNodesFunc(tran.update);
55156 addNodesFunc(tran.remove);
55157 });
55158 }
55159 return dirtyNodes;
55160 };
55161 SortService.prototype.doDeltaSort = function (rowNode, allTouchedNodes, changedPath, sortOptions) {
55162 var _this = this;
55163 var unsortedRows = rowNode.childrenAfterAggFilter;
55164 var oldSortedRows = rowNode.childrenAfterSort;
55165 if (!oldSortedRows) {
55166 return this.rowNodeSorter.doFullSort(unsortedRows, sortOptions);
55167 }
55168 var untouchedRowsMap = {};
55169 var touchedRows = [];
55170 unsortedRows.forEach(function (row) {
55171 if (allTouchedNodes[row.id] || !changedPath.canSkip(row)) {
55172 touchedRows.push(row);
55173 }
55174 else {
55175 untouchedRowsMap[row.id] = true;
55176 }
55177 });
55178 var sortedUntouchedRows = oldSortedRows.filter(function (child) { return untouchedRowsMap[child.id]; });
55179 var mapNodeToSortedNode = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };
55180 var sortedChangedRows = touchedRows
55181 .map(mapNodeToSortedNode)
55182 .sort(function (a, b) { return _this.rowNodeSorter.compareRowNodes(sortOptions, a, b); });
55183 return this.mergeSortedArrays(sortOptions, sortedChangedRows, sortedUntouchedRows.map(mapNodeToSortedNode)).map(function (_a) {
55184 var rowNode = _a.rowNode;
55185 return rowNode;
55186 });
55187 };
55188 // Merge two sorted arrays into each other
55189 SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {
55190 var res = [];
55191 var i = 0;
55192 var j = 0;
55193 // Traverse both array, adding them in order
55194 while (i < arr1.length && j < arr2.length) {
55195 // Check if current element of first
55196 // array is smaller than current element
55197 // of second array. If yes, store first
55198 // array element and increment first array
55199 // index. Otherwise do same with second array
55200 var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);
55201 if (compareResult < 0) {
55202 res.push(arr1[i++]);
55203 }
55204 else {
55205 res.push(arr2[j++]);
55206 }
55207 }
55208 // add remaining from arr1
55209 while (i < arr1.length) {
55210 res.push(arr1[i++]);
55211 }
55212 // add remaining from arr2
55213 while (j < arr2.length) {
55214 res.push(arr2[j++]);
55215 }
55216 return res;
55217 };
55218 SortService.prototype.updateChildIndexes = function (rowNode) {
55219 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNode.childrenAfterSort)) {
55220 return;
55221 }
55222 var listToSort = rowNode.childrenAfterSort;
55223 for (var i = 0; i < listToSort.length; i++) {
55224 var child = listToSort[i];
55225 var firstChild = i === 0;
55226 var lastChild = i === rowNode.childrenAfterSort.length - 1;
55227 child.setFirstChild(firstChild);
55228 child.setLastChild(lastChild);
55229 child.setChildIndex(i);
55230 }
55231 };
55232 SortService.prototype.updateGroupDataForHideOpenParents = function (changedPath) {
55233 var _this = this;
55234 if (!this.gridOptionsService.is('groupHideOpenParents')) {
55235 return;
55236 }
55237 if (this.gridOptionsService.isTreeData()) {
55238 var msg_1 = "AG Grid: The property hideOpenParents dose not work with Tree Data. This is because Tree Data has values at the group level, it doesn't make sense to hide them (as opposed to Row Grouping, which only has Aggregated Values at the group level).";
55239 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn(msg_1); }, 'sortService.hideOpenParentsWithTreeData');
55240 return false;
55241 }
55242 // recurse breadth first over group nodes after sort to 'pull down' group data to child groups
55243 var callback = function (rowNode) {
55244 _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);
55245 rowNode.childrenAfterSort.forEach(function (child) {
55246 if (child.hasChildren()) {
55247 callback(child);
55248 }
55249 });
55250 };
55251 if (changedPath) {
55252 changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });
55253 }
55254 };
55255 SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {
55256 var _this = this;
55257 if (!this.gridOptionsService.is('groupHideOpenParents') || _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(rowNodes)) {
55258 return;
55259 }
55260 rowNodes.forEach(function (childRowNode) {
55261 var groupDisplayCols = _this.columnModel.getGroupDisplayColumns();
55262 groupDisplayCols.forEach(function (groupDisplayCol) {
55263 var showRowGroup = groupDisplayCol.getColDef().showRowGroup;
55264 if (typeof showRowGroup !== 'string') {
55265 console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');
55266 return;
55267 }
55268 var displayingGroupKey = showRowGroup;
55269 var rowGroupColumn = _this.columnModel.getPrimaryColumn(displayingGroupKey);
55270 var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;
55271 if (thisRowNodeMatches) {
55272 return;
55273 }
55274 if (clearOperation) {
55275 // if doing a clear operation, we clear down the value for every possible group column
55276 childRowNode.setGroupValue(groupDisplayCol.getId(), undefined);
55277 }
55278 else {
55279 // if doing a set operation, we set only where the pull down is to occur
55280 var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);
55281 if (parentToStealFrom) {
55282 childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);
55283 }
55284 }
55285 });
55286 });
55287 };
55288 __decorate([
55289 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
55290 ], SortService.prototype, "columnModel", void 0);
55291 __decorate([
55292 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeSorter')
55293 ], SortService.prototype, "rowNodeSorter", void 0);
55294 __decorate([
55295 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
55296 ], SortService.prototype, "init", null);
55297 SortService = __decorate([
55298 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('sortService')
55299 ], SortService);
55300 return SortService;
55301}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
55302
55303
55304
55305/***/ }),
55306/* 255 */
55307/***/ (function(module, __webpack_exports__, __webpack_require__) {
55308
55309"use strict";
55310__webpack_require__.r(__webpack_exports__);
55311/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FilterService", function() { return FilterService; });
55312/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
55313var __extends = (undefined && undefined.__extends) || (function () {
55314 var extendStatics = function (d, b) {
55315 extendStatics = Object.setPrototypeOf ||
55316 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
55317 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
55318 return extendStatics(d, b);
55319 };
55320 return function (d, b) {
55321 extendStatics(d, b);
55322 function __() { this.constructor = d; }
55323 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55324 };
55325})();
55326var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
55327 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
55328 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
55329 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;
55330 return c > 3 && r && Object.defineProperty(target, key, r), r;
55331};
55332
55333var FilterService = /** @class */ (function (_super) {
55334 __extends(FilterService, _super);
55335 function FilterService() {
55336 return _super !== null && _super.apply(this, arguments) || this;
55337 }
55338 FilterService.prototype.filter = function (changedPath) {
55339 var filterActive = this.filterManager.isColumnFilterPresent()
55340 || this.filterManager.isQuickFilterPresent()
55341 || this.filterManager.isExternalFilterPresent();
55342 this.filterNodes(filterActive, changedPath);
55343 };
55344 FilterService.prototype.filterNodes = function (filterActive, changedPath) {
55345 var _this = this;
55346 var filterCallback = function (rowNode, includeChildNodes) {
55347 // recursively get all children that are groups to also filter
55348 if (rowNode.hasChildren()) {
55349 // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes
55350 if (filterActive && !includeChildNodes) {
55351 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {
55352 // a group is included in the result if it has any children of it's own.
55353 // by this stage, the child groups are already filtered
55354 var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;
55355 // both leaf level nodes and tree data nodes have data. these get added if
55356 // the data passes the filter
55357 var passBecauseDataPasses = childNode.data
55358 && _this.filterManager.doesRowPassFilter({ rowNode: childNode });
55359 // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass
55360 return passBecauseChildren || passBecauseDataPasses;
55361 });
55362 }
55363 else {
55364 // if not filtering, the result is the original list
55365 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
55366 }
55367 }
55368 else {
55369 rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;
55370 }
55371 if (rowNode.sibling) {
55372 rowNode.sibling.childrenAfterFilter = rowNode.childrenAfterFilter;
55373 }
55374 };
55375 if (this.doingTreeDataFiltering()) {
55376 var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {
55377 // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes
55378 // filter, and parent nodes will be include if any children exist.
55379 if (rowNode.childrenAfterGroup) {
55380 for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {
55381 var childNode = rowNode.childrenAfterGroup[i];
55382 // first check if current node passes filter before invoking child nodes
55383 var foundInParent = alreadyFoundInParent
55384 || _this.filterManager.doesRowPassFilter({ rowNode: childNode });
55385 if (childNode.childrenAfterGroup) {
55386 treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);
55387 }
55388 else {
55389 filterCallback(childNode, foundInParent);
55390 }
55391 }
55392 }
55393 filterCallback(rowNode, alreadyFoundInParent);
55394 };
55395 var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };
55396 changedPath.executeFromRootNode(treeDataFilterCallback);
55397 }
55398 else {
55399 var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };
55400 changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);
55401 }
55402 };
55403 FilterService.prototype.doingTreeDataFiltering = function () {
55404 return this.gridOptionsService.isTreeData() && !this.gridOptionsService.is('excludeChildrenWhenTreeDataFiltering');
55405 };
55406 __decorate([
55407 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
55408 ], FilterService.prototype, "filterManager", void 0);
55409 FilterService = __decorate([
55410 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])("filterService")
55411 ], FilterService);
55412 return FilterService;
55413}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
55414
55415
55416
55417/***/ }),
55418/* 256 */
55419/***/ (function(module, __webpack_exports__, __webpack_require__) {
55420
55421"use strict";
55422__webpack_require__.r(__webpack_exports__);
55423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ImmutableService", function() { return ImmutableService; });
55424/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
55425var __extends = (undefined && undefined.__extends) || (function () {
55426 var extendStatics = function (d, b) {
55427 extendStatics = Object.setPrototypeOf ||
55428 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
55429 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
55430 return extendStatics(d, b);
55431 };
55432 return function (d, b) {
55433 extendStatics(d, b);
55434 function __() { this.constructor = d; }
55435 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55436 };
55437})();
55438var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
55439 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
55440 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
55441 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;
55442 return c > 3 && r && Object.defineProperty(target, key, r), r;
55443};
55444var __read = (undefined && undefined.__read) || function (o, n) {
55445 var m = typeof Symbol === "function" && o[Symbol.iterator];
55446 if (!m) return o;
55447 var i = m.call(o), r, ar = [], e;
55448 try {
55449 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
55450 }
55451 catch (error) { e = { error: error }; }
55452 finally {
55453 try {
55454 if (r && !r.done && (m = i["return"])) m.call(i);
55455 }
55456 finally { if (e) throw e.error; }
55457 }
55458 return ar;
55459};
55460
55461var ImmutableService = /** @class */ (function (_super) {
55462 __extends(ImmutableService, _super);
55463 function ImmutableService() {
55464 return _super !== null && _super.apply(this, arguments) || this;
55465 }
55466 ImmutableService.prototype.postConstruct = function () {
55467 if (this.rowModel.getType() === 'clientSide') {
55468 this.clientSideRowModel = this.rowModel;
55469 }
55470 };
55471 ImmutableService.prototype.isActive = function () {
55472 // we used to have a property immutableData for this. however this was deprecated
55473 // in favour of having Immutable Data on by default when getRowId is provided
55474 var getRowIdProvided = this.gridOptionsService.exists('getRowId');
55475 var immutableData = this.gridOptionsService.is('immutableData');
55476 // this property is a backwards compatibility property, for those who want
55477 // the old behaviour of Row ID's but NOT Immutable Data.
55478 var resetRowDataOnUpdate = this.gridOptionsService.is('resetRowDataOnUpdate');
55479 if (resetRowDataOnUpdate) {
55480 return false;
55481 }
55482 return getRowIdProvided || immutableData;
55483 };
55484 ImmutableService.prototype.setRowData = function (rowData) {
55485 var transactionAndMap = this.createTransactionForRowData(rowData);
55486 if (!transactionAndMap) {
55487 return;
55488 }
55489 var _a = __read(transactionAndMap, 2), transaction = _a[0], orderIdMap = _a[1];
55490 var nodeTransaction = this.clientSideRowModel.updateRowData(transaction, orderIdMap);
55491 // need to force updating of full width rows - note this wouldn't be necessary the full width cell comp listened
55492 // to the data change event on the row node and refreshed itself.
55493 if (nodeTransaction) {
55494 this.rowRenderer.refreshFullWidthRows(nodeTransaction.update);
55495 }
55496 };
55497 // converts the setRowData() command to a transaction
55498 ImmutableService.prototype.createTransactionForRowData = function (rowData) {
55499 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.clientSideRowModel)) {
55500 console.error('AG Grid: ImmutableService only works with ClientSideRowModel');
55501 return;
55502 }
55503 var getRowIdFunc = this.gridOptionsService.getRowIdFunc();
55504 if (getRowIdFunc == null) {
55505 console.error('AG Grid: ImmutableService requires getRowId() callback to be implemented, your row data needs IDs!');
55506 return;
55507 }
55508 // convert the data into a transaction object by working out adds, removes and updates
55509 var transaction = {
55510 remove: [],
55511 update: [],
55512 add: []
55513 };
55514 var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();
55515 var suppressSortOrder = this.gridOptionsService.is('suppressMaintainUnsortedOrder');
55516 var orderMap = suppressSortOrder ? undefined : {};
55517 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(rowData)) {
55518 // split all the new data in the following:
55519 // if new, push to 'add'
55520 // if update, push to 'update'
55521 // if not changed, do not include in the transaction
55522 rowData.forEach(function (data, index) {
55523 var id = getRowIdFunc({ data: data, level: 0 });
55524 var existingNode = existingNodesMap[id];
55525 if (orderMap) {
55526 orderMap[id] = index;
55527 }
55528 if (existingNode) {
55529 var dataHasChanged = existingNode.data !== data;
55530 if (dataHasChanged) {
55531 transaction.update.push(data);
55532 }
55533 // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta
55534 // remove from list, so we know the item is not to be removed
55535 existingNodesMap[id] = undefined;
55536 }
55537 else {
55538 transaction.add.push(data);
55539 }
55540 });
55541 }
55542 // at this point, all rows that are left, should be removed
55543 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].iterateObject(existingNodesMap, function (id, rowNode) {
55544 if (rowNode) {
55545 transaction.remove.push(rowNode.data);
55546 }
55547 });
55548 return [transaction, orderMap];
55549 };
55550 __decorate([
55551 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
55552 ], ImmutableService.prototype, "rowModel", void 0);
55553 __decorate([
55554 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
55555 ], ImmutableService.prototype, "rowRenderer", void 0);
55556 __decorate([
55557 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
55558 ], ImmutableService.prototype, "postConstruct", null);
55559 ImmutableService = __decorate([
55560 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('immutableService')
55561 ], ImmutableService);
55562 return ImmutableService;
55563}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
55564
55565
55566
55567/***/ }),
55568/* 257 */
55569/***/ (function(module, __webpack_exports__, __webpack_require__) {
55570
55571"use strict";
55572__webpack_require__.r(__webpack_exports__);
55573/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; });
55574// DO NOT UPDATE MANUALLY: Generated from script during build time
55575var VERSION = '29.2.0';
55576
55577
55578/***/ }),
55579/* 258 */
55580/***/ (function(module, __webpack_exports__, __webpack_require__) {
55581
55582"use strict";
55583__webpack_require__.r(__webpack_exports__);
55584/* harmony import */ var _csvExport_baseCreator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(259);
55585/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return _csvExport_baseCreator__WEBPACK_IMPORTED_MODULE_0__["BaseCreator"]; });
55586
55587/* harmony import */ var _csvExport_sessions_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(260);
55588/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return _csvExport_sessions_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_1__["BaseGridSerializingSession"]; });
55589
55590/* harmony import */ var _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(261);
55591/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_2__["CsvCreator"]; });
55592
55593/* harmony import */ var _csvExportModule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(264);
55594/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return _csvExportModule__WEBPACK_IMPORTED_MODULE_3__["CsvExportModule"]; });
55595
55596/* harmony import */ var _csvExport_downloader__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(262);
55597/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return _csvExport_downloader__WEBPACK_IMPORTED_MODULE_4__["Downloader"]; });
55598
55599/* harmony import */ var _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(265);
55600/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__["GridSerializer"]; });
55601
55602/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_5__["RowType"]; });
55603
55604/* harmony import */ var _csvExport_xmlFactory__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(267);
55605/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return _csvExport_xmlFactory__WEBPACK_IMPORTED_MODULE_6__["XmlFactory"]; });
55606
55607/* harmony import */ var _csvExport_zipContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(268);
55608/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return _csvExport_zipContainer__WEBPACK_IMPORTED_MODULE_7__["ZipContainer"]; });
55609
55610
55611
55612
55613
55614
55615
55616
55617
55618
55619
55620/***/ }),
55621/* 259 */
55622/***/ (function(module, __webpack_exports__, __webpack_require__) {
55623
55624"use strict";
55625__webpack_require__.r(__webpack_exports__);
55626/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return BaseCreator; });
55627var BaseCreator = /** @class */ (function () {
55628 function BaseCreator() {
55629 }
55630 BaseCreator.prototype.setBeans = function (beans) {
55631 this.beans = beans;
55632 };
55633 BaseCreator.prototype.getFileName = function (fileName) {
55634 var extension = this.getDefaultFileExtension();
55635 if (fileName == null || !fileName.length) {
55636 fileName = this.getDefaultFileName();
55637 }
55638 return fileName.indexOf('.') === -1 ? fileName + "." + extension : fileName;
55639 };
55640 BaseCreator.prototype.getData = function (params) {
55641 var serializingSession = this.createSerializingSession(params);
55642 var data = this.beans.gridSerializer.serialize(serializingSession, params);
55643 return data;
55644 };
55645 return BaseCreator;
55646}());
55647
55648
55649
55650/***/ }),
55651/* 260 */
55652/***/ (function(module, __webpack_exports__, __webpack_require__) {
55653
55654"use strict";
55655__webpack_require__.r(__webpack_exports__);
55656/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return BaseGridSerializingSession; });
55657var BaseGridSerializingSession = /** @class */ (function () {
55658 function BaseGridSerializingSession(config) {
55659 this.groupColumns = [];
55660 var columnModel = config.columnModel, valueService = config.valueService, gridOptionsService = config.gridOptionsService, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;
55661 this.columnModel = columnModel;
55662 this.valueService = valueService;
55663 this.gridOptionsService = gridOptionsService;
55664 this.processCellCallback = processCellCallback;
55665 this.processHeaderCallback = processHeaderCallback;
55666 this.processGroupHeaderCallback = processGroupHeaderCallback;
55667 this.processRowGroupCallback = processRowGroupCallback;
55668 }
55669 BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {
55670 this.groupColumns = columnsToExport.filter(function (col) { return !!col.getColDef().showRowGroup; });
55671 };
55672 BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {
55673 var value = this.getHeaderName(this.processHeaderCallback, column);
55674 return value != null ? value : '';
55675 };
55676 BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {
55677 // we render the group summary text e.g. "-> Parent -> Child"...
55678 var hideOpenParents = this.gridOptionsService.is('groupHideOpenParents');
55679 var value = (!hideOpenParents && this.shouldRenderGroupSummaryCell(node, column, index))
55680 ? this.createValueForGroupNode(node)
55681 : this.valueService.getValue(column, node);
55682 var processedValue = this.processCell({
55683 accumulatedRowIndex: accumulatedRowIndex,
55684 rowNode: node,
55685 column: column,
55686 value: value,
55687 processCellCallback: this.processCellCallback,
55688 type: type
55689 });
55690 return processedValue != null ? processedValue : '';
55691 };
55692 BaseGridSerializingSession.prototype.shouldRenderGroupSummaryCell = function (node, column, currentColumnIndex) {
55693 var _a;
55694 var isGroupNode = node && node.group;
55695 // only on group rows
55696 if (!isGroupNode) {
55697 return false;
55698 }
55699 var currentColumnGroupIndex = this.groupColumns.indexOf(column);
55700 if (currentColumnGroupIndex !== -1) {
55701 if ((_a = node.groupData) === null || _a === void 0 ? void 0 : _a[column.getId()]) {
55702 return true;
55703 }
55704 // if this is a top level footer, always render`Total` in the left-most cell
55705 if (node.footer && node.level === -1) {
55706 var colDef = column.getColDef();
55707 var isFullWidth = colDef == null || colDef.showRowGroup === true;
55708 return isFullWidth || colDef.showRowGroup === this.columnModel.getRowGroupColumns()[0].getId();
55709 }
55710 }
55711 var isGroupUseEntireRow = this.gridOptionsService.isGroupUseEntireRow(this.columnModel.isPivotMode());
55712 return currentColumnIndex === 0 && isGroupUseEntireRow;
55713 };
55714 BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {
55715 if (callback) {
55716 return callback({
55717 column: column,
55718 api: this.gridOptionsService.api,
55719 columnApi: this.gridOptionsService.columnApi,
55720 context: this.gridOptionsService.context
55721 });
55722 }
55723 return this.columnModel.getDisplayNameForColumn(column, 'csv', true);
55724 };
55725 BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {
55726 if (this.processRowGroupCallback) {
55727 return this.processRowGroupCallback({
55728 node: node,
55729 api: this.gridOptionsService.api,
55730 columnApi: this.gridOptionsService.columnApi,
55731 context: this.gridOptionsService.context,
55732 });
55733 }
55734 var isFooter = node.footer;
55735 var keys = [node.key];
55736 if (!this.gridOptionsService.isGroupMultiAutoColumn()) {
55737 while (node.parent) {
55738 node = node.parent;
55739 keys.push(node.key);
55740 }
55741 }
55742 var groupValue = keys.reverse().join(' -> ');
55743 return isFooter ? "Total " + groupValue : groupValue;
55744 };
55745 BaseGridSerializingSession.prototype.processCell = function (params) {
55746 var accumulatedRowIndex = params.accumulatedRowIndex, rowNode = params.rowNode, column = params.column, value = params.value, processCellCallback = params.processCellCallback, type = params.type;
55747 if (processCellCallback) {
55748 return processCellCallback({
55749 accumulatedRowIndex: accumulatedRowIndex,
55750 column: column,
55751 node: rowNode,
55752 value: value,
55753 api: this.gridOptionsService.api,
55754 columnApi: this.gridOptionsService.columnApi,
55755 context: this.gridOptionsService.context,
55756 type: type
55757 });
55758 }
55759 return value != null ? value : '';
55760 };
55761 return BaseGridSerializingSession;
55762}());
55763
55764
55765
55766/***/ }),
55767/* 261 */
55768/***/ (function(module, __webpack_exports__, __webpack_require__) {
55769
55770"use strict";
55771__webpack_require__.r(__webpack_exports__);
55772/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return CsvCreator; });
55773/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
55774/* harmony import */ var _baseCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(259);
55775/* harmony import */ var _downloader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(262);
55776/* harmony import */ var _sessions_csvSerializingSession__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(263);
55777var __extends = (undefined && undefined.__extends) || (function () {
55778 var extendStatics = function (d, b) {
55779 extendStatics = Object.setPrototypeOf ||
55780 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
55781 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
55782 return extendStatics(d, b);
55783 };
55784 return function (d, b) {
55785 extendStatics(d, b);
55786 function __() { this.constructor = d; }
55787 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55788 };
55789})();
55790var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
55791 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
55792 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
55793 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;
55794 return c > 3 && r && Object.defineProperty(target, key, r), r;
55795};
55796
55797
55798
55799
55800var CsvCreator = /** @class */ (function (_super) {
55801 __extends(CsvCreator, _super);
55802 function CsvCreator() {
55803 return _super !== null && _super.apply(this, arguments) || this;
55804 }
55805 CsvCreator.prototype.postConstruct = function () {
55806 this.setBeans({
55807 gridSerializer: this.gridSerializer,
55808 gridOptionsService: this.gridOptionsService
55809 });
55810 };
55811 CsvCreator.prototype.getMergedParams = function (params) {
55812 var baseParams = this.gridOptionsService.get('defaultCsvExportParams');
55813 return Object.assign({}, baseParams, params);
55814 };
55815 CsvCreator.prototype.export = function (userParams) {
55816 if (this.isExportSuppressed()) {
55817 console.warn("AG Grid: Export cancelled. Export is not allowed as per your configuration.");
55818 return '';
55819 }
55820 var mergedParams = this.getMergedParams(userParams);
55821 var data = this.getData(mergedParams);
55822 var packagedFile = new Blob(["\ufeff", data], { type: 'text/plain' });
55823 _downloader__WEBPACK_IMPORTED_MODULE_2__["Downloader"].download(this.getFileName(mergedParams.fileName), packagedFile);
55824 return data;
55825 };
55826 CsvCreator.prototype.exportDataAsCsv = function (params) {
55827 return this.export(params);
55828 };
55829 CsvCreator.prototype.getDataAsCsv = function (params, skipDefaultParams) {
55830 if (skipDefaultParams === void 0) { skipDefaultParams = false; }
55831 var mergedParams = skipDefaultParams
55832 ? Object.assign({}, params)
55833 : this.getMergedParams(params);
55834 return this.getData(mergedParams);
55835 };
55836 CsvCreator.prototype.getDefaultFileName = function () {
55837 return 'export.csv';
55838 };
55839 CsvCreator.prototype.getDefaultFileExtension = function () {
55840 return 'csv';
55841 };
55842 CsvCreator.prototype.createSerializingSession = function (params) {
55843 var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsService = _a.gridOptionsService;
55844 var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;
55845 return new _sessions_csvSerializingSession__WEBPACK_IMPORTED_MODULE_3__["CsvSerializingSession"]({
55846 columnModel: columnModel,
55847 valueService: valueService,
55848 gridOptionsService: gridOptionsService,
55849 processCellCallback: processCellCallback || undefined,
55850 processHeaderCallback: processHeaderCallback || undefined,
55851 processGroupHeaderCallback: processGroupHeaderCallback || undefined,
55852 processRowGroupCallback: processRowGroupCallback || undefined,
55853 suppressQuotes: suppressQuotes || false,
55854 columnSeparator: columnSeparator || ','
55855 });
55856 };
55857 CsvCreator.prototype.isExportSuppressed = function () {
55858 return this.gridOptionsService.is('suppressCsvExport');
55859 };
55860 __decorate([
55861 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
55862 ], CsvCreator.prototype, "columnModel", void 0);
55863 __decorate([
55864 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('valueService')
55865 ], CsvCreator.prototype, "valueService", void 0);
55866 __decorate([
55867 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridSerializer')
55868 ], CsvCreator.prototype, "gridSerializer", void 0);
55869 __decorate([
55870 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('gridOptionsService')
55871 ], CsvCreator.prototype, "gridOptionsService", void 0);
55872 __decorate([
55873 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
55874 ], CsvCreator.prototype, "postConstruct", null);
55875 CsvCreator = __decorate([
55876 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('csvCreator')
55877 ], CsvCreator);
55878 return CsvCreator;
55879}(_baseCreator__WEBPACK_IMPORTED_MODULE_1__["BaseCreator"]));
55880
55881
55882
55883/***/ }),
55884/* 262 */
55885/***/ (function(module, __webpack_exports__, __webpack_require__) {
55886
55887"use strict";
55888__webpack_require__.r(__webpack_exports__);
55889/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return Downloader; });
55890var Downloader = /** @class */ (function () {
55891 function Downloader() {
55892 }
55893 Downloader.download = function (fileName, content) {
55894 var win = document.defaultView || window;
55895 if (!win) {
55896 console.warn('AG Grid: There is no `window` associated with the current `document`');
55897 return;
55898 }
55899 var element = document.createElement('a');
55900 // @ts-ignore
55901 var url = win.URL.createObjectURL(content);
55902 element.setAttribute('href', url);
55903 element.setAttribute('download', fileName);
55904 element.style.display = 'none';
55905 document.body.appendChild(element);
55906 element.dispatchEvent(new MouseEvent('click', {
55907 bubbles: false,
55908 cancelable: true,
55909 view: win
55910 }));
55911 document.body.removeChild(element);
55912 win.setTimeout(function () {
55913 // @ts-ignore
55914 win.URL.revokeObjectURL(url);
55915 }, 0);
55916 };
55917 return Downloader;
55918}());
55919
55920
55921
55922/***/ }),
55923/* 263 */
55924/***/ (function(module, __webpack_exports__, __webpack_require__) {
55925
55926"use strict";
55927__webpack_require__.r(__webpack_exports__);
55928/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvSerializingSession", function() { return CsvSerializingSession; });
55929/* harmony import */ var _baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(260);
55930var __extends = (undefined && undefined.__extends) || (function () {
55931 var extendStatics = function (d, b) {
55932 extendStatics = Object.setPrototypeOf ||
55933 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
55934 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
55935 return extendStatics(d, b);
55936 };
55937 return function (d, b) {
55938 extendStatics(d, b);
55939 function __() { this.constructor = d; }
55940 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
55941 };
55942})();
55943
55944var LINE_SEPARATOR = '\r\n';
55945var CsvSerializingSession = /** @class */ (function (_super) {
55946 __extends(CsvSerializingSession, _super);
55947 function CsvSerializingSession(config) {
55948 var _this = _super.call(this, config) || this;
55949 _this.isFirstLine = true;
55950 _this.result = '';
55951 var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;
55952 _this.suppressQuotes = suppressQuotes;
55953 _this.columnSeparator = columnSeparator;
55954 return _this;
55955 }
55956 CsvSerializingSession.prototype.addCustomContent = function (content) {
55957 var _this = this;
55958 if (!content) {
55959 return;
55960 }
55961 if (typeof content === 'string') {
55962 if (!/^\s*\n/.test(content)) {
55963 this.beginNewLine();
55964 }
55965 // replace whatever newlines are supplied with the style we're using
55966 content = content.replace(/\r?\n/g, LINE_SEPARATOR);
55967 this.result += content;
55968 }
55969 else {
55970 content.forEach(function (row) {
55971 _this.beginNewLine();
55972 row.forEach(function (cell, index) {
55973 if (index !== 0) {
55974 _this.result += _this.columnSeparator;
55975 }
55976 _this.result += _this.putInQuotes(cell.data.value || '');
55977 if (cell.mergeAcross) {
55978 _this.appendEmptyCells(cell.mergeAcross);
55979 }
55980 });
55981 });
55982 }
55983 };
55984 CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {
55985 this.beginNewLine();
55986 return {
55987 onColumn: this.onNewHeaderGroupingRowColumn.bind(this)
55988 };
55989 };
55990 CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (columnGroup, header, index, span) {
55991 if (index != 0) {
55992 this.result += this.columnSeparator;
55993 }
55994 this.result += this.putInQuotes(header);
55995 this.appendEmptyCells(span);
55996 };
55997 CsvSerializingSession.prototype.appendEmptyCells = function (count) {
55998 for (var i = 1; i <= count; i++) {
55999 this.result += this.columnSeparator + this.putInQuotes("");
56000 }
56001 };
56002 CsvSerializingSession.prototype.onNewHeaderRow = function () {
56003 this.beginNewLine();
56004 return {
56005 onColumn: this.onNewHeaderRowColumn.bind(this)
56006 };
56007 };
56008 CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {
56009 if (index != 0) {
56010 this.result += this.columnSeparator;
56011 }
56012 this.result += this.putInQuotes(this.extractHeaderValue(column));
56013 };
56014 CsvSerializingSession.prototype.onNewBodyRow = function () {
56015 this.beginNewLine();
56016 return {
56017 onColumn: this.onNewBodyRowColumn.bind(this)
56018 };
56019 };
56020 CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {
56021 if (index != 0) {
56022 this.result += this.columnSeparator;
56023 }
56024 this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, 'csv', node));
56025 };
56026 CsvSerializingSession.prototype.putInQuotes = function (value) {
56027 if (this.suppressQuotes) {
56028 return value;
56029 }
56030 if (value === null || value === undefined) {
56031 return '""';
56032 }
56033 var stringValue;
56034 if (typeof value === 'string') {
56035 stringValue = value;
56036 }
56037 else if (typeof value.toString === 'function') {
56038 stringValue = value.toString();
56039 }
56040 else {
56041 console.warn('AG Grid: unknown value type during csv conversion');
56042 stringValue = '';
56043 }
56044 // replace each " with "" (ie two sets of double quotes is how to do double quotes in csv)
56045 var valueEscaped = stringValue.replace(/"/g, "\"\"");
56046 return '"' + valueEscaped + '"';
56047 };
56048 CsvSerializingSession.prototype.parse = function () {
56049 return this.result;
56050 };
56051 CsvSerializingSession.prototype.beginNewLine = function () {
56052 if (!this.isFirstLine) {
56053 this.result += LINE_SEPARATOR;
56054 }
56055 this.isFirstLine = false;
56056 };
56057 return CsvSerializingSession;
56058}(_baseGridSerializingSession__WEBPACK_IMPORTED_MODULE_0__["BaseGridSerializingSession"]));
56059
56060
56061
56062/***/ }),
56063/* 264 */
56064/***/ (function(module, __webpack_exports__, __webpack_require__) {
56065
56066"use strict";
56067__webpack_require__.r(__webpack_exports__);
56068/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return CsvExportModule; });
56069/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
56070/* harmony import */ var _csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(261);
56071/* harmony import */ var _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(265);
56072/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(266);
56073
56074
56075
56076
56077var CsvExportModule = {
56078 version: _version__WEBPACK_IMPORTED_MODULE_3__["VERSION"],
56079 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].CsvExportModule,
56080 beans: [_csvExport_csvCreator__WEBPACK_IMPORTED_MODULE_1__["CsvCreator"], _csvExport_gridSerializer__WEBPACK_IMPORTED_MODULE_2__["GridSerializer"]]
56081};
56082
56083
56084/***/ }),
56085/* 265 */
56086/***/ (function(module, __webpack_exports__, __webpack_require__) {
56087
56088"use strict";
56089__webpack_require__.r(__webpack_exports__);
56090/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return RowType; });
56091/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return GridSerializer; });
56092/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
56093var __extends = (undefined && undefined.__extends) || (function () {
56094 var extendStatics = function (d, b) {
56095 extendStatics = Object.setPrototypeOf ||
56096 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
56097 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
56098 return extendStatics(d, b);
56099 };
56100 return function (d, b) {
56101 extendStatics(d, b);
56102 function __() { this.constructor = d; }
56103 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
56104 };
56105})();
56106var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
56107 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
56108 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
56109 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;
56110 return c > 3 && r && Object.defineProperty(target, key, r), r;
56111};
56112
56113var RowType;
56114(function (RowType) {
56115 RowType[RowType["HEADER_GROUPING"] = 0] = "HEADER_GROUPING";
56116 RowType[RowType["HEADER"] = 1] = "HEADER";
56117 RowType[RowType["BODY"] = 2] = "BODY";
56118})(RowType || (RowType = {}));
56119var GridSerializer = /** @class */ (function (_super) {
56120 __extends(GridSerializer, _super);
56121 function GridSerializer() {
56122 return _super !== null && _super.apply(this, arguments) || this;
56123 }
56124 GridSerializer.prototype.serialize = function (gridSerializingSession, params) {
56125 if (params === void 0) { params = {}; }
56126 var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);
56127 var serializeChain = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].compose(
56128 // first pass, put in the header names of the cols
56129 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));
56130 return serializeChain(gridSerializingSession).parse();
56131 };
56132 GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {
56133 var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });
56134 var context = this.gridOptionsService.context;
56135 var api = this.gridOptionsService.api;
56136 var columnApi = this.gridOptionsService.columnApi;
56137 var skipSingleChildrenGroup = this.gridOptionsService.is('groupRemoveSingleChildren');
56138 var skipLowestSingleChildrenGroup = this.gridOptionsService.is('groupRemoveLowestSingleChildren');
56139 // if onlySelected, we ignore groupHideOpenParents as the user has explicitly selected the rows they wish to export.
56140 // similarly, if specific rowNodes are provided we do the same. (the clipboard service uses rowNodes to define which rows to export)
56141 var isClipboardExport = params.rowPositions != null;
56142 var isExplicitExportSelection = isClipboardExport || !!params.onlySelected;
56143 var hideOpenParents = this.gridOptionsService.is('groupHideOpenParents') && !isExplicitExportSelection;
56144 var isLeafNode = this.columnModel.isPivotMode() ? node.leafGroup : !node.group;
56145 var skipRowGroups = params.skipGroups || params.skipRowGroups;
56146 var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;
56147 var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);
56148 if (skipRowGroups && params.skipGroups) {
56149 _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');
56150 }
56151 if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||
56152 (params.onlySelected && !node.isSelected()) ||
56153 (params.skipPinnedTop && node.rowPinned === 'top') ||
56154 (params.skipPinnedBottom && node.rowPinned === 'bottom')) {
56155 return;
56156 }
56157 // if we are in pivotMode, then the grid will show the root node only
56158 // if it's not a leaf group
56159 var nodeIsRootNode = node.level === -1;
56160 if (nodeIsRootNode && !node.leafGroup && !node.footer) {
56161 return;
56162 }
56163 var shouldRowBeSkipped = rowSkipper({ node: node, api: api, columnApi: columnApi, context: context });
56164 if (shouldRowBeSkipped) {
56165 return;
56166 }
56167 var rowAccumulator = gridSerializingSession.onNewBodyRow();
56168 columnsToExport.forEach(function (column, index) {
56169 rowAccumulator.onColumn(column, index, node);
56170 });
56171 if (params.getCustomContentBelowRow) {
56172 var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });
56173 if (content) {
56174 gridSerializingSession.addCustomContent(content);
56175 }
56176 }
56177 };
56178 GridSerializer.prototype.appendContent = function (params) {
56179 return function (gridSerializingSession) {
56180 var appendContent = params.customFooter || params.appendContent;
56181 if (appendContent) {
56182 if (params.customFooter) {
56183 _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');
56184 }
56185 gridSerializingSession.addCustomContent(appendContent);
56186 }
56187 return gridSerializingSession;
56188 };
56189 };
56190 GridSerializer.prototype.prependContent = function (params) {
56191 return function (gridSerializingSession) {
56192 var prependContent = params.customHeader || params.prependContent;
56193 if (prependContent) {
56194 if (params.customHeader) {
56195 _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');
56196 }
56197 gridSerializingSession.addCustomContent(prependContent);
56198 }
56199 return gridSerializingSession;
56200 };
56201 };
56202 GridSerializer.prototype.prepareSession = function (columnsToExport) {
56203 return function (gridSerializingSession) {
56204 gridSerializingSession.prepare(columnsToExport);
56205 return gridSerializingSession;
56206 };
56207 };
56208 GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {
56209 var _this = this;
56210 return function (gridSerializingSession) {
56211 if (!params.skipColumnGroupHeaders) {
56212 var groupInstanceIdCreator = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GroupInstanceIdCreator"]();
56213 var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnModel.getGridBalancedTree(), groupInstanceIdCreator, null);
56214 _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);
56215 }
56216 else if (params.columnGroups) {
56217 _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');
56218 }
56219 return gridSerializingSession;
56220 };
56221 };
56222 GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {
56223 return function (gridSerializingSession) {
56224 if (!params.skipHeader && !params.skipColumnHeaders) {
56225 var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();
56226 columnsToExport.forEach(function (column, index) {
56227 gridRowIterator_1.onColumn(column, index, undefined);
56228 });
56229 }
56230 else if (params.skipHeader) {
56231 _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');
56232 }
56233 return gridSerializingSession;
56234 };
56235 };
56236 GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {
56237 var _this = this;
56238 return function (gridSerializingSession) {
56239 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
56240 if (params.rowPositions) {
56241 params.rowPositions
56242 // only pinnedTop rows, other models are processed by `processRows` and `processPinnedBottomsRows`
56243 .filter(function (position) { return position.rowPinned === 'top'; })
56244 .sort(function (a, b) { return a.rowIndex - b.rowIndex; })
56245 .map(function (position) { return _this.pinnedRowModel.getPinnedTopRow(position.rowIndex); })
56246 .forEach(processRow);
56247 }
56248 else {
56249 _this.pinnedRowModel.forEachPinnedTopRow(processRow);
56250 }
56251 return gridSerializingSession;
56252 };
56253 };
56254 GridSerializer.prototype.processRows = function (params, columnsToExport) {
56255 var _this = this;
56256 return function (gridSerializingSession) {
56257 // when in pivot mode, we always render cols on screen, never 'all columns'
56258 var rowModel = _this.rowModel;
56259 var rowModelType = rowModel.getType();
56260 var usingCsrm = rowModelType === 'clientSide';
56261 var usingSsrm = rowModelType === 'serverSide';
56262 var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;
56263 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
56264 var _a = params.exportedRows, exportedRows = _a === void 0 ? 'filteredAndSorted' : _a;
56265 if (params.rowPositions) {
56266 params.rowPositions
56267 // pinnedRows are processed by `processPinnedTopRows` and `processPinnedBottomsRows`
56268 .filter(function (position) { return position.rowPinned == null; })
56269 .sort(function (a, b) { return a.rowIndex - b.rowIndex; })
56270 .map(function (position) { return rowModel.getRow(position.rowIndex); })
56271 .forEach(processRow);
56272 }
56273 else if (_this.columnModel.isPivotMode()) {
56274 if (usingCsrm) {
56275 rowModel.forEachPivotNode(processRow, true);
56276 }
56277 else {
56278 // must be enterprise, so we can just loop through all the nodes
56279 rowModel.forEachNode(processRow);
56280 }
56281 }
56282 else {
56283 // onlySelectedAllPages: user doing pagination and wants selected items from
56284 // other pages, so cannot use the standard row model as it won't have rows from
56285 // other pages.
56286 // onlySelectedNonStandardModel: if user wants selected in non standard row model
56287 // (eg viewport) then again RowModel cannot be used, so need to use selected instead.
56288 if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {
56289 var selectedNodes = _this.selectionService.getSelectedNodes();
56290 _this.replicateSortedOrder(selectedNodes);
56291 // serialize each node
56292 selectedNodes.forEach(processRow);
56293 }
56294 else {
56295 // here is everything else - including standard row model and selected. we don't use
56296 // the selection model even when just using selected, so that the result is the order
56297 // of the rows appearing on the screen.
56298 if (exportedRows === 'all') {
56299 rowModel.forEachNode(processRow);
56300 }
56301 else if (usingCsrm) {
56302 rowModel.forEachNodeAfterFilterAndSort(processRow, true);
56303 }
56304 else if (usingSsrm) {
56305 rowModel.forEachNodeAfterFilterAndSort(processRow);
56306 }
56307 else {
56308 rowModel.forEachNode(processRow);
56309 }
56310 }
56311 }
56312 return gridSerializingSession;
56313 };
56314 };
56315 GridSerializer.prototype.replicateSortedOrder = function (rows) {
56316 var _this = this;
56317 var sortOptions = this.sortController.getSortOptions();
56318 var compareNodes = function (rowA, rowB) {
56319 var _a, _b, _c, _d;
56320 if (rowA.rowIndex != null && rowB.rowIndex != null) {
56321 // if the rows have rowIndexes, this is the easiest way to compare,
56322 // as they're already ordered
56323 return rowA.rowIndex - rowB.rowIndex;
56324 }
56325 // if the level is the same, compare these nodes, or their parents
56326 if (rowA.level === rowB.level) {
56327 if (((_a = rowA.parent) === null || _a === void 0 ? void 0 : _a.id) === ((_b = rowB.parent) === null || _b === void 0 ? void 0 : _b.id)) {
56328 return _this.rowNodeSorter.compareRowNodes(sortOptions, {
56329 rowNode: rowA,
56330 currentPos: (_c = rowA.rowIndex) !== null && _c !== void 0 ? _c : -1,
56331 }, {
56332 rowNode: rowB,
56333 currentPos: (_d = rowB.rowIndex) !== null && _d !== void 0 ? _d : -1,
56334 });
56335 }
56336 // level is same, but parent isn't, compare parents
56337 return compareNodes(rowA.parent, rowB.parent);
56338 }
56339 // if level is different, match levels
56340 if (rowA.level > rowB.level) {
56341 return compareNodes(rowA.parent, rowB);
56342 }
56343 return compareNodes(rowA, rowB.parent);
56344 };
56345 // sort the nodes either by existing row index or compare them
56346 rows.sort(compareNodes);
56347 };
56348 GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {
56349 var _this = this;
56350 return function (gridSerializingSession) {
56351 var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);
56352 if (params.rowPositions) {
56353 params.rowPositions
56354 // only pinnedBottom rows, other models are processed by `processRows` and `processPinnedTopRows`
56355 .filter(function (position) { return position.rowPinned === 'bottom'; })
56356 .sort(function (a, b) { return a.rowIndex - b.rowIndex; })
56357 .map(function (position) { return _this.pinnedRowModel.getPinnedBottomRow(position.rowIndex); })
56358 .forEach(processRow);
56359 }
56360 else {
56361 _this.pinnedRowModel.forEachPinnedBottomRow(processRow);
56362 }
56363 return gridSerializingSession;
56364 };
56365 };
56366 GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {
56367 if (allColumns === void 0) { allColumns = false; }
56368 var isPivotMode = this.columnModel.isPivotMode();
56369 if (columnKeys && columnKeys.length) {
56370 return this.columnModel.getGridColumns(columnKeys);
56371 }
56372 if (allColumns && !isPivotMode) {
56373 // add auto group column for tree data
56374 var columns = this.gridOptionsService.isTreeData()
56375 ? this.columnModel.getGridColumns([_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["GROUP_AUTO_COLUMN_ID"]])
56376 : [];
56377 return columns.concat(this.columnModel.getAllPrimaryColumns() || []);
56378 }
56379 return this.columnModel.getAllDisplayedColumns();
56380 };
56381 GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {
56382 var directChildrenHeaderGroups = [];
56383 displayedGroups.forEach(function (columnGroupChild) {
56384 var columnGroup = columnGroupChild;
56385 if (!columnGroup.getChildren) {
56386 return;
56387 }
56388 columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });
56389 });
56390 if (displayedGroups.length > 0 && displayedGroups[0] instanceof _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ColumnGroup"]) {
56391 this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);
56392 }
56393 if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {
56394 this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);
56395 }
56396 };
56397 GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {
56398 var _this = this;
56399 var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();
56400 var columnIndex = 0;
56401 displayedGroups.forEach(function (columnGroupChild) {
56402 var columnGroup = columnGroupChild;
56403 var name;
56404 if (processGroupHeaderCallback) {
56405 name = processGroupHeaderCallback({
56406 columnGroup: columnGroup,
56407 api: _this.gridOptionsService.api,
56408 columnApi: _this.gridOptionsService.columnApi,
56409 context: _this.gridOptionsService.context
56410 });
56411 }
56412 else {
56413 name = _this.columnModel.getDisplayNameForColumnGroup(columnGroup, 'header');
56414 }
56415 var collapsibleGroupRanges = columnGroup.getLeafColumns().reduce(function (collapsibleGroups, currentColumn, currentIdx, arr) {
56416 var lastGroup = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].last(collapsibleGroups);
56417 var groupShow = currentColumn.getColumnGroupShow() === 'open';
56418 if (!groupShow) {
56419 if (lastGroup && lastGroup[1] == null) {
56420 lastGroup[1] = currentIdx - 1;
56421 }
56422 }
56423 else if (!lastGroup || lastGroup[1] != null) {
56424 lastGroup = [currentIdx];
56425 collapsibleGroups.push(lastGroup);
56426 }
56427 if (currentIdx === arr.length - 1 && lastGroup && lastGroup[1] == null) {
56428 lastGroup[1] = currentIdx;
56429 }
56430 return collapsibleGroups;
56431 }, []);
56432 gridRowIterator.onColumn(columnGroup, name || '', columnIndex++, columnGroup.getLeafColumns().length - 1, collapsibleGroupRanges);
56433 });
56434 };
56435 __decorate([
56436 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('displayedGroupCreator')
56437 ], GridSerializer.prototype, "displayedGroupCreator", void 0);
56438 __decorate([
56439 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('columnModel')
56440 ], GridSerializer.prototype, "columnModel", void 0);
56441 __decorate([
56442 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowModel')
56443 ], GridSerializer.prototype, "rowModel", void 0);
56444 __decorate([
56445 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('pinnedRowModel')
56446 ], GridSerializer.prototype, "pinnedRowModel", void 0);
56447 __decorate([
56448 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionService')
56449 ], GridSerializer.prototype, "selectionService", void 0);
56450 __decorate([
56451 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeSorter')
56452 ], GridSerializer.prototype, "rowNodeSorter", void 0);
56453 __decorate([
56454 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
56455 ], GridSerializer.prototype, "sortController", void 0);
56456 GridSerializer = __decorate([
56457 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])("gridSerializer")
56458 ], GridSerializer);
56459 return GridSerializer;
56460}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
56461
56462
56463
56464/***/ }),
56465/* 266 */
56466/***/ (function(module, __webpack_exports__, __webpack_require__) {
56467
56468"use strict";
56469__webpack_require__.r(__webpack_exports__);
56470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; });
56471// DO NOT UPDATE MANUALLY: Generated from script during build time
56472var VERSION = '29.2.0';
56473
56474
56475/***/ }),
56476/* 267 */
56477/***/ (function(module, __webpack_exports__, __webpack_require__) {
56478
56479"use strict";
56480__webpack_require__.r(__webpack_exports__);
56481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return XmlFactory; });
56482var LINE_SEPARATOR = '\r\n';
56483var XmlFactory = /** @class */ (function () {
56484 function XmlFactory() {
56485 }
56486 XmlFactory.createHeader = function (headerElement) {
56487 if (headerElement === void 0) { headerElement = {}; }
56488 var headerStart = '<?';
56489 var headerEnd = '?>';
56490 var keys = ['version'];
56491 if (!headerElement.version) {
56492 headerElement.version = "1.0";
56493 }
56494 if (headerElement.encoding) {
56495 keys.push('encoding');
56496 }
56497 if (headerElement.standalone) {
56498 keys.push('standalone');
56499 }
56500 var att = keys.map(function (key) { return key + "=\"" + headerElement[key] + "\""; }).join(' ');
56501 return headerStart + "xml " + att + " " + headerEnd;
56502 };
56503 XmlFactory.createXml = function (xmlElement, booleanTransformer) {
56504 var _this = this;
56505 var props = '';
56506 if (xmlElement.properties) {
56507 if (xmlElement.properties.prefixedAttributes) {
56508 xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {
56509 Object.keys(prefixedSet.map).forEach(function (key) {
56510 props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);
56511 });
56512 });
56513 }
56514 if (xmlElement.properties.rawMap) {
56515 Object.keys(xmlElement.properties.rawMap).forEach(function (key) {
56516 props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);
56517 });
56518 }
56519 }
56520 var result = '<' + xmlElement.name + props;
56521 if (!xmlElement.children && xmlElement.textNode == null) {
56522 return result + '/>' + LINE_SEPARATOR;
56523 }
56524 if (xmlElement.textNode != null) {
56525 return result + '>' + xmlElement.textNode + '</' + xmlElement.name + '>' + LINE_SEPARATOR;
56526 }
56527 result += '>' + LINE_SEPARATOR;
56528 if (xmlElement.children) {
56529 xmlElement.children.forEach(function (it) {
56530 result += _this.createXml(it, booleanTransformer);
56531 });
56532 }
56533 return result + '</' + xmlElement.name + '>' + LINE_SEPARATOR;
56534 };
56535 XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {
56536 if (!value && value !== '' && value !== 0) {
56537 return '';
56538 }
56539 var xmlValue = value;
56540 if ((typeof (value) === 'boolean')) {
56541 if (booleanTransformer) {
56542 xmlValue = booleanTransformer(value);
56543 }
56544 }
56545 return " " + key + "=\"" + xmlValue + "\"";
56546 };
56547 return XmlFactory;
56548}());
56549
56550
56551
56552/***/ }),
56553/* 268 */
56554/***/ (function(module, __webpack_exports__, __webpack_require__) {
56555
56556"use strict";
56557__webpack_require__.r(__webpack_exports__);
56558/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return ZipContainer; });
56559/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
56560var __values = (undefined && undefined.__values) || function(o) {
56561 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
56562 if (m) return m.call(o);
56563 if (o && typeof o.length === "number") return {
56564 next: function () {
56565 if (o && i >= o.length) o = void 0;
56566 return { value: o && o[i++], done: !o };
56567 }
56568 };
56569 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
56570};
56571
56572// table for crc calculation
56573// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references
56574var crcTable = new Uint32Array([
56575 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
56576 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
56577 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
56578 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
56579 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
56580 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
56581 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
56582 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
56583 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
56584 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
56585 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
56586 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
56587 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
56588 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
56589 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
56590 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
56591 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
56592 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
56593 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
56594 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
56595 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
56596 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
56597 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
56598 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
56599 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
56600 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
56601 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
56602 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
56603 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
56604 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
56605 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
56606 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
56607 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
56608 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
56609 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
56610 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
56611 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
56612 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
56613 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
56614 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
56615 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
56616 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
56617 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
56618]);
56619var ZipContainer = /** @class */ (function () {
56620 function ZipContainer() {
56621 }
56622 ZipContainer.addFolders = function (paths) {
56623 paths.forEach(this.addFolder.bind(this));
56624 };
56625 ZipContainer.addFolder = function (path) {
56626 this.folders.push({
56627 path: path,
56628 created: new Date(),
56629 isBase64: false
56630 });
56631 };
56632 ZipContainer.addFile = function (path, content, isBase64) {
56633 if (isBase64 === void 0) { isBase64 = false; }
56634 this.files.push({
56635 path: path,
56636 created: new Date(),
56637 content: content,
56638 isBase64: isBase64
56639 });
56640 };
56641 ZipContainer.getContent = function (mimeType) {
56642 if (mimeType === void 0) { mimeType = 'application/zip'; }
56643 var textOutput = this.buildFileStream();
56644 var uInt8Output = this.buildUint8Array(textOutput);
56645 this.clearStream();
56646 return new Blob([uInt8Output], { type: mimeType });
56647 };
56648 ZipContainer.clearStream = function () {
56649 this.folders = [];
56650 this.files = [];
56651 };
56652 ZipContainer.buildFileStream = function (fData) {
56653 var e_1, _a;
56654 if (fData === void 0) { fData = ''; }
56655 var totalFiles = this.folders.concat(this.files);
56656 var len = totalFiles.length;
56657 var foData = '';
56658 var lL = 0;
56659 var cL = 0;
56660 try {
56661 for (var totalFiles_1 = __values(totalFiles), totalFiles_1_1 = totalFiles_1.next(); !totalFiles_1_1.done; totalFiles_1_1 = totalFiles_1.next()) {
56662 var currentFile = totalFiles_1_1.value;
56663 var _b = this.getHeader(currentFile, lL), fileHeader = _b.fileHeader, folderHeader = _b.folderHeader, content = _b.content;
56664 lL += fileHeader.length + content.length;
56665 cL += folderHeader.length;
56666 fData += fileHeader + content;
56667 foData += folderHeader;
56668 }
56669 }
56670 catch (e_1_1) { e_1 = { error: e_1_1 }; }
56671 finally {
56672 try {
56673 if (totalFiles_1_1 && !totalFiles_1_1.done && (_a = totalFiles_1.return)) _a.call(totalFiles_1);
56674 }
56675 finally { if (e_1) throw e_1.error; }
56676 }
56677 var foEnd = this.buildFolderEnd(len, cL, lL);
56678 return fData + foData + foEnd;
56679 };
56680 ZipContainer.getHeader = function (currentFile, offset) {
56681 var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;
56682 var utf8_encode = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].utf8_encode, decToHex = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].decToHex;
56683 var utfPath = utf8_encode(path);
56684 var isUTF8 = utfPath !== path;
56685 var time = this.convertTime(created);
56686 var dt = this.convertDate(created);
56687 var extraFields = '';
56688 if (isUTF8) {
56689 var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;
56690 extraFields = "\x75\x70" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;
56691 }
56692 var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;
56693 var header = '\x0A\x00' +
56694 (isUTF8 ? '\x00\x08' : '\x00\x00') +
56695 '\x00\x00' +
56696 decToHex(time, 2) + // last modified time
56697 decToHex(dt, 2) + // last modified date
56698 decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +
56699 decToHex(size, 4) + // compressed size
56700 decToHex(size, 4) + // uncompressed size
56701 decToHex(utfPath.length, 2) + // file name length
56702 decToHex(extraFields.length, 2); // extra field length
56703 var fileHeader = 'PK\x03\x04' + header + utfPath + extraFields;
56704 var folderHeader = 'PK\x01\x02' + // central header
56705 '\x14\x00' +
56706 header + // file header
56707 '\x00\x00' +
56708 '\x00\x00' +
56709 '\x00\x00' +
56710 (content ? '\x00\x00\x00\x00' : '\x10\x00\x00\x00') + // external file attributes
56711 decToHex(offset, 4) + // relative offset of local header
56712 utfPath + // file name
56713 extraFields; // extra field
56714 return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };
56715 };
56716 ZipContainer.getConvertedContent = function (content, isBase64) {
56717 if (isBase64 === void 0) { isBase64 = false; }
56718 if (isBase64) {
56719 content = content.split(';base64,')[1];
56720 }
56721 content = isBase64 ? atob(content) : content;
56722 return {
56723 size: content.length,
56724 content: content
56725 };
56726 };
56727 ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {
56728 var decToHex = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].decToHex;
56729 return 'PK\x05\x06' + // central folder end
56730 '\x00\x00' +
56731 '\x00\x00' +
56732 decToHex(tLen, 2) + // total number of entries in the central folder
56733 decToHex(tLen, 2) + // total number of entries in the central folder
56734 decToHex(cLen, 4) + // size of the central folder
56735 decToHex(lLen, 4) + // central folder start offset
56736 '\x00\x00';
56737 };
56738 ZipContainer.buildUint8Array = function (content) {
56739 var uint8 = new Uint8Array(content.length);
56740 for (var i = 0; i < uint8.length; i++) {
56741 uint8[i] = content.charCodeAt(i);
56742 }
56743 return uint8;
56744 };
56745 ZipContainer.getFromCrc32Table = function (content) {
56746 if (!content.length) {
56747 return 0;
56748 }
56749 var size = content.length;
56750 var iterable = new Uint8Array(size);
56751 for (var i = 0; i < size; i++) {
56752 iterable[i] = content.charCodeAt(i);
56753 }
56754 var crc = 0 ^ (-1);
56755 var j = 0;
56756 var k = 0;
56757 var l = 0;
56758 for (var i = 0; i < size; i++) {
56759 j = iterable[i];
56760 k = (crc ^ j) & 0xFF;
56761 l = crcTable[k];
56762 crc = (crc >>> 8) ^ l;
56763 }
56764 return crc ^ (-1);
56765 };
56766 ZipContainer.convertTime = function (date) {
56767 var time = date.getHours();
56768 time <<= 6;
56769 time = time | date.getMinutes();
56770 time <<= 5;
56771 time = time | date.getSeconds() / 2;
56772 return time;
56773 };
56774 ZipContainer.convertDate = function (date) {
56775 var dt = date.getFullYear() - 1980;
56776 dt <<= 4;
56777 dt = dt | (date.getMonth() + 1);
56778 dt <<= 5;
56779 dt = dt | date.getDate();
56780 return dt;
56781 };
56782 ZipContainer.folders = [];
56783 ZipContainer.files = [];
56784 return ZipContainer;
56785}());
56786
56787
56788
56789/***/ }),
56790/* 269 */
56791/***/ (function(module, __webpack_exports__, __webpack_require__) {
56792
56793"use strict";
56794__webpack_require__.r(__webpack_exports__);
56795/* harmony import */ var _infiniteRowModelModule__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(270);
56796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return _infiniteRowModelModule__WEBPACK_IMPORTED_MODULE_0__["InfiniteRowModelModule"]; });
56797
56798
56799
56800
56801/***/ }),
56802/* 270 */
56803/***/ (function(module, __webpack_exports__, __webpack_require__) {
56804
56805"use strict";
56806__webpack_require__.r(__webpack_exports__);
56807/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return InfiniteRowModelModule; });
56808/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
56809/* harmony import */ var _infiniteRowModel_infiniteRowModel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(271);
56810/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(274);
56811
56812
56813
56814var InfiniteRowModelModule = {
56815 version: _version__WEBPACK_IMPORTED_MODULE_2__["VERSION"],
56816 moduleName: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["ModuleNames"].InfiniteRowModelModule,
56817 rowModel: 'infinite',
56818 beans: [_infiniteRowModel_infiniteRowModel__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModel"]],
56819};
56820
56821
56822/***/ }),
56823/* 271 */
56824/***/ (function(module, __webpack_exports__, __webpack_require__) {
56825
56826"use strict";
56827__webpack_require__.r(__webpack_exports__);
56828/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModel", function() { return InfiniteRowModel; });
56829/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
56830/* harmony import */ var _infiniteCache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(272);
56831var __extends = (undefined && undefined.__extends) || (function () {
56832 var extendStatics = function (d, b) {
56833 extendStatics = Object.setPrototypeOf ||
56834 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
56835 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
56836 return extendStatics(d, b);
56837 };
56838 return function (d, b) {
56839 extendStatics(d, b);
56840 function __() { this.constructor = d; }
56841 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
56842 };
56843})();
56844var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
56845 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
56846 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
56847 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;
56848 return c > 3 && r && Object.defineProperty(target, key, r), r;
56849};
56850
56851
56852var InfiniteRowModel = /** @class */ (function (_super) {
56853 __extends(InfiniteRowModel, _super);
56854 function InfiniteRowModel() {
56855 return _super !== null && _super.apply(this, arguments) || this;
56856 }
56857 InfiniteRowModel.prototype.getRowBounds = function (index) {
56858 return {
56859 rowHeight: this.rowHeight,
56860 rowTop: this.rowHeight * index
56861 };
56862 };
56863 // we don't implement as lazy row heights is not supported in this row model
56864 InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {
56865 return false;
56866 };
56867 InfiniteRowModel.prototype.init = function () {
56868 var _this = this;
56869 if (!this.gridOptionsService.isRowModelType('infinite')) {
56870 return;
56871 }
56872 this.rowHeight = this.gridOptionsService.getRowHeightAsNumber();
56873 this.addEventListeners();
56874 this.addDestroyFunc(function () { return _this.destroyCache(); });
56875 this.verifyProps();
56876 };
56877 InfiniteRowModel.prototype.verifyProps = function () {
56878 if (this.gridOptionsService.exists('initialGroupOrderComparator') || this.gridOptionsService.exists('defaultGroupOrderComparator')) {
56879 var message_1 = "AG Grid: initialGroupOrderComparator 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.";
56880 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].doOnce(function () { return console.warn(message_1); }, 'IRM.InitialGroupOrderComparator');
56881 }
56882 };
56883 InfiniteRowModel.prototype.start = function () {
56884 this.setDatasource(this.gridOptionsService.get('datasource'));
56885 };
56886 InfiniteRowModel.prototype.destroyDatasource = function () {
56887 if (this.datasource) {
56888 this.getContext().destroyBean(this.datasource);
56889 this.rowRenderer.datasourceChanged();
56890 this.datasource = null;
56891 }
56892 };
56893 InfiniteRowModel.prototype.addEventListeners = function () {
56894 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));
56895 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_SORT_CHANGED, this.onSortChanged.bind(this));
56896 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));
56897 this.addManagedListener(this.eventService, _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));
56898 };
56899 InfiniteRowModel.prototype.onFilterChanged = function () {
56900 this.reset();
56901 };
56902 InfiniteRowModel.prototype.onSortChanged = function () {
56903 this.reset();
56904 };
56905 InfiniteRowModel.prototype.onColumnEverything = function () {
56906 var resetRequired;
56907 // if cache params, we require reset only if sort model has changed. we don't need to check
56908 // for filter model, as the filter manager will fire an event when columns change that result
56909 // in the filter changing.
56910 if (this.cacheParams) {
56911 resetRequired = this.isSortModelDifferent();
56912 }
56913 else {
56914 // if no cacheParams, means first time creating the cache, so always create one
56915 resetRequired = true;
56916 }
56917 if (resetRequired) {
56918 this.reset();
56919 }
56920 };
56921 InfiniteRowModel.prototype.isSortModelDifferent = function () {
56922 return !_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());
56923 };
56924 InfiniteRowModel.prototype.getType = function () {
56925 return 'infinite';
56926 };
56927 InfiniteRowModel.prototype.setDatasource = function (datasource) {
56928 this.destroyDatasource();
56929 this.datasource = datasource;
56930 // only reset if we have a valid datasource to working with
56931 if (datasource) {
56932 this.reset();
56933 }
56934 };
56935 InfiniteRowModel.prototype.isEmpty = function () {
56936 return !this.infiniteCache;
56937 };
56938 InfiniteRowModel.prototype.isRowsToRender = function () {
56939 return !!this.infiniteCache;
56940 };
56941 InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {
56942 return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];
56943 };
56944 InfiniteRowModel.prototype.reset = function () {
56945 // important to return here, as the user could be setting filter or sort before
56946 // data-source is set
56947 if (!this.datasource) {
56948 return;
56949 }
56950 // if user is providing id's, then this means we can keep the selection between datasource hits,
56951 // as the rows will keep their unique id's even if, for example, server side sorting or filtering
56952 // is done.
56953 var getRowIdFunc = this.gridOptionsService.getRowIdFunc();
56954 var userGeneratingIds = getRowIdFunc != null;
56955 if (!userGeneratingIds) {
56956 this.selectionService.reset();
56957 }
56958 this.resetCache();
56959 var event = this.createModelUpdatedEvent();
56960 this.eventService.dispatchEvent(event);
56961 };
56962 InfiniteRowModel.prototype.createModelUpdatedEvent = function () {
56963 return {
56964 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_MODEL_UPDATED,
56965 // not sure if these should all be false - noticed if after implementing,
56966 // maybe they should be true?
56967 newPage: false,
56968 newData: false,
56969 keepRenderedRows: true,
56970 animate: false
56971 };
56972 };
56973 InfiniteRowModel.prototype.resetCache = function () {
56974 // if not first time creating a cache, need to destroy the old one
56975 this.destroyCache();
56976 this.cacheParams = {
56977 // the user provided datasource
56978 datasource: this.datasource,
56979 // sort and filter model
56980 filterModel: this.filterManager.getFilterModel(),
56981 sortModel: this.sortController.getSortModel(),
56982 rowNodeBlockLoader: this.rowNodeBlockLoader,
56983 // properties - this way we take a snapshot of them, so if user changes any, they will be
56984 // used next time we create a new cache, which is generally after a filter or sort change,
56985 // or a new datasource is set
56986 initialRowCount: this.defaultIfInvalid(this.gridOptionsService.getNum('infiniteInitialRowCount'), 1),
56987 maxBlocksInCache: this.gridOptionsService.getNum('maxBlocksInCache'),
56988 rowHeight: this.gridOptionsService.getRowHeightAsNumber(),
56989 // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past
56990 // the current page and request first row of next page
56991 overflowSize: this.defaultIfInvalid(this.gridOptionsService.getNum('cacheOverflowSize'), 1),
56992 // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the
56993 // server for one page at a time. so the default if not specified is 100.
56994 blockSize: this.defaultIfInvalid(this.gridOptionsService.getNum('cacheBlockSize'), 100),
56995 // the cache could create this, however it is also used by the pages, so handy to create it
56996 // here as the settings are also passed to the pages
56997 lastAccessedSequence: new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]()
56998 };
56999 this.infiniteCache = this.createBean(new _infiniteCache__WEBPACK_IMPORTED_MODULE_1__["InfiniteCache"](this.cacheParams));
57000 };
57001 InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {
57002 return value > 0 ? value : defaultValue;
57003 };
57004 InfiniteRowModel.prototype.destroyCache = function () {
57005 if (this.infiniteCache) {
57006 this.infiniteCache = this.destroyBean(this.infiniteCache);
57007 }
57008 };
57009 InfiniteRowModel.prototype.onCacheUpdated = function () {
57010 var event = this.createModelUpdatedEvent();
57011 this.eventService.dispatchEvent(event);
57012 };
57013 InfiniteRowModel.prototype.getRow = function (rowIndex) {
57014 if (!this.infiniteCache) {
57015 return undefined;
57016 }
57017 if (rowIndex >= this.infiniteCache.getRowCount()) {
57018 return undefined;
57019 }
57020 return this.infiniteCache.getRow(rowIndex);
57021 };
57022 InfiniteRowModel.prototype.getRowNode = function (id) {
57023 var result;
57024 this.forEachNode(function (rowNode) {
57025 if (rowNode.id === id) {
57026 result = rowNode;
57027 }
57028 });
57029 return result;
57030 };
57031 InfiniteRowModel.prototype.forEachNode = function (callback) {
57032 if (this.infiniteCache) {
57033 this.infiniteCache.forEachNodeDeep(callback);
57034 }
57035 };
57036 InfiniteRowModel.prototype.getTopLevelRowCount = function () {
57037 return this.getRowCount();
57038 };
57039 InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {
57040 return topLevelIndex;
57041 };
57042 InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {
57043 if (this.rowHeight !== 0) { // avoid divide by zero error
57044 var rowIndexForPixel = Math.floor(pixel / this.rowHeight);
57045 var lastRowIndex = this.getRowCount() - 1;
57046 if (rowIndexForPixel > lastRowIndex) {
57047 return lastRowIndex;
57048 }
57049 return rowIndexForPixel;
57050 }
57051 return 0;
57052 };
57053 InfiniteRowModel.prototype.getRowCount = function () {
57054 return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;
57055 };
57056 InfiniteRowModel.prototype.isRowPresent = function (rowNode) {
57057 var foundRowNode = this.getRowNode(rowNode.id);
57058 return !!foundRowNode;
57059 };
57060 InfiniteRowModel.prototype.refreshCache = function () {
57061 if (this.infiniteCache) {
57062 this.infiniteCache.refreshCache();
57063 }
57064 };
57065 InfiniteRowModel.prototype.purgeCache = function () {
57066 if (this.infiniteCache) {
57067 this.infiniteCache.purgeCache();
57068 }
57069 };
57070 // for iRowModel
57071 InfiniteRowModel.prototype.isLastRowIndexKnown = function () {
57072 if (this.infiniteCache) {
57073 return this.infiniteCache.isLastRowIndexKnown();
57074 }
57075 return false;
57076 };
57077 InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {
57078 if (this.infiniteCache) {
57079 this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);
57080 }
57081 };
57082 __decorate([
57083 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('filterManager')
57084 ], InfiniteRowModel.prototype, "filterManager", void 0);
57085 __decorate([
57086 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('sortController')
57087 ], InfiniteRowModel.prototype, "sortController", void 0);
57088 __decorate([
57089 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('selectionService')
57090 ], InfiniteRowModel.prototype, "selectionService", void 0);
57091 __decorate([
57092 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
57093 ], InfiniteRowModel.prototype, "rowRenderer", void 0);
57094 __decorate([
57095 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowNodeBlockLoader')
57096 ], InfiniteRowModel.prototype, "rowNodeBlockLoader", void 0);
57097 __decorate([
57098 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
57099 ], InfiniteRowModel.prototype, "init", null);
57100 __decorate([
57101 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
57102 ], InfiniteRowModel.prototype, "destroyDatasource", null);
57103 InfiniteRowModel = __decorate([
57104 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Bean"])('rowModel')
57105 ], InfiniteRowModel);
57106 return InfiniteRowModel;
57107}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
57108
57109
57110
57111/***/ }),
57112/* 272 */
57113/***/ (function(module, __webpack_exports__, __webpack_require__) {
57114
57115"use strict";
57116__webpack_require__.r(__webpack_exports__);
57117/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteCache", function() { return InfiniteCache; });
57118/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
57119/* harmony import */ var _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(273);
57120var __extends = (undefined && undefined.__extends) || (function () {
57121 var extendStatics = function (d, b) {
57122 extendStatics = Object.setPrototypeOf ||
57123 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
57124 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
57125 return extendStatics(d, b);
57126 };
57127 return function (d, b) {
57128 extendStatics(d, b);
57129 function __() { this.constructor = d; }
57130 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
57131 };
57132})();
57133var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
57134 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
57135 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
57136 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;
57137 return c > 3 && r && Object.defineProperty(target, key, r), r;
57138};
57139var __param = (undefined && undefined.__param) || function (paramIndex, decorator) {
57140 return function (target, key) { decorator(target, key, paramIndex); }
57141};
57142
57143
57144var InfiniteCache = /** @class */ (function (_super) {
57145 __extends(InfiniteCache, _super);
57146 function InfiniteCache(params) {
57147 var _this = _super.call(this) || this;
57148 _this.lastRowIndexKnown = false;
57149 _this.blocks = {};
57150 _this.blockCount = 0;
57151 _this.rowCount = params.initialRowCount;
57152 _this.params = params;
57153 return _this;
57154 }
57155 InfiniteCache.prototype.setBeans = function (loggerFactory) {
57156 this.logger = loggerFactory.create('InfiniteCache');
57157 };
57158 // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,
57159 // it will want new pages in the cache as it asks for rows. only when we are inserting /
57160 // removing rows via the api is dontCreatePage set, where we move rows between the pages.
57161 InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {
57162 if (dontCreatePage === void 0) { dontCreatePage = false; }
57163 var blockId = Math.floor(rowIndex / this.params.blockSize);
57164 var block = this.blocks[blockId];
57165 if (!block) {
57166 if (dontCreatePage) {
57167 return undefined;
57168 }
57169 block = this.createBlock(blockId);
57170 }
57171 return block.getRow(rowIndex);
57172 };
57173 InfiniteCache.prototype.createBlock = function (blockNumber) {
57174 var newBlock = this.createBean(new _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__["InfiniteBlock"](blockNumber, this, this.params));
57175 this.blocks[newBlock.getId()] = newBlock;
57176 this.blockCount++;
57177 this.purgeBlocksIfNeeded(newBlock);
57178 this.params.rowNodeBlockLoader.addBlock(newBlock);
57179 return newBlock;
57180 };
57181 // we have this on infinite row model only, not server side row model,
57182 // because for server side, it would leave the children in inconsistent
57183 // state - eg if a node had children, but after the refresh it had data
57184 // for a different row, then the children would be with the wrong row node.
57185 InfiniteCache.prototype.refreshCache = function () {
57186 var nothingToRefresh = this.blockCount == 0;
57187 if (nothingToRefresh) {
57188 this.purgeCache();
57189 return;
57190 }
57191 this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });
57192 this.params.rowNodeBlockLoader.checkBlockToLoad();
57193 };
57194 InfiniteCache.prototype.destroyAllBlocks = function () {
57195 var _this = this;
57196 this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });
57197 };
57198 InfiniteCache.prototype.getRowCount = function () {
57199 return this.rowCount;
57200 };
57201 InfiniteCache.prototype.isLastRowIndexKnown = function () {
57202 return this.lastRowIndexKnown;
57203 };
57204 // block calls this, when page loaded
57205 InfiniteCache.prototype.pageLoaded = function (block, lastRow) {
57206 // if we are not active, then we ignore all events, otherwise we could end up getting the
57207 // grid to refresh even though we are no longer the active cache
57208 if (!this.isAlive()) {
57209 return;
57210 }
57211 this.logger.log("onPageLoaded: page = " + block.getId() + ", lastRow = " + lastRow);
57212 this.checkRowCount(block, lastRow);
57213 // we fire cacheUpdated even if the row count has not changed, as some items need updating even
57214 // if no new rows to render. for example the pagination panel has '?' as the total rows when loading
57215 // is underway, which would need to get updated when loading finishes.
57216 this.onCacheUpdated();
57217 };
57218 InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {
57219 var _this = this;
57220 // we exclude checking for the page just created, as this has yet to be accessed and hence
57221 // the lastAccessed stamp will not be updated for the first time yet
57222 var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });
57223 var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };
57224 blocksForPurging.sort(lastAccessedComparator);
57225 // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.
57226 // in other words, after the splice operation below, we have taken out the blocks
57227 // we want to keep, which means we are left with blocks that we can potentially purge
57228 var maxBlocksProvided = this.params.maxBlocksInCache > 0;
57229 var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;
57230 var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;
57231 blocksForPurging.forEach(function (block, index) {
57232 var purgeBecauseBlockEmpty = block.getState() === _infiniteBlock__WEBPACK_IMPORTED_MODULE_1__["InfiniteBlock"].STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;
57233 var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;
57234 if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {
57235 // if the block currently has rows been displayed, then don't remove it either.
57236 // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)
57237 // but the screen is showing 20 rows, so at least 4 blocks are needed.
57238 if (_this.isBlockCurrentlyDisplayed(block)) {
57239 return;
57240 }
57241 // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.
57242 if (_this.isBlockFocused(block)) {
57243 return;
57244 }
57245 // at this point, block is not needed, so burn baby burn
57246 _this.removeBlockFromCache(block);
57247 }
57248 });
57249 };
57250 InfiniteCache.prototype.isBlockFocused = function (block) {
57251 var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();
57252 if (!focusedCell) {
57253 return false;
57254 }
57255 if (focusedCell.rowPinned != null) {
57256 return false;
57257 }
57258 var blockIndexStart = block.getStartRow();
57259 var blockIndexEnd = block.getEndRow();
57260 var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;
57261 return hasFocus;
57262 };
57263 InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {
57264 var startIndex = block.getStartRow();
57265 var endIndex = block.getEndRow() - 1;
57266 return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);
57267 };
57268 InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {
57269 if (!blockToRemove) {
57270 return;
57271 }
57272 this.destroyBlock(blockToRemove);
57273 // we do not want to remove the 'loaded' event listener, as the
57274 // concurrent loads count needs to be updated when the load is complete
57275 // if the purged page is in loading state
57276 };
57277 InfiniteCache.prototype.checkRowCount = function (block, lastRow) {
57278 // if client provided a last row, we always use it, as it could change between server calls
57279 // if user deleted data and then called refresh on the grid.
57280 if (typeof lastRow === 'number' && lastRow >= 0) {
57281 this.rowCount = lastRow;
57282 this.lastRowIndexKnown = true;
57283 }
57284 else if (!this.lastRowIndexKnown) {
57285 // otherwise, see if we need to add some virtual rows
57286 var lastRowIndex = (block.getId() + 1) * this.params.blockSize;
57287 var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;
57288 if (this.rowCount < lastRowIndexPlusOverflow) {
57289 this.rowCount = lastRowIndexPlusOverflow;
57290 }
57291 }
57292 };
57293 InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {
57294 this.rowCount = rowCount;
57295 // if undefined is passed, we do not set this value, if one of {true,false}
57296 // is passed, we do set the value.
57297 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(lastRowIndexKnown)) {
57298 this.lastRowIndexKnown = lastRowIndexKnown;
57299 }
57300 // if we are still searching, then the row count must not end at the end
57301 // of a particular page, otherwise the searching will not pop into the
57302 // next page
57303 if (!this.lastRowIndexKnown) {
57304 if (this.rowCount % this.params.blockSize === 0) {
57305 this.rowCount++;
57306 }
57307 }
57308 this.onCacheUpdated();
57309 };
57310 InfiniteCache.prototype.forEachNodeDeep = function (callback) {
57311 var _this = this;
57312 var sequence = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]();
57313 this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });
57314 };
57315 InfiniteCache.prototype.getBlocksInOrder = function () {
57316 // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order
57317 var blockComparator = function (a, b) { return a.getId() - b.getId(); };
57318 var blocks = _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].getAllValuesInObject(this.blocks).sort(blockComparator);
57319 return blocks;
57320 };
57321 InfiniteCache.prototype.destroyBlock = function (block) {
57322 delete this.blocks[block.getId()];
57323 this.destroyBean(block);
57324 this.blockCount--;
57325 this.params.rowNodeBlockLoader.removeBlock(block);
57326 };
57327 // gets called 1) row count changed 2) cache purged 3) items inserted
57328 InfiniteCache.prototype.onCacheUpdated = function () {
57329 if (this.isAlive()) {
57330 // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer
57331 // in the valid range. so we must remove these. this can happen if user explicitly sets
57332 // the virtual row count, or the datasource returns a result and sets lastRow to something
57333 // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).
57334 this.destroyAllBlocksPastVirtualRowCount();
57335 // this results in both row models (infinite and server side) firing ModelUpdated,
57336 // however server side row model also updates the row indexes first
57337 var event_1 = {
57338 type: _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Events"].EVENT_STORE_UPDATED
57339 };
57340 this.eventService.dispatchEvent(event_1);
57341 }
57342 };
57343 InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {
57344 var _this = this;
57345 var blocksToDestroy = [];
57346 this.getBlocksInOrder().forEach(function (block) {
57347 var startRow = block.getId() * _this.params.blockSize;
57348 if (startRow >= _this.rowCount) {
57349 blocksToDestroy.push(block);
57350 }
57351 });
57352 if (blocksToDestroy.length > 0) {
57353 blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });
57354 }
57355 };
57356 InfiniteCache.prototype.purgeCache = function () {
57357 var _this = this;
57358 this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });
57359 this.lastRowIndexKnown = false;
57360 // if zero rows in the cache, we need to get the SSRM to start asking for rows again.
57361 // otherwise if set to zero rows last time, and we don't update the row count, then after
57362 // the purge there will still be zero rows, meaning the SSRM won't request any rows.
57363 // to kick things off, at least one row needs to be asked for.
57364 if (this.rowCount === 0) {
57365 this.rowCount = this.params.initialRowCount;
57366 }
57367 this.onCacheUpdated();
57368 };
57369 InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {
57370 var _this = this;
57371 var result = [];
57372 var lastBlockId = -1;
57373 var inActiveRange = false;
57374 var numberSequence = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["NumberSequence"]();
57375 // if only one node passed, we start the selection at the top
57376 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(firstInRange)) {
57377 inActiveRange = true;
57378 }
57379 var foundGapInSelection = false;
57380 this.getBlocksInOrder().forEach(function (block) {
57381 if (foundGapInSelection) {
57382 return;
57383 }
57384 if (inActiveRange && (lastBlockId + 1 !== block.getId())) {
57385 foundGapInSelection = true;
57386 return;
57387 }
57388 lastBlockId = block.getId();
57389 block.forEachNode(function (rowNode) {
57390 var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;
57391 if (inActiveRange || hitFirstOrLast) {
57392 result.push(rowNode);
57393 }
57394 if (hitFirstOrLast) {
57395 inActiveRange = !inActiveRange;
57396 }
57397 }, numberSequence, _this.rowCount);
57398 });
57399 // inActiveRange will be still true if we never hit the second rowNode
57400 var invalidRange = foundGapInSelection || inActiveRange;
57401 return invalidRange ? [] : result;
57402 };
57403 // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10
57404 // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly
57405 // scrolled over are not needed to be loaded.
57406 InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;
57407 __decorate([
57408 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('rowRenderer')
57409 ], InfiniteCache.prototype, "rowRenderer", void 0);
57410 __decorate([
57411 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])("focusService")
57412 ], InfiniteCache.prototype, "focusService", void 0);
57413 __decorate([
57414 __param(0, Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Qualifier"])('loggerFactory'))
57415 ], InfiniteCache.prototype, "setBeans", null);
57416 __decorate([
57417 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
57418 ], InfiniteCache.prototype, "destroyAllBlocks", null);
57419 return InfiniteCache;
57420}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["BeanStub"]));
57421
57422
57423
57424/***/ }),
57425/* 273 */
57426/***/ (function(module, __webpack_exports__, __webpack_require__) {
57427
57428"use strict";
57429__webpack_require__.r(__webpack_exports__);
57430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteBlock", function() { return InfiniteBlock; });
57431/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
57432var __extends = (undefined && undefined.__extends) || (function () {
57433 var extendStatics = function (d, b) {
57434 extendStatics = Object.setPrototypeOf ||
57435 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
57436 function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
57437 return extendStatics(d, b);
57438 };
57439 return function (d, b) {
57440 extendStatics(d, b);
57441 function __() { this.constructor = d; }
57442 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
57443 };
57444})();
57445var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
57446 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
57447 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
57448 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;
57449 return c > 3 && r && Object.defineProperty(target, key, r), r;
57450};
57451
57452var InfiniteBlock = /** @class */ (function (_super) {
57453 __extends(InfiniteBlock, _super);
57454 function InfiniteBlock(id, parentCache, params) {
57455 var _this = _super.call(this, id) || this;
57456 _this.parentCache = parentCache;
57457 _this.params = params;
57458 // we don't need to calculate these now, as the inputs don't change,
57459 // however it makes the code easier to read if we work them out up front
57460 _this.startRow = id * params.blockSize;
57461 _this.endRow = _this.startRow + params.blockSize;
57462 return _this;
57463 }
57464 InfiniteBlock.prototype.postConstruct = function () {
57465 this.createRowNodes();
57466 };
57467 InfiniteBlock.prototype.getBlockStateJson = function () {
57468 return {
57469 id: '' + this.getId(),
57470 state: {
57471 blockNumber: this.getId(),
57472 startRow: this.getStartRow(),
57473 endRow: this.getEndRow(),
57474 pageStatus: this.getState()
57475 }
57476 };
57477 };
57478 InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {
57479 // if there's no id and the rowNode was rendered before, it means this
57480 // was a placeholder rowNode and should not be recycled. Setting
57481 // `alreadyRendered` to `false` forces the rowRenderer to flush it.
57482 if (!rowNode.id && rowNode.alreadyRendered) {
57483 rowNode.alreadyRendered = false;
57484 }
57485 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].exists(data)) {
57486 // this means if the user is not providing id's we just use the
57487 // index for the row. this will allow selection to work (that is based
57488 // on index) as long user is not inserting or deleting rows,
57489 // or wanting to keep selection between server side sorting or filtering
57490 rowNode.setDataAndId(data, index.toString());
57491 }
57492 else {
57493 rowNode.setDataAndId(undefined, undefined);
57494 }
57495 };
57496 InfiniteBlock.prototype.loadFromDatasource = function () {
57497 var _this = this;
57498 var params = this.createLoadParams();
57499 if (_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["_"].missing(this.params.datasource.getRows)) {
57500 console.warn("AG Grid: datasource is missing getRows method");
57501 return;
57502 }
57503 // put in timeout, to force result to be async
57504 window.setTimeout(function () {
57505 _this.params.datasource.getRows(params);
57506 }, 0);
57507 };
57508 InfiniteBlock.prototype.processServerFail = function () {
57509 // todo - this method has better handling in SSRM
57510 };
57511 InfiniteBlock.prototype.createLoadParams = function () {
57512 // PROBLEM . . . . when the user sets sort via colDef.sort, then this code
57513 // is executing before the sort is set up, so server is not getting the sort
57514 // model. need to change with regards order - so the server side request is
57515 // AFTER thus it gets the right sort model.
57516 var params = {
57517 startRow: this.getStartRow(),
57518 endRow: this.getEndRow(),
57519 successCallback: this.pageLoaded.bind(this, this.getVersion()),
57520 failCallback: this.pageLoadFailed.bind(this, this.getVersion()),
57521 sortModel: this.params.sortModel,
57522 filterModel: this.params.filterModel,
57523 context: this.gridOptionsService.context
57524 };
57525 return params;
57526 };
57527 InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {
57528 var _this = this;
57529 this.rowNodes.forEach(function (rowNode, index) {
57530 var rowIndex = _this.startRow + index;
57531 if (rowIndex < rowCount) {
57532 callback(rowNode, sequence.next());
57533 }
57534 });
57535 };
57536 InfiniteBlock.prototype.getLastAccessed = function () {
57537 return this.lastAccessed;
57538 };
57539 InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {
57540 if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }
57541 if (!dontTouchLastAccessed) {
57542 this.lastAccessed = this.params.lastAccessedSequence.next();
57543 }
57544 var localIndex = rowIndex - this.startRow;
57545 return this.rowNodes[localIndex];
57546 };
57547 InfiniteBlock.prototype.getStartRow = function () {
57548 return this.startRow;
57549 };
57550 InfiniteBlock.prototype.getEndRow = function () {
57551 return this.endRow;
57552 };
57553 // creates empty row nodes, data is missing as not loaded yet
57554 InfiniteBlock.prototype.createRowNodes = function () {
57555 this.rowNodes = [];
57556 for (var i = 0; i < this.params.blockSize; i++) {
57557 var rowIndex = this.startRow + i;
57558 var rowNode = new _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNode"](this.beans);
57559 rowNode.setRowHeight(this.params.rowHeight);
57560 rowNode.uiLevel = 0;
57561 rowNode.setRowIndex(rowIndex);
57562 rowNode.setRowTop(this.params.rowHeight * rowIndex);
57563 this.rowNodes.push(rowNode);
57564 }
57565 };
57566 InfiniteBlock.prototype.processServerResult = function (params) {
57567 var _this = this;
57568 this.rowNodes.forEach(function (rowNode, index) {
57569 var data = params.rowData ? params.rowData[index] : undefined;
57570 _this.setDataAndId(rowNode, data, _this.startRow + index);
57571 });
57572 var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;
57573 this.parentCache.pageLoaded(this, finalRowCount);
57574 };
57575 InfiniteBlock.prototype.destroyRowNodes = function () {
57576 this.rowNodes.forEach(function (rowNode) {
57577 // this is needed, so row render knows to fade out the row, otherwise it
57578 // sees row top is present, and thinks the row should be shown.
57579 rowNode.clearRowTopAndRowIndex();
57580 });
57581 };
57582 __decorate([
57583 Object(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["Autowired"])('beans')
57584 ], InfiniteBlock.prototype, "beans", void 0);
57585 __decorate([
57586 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PostConstruct"]
57587 ], InfiniteBlock.prototype, "postConstruct", null);
57588 __decorate([
57589 _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["PreDestroy"]
57590 ], InfiniteBlock.prototype, "destroyRowNodes", null);
57591 return InfiniteBlock;
57592}(_ag_grid_community_core__WEBPACK_IMPORTED_MODULE_0__["RowNodeBlock"]));
57593
57594
57595
57596/***/ }),
57597/* 274 */
57598/***/ (function(module, __webpack_exports__, __webpack_require__) {
57599
57600"use strict";
57601__webpack_require__.r(__webpack_exports__);
57602/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; });
57603// DO NOT UPDATE MANUALLY: Generated from script during build time
57604var VERSION = '29.2.0';
57605
57606
57607/***/ }),
57608/* 275 */
57609/***/ (function(module, __webpack_exports__, __webpack_require__) {
57610
57611"use strict";
57612__webpack_require__.r(__webpack_exports__);
57613/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AllCommunityModules", function() { return AllCommunityModules; });
57614/* harmony import */ var _ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);
57615/* harmony import */ var _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(269);
57616/* harmony import */ var _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(258);
57617/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelModule", function() { return _ag_grid_community_client_side_row_model__WEBPACK_IMPORTED_MODULE_0__["ClientSideRowModelModule"]; });
57618
57619/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseCreator", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["BaseCreator"]; });
57620
57621/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseGridSerializingSession", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["BaseGridSerializingSession"]; });
57622
57623/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvCreator", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvCreator"]; });
57624
57625/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CsvExportModule", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["CsvExportModule"]; });
57626
57627/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Downloader", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["Downloader"]; });
57628
57629/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridSerializer", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["GridSerializer"]; });
57630
57631/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowType", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["RowType"]; });
57632
57633/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "XmlFactory", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["XmlFactory"]; });
57634
57635/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ZipContainer", function() { return _ag_grid_community_csv_export__WEBPACK_IMPORTED_MODULE_2__["ZipContainer"]; });
57636
57637/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfiniteRowModelModule", function() { return _ag_grid_community_infinite_row_model__WEBPACK_IMPORTED_MODULE_1__["InfiniteRowModelModule"]; });
57638
57639/* harmony import */ var _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3);
57640/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnFactory"]; });
57641
57642/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnModel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnModel"]; });
57643
57644/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnKeyCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnKeyCreator"]; });
57645
57646/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnUtils"]; });
57647
57648/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DisplayedGroupCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DisplayedGroupCreator"]; });
57649
57650/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupInstanceIdCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupInstanceIdCreator"]; });
57651
57652/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GROUP_AUTO_COLUMN_ID", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GROUP_AUTO_COLUMN_ID"]; });
57653
57654/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ComponentUtil", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ComponentUtil"]; });
57655
57656/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgStackComponentsRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgStackComponentsRegistry"]; });
57657
57658/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["UserComponentRegistry"]; });
57659
57660/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserComponentFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["UserComponentFactory"]; });
57661
57662/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColDefUtil", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColDefUtil"]; });
57663
57664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BeanStub", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BeanStub"]; });
57665
57666/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Context", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Context"]; });
57667
57668/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Autowired", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Autowired"]; });
57669
57670/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PostConstruct", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PostConstruct"]; });
57671
57672/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreConstruct", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PreConstruct"]; });
57673
57674/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Optional", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Optional"]; });
57675
57676/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Bean", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Bean"]; });
57677
57678/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Qualifier", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Qualifier"]; });
57679
57680/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PreDestroy", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PreDestroy"]; });
57681
57682/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "QuerySelector", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["QuerySelector"]; });
57683
57684/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RefSelector", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RefSelector"]; });
57685
57686/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExcelFactoryMode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ExcelFactoryMode"]; });
57687
57688/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragAndDropService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragAndDropService"]; });
57689
57690/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragSourceType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragSourceType"]; });
57691
57692/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HorizontalDirection"]; });
57693
57694/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VerticalDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VerticalDirection"]; });
57695
57696/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DragService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DragService"]; });
57697
57698/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Column", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Column"]; });
57699
57700/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnGroup", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnGroup"]; });
57701
57702/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedColumnGroup", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ProvidedColumnGroup"]; });
57703
57704/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNode"]; });
57705
57706/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowHighlightPosition", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowHighlightPosition"]; });
57707
57708/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FilterManager", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FilterManager"]; });
57709
57710/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProvidedFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ProvidedFilter"]; });
57711
57712/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SimpleFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SimpleFilter"]; });
57713
57714/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScalarFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ScalarFilter"]; });
57715
57716/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NumberFilter"]; });
57717
57718/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextFilter"]; });
57719
57720/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DateFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DateFilter"]; });
57721
57722/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextFloatingFilter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextFloatingFilter"]; });
57723
57724/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderFilterCellComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderFilterCellComp"]; });
57725
57726/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FloatingFilterMapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FloatingFilterMapper"]; });
57727
57728/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridBodyComp"]; });
57729
57730/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridBodyCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridBodyCtrl"]; });
57731
57732/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowAnimationCssClasses", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowAnimationCssClasses"]; });
57733
57734/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ScrollVisibleService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ScrollVisibleService"]; });
57735
57736/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MouseEventService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["MouseEventService"]; });
57737
57738/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NavigationService"]; });
57739
57740/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowContainerComp"]; });
57741
57742/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerName", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowContainerName"]; });
57743
57744/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowContainerCtrl"]; });
57745
57746/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowContainerType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowContainerType"]; });
57747
57748/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getRowContainerTypeForName", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["getRowContainerTypeForName"]; });
57749
57750/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropPivotTarget", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BodyDropPivotTarget"]; });
57751
57752/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BodyDropTarget", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BodyDropTarget"]; });
57753
57754/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassApplier", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CssClassApplier"]; });
57755
57756/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowContainerComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowContainerComp"]; });
57757
57758/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridHeaderComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridHeaderComp"]; });
57759
57760/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridHeaderCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridHeaderCtrl"]; });
57761
57762/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowComp"]; });
57763
57764/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowType"]; });
57765
57766/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowCtrl"]; });
57767
57768/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderCellCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderCellCtrl"]; });
57769
57770/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortIndicatorComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SortIndicatorComp"]; });
57771
57772/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderFilterCellCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderFilterCellCtrl"]; });
57773
57774/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderGroupCellCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderGroupCellCtrl"]; });
57775
57776/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AbstractHeaderCellCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AbstractHeaderCellCtrl"]; });
57777
57778/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderRowContainerCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderRowContainerCtrl"]; });
57779
57780/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HorizontalResizeService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HorizontalResizeService"]; });
57781
57782/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MoveColumnFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["MoveColumnFeature"]; });
57783
57784/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StandardMenuFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["StandardMenuFactory"]; });
57785
57786/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabbedLayout", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TabbedLayout"]; });
57787
57788/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "simpleHttpRequest", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["simpleHttpRequest"]; });
57789
57790/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ResizeObserverService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ResizeObserverService"]; });
57791
57792/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimationFrameService"]; });
57793
57794/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LargeTextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LargeTextCellEditor"]; });
57795
57796/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupEditorWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupEditorWrapper"]; });
57797
57798/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectCellEditor"]; });
57799
57800/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TextCellEditor", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TextCellEditor"]; });
57801
57802/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Beans", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Beans"]; });
57803
57804/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateShowChangeCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimateShowChangeCellRenderer"]; });
57805
57806/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimateSlideCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AnimateSlideCellRenderer"]; });
57807
57808/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupCellRenderer"]; });
57809
57810/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupCellRendererCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GroupCellRendererCtrl"]; });
57811
57812/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SetLeftFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SetLeftFeature"]; });
57813
57814/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PositionableFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PositionableFeature"]; });
57815
57816/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoWidthCalculator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AutoWidthCalculator"]; });
57817
57818/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CheckboxSelectionComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CheckboxSelectionComponent"]; });
57819
57820/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellComp"]; });
57821
57822/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellCtrl"]; });
57823
57824/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowCtrl"]; });
57825
57826/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowRenderer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowRenderer"]; });
57827
57828/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueFormatterService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueFormatterService"]; });
57829
57830/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassManager", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CssClassManager"]; });
57831
57832/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PinnedRowModel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PinnedRowModel"]; });
57833
57834/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ServerSideTransactionResultStatus", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ServerSideTransactionResultStatus"]; });
57835
57836/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChangedPath", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ChangedPath"]; });
57837
57838/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlock", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeBlock"]; });
57839
57840/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeBlockLoader", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeBlockLoader"]; });
57841
57842/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PaginationProxy", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PaginationProxy"]; });
57843
57844/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ClientSideRowModelSteps", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ClientSideRowModelSteps"]; });
57845
57846/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StylingService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["StylingService"]; });
57847
57848/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LayoutCssClasses", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LayoutCssClasses"]; });
57849
57850/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgAbstractField"]; });
57851
57852/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgCheckbox", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgCheckbox"]; });
57853
57854/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgRadioButton", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgRadioButton"]; });
57855
57856/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgToggleButton", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgToggleButton"]; });
57857
57858/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputTextField"]; });
57859
57860/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputTextArea", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputTextArea"]; });
57861
57862/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputNumberField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputNumberField"]; });
57863
57864/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgInputRange", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgInputRange"]; });
57865
57866/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSelect", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgSelect"]; });
57867
57868/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgSlider", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgSlider"]; });
57869
57870/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgGroupComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgGroupComponent"]; });
57871
57872/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgMenuItemComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgMenuItemComponent"]; });
57873
57874/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgMenuList", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgMenuList"]; });
57875
57876/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgMenuPanel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgMenuPanel"]; });
57877
57878/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgDialog", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgDialog"]; });
57879
57880/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPanel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPanel"]; });
57881
57882/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Component", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Component"]; });
57883
57884/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ManagedFocusFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ManagedFocusFeature"]; });
57885
57886/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabGuardComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TabGuardComp"]; });
57887
57888/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabGuardCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TabGuardCtrl"]; });
57889
57890/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TabGuardClassNames", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TabGuardClassNames"]; });
57891
57892/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupComponent", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupComponent"]; });
57893
57894/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PopupService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PopupService"]; });
57895
57896/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TouchListener", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TouchListener"]; });
57897
57898/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualList", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VirtualList"]; });
57899
57900/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgAbstractLabel", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgAbstractLabel"]; });
57901
57902/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPickerField", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPickerField"]; });
57903
57904/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellRangeType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellRangeType"]; });
57905
57906/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectionHandleType", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectionHandleType"]; });
57907
57908/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AutoScrollService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AutoScrollService"]; });
57909
57910/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VanillaFrameworkOverrides", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["VanillaFrameworkOverrides"]; });
57911
57912/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellNavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellNavigationService"]; });
57913
57914/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlignedGridsService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AlignedGridsService"]; });
57915
57916/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "KeyCode", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["KeyCode"]; });
57917
57918/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Grid", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Grid"]; });
57919
57920/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCoreCreator", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridCoreCreator"]; });
57921
57922/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridApi", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridApi"]; });
57923
57924/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Events", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Events"]; });
57925
57926/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FocusService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["FocusService"]; });
57927
57928/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridOptionsService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridOptionsService"]; });
57929
57930/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EventService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["EventService"]; });
57931
57932/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SelectableService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SelectableService"]; });
57933
57934/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowNodeSorter", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowNodeSorter"]; });
57935
57936/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CtrlsService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CtrlsService"]; });
57937
57938/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridComp", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridComp"]; });
57939
57940/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GridCtrl", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["GridCtrl"]; });
57941
57942/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Logger"]; });
57943
57944/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LoggerFactory", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LoggerFactory"]; });
57945
57946/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SortController", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["SortController"]; });
57947
57948/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TemplateService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["TemplateService"]; });
57949
57950/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "LocaleService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["LocaleService"]; });
57951
57952/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["_"]; });
57953
57954/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NumberSequence", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["NumberSequence"]; });
57955
57956/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromiseStatus", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPromiseStatus"]; });
57957
57958/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AgPromise", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["AgPromise"]; });
57959
57960/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Timer", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Timer"]; });
57961
57962/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueService"]; });
57963
57964/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ValueCache", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ValueCache"]; });
57965
57966/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ExpressionService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ExpressionService"]; });
57967
57968/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CellPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CellPositionUtils"]; });
57969
57970/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RowPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["RowPositionUtils"]; });
57971
57972/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderPositionUtils", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderPositionUtils"]; });
57973
57974/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationService", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderNavigationService"]; });
57975
57976/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HeaderNavigationDirection", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["HeaderNavigationDirection"]; });
57977
57978/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PropertyKeys", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["PropertyKeys"]; });
57979
57980/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ColumnApi", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ColumnApi"]; });
57981
57982/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseComponentWrapper", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BaseComponentWrapper"]; });
57983
57984/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Environment", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["Environment"]; });
57985
57986/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CustomTooltipFeature", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CustomTooltipFeature"]; });
57987
57988/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "DEFAULT_CHART_GROUPS", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["DEFAULT_CHART_GROUPS"]; });
57989
57990/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOL_PANEL_ALLOW_LIST", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CHART_TOOL_PANEL_ALLOW_LIST"]; });
57991
57992/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOLBAR_ALLOW_LIST", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CHART_TOOLBAR_ALLOW_LIST"]; });
57993
57994/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CHART_TOOL_PANEL_MENU_OPTIONS", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["CHART_TOOL_PANEL_MENU_OPTIONS"]; });
57995
57996/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "__FORCE_MODULE_DETECTION", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["__FORCE_MODULE_DETECTION"]; });
57997
57998/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BarColumnLabelPlacement", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["BarColumnLabelPlacement"]; });
57999
58000/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleNames", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ModuleNames"]; });
58001
58002/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ModuleRegistry", function() { return _ag_grid_community_core__WEBPACK_IMPORTED_MODULE_3__["ModuleRegistry"]; });
58003
58004
58005
58006
58007var 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"]];
58008
58009
58010
58011
58012
58013
58014/***/ }),
58015/* 276 */
58016/***/ (function(module, exports, __webpack_require__) {
58017
58018var api = __webpack_require__(277);
58019 var content = __webpack_require__(278);
58020
58021 content = content.__esModule ? content.default : content;
58022
58023 if (typeof content === 'string') {
58024 content = [[module.i, content, '']];
58025 }
58026
58027var options = {};
58028
58029options.insert = "head";
58030options.singleton = false;
58031
58032var update = api(content, options);
58033
58034
58035
58036module.exports = content.locals || {};
58037
58038/***/ }),
58039/* 277 */
58040/***/ (function(module, exports, __webpack_require__) {
58041
58042"use strict";
58043
58044
58045var isOldIE = function isOldIE() {
58046 var memo;
58047 return function memorize() {
58048 if (typeof memo === 'undefined') {
58049 // Test for IE <= 9 as proposed by Browserhacks
58050 // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
58051 // Tests for existence of standard globals is to allow style-loader
58052 // to operate correctly into non-standard environments
58053 // @see https://github.com/webpack-contrib/style-loader/issues/177
58054 memo = Boolean(window && document && document.all && !window.atob);
58055 }
58056
58057 return memo;
58058 };
58059}();
58060
58061var getTarget = function getTarget() {
58062 var memo = {};
58063 return function memorize(target) {
58064 if (typeof memo[target] === 'undefined') {
58065 var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
58066
58067 if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
58068 try {
58069 // This will throw an exception if access to iframe is blocked
58070 // due to cross-origin restrictions
58071 styleTarget = styleTarget.contentDocument.head;
58072 } catch (e) {
58073 // istanbul ignore next
58074 styleTarget = null;
58075 }
58076 }
58077
58078 memo[target] = styleTarget;
58079 }
58080
58081 return memo[target];
58082 };
58083}();
58084
58085var stylesInDom = [];
58086
58087function getIndexByIdentifier(identifier) {
58088 var result = -1;
58089
58090 for (var i = 0; i < stylesInDom.length; i++) {
58091 if (stylesInDom[i].identifier === identifier) {
58092 result = i;
58093 break;
58094 }
58095 }
58096
58097 return result;
58098}
58099
58100function modulesToDom(list, options) {
58101 var idCountMap = {};
58102 var identifiers = [];
58103
58104 for (var i = 0; i < list.length; i++) {
58105 var item = list[i];
58106 var id = options.base ? item[0] + options.base : item[0];
58107 var count = idCountMap[id] || 0;
58108 var identifier = "".concat(id, " ").concat(count);
58109 idCountMap[id] = count + 1;
58110 var index = getIndexByIdentifier(identifier);
58111 var obj = {
58112 css: item[1],
58113 media: item[2],
58114 sourceMap: item[3]
58115 };
58116
58117 if (index !== -1) {
58118 stylesInDom[index].references++;
58119 stylesInDom[index].updater(obj);
58120 } else {
58121 stylesInDom.push({
58122 identifier: identifier,
58123 updater: addStyle(obj, options),
58124 references: 1
58125 });
58126 }
58127
58128 identifiers.push(identifier);
58129 }
58130
58131 return identifiers;
58132}
58133
58134function insertStyleElement(options) {
58135 var style = document.createElement('style');
58136 var attributes = options.attributes || {};
58137
58138 if (typeof attributes.nonce === 'undefined') {
58139 var nonce = true ? __webpack_require__.nc : undefined;
58140
58141 if (nonce) {
58142 attributes.nonce = nonce;
58143 }
58144 }
58145
58146 Object.keys(attributes).forEach(function (key) {
58147 style.setAttribute(key, attributes[key]);
58148 });
58149
58150 if (typeof options.insert === 'function') {
58151 options.insert(style);
58152 } else {
58153 var target = getTarget(options.insert || 'head');
58154
58155 if (!target) {
58156 throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
58157 }
58158
58159 target.appendChild(style);
58160 }
58161
58162 return style;
58163}
58164
58165function removeStyleElement(style) {
58166 // istanbul ignore if
58167 if (style.parentNode === null) {
58168 return false;
58169 }
58170
58171 style.parentNode.removeChild(style);
58172}
58173/* istanbul ignore next */
58174
58175
58176var replaceText = function replaceText() {
58177 var textStore = [];
58178 return function replace(index, replacement) {
58179 textStore[index] = replacement;
58180 return textStore.filter(Boolean).join('\n');
58181 };
58182}();
58183
58184function applyToSingletonTag(style, index, remove, obj) {
58185 var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
58186
58187 /* istanbul ignore if */
58188
58189 if (style.styleSheet) {
58190 style.styleSheet.cssText = replaceText(index, css);
58191 } else {
58192 var cssNode = document.createTextNode(css);
58193 var childNodes = style.childNodes;
58194
58195 if (childNodes[index]) {
58196 style.removeChild(childNodes[index]);
58197 }
58198
58199 if (childNodes.length) {
58200 style.insertBefore(cssNode, childNodes[index]);
58201 } else {
58202 style.appendChild(cssNode);
58203 }
58204 }
58205}
58206
58207function applyToTag(style, options, obj) {
58208 var css = obj.css;
58209 var media = obj.media;
58210 var sourceMap = obj.sourceMap;
58211
58212 if (media) {
58213 style.setAttribute('media', media);
58214 } else {
58215 style.removeAttribute('media');
58216 }
58217
58218 if (sourceMap && typeof btoa !== 'undefined') {
58219 css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
58220 } // For old IE
58221
58222 /* istanbul ignore if */
58223
58224
58225 if (style.styleSheet) {
58226 style.styleSheet.cssText = css;
58227 } else {
58228 while (style.firstChild) {
58229 style.removeChild(style.firstChild);
58230 }
58231
58232 style.appendChild(document.createTextNode(css));
58233 }
58234}
58235
58236var singleton = null;
58237var singletonCounter = 0;
58238
58239function addStyle(obj, options) {
58240 var style;
58241 var update;
58242 var remove;
58243
58244 if (options.singleton) {
58245 var styleIndex = singletonCounter++;
58246 style = singleton || (singleton = insertStyleElement(options));
58247 update = applyToSingletonTag.bind(null, style, styleIndex, false);
58248 remove = applyToSingletonTag.bind(null, style, styleIndex, true);
58249 } else {
58250 style = insertStyleElement(options);
58251 update = applyToTag.bind(null, style, options);
58252
58253 remove = function remove() {
58254 removeStyleElement(style);
58255 };
58256 }
58257
58258 update(obj);
58259 return function updateStyle(newObj) {
58260 if (newObj) {
58261 if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
58262 return;
58263 }
58264
58265 update(obj = newObj);
58266 } else {
58267 remove();
58268 }
58269 };
58270}
58271
58272module.exports = function (list, options) {
58273 options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
58274 // tags it will allow on a page
58275
58276 if (!options.singleton && typeof options.singleton !== 'boolean') {
58277 options.singleton = isOldIE();
58278 }
58279
58280 list = list || [];
58281 var lastIdentifiers = modulesToDom(list, options);
58282 return function update(newList) {
58283 newList = newList || [];
58284
58285 if (Object.prototype.toString.call(newList) !== '[object Array]') {
58286 return;
58287 }
58288
58289 for (var i = 0; i < lastIdentifiers.length; i++) {
58290 var identifier = lastIdentifiers[i];
58291 var index = getIndexByIdentifier(identifier);
58292 stylesInDom[index].references--;
58293 }
58294
58295 var newLastIdentifiers = modulesToDom(newList, options);
58296
58297 for (var _i = 0; _i < lastIdentifiers.length; _i++) {
58298 var _identifier = lastIdentifiers[_i];
58299
58300 var _index = getIndexByIdentifier(_identifier);
58301
58302 if (stylesInDom[_index].references === 0) {
58303 stylesInDom[_index].updater();
58304
58305 stylesInDom.splice(_index, 1);
58306 }
58307 }
58308
58309 lastIdentifiers = newLastIdentifiers;
58310 };
58311};
58312
58313/***/ }),
58314/* 278 */
58315/***/ (function(module, exports, __webpack_require__) {
58316
58317// Imports
58318var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58319exports = ___CSS_LOADER_API_IMPORT___(false);
58320// Module
58321exports.push([module.i, ".ag-icon {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.ag-icon-aggregation::before {\n content: var(--ag-icon-font-code-aggregation, \"\\f101\");\n}\n\n.ag-icon-arrows::before {\n content: var(--ag-icon-font-code-arrows, \"\\f102\");\n}\n\n.ag-icon-asc::before {\n content: var(--ag-icon-font-code-asc, \"\\f103\");\n}\n\n.ag-icon-cancel::before {\n content: var(--ag-icon-font-code-cancel, \"\\f104\");\n}\n\n.ag-icon-chart::before {\n content: var(--ag-icon-font-code-chart, \"\\f105\");\n}\n\n.ag-icon-checkbox-checked::before {\n content: var(--ag-icon-font-code-checkbox-checked, \"\\f106\");\n}\n\n.ag-icon-checkbox-indeterminate::before {\n content: var(--ag-icon-font-code-checkbox-indeterminate, \"\\f107\");\n}\n\n.ag-icon-checkbox-unchecked::before {\n content: var(--ag-icon-font-code-checkbox-unchecked, \"\\f108\");\n}\n\n.ag-icon-color-picker::before {\n content: var(--ag-icon-font-code-color-picker, \"\\f109\");\n}\n\n.ag-icon-columns::before {\n content: var(--ag-icon-font-code-columns, \"\\f10a\");\n}\n\n.ag-icon-contracted::before {\n content: var(--ag-icon-font-code-contracted, \"\\f10b\");\n}\n\n.ag-icon-copy::before {\n content: var(--ag-icon-font-code-copy, \"\\f10c\");\n}\n\n.ag-icon-cross::before {\n content: var(--ag-icon-font-code-cross, \"\\f10d\");\n}\n\n.ag-icon-csv::before {\n content: var(--ag-icon-font-code-csv, \"\\f10e\");\n}\n\n.ag-icon-cut::before {\n content: var(--ag-icon-font-code-cut, \"\\f10f\");\n}\n\n.ag-icon-desc::before {\n content: var(--ag-icon-font-code-desc, \"\\f110\");\n}\n\n.ag-icon-excel::before {\n content: var(--ag-icon-font-code-excel, \"\\f111\");\n}\n\n.ag-icon-expanded::before {\n content: var(--ag-icon-font-code-expanded, \"\\f112\");\n}\n\n.ag-icon-eye-slash::before {\n content: var(--ag-icon-font-code-eye-slash, \"\\f113\");\n}\n\n.ag-icon-eye::before {\n content: var(--ag-icon-font-code-eye, \"\\f114\");\n}\n\n.ag-icon-filter::before {\n content: var(--ag-icon-font-code-filter, \"\\f115\");\n}\n\n.ag-icon-first::before {\n content: var(--ag-icon-font-code-first, \"\\f116\");\n}\n\n.ag-icon-grip::before {\n content: var(--ag-icon-font-code-grip, \"\\f117\");\n}\n\n.ag-icon-group::before {\n content: var(--ag-icon-font-code-group, \"\\f118\");\n}\n\n.ag-icon-last::before {\n content: var(--ag-icon-font-code-last, \"\\f119\");\n}\n\n.ag-icon-left::before {\n content: var(--ag-icon-font-code-left, \"\\f11a\");\n}\n\n.ag-icon-linked::before {\n content: var(--ag-icon-font-code-linked, \"\\f11b\");\n}\n\n.ag-icon-loading::before {\n content: var(--ag-icon-font-code-loading, \"\\f11c\");\n}\n\n.ag-icon-maximize::before {\n content: var(--ag-icon-font-code-maximize, \"\\f11d\");\n}\n\n.ag-icon-menu::before {\n content: var(--ag-icon-font-code-menu, \"\\f11e\");\n}\n\n.ag-icon-minimize::before {\n content: var(--ag-icon-font-code-minimize, \"\\f11f\");\n}\n\n.ag-icon-next::before {\n content: var(--ag-icon-font-code-next, \"\\f120\");\n}\n\n.ag-icon-none::before {\n content: var(--ag-icon-font-code-none, \"\\f121\");\n}\n\n.ag-icon-not-allowed::before {\n content: var(--ag-icon-font-code-not-allowed, \"\\f122\");\n}\n\n.ag-icon-paste::before {\n content: var(--ag-icon-font-code-paste, \"\\f123\");\n}\n\n.ag-icon-pin::before {\n content: var(--ag-icon-font-code-pin, \"\\f124\");\n}\n\n.ag-icon-pivot::before {\n content: var(--ag-icon-font-code-pivot, \"\\f125\");\n}\n\n.ag-icon-previous::before {\n content: var(--ag-icon-font-code-previous, \"\\f126\");\n}\n\n.ag-icon-radio-button-off::before {\n content: var(--ag-icon-font-code-radio-button-off, \"\\f127\");\n}\n\n.ag-icon-radio-button-on::before {\n content: var(--ag-icon-font-code-radio-button-on, \"\\f128\");\n}\n\n.ag-icon-right::before {\n content: var(--ag-icon-font-code-right, \"\\f129\");\n}\n\n.ag-icon-save::before {\n content: var(--ag-icon-font-code-save, \"\\f12a\");\n}\n\n.ag-icon-small-down::before {\n content: var(--ag-icon-font-code-small-down, \"\\f12b\");\n}\n\n.ag-icon-small-left::before {\n content: var(--ag-icon-font-code-small-left, \"\\f12c\");\n}\n\n.ag-icon-small-right::before {\n content: var(--ag-icon-font-code-small-right, \"\\f12d\");\n}\n\n.ag-icon-small-up::before {\n content: var(--ag-icon-font-code-small-up, \"\\f12e\");\n}\n\n.ag-icon-tick::before {\n content: var(--ag-icon-font-code-tick, \"\\f12f\");\n}\n\n.ag-icon-tree-closed::before {\n content: var(--ag-icon-font-code-tree-closed, \"\\f130\");\n}\n\n.ag-icon-tree-indeterminate::before {\n content: var(--ag-icon-font-code-tree-indeterminate, \"\\f131\");\n}\n\n.ag-icon-tree-open::before {\n content: var(--ag-icon-font-code-tree-open, \"\\f132\");\n}\n\n.ag-icon-unlinked::before {\n content: var(--ag-icon-font-code-unlinked, \"\\f133\");\n}\n\n.ag-icon-row-drag::before {\n content: var(--ag-icon-font-code-grip);\n}\n\n.ag-left-arrow::before {\n content: var(--ag-icon-font-code-left);\n}\n\n.ag-right-arrow::before {\n content: var(--ag-icon-font-code-right);\n}\n\n[class*=ag-theme-] {\n --ag-foreground-color: #000;\n --ag-data-color: var(--ag-foreground-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-header-foreground-color: var(--ag-secondary-foreground-color);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.5);\n --ag-background-color: #fff;\n --ag-header-background-color: transparent;\n --ag-tooltip-background-color: transparent;\n --ag-subheader-background-color: transparent;\n --ag-subheader-toolbar-background-color: transparent;\n --ag-control-panel-background-color: transparent;\n --ag-side-button-selected-background-color: var(--ag-control-panel-background-color);\n --ag-selected-row-background-color: #BBB;\n --ag-odd-row-background-color: var(--ag-background-color);\n --ag-modal-overlay-background-color: rgba(255, 255, 255, 0.66);\n --ag-row-hover-color: transparent;\n --ag-column-hover-color: transparent;\n --ag-range-selection-border-color: var(--ag-foreground-color);\n --ag-range-selection-border-style: solid;\n --ag-range-selection-background-color: rgba(0, 0, 0, 0.2);\n --ag-range-selection-background-color-2: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-3: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-4: var(--ag-range-selection-background-color);\n --ag-range-selection-highlight-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-width: 0;\n --ag-selected-tab-underline-transition-speed: 0s;\n --ag-range-selection-chart-category-background-color: rgba(0, 255, 132, 0.1);\n --ag-range-selection-chart-background-color: rgba(0, 88, 255, 0.1);\n --ag-header-cell-hover-background-color: transparent;\n --ag-header-cell-moving-background-color: var(--ag-background-color);\n --ag-value-change-value-highlight-background-color: rgba(22, 160, 133, 0.5);\n --ag-value-change-delta-up-color: #43a047;\n --ag-value-change-delta-down-color: #e53935;\n --ag-chip-background-color: transparent;\n --ag-borders: solid 1px;\n --ag-border-color: rgba(0, 0, 0, 0.25);\n --ag-borders-critical: var(--ag-borders);\n --ag-borders-secondary: var(--ag-borders);\n --ag-secondary-border-color: var(--ag-border-color);\n --ag-row-border-style: solid;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-row-border-width: 1px;\n --ag-cell-horizontal-border: solid transparent;\n --ag-borders-input: var(--ag-borders-secondary);\n --ag-input-border-color: var(--ag-secondary-border-color);\n --ag-borders-input-invalid: solid 2px;\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-borders-side-button: var(--ag-borders);\n --ag-border-radius: 0px;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-header-column-separator-display: none;\n --ag-header-column-separator-height: 100%;\n --ag-header-column-separator-width: 1px;\n --ag-header-column-separator-color: var(--ag-secondary-border-color);\n --ag-header-column-resize-handle-display: none;\n --ag-header-column-resize-handle-height: 50%;\n --ag-header-column-resize-handle-width: 1px;\n --ag-header-column-resize-handle-color: var(--ag-secondary-border-color);\n --ag-invalid-color: red;\n --ag-input-disabled-border-color: var(--ag-input-border-color);\n --ag-input-disabled-background-color: transparent;\n --ag-checkbox-background-color: transparent;\n --ag-checkbox-border-radius: var(--ag-border-radius);\n --ag-checkbox-checked-color: var(--ag-foreground-color);\n --ag-checkbox-unchecked-color: var(--ag-foreground-color);\n --ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-switch-background-color: var(--ag-background-color);\n --ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);\n --ag-toggle-button-border-width: 1px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);\n --ag-input-focus-box-shadow: none;\n --ag-input-focus-border-color: none;\n --ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);\n --ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);\n --ag-grid-size: 4px;\n --ag-icon-size: 12px;\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: var(--ag-grid-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);\n --ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);\n --ag-header-height: var(--ag-row-height);\n --ag-list-item-height: calc(var(--ag-grid-size) * 5);\n --ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));\n --ag-filter-tool-panel-group-indent: 16px;\n --ag-tab-min-width: 220px;\n --ag-menu-min-width: 181px;\n --ag-side-bar-panel-width: 200px;\n --ag-font-family: \"Helvetica Neue\", sans-serif;\n --ag-font-size: 14px;\n --ag-card-radius: var(--ag-border-radius);\n --ag-card-shadow: none;\n --ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);\n}\n\n.ag-root-wrapper, .ag-sticky-top, .ag-dnd-ghost {\n background-color: var(--ag-background-color);\n}\n\n[class*=ag-theme-] {\n -webkit-font-smoothing: antialiased;\n font-family: var(--ag-font-family);\n font-size: var(--ag-font-size);\n line-height: normal;\n color: var(--ag-foreground-color);\n}\n\nag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {\n display: block;\n}\n\n.ag-hidden {\n display: none !important;\n}\n\n.ag-invisible {\n visibility: hidden !important;\n}\n\n.ag-no-transition {\n transition: none !important;\n}\n\n.ag-drag-handle {\n cursor: grab;\n}\n\n.ag-column-drop-wrapper {\n display: flex;\n}\n\n.ag-column-drop-horizontal-half-width {\n display: inline-block;\n width: 50% !important;\n}\n\n.ag-unselectable {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-selectable {\n -moz-user-select: text;\n -webkit-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n\n.ag-tab {\n position: relative;\n}\n\n.ag-tab-guard {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n}\n\n.ag-select-agg-func-popup {\n position: absolute;\n}\n\n.ag-input-wrapper, .ag-picker-field-wrapper {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n line-height: normal;\n position: relative;\n}\n\n.ag-shake-left-to-right {\n animation-direction: alternate;\n animation-duration: 0.2s;\n animation-iteration-count: infinite;\n animation-name: ag-shake-left-to-right;\n}\n\n@keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px;\n }\n to {\n padding-left: 2px;\n padding-right: 6px;\n }\n}\n.ag-root-wrapper {\n cursor: default;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.ag-root-wrapper.ag-layout-normal {\n height: 100%;\n}\n\n.ag-watermark {\n position: absolute;\n bottom: 20px;\n right: 25px;\n opacity: 0.5;\n transition: opacity 1s ease-out 3s;\n}\n.ag-watermark::before {\n content: \"\";\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDIzNSA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM1NzIzLDAsMCwwLjYzNTcyMywtNDkyLjkyMSwtMzIzLjYwOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDk5LjQsNTQ5LjRMMTA5OS40LDUzNi45TDEwNzguMSw1MzYuOUwxMDY1LjYsNTQ5LjRMMTA5OS40LDU0OS40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTEyMy40LDUxOC40TDEwOTYuNyw1MTguNEwxMDg0LjEsNTMwLjlMMTEyMy40LDUzMC45TDExMjMuNCw1MTguNFoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNTMuMiw1NjEuOUwxMDU5LjYsNTU1LjVMMTA4MS4yLDU1NS41TDEwODEuMiw1NjhMMTA1My4yLDU2OEwxMDUzLjIsNTYxLjlaIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDU3LjksNTQzLjNMMTA3MS43LDU0My4zTDEwODQuMyw1MzAuOEwxMDU3LjksNTMwLjhMMTA1Ny45LDU0My4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTA0Mi44LDU2MS45TDEwNTMuMiw1NjEuOUwxMDY1LjYsNTQ5LjRMMTA0Mi44LDU0OS40TDEwNDIuOCw1NjEuOVoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOTYuNyw1MTguNEwxMDkwLjMsNTI0LjhMMTA0OS41LDUyNC44TDEwNDkuNSw1MTIuM0wxMDk2LjcsNTEyLjNMMTA5Ni43LDUxOC40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNODI4LjYsNTU5LjdMODA5LDU1OS43TDgwNS42LDU2OC4xTDc5Nyw1NjguMUw4MTUuMSw1MjUuN0w4MjIuNiw1MjUuN0w4NDAuNyw1NjguMUw4MzIsNTY4LjFMODI4LjYsNTU5LjdaTTgyNS45LDU1M0w4MTguOCw1MzUuN0w4MTEuNyw1NTNMODI1LjksNTUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTYwLjEsNTQxLjNDOTYyLjYsNTM3LjYgOTY4LjksNTM3LjIgOTcxLjUsNTM3LjJMOTcxLjUsNTQ0LjRDOTY4LjMsNTQ0LjQgOTY1LjEsNTQ0LjUgOTYzLjIsNTQ1LjlDOTYxLjMsNTQ3LjMgOTYwLjMsNTQ5LjIgOTYwLjMsNTUxLjVMOTYwLjMsNTY4LjFMOTUyLjUsNTY4LjFMOTUyLjUsNTM3LjJMOTYwLDUzNy4yTDk2MC4xLDU0MS4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTM3LjIiIHdpZHRoPSI3LjgiIGhlaWdodD0iMzAuOSIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTIzLjQiIHdpZHRoPSI3LjgiIGhlaWdodD0iOS4yIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDIyLjMsNTIzLjRMMTAyMi4zLDU2OC4xTDEwMTQuOCw1NjguMUwxMDE0LjYsNTYzLjRDMTAxMy41LDU2NSAxMDEyLjEsNTY2LjMgMTAxMC40LDU2Ny4zQzEwMDguNyw1NjguMiAxMDA2LjYsNTY4LjcgMTAwNC4yLDU2OC43QzEwMDIuMSw1NjguNyAxMDAwLjEsNTY4LjMgOTk4LjQsNTY3LjZDOTk2LjYsNTY2LjggOTk1LDU2NS44IDk5My43LDU2NC40Qzk5Mi40LDU2MyA5OTEuMyw1NjEuMyA5OTAuNiw1NTkuNEM5ODkuOCw1NTcuNSA5ODkuNSw1NTUuMyA5ODkuNSw1NTIuOUM5ODkuNSw1NTAuNSA5ODkuOSw1NDguMyA5OTAuNiw1NDYuM0M5OTEuNCw1NDQuMyA5OTIuNCw1NDIuNiA5OTMuNyw1NDEuMkM5OTUsNTM5LjggOTk2LjYsNTM4LjcgOTk4LjQsNTM3LjlDMTAwMC4yLDUzNy4xIDEwMDIuMSw1MzYuNyAxMDA0LjIsNTM2LjdDMTAwNi42LDUzNi43IDEwMDguNiw1MzcuMSAxMDEwLjMsNTM4QzEwMTIsNTM4LjkgMTAxMy40LDU0MC4xIDEwMTQuNSw1NDEuOEwxMDE0LjUsNTIzLjVMMTAyMi4zLDUyMy41TDEwMjIuMyw1MjMuNFpNMTAwNS45LDU2MkMxMDA4LjUsNTYyIDEwMTAuNSw1NjEuMSAxMDEyLjEsNTU5LjRDMTAxMy43LDU1Ny43IDEwMTQuNSw1NTUuNCAxMDE0LjUsNTUyLjZDMTAxNC41LDU0OS44IDEwMTMuNyw1NDcuNiAxMDEyLjEsNTQ1LjhDMTAxMC41LDU0NC4xIDEwMDguNSw1NDMuMiAxMDA1LjksNTQzLjJDMTAwMy40LDU0My4yIDEwMDEuMyw1NDQuMSA5OTkuOCw1NDUuOEM5OTguMiw1NDcuNSA5OTcuNCw1NDkuOCA5OTcuNCw1NTIuNkM5OTcuNCw1NTUuNCA5OTguMiw1NTcuNiA5OTkuOCw1NTkuM0MxMDAxLjQsNTYxLjEgMTAwMy40LDU2MiAxMDA1LjksNTYyIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik04ODUuOCw1NDQuMkw4NjYuNSw1NDQuMkw4NjYuNSw1NTAuOUw4NzcuNSw1NTAuOUM4NzcuMiw1NTQuMyA4NzUuOSw1NTYuOSA4NzMuNyw1NTlDODcxLjUsNTYxIDg2OC43LDU2MiA4NjUuMSw1NjJDODYzLjEsNTYyIDg2MS4yLDU2MS42IDg1OS42LDU2MC45Qzg1Ny45LDU2MC4yIDg1Ni41LDU1OS4yIDg1NS4zLDU1Ny44Qzg1NC4xLDU1Ni41IDg1My4yLDU1NC45IDg1Mi41LDU1M0M4NTEuOCw1NTEuMSA4NTEuNSw1NDkuMSA4NTEuNSw1NDYuOEM4NTEuNSw1NDQuNSA4NTEuOCw1NDIuNSA4NTIuNSw1NDAuNkM4NTMuMSw1MzguNyA4NTQuMSw1MzcuMiA4NTUuMyw1MzUuOEM4NTYuNSw1MzQuNSA4NTcuOSw1MzMuNSA4NTkuNiw1MzIuN0M4NjEuMyw1MzIgODYzLjEsNTMxLjYgODY1LjIsNTMxLjZDODY5LjQsNTMxLjYgODcyLjYsNTMyLjYgODc0LjgsNTM0LjZMODgwLDUyOS40Qzg3Ni4xLDUyNi40IDg3MS4xLDUyNC44IDg2NS4yLDUyNC44Qzg2MS45LDUyNC44IDg1OC45LDUyNS4zIDg1Ni4yLDUyNi40Qzg1My41LDUyNy41IDg1MS4yLDUyOC45IDg0OS4zLDUzMC44Qzg0Ny40LDUzMi43IDg0NS45LDUzNSA4NDQuOSw1MzcuN0M4NDMuOSw1NDAuNCA4NDMuNCw1NDMuNCA4NDMuNCw1NDYuNkM4NDMuNCw1NDkuOCA4NDMuOSw1NTIuOCA4NDUsNTU1LjVDODQ2LjEsNTU4LjIgODQ3LjUsNTYwLjUgODQ5LjQsNTYyLjRDODUxLjMsNTY0LjMgODUzLjYsNTY1LjggODU2LjMsNTY2LjhDODU5LDU2Ny45IDg2Miw1NjguNCA4NjUuMiw1NjguNEM4NjguNCw1NjguNCA4NzEuMyw1NjcuOSA4NzMuOSw1NjYuOEM4NzYuNSw1NjUuNyA4NzguNyw1NjQuMyA4ODAuNSw1NjIuNEM4ODIuMyw1NjAuNSA4ODMuNyw1NTguMiA4ODQuNyw1NTUuNUM4ODUuNyw1NTIuOCA4ODYuMiw1NDkuOCA4ODYuMiw1NDYuNkw4ODYuMiw1NDUuM0M4ODUuOSw1NDUuMSA4ODUuOCw1NDQuNiA4ODUuOCw1NDQuMiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTQ2LjgsNTQ0LjJMOTI3LjUsNTQ0LjJMOTI3LjUsNTUwLjlMOTM4LjUsNTUwLjlDOTM4LjIsNTU0LjMgOTM2LjksNTU2LjkgOTM0LjcsNTU5QzkzMi41LDU2MSA5MjkuNyw1NjIgOTI2LjEsNTYyQzkyNC4xLDU2MiA5MjIuMiw1NjEuNiA5MjAuNiw1NjAuOUM5MTguOSw1NjAuMiA5MTcuNSw1NTkuMiA5MTYuMyw1NTcuOEM5MTUuMSw1NTYuNSA5MTQuMiw1NTQuOSA5MTMuNSw1NTNDOTEyLjgsNTUxLjEgOTEyLjUsNTQ5LjEgOTEyLjUsNTQ2LjhDOTEyLjUsNTQ0LjUgOTEyLjgsNTQyLjUgOTEzLjUsNTQwLjZDOTE0LjEsNTM4LjcgOTE1LjEsNTM3LjIgOTE2LjMsNTM1LjhDOTE3LjUsNTM0LjUgOTE4LjksNTMzLjUgOTIwLjYsNTMyLjdDOTIyLjMsNTMyIDkyNC4xLDUzMS42IDkyNi4yLDUzMS42QzkzMC40LDUzMS42IDkzMy42LDUzMi42IDkzNS44LDUzNC42TDk0MSw1MjkuNEM5MzcuMSw1MjYuNCA5MzIuMSw1MjQuOCA5MjYuMiw1MjQuOEM5MjIuOSw1MjQuOCA5MTkuOSw1MjUuMyA5MTcuMiw1MjYuNEM5MTQuNSw1MjcuNSA5MTIuMiw1MjguOSA5MTAuMyw1MzAuOEM5MDguNCw1MzIuNyA5MDYuOSw1MzUgOTA1LjksNTM3LjdDOTA0LjksNTQwLjQgOTA0LjQsNTQzLjQgOTA0LjQsNTQ2LjZDOTA0LjQsNTQ5LjggOTA0LjksNTUyLjggOTA2LDU1NS41QzkwNy4xLDU1OC4yIDkwOC41LDU2MC41IDkxMC40LDU2Mi40QzkxMi4zLDU2NC4zIDkxNC42LDU2NS44IDkxNy4zLDU2Ni44QzkyMCw1NjcuOSA5MjMsNTY4LjQgOTI2LjIsNTY4LjRDOTI5LjQsNTY4LjQgOTMyLjMsNTY3LjkgOTM0LjksNTY2LjhDOTM3LjUsNTY1LjcgOTM5LjcsNTY0LjMgOTQxLjUsNTYyLjRDOTQzLjMsNTYwLjUgOTQ0LjcsNTU4LjIgOTQ1LjcsNTU1LjVDOTQ2LjcsNTUyLjggOTQ3LjIsNTQ5LjggOTQ3LjIsNTQ2LjZMOTQ3LjIsNTQ1LjNDOTQ2LjksNTQ1LjEgOTQ2LjgsNTQ0LjYgOTQ2LjgsNTQ0LjIiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);\n background-repeat: no-repeat;\n background-size: 170px 40px;\n display: block;\n height: 40px;\n width: 170px;\n opacity: 0.5;\n}\n\n.ag-watermark-text {\n opacity: 0.5;\n font-weight: bold;\n font-family: Impact, sans-serif;\n font-size: 19px;\n padding-left: 0.7rem;\n}\n\n.ag-root-wrapper-body {\n display: flex;\n flex-direction: row;\n}\n.ag-root-wrapper-body.ag-layout-normal {\n flex: 1 1 auto;\n height: 0;\n min-height: 0;\n}\n\n.ag-root {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height {\n overflow: hidden;\n flex: 1 1 auto;\n width: 0;\n}\n.ag-root.ag-layout-normal {\n height: 100%;\n}\n\n.ag-header-viewport,\n.ag-floating-top-viewport,\n.ag-body-viewport,\n.ag-center-cols-viewport,\n.ag-floating-bottom-viewport,\n.ag-body-horizontal-scroll-viewport,\n.ag-body-vertical-scroll-viewport,\n.ag-virtual-list-viewport,\n.ag-sticky-top-viewport {\n position: relative;\n height: 100%;\n min-width: 0px;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-body-viewport {\n display: flex;\n}\n.ag-body-viewport.ag-layout-normal {\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-center-cols-viewport {\n width: 100%;\n overflow-x: auto;\n}\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: scroll;\n}\n\n.ag-body-vertical-scroll-viewport {\n overflow-y: scroll;\n}\n\n.ag-virtual-list-viewport {\n overflow: auto;\n width: 100%;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-body-container,\n.ag-pinned-right-cols-container,\n.ag-center-cols-container,\n.ag-pinned-left-cols-container,\n.ag-floating-bottom-container,\n.ag-body-horizontal-scroll-container,\n.ag-body-vertical-scroll-container,\n.ag-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-virtual-list-container,\n.ag-sticky-top-container {\n position: relative;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-floating-bottom-container,\n.ag-sticky-top-container {\n height: 100%;\n white-space: nowrap;\n}\n\n.ag-center-cols-container {\n display: block;\n}\n\n.ag-pinned-right-cols-container {\n display: block;\n}\n\n.ag-body-horizontal-scroll-container {\n height: 100%;\n}\n\n.ag-body-vertical-scroll-container {\n width: 100%;\n}\n\n.ag-full-width-container,\n.ag-floating-top-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-sticky-top-full-width-container {\n position: absolute;\n top: 0px;\n left: 0px;\n pointer-events: none;\n}\n\n.ag-full-width-container {\n width: 100%;\n}\n\n.ag-floating-bottom-full-width-container, .ag-floating-top-full-width-container {\n display: inline-block;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n\n.ag-virtual-list-container {\n overflow: hidden;\n}\n\n.ag-center-cols-clipper {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n min-height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n flex-direction: row !important;\n min-height: 0;\n}\n\n.ag-body-clipper {\n overflow: hidden;\n min-width: 0px;\n flex: 1 1 auto;\n height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body-horizontal-scroll,\n.ag-body-vertical-scroll {\n min-height: 0;\n min-width: 0;\n display: flex;\n position: relative;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible,\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n position: absolute;\n bottom: 0;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar {\n opacity: 0;\n transition: opacity 400ms;\n visibility: hidden;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling, .ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active {\n visibility: visible;\n opacity: 1;\n}\n\n.ag-body-horizontal-scroll {\n width: 100%;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible {\n left: 0;\n right: 0;\n}\n\n.ag-body-vertical-scroll {\n height: 100%;\n}\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n top: 0;\n z-index: 10;\n}\n.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible {\n right: 0;\n}\n.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible {\n left: 0;\n}\n\n.ag-force-vertical-scroll {\n overflow-y: scroll !important;\n}\n\n.ag-horizontal-left-spacer, .ag-horizontal-right-spacer {\n height: 100%;\n min-width: 0;\n overflow-x: scroll;\n}\n.ag-horizontal-left-spacer.ag-scroller-corner, .ag-horizontal-right-spacer.ag-scroller-corner {\n overflow-x: hidden;\n}\n\n.ag-header, .ag-pinned-left-header, .ag-pinned-right-header {\n display: inline-block;\n overflow: hidden;\n position: relative;\n}\n\n.ag-header-cell-sortable {\n cursor: pointer;\n}\n\n.ag-header {\n display: flex;\n width: 100%;\n white-space: nowrap;\n}\n\n.ag-pinned-left-header {\n height: 100%;\n}\n\n.ag-pinned-right-header {\n height: 100%;\n}\n\n.ag-header-row {\n position: absolute;\n overflow: hidden;\n}\n\n.ag-header.ag-header-allow-overflow .ag-header-row {\n overflow: visible;\n}\n\n.ag-header-cell {\n display: inline-flex;\n align-items: center;\n position: absolute;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell.ag-header-active .ag-header-cell-menu-button {\n opacity: 1;\n}\n\n.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {\n transition: opacity 0.2s;\n opacity: 0;\n}\n\n.ag-header-group-cell-label, .ag-header-cell-label {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n align-items: center;\n text-overflow: ellipsis;\n align-self: stretch;\n}\n\n.ag-header-cell-text {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-comp-wrapper {\n width: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper {\n white-space: normal;\n}\n\n.ag-right-aligned-header .ag-header-cell-label {\n flex-direction: row-reverse;\n}\n\n.ag-header-group-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-header-cell-resize {\n position: absolute;\n z-index: 2;\n height: 100%;\n width: 8px;\n top: 0;\n cursor: ew-resize;\n}\n.ag-ltr .ag-header-cell-resize {\n right: -4px;\n}\n.ag-rtl .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-pinned-left-header .ag-header-cell-resize {\n right: -4px;\n}\n\n.ag-pinned-right-header .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-header-select-all {\n display: flex;\n}\n\n.ag-column-moving .ag-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-group-cell {\n transition: left 0.2s, width 0.2s;\n}\n\n.ag-column-panel {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-column-select {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 3 1 0px;\n}\n\n.ag-column-select-header {\n position: relative;\n display: flex;\n flex: none;\n}\n\n.ag-column-select-header-icon {\n position: relative;\n}\n\n.ag-column-select-header-filter-wrapper {\n flex: 1 1 auto;\n}\n\n.ag-column-select-header-filter {\n width: 100%;\n}\n\n.ag-column-select-list {\n flex: 1 1 0px;\n overflow: hidden;\n}\n\n.ag-column-drop {\n position: relative;\n display: inline-flex;\n align-items: center;\n overflow: auto;\n width: 100%;\n}\n\n.ag-column-drop-list {\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell-text {\n overflow: hidden;\n flex: 1 1 auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-column-drop-vertical {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n align-items: stretch;\n flex: 1 1 0px;\n}\n\n.ag-column-drop-vertical-title-bar {\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-column-drop-vertical-list {\n position: relative;\n align-items: stretch;\n flex-grow: 1;\n flex-direction: column;\n overflow-x: auto;\n}\n.ag-column-drop-vertical-list > * {\n flex: none;\n}\n\n.ag-column-drop-empty .ag-column-drop-vertical-list {\n overflow: hidden;\n}\n\n.ag-column-drop-vertical-empty-message {\n display: block;\n}\n\n.ag-column-drop.ag-column-drop-horizontal {\n white-space: nowrap;\n overflow: hidden;\n}\n\n.ag-column-drop-cell-button {\n cursor: pointer;\n}\n\n.ag-filter-toolpanel {\n flex: 1 1 0px;\n min-width: 0;\n}\n\n.ag-filter-toolpanel-header {\n position: relative;\n}\n\n.ag-filter-toolpanel-header, .ag-filter-toolpanel-search {\n display: flex;\n align-items: center;\n}\n.ag-filter-toolpanel-header > *, .ag-filter-toolpanel-search > * {\n display: flex;\n align-items: center;\n}\n\n.ag-filter-apply-panel {\n display: flex;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n.ag-row-animation .ag-row {\n transition: transform 0.4s, top 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-animation .ag-row.ag-after-created {\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-no-animation .ag-row {\n transition: background-color 0.1s;\n}\n\n.ag-row {\n white-space: nowrap;\n width: 100%;\n}\n\n.ag-row-loading {\n display: flex;\n align-items: center;\n}\n\n.ag-row-position-absolute {\n position: absolute;\n}\n\n.ag-row-position-relative {\n position: relative;\n}\n\n.ag-full-width-row {\n overflow: hidden;\n pointer-events: all;\n}\n\n.ag-row-inline-editing {\n z-index: 1;\n}\n\n.ag-row-dragging {\n z-index: 2;\n}\n\n.ag-stub-cell {\n display: flex;\n align-items: center;\n}\n\n.ag-cell {\n display: inline-block;\n position: absolute;\n white-space: nowrap;\n height: 100%;\n}\n\n.ag-cell-value {\n flex: 1 1 auto;\n}\n\n.ag-cell-value, .ag-group-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-cell-wrap-text {\n white-space: normal;\n word-break: break-all;\n}\n\n.ag-cell-wrapper {\n display: flex;\n align-items: center;\n}\n.ag-cell-wrapper.ag-row-group {\n align-items: flex-start;\n}\n\n.ag-sparkline-wrapper {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\n.ag-full-width-row .ag-cell-wrapper.ag-row-group {\n height: 100%;\n align-items: center;\n}\n\n.ag-cell-inline-editing {\n z-index: 1;\n}\n.ag-cell-inline-editing .ag-cell-wrapper,\n.ag-cell-inline-editing .ag-cell-edit-wrapper,\n.ag-cell-inline-editing .ag-cell-editor,\n.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,\n.ag-cell-inline-editing .ag-cell-editor input {\n height: 100%;\n width: 100%;\n line-height: normal;\n}\n\n.ag-cell .ag-icon {\n display: inline-block;\n vertical-align: middle;\n}\n\n.ag-set-filter-item {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.ag-set-filter-item-checkbox {\n display: flex;\n overflow: hidden;\n}\n\n.ag-set-filter-group-icons {\n display: block;\n}\n.ag-set-filter-group-icons > * {\n cursor: pointer;\n}\n\n.ag-filter-body-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.ag-filter-filter {\n flex: 1 1 0px;\n}\n\n.ag-filter-condition {\n display: flex;\n justify-content: center;\n}\n\n.ag-floating-filter-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.ag-floating-filter-full-body {\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n align-items: center;\n overflow: hidden;\n}\n\n.ag-floating-filter-full-body > div {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input {\n align-items: center;\n display: flex;\n width: 100%;\n}\n.ag-floating-filter-input > * {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-button {\n display: flex;\n flex: none;\n}\n\n.ag-dnd-ghost {\n position: absolute;\n display: inline-flex;\n align-items: center;\n cursor: move;\n white-space: nowrap;\n z-index: 9999;\n}\n\n.ag-overlay {\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.ag-overlay-panel {\n display: flex;\n height: 100%;\n width: 100%;\n}\n\n.ag-overlay-wrapper {\n display: flex;\n flex: none;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.ag-overlay-loading-wrapper {\n pointer-events: all;\n}\n\n.ag-popup-child {\n z-index: 5;\n top: 0;\n}\n\n.ag-popup-editor {\n position: absolute;\n user-select: none;\n z-index: 1;\n}\n\n.ag-large-text-input {\n display: block;\n}\n\n.ag-virtual-list-item {\n position: absolute;\n width: 100%;\n}\n\n.ag-floating-top {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-floating-bottom {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-sticky-top {\n position: absolute;\n display: flex;\n width: 100%;\n}\n\n.ag-pinned-left-sticky-top,\n.ag-pinned-right-sticky-top {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-sticky-top-full-width-container {\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-dialog, .ag-panel {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n.ag-panel-title-bar {\n display: flex;\n flex: none;\n align-items: center;\n cursor: default;\n}\n\n.ag-panel-title-bar-title {\n flex: 1 1 auto;\n}\n\n.ag-panel-title-bar-buttons {\n display: flex;\n}\n\n.ag-panel-title-bar-button {\n cursor: pointer;\n}\n\n.ag-panel-content-wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n}\n\n.ag-dialog {\n position: absolute;\n}\n\n.ag-resizer {\n position: absolute;\n pointer-events: none;\n user-select: none;\n z-index: 1;\n}\n.ag-resizer.ag-resizer-topLeft {\n top: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-top {\n top: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-topRight {\n top: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-right {\n top: 5px;\n right: 0;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n.ag-resizer.ag-resizer-bottomRight {\n bottom: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-bottom {\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-bottomLeft {\n bottom: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-left {\n left: 0;\n top: 5px;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n\n.ag-tooltip {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n.ag-tooltip-custom {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n.ag-value-slide-out {\n margin-right: 5px;\n opacity: 1;\n transition: opacity 3s, margin-right 3s;\n transition-timing-function: linear;\n}\n\n.ag-value-slide-out-end {\n margin-right: 10px;\n opacity: 0;\n}\n\n.ag-opacity-zero {\n opacity: 0 !important;\n}\n\n.ag-menu {\n max-height: 100%;\n overflow-y: auto;\n position: absolute;\n user-select: none;\n}\n\n.ag-menu-column-select-wrapper {\n height: 265px;\n overflow: auto;\n}\n.ag-menu-column-select-wrapper .ag-column-select {\n height: 100%;\n}\n\n.ag-menu-list {\n display: table;\n width: 100%;\n}\n\n.ag-menu-option, .ag-menu-separator {\n display: table-row;\n}\n\n.ag-menu-option-part, .ag-menu-separator-part {\n display: table-cell;\n vertical-align: middle;\n}\n\n.ag-menu-option-text {\n white-space: nowrap;\n}\n\n.ag-compact-menu-option {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n}\n\n.ag-compact-menu-option-text {\n white-space: nowrap;\n flex: 1 1 auto;\n}\n\n.ag-rich-select {\n cursor: default;\n outline: none;\n}\n\n.ag-rich-select-value {\n display: flex;\n align-items: center;\n}\n\n.ag-rich-select-value-icon {\n flex: 1 1 auto;\n order: 1;\n}\n.ag-ltr .ag-rich-select-value-icon {\n text-align: right;\n}\n.ag-rtl .ag-rich-select-value-icon {\n text-align: left;\n}\n\n.ag-rich-select-list {\n position: relative;\n}\n\n.ag-rich-select-virtual-list-item {\n display: flex;\n}\n\n.ag-rich-select-row {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.ag-paging-panel {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n}\n\n.ag-paging-page-summary-panel {\n display: flex;\n align-items: center;\n}\n\n.ag-paging-button {\n position: relative;\n}\n\n.ag-disabled .ag-paging-page-summary-panel {\n pointer-events: none;\n}\n\n.ag-tool-panel-wrapper {\n display: flex;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: default;\n user-select: none;\n}\n\n.ag-column-select-column,\n.ag-column-select-column-group,\n.ag-select-agg-func-item {\n position: relative;\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n text-overflow: ellipsis;\n white-space: nowrap;\n height: 100%;\n}\n.ag-column-select-column > *,\n.ag-column-select-column-group > *,\n.ag-select-agg-func-item > * {\n flex: none;\n}\n\n.ag-column-select-checkbox {\n display: flex;\n}\n\n.ag-tool-panel-horizontal-resize {\n cursor: ew-resize;\n height: 100%;\n position: absolute;\n top: 0;\n width: 5px;\n z-index: 1;\n}\n\n.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n\n.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n\n.ag-details-row {\n width: 100%;\n}\n\n.ag-details-row-fixed-height {\n height: 100%;\n}\n\n.ag-details-grid {\n width: 100%;\n}\n\n.ag-details-grid-fixed-height {\n height: 100%;\n}\n\n.ag-header-group-cell {\n display: flex;\n align-items: center;\n height: 100%;\n position: absolute;\n}\n\n.ag-header-group-cell-no-group.ag-header-span-height .ag-header-cell-resize {\n display: none;\n}\n\n.ag-cell-label-container {\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 5px 0px;\n}\n\n.ag-right-aligned-header .ag-cell-label-container {\n flex-direction: row;\n}\n.ag-right-aligned-header .ag-header-cell-text {\n text-align: end;\n}\n\n.ag-side-bar {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.ag-side-bar-left {\n order: -1;\n flex-direction: row;\n}\n\n.ag-side-button-button {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-wrap: nowrap;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n\n.ag-side-button-label {\n writing-mode: vertical-lr;\n}\n\n.ag-status-bar {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n}\n\n.ag-status-panel {\n display: inline-flex;\n}\n\n.ag-status-name-value {\n white-space: nowrap;\n}\n\n.ag-status-bar-left {\n display: inline-flex;\n}\n\n.ag-status-bar-center {\n display: inline-flex;\n}\n\n.ag-status-bar-right {\n display: inline-flex;\n}\n\n.ag-icon {\n display: block;\n speak: none;\n}\n\n.ag-group {\n position: relative;\n width: 100%;\n}\n\n.ag-group-title-bar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-title {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.ag-group-title-bar .ag-group-title {\n cursor: default;\n}\n\n.ag-group-toolbar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-container {\n display: flex;\n}\n\n.ag-disabled .ag-group-container {\n pointer-events: none;\n}\n\n.ag-group-container-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.ag-group-container-vertical {\n flex-direction: column;\n}\n\n.ag-column-group-icons {\n display: block;\n}\n.ag-column-group-icons > * {\n cursor: pointer;\n}\n\n.ag-group-item-alignment-stretch .ag-group-item {\n align-items: stretch;\n}\n\n.ag-group-item-alignment-start .ag-group-item {\n align-items: flex-start;\n}\n\n.ag-group-item-alignment-end .ag-group-item {\n align-items: flex-end;\n}\n\n.ag-toggle-button-icon {\n transition: right 0.3s;\n position: absolute;\n top: -1px;\n}\n\n.ag-input-field, .ag-select {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.ag-input-field-input {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input .ag-input-field-input[type=date] {\n width: 1px;\n}\n\n.ag-range-field {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select-wrapper {\n display: flex;\n}\n\n.ag-angle-select-parent-circle {\n display: block;\n position: relative;\n}\n\n.ag-angle-select-child-circle {\n position: absolute;\n}\n\n.ag-slider-wrapper {\n display: flex;\n}\n.ag-slider-wrapper .ag-input-field {\n flex: 1 1 auto;\n}\n\n.ag-picker-field-display {\n flex: 1 1 auto;\n}\n\n.ag-picker-field {\n display: flex;\n align-items: center;\n}\n\n.ag-picker-field-icon {\n display: flex;\n border: 0;\n padding: 0;\n margin: 0;\n cursor: pointer;\n}\n\n.ag-picker-field-wrapper {\n overflow: hidden;\n}\n\n.ag-label-align-right .ag-label {\n order: 1;\n}\n.ag-label-align-right > * {\n flex: none;\n}\n\n.ag-label-align-top {\n flex-direction: column;\n align-items: flex-start;\n}\n.ag-label-align-top > * {\n align-self: stretch;\n}\n\n.ag-label-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n.ag-color-panel {\n width: 100%;\n display: flex;\n flex-direction: column;\n text-align: center;\n}\n\n.ag-spectrum-color {\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n cursor: default;\n}\n\n.ag-spectrum-fill {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-spectrum-val {\n cursor: pointer;\n}\n\n.ag-spectrum-dragger {\n position: absolute;\n pointer-events: none;\n cursor: pointer;\n}\n\n.ag-spectrum-hue {\n cursor: default;\n background: linear-gradient(to left, #ff0000 3%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\n}\n\n.ag-spectrum-alpha {\n cursor: default;\n}\n\n.ag-spectrum-hue-background {\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-alpha-background {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-tool {\n cursor: pointer;\n}\n\n.ag-spectrum-slider {\n position: absolute;\n pointer-events: none;\n}\n\n.ag-recent-colors {\n display: flex;\n}\n\n.ag-recent-color {\n cursor: pointer;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr {\n direction: ltr;\n}\n.ag-ltr .ag-body, .ag-ltr .ag-floating-top, .ag-ltr .ag-floating-bottom, .ag-ltr .ag-header, .ag-ltr .ag-body-viewport, .ag-ltr .ag-body-horizontal-scroll {\n flex-direction: row;\n}\n\n.ag-rtl {\n direction: rtl;\n}\n.ag-rtl .ag-body, .ag-rtl .ag-floating-top, .ag-rtl .ag-floating-bottom, .ag-rtl .ag-header, .ag-rtl .ag-body-viewport, .ag-rtl .ag-body-horizontal-scroll {\n flex-direction: row-reverse;\n}\n.ag-rtl .ag-icon-contracted,\n.ag-rtl .ag-icon-expanded,\n.ag-rtl .ag-icon-tree-closed {\n display: block;\n transform: rotate(180deg);\n}\n\n.ag-body .ag-body-viewport {\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-layout-print.ag-body {\n display: block;\n height: unset;\n}\n.ag-layout-print.ag-body-clipper {\n height: unset;\n}\n.ag-layout-print.ag-root-wrapper {\n display: inline-flex;\n}\n.ag-layout-print .ag-center-cols-clipper {\n min-width: 100%;\n}\n.ag-layout-print .ag-body-vertical-scroll {\n display: none;\n}\n.ag-layout-print .ag-body-horizontal-scroll {\n display: none;\n}\n.ag-layout-print.ag-force-vertical-scroll {\n overflow-y: visible !important;\n}\n\n@media print {\n .ag-root-wrapper.ag-layout-print {\n display: table;\n }\n .ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,\n .ag-root-wrapper.ag-layout-print .ag-root,\n .ag-root-wrapper.ag-layout-print .ag-body-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-container,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-clipper,\n .ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,\n .ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport {\n height: auto !important;\n overflow: hidden !important;\n display: block !important;\n }\n .ag-root-wrapper.ag-layout-print .ag-row, .ag-root-wrapper.ag-layout-print .ag-cell {\n break-inside: avoid;\n }\n}\n[class^=ag-], [class^=ag-]:focus, [class^=ag-]:after, [class^=ag-]:before {\n box-sizing: border-box;\n outline: none;\n}\n\n[class^=ag-]::-ms-clear {\n display: none;\n}\n\n.ag-checkbox .ag-input-wrapper,\n.ag-radio-button .ag-input-wrapper {\n overflow: visible;\n}\n\n.ag-range-field .ag-input-wrapper {\n height: 100%;\n}\n\n.ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset;\n}\n\n.ag-ltr .ag-label-align-right .ag-label {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-label-align-right .ag-label {\n margin-right: var(--ag-grid-size);\n}\n\ninput[class^=ag-] {\n margin: 0;\n background-color: var(--ag-background-color);\n}\n\ntextarea[class^=ag-],\nselect[class^=ag-] {\n background-color: var(--ag-background-color);\n}\n\ninput[class^=ag-]:not([type]),\ninput[class^=ag-][type=text],\ninput[class^=ag-][type=number],\ninput[class^=ag-][type=tel],\ninput[class^=ag-][type=date],\ninput[class^=ag-][type=datetime-local],\ntextarea[class^=ag-] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border: var(--ag-borders-input) var(--ag-input-border-color);\n}\ninput[class^=ag-]:not([type]):disabled,\ninput[class^=ag-][type=text]:disabled,\ninput[class^=ag-][type=number]:disabled,\ninput[class^=ag-][type=tel]:disabled,\ninput[class^=ag-][type=date]:disabled,\ninput[class^=ag-][type=datetime-local]:disabled,\ntextarea[class^=ag-]:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\ninput[class^=ag-]:not([type]):focus,\ninput[class^=ag-][type=text]:focus,\ninput[class^=ag-][type=number]:focus,\ninput[class^=ag-][type=tel]:focus,\ninput[class^=ag-][type=date]:focus,\ninput[class^=ag-][type=datetime-local]:focus,\ntextarea[class^=ag-]:focus {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-]:not([type]):invalid,\ninput[class^=ag-][type=text]:invalid,\ninput[class^=ag-][type=number]:invalid,\ninput[class^=ag-][type=tel]:invalid,\ninput[class^=ag-][type=date]:invalid,\ninput[class^=ag-][type=datetime-local]:invalid,\ntextarea[class^=ag-]:invalid {\n border: var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid);\n}\n\ninput[class^=ag-][type=number] {\n -moz-appearance: textfield;\n}\ninput[class^=ag-][type=number]::-webkit-outer-spin-button, input[class^=ag-][type=number]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[class^=ag-][type=range] {\n padding: 0;\n}\n\ninput[class^=ag-][type=button]:focus, button[class^=ag-]:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-drag-handle {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-list-item, .ag-virtual-list-item {\n height: var(--ag-list-item-height);\n}\n\n.ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-select-list {\n background-color: var(--ag-background-color);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-select-list-item {\n padding-left: 4px;\n padding-right: 4px;\n cursor: default;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ag-select .ag-picker-field-wrapper {\n background-color: var(--ag-background-color);\n min-height: var(--ag-list-item-height);\n cursor: default;\n}\n.ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none;\n}\n.ag-select:not(.ag-cell-editor, .ag-label-align-top) {\n height: var(--ag-list-item-height);\n}\n.ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center;\n}\n.ag-select.ag-disabled {\n opacity: 0.5;\n}\n\n.ag-rich-select {\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: calc(var(--ag-row-height) * 6.5);\n}\n\n.ag-rich-select-value {\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-ltr .ag-rich-select-value {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-value {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-ltr .ag-rich-select-value {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-rich-select-value {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-rich-select-virtual-list-item {\n cursor: default;\n height: var(--ag-list-item-height);\n}\n.ag-keyboard-focus .ag-rich-select-virtual-list-item:focus::after {\n content: none;\n}\n.ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-ltr .ag-rich-select-row {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-row {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rich-select-row-selected {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-row-drag,\n.ag-selection-checkbox,\n.ag-group-expanded,\n.ag-group-contracted {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-ltr .ag-row-drag,\n.ag-ltr .ag-selection-checkbox,\n.ag-ltr .ag-group-expanded,\n.ag-ltr .ag-group-contracted {\n margin-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-row-drag,\n.ag-rtl .ag-selection-checkbox,\n.ag-rtl .ag-group-expanded,\n.ag-rtl .ag-group-contracted {\n margin-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-group-expanded,\n.ag-group-contracted {\n cursor: pointer;\n}\n\n.ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-ltr .ag-group-child-count {\n margin-left: 2px;\n}\n.ag-rtl .ag-group-child-count {\n margin-right: 2px;\n}\n\n.ag-group-title-bar {\n background-color: var(--ag-subheader-background-color);\n padding: var(--ag-grid-size);\n}\n\n.ag-group-toolbar {\n padding: var(--ag-grid-size);\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n\n.ag-disabled-group-title-bar, .ag-disabled-group-container {\n opacity: 0.5;\n}\n\n.group-item {\n margin: calc(var(--ag-grid-size) * 0.5) 0;\n}\n\n.ag-label {\n white-space: nowrap;\n}\n.ag-ltr .ag-label {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-label {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-label-align-top .ag-label {\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-angle-select[disabled] {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n.ag-angle-select[disabled] .ag-angle-select-field {\n opacity: 0.4;\n}\n\n.ag-ltr .ag-slider-field,\n.ag-ltr .ag-angle-select-field {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-slider-field,\n.ag-rtl .ag-angle-select-field {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: var(--ag-border-color);\n background-color: var(--ag-background-color);\n}\n\n.ag-angle-select-child-circle {\n top: 4px;\n left: 12px;\n width: 6px;\n height: 6px;\n margin-left: -3px;\n margin-top: -4px;\n border-radius: 3px;\n background-color: var(--ag-secondary-foreground-color);\n}\n\n.ag-picker-field-wrapper {\n border: 1px solid;\n border-color: var(--ag-border-color);\n border-radius: 5px;\n}\n.ag-picker-field-wrapper:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-picker-field-button {\n background-color: var(--ag-background-color);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-dialog.ag-color-dialog {\n border-radius: 5px;\n}\n\n.ag-color-picker .ag-picker-field-display {\n height: var(--ag-icon-size);\n}\n\n.ag-color-panel {\n padding: var(--ag-grid-size);\n}\n\n.ag-spectrum-color {\n background-color: rgb(255, 0, 0);\n border-radius: 2px;\n}\n\n.ag-spectrum-tools {\n padding: 10px;\n}\n\n.ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-dragger {\n border-radius: 12px;\n height: 12px;\n width: 12px;\n border: 1px solid white;\n background: black;\n box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.24);\n}\n\n.ag-spectrum-hue-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-alpha-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px;\n}\n\n.ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: rgb(248, 248, 248);\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n}\n\n.ag-recent-color {\n margin: 0 3px;\n}\n.ag-recent-color:first-child {\n margin-left: 0;\n}\n.ag-recent-color:last-child {\n margin-right: 0;\n}\n\n.ag-dnd-ghost {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n overflow: hidden;\n text-overflow: ellipsis;\n border: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height) !important;\n line-height: var(--ag-header-height);\n margin: 0;\n padding: 0 calc(var(--ag-grid-size) * 2);\n transform: translateY(calc(var(--ag-grid-size) * 2));\n}\n\n.ag-dnd-ghost-icon {\n margin-right: var(--ag-grid-size);\n color: var(--ag-foreground-color);\n}\n\n.ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: var(--ag-popup-shadow);\n}\n\n.ag-dragging-range-handle .ag-dialog,\n.ag-dragging-fill-handle .ag-dialog {\n opacity: 0.7;\n pointer-events: none;\n}\n\n.ag-dialog {\n border-radius: var(--ag-border-radius);\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-panel {\n background-color: var(--ag-background-color);\n}\n\n.ag-panel-title-bar {\n background-color: var(--ag-header-background-color);\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n padding: var(--ag-grid-size) var(--ag-cell-horizontal-padding);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-panel-title-bar-button {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-panel-title-bar-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-tooltip {\n background-color: var(--ag-tooltip-background-color);\n color: var(--ag-foreground-color);\n padding: var(--ag-grid-size);\n border: var(--ag-borders) var(--ag-border-color);\n border-radius: var(--ag-card-radius);\n transition: opacity 1s;\n white-space: normal;\n}\n.ag-tooltip.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-tooltip-custom {\n transition: opacity 1s;\n}\n.ag-tooltip-custom.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: calc(1 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: calc(1 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: calc(2 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: calc(2 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: calc(3 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: calc(3 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: calc(4 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: calc(4 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: calc(5 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: calc(5 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: calc(6 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: calc(6 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: calc(7 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: calc(7 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: calc(8 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: calc(8 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: calc(9 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: calc(9 * var(--ag-column-select-indent-size));\n}\n\n.ag-column-select-header-icon {\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header-icon:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-ltr .ag-column-group-icons:not(:last-child),\n.ag-ltr .ag-column-select-header-icon:not(:last-child),\n.ag-ltr .ag-column-select-header-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-ltr .ag-column-select-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: var(--ag-widget-horizontal-spacing);\n}\n.ag-rtl .ag-column-group-icons:not(:last-child),\n.ag-rtl .ag-column-select-header-icon:not(:last-child),\n.ag-rtl .ag-column-select-header-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-rtl .ag-column-select-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: var(--ag-widget-horizontal-spacing);\n}\n\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-column-group:not(:last-child),\n.ag-column-select-column:not(:last-child) {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-column-select-column-readonly,\n.ag-column-select-column-group-readonly {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n\n.ag-ltr .ag-column-select-add-group-indent {\n margin-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-column-select-add-group-indent {\n margin-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-column-select-virtual-list-viewport {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) 0px;\n}\n\n.ag-column-select-virtual-list-item {\n padding: 0 var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-rtl {\n text-align: right;\n}\n\n.ag-root-wrapper {\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: calc(1 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: calc(1 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: calc(2 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: calc(2 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: calc(3 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: calc(3 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: calc(4 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: calc(4 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: calc(5 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: calc(5 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: calc(6 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: calc(6 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: calc(7 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: calc(7 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: calc(8 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: calc(8 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: calc(9 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: calc(9 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n\n.ag-ltr .ag-row-group-indent-10 {\n padding-left: calc(10 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-10 {\n padding-right: calc(10 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n\n.ag-ltr .ag-row-group-indent-11 {\n padding-left: calc(11 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-11 {\n padding-right: calc(11 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n\n.ag-ltr .ag-row-group-indent-12 {\n padding-left: calc(12 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-12 {\n padding-right: calc(12 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n\n.ag-ltr .ag-row-group-indent-13 {\n padding-left: calc(13 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-13 {\n padding-right: calc(13 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n\n.ag-ltr .ag-row-group-indent-14 {\n padding-left: calc(14 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-14 {\n padding-right: calc(14 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n\n.ag-ltr .ag-row-group-indent-15 {\n padding-left: calc(15 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-15 {\n padding-right: calc(15 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n\n.ag-ltr .ag-row-group-indent-16 {\n padding-left: calc(16 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-16 {\n padding-right: calc(16 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n\n.ag-ltr .ag-row-group-indent-17 {\n padding-left: calc(17 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-17 {\n padding-right: calc(17 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n\n.ag-ltr .ag-row-group-indent-18 {\n padding-left: calc(18 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-18 {\n padding-right: calc(18 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n\n.ag-ltr .ag-row-group-indent-19 {\n padding-left: calc(19 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-19 {\n padding-right: calc(19 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n\n.ag-ltr .ag-row-group-indent-20 {\n padding-left: calc(20 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-20 {\n padding-right: calc(20 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n\n.ag-ltr .ag-row-group-indent-21 {\n padding-left: calc(21 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-21 {\n padding-right: calc(21 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n\n.ag-ltr .ag-row-group-indent-22 {\n padding-left: calc(22 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-22 {\n padding-right: calc(22 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n\n.ag-ltr .ag-row-group-indent-23 {\n padding-left: calc(23 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-23 {\n padding-right: calc(23 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n\n.ag-ltr .ag-row-group-indent-24 {\n padding-left: calc(24 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-24 {\n padding-right: calc(24 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n\n.ag-ltr .ag-row-group-indent-25 {\n padding-left: calc(25 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-25 {\n padding-right: calc(25 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n\n.ag-ltr .ag-row-group-indent-26 {\n padding-left: calc(26 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-26 {\n padding-right: calc(26 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n\n.ag-ltr .ag-row-group-indent-27 {\n padding-left: calc(27 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-27 {\n padding-right: calc(27 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n\n.ag-ltr .ag-row-group-indent-28 {\n padding-left: calc(28 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-28 {\n padding-right: calc(28 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n\n.ag-ltr .ag-row-group-indent-29 {\n padding-left: calc(29 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-29 {\n padding-right: calc(29 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n\n.ag-ltr .ag-row-group-indent-30 {\n padding-left: calc(30 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-30 {\n padding-right: calc(30 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n\n.ag-ltr .ag-row-group-indent-31 {\n padding-left: calc(31 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-31 {\n padding-right: calc(31 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n\n.ag-ltr .ag-row-group-indent-32 {\n padding-left: calc(32 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-32 {\n padding-right: calc(32 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n\n.ag-ltr .ag-row-group-indent-33 {\n padding-left: calc(33 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-33 {\n padding-right: calc(33 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n\n.ag-ltr .ag-row-group-indent-34 {\n padding-left: calc(34 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-34 {\n padding-right: calc(34 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n\n.ag-ltr .ag-row-group-indent-35 {\n padding-left: calc(35 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-35 {\n padding-right: calc(35 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n\n.ag-ltr .ag-row-group-indent-36 {\n padding-left: calc(36 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-36 {\n padding-right: calc(36 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n\n.ag-ltr .ag-row-group-indent-37 {\n padding-left: calc(37 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-37 {\n padding-right: calc(37 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n\n.ag-ltr .ag-row-group-indent-38 {\n padding-left: calc(38 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-38 {\n padding-right: calc(38 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n\n.ag-ltr .ag-row-group-indent-39 {\n padding-left: calc(39 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-39 {\n padding-right: calc(39 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n\n.ag-ltr .ag-row-group-indent-40 {\n padding-left: calc(40 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-40 {\n padding-right: calc(40 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n\n.ag-ltr .ag-row-group-indent-41 {\n padding-left: calc(41 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-41 {\n padding-right: calc(41 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n\n.ag-ltr .ag-row-group-indent-42 {\n padding-left: calc(42 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-42 {\n padding-right: calc(42 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n\n.ag-ltr .ag-row-group-indent-43 {\n padding-left: calc(43 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-43 {\n padding-right: calc(43 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n\n.ag-ltr .ag-row-group-indent-44 {\n padding-left: calc(44 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-44 {\n padding-right: calc(44 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n\n.ag-ltr .ag-row-group-indent-45 {\n padding-left: calc(45 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-45 {\n padding-right: calc(45 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n\n.ag-ltr .ag-row-group-indent-46 {\n padding-left: calc(46 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-46 {\n padding-right: calc(46 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n\n.ag-ltr .ag-row-group-indent-47 {\n padding-left: calc(47 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-47 {\n padding-right: calc(47 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n\n.ag-ltr .ag-row-group-indent-48 {\n padding-left: calc(48 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-48 {\n padding-right: calc(48 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n\n.ag-ltr .ag-row-group-indent-49 {\n padding-left: calc(49 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-49 {\n padding-right: calc(49 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n\n.ag-ltr .ag-row-group-indent-50 {\n padding-left: calc(50 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-50 {\n padding-right: calc(50 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n\n.ag-ltr .ag-row-group-indent-51 {\n padding-left: calc(51 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-51 {\n padding-right: calc(51 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n\n.ag-ltr .ag-row-group-indent-52 {\n padding-left: calc(52 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-52 {\n padding-right: calc(52 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n\n.ag-ltr .ag-row-group-indent-53 {\n padding-left: calc(53 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-53 {\n padding-right: calc(53 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n\n.ag-ltr .ag-row-group-indent-54 {\n padding-left: calc(54 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-54 {\n padding-right: calc(54 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n\n.ag-ltr .ag-row-group-indent-55 {\n padding-left: calc(55 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-55 {\n padding-right: calc(55 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n\n.ag-ltr .ag-row-group-indent-56 {\n padding-left: calc(56 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-56 {\n padding-right: calc(56 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n\n.ag-ltr .ag-row-group-indent-57 {\n padding-left: calc(57 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-57 {\n padding-right: calc(57 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n\n.ag-ltr .ag-row-group-indent-58 {\n padding-left: calc(58 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-58 {\n padding-right: calc(58 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n\n.ag-ltr .ag-row-group-indent-59 {\n padding-left: calc(59 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-59 {\n padding-right: calc(59 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n\n.ag-ltr .ag-row-group-indent-60 {\n padding-left: calc(60 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-60 {\n padding-right: calc(60 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n\n.ag-ltr .ag-row-group-indent-61 {\n padding-left: calc(61 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-61 {\n padding-right: calc(61 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n\n.ag-ltr .ag-row-group-indent-62 {\n padding-left: calc(62 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-62 {\n padding-right: calc(62 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n\n.ag-ltr .ag-row-group-indent-63 {\n padding-left: calc(63 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-63 {\n padding-right: calc(63 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n\n.ag-ltr .ag-row-group-indent-64 {\n padding-left: calc(64 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-64 {\n padding-right: calc(64 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n\n.ag-ltr .ag-row-group-indent-65 {\n padding-left: calc(65 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-65 {\n padding-right: calc(65 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n\n.ag-ltr .ag-row-group-indent-66 {\n padding-left: calc(66 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-66 {\n padding-right: calc(66 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n\n.ag-ltr .ag-row-group-indent-67 {\n padding-left: calc(67 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-67 {\n padding-right: calc(67 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n\n.ag-ltr .ag-row-group-indent-68 {\n padding-left: calc(68 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-68 {\n padding-right: calc(68 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n\n.ag-ltr .ag-row-group-indent-69 {\n padding-left: calc(69 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-69 {\n padding-right: calc(69 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n\n.ag-ltr .ag-row-group-indent-70 {\n padding-left: calc(70 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-70 {\n padding-right: calc(70 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n\n.ag-ltr .ag-row-group-indent-71 {\n padding-left: calc(71 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-71 {\n padding-right: calc(71 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n\n.ag-ltr .ag-row-group-indent-72 {\n padding-left: calc(72 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-72 {\n padding-right: calc(72 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n\n.ag-ltr .ag-row-group-indent-73 {\n padding-left: calc(73 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-73 {\n padding-right: calc(73 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n\n.ag-ltr .ag-row-group-indent-74 {\n padding-left: calc(74 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-74 {\n padding-right: calc(74 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n\n.ag-ltr .ag-row-group-indent-75 {\n padding-left: calc(75 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-75 {\n padding-right: calc(75 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n\n.ag-ltr .ag-row-group-indent-76 {\n padding-left: calc(76 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-76 {\n padding-right: calc(76 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n\n.ag-ltr .ag-row-group-indent-77 {\n padding-left: calc(77 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-77 {\n padding-right: calc(77 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n\n.ag-ltr .ag-row-group-indent-78 {\n padding-left: calc(78 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-78 {\n padding-right: calc(78 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n\n.ag-ltr .ag-row-group-indent-79 {\n padding-left: calc(79 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-79 {\n padding-right: calc(79 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n\n.ag-ltr .ag-row-group-indent-80 {\n padding-left: calc(80 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-80 {\n padding-right: calc(80 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n\n.ag-ltr .ag-row-group-indent-81 {\n padding-left: calc(81 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-81 {\n padding-right: calc(81 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n\n.ag-ltr .ag-row-group-indent-82 {\n padding-left: calc(82 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-82 {\n padding-right: calc(82 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n\n.ag-ltr .ag-row-group-indent-83 {\n padding-left: calc(83 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-83 {\n padding-right: calc(83 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n\n.ag-ltr .ag-row-group-indent-84 {\n padding-left: calc(84 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-84 {\n padding-right: calc(84 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n\n.ag-ltr .ag-row-group-indent-85 {\n padding-left: calc(85 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-85 {\n padding-right: calc(85 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n\n.ag-ltr .ag-row-group-indent-86 {\n padding-left: calc(86 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-86 {\n padding-right: calc(86 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n\n.ag-ltr .ag-row-group-indent-87 {\n padding-left: calc(87 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-87 {\n padding-right: calc(87 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n\n.ag-ltr .ag-row-group-indent-88 {\n padding-left: calc(88 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-88 {\n padding-right: calc(88 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n\n.ag-ltr .ag-row-group-indent-89 {\n padding-left: calc(89 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-89 {\n padding-right: calc(89 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n\n.ag-ltr .ag-row-group-indent-90 {\n padding-left: calc(90 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-90 {\n padding-right: calc(90 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n\n.ag-ltr .ag-row-group-indent-91 {\n padding-left: calc(91 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-91 {\n padding-right: calc(91 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n\n.ag-ltr .ag-row-group-indent-92 {\n padding-left: calc(92 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-92 {\n padding-right: calc(92 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n\n.ag-ltr .ag-row-group-indent-93 {\n padding-left: calc(93 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-93 {\n padding-right: calc(93 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n\n.ag-ltr .ag-row-group-indent-94 {\n padding-left: calc(94 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-94 {\n padding-right: calc(94 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n\n.ag-ltr .ag-row-group-indent-95 {\n padding-left: calc(95 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-95 {\n padding-right: calc(95 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n\n.ag-ltr .ag-row-group-indent-96 {\n padding-left: calc(96 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-96 {\n padding-right: calc(96 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n\n.ag-ltr .ag-row-group-indent-97 {\n padding-left: calc(97 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-97 {\n padding-right: calc(97 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n\n.ag-ltr .ag-row-group-indent-98 {\n padding-left: calc(98 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-98 {\n padding-right: calc(98 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n\n.ag-ltr .ag-row-group-indent-99 {\n padding-left: calc(99 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-99 {\n padding-right: calc(99 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row-group-leaf-indent {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-group-leaf-indent {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-value-change-delta {\n padding-right: 2px;\n}\n\n.ag-value-change-delta-up {\n color: var(--ag-value-change-delta-up-color);\n}\n\n.ag-value-change-delta-down {\n color: var(--ag-value-change-delta-down-color);\n}\n\n.ag-value-change-value {\n background-color: transparent;\n border-radius: 1px;\n padding-left: 1px;\n padding-right: 1px;\n transition: background-color 1s;\n}\n\n.ag-value-change-value-highlight {\n background-color: var(--ag-value-change-value-highlight-background-color);\n transition: background-color 0.1s;\n}\n\n.ag-cell-data-changed {\n background-color: var(--ag-value-change-value-highlight-background-color) !important;\n}\n\n.ag-cell-data-changed-animation {\n background-color: transparent;\n}\n\n.ag-cell-highlight {\n background-color: var(--ag-range-selection-highlight-color) !important;\n}\n\n.ag-row {\n height: var(--ag-row-height);\n background-color: var(--ag-background-color);\n color: var(--ag-data-color);\n border-bottom: var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width);\n}\n\n.ag-row-highlight-above::after, .ag-row-highlight-below::after {\n content: \"\";\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n left: 1px;\n}\n\n.ag-row-highlight-above::after {\n top: -1px;\n}\n\n.ag-row-highlight-above.ag-row-first::after {\n top: 0;\n}\n\n.ag-row-highlight-below::after {\n bottom: 0px;\n}\n\n.ag-row-odd {\n background-color: var(--ag-odd-row-background-color);\n}\n\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-row-selected::before {\n content: \"\";\n background-color: var(--ag-selected-row-background-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-row-hover:not(.ag-full-width-row)::before,\n.ag-row-hover.ag-full-width-row.ag-row-group::before {\n content: \"\";\n background-color: var(--ag-row-hover-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n}\n\n.ag-row-hover.ag-full-width-row.ag-row-group > * {\n position: relative;\n}\n\n.ag-row-hover.ag-row-selected::before {\n background-color: var(--ag-row-hover-color);\n background-image: linear-gradient(var(--ag-selected-row-background-color), var(--ag-selected-row-background-color));\n}\n\n.ag-column-hover {\n background-color: var(--ag-column-hover-color);\n}\n\n.ag-ltr .ag-right-aligned-cell {\n text-align: right;\n}\n.ag-rtl .ag-right-aligned-cell {\n text-align: left;\n}\n\n.ag-ltr .ag-right-aligned-cell .ag-cell-value,\n.ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto;\n}\n.ag-rtl .ag-right-aligned-cell .ag-cell-value,\n.ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto;\n}\n\n.ag-cell, .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n border: 1px solid transparent;\n line-height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.ag-row > .ag-cell-wrapper {\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n}\n\n.ag-row-dragging {\n cursor: move;\n opacity: 0.5;\n}\n\n.ag-cell-inline-editing {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-popup-editor {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background-color: var(--ag-control-panel-background-color);\n padding: 0;\n}\n\n.ag-large-text-input {\n height: auto;\n padding: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rtl .ag-large-text-input textarea {\n resize: none;\n}\n\n.ag-details-row {\n padding: calc(var(--ag-grid-size) * 5);\n background-color: var(--ag-background-color);\n}\n\n.ag-layout-auto-height .ag-center-cols-clipper, .ag-layout-auto-height .ag-center-cols-container, .ag-layout-print .ag-center-cols-clipper, .ag-layout-print .ag-center-cols-container {\n min-height: 50px;\n}\n\n.ag-overlay-loading-wrapper {\n background-color: var(--ag-modal-overlay-background-color);\n}\n\n.ag-overlay-loading-center {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n}\n\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px;\n}\n\n.ag-loading {\n display: flex;\n height: 100%;\n align-items: center;\n}\n.ag-ltr .ag-loading {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-loading {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-loading-icon {\n padding-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-loading-icon {\n padding-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-icon-loading {\n animation-name: spin;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.ag-floating-top {\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-floating-bottom {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-cell {\n border-right: var(--ag-cell-horizontal-border);\n}\n.ag-rtl .ag-cell {\n border-left: var(--ag-cell-horizontal-border);\n}\n.ag-ltr .ag-cell {\n border-right-width: 1px;\n}\n.ag-rtl .ag-cell {\n border-left-width: 1px;\n}\n\n.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell-range-selected:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: var(--ag-range-selection-chart-background-color) !important;\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category {\n background-color: var(--ag-range-selection-chart-category-background-color) !important;\n}\n\n.ag-cell-range-selected-1:not(.ag-cell-focus),\n.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n\n.ag-cell-range-selected-2:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: var(--ag-range-selection-background-color-2);\n}\n\n.ag-cell-range-selected-3:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: var(--ag-range-selection-background-color-3);\n}\n\n.ag-cell-range-selected-4:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: var(--ag-range-selection-background-color-4);\n}\n\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: var(--ag-range-selection-border-color);\n border-top-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: var(--ag-range-selection-border-color);\n border-right-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: var(--ag-range-selection-border-color);\n border-bottom-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: var(--ag-range-selection-border-color);\n border-left-style: var(--ag-range-selection-border-style);\n}\n\n.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-ltr .ag-cell-range-single-cell,\n.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-rtl .ag-cell-range-single-cell,\n.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: var(--ag-range-selection-border-color);\n border-style: var(--ag-range-selection-border-style);\n outline: initial;\n}\n\n.ag-cell.ag-selection-fill-top,\n.ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-right,\n.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-right,\n.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-cell.ag-selection-fill-bottom,\n.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-left,\n.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-left,\n.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-fill-handle, .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-ltr .ag-fill-handle, .ag-ltr .ag-range-handle {\n right: -1px;\n}\n.ag-rtl .ag-fill-handle, .ag-rtl .ag-range-handle {\n left: -1px;\n}\n\n.ag-fill-handle {\n cursor: cell;\n}\n\n.ag-range-handle {\n cursor: nwse-resize;\n}\n\n.ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n\n.ag-menu {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n}\n\n.ag-menu-list {\n cursor: default;\n padding: var(--ag-grid-size) 0;\n}\n\n.ag-menu-separator {\n height: calc(var(--ag-grid-size) * 2 + 1px);\n}\n\n.ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-menu-option-active, .ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-menu-option-part, .ag-compact-menu-option-part {\n line-height: var(--ag-icon-size);\n padding: calc(var(--ag-grid-size) + 2px) 0;\n}\n\n.ag-menu-option-disabled, .ag-compact-menu-option-disabled {\n opacity: 0.5;\n}\n\n.ag-menu-option-icon, .ag-compact-menu-option-icon {\n width: var(--ag-icon-size);\n}\n.ag-ltr .ag-menu-option-icon, .ag-ltr .ag-compact-menu-option-icon {\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-menu-option-icon, .ag-rtl .ag-compact-menu-option-icon {\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-menu-option-text, .ag-compact-menu-option-text {\n padding-left: calc(var(--ag-grid-size) * 2);\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-menu-option-shortcut, .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-menu-option-shortcut, .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-menu-option-popup-pointer, .ag-compact-menu-option-popup-pointer {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-tabs {\n min-width: var(--ag-tab-min-width);\n}\n\n.ag-tabs-header {\n width: 100%;\n display: flex;\n}\n\n.ag-tab {\n border-bottom: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-bottom var(--ag-selected-tab-underline-transition-speed);\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-tab:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-tab:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-tab-selected {\n border-bottom-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-menu-header {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-filter-separator {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-filter-select .ag-picker-field-wrapper {\n width: 0;\n}\n\n.ag-filter-condition-operator {\n height: 17px;\n}\n\n.ag-ltr .ag-filter-condition-operator-or {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-condition-operator-or {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-set-filter-select-all {\n padding-top: var(--ag-widget-container-vertical-padding);\n}\n\n.ag-set-filter-list, .ag-filter-no-matches {\n height: calc(var(--ag-list-item-height) * 6);\n}\n\n.ag-set-filter-tree-list {\n height: calc(var(--ag-list-item-height) * 10);\n}\n\n.ag-set-filter-filter {\n margin-top: var(--ag-widget-container-vertical-padding);\n margin-left: var(--ag-widget-container-horizontal-padding);\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-to {\n margin-top: var(--ag-widget-vertical-spacing);\n}\n\n.ag-mini-filter {\n margin: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-set-filter-item {\n margin: 0px var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-ltr .ag-set-filter-add-group-indent {\n margin-left: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-set-filter-add-group-indent {\n margin-right: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: calc(1 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: calc(1 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: calc(2 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: calc(2 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: calc(3 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: calc(3 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: calc(4 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: calc(4 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: calc(5 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: calc(5 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: calc(6 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: calc(6 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: calc(7 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: calc(7 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: calc(8 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: calc(8 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: calc(9 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: calc(9 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-group-icons {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-set-filter-group-icons {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-apply-panel {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-filter-apply-panel-button {\n line-height: 1.5;\n}\n.ag-ltr .ag-filter-apply-panel-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-apply-panel-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-simple-filter-body-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n overflow-y: auto;\n min-height: calc(var(--ag-list-item-height) + var(--ag-widget-container-vertical-padding) + var(--ag-widget-vertical-spacing));\n}\n.ag-simple-filter-body-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n.ag-simple-filter-body-wrapper .ag-resizer-wrapper {\n margin: 0;\n}\n\n.ag-menu:not(.ag-tabs) .ag-filter .ag-simple-filter-body-wrapper,\n.ag-menu:not(.ag-tabs) .ag-filter > *:not(.ag-filter-wrapper) {\n min-width: calc(var(--ag-menu-min-width) - 2px);\n}\n\n.ag-filter-no-matches {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-multi-filter-menu-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-multi-filter-group-title-bar {\n padding: calc(var(--ag-grid-size) * 2) var(--ag-grid-size);\n background-color: transparent;\n}\n\n.ag-group-filter-field-select-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-group-filter-field-select-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-side-bar {\n position: relative;\n}\n\n.ag-tool-panel-wrapper {\n width: var(--ag-side-bar-panel-width);\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-side-buttons {\n padding-top: calc(var(--ag-grid-size) * 4);\n width: calc(var(--ag-icon-size) + 4px);\n position: relative;\n color: var(--ag-foreground-color);\n overflow: hidden;\n}\n\nbutton.ag-side-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n background: transparent;\n padding: calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;\n width: 100%;\n margin: 0;\n min-height: calc(var(--ag-grid-size) * 18);\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: var(--ag-borders-side-button) var(--ag-border-color);\n border-bottom: var(--ag-borders-side-button) var(--ag-border-color);\n}\nbutton.ag-side-button-button:focus {\n box-shadow: none;\n}\n\n.ag-keyboard-focus .ag-side-button-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-side-button-button:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-selected button.ag-side-button-button {\n background-color: var(--ag-side-button-selected-background-color);\n}\n\n.ag-side-button-icon-wrapper {\n margin-bottom: 3px;\n}\n\n.ag-ltr .ag-side-bar-left,\n.ag-rtl .ag-side-bar-right {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-right var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-rtl .ag-side-bar-left,\n.ag-ltr .ag-side-bar-right {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-left var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 6);\n}\n\n.ag-ltr .ag-filter-toolpanel-header,\n.ag-ltr .ag-filter-toolpanel-search {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-header,\n.ag-rtl .ag-filter-toolpanel-search {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: var(--ag-icon-font-code-filter, \"\\f115\");\n position: absolute;\n}\n.ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 8);\n}\n\n.ag-filter-toolpanel-group-item {\n margin-top: calc(var(--ag-grid-size) * 0.5);\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-filter-toolpanel-search {\n height: var(--ag-header-height);\n}\n\n.ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0 {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-ltr .ag-filter-toolpanel-expand,\n.ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-expand,\n.ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-instance-filter {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n border-top: var(--ag-borders) var(--ag-border-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-set-filter-group-icons {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-pivot-mode-panel {\n min-height: var(--ag-header-height);\n height: var(--ag-header-height);\n display: flex;\n}\n\n.ag-pivot-mode-select {\n display: flex;\n align-items: center;\n}\n.ag-ltr .ag-pivot-mode-select {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-pivot-mode-select {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-keyboard-focus .ag-column-select-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-header {\n height: var(--ag-header-height);\n align-items: center;\n padding: 0 var(--ag-widget-container-horizontal-padding);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-panel-column-select {\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-group-icons,\n.ag-column-select-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-select-list .ag-list-item-hovered::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-column-select-list .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-column-select-list .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-header {\n background-color: var(--ag-header-background-color);\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-row {\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n}\n\n.ag-pinned-right-header {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-pinned-left-header {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-header-cell,\n.ag-header-group-cell {\n padding-left: var(--ag-cell-horizontal-padding);\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-header-cell.ag-header-cell-moving,\n.ag-header-group-cell.ag-header-cell-moving {\n background-color: var(--ag-header-cell-moving-background-color);\n}\n\n.ag-header-cell.ag-header-span-height::after,\n.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {\n height: calc(100% - var(--ag-grid-size) * 4);\n top: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-keyboard-focus .ag-header-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n.ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-group-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-header-expand-icon {\n cursor: pointer;\n}\n.ag-ltr .ag-header-expand-icon {\n padding-left: 4px;\n}\n.ag-rtl .ag-header-expand-icon {\n padding-right: 4px;\n}\n\n.ag-header-row:not(:first-child) .ag-header-cell:not(.ag-header-span-height.ag-header-span-total),\n.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover, .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-group-cell:first-of-type.ag-column-resizing,\n.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing {\n background-color: var(--ag-header-cell-hover-background-color);\n}\n\n.ag-header-cell::after,\n.ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-separator-display);\n width: var(--ag-header-column-separator-width);\n height: var(--ag-header-column-separator-height);\n top: calc(50% - var(--ag-header-column-separator-height) * 0.5);\n background-color: var(--ag-header-column-separator-color);\n}\n.ag-ltr .ag-header-cell::after,\n.ag-ltr .ag-header-group-cell::after {\n right: 0;\n}\n.ag-rtl .ag-header-cell::after,\n.ag-rtl .ag-header-group-cell::after {\n left: 0;\n}\n\n.ag-header-cell-resize {\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-resize::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-resize-handle-display);\n width: var(--ag-header-column-resize-handle-width);\n height: var(--ag-header-column-resize-handle-height);\n top: calc(50% - var(--ag-header-column-resize-handle-height) * 0.5);\n background-color: var(--ag-header-column-resize-handle-color);\n}\n\n.ag-header-cell.ag-header-span-height::after,\n.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {\n height: calc(100% - var(--ag-grid-size) * 4);\n top: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-header-viewport .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n.ag-rtl .ag-header-viewport .ag-header-cell-resize::after {\n right: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-left-header .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-right-header .ag-header-cell-resize::after {\n left: 50%;\n}\n\n.ag-ltr .ag-header-select-all {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-header-select-all {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-floating-filter-button {\n margin-left: calc(var(--ag-grid-size) * 3);\n}\n.ag-rtl .ag-floating-filter-button {\n margin-right: calc(var(--ag-grid-size) * 3);\n}\n\n.ag-floating-filter-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n appearance: none;\n background: transparent;\n border: none;\n height: var(--ag-icon-size);\n padding: 0;\n width: var(--ag-icon-size);\n}\n\n.ag-filter-loading {\n background-color: var(--ag-control-panel-background-color);\n height: 100%;\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n position: absolute;\n width: 100%;\n z-index: 1;\n}\n\n.ag-paging-panel {\n border-top: 1px solid;\n border-top-color: var(--ag-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height);\n}\n.ag-paging-panel > * {\n margin: 0 var(--ag-cell-horizontal-padding);\n}\n\n.ag-paging-button {\n cursor: pointer;\n}\n\n.ag-paging-button.ag-disabled {\n cursor: default;\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-keyboard-focus .ag-paging-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-paging-button:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-paging-button, .ag-paging-description {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-status-bar {\n border-top: var(--ag-borders) var(--ag-border-color);\n color: var(--ag-disabled-foreground-color);\n padding-right: calc(var(--ag-grid-size) * 4);\n padding-left: calc(var(--ag-grid-size) * 4);\n line-height: 1.5;\n}\n\n.ag-status-name-value-value {\n color: var(--ag-foreground-color);\n}\n\n.ag-status-bar-center {\n text-align: center;\n}\n\n.ag-status-name-value {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n padding-top: calc(var(--ag-grid-size) * 2);\n padding-bottom: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell {\n background: var(--ag-chip-background-color);\n border-radius: calc(var(--ag-grid-size) * 4);\n height: calc(var(--ag-grid-size) * 4);\n padding: 0 calc(var(--ag-grid-size) * 0.5);\n border: 1px solid transparent;\n}\n\n.ag-keyboard-focus .ag-column-drop-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-drop-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 2px;\n left: 2px;\n display: block;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-drop-cell-text {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-column-drop-cell-button {\n min-width: calc(var(--ag-grid-size) * 4);\n margin: 0 calc(var(--ag-grid-size) * 0.5);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-cell-drag-handle {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell-ghost {\n opacity: 0.5;\n}\n\n.ag-column-drop-horizontal {\n background-color: var(--ag-control-panel-background-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-column-drop-horizontal {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-column-drop-horizontal-cell-separator {\n margin: 0 var(--ag-grid-size);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-horizontal-empty-message {\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-column-drop-vertical-list {\n padding-bottom: var(--ag-grid-size);\n padding-right: var(--ag-grid-size);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-cell {\n margin-top: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical {\n min-height: 50px;\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n\n.ag-column-drop-vertical-icon {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-empty-message {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n color: var(--ag-disabled-foreground-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-select-agg-func-popup {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background: var(--ag-background-color);\n height: calc(var(--ag-grid-size) * 5 * 3.5);\n padding: 0;\n}\n\n.ag-select-agg-func-virtual-list-item {\n cursor: default;\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-select-agg-func-virtual-list-item:hover {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-sort-indicator-container {\n display: flex;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-sort-indicator-icon {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-chart {\n position: relative;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-chart-components-wrapper {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-chart-title-edit {\n position: absolute;\n display: none;\n top: 0;\n left: 0;\n text-align: center;\n}\n\n.ag-chart-title-edit.currently-editing {\n display: inline-block;\n}\n\n.ag-chart-canvas-wrapper {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-charts-canvas {\n display: block;\n}\n\n.ag-chart-menu {\n position: absolute;\n top: 10px;\n width: 24px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.ag-ltr .ag-chart-menu {\n right: 20px;\n}\n.ag-rtl .ag-chart-menu {\n left: 20px;\n}\n\n.ag-chart-docked-container {\n position: relative;\n width: 0;\n min-width: 0;\n transition: min-width 0.4s;\n}\n\n.ag-chart-menu-hidden ~ .ag-chart-docked-container {\n max-width: 0;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu-header {\n flex: none;\n user-select: none;\n cursor: default;\n}\n\n.ag-chart-tabbed-menu-body {\n display: flex;\n flex: 1 1 auto;\n align-items: stretch;\n overflow: hidden;\n}\n\n.ag-chart-tab {\n width: 100%;\n overflow: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings {\n overflow-x: hidden;\n}\n\n.ag-chart-settings-wrapper {\n position: relative;\n flex-direction: column;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.ag-chart-settings-nav-bar {\n display: flex;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 10px;\n user-select: none;\n}\n\n.ag-chart-settings-card-selector {\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex: 1 1 auto;\n height: 100%;\n padding: 0 10px;\n}\n\n.ag-chart-settings-card-item {\n cursor: pointer;\n width: 10px;\n height: 10px;\n background-color: #000;\n position: relative;\n}\n.ag-chart-settings-card-item.ag-not-selected {\n opacity: 0.2;\n}\n.ag-chart-settings-card-item::before {\n content: \" \";\n display: block;\n position: absolute;\n background-color: transparent;\n left: 50%;\n top: 50%;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n}\n\n.ag-chart-settings-prev,\n.ag-chart-settings-next {\n position: relative;\n flex: none;\n}\n\n.ag-chart-settings-prev-button,\n.ag-chart-settings-next-button {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n\n.ag-chart-settings-mini-charts-container {\n position: relative;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings-mini-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n}\n.ag-chart-settings-mini-wrapper.ag-animating {\n transition: left 0.3s;\n transition-timing-function: ease-in-out;\n}\n\n.ag-chart-mini-thumbnail {\n cursor: pointer;\n}\n\n.ag-chart-mini-thumbnail-canvas {\n display: block;\n}\n\n.ag-chart-data-wrapper,\n.ag-chart-format-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n user-select: none;\n}\n\n.ag-chart-data-wrapper {\n height: 100%;\n overflow-y: auto;\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-empty-text {\n display: flex;\n top: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.ag-chart .ag-chart-menu {\n display: none;\n}\n\n.ag-chart-menu-hidden:hover .ag-chart-menu {\n display: block;\n}\n\n.ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n display: flex;\n flex-direction: row;\n overflow: auto;\n top: 5px;\n gap: calc(var(--ag-grid-size) * 3 - 8px);\n width: auto;\n}\n.ag-ltr .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n right: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: right;\n}\n.ag-rtl .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n left: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: left;\n}\n\n.ag-chart-menu-close {\n display: none;\n}\n\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n position: absolute;\n top: 50%;\n transition: transform 0.33s ease-in-out;\n padding: 0;\n display: block;\n cursor: pointer;\n border: none;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n left: 0px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close .ag-icon {\n padding: 14px 5px 14px 2px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n content: \"\";\n position: absolute;\n top: -40px;\n bottom: -40px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: 0px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: -10px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: -10px;\n}\n.ag-chart-tool-panel-button-enable .ag-icon-menu {\n display: none;\n}\n\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(3px, -50%);\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-ltr .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(5px, -50%);\n}\n\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(-3px, -50%);\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-rtl .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(-5px, -50%);\n}\n\n.ag-charts-font-size-color {\n display: flex;\n align-self: stretch;\n justify-content: space-between;\n}\n\n.ag-charts-data-group-item {\n position: relative;\n}\n\n.ag-chart-menu {\n border-radius: var(--ag-card-radius);\n background: var(--ag-background-color);\n}\n\n.ag-chart-menu-icon {\n opacity: 0.5;\n line-height: 24px;\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin: 2px 0;\n cursor: pointer;\n border-radius: var(--ag-card-radius);\n color: var(--ag-secondary-foreground-color);\n}\n.ag-chart-menu-icon:hover {\n opacity: 1;\n}\n\n.ag-chart-mini-thumbnail {\n border: 1px solid var(--ag-secondary-border-color);\n border-radius: 5px;\n margin: 5px;\n}\n.ag-chart-mini-thumbnail:nth-last-child(3), .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto;\n}\n.ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0;\n}\n.ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0;\n}\n.ag-chart-mini-thumbnail.ag-selected {\n border-color: var(--ag-minichart-selected-chart-color);\n}\n\n.ag-chart-settings-card-item {\n background: var(--ag-foreground-color);\n width: 8px;\n height: 8px;\n border-radius: 4px;\n}\n.ag-chart-settings-card-item.ag-selected {\n background-color: var(--ag-minichart-selected-page-color);\n}\n\n.ag-chart-data-column-drag-handle {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-charts-settings-group-title-bar,\n.ag-charts-data-group-title-bar,\n.ag-charts-format-top-level-group-title-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-charts-settings-group-container {\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-data-group-container {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) var(--ag-widget-container-horizontal-padding);\n}\n.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group) {\n height: var(--ag-list-item-height);\n}\n.ag-charts-data-group-container .ag-list-item-hovered::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-charts-data-group-container .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-charts-data-group-container .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-charts-format-top-level-group-container {\n margin-left: calc(var(--ag-grid-size) * 2);\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-format-top-level-group-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-charts-format-sub-level-group-container {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-charts-format-sub-level-group-container > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-charts-group-container.ag-group-container-horizontal {\n padding: var(--ag-grid-size);\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-menu-panel {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px var(--ag-border-color);\n}\n.ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px var(--ag-border-color);\n}\n\n.ag-date-time-list-page-title-bar {\n display: flex;\n}\n\n.ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-labels-row,\n.ag-date-time-list-page-entries-row {\n display: flex;\n}\n\n.ag-date-time-list-page-column-label,\n.ag-date-time-list-page-entry {\n flex-basis: 0;\n flex-grow: 1;\n}\n\n.ag-date-time-list-page-entry {\n cursor: pointer;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-label {\n text-align: center;\n}\n", ""]);
58322// Exports
58323module.exports = exports;
58324
58325
58326/***/ }),
58327/* 279 */
58328/***/ (function(module, exports, __webpack_require__) {
58329
58330"use strict";
58331
58332
58333/*
58334 MIT License http://www.opensource.org/licenses/mit-license.php
58335 Author Tobias Koppers @sokra
58336*/
58337// css base code, injected by the css-loader
58338// eslint-disable-next-line func-names
58339module.exports = function (useSourceMap) {
58340 var list = []; // return the list of modules as css string
58341
58342 list.toString = function toString() {
58343 return this.map(function (item) {
58344 var content = cssWithMappingToString(item, useSourceMap);
58345
58346 if (item[2]) {
58347 return "@media ".concat(item[2], " {").concat(content, "}");
58348 }
58349
58350 return content;
58351 }).join('');
58352 }; // import a list of modules into the list
58353 // eslint-disable-next-line func-names
58354
58355
58356 list.i = function (modules, mediaQuery, dedupe) {
58357 if (typeof modules === 'string') {
58358 // eslint-disable-next-line no-param-reassign
58359 modules = [[null, modules, '']];
58360 }
58361
58362 var alreadyImportedModules = {};
58363
58364 if (dedupe) {
58365 for (var i = 0; i < this.length; i++) {
58366 // eslint-disable-next-line prefer-destructuring
58367 var id = this[i][0];
58368
58369 if (id != null) {
58370 alreadyImportedModules[id] = true;
58371 }
58372 }
58373 }
58374
58375 for (var _i = 0; _i < modules.length; _i++) {
58376 var item = [].concat(modules[_i]);
58377
58378 if (dedupe && alreadyImportedModules[item[0]]) {
58379 // eslint-disable-next-line no-continue
58380 continue;
58381 }
58382
58383 if (mediaQuery) {
58384 if (!item[2]) {
58385 item[2] = mediaQuery;
58386 } else {
58387 item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
58388 }
58389 }
58390
58391 list.push(item);
58392 }
58393 };
58394
58395 return list;
58396};
58397
58398function cssWithMappingToString(item, useSourceMap) {
58399 var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring
58400
58401 var cssMapping = item[3];
58402
58403 if (!cssMapping) {
58404 return content;
58405 }
58406
58407 if (useSourceMap && typeof btoa === 'function') {
58408 var sourceMapping = toComment(cssMapping);
58409 var sourceURLs = cssMapping.sources.map(function (source) {
58410 return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */");
58411 });
58412 return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
58413 }
58414
58415 return [content].join('\n');
58416} // Adapted from convert-source-map (MIT)
58417
58418
58419function toComment(sourceMap) {
58420 // eslint-disable-next-line no-undef
58421 var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
58422 var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
58423 return "/*# ".concat(data, " */");
58424}
58425
58426/***/ }),
58427/* 280 */
58428/***/ (function(module, exports, __webpack_require__) {
58429
58430var api = __webpack_require__(277);
58431 var content = __webpack_require__(281);
58432
58433 content = content.__esModule ? content.default : content;
58434
58435 if (typeof content === 'string') {
58436 content = [[module.i, content, '']];
58437 }
58438
58439var options = {};
58440
58441options.insert = "head";
58442options.singleton = false;
58443
58444var update = api(content, options);
58445
58446
58447
58448module.exports = content.locals || {};
58449
58450/***/ }),
58451/* 281 */
58452/***/ (function(module, exports, __webpack_require__) {
58453
58454// Imports
58455var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58456exports = ___CSS_LOADER_API_IMPORT___(false);
58457// Module
58458exports.push([module.i, ".ag-icon {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.ag-icon-aggregation::before {\n content: var(--ag-icon-font-code-aggregation, \"\\f101\");\n}\n\n.ag-icon-arrows::before {\n content: var(--ag-icon-font-code-arrows, \"\\f102\");\n}\n\n.ag-icon-asc::before {\n content: var(--ag-icon-font-code-asc, \"\\f103\");\n}\n\n.ag-icon-cancel::before {\n content: var(--ag-icon-font-code-cancel, \"\\f104\");\n}\n\n.ag-icon-chart::before {\n content: var(--ag-icon-font-code-chart, \"\\f105\");\n}\n\n.ag-icon-checkbox-checked::before {\n content: var(--ag-icon-font-code-checkbox-checked, \"\\f106\");\n}\n\n.ag-icon-checkbox-indeterminate::before {\n content: var(--ag-icon-font-code-checkbox-indeterminate, \"\\f107\");\n}\n\n.ag-icon-checkbox-unchecked::before {\n content: var(--ag-icon-font-code-checkbox-unchecked, \"\\f108\");\n}\n\n.ag-icon-color-picker::before {\n content: var(--ag-icon-font-code-color-picker, \"\\f109\");\n}\n\n.ag-icon-columns::before {\n content: var(--ag-icon-font-code-columns, \"\\f10a\");\n}\n\n.ag-icon-contracted::before {\n content: var(--ag-icon-font-code-contracted, \"\\f10b\");\n}\n\n.ag-icon-copy::before {\n content: var(--ag-icon-font-code-copy, \"\\f10c\");\n}\n\n.ag-icon-cross::before {\n content: var(--ag-icon-font-code-cross, \"\\f10d\");\n}\n\n.ag-icon-csv::before {\n content: var(--ag-icon-font-code-csv, \"\\f10e\");\n}\n\n.ag-icon-cut::before {\n content: var(--ag-icon-font-code-cut, \"\\f10f\");\n}\n\n.ag-icon-desc::before {\n content: var(--ag-icon-font-code-desc, \"\\f110\");\n}\n\n.ag-icon-excel::before {\n content: var(--ag-icon-font-code-excel, \"\\f111\");\n}\n\n.ag-icon-expanded::before {\n content: var(--ag-icon-font-code-expanded, \"\\f112\");\n}\n\n.ag-icon-eye-slash::before {\n content: var(--ag-icon-font-code-eye-slash, \"\\f113\");\n}\n\n.ag-icon-eye::before {\n content: var(--ag-icon-font-code-eye, \"\\f114\");\n}\n\n.ag-icon-filter::before {\n content: var(--ag-icon-font-code-filter, \"\\f115\");\n}\n\n.ag-icon-first::before {\n content: var(--ag-icon-font-code-first, \"\\f116\");\n}\n\n.ag-icon-grip::before {\n content: var(--ag-icon-font-code-grip, \"\\f117\");\n}\n\n.ag-icon-group::before {\n content: var(--ag-icon-font-code-group, \"\\f118\");\n}\n\n.ag-icon-last::before {\n content: var(--ag-icon-font-code-last, \"\\f119\");\n}\n\n.ag-icon-left::before {\n content: var(--ag-icon-font-code-left, \"\\f11a\");\n}\n\n.ag-icon-linked::before {\n content: var(--ag-icon-font-code-linked, \"\\f11b\");\n}\n\n.ag-icon-loading::before {\n content: var(--ag-icon-font-code-loading, \"\\f11c\");\n}\n\n.ag-icon-maximize::before {\n content: var(--ag-icon-font-code-maximize, \"\\f11d\");\n}\n\n.ag-icon-menu::before {\n content: var(--ag-icon-font-code-menu, \"\\f11e\");\n}\n\n.ag-icon-minimize::before {\n content: var(--ag-icon-font-code-minimize, \"\\f11f\");\n}\n\n.ag-icon-next::before {\n content: var(--ag-icon-font-code-next, \"\\f120\");\n}\n\n.ag-icon-none::before {\n content: var(--ag-icon-font-code-none, \"\\f121\");\n}\n\n.ag-icon-not-allowed::before {\n content: var(--ag-icon-font-code-not-allowed, \"\\f122\");\n}\n\n.ag-icon-paste::before {\n content: var(--ag-icon-font-code-paste, \"\\f123\");\n}\n\n.ag-icon-pin::before {\n content: var(--ag-icon-font-code-pin, \"\\f124\");\n}\n\n.ag-icon-pivot::before {\n content: var(--ag-icon-font-code-pivot, \"\\f125\");\n}\n\n.ag-icon-previous::before {\n content: var(--ag-icon-font-code-previous, \"\\f126\");\n}\n\n.ag-icon-radio-button-off::before {\n content: var(--ag-icon-font-code-radio-button-off, \"\\f127\");\n}\n\n.ag-icon-radio-button-on::before {\n content: var(--ag-icon-font-code-radio-button-on, \"\\f128\");\n}\n\n.ag-icon-right::before {\n content: var(--ag-icon-font-code-right, \"\\f129\");\n}\n\n.ag-icon-save::before {\n content: var(--ag-icon-font-code-save, \"\\f12a\");\n}\n\n.ag-icon-small-down::before {\n content: var(--ag-icon-font-code-small-down, \"\\f12b\");\n}\n\n.ag-icon-small-left::before {\n content: var(--ag-icon-font-code-small-left, \"\\f12c\");\n}\n\n.ag-icon-small-right::before {\n content: var(--ag-icon-font-code-small-right, \"\\f12d\");\n}\n\n.ag-icon-small-up::before {\n content: var(--ag-icon-font-code-small-up, \"\\f12e\");\n}\n\n.ag-icon-tick::before {\n content: var(--ag-icon-font-code-tick, \"\\f12f\");\n}\n\n.ag-icon-tree-closed::before {\n content: var(--ag-icon-font-code-tree-closed, \"\\f130\");\n}\n\n.ag-icon-tree-indeterminate::before {\n content: var(--ag-icon-font-code-tree-indeterminate, \"\\f131\");\n}\n\n.ag-icon-tree-open::before {\n content: var(--ag-icon-font-code-tree-open, \"\\f132\");\n}\n\n.ag-icon-unlinked::before {\n content: var(--ag-icon-font-code-unlinked, \"\\f133\");\n}\n\n.ag-icon-row-drag::before {\n content: var(--ag-icon-font-code-grip);\n}\n\n.ag-left-arrow::before {\n content: var(--ag-icon-font-code-left);\n}\n\n.ag-right-arrow::before {\n content: var(--ag-icon-font-code-right);\n}\n\n[class*=ag-theme-] {\n --ag-foreground-color: #000;\n --ag-data-color: var(--ag-foreground-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-header-foreground-color: var(--ag-secondary-foreground-color);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.5);\n --ag-background-color: #fff;\n --ag-header-background-color: transparent;\n --ag-tooltip-background-color: transparent;\n --ag-subheader-background-color: transparent;\n --ag-subheader-toolbar-background-color: transparent;\n --ag-control-panel-background-color: transparent;\n --ag-side-button-selected-background-color: var(--ag-control-panel-background-color);\n --ag-selected-row-background-color: #BBB;\n --ag-odd-row-background-color: var(--ag-background-color);\n --ag-modal-overlay-background-color: rgba(255, 255, 255, 0.66);\n --ag-row-hover-color: transparent;\n --ag-column-hover-color: transparent;\n --ag-range-selection-border-color: var(--ag-foreground-color);\n --ag-range-selection-border-style: solid;\n --ag-range-selection-background-color: rgba(0, 0, 0, 0.2);\n --ag-range-selection-background-color-2: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-3: var(--ag-range-selection-background-color);\n --ag-range-selection-background-color-4: var(--ag-range-selection-background-color);\n --ag-range-selection-highlight-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-color: var(--ag-range-selection-border-color);\n --ag-selected-tab-underline-width: 0;\n --ag-selected-tab-underline-transition-speed: 0s;\n --ag-range-selection-chart-category-background-color: rgba(0, 255, 132, 0.1);\n --ag-range-selection-chart-background-color: rgba(0, 88, 255, 0.1);\n --ag-header-cell-hover-background-color: transparent;\n --ag-header-cell-moving-background-color: var(--ag-background-color);\n --ag-value-change-value-highlight-background-color: rgba(22, 160, 133, 0.5);\n --ag-value-change-delta-up-color: #43a047;\n --ag-value-change-delta-down-color: #e53935;\n --ag-chip-background-color: transparent;\n --ag-borders: solid 1px;\n --ag-border-color: rgba(0, 0, 0, 0.25);\n --ag-borders-critical: var(--ag-borders);\n --ag-borders-secondary: var(--ag-borders);\n --ag-secondary-border-color: var(--ag-border-color);\n --ag-row-border-style: solid;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-row-border-width: 1px;\n --ag-cell-horizontal-border: solid transparent;\n --ag-borders-input: var(--ag-borders-secondary);\n --ag-input-border-color: var(--ag-secondary-border-color);\n --ag-borders-input-invalid: solid 2px;\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-borders-side-button: var(--ag-borders);\n --ag-border-radius: 0px;\n --ag-row-border-color: var(--ag-secondary-border-color);\n --ag-header-column-separator-display: none;\n --ag-header-column-separator-height: 100%;\n --ag-header-column-separator-width: 1px;\n --ag-header-column-separator-color: var(--ag-secondary-border-color);\n --ag-header-column-resize-handle-display: none;\n --ag-header-column-resize-handle-height: 50%;\n --ag-header-column-resize-handle-width: 1px;\n --ag-header-column-resize-handle-color: var(--ag-secondary-border-color);\n --ag-invalid-color: red;\n --ag-input-disabled-border-color: var(--ag-input-border-color);\n --ag-input-disabled-background-color: transparent;\n --ag-checkbox-background-color: transparent;\n --ag-checkbox-border-radius: var(--ag-border-radius);\n --ag-checkbox-checked-color: var(--ag-foreground-color);\n --ag-checkbox-unchecked-color: var(--ag-foreground-color);\n --ag-checkbox-indeterminate-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-border-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-off-background-color: var(--ag-checkbox-unchecked-color);\n --ag-toggle-button-on-border-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-on-background-color: var(--ag-checkbox-checked-color);\n --ag-toggle-button-switch-background-color: var(--ag-background-color);\n --ag-toggle-button-switch-border-color: var(--ag-toggle-button-off-border-color);\n --ag-toggle-button-border-width: 1px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-toggle-button-width: calc(var(--ag-toggle-button-height) * 2);\n --ag-input-focus-box-shadow: none;\n --ag-input-focus-border-color: none;\n --ag-minichart-selected-chart-color: var(--ag-checkbox-checked-color);\n --ag-minichart-selected-page-color: var(--ag-checkbox-checked-color);\n --ag-grid-size: 4px;\n --ag-icon-size: 12px;\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-horizontal-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: var(--ag-grid-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: var(--ag-cell-horizontal-padding);\n --ag-row-height: calc(var(--ag-grid-size) * 6 + 1px);\n --ag-header-height: var(--ag-row-height);\n --ag-list-item-height: calc(var(--ag-grid-size) * 5);\n --ag-column-select-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-set-filter-indent-size: calc(var(--ag-grid-size) + var(--ag-icon-size));\n --ag-row-group-indent-size: calc(var(--ag-cell-widget-spacing) + var(--ag-icon-size));\n --ag-filter-tool-panel-group-indent: 16px;\n --ag-tab-min-width: 220px;\n --ag-menu-min-width: 181px;\n --ag-side-bar-panel-width: 200px;\n --ag-font-family: \"Helvetica Neue\", sans-serif;\n --ag-font-size: 14px;\n --ag-card-radius: var(--ag-border-radius);\n --ag-card-shadow: none;\n --ag-popup-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);\n}\n\n.ag-root-wrapper, .ag-sticky-top, .ag-dnd-ghost {\n background-color: var(--ag-background-color);\n}\n\n[class*=ag-theme-] {\n -webkit-font-smoothing: antialiased;\n font-family: var(--ag-font-family);\n font-size: var(--ag-font-size);\n line-height: normal;\n color: var(--ag-foreground-color);\n}\n\nag-grid, ag-grid-angular, ag-grid-ng2, ag-grid-polymer, ag-grid-aurelia {\n display: block;\n}\n\n.ag-hidden {\n display: none !important;\n}\n\n.ag-invisible {\n visibility: hidden !important;\n}\n\n.ag-no-transition {\n transition: none !important;\n}\n\n.ag-drag-handle {\n cursor: grab;\n}\n\n.ag-column-drop-wrapper {\n display: flex;\n}\n\n.ag-column-drop-horizontal-half-width {\n display: inline-block;\n width: 50% !important;\n}\n\n.ag-unselectable {\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.ag-selectable {\n -moz-user-select: text;\n -webkit-user-select: text;\n -ms-user-select: text;\n user-select: text;\n}\n\n.ag-tab {\n position: relative;\n}\n\n.ag-tab-guard {\n position: absolute;\n width: 0;\n height: 0;\n display: block;\n}\n\n.ag-select-agg-func-popup {\n position: absolute;\n}\n\n.ag-input-wrapper, .ag-picker-field-wrapper {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n line-height: normal;\n position: relative;\n}\n\n.ag-shake-left-to-right {\n animation-direction: alternate;\n animation-duration: 0.2s;\n animation-iteration-count: infinite;\n animation-name: ag-shake-left-to-right;\n}\n\n@keyframes ag-shake-left-to-right {\n from {\n padding-left: 6px;\n padding-right: 2px;\n }\n to {\n padding-left: 2px;\n padding-right: 6px;\n }\n}\n.ag-root-wrapper {\n cursor: default;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n.ag-root-wrapper.ag-layout-normal {\n height: 100%;\n}\n\n.ag-watermark {\n position: absolute;\n bottom: 20px;\n right: 25px;\n opacity: 0.5;\n transition: opacity 1s ease-out 3s;\n}\n.ag-watermark::before {\n content: \"\";\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDIzNSA0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxnIHRyYW5zZm9ybT0ibWF0cml4KDAuNjM1NzIzLDAsMCwwLjYzNTcyMywtNDkyLjkyMSwtMzIzLjYwOCkiPgogICAgICAgIDxwYXRoIGQ9Ik0xMDk5LjQsNTQ5LjRMMTA5OS40LDUzNi45TDEwNzguMSw1MzYuOUwxMDY1LjYsNTQ5LjRMMTA5OS40LDU0OS40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTEyMy40LDUxOC40TDEwOTYuNyw1MTguNEwxMDg0LjEsNTMwLjlMMTEyMy40LDUzMC45TDExMjMuNCw1MTguNFoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwNTMuMiw1NjEuOUwxMDU5LjYsNTU1LjVMMTA4MS4yLDU1NS41TDEwODEuMiw1NjhMMTA1My4yLDU2OEwxMDUzLjIsNTYxLjlaIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDU3LjksNTQzLjNMMTA3MS43LDU0My4zTDEwODQuMyw1MzAuOEwxMDU3LjksNTMwLjhMMTA1Ny45LDU0My4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNMTA0Mi44LDU2MS45TDEwNTMuMiw1NjEuOUwxMDY1LjYsNTQ5LjRMMTA0Mi44LDU0OS40TDEwNDIuOCw1NjEuOVoiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTEwOTYuNyw1MTguNEwxMDkwLjMsNTI0LjhMMTA0OS41LDUyNC44TDEwNDkuNSw1MTIuM0wxMDk2LjcsNTEyLjNMMTA5Ni43LDUxOC40WiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNODI4LjYsNTU5LjdMODA5LDU1OS43TDgwNS42LDU2OC4xTDc5Nyw1NjguMUw4MTUuMSw1MjUuN0w4MjIuNiw1MjUuN0w4NDAuNyw1NjguMUw4MzIsNTY4LjFMODI4LjYsNTU5LjdaTTgyNS45LDU1M0w4MTguOCw1MzUuN0w4MTEuNyw1NTNMODI1LjksNTUzWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTYwLjEsNTQxLjNDOTYyLjYsNTM3LjYgOTY4LjksNTM3LjIgOTcxLjUsNTM3LjJMOTcxLjUsNTQ0LjRDOTY4LjMsNTQ0LjQgOTY1LjEsNTQ0LjUgOTYzLjIsNTQ1LjlDOTYxLjMsNTQ3LjMgOTYwLjMsNTQ5LjIgOTYwLjMsNTUxLjVMOTYwLjMsNTY4LjFMOTUyLjUsNTY4LjFMOTUyLjUsNTM3LjJMOTYwLDUzNy4yTDk2MC4xLDU0MS4zWiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTM3LjIiIHdpZHRoPSI3LjgiIGhlaWdodD0iMzAuOSIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTsiLz4KICAgICAgICA8cmVjdCB4PSI5NzUuOCIgeT0iNTIzLjQiIHdpZHRoPSI3LjgiIGhlaWdodD0iOS4yIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0xMDIyLjMsNTIzLjRMMTAyMi4zLDU2OC4xTDEwMTQuOCw1NjguMUwxMDE0LjYsNTYzLjRDMTAxMy41LDU2NSAxMDEyLjEsNTY2LjMgMTAxMC40LDU2Ny4zQzEwMDguNyw1NjguMiAxMDA2LjYsNTY4LjcgMTAwNC4yLDU2OC43QzEwMDIuMSw1NjguNyAxMDAwLjEsNTY4LjMgOTk4LjQsNTY3LjZDOTk2LjYsNTY2LjggOTk1LDU2NS44IDk5My43LDU2NC40Qzk5Mi40LDU2MyA5OTEuMyw1NjEuMyA5OTAuNiw1NTkuNEM5ODkuOCw1NTcuNSA5ODkuNSw1NTUuMyA5ODkuNSw1NTIuOUM5ODkuNSw1NTAuNSA5ODkuOSw1NDguMyA5OTAuNiw1NDYuM0M5OTEuNCw1NDQuMyA5OTIuNCw1NDIuNiA5OTMuNyw1NDEuMkM5OTUsNTM5LjggOTk2LjYsNTM4LjcgOTk4LjQsNTM3LjlDMTAwMC4yLDUzNy4xIDEwMDIuMSw1MzYuNyAxMDA0LjIsNTM2LjdDMTAwNi42LDUzNi43IDEwMDguNiw1MzcuMSAxMDEwLjMsNTM4QzEwMTIsNTM4LjkgMTAxMy40LDU0MC4xIDEwMTQuNSw1NDEuOEwxMDE0LjUsNTIzLjVMMTAyMi4zLDUyMy41TDEwMjIuMyw1MjMuNFpNMTAwNS45LDU2MkMxMDA4LjUsNTYyIDEwMTAuNSw1NjEuMSAxMDEyLjEsNTU5LjRDMTAxMy43LDU1Ny43IDEwMTQuNSw1NTUuNCAxMDE0LjUsNTUyLjZDMTAxNC41LDU0OS44IDEwMTMuNyw1NDcuNiAxMDEyLjEsNTQ1LjhDMTAxMC41LDU0NC4xIDEwMDguNSw1NDMuMiAxMDA1LjksNTQzLjJDMTAwMy40LDU0My4yIDEwMDEuMyw1NDQuMSA5OTkuOCw1NDUuOEM5OTguMiw1NDcuNSA5OTcuNCw1NDkuOCA5OTcuNCw1NTIuNkM5OTcuNCw1NTUuNCA5OTguMiw1NTcuNiA5OTkuOCw1NTkuM0MxMDAxLjQsNTYxLjEgMTAwMy40LDU2MiAxMDA1LjksNTYyIiBzdHlsZT0iZmlsbDpyZ2IoMjQsMjksMzEpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik04ODUuOCw1NDQuMkw4NjYuNSw1NDQuMkw4NjYuNSw1NTAuOUw4NzcuNSw1NTAuOUM4NzcuMiw1NTQuMyA4NzUuOSw1NTYuOSA4NzMuNyw1NTlDODcxLjUsNTYxIDg2OC43LDU2MiA4NjUuMSw1NjJDODYzLjEsNTYyIDg2MS4yLDU2MS42IDg1OS42LDU2MC45Qzg1Ny45LDU2MC4yIDg1Ni41LDU1OS4yIDg1NS4zLDU1Ny44Qzg1NC4xLDU1Ni41IDg1My4yLDU1NC45IDg1Mi41LDU1M0M4NTEuOCw1NTEuMSA4NTEuNSw1NDkuMSA4NTEuNSw1NDYuOEM4NTEuNSw1NDQuNSA4NTEuOCw1NDIuNSA4NTIuNSw1NDAuNkM4NTMuMSw1MzguNyA4NTQuMSw1MzcuMiA4NTUuMyw1MzUuOEM4NTYuNSw1MzQuNSA4NTcuOSw1MzMuNSA4NTkuNiw1MzIuN0M4NjEuMyw1MzIgODYzLjEsNTMxLjYgODY1LjIsNTMxLjZDODY5LjQsNTMxLjYgODcyLjYsNTMyLjYgODc0LjgsNTM0LjZMODgwLDUyOS40Qzg3Ni4xLDUyNi40IDg3MS4xLDUyNC44IDg2NS4yLDUyNC44Qzg2MS45LDUyNC44IDg1OC45LDUyNS4zIDg1Ni4yLDUyNi40Qzg1My41LDUyNy41IDg1MS4yLDUyOC45IDg0OS4zLDUzMC44Qzg0Ny40LDUzMi43IDg0NS45LDUzNSA4NDQuOSw1MzcuN0M4NDMuOSw1NDAuNCA4NDMuNCw1NDMuNCA4NDMuNCw1NDYuNkM4NDMuNCw1NDkuOCA4NDMuOSw1NTIuOCA4NDUsNTU1LjVDODQ2LjEsNTU4LjIgODQ3LjUsNTYwLjUgODQ5LjQsNTYyLjRDODUxLjMsNTY0LjMgODUzLjYsNTY1LjggODU2LjMsNTY2LjhDODU5LDU2Ny45IDg2Miw1NjguNCA4NjUuMiw1NjguNEM4NjguNCw1NjguNCA4NzEuMyw1NjcuOSA4NzMuOSw1NjYuOEM4NzYuNSw1NjUuNyA4NzguNyw1NjQuMyA4ODAuNSw1NjIuNEM4ODIuMyw1NjAuNSA4ODMuNyw1NTguMiA4ODQuNyw1NTUuNUM4ODUuNyw1NTIuOCA4ODYuMiw1NDkuOCA4ODYuMiw1NDYuNkw4ODYuMiw1NDUuM0M4ODUuOSw1NDUuMSA4ODUuOCw1NDQuNiA4ODUuOCw1NDQuMiIgc3R5bGU9ImZpbGw6cmdiKDI0LDI5LDMxKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICA8cGF0aCBkPSJNOTQ2LjgsNTQ0LjJMOTI3LjUsNTQ0LjJMOTI3LjUsNTUwLjlMOTM4LjUsNTUwLjlDOTM4LjIsNTU0LjMgOTM2LjksNTU2LjkgOTM0LjcsNTU5QzkzMi41LDU2MSA5MjkuNyw1NjIgOTI2LjEsNTYyQzkyNC4xLDU2MiA5MjIuMiw1NjEuNiA5MjAuNiw1NjAuOUM5MTguOSw1NjAuMiA5MTcuNSw1NTkuMiA5MTYuMyw1NTcuOEM5MTUuMSw1NTYuNSA5MTQuMiw1NTQuOSA5MTMuNSw1NTNDOTEyLjgsNTUxLjEgOTEyLjUsNTQ5LjEgOTEyLjUsNTQ2LjhDOTEyLjUsNTQ0LjUgOTEyLjgsNTQyLjUgOTEzLjUsNTQwLjZDOTE0LjEsNTM4LjcgOTE1LjEsNTM3LjIgOTE2LjMsNTM1LjhDOTE3LjUsNTM0LjUgOTE4LjksNTMzLjUgOTIwLjYsNTMyLjdDOTIyLjMsNTMyIDkyNC4xLDUzMS42IDkyNi4yLDUzMS42QzkzMC40LDUzMS42IDkzMy42LDUzMi42IDkzNS44LDUzNC42TDk0MSw1MjkuNEM5MzcuMSw1MjYuNCA5MzIuMSw1MjQuOCA5MjYuMiw1MjQuOEM5MjIuOSw1MjQuOCA5MTkuOSw1MjUuMyA5MTcuMiw1MjYuNEM5MTQuNSw1MjcuNSA5MTIuMiw1MjguOSA5MTAuMyw1MzAuOEM5MDguNCw1MzIuNyA5MDYuOSw1MzUgOTA1LjksNTM3LjdDOTA0LjksNTQwLjQgOTA0LjQsNTQzLjQgOTA0LjQsNTQ2LjZDOTA0LjQsNTQ5LjggOTA0LjksNTUyLjggOTA2LDU1NS41QzkwNy4xLDU1OC4yIDkwOC41LDU2MC41IDkxMC40LDU2Mi40QzkxMi4zLDU2NC4zIDkxNC42LDU2NS44IDkxNy4zLDU2Ni44QzkyMCw1NjcuOSA5MjMsNTY4LjQgOTI2LjIsNTY4LjRDOTI5LjQsNTY4LjQgOTMyLjMsNTY3LjkgOTM0LjksNTY2LjhDOTM3LjUsNTY1LjcgOTM5LjcsNTY0LjMgOTQxLjUsNTYyLjRDOTQzLjMsNTYwLjUgOTQ0LjcsNTU4LjIgOTQ1LjcsNTU1LjVDOTQ2LjcsNTUyLjggOTQ3LjIsNTQ5LjggOTQ3LjIsNTQ2LjZMOTQ3LjIsNTQ1LjNDOTQ2LjksNTQ1LjEgOTQ2LjgsNTQ0LjYgOTQ2LjgsNTQ0LjIiIHN0eWxlPSJmaWxsOnJnYigyNCwyOSwzMSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);\n background-repeat: no-repeat;\n background-size: 170px 40px;\n display: block;\n height: 40px;\n width: 170px;\n opacity: 0.5;\n}\n\n.ag-watermark-text {\n opacity: 0.5;\n font-weight: bold;\n font-family: Impact, sans-serif;\n font-size: 19px;\n padding-left: 0.7rem;\n}\n\n.ag-root-wrapper-body {\n display: flex;\n flex-direction: row;\n}\n.ag-root-wrapper-body.ag-layout-normal {\n flex: 1 1 auto;\n height: 0;\n min-height: 0;\n}\n\n.ag-root {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.ag-root.ag-layout-normal, .ag-root.ag-layout-auto-height {\n overflow: hidden;\n flex: 1 1 auto;\n width: 0;\n}\n.ag-root.ag-layout-normal {\n height: 100%;\n}\n\n.ag-header-viewport,\n.ag-floating-top-viewport,\n.ag-body-viewport,\n.ag-center-cols-viewport,\n.ag-floating-bottom-viewport,\n.ag-body-horizontal-scroll-viewport,\n.ag-body-vertical-scroll-viewport,\n.ag-virtual-list-viewport,\n.ag-sticky-top-viewport {\n position: relative;\n height: 100%;\n min-width: 0px;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-body-viewport {\n display: flex;\n}\n.ag-body-viewport.ag-layout-normal {\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-center-cols-viewport {\n width: 100%;\n overflow-x: auto;\n}\n\n.ag-body-horizontal-scroll-viewport {\n overflow-x: scroll;\n}\n\n.ag-body-vertical-scroll-viewport {\n overflow-y: scroll;\n}\n\n.ag-virtual-list-viewport {\n overflow: auto;\n width: 100%;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-body-container,\n.ag-pinned-right-cols-container,\n.ag-center-cols-container,\n.ag-pinned-left-cols-container,\n.ag-floating-bottom-container,\n.ag-body-horizontal-scroll-container,\n.ag-body-vertical-scroll-container,\n.ag-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-virtual-list-container,\n.ag-sticky-top-container {\n position: relative;\n}\n\n.ag-header-container,\n.ag-floating-top-container,\n.ag-floating-bottom-container,\n.ag-sticky-top-container {\n height: 100%;\n white-space: nowrap;\n}\n\n.ag-center-cols-container {\n display: block;\n}\n\n.ag-pinned-right-cols-container {\n display: block;\n}\n\n.ag-body-horizontal-scroll-container {\n height: 100%;\n}\n\n.ag-body-vertical-scroll-container {\n width: 100%;\n}\n\n.ag-full-width-container,\n.ag-floating-top-full-width-container,\n.ag-floating-bottom-full-width-container,\n.ag-sticky-top-full-width-container {\n position: absolute;\n top: 0px;\n left: 0px;\n pointer-events: none;\n}\n\n.ag-full-width-container {\n width: 100%;\n}\n\n.ag-floating-bottom-full-width-container, .ag-floating-top-full-width-container {\n display: inline-block;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n\n.ag-virtual-list-container {\n overflow: hidden;\n}\n\n.ag-center-cols-clipper {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n min-height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n flex-direction: row !important;\n min-height: 0;\n}\n\n.ag-body-clipper {\n overflow: hidden;\n min-width: 0px;\n flex: 1 1 auto;\n height: 100%;\n transform: translate3d(0, 0, 0);\n}\n\n.ag-body-horizontal-scroll,\n.ag-body-vertical-scroll {\n min-height: 0;\n min-width: 0;\n display: flex;\n position: relative;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible,\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n position: absolute;\n bottom: 0;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar {\n opacity: 0;\n transition: opacity 400ms;\n visibility: hidden;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling, .ag-body-horizontal-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-scrolling,\n.ag-body-vertical-scroll.ag-scrollbar-invisible.ag-apple-scrollbar.ag-scrollbar-active {\n visibility: visible;\n opacity: 1;\n}\n\n.ag-body-horizontal-scroll {\n width: 100%;\n}\n.ag-body-horizontal-scroll.ag-scrollbar-invisible {\n left: 0;\n right: 0;\n}\n\n.ag-body-vertical-scroll {\n height: 100%;\n}\n.ag-body-vertical-scroll.ag-scrollbar-invisible {\n top: 0;\n z-index: 10;\n}\n.ag-ltr .ag-body-vertical-scroll.ag-scrollbar-invisible {\n right: 0;\n}\n.ag-rtl .ag-body-vertical-scroll.ag-scrollbar-invisible {\n left: 0;\n}\n\n.ag-force-vertical-scroll {\n overflow-y: scroll !important;\n}\n\n.ag-horizontal-left-spacer, .ag-horizontal-right-spacer {\n height: 100%;\n min-width: 0;\n overflow-x: scroll;\n}\n.ag-horizontal-left-spacer.ag-scroller-corner, .ag-horizontal-right-spacer.ag-scroller-corner {\n overflow-x: hidden;\n}\n\n.ag-header, .ag-pinned-left-header, .ag-pinned-right-header {\n display: inline-block;\n overflow: hidden;\n position: relative;\n}\n\n.ag-header-cell-sortable {\n cursor: pointer;\n}\n\n.ag-header {\n display: flex;\n width: 100%;\n white-space: nowrap;\n}\n\n.ag-pinned-left-header {\n height: 100%;\n}\n\n.ag-pinned-right-header {\n height: 100%;\n}\n\n.ag-header-row {\n position: absolute;\n overflow: hidden;\n}\n\n.ag-header.ag-header-allow-overflow .ag-header-row {\n overflow: visible;\n}\n\n.ag-header-cell {\n display: inline-flex;\n align-items: center;\n position: absolute;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell.ag-header-active .ag-header-cell-menu-button {\n opacity: 1;\n}\n\n.ag-header-cell-menu-button:not(.ag-header-menu-always-show) {\n transition: opacity 0.2s;\n opacity: 0;\n}\n\n.ag-header-group-cell-label, .ag-header-cell-label {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n align-items: center;\n text-overflow: ellipsis;\n align-self: stretch;\n}\n\n.ag-header-cell-text {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-header-cell:not(.ag-header-cell-auto-height) .ag-header-cell-comp-wrapper {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-comp-wrapper {\n width: 100%;\n overflow: hidden;\n}\n\n.ag-header-cell-wrap-text .ag-header-cell-comp-wrapper {\n white-space: normal;\n}\n\n.ag-right-aligned-header .ag-header-cell-label {\n flex-direction: row-reverse;\n}\n\n.ag-header-group-text {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-header-cell-resize {\n position: absolute;\n z-index: 2;\n height: 100%;\n width: 8px;\n top: 0;\n cursor: ew-resize;\n}\n.ag-ltr .ag-header-cell-resize {\n right: -4px;\n}\n.ag-rtl .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-pinned-left-header .ag-header-cell-resize {\n right: -4px;\n}\n\n.ag-pinned-right-header .ag-header-cell-resize {\n left: -4px;\n}\n\n.ag-header-select-all {\n display: flex;\n}\n\n.ag-column-moving .ag-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-cell {\n transition: left 0.2s;\n}\n.ag-column-moving .ag-header-group-cell {\n transition: left 0.2s, width 0.2s;\n}\n\n.ag-column-panel {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 1 1 auto;\n}\n\n.ag-column-select {\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n flex: 3 1 0px;\n}\n\n.ag-column-select-header {\n position: relative;\n display: flex;\n flex: none;\n}\n\n.ag-column-select-header-icon {\n position: relative;\n}\n\n.ag-column-select-header-filter-wrapper {\n flex: 1 1 auto;\n}\n\n.ag-column-select-header-filter {\n width: 100%;\n}\n\n.ag-column-select-list {\n flex: 1 1 0px;\n overflow: hidden;\n}\n\n.ag-column-drop {\n position: relative;\n display: inline-flex;\n align-items: center;\n overflow: auto;\n width: 100%;\n}\n\n.ag-column-drop-list {\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n.ag-column-drop-cell-text {\n overflow: hidden;\n flex: 1 1 auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ag-column-drop-vertical {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n align-items: stretch;\n flex: 1 1 0px;\n}\n\n.ag-column-drop-vertical-title-bar {\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-column-drop-vertical-list {\n position: relative;\n align-items: stretch;\n flex-grow: 1;\n flex-direction: column;\n overflow-x: auto;\n}\n.ag-column-drop-vertical-list > * {\n flex: none;\n}\n\n.ag-column-drop-empty .ag-column-drop-vertical-list {\n overflow: hidden;\n}\n\n.ag-column-drop-vertical-empty-message {\n display: block;\n}\n\n.ag-column-drop.ag-column-drop-horizontal {\n white-space: nowrap;\n overflow: hidden;\n}\n\n.ag-column-drop-cell-button {\n cursor: pointer;\n}\n\n.ag-filter-toolpanel {\n flex: 1 1 0px;\n min-width: 0;\n}\n\n.ag-filter-toolpanel-header {\n position: relative;\n}\n\n.ag-filter-toolpanel-header, .ag-filter-toolpanel-search {\n display: flex;\n align-items: center;\n}\n.ag-filter-toolpanel-header > *, .ag-filter-toolpanel-search > * {\n display: flex;\n align-items: center;\n}\n\n.ag-filter-apply-panel {\n display: flex;\n justify-content: flex-end;\n overflow: hidden;\n}\n\n.ag-row-animation .ag-row {\n transition: transform 0.4s, top 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-animation .ag-row.ag-after-created {\n transition: transform 0.4s, top 0.4s, height 0.4s, background-color 0.1s, opacity 0.2s;\n}\n\n.ag-row-no-animation .ag-row {\n transition: background-color 0.1s;\n}\n\n.ag-row {\n white-space: nowrap;\n width: 100%;\n}\n\n.ag-row-loading {\n display: flex;\n align-items: center;\n}\n\n.ag-row-position-absolute {\n position: absolute;\n}\n\n.ag-row-position-relative {\n position: relative;\n}\n\n.ag-full-width-row {\n overflow: hidden;\n pointer-events: all;\n}\n\n.ag-row-inline-editing {\n z-index: 1;\n}\n\n.ag-row-dragging {\n z-index: 2;\n}\n\n.ag-stub-cell {\n display: flex;\n align-items: center;\n}\n\n.ag-cell {\n display: inline-block;\n position: absolute;\n white-space: nowrap;\n height: 100%;\n}\n\n.ag-cell-value {\n flex: 1 1 auto;\n}\n\n.ag-cell-value, .ag-group-value {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ag-cell-wrap-text {\n white-space: normal;\n word-break: break-all;\n}\n\n.ag-cell-wrapper {\n display: flex;\n align-items: center;\n}\n.ag-cell-wrapper.ag-row-group {\n align-items: flex-start;\n}\n\n.ag-sparkline-wrapper {\n position: absolute;\n height: 100%;\n width: 100%;\n left: 0;\n top: 0;\n}\n\n.ag-full-width-row .ag-cell-wrapper.ag-row-group {\n height: 100%;\n align-items: center;\n}\n\n.ag-cell-inline-editing {\n z-index: 1;\n}\n.ag-cell-inline-editing .ag-cell-wrapper,\n.ag-cell-inline-editing .ag-cell-edit-wrapper,\n.ag-cell-inline-editing .ag-cell-editor,\n.ag-cell-inline-editing .ag-cell-editor .ag-wrapper,\n.ag-cell-inline-editing .ag-cell-editor input {\n height: 100%;\n width: 100%;\n line-height: normal;\n}\n\n.ag-cell .ag-icon {\n display: inline-block;\n vertical-align: middle;\n}\n\n.ag-set-filter-item {\n display: flex;\n align-items: center;\n height: 100%;\n}\n\n.ag-set-filter-item-checkbox {\n display: flex;\n overflow: hidden;\n}\n\n.ag-set-filter-group-icons {\n display: block;\n}\n.ag-set-filter-group-icons > * {\n cursor: pointer;\n}\n\n.ag-filter-body-wrapper {\n display: flex;\n flex-direction: column;\n}\n\n.ag-filter-filter {\n flex: 1 1 0px;\n}\n\n.ag-filter-condition {\n display: flex;\n justify-content: center;\n}\n\n.ag-floating-filter-body {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n}\n\n.ag-floating-filter-full-body {\n display: flex;\n flex: 1 1 auto;\n height: 100%;\n width: 100%;\n align-items: center;\n overflow: hidden;\n}\n\n.ag-floating-filter-full-body > div {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input {\n align-items: center;\n display: flex;\n width: 100%;\n}\n.ag-floating-filter-input > * {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-button {\n display: flex;\n flex: none;\n}\n\n.ag-dnd-ghost {\n position: absolute;\n display: inline-flex;\n align-items: center;\n cursor: move;\n white-space: nowrap;\n z-index: 9999;\n}\n\n.ag-overlay {\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%;\n}\n\n.ag-overlay-panel {\n display: flex;\n height: 100%;\n width: 100%;\n}\n\n.ag-overlay-wrapper {\n display: flex;\n flex: none;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.ag-overlay-loading-wrapper {\n pointer-events: all;\n}\n\n.ag-popup-child {\n z-index: 5;\n top: 0;\n}\n\n.ag-popup-editor {\n position: absolute;\n user-select: none;\n z-index: 1;\n}\n\n.ag-large-text-input {\n display: block;\n}\n\n.ag-virtual-list-item {\n position: absolute;\n width: 100%;\n}\n\n.ag-floating-top {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-top {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-floating-bottom {\n overflow: hidden;\n white-space: nowrap;\n width: 100%;\n position: relative;\n display: flex;\n}\n\n.ag-pinned-left-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-pinned-right-floating-bottom {\n display: inline-block;\n overflow: hidden;\n position: relative;\n min-width: 0px;\n}\n\n.ag-sticky-top {\n position: absolute;\n display: flex;\n width: 100%;\n}\n\n.ag-pinned-left-sticky-top,\n.ag-pinned-right-sticky-top {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n\n.ag-sticky-top-full-width-container {\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-dialog, .ag-panel {\n display: flex;\n flex-direction: column;\n position: relative;\n overflow: hidden;\n}\n\n.ag-panel-title-bar {\n display: flex;\n flex: none;\n align-items: center;\n cursor: default;\n}\n\n.ag-panel-title-bar-title {\n flex: 1 1 auto;\n}\n\n.ag-panel-title-bar-buttons {\n display: flex;\n}\n\n.ag-panel-title-bar-button {\n cursor: pointer;\n}\n\n.ag-panel-content-wrapper {\n display: flex;\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n}\n\n.ag-dialog {\n position: absolute;\n}\n\n.ag-resizer {\n position: absolute;\n pointer-events: none;\n user-select: none;\n z-index: 1;\n}\n.ag-resizer.ag-resizer-topLeft {\n top: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-top {\n top: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-topRight {\n top: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-right {\n top: 5px;\n right: 0;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n.ag-resizer.ag-resizer-bottomRight {\n bottom: 0;\n right: 0;\n height: 5px;\n width: 5px;\n cursor: nwse-resize;\n}\n.ag-resizer.ag-resizer-bottom {\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 5px;\n cursor: ns-resize;\n}\n.ag-resizer.ag-resizer-bottomLeft {\n bottom: 0;\n left: 0;\n height: 5px;\n width: 5px;\n cursor: nesw-resize;\n}\n.ag-resizer.ag-resizer-left {\n left: 0;\n top: 5px;\n bottom: 5px;\n width: 5px;\n cursor: ew-resize;\n}\n\n.ag-tooltip {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n.ag-tooltip-custom {\n position: absolute;\n pointer-events: none;\n z-index: 99999;\n}\n\n.ag-value-slide-out {\n margin-right: 5px;\n opacity: 1;\n transition: opacity 3s, margin-right 3s;\n transition-timing-function: linear;\n}\n\n.ag-value-slide-out-end {\n margin-right: 10px;\n opacity: 0;\n}\n\n.ag-opacity-zero {\n opacity: 0 !important;\n}\n\n.ag-menu {\n max-height: 100%;\n overflow-y: auto;\n position: absolute;\n user-select: none;\n}\n\n.ag-menu-column-select-wrapper {\n height: 265px;\n overflow: auto;\n}\n.ag-menu-column-select-wrapper .ag-column-select {\n height: 100%;\n}\n\n.ag-menu-list {\n display: table;\n width: 100%;\n}\n\n.ag-menu-option, .ag-menu-separator {\n display: table-row;\n}\n\n.ag-menu-option-part, .ag-menu-separator-part {\n display: table-cell;\n vertical-align: middle;\n}\n\n.ag-menu-option-text {\n white-space: nowrap;\n}\n\n.ag-compact-menu-option {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n}\n\n.ag-compact-menu-option-text {\n white-space: nowrap;\n flex: 1 1 auto;\n}\n\n.ag-rich-select {\n cursor: default;\n outline: none;\n}\n\n.ag-rich-select-value {\n display: flex;\n align-items: center;\n}\n\n.ag-rich-select-value-icon {\n flex: 1 1 auto;\n order: 1;\n}\n.ag-ltr .ag-rich-select-value-icon {\n text-align: right;\n}\n.ag-rtl .ag-rich-select-value-icon {\n text-align: left;\n}\n\n.ag-rich-select-list {\n position: relative;\n}\n\n.ag-rich-select-virtual-list-item {\n display: flex;\n}\n\n.ag-rich-select-row {\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n}\n\n.ag-paging-panel {\n align-items: center;\n display: flex;\n justify-content: flex-end;\n}\n\n.ag-paging-page-summary-panel {\n display: flex;\n align-items: center;\n}\n\n.ag-paging-button {\n position: relative;\n}\n\n.ag-disabled .ag-paging-page-summary-panel {\n pointer-events: none;\n}\n\n.ag-tool-panel-wrapper {\n display: flex;\n overflow-y: auto;\n overflow-x: hidden;\n cursor: default;\n user-select: none;\n}\n\n.ag-column-select-column,\n.ag-column-select-column-group,\n.ag-select-agg-func-item {\n position: relative;\n align-items: center;\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n text-overflow: ellipsis;\n white-space: nowrap;\n height: 100%;\n}\n.ag-column-select-column > *,\n.ag-column-select-column-group > *,\n.ag-select-agg-func-item > * {\n flex: none;\n}\n\n.ag-column-select-checkbox {\n display: flex;\n}\n\n.ag-tool-panel-horizontal-resize {\n cursor: ew-resize;\n height: 100%;\n position: absolute;\n top: 0;\n width: 5px;\n z-index: 1;\n}\n\n.ag-ltr .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n\n.ag-ltr .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n left: -3px;\n}\n.ag-rtl .ag-side-bar-right .ag-tool-panel-horizontal-resize {\n right: -3px;\n}\n\n.ag-details-row {\n width: 100%;\n}\n\n.ag-details-row-fixed-height {\n height: 100%;\n}\n\n.ag-details-grid {\n width: 100%;\n}\n\n.ag-details-grid-fixed-height {\n height: 100%;\n}\n\n.ag-header-group-cell {\n display: flex;\n align-items: center;\n height: 100%;\n position: absolute;\n}\n\n.ag-header-group-cell-no-group.ag-header-span-height .ag-header-cell-resize {\n display: none;\n}\n\n.ag-cell-label-container {\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n align-items: center;\n height: 100%;\n width: 100%;\n overflow: hidden;\n padding: 5px 0px;\n}\n\n.ag-right-aligned-header .ag-cell-label-container {\n flex-direction: row;\n}\n.ag-right-aligned-header .ag-header-cell-text {\n text-align: end;\n}\n\n.ag-side-bar {\n display: flex;\n flex-direction: row-reverse;\n}\n\n.ag-side-bar-left {\n order: -1;\n flex-direction: row;\n}\n\n.ag-side-button-button {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-wrap: nowrap;\n white-space: nowrap;\n outline: none;\n cursor: pointer;\n}\n\n.ag-side-button-label {\n writing-mode: vertical-lr;\n}\n\n.ag-status-bar {\n display: flex;\n justify-content: space-between;\n overflow: hidden;\n}\n\n.ag-status-panel {\n display: inline-flex;\n}\n\n.ag-status-name-value {\n white-space: nowrap;\n}\n\n.ag-status-bar-left {\n display: inline-flex;\n}\n\n.ag-status-bar-center {\n display: inline-flex;\n}\n\n.ag-status-bar-right {\n display: inline-flex;\n}\n\n.ag-icon {\n display: block;\n speak: none;\n}\n\n.ag-group {\n position: relative;\n width: 100%;\n}\n\n.ag-group-title-bar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-title {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.ag-group-title-bar .ag-group-title {\n cursor: default;\n}\n\n.ag-group-toolbar {\n display: flex;\n align-items: center;\n}\n\n.ag-group-container {\n display: flex;\n}\n\n.ag-disabled .ag-group-container {\n pointer-events: none;\n}\n\n.ag-group-container-horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.ag-group-container-vertical {\n flex-direction: column;\n}\n\n.ag-column-group-icons {\n display: block;\n}\n.ag-column-group-icons > * {\n cursor: pointer;\n}\n\n.ag-group-item-alignment-stretch .ag-group-item {\n align-items: stretch;\n}\n\n.ag-group-item-alignment-start .ag-group-item {\n align-items: flex-start;\n}\n\n.ag-group-item-alignment-end .ag-group-item {\n align-items: flex-end;\n}\n\n.ag-toggle-button-icon {\n transition: right 0.3s;\n position: absolute;\n top: -1px;\n}\n\n.ag-input-field, .ag-select {\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.ag-input-field-input {\n flex: 1 1 auto;\n}\n\n.ag-floating-filter-input .ag-input-field-input[type=date] {\n width: 1px;\n}\n\n.ag-range-field {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select {\n display: flex;\n align-items: center;\n}\n\n.ag-angle-select-wrapper {\n display: flex;\n}\n\n.ag-angle-select-parent-circle {\n display: block;\n position: relative;\n}\n\n.ag-angle-select-child-circle {\n position: absolute;\n}\n\n.ag-slider-wrapper {\n display: flex;\n}\n.ag-slider-wrapper .ag-input-field {\n flex: 1 1 auto;\n}\n\n.ag-picker-field-display {\n flex: 1 1 auto;\n}\n\n.ag-picker-field {\n display: flex;\n align-items: center;\n}\n\n.ag-picker-field-icon {\n display: flex;\n border: 0;\n padding: 0;\n margin: 0;\n cursor: pointer;\n}\n\n.ag-picker-field-wrapper {\n overflow: hidden;\n}\n\n.ag-label-align-right .ag-label {\n order: 1;\n}\n.ag-label-align-right > * {\n flex: none;\n}\n\n.ag-label-align-top {\n flex-direction: column;\n align-items: flex-start;\n}\n.ag-label-align-top > * {\n align-self: stretch;\n}\n\n.ag-label-ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1;\n}\n\n.ag-color-panel {\n width: 100%;\n display: flex;\n flex-direction: column;\n text-align: center;\n}\n\n.ag-spectrum-color {\n flex: 1 1 auto;\n position: relative;\n overflow: hidden;\n cursor: default;\n}\n\n.ag-spectrum-fill {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-spectrum-val {\n cursor: pointer;\n}\n\n.ag-spectrum-dragger {\n position: absolute;\n pointer-events: none;\n cursor: pointer;\n}\n\n.ag-spectrum-hue {\n cursor: default;\n background: linear-gradient(to left, #ff0000 3%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);\n}\n\n.ag-spectrum-alpha {\n cursor: default;\n}\n\n.ag-spectrum-hue-background {\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-alpha-background {\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgb(0, 0, 0));\n width: 100%;\n height: 100%;\n}\n\n.ag-spectrum-tool {\n cursor: pointer;\n}\n\n.ag-spectrum-slider {\n position: absolute;\n pointer-events: none;\n}\n\n.ag-recent-colors {\n display: flex;\n}\n\n.ag-recent-color {\n cursor: pointer;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: 20px;\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: 20px;\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: 40px;\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: 40px;\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: 60px;\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: 60px;\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: 80px;\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: 80px;\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: 100px;\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: 100px;\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: 120px;\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: 120px;\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: 140px;\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: 140px;\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: 160px;\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: 160px;\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: 180px;\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: 180px;\n}\n\n.ag-ltr {\n direction: ltr;\n}\n.ag-ltr .ag-body, .ag-ltr .ag-floating-top, .ag-ltr .ag-floating-bottom, .ag-ltr .ag-header, .ag-ltr .ag-body-viewport, .ag-ltr .ag-body-horizontal-scroll {\n flex-direction: row;\n}\n\n.ag-rtl {\n direction: rtl;\n}\n.ag-rtl .ag-body, .ag-rtl .ag-floating-top, .ag-rtl .ag-floating-bottom, .ag-rtl .ag-header, .ag-rtl .ag-body-viewport, .ag-rtl .ag-body-horizontal-scroll {\n flex-direction: row-reverse;\n}\n.ag-rtl .ag-icon-contracted,\n.ag-rtl .ag-icon-expanded,\n.ag-rtl .ag-icon-tree-closed {\n display: block;\n transform: rotate(180deg);\n}\n\n.ag-body .ag-body-viewport {\n -webkit-overflow-scrolling: touch;\n}\n\n.ag-layout-print.ag-body {\n display: block;\n height: unset;\n}\n.ag-layout-print.ag-body-clipper {\n height: unset;\n}\n.ag-layout-print.ag-root-wrapper {\n display: inline-flex;\n}\n.ag-layout-print .ag-center-cols-clipper {\n min-width: 100%;\n}\n.ag-layout-print .ag-body-vertical-scroll {\n display: none;\n}\n.ag-layout-print .ag-body-horizontal-scroll {\n display: none;\n}\n.ag-layout-print.ag-force-vertical-scroll {\n overflow-y: visible !important;\n}\n\n@media print {\n .ag-root-wrapper.ag-layout-print {\n display: table;\n }\n .ag-root-wrapper.ag-layout-print .ag-root-wrapper-body,\n .ag-root-wrapper.ag-layout-print .ag-root,\n .ag-root-wrapper.ag-layout-print .ag-body-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-container,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-viewport,\n .ag-root-wrapper.ag-layout-print .ag-center-cols-clipper,\n .ag-root-wrapper.ag-layout-print .ag-body-horizontal-scroll-viewport,\n .ag-root-wrapper.ag-layout-print .ag-virtual-list-viewport {\n height: auto !important;\n overflow: hidden !important;\n display: block !important;\n }\n .ag-root-wrapper.ag-layout-print .ag-row, .ag-root-wrapper.ag-layout-print .ag-cell {\n break-inside: avoid;\n }\n}\n[class^=ag-], [class^=ag-]:focus, [class^=ag-]:after, [class^=ag-]:before {\n box-sizing: border-box;\n outline: none;\n}\n\n[class^=ag-]::-ms-clear {\n display: none;\n}\n\n.ag-checkbox .ag-input-wrapper,\n.ag-radio-button .ag-input-wrapper {\n overflow: visible;\n}\n\n.ag-range-field .ag-input-wrapper {\n height: 100%;\n}\n\n.ag-toggle-button {\n flex: none;\n width: unset;\n min-width: unset;\n}\n\n.ag-ltr .ag-label-align-right .ag-label {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-label-align-right .ag-label {\n margin-right: var(--ag-grid-size);\n}\n\ninput[class^=ag-] {\n margin: 0;\n background-color: var(--ag-background-color);\n}\n\ntextarea[class^=ag-],\nselect[class^=ag-] {\n background-color: var(--ag-background-color);\n}\n\ninput[class^=ag-]:not([type]),\ninput[class^=ag-][type=text],\ninput[class^=ag-][type=number],\ninput[class^=ag-][type=tel],\ninput[class^=ag-][type=date],\ninput[class^=ag-][type=datetime-local],\ntextarea[class^=ag-] {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n border: var(--ag-borders-input) var(--ag-input-border-color);\n}\ninput[class^=ag-]:not([type]):disabled,\ninput[class^=ag-][type=text]:disabled,\ninput[class^=ag-][type=number]:disabled,\ninput[class^=ag-][type=tel]:disabled,\ninput[class^=ag-][type=date]:disabled,\ninput[class^=ag-][type=datetime-local]:disabled,\ntextarea[class^=ag-]:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\ninput[class^=ag-]:not([type]):focus,\ninput[class^=ag-][type=text]:focus,\ninput[class^=ag-][type=number]:focus,\ninput[class^=ag-][type=tel]:focus,\ninput[class^=ag-][type=date]:focus,\ninput[class^=ag-][type=datetime-local]:focus,\ntextarea[class^=ag-]:focus {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-]:not([type]):invalid,\ninput[class^=ag-][type=text]:invalid,\ninput[class^=ag-][type=number]:invalid,\ninput[class^=ag-][type=tel]:invalid,\ninput[class^=ag-][type=date]:invalid,\ninput[class^=ag-][type=datetime-local]:invalid,\ntextarea[class^=ag-]:invalid {\n border: var(--ag-borders-input-invalid) var(--ag-input-border-color-invalid);\n}\n\ninput[class^=ag-][type=number] {\n -moz-appearance: textfield;\n}\ninput[class^=ag-][type=number]::-webkit-outer-spin-button, input[class^=ag-][type=number]::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\ninput[class^=ag-][type=range] {\n padding: 0;\n}\n\ninput[class^=ag-][type=button]:focus, button[class^=ag-]:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-drag-handle {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-list-item, .ag-virtual-list-item {\n height: var(--ag-list-item-height);\n}\n\n.ag-keyboard-focus .ag-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-select-list {\n background-color: var(--ag-background-color);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.ag-list-item {\n display: flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-list-item.ag-active-item {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-select-list-item {\n padding-left: 4px;\n padding-right: 4px;\n cursor: default;\n -moz-user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.ag-select-list-item span {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.ag-select .ag-picker-field-wrapper {\n background-color: var(--ag-background-color);\n min-height: var(--ag-list-item-height);\n cursor: default;\n}\n.ag-select.ag-disabled .ag-picker-field-wrapper:focus {\n box-shadow: none;\n}\n.ag-select:not(.ag-cell-editor, .ag-label-align-top) {\n height: var(--ag-list-item-height);\n}\n.ag-select .ag-picker-field-display {\n margin: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.ag-select .ag-picker-field-icon {\n display: flex;\n align-items: center;\n}\n.ag-select.ag-disabled {\n opacity: 0.5;\n}\n\n.ag-rich-select {\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-rich-select-list {\n width: 100%;\n min-width: 200px;\n height: calc(var(--ag-row-height) * 6.5);\n}\n\n.ag-rich-select-value {\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-ltr .ag-rich-select-value {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-value {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-ltr .ag-rich-select-value {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-rich-select-value {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-rich-select-virtual-list-item {\n cursor: default;\n height: var(--ag-list-item-height);\n}\n.ag-keyboard-focus .ag-rich-select-virtual-list-item:focus::after {\n content: none;\n}\n.ag-rich-select-virtual-list-item:hover {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-ltr .ag-rich-select-row {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-rich-select-row {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rich-select-row-selected {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-row-drag,\n.ag-selection-checkbox,\n.ag-group-expanded,\n.ag-group-contracted {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-ltr .ag-row-drag,\n.ag-ltr .ag-selection-checkbox,\n.ag-ltr .ag-group-expanded,\n.ag-ltr .ag-group-contracted {\n margin-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-row-drag,\n.ag-rtl .ag-selection-checkbox,\n.ag-rtl .ag-group-expanded,\n.ag-rtl .ag-group-contracted {\n margin-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-cell-wrapper > *:not(.ag-cell-value):not(.ag-group-value) {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n display: flex;\n align-items: center;\n flex: none;\n}\n\n.ag-group-expanded,\n.ag-group-contracted {\n cursor: pointer;\n}\n\n.ag-group-title-bar-icon {\n cursor: pointer;\n flex: none;\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-ltr .ag-group-child-count {\n margin-left: 2px;\n}\n.ag-rtl .ag-group-child-count {\n margin-right: 2px;\n}\n\n.ag-group-title-bar {\n background-color: var(--ag-subheader-background-color);\n padding: var(--ag-grid-size);\n}\n\n.ag-group-toolbar {\n padding: var(--ag-grid-size);\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n\n.ag-disabled-group-title-bar, .ag-disabled-group-container {\n opacity: 0.5;\n}\n\n.group-item {\n margin: calc(var(--ag-grid-size) * 0.5) 0;\n}\n\n.ag-label {\n white-space: nowrap;\n}\n.ag-ltr .ag-label {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-label {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-label-align-top .ag-label {\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-angle-select[disabled] {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n.ag-angle-select[disabled] .ag-angle-select-field {\n opacity: 0.4;\n}\n\n.ag-ltr .ag-slider-field,\n.ag-ltr .ag-angle-select-field {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-slider-field,\n.ag-rtl .ag-angle-select-field {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-angle-select-parent-circle {\n width: 24px;\n height: 24px;\n border-radius: 12px;\n border: solid 1px;\n border-color: var(--ag-border-color);\n background-color: var(--ag-background-color);\n}\n\n.ag-angle-select-child-circle {\n top: 4px;\n left: 12px;\n width: 6px;\n height: 6px;\n margin-left: -3px;\n margin-top: -4px;\n border-radius: 3px;\n background-color: var(--ag-secondary-foreground-color);\n}\n\n.ag-picker-field-wrapper {\n border: 1px solid;\n border-color: var(--ag-border-color);\n border-radius: 5px;\n}\n.ag-picker-field-wrapper:focus {\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n\n.ag-picker-field-button {\n background-color: var(--ag-background-color);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-dialog.ag-color-dialog {\n border-radius: 5px;\n}\n\n.ag-color-picker .ag-picker-field-display {\n height: var(--ag-icon-size);\n}\n\n.ag-color-panel {\n padding: var(--ag-grid-size);\n}\n\n.ag-spectrum-color {\n background-color: rgb(255, 0, 0);\n border-radius: 2px;\n}\n\n.ag-spectrum-tools {\n padding: 10px;\n}\n\n.ag-spectrum-sat {\n background-image: linear-gradient(to right, white, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-val {\n background-image: linear-gradient(to top, black, rgba(204, 154, 129, 0));\n}\n\n.ag-spectrum-dragger {\n border-radius: 12px;\n height: 12px;\n width: 12px;\n border: 1px solid white;\n background: black;\n box-shadow: 0 0 2px 0px rgba(0, 0, 0, 0.24);\n}\n\n.ag-spectrum-hue-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-alpha-background {\n border-radius: 2px;\n}\n\n.ag-spectrum-tool {\n margin-bottom: 10px;\n height: 11px;\n border-radius: 2px;\n}\n\n.ag-spectrum-slider {\n margin-top: -12px;\n width: 13px;\n height: 13px;\n border-radius: 13px;\n background-color: rgb(248, 248, 248);\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n}\n\n.ag-recent-color {\n margin: 0 3px;\n}\n.ag-recent-color:first-child {\n margin-left: 0;\n}\n.ag-recent-color:last-child {\n margin-right: 0;\n}\n\n.ag-dnd-ghost {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n overflow: hidden;\n text-overflow: ellipsis;\n border: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height) !important;\n line-height: var(--ag-header-height);\n margin: 0;\n padding: 0 calc(var(--ag-grid-size) * 2);\n transform: translateY(calc(var(--ag-grid-size) * 2));\n}\n\n.ag-dnd-ghost-icon {\n margin-right: var(--ag-grid-size);\n color: var(--ag-foreground-color);\n}\n\n.ag-popup-child:not(.ag-tooltip-custom) {\n box-shadow: var(--ag-popup-shadow);\n}\n\n.ag-dragging-range-handle .ag-dialog,\n.ag-dragging-fill-handle .ag-dialog {\n opacity: 0.7;\n pointer-events: none;\n}\n\n.ag-dialog {\n border-radius: var(--ag-border-radius);\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-panel {\n background-color: var(--ag-background-color);\n}\n\n.ag-panel-title-bar {\n background-color: var(--ag-header-background-color);\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n padding: var(--ag-grid-size) var(--ag-cell-horizontal-padding);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-panel-title-bar-button {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-panel-title-bar-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-tooltip {\n background-color: var(--ag-tooltip-background-color);\n color: var(--ag-foreground-color);\n padding: var(--ag-grid-size);\n border: var(--ag-borders) var(--ag-border-color);\n border-radius: var(--ag-card-radius);\n transition: opacity 1s;\n white-space: normal;\n}\n.ag-tooltip.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-tooltip-custom {\n transition: opacity 1s;\n}\n.ag-tooltip-custom.ag-tooltip-hiding {\n opacity: 0;\n}\n\n.ag-ltr .ag-column-select-indent-1 {\n padding-left: calc(1 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-1 {\n padding-right: calc(1 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-2 {\n padding-left: calc(2 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-2 {\n padding-right: calc(2 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-3 {\n padding-left: calc(3 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-3 {\n padding-right: calc(3 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-4 {\n padding-left: calc(4 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-4 {\n padding-right: calc(4 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-5 {\n padding-left: calc(5 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-5 {\n padding-right: calc(5 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-6 {\n padding-left: calc(6 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-6 {\n padding-right: calc(6 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-7 {\n padding-left: calc(7 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-7 {\n padding-right: calc(7 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-8 {\n padding-left: calc(8 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-8 {\n padding-right: calc(8 * var(--ag-column-select-indent-size));\n}\n\n.ag-ltr .ag-column-select-indent-9 {\n padding-left: calc(9 * var(--ag-column-select-indent-size));\n}\n.ag-rtl .ag-column-select-indent-9 {\n padding-right: calc(9 * var(--ag-column-select-indent-size));\n}\n\n.ag-column-select-header-icon {\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-column-select-header-icon:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header-icon:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-ltr .ag-column-group-icons:not(:last-child),\n.ag-ltr .ag-column-select-header-icon:not(:last-child),\n.ag-ltr .ag-column-select-header-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-ltr .ag-column-select-checkbox:not(:last-child),\n.ag-ltr .ag-column-select-column-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-ltr .ag-column-select-column-label:not(:last-child) {\n margin-right: var(--ag-widget-horizontal-spacing);\n}\n.ag-rtl .ag-column-group-icons:not(:last-child),\n.ag-rtl .ag-column-select-header-icon:not(:last-child),\n.ag-rtl .ag-column-select-header-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-header-filter-wrapper:not(:last-child),\n.ag-rtl .ag-column-select-checkbox:not(:last-child),\n.ag-rtl .ag-column-select-column-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-group-drag-handle:not(:last-child),\n.ag-rtl .ag-column-select-column-label:not(:last-child) {\n margin-left: var(--ag-widget-horizontal-spacing);\n}\n\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-column-group:not(:last-child),\n.ag-column-select-column:not(:last-child) {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-column-select-column-readonly,\n.ag-column-select-column-group-readonly {\n color: var(--ag-disabled-foreground-color);\n pointer-events: none;\n}\n\n.ag-ltr .ag-column-select-add-group-indent {\n margin-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-column-select-add-group-indent {\n margin-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-column-select-virtual-list-viewport {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) 0px;\n}\n\n.ag-column-select-virtual-list-item {\n padding: 0 var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-rtl {\n text-align: right;\n}\n\n.ag-root-wrapper {\n border: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-1 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 1);\n}\n\n.ag-ltr .ag-row-group-indent-1 {\n padding-left: calc(1 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-1 {\n padding-right: calc(1 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-1 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-1 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-2 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 2);\n}\n\n.ag-ltr .ag-row-group-indent-2 {\n padding-left: calc(2 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-2 {\n padding-right: calc(2 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-2 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-2 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-3 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 3);\n}\n\n.ag-ltr .ag-row-group-indent-3 {\n padding-left: calc(3 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-3 {\n padding-right: calc(3 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-3 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-3 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-4 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 4);\n}\n\n.ag-ltr .ag-row-group-indent-4 {\n padding-left: calc(4 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-4 {\n padding-right: calc(4 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-4 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-4 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-5 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 5);\n}\n\n.ag-ltr .ag-row-group-indent-5 {\n padding-left: calc(5 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-5 {\n padding-right: calc(5 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-5 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-5 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-6 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 6);\n}\n\n.ag-ltr .ag-row-group-indent-6 {\n padding-left: calc(6 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-6 {\n padding-right: calc(6 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-6 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-6 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-7 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 7);\n}\n\n.ag-ltr .ag-row-group-indent-7 {\n padding-left: calc(7 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-7 {\n padding-right: calc(7 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-7 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-7 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-8 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 8);\n}\n\n.ag-ltr .ag-row-group-indent-8 {\n padding-left: calc(8 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-8 {\n padding-right: calc(8 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-8 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-8 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-9 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 9);\n}\n\n.ag-ltr .ag-row-group-indent-9 {\n padding-left: calc(9 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-9 {\n padding-right: calc(9 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-9 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-9 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-10 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 10);\n}\n\n.ag-ltr .ag-row-group-indent-10 {\n padding-left: calc(10 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-10 {\n padding-right: calc(10 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-10 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-10 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-11 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 11);\n}\n\n.ag-ltr .ag-row-group-indent-11 {\n padding-left: calc(11 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-11 {\n padding-right: calc(11 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-11 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-11 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-12 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 12);\n}\n\n.ag-ltr .ag-row-group-indent-12 {\n padding-left: calc(12 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-12 {\n padding-right: calc(12 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-12 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-12 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-13 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 13);\n}\n\n.ag-ltr .ag-row-group-indent-13 {\n padding-left: calc(13 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-13 {\n padding-right: calc(13 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-13 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-13 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-14 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 14);\n}\n\n.ag-ltr .ag-row-group-indent-14 {\n padding-left: calc(14 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-14 {\n padding-right: calc(14 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-14 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-14 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-15 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 15);\n}\n\n.ag-ltr .ag-row-group-indent-15 {\n padding-left: calc(15 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-15 {\n padding-right: calc(15 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-15 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-15 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-16 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 16);\n}\n\n.ag-ltr .ag-row-group-indent-16 {\n padding-left: calc(16 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-16 {\n padding-right: calc(16 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-16 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-16 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-17 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 17);\n}\n\n.ag-ltr .ag-row-group-indent-17 {\n padding-left: calc(17 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-17 {\n padding-right: calc(17 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-17 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-17 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-18 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 18);\n}\n\n.ag-ltr .ag-row-group-indent-18 {\n padding-left: calc(18 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-18 {\n padding-right: calc(18 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-18 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-18 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-19 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 19);\n}\n\n.ag-ltr .ag-row-group-indent-19 {\n padding-left: calc(19 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-19 {\n padding-right: calc(19 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-19 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-19 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-20 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 20);\n}\n\n.ag-ltr .ag-row-group-indent-20 {\n padding-left: calc(20 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-20 {\n padding-right: calc(20 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-20 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-20 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-21 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 21);\n}\n\n.ag-ltr .ag-row-group-indent-21 {\n padding-left: calc(21 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-21 {\n padding-right: calc(21 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-21 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-21 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-22 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 22);\n}\n\n.ag-ltr .ag-row-group-indent-22 {\n padding-left: calc(22 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-22 {\n padding-right: calc(22 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-22 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-22 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-23 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 23);\n}\n\n.ag-ltr .ag-row-group-indent-23 {\n padding-left: calc(23 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-23 {\n padding-right: calc(23 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-23 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-23 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-24 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 24);\n}\n\n.ag-ltr .ag-row-group-indent-24 {\n padding-left: calc(24 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-24 {\n padding-right: calc(24 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-24 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-24 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-25 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 25);\n}\n\n.ag-ltr .ag-row-group-indent-25 {\n padding-left: calc(25 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-25 {\n padding-right: calc(25 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-25 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-25 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-26 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 26);\n}\n\n.ag-ltr .ag-row-group-indent-26 {\n padding-left: calc(26 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-26 {\n padding-right: calc(26 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-26 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-26 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-27 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 27);\n}\n\n.ag-ltr .ag-row-group-indent-27 {\n padding-left: calc(27 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-27 {\n padding-right: calc(27 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-27 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-27 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-28 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 28);\n}\n\n.ag-ltr .ag-row-group-indent-28 {\n padding-left: calc(28 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-28 {\n padding-right: calc(28 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-28 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-28 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-29 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 29);\n}\n\n.ag-ltr .ag-row-group-indent-29 {\n padding-left: calc(29 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-29 {\n padding-right: calc(29 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-29 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-29 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-30 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 30);\n}\n\n.ag-ltr .ag-row-group-indent-30 {\n padding-left: calc(30 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-30 {\n padding-right: calc(30 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-30 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-30 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-31 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 31);\n}\n\n.ag-ltr .ag-row-group-indent-31 {\n padding-left: calc(31 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-31 {\n padding-right: calc(31 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-31 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-31 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-32 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 32);\n}\n\n.ag-ltr .ag-row-group-indent-32 {\n padding-left: calc(32 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-32 {\n padding-right: calc(32 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-32 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-32 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-33 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 33);\n}\n\n.ag-ltr .ag-row-group-indent-33 {\n padding-left: calc(33 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-33 {\n padding-right: calc(33 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-33 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-33 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-34 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 34);\n}\n\n.ag-ltr .ag-row-group-indent-34 {\n padding-left: calc(34 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-34 {\n padding-right: calc(34 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-34 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-34 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-35 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 35);\n}\n\n.ag-ltr .ag-row-group-indent-35 {\n padding-left: calc(35 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-35 {\n padding-right: calc(35 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-35 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-35 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-36 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 36);\n}\n\n.ag-ltr .ag-row-group-indent-36 {\n padding-left: calc(36 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-36 {\n padding-right: calc(36 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-36 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-36 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-37 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 37);\n}\n\n.ag-ltr .ag-row-group-indent-37 {\n padding-left: calc(37 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-37 {\n padding-right: calc(37 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-37 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-37 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-38 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 38);\n}\n\n.ag-ltr .ag-row-group-indent-38 {\n padding-left: calc(38 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-38 {\n padding-right: calc(38 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-38 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-38 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-39 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 39);\n}\n\n.ag-ltr .ag-row-group-indent-39 {\n padding-left: calc(39 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-39 {\n padding-right: calc(39 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-39 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-39 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-40 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 40);\n}\n\n.ag-ltr .ag-row-group-indent-40 {\n padding-left: calc(40 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-40 {\n padding-right: calc(40 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-40 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-40 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-41 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 41);\n}\n\n.ag-ltr .ag-row-group-indent-41 {\n padding-left: calc(41 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-41 {\n padding-right: calc(41 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-41 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-41 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-42 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 42);\n}\n\n.ag-ltr .ag-row-group-indent-42 {\n padding-left: calc(42 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-42 {\n padding-right: calc(42 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-42 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-42 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-43 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 43);\n}\n\n.ag-ltr .ag-row-group-indent-43 {\n padding-left: calc(43 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-43 {\n padding-right: calc(43 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-43 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-43 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-44 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 44);\n}\n\n.ag-ltr .ag-row-group-indent-44 {\n padding-left: calc(44 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-44 {\n padding-right: calc(44 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-44 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-44 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-45 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 45);\n}\n\n.ag-ltr .ag-row-group-indent-45 {\n padding-left: calc(45 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-45 {\n padding-right: calc(45 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-45 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-45 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-46 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 46);\n}\n\n.ag-ltr .ag-row-group-indent-46 {\n padding-left: calc(46 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-46 {\n padding-right: calc(46 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-46 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-46 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-47 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 47);\n}\n\n.ag-ltr .ag-row-group-indent-47 {\n padding-left: calc(47 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-47 {\n padding-right: calc(47 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-47 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-47 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-48 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 48);\n}\n\n.ag-ltr .ag-row-group-indent-48 {\n padding-left: calc(48 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-48 {\n padding-right: calc(48 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-48 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-48 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-49 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 49);\n}\n\n.ag-ltr .ag-row-group-indent-49 {\n padding-left: calc(49 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-49 {\n padding-right: calc(49 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-49 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-49 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-50 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 50);\n}\n\n.ag-ltr .ag-row-group-indent-50 {\n padding-left: calc(50 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-50 {\n padding-right: calc(50 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-50 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-50 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-51 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 51);\n}\n\n.ag-ltr .ag-row-group-indent-51 {\n padding-left: calc(51 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-51 {\n padding-right: calc(51 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-51 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-51 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-52 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 52);\n}\n\n.ag-ltr .ag-row-group-indent-52 {\n padding-left: calc(52 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-52 {\n padding-right: calc(52 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-52 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-52 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-53 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 53);\n}\n\n.ag-ltr .ag-row-group-indent-53 {\n padding-left: calc(53 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-53 {\n padding-right: calc(53 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-53 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-53 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-54 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 54);\n}\n\n.ag-ltr .ag-row-group-indent-54 {\n padding-left: calc(54 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-54 {\n padding-right: calc(54 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-54 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-54 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-55 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 55);\n}\n\n.ag-ltr .ag-row-group-indent-55 {\n padding-left: calc(55 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-55 {\n padding-right: calc(55 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-55 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-55 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-56 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 56);\n}\n\n.ag-ltr .ag-row-group-indent-56 {\n padding-left: calc(56 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-56 {\n padding-right: calc(56 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-56 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-56 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-57 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 57);\n}\n\n.ag-ltr .ag-row-group-indent-57 {\n padding-left: calc(57 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-57 {\n padding-right: calc(57 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-57 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-57 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-58 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 58);\n}\n\n.ag-ltr .ag-row-group-indent-58 {\n padding-left: calc(58 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-58 {\n padding-right: calc(58 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-58 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-58 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-59 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 59);\n}\n\n.ag-ltr .ag-row-group-indent-59 {\n padding-left: calc(59 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-59 {\n padding-right: calc(59 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-59 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-59 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-60 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 60);\n}\n\n.ag-ltr .ag-row-group-indent-60 {\n padding-left: calc(60 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-60 {\n padding-right: calc(60 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-60 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-60 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-61 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 61);\n}\n\n.ag-ltr .ag-row-group-indent-61 {\n padding-left: calc(61 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-61 {\n padding-right: calc(61 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-61 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-61 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-62 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 62);\n}\n\n.ag-ltr .ag-row-group-indent-62 {\n padding-left: calc(62 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-62 {\n padding-right: calc(62 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-62 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-62 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-63 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 63);\n}\n\n.ag-ltr .ag-row-group-indent-63 {\n padding-left: calc(63 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-63 {\n padding-right: calc(63 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-63 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-63 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-64 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 64);\n}\n\n.ag-ltr .ag-row-group-indent-64 {\n padding-left: calc(64 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-64 {\n padding-right: calc(64 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-64 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-64 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-65 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 65);\n}\n\n.ag-ltr .ag-row-group-indent-65 {\n padding-left: calc(65 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-65 {\n padding-right: calc(65 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-65 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-65 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-66 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 66);\n}\n\n.ag-ltr .ag-row-group-indent-66 {\n padding-left: calc(66 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-66 {\n padding-right: calc(66 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-66 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-66 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-67 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 67);\n}\n\n.ag-ltr .ag-row-group-indent-67 {\n padding-left: calc(67 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-67 {\n padding-right: calc(67 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-67 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-67 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-68 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 68);\n}\n\n.ag-ltr .ag-row-group-indent-68 {\n padding-left: calc(68 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-68 {\n padding-right: calc(68 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-68 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-68 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-69 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 69);\n}\n\n.ag-ltr .ag-row-group-indent-69 {\n padding-left: calc(69 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-69 {\n padding-right: calc(69 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-69 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-69 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-70 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 70);\n}\n\n.ag-ltr .ag-row-group-indent-70 {\n padding-left: calc(70 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-70 {\n padding-right: calc(70 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-70 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-70 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-71 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 71);\n}\n\n.ag-ltr .ag-row-group-indent-71 {\n padding-left: calc(71 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-71 {\n padding-right: calc(71 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-71 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-71 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-72 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 72);\n}\n\n.ag-ltr .ag-row-group-indent-72 {\n padding-left: calc(72 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-72 {\n padding-right: calc(72 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-72 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-72 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-73 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 73);\n}\n\n.ag-ltr .ag-row-group-indent-73 {\n padding-left: calc(73 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-73 {\n padding-right: calc(73 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-73 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-73 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-74 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 74);\n}\n\n.ag-ltr .ag-row-group-indent-74 {\n padding-left: calc(74 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-74 {\n padding-right: calc(74 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-74 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-74 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-75 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 75);\n}\n\n.ag-ltr .ag-row-group-indent-75 {\n padding-left: calc(75 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-75 {\n padding-right: calc(75 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-75 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-75 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-76 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 76);\n}\n\n.ag-ltr .ag-row-group-indent-76 {\n padding-left: calc(76 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-76 {\n padding-right: calc(76 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-76 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-76 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-77 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 77);\n}\n\n.ag-ltr .ag-row-group-indent-77 {\n padding-left: calc(77 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-77 {\n padding-right: calc(77 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-77 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-77 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-78 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 78);\n}\n\n.ag-ltr .ag-row-group-indent-78 {\n padding-left: calc(78 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-78 {\n padding-right: calc(78 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-78 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-78 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-79 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 79);\n}\n\n.ag-ltr .ag-row-group-indent-79 {\n padding-left: calc(79 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-79 {\n padding-right: calc(79 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-79 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-79 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-80 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 80);\n}\n\n.ag-ltr .ag-row-group-indent-80 {\n padding-left: calc(80 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-80 {\n padding-right: calc(80 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-80 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-80 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-81 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 81);\n}\n\n.ag-ltr .ag-row-group-indent-81 {\n padding-left: calc(81 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-81 {\n padding-right: calc(81 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-81 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-81 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-82 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 82);\n}\n\n.ag-ltr .ag-row-group-indent-82 {\n padding-left: calc(82 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-82 {\n padding-right: calc(82 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-82 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-82 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-83 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 83);\n}\n\n.ag-ltr .ag-row-group-indent-83 {\n padding-left: calc(83 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-83 {\n padding-right: calc(83 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-83 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-83 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-84 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 84);\n}\n\n.ag-ltr .ag-row-group-indent-84 {\n padding-left: calc(84 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-84 {\n padding-right: calc(84 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-84 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-84 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-85 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 85);\n}\n\n.ag-ltr .ag-row-group-indent-85 {\n padding-left: calc(85 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-85 {\n padding-right: calc(85 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-85 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-85 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-86 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 86);\n}\n\n.ag-ltr .ag-row-group-indent-86 {\n padding-left: calc(86 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-86 {\n padding-right: calc(86 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-86 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-86 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-87 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 87);\n}\n\n.ag-ltr .ag-row-group-indent-87 {\n padding-left: calc(87 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-87 {\n padding-right: calc(87 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-87 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-87 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-88 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 88);\n}\n\n.ag-ltr .ag-row-group-indent-88 {\n padding-left: calc(88 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-88 {\n padding-right: calc(88 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-88 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-88 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-89 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 89);\n}\n\n.ag-ltr .ag-row-group-indent-89 {\n padding-left: calc(89 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-89 {\n padding-right: calc(89 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-89 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-89 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-90 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 90);\n}\n\n.ag-ltr .ag-row-group-indent-90 {\n padding-left: calc(90 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-90 {\n padding-right: calc(90 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-90 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-90 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-91 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 91);\n}\n\n.ag-ltr .ag-row-group-indent-91 {\n padding-left: calc(91 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-91 {\n padding-right: calc(91 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-91 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-91 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-92 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 92);\n}\n\n.ag-ltr .ag-row-group-indent-92 {\n padding-left: calc(92 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-92 {\n padding-right: calc(92 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-92 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-92 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-93 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 93);\n}\n\n.ag-ltr .ag-row-group-indent-93 {\n padding-left: calc(93 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-93 {\n padding-right: calc(93 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-93 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-93 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-94 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 94);\n}\n\n.ag-ltr .ag-row-group-indent-94 {\n padding-left: calc(94 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-94 {\n padding-right: calc(94 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-94 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-94 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-95 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 95);\n}\n\n.ag-ltr .ag-row-group-indent-95 {\n padding-left: calc(95 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-95 {\n padding-right: calc(95 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-95 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-95 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-96 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 96);\n}\n\n.ag-ltr .ag-row-group-indent-96 {\n padding-left: calc(96 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-96 {\n padding-right: calc(96 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-96 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-96 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-97 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 97);\n}\n\n.ag-ltr .ag-row-group-indent-97 {\n padding-left: calc(97 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-97 {\n padding-right: calc(97 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-97 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-97 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-98 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 98);\n}\n\n.ag-ltr .ag-row-group-indent-98 {\n padding-left: calc(98 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-98 {\n padding-right: calc(98 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-98 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-98 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-left: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n.ag-rtl .ag-row > .ag-cell-wrapper.ag-row-group-indent-99 {\n padding-right: calc(var(--ag-cell-horizontal-padding) + var(--ag-row-group-indent-size) * 99);\n}\n\n.ag-ltr .ag-row-group-indent-99 {\n padding-left: calc(99 * var(--ag-row-group-indent-size));\n}\n.ag-rtl .ag-row-group-indent-99 {\n padding-right: calc(99 * var(--ag-row-group-indent-size));\n}\n\n.ag-ltr .ag-row-level-99 .ag-pivot-leaf-group {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-level-99 .ag-pivot-leaf-group {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-ltr .ag-row-group-leaf-indent {\n margin-left: var(--ag-row-group-indent-size);\n}\n.ag-rtl .ag-row-group-leaf-indent {\n margin-right: var(--ag-row-group-indent-size);\n}\n\n.ag-value-change-delta {\n padding-right: 2px;\n}\n\n.ag-value-change-delta-up {\n color: var(--ag-value-change-delta-up-color);\n}\n\n.ag-value-change-delta-down {\n color: var(--ag-value-change-delta-down-color);\n}\n\n.ag-value-change-value {\n background-color: transparent;\n border-radius: 1px;\n padding-left: 1px;\n padding-right: 1px;\n transition: background-color 1s;\n}\n\n.ag-value-change-value-highlight {\n background-color: var(--ag-value-change-value-highlight-background-color);\n transition: background-color 0.1s;\n}\n\n.ag-cell-data-changed {\n background-color: var(--ag-value-change-value-highlight-background-color) !important;\n}\n\n.ag-cell-data-changed-animation {\n background-color: transparent;\n}\n\n.ag-cell-highlight {\n background-color: var(--ag-range-selection-highlight-color) !important;\n}\n\n.ag-row {\n height: var(--ag-row-height);\n background-color: var(--ag-background-color);\n color: var(--ag-data-color);\n border-bottom: var(--ag-row-border-style) var(--ag-row-border-color) var(--ag-row-border-width);\n}\n\n.ag-row-highlight-above::after, .ag-row-highlight-below::after {\n content: \"\";\n position: absolute;\n width: calc(100% - 1px);\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n left: 1px;\n}\n\n.ag-row-highlight-above::after {\n top: -1px;\n}\n\n.ag-row-highlight-above.ag-row-first::after {\n top: 0;\n}\n\n.ag-row-highlight-below::after {\n bottom: 0px;\n}\n\n.ag-row-odd {\n background-color: var(--ag-odd-row-background-color);\n}\n\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-left-spacer:not(.ag-scroller-corner) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n.ag-body-horizontal-scroll:not(.ag-scrollbar-invisible) .ag-horizontal-right-spacer:not(.ag-scroller-corner) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-row-selected::before {\n content: \"\";\n background-color: var(--ag-selected-row-background-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n\n.ag-row-hover:not(.ag-full-width-row)::before,\n.ag-row-hover.ag-full-width-row.ag-row-group::before {\n content: \"\";\n background-color: var(--ag-row-hover-color);\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n}\n\n.ag-row-hover.ag-full-width-row.ag-row-group > * {\n position: relative;\n}\n\n.ag-row-hover.ag-row-selected::before {\n background-color: var(--ag-row-hover-color);\n background-image: linear-gradient(var(--ag-selected-row-background-color), var(--ag-selected-row-background-color));\n}\n\n.ag-column-hover {\n background-color: var(--ag-column-hover-color);\n}\n\n.ag-ltr .ag-right-aligned-cell {\n text-align: right;\n}\n.ag-rtl .ag-right-aligned-cell {\n text-align: left;\n}\n\n.ag-ltr .ag-right-aligned-cell .ag-cell-value,\n.ag-ltr .ag-right-aligned-cell .ag-group-value {\n margin-left: auto;\n}\n.ag-rtl .ag-right-aligned-cell .ag-cell-value,\n.ag-rtl .ag-right-aligned-cell .ag-group-value {\n margin-right: auto;\n}\n\n.ag-cell, .ag-full-width-row .ag-cell-wrapper.ag-row-group {\n --ag-internal-calculated-line-height: var(--ag-line-height, calc(var(--ag-row-height) - var(--ag-row-border-width)));\n --ag-internal-padded-row-height: calc(var(--ag-row-height) - var(--ag-row-border-width));\n border: 1px solid transparent;\n line-height: min(var(--ag-internal-calculated-line-height), var(--ag-internal-padded-row-height));\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\n.ag-row > .ag-cell-wrapper {\n padding-left: calc(var(--ag-cell-horizontal-padding) - 1px);\n padding-right: calc(var(--ag-cell-horizontal-padding) - 1px);\n}\n\n.ag-row-dragging {\n cursor: move;\n opacity: 0.5;\n}\n\n.ag-cell-inline-editing {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-popup-editor {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background-color: var(--ag-control-panel-background-color);\n padding: 0;\n}\n\n.ag-large-text-input {\n height: auto;\n padding: var(--ag-cell-horizontal-padding);\n}\n\n.ag-rtl .ag-large-text-input textarea {\n resize: none;\n}\n\n.ag-details-row {\n padding: calc(var(--ag-grid-size) * 5);\n background-color: var(--ag-background-color);\n}\n\n.ag-layout-auto-height .ag-center-cols-clipper, .ag-layout-auto-height .ag-center-cols-container, .ag-layout-print .ag-center-cols-clipper, .ag-layout-print .ag-center-cols-container {\n min-height: 50px;\n}\n\n.ag-overlay-loading-wrapper {\n background-color: var(--ag-modal-overlay-background-color);\n}\n\n.ag-overlay-loading-center {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n}\n\n.ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 30px;\n}\n\n.ag-loading {\n display: flex;\n height: 100%;\n align-items: center;\n}\n.ag-ltr .ag-loading {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-loading {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-loading-icon {\n padding-right: var(--ag-cell-widget-spacing);\n}\n.ag-rtl .ag-loading-icon {\n padding-left: var(--ag-cell-widget-spacing);\n}\n\n.ag-icon-loading {\n animation-name: spin;\n animation-duration: 1000ms;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n.ag-floating-top {\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-floating-bottom {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-cell {\n border-right: var(--ag-cell-horizontal-border);\n}\n.ag-rtl .ag-cell {\n border-left: var(--ag-cell-horizontal-border);\n}\n.ag-ltr .ag-cell {\n border-right-width: 1px;\n}\n.ag-rtl .ag-cell {\n border-left-width: 1px;\n}\n\n.ag-cell.ag-cell-first-right-pinned:not(.ag-cell-range-left):not(.ag-cell-range-single-cell) {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell.ag-cell-last-left-pinned:not(.ag-cell-range-right):not(.ag-cell-range-single-cell) {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-cell-range-selected:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart {\n background-color: var(--ag-range-selection-chart-background-color) !important;\n}\n.ag-cell-range-selected:not(.ag-cell-focus).ag-cell-range-chart.ag-cell-range-chart-category,\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-single-cell:not(.ag-cell-inline-editing).ag-cell-range-chart.ag-cell-range-chart-category {\n background-color: var(--ag-range-selection-chart-category-background-color) !important;\n}\n\n.ag-cell-range-selected-1:not(.ag-cell-focus),\n.ag-root:not(.ag-context-menu-open) .ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-1:not(.ag-cell-inline-editing) {\n background-color: var(--ag-range-selection-background-color);\n}\n\n.ag-cell-range-selected-2:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-2 {\n background-color: var(--ag-range-selection-background-color-2);\n}\n\n.ag-cell-range-selected-3:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-3 {\n background-color: var(--ag-range-selection-background-color-3);\n}\n\n.ag-cell-range-selected-4:not(.ag-cell-focus),\n.ag-body-viewport:not(.ag-has-focus) .ag-cell-range-selected-4 {\n background-color: var(--ag-range-selection-background-color-4);\n}\n\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-top {\n border-top-color: var(--ag-range-selection-border-color);\n border-top-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-right {\n border-right-color: var(--ag-range-selection-border-color);\n border-right-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-bottom {\n border-bottom-color: var(--ag-range-selection-border-color);\n border-bottom-style: var(--ag-range-selection-border-style);\n}\n.ag-cell.ag-cell-range-selected:not(.ag-cell-range-single-cell).ag-cell-range-left {\n border-left-color: var(--ag-range-selection-border-color);\n border-left-style: var(--ag-range-selection-border-style);\n}\n\n.ag-ltr .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-ltr .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-ltr .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-ltr .ag-cell-range-single-cell,\n.ag-ltr .ag-cell-range-single-cell.ag-cell-range-handle, .ag-rtl .ag-cell-focus:not(.ag-cell-range-selected):focus-within,\n.ag-rtl .ag-context-menu-open .ag-cell-focus:not(.ag-cell-range-selected),\n.ag-rtl .ag-full-width-row.ag-row-focus:focus .ag-cell-wrapper.ag-row-group,\n.ag-rtl .ag-cell-range-single-cell,\n.ag-rtl .ag-cell-range-single-cell.ag-cell-range-handle {\n border: 1px solid;\n border-color: var(--ag-range-selection-border-color);\n border-style: var(--ag-range-selection-border-style);\n outline: initial;\n}\n\n.ag-cell.ag-selection-fill-top,\n.ag-cell.ag-selection-fill-top.ag-cell-range-selected {\n border-top: 1px dashed;\n border-top-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-right,\n.ag-ltr .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-right,\n.ag-rtl .ag-cell.ag-selection-fill-right.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-cell.ag-selection-fill-bottom,\n.ag-cell.ag-selection-fill-bottom.ag-cell-range-selected {\n border-bottom: 1px dashed;\n border-bottom-color: var(--ag-range-selection-border-color);\n}\n\n.ag-ltr .ag-cell.ag-selection-fill-left,\n.ag-ltr .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-left: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n.ag-rtl .ag-cell.ag-selection-fill-left,\n.ag-rtl .ag-cell.ag-selection-fill-left.ag-cell-range-selected {\n border-right: 1px dashed var(--ag-range-selection-border-color) !important;\n}\n\n.ag-fill-handle, .ag-range-handle {\n position: absolute;\n width: 6px;\n height: 6px;\n bottom: -1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-ltr .ag-fill-handle, .ag-ltr .ag-range-handle {\n right: -1px;\n}\n.ag-rtl .ag-fill-handle, .ag-rtl .ag-range-handle {\n left: -1px;\n}\n\n.ag-fill-handle {\n cursor: cell;\n}\n\n.ag-range-handle {\n cursor: nwse-resize;\n}\n\n.ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n\n.ag-menu {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n padding: 0;\n}\n\n.ag-menu-list {\n cursor: default;\n padding: var(--ag-grid-size) 0;\n}\n\n.ag-menu-separator {\n height: calc(var(--ag-grid-size) * 2 + 1px);\n}\n\n.ag-menu-separator-part::after {\n content: \"\";\n display: block;\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-menu-option-active, .ag-compact-menu-option-active {\n background-color: var(--ag-row-hover-color);\n}\n\n.ag-menu-option-part, .ag-compact-menu-option-part {\n line-height: var(--ag-icon-size);\n padding: calc(var(--ag-grid-size) + 2px) 0;\n}\n\n.ag-menu-option-disabled, .ag-compact-menu-option-disabled {\n opacity: 0.5;\n}\n\n.ag-menu-option-icon, .ag-compact-menu-option-icon {\n width: var(--ag-icon-size);\n}\n.ag-ltr .ag-menu-option-icon, .ag-ltr .ag-compact-menu-option-icon {\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-menu-option-icon, .ag-rtl .ag-compact-menu-option-icon {\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-menu-option-text, .ag-compact-menu-option-text {\n padding-left: calc(var(--ag-grid-size) * 2);\n padding-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-menu-option-shortcut, .ag-ltr .ag-compact-menu-option-shortcut {\n padding-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-menu-option-shortcut, .ag-rtl .ag-compact-menu-option-shortcut {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-menu-option-popup-pointer, .ag-compact-menu-option-popup-pointer {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-tabs {\n min-width: var(--ag-tab-min-width);\n}\n\n.ag-tabs-header {\n width: 100%;\n display: flex;\n}\n\n.ag-tab {\n border-bottom: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-bottom var(--ag-selected-tab-underline-transition-speed);\n display: flex;\n flex: none;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.ag-keyboard-focus .ag-tab:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-tab:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-tab-selected {\n border-bottom-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-menu-header {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-filter-separator {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-filter-select .ag-picker-field-wrapper {\n width: 0;\n}\n\n.ag-filter-condition-operator {\n height: 17px;\n}\n\n.ag-ltr .ag-filter-condition-operator-or {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-condition-operator-or {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-set-filter-select-all {\n padding-top: var(--ag-widget-container-vertical-padding);\n}\n\n.ag-set-filter-list, .ag-filter-no-matches {\n height: calc(var(--ag-list-item-height) * 6);\n}\n\n.ag-set-filter-tree-list {\n height: calc(var(--ag-list-item-height) * 10);\n}\n\n.ag-set-filter-filter {\n margin-top: var(--ag-widget-container-vertical-padding);\n margin-left: var(--ag-widget-container-horizontal-padding);\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-to {\n margin-top: var(--ag-widget-vertical-spacing);\n}\n\n.ag-mini-filter {\n margin: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-set-filter-item {\n margin: 0px var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-ltr .ag-set-filter-add-group-indent {\n margin-left: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-set-filter-add-group-indent {\n margin-right: calc(var(--ag-widget-container-horizontal-padding) + var(--ag-icon-size) + var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-set-filter-indent-1 {\n padding-left: calc(1 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-1 {\n padding-right: calc(1 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-2 {\n padding-left: calc(2 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-2 {\n padding-right: calc(2 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-3 {\n padding-left: calc(3 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-3 {\n padding-right: calc(3 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-4 {\n padding-left: calc(4 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-4 {\n padding-right: calc(4 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-5 {\n padding-left: calc(5 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-5 {\n padding-right: calc(5 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-6 {\n padding-left: calc(6 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-6 {\n padding-right: calc(6 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-7 {\n padding-left: calc(7 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-7 {\n padding-right: calc(7 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-8 {\n padding-left: calc(8 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-8 {\n padding-right: calc(8 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-indent-9 {\n padding-left: calc(9 * var(--ag-set-filter-indent-size));\n}\n.ag-rtl .ag-set-filter-indent-9 {\n padding-right: calc(9 * var(--ag-set-filter-indent-size));\n}\n\n.ag-ltr .ag-set-filter-group-icons {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-set-filter-group-icons {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-filter-apply-panel {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-filter-apply-panel-button {\n line-height: 1.5;\n}\n.ag-ltr .ag-filter-apply-panel-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-rtl .ag-filter-apply-panel-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-simple-filter-body-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n overflow-y: auto;\n min-height: calc(var(--ag-list-item-height) + var(--ag-widget-container-vertical-padding) + var(--ag-widget-vertical-spacing));\n}\n.ag-simple-filter-body-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n.ag-simple-filter-body-wrapper .ag-resizer-wrapper {\n margin: 0;\n}\n\n.ag-menu:not(.ag-tabs) .ag-filter .ag-simple-filter-body-wrapper,\n.ag-menu:not(.ag-tabs) .ag-filter > *:not(.ag-filter-wrapper) {\n min-width: calc(var(--ag-menu-min-width) - 2px);\n}\n\n.ag-filter-no-matches {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-multi-filter-menu-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-multi-filter-group-title-bar {\n padding: calc(var(--ag-grid-size) * 2) var(--ag-grid-size);\n background-color: transparent;\n}\n\n.ag-group-filter-field-select-wrapper {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-group-filter-field-select-wrapper > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-multi-filter-group-title-bar:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-side-bar {\n position: relative;\n}\n\n.ag-tool-panel-wrapper {\n width: var(--ag-side-bar-panel-width);\n background-color: var(--ag-control-panel-background-color);\n}\n\n.ag-side-buttons {\n padding-top: calc(var(--ag-grid-size) * 4);\n width: calc(var(--ag-icon-size) + 4px);\n position: relative;\n color: var(--ag-foreground-color);\n overflow: hidden;\n}\n\nbutton.ag-side-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n background: transparent;\n padding: calc(var(--ag-grid-size) * 2) 0 calc(var(--ag-grid-size) * 2) 0;\n width: 100%;\n margin: 0;\n min-height: calc(var(--ag-grid-size) * 18);\n background-position-y: center;\n background-position-x: center;\n background-repeat: no-repeat;\n border: none;\n border-top: var(--ag-borders-side-button) var(--ag-border-color);\n border-bottom: var(--ag-borders-side-button) var(--ag-border-color);\n}\nbutton.ag-side-button-button:focus {\n box-shadow: none;\n}\n\n.ag-keyboard-focus .ag-side-button-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-side-button-button:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-selected button.ag-side-button-button {\n background-color: var(--ag-side-button-selected-background-color);\n}\n\n.ag-side-button-icon-wrapper {\n margin-bottom: 3px;\n}\n\n.ag-ltr .ag-side-bar-left,\n.ag-rtl .ag-side-bar-right {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-rtl .ag-side-bar-right .ag-tool-panel-wrapper {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-side-bar-left .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-side-button-button {\n border-right: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-right var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-ltr .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-rtl .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-right-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-rtl .ag-side-bar-left,\n.ag-ltr .ag-side-bar-right {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-tool-panel-wrapper,\n.ag-ltr .ag-side-bar-right .ag-tool-panel-wrapper {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-side-bar-left .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-side-button-button {\n border-left: var(--ag-selected-tab-underline-width) solid transparent;\n transition: border-left var(--ag-selected-tab-underline-transition-speed);\n}\n.ag-rtl .ag-side-bar-left .ag-selected .ag-side-button-button,\n.ag-ltr .ag-side-bar-right .ag-selected .ag-side-button-button {\n border-left-color: var(--ag-selected-tab-underline-color);\n}\n\n.ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 6);\n}\n\n.ag-ltr .ag-filter-toolpanel-header,\n.ag-ltr .ag-filter-toolpanel-search {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-header,\n.ag-rtl .ag-filter-toolpanel-search {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-filter-toolpanel-header:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n content: var(--ag-icon-font-code-filter, \"\\f115\");\n position: absolute;\n}\n.ag-ltr .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-group.ag-has-filter > .ag-group-title-bar .ag-group-title::after {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 8);\n}\n\n.ag-filter-toolpanel-group-item {\n margin-top: calc(var(--ag-grid-size) * 0.5);\n margin-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n\n.ag-filter-toolpanel-search {\n height: var(--ag-header-height);\n}\n\n.ag-filter-toolpanel-search-input {\n flex-grow: 1;\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-ltr .ag-filter-toolpanel-search-input {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-search-input {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-0 {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-ltr .ag-filter-toolpanel-expand,\n.ag-ltr .ag-filter-toolpanel-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-expand,\n.ag-rtl .ag-filter-toolpanel-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-1-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-1 .ag-filter-toolpanel-group-level-2-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 1 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-2-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-2 .ag-filter-toolpanel-group-level-3-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 2 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-3-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-3 .ag-filter-toolpanel-group-level-4-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 3 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-4-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-4 .ag-filter-toolpanel-group-level-5-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 4 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-5-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-5 .ag-filter-toolpanel-group-level-6-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 5 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-6-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-6 .ag-filter-toolpanel-group-level-7-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 6 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-7-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-7 .ag-filter-toolpanel-group-level-8-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 7 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-8-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-8 .ag-filter-toolpanel-group-level-9-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 8 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-9-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-9 .ag-filter-toolpanel-group-level-10-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 9 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-10-header.ag-filter-toolpanel-group-title-bar {\n background-color: transparent;\n}\n.ag-ltr .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-left: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n.ag-rtl .ag-filter-toolpanel-group-level-10 .ag-filter-toolpanel-group-level-11-header {\n padding-right: calc(var(--ag-filter-tool-panel-group-indent) * 10 + var(--ag-grid-size));\n}\n\n.ag-filter-toolpanel-instance-header.ag-filter-toolpanel-group-level-1-header {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-filter-toolpanel-instance-filter {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n border-top: var(--ag-borders) var(--ag-border-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-filter-toolpanel-instance-header-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-filter-toolpanel-instance-header-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-set-filter-group-icons {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-pivot-mode-panel {\n min-height: var(--ag-header-height);\n height: var(--ag-header-height);\n display: flex;\n}\n\n.ag-pivot-mode-select {\n display: flex;\n align-items: center;\n}\n.ag-ltr .ag-pivot-mode-select {\n margin-left: var(--ag-widget-container-horizontal-padding);\n}\n.ag-rtl .ag-pivot-mode-select {\n margin-right: var(--ag-widget-container-horizontal-padding);\n}\n\n.ag-keyboard-focus .ag-column-select-header:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-select-header:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-select-header {\n height: var(--ag-header-height);\n align-items: center;\n padding: 0 var(--ag-widget-container-horizontal-padding);\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-panel-column-select {\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-column-group-icons,\n.ag-column-select-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-select-list .ag-list-item-hovered::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-column-select-list .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-column-select-list .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-header {\n background-color: var(--ag-header-background-color);\n border-bottom: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-row {\n color: var(--ag-header-foreground-color);\n height: var(--ag-header-height);\n}\n\n.ag-pinned-right-header {\n border-left: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-pinned-left-header {\n border-right: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-ltr .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell:not(.ag-right-aligned-header) .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-ltr .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-right: var(--ag-grid-size);\n}\n.ag-rtl .ag-header-cell.ag-right-aligned-header .ag-header-label-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-header-cell,\n.ag-header-group-cell {\n padding-left: var(--ag-cell-horizontal-padding);\n padding-right: var(--ag-cell-horizontal-padding);\n}\n.ag-header-cell.ag-header-cell-moving,\n.ag-header-group-cell.ag-header-cell-moving {\n background-color: var(--ag-header-cell-moving-background-color);\n}\n\n.ag-header-cell.ag-header-span-height::after,\n.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {\n height: calc(100% - var(--ag-grid-size) * 4);\n top: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-keyboard-focus .ag-header-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n.ag-keyboard-focus .ag-header-group-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-header-group-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 4px;\n left: 4px;\n display: block;\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-header-icon {\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-header-expand-icon {\n cursor: pointer;\n}\n.ag-ltr .ag-header-expand-icon {\n padding-left: 4px;\n}\n.ag-rtl .ag-header-expand-icon {\n padding-right: 4px;\n}\n\n.ag-header-row:not(:first-child) .ag-header-cell:not(.ag-header-span-height.ag-header-span-total),\n.ag-header-row:not(:first-child) .ag-header-group-cell.ag-header-group-cell-with-group {\n border-top: var(--ag-borders-critical) var(--ag-border-color);\n}\n\n.ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover, .ag-header-group-cell:not(.ag-column-resizing) + .ag-header-group-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover):not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-resizing) + .ag-header-cell:not(.ag-column-hover).ag-column-resizing,\n.ag-header-group-cell:first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-group-cell:first-of-type.ag-column-resizing,\n.ag-header-cell:not(.ag-column-hover):first-of-type:not(.ag-header-cell-moving):hover,\n.ag-header-cell:not(.ag-column-hover):first-of-type.ag-column-resizing {\n background-color: var(--ag-header-cell-hover-background-color);\n}\n\n.ag-header-cell::after,\n.ag-header-group-cell::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-separator-display);\n width: var(--ag-header-column-separator-width);\n height: var(--ag-header-column-separator-height);\n top: calc(50% - var(--ag-header-column-separator-height) * 0.5);\n background-color: var(--ag-header-column-separator-color);\n}\n.ag-ltr .ag-header-cell::after,\n.ag-ltr .ag-header-group-cell::after {\n right: 0;\n}\n.ag-rtl .ag-header-cell::after,\n.ag-rtl .ag-header-group-cell::after {\n left: 0;\n}\n\n.ag-header-cell-resize {\n display: flex;\n align-items: center;\n}\n\n.ag-header-cell-resize::after {\n content: \"\";\n position: absolute;\n z-index: 1;\n display: var(--ag-header-column-resize-handle-display);\n width: var(--ag-header-column-resize-handle-width);\n height: var(--ag-header-column-resize-handle-height);\n top: calc(50% - var(--ag-header-column-resize-handle-height) * 0.5);\n background-color: var(--ag-header-column-resize-handle-color);\n}\n\n.ag-header-cell.ag-header-span-height::after,\n.ag-header-cell.ag-header-span-height .ag-header-cell-resize::after {\n height: calc(100% - var(--ag-grid-size) * 4);\n top: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-ltr .ag-header-viewport .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n.ag-rtl .ag-header-viewport .ag-header-cell-resize::after {\n right: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-left-header .ag-header-cell-resize::after {\n left: calc(50% - var(--ag-header-column-resize-handle-width));\n}\n\n.ag-pinned-right-header .ag-header-cell-resize::after {\n left: 50%;\n}\n\n.ag-ltr .ag-header-select-all {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-header-select-all {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-floating-filter-button {\n margin-left: calc(var(--ag-grid-size) * 3);\n}\n.ag-rtl .ag-floating-filter-button {\n margin-right: calc(var(--ag-grid-size) * 3);\n}\n\n.ag-floating-filter-button-button {\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n appearance: none;\n background: transparent;\n border: none;\n height: var(--ag-icon-size);\n padding: 0;\n width: var(--ag-icon-size);\n}\n\n.ag-filter-loading {\n background-color: var(--ag-control-panel-background-color);\n height: 100%;\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n position: absolute;\n width: 100%;\n z-index: 1;\n}\n\n.ag-paging-panel {\n border-top: 1px solid;\n border-top-color: var(--ag-border-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-header-height);\n}\n.ag-paging-panel > * {\n margin: 0 var(--ag-cell-horizontal-padding);\n}\n\n.ag-paging-button {\n cursor: pointer;\n}\n\n.ag-paging-button.ag-disabled {\n cursor: default;\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-keyboard-focus .ag-paging-button:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-paging-button:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 0px;\n left: 0px;\n display: block;\n width: calc(100% - 0px);\n height: calc(100% - 0px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-paging-button, .ag-paging-description {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-status-bar {\n border-top: var(--ag-borders) var(--ag-border-color);\n color: var(--ag-disabled-foreground-color);\n padding-right: calc(var(--ag-grid-size) * 4);\n padding-left: calc(var(--ag-grid-size) * 4);\n line-height: 1.5;\n}\n\n.ag-status-name-value-value {\n color: var(--ag-foreground-color);\n}\n\n.ag-status-bar-center {\n text-align: center;\n}\n\n.ag-status-name-value {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n padding-top: calc(var(--ag-grid-size) * 2);\n padding-bottom: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell {\n background: var(--ag-chip-background-color);\n border-radius: calc(var(--ag-grid-size) * 4);\n height: calc(var(--ag-grid-size) * 4);\n padding: 0 calc(var(--ag-grid-size) * 0.5);\n border: 1px solid transparent;\n}\n\n.ag-keyboard-focus .ag-column-drop-cell:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-column-drop-cell:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 2px;\n left: 2px;\n display: block;\n width: calc(100% - 4px);\n height: calc(100% - 4px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-column-drop-cell-text {\n margin: 0 var(--ag-grid-size);\n}\n\n.ag-column-drop-cell-button {\n min-width: calc(var(--ag-grid-size) * 4);\n margin: 0 calc(var(--ag-grid-size) * 0.5);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-cell-drag-handle {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n\n.ag-column-drop-cell-ghost {\n opacity: 0.5;\n}\n\n.ag-column-drop-horizontal {\n background-color: var(--ag-control-panel-background-color);\n color: var(--ag-secondary-foreground-color);\n height: var(--ag-row-height);\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-ltr .ag-column-drop-horizontal {\n padding-left: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal {\n padding-right: var(--ag-cell-horizontal-padding);\n}\n\n.ag-ltr .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-right: var(--ag-borders) var(--ag-border-color);\n}\n.ag-rtl .ag-column-drop-horizontal-half-width:not(:last-child) {\n border-left: var(--ag-borders) var(--ag-border-color);\n}\n\n.ag-column-drop-horizontal-cell-separator {\n margin: 0 var(--ag-grid-size);\n color: var(--ag-secondary-foreground-color);\n}\n\n.ag-column-drop-horizontal-empty-message {\n color: var(--ag-disabled-foreground-color);\n}\n\n.ag-ltr .ag-column-drop-horizontal-icon {\n margin-right: var(--ag-cell-horizontal-padding);\n}\n.ag-rtl .ag-column-drop-horizontal-icon {\n margin-left: var(--ag-cell-horizontal-padding);\n}\n\n.ag-column-drop-vertical-list {\n padding-bottom: var(--ag-grid-size);\n padding-right: var(--ag-grid-size);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-cell {\n margin-top: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical {\n min-height: 50px;\n border-bottom: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n\n.ag-column-drop-vertical-icon {\n margin-left: var(--ag-grid-size);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-column-drop-vertical-empty-message {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n color: var(--ag-disabled-foreground-color);\n margin-top: var(--ag-grid-size);\n}\n\n.ag-select-agg-func-popup {\n border: var(--ag-borders) var(--ag-border-color);\n background: var(--ag-background-color);\n border-radius: var(--ag-card-radius);\n box-shadow: var(--ag-card-shadow);\n padding: var(--ag-grid-size);\n background: var(--ag-background-color);\n height: calc(var(--ag-grid-size) * 5 * 3.5);\n padding: 0;\n}\n\n.ag-select-agg-func-virtual-list-item {\n cursor: default;\n padding-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-select-agg-func-virtual-list-item:hover {\n background-color: var(--ag-selected-row-background-color);\n}\n\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus {\n outline: none;\n}\n.ag-keyboard-focus .ag-select-agg-func-virtual-list-item:focus::after {\n content: \"\";\n position: absolute;\n background-color: transparent;\n pointer-events: none;\n top: 1px;\n left: 1px;\n display: block;\n width: calc(100% - 2px);\n height: calc(100% - 2px);\n border: 1px solid;\n border-color: var(--ag-input-focus-border-color);\n}\n\n.ag-sort-indicator-container {\n display: flex;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: var(--ag-grid-size);\n}\n.ag-rtl .ag-sort-indicator-icon {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-chart {\n position: relative;\n display: flex;\n overflow: hidden;\n width: 100%;\n height: 100%;\n}\n\n.ag-chart-components-wrapper {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-chart-title-edit {\n position: absolute;\n display: none;\n top: 0;\n left: 0;\n text-align: center;\n}\n\n.ag-chart-title-edit.currently-editing {\n display: inline-block;\n}\n\n.ag-chart-canvas-wrapper {\n position: relative;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n.ag-charts-canvas {\n display: block;\n}\n\n.ag-chart-menu {\n position: absolute;\n top: 10px;\n width: 24px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n.ag-ltr .ag-chart-menu {\n right: 20px;\n}\n.ag-rtl .ag-chart-menu {\n left: 20px;\n}\n\n.ag-chart-docked-container {\n position: relative;\n width: 0;\n min-width: 0;\n transition: min-width 0.4s;\n}\n\n.ag-chart-menu-hidden ~ .ag-chart-docked-container {\n max-width: 0;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.ag-chart-tabbed-menu-header {\n flex: none;\n user-select: none;\n cursor: default;\n}\n\n.ag-chart-tabbed-menu-body {\n display: flex;\n flex: 1 1 auto;\n align-items: stretch;\n overflow: hidden;\n}\n\n.ag-chart-tab {\n width: 100%;\n overflow: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings {\n overflow-x: hidden;\n}\n\n.ag-chart-settings-wrapper {\n position: relative;\n flex-direction: column;\n width: 100%;\n height: 100%;\n display: flex;\n overflow: hidden;\n}\n\n.ag-chart-settings-nav-bar {\n display: flex;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 10px;\n user-select: none;\n}\n\n.ag-chart-settings-card-selector {\n display: flex;\n align-items: center;\n justify-content: space-around;\n flex: 1 1 auto;\n height: 100%;\n padding: 0 10px;\n}\n\n.ag-chart-settings-card-item {\n cursor: pointer;\n width: 10px;\n height: 10px;\n background-color: #000;\n position: relative;\n}\n.ag-chart-settings-card-item.ag-not-selected {\n opacity: 0.2;\n}\n.ag-chart-settings-card-item::before {\n content: \" \";\n display: block;\n position: absolute;\n background-color: transparent;\n left: 50%;\n top: 50%;\n margin-left: -10px;\n margin-top: -10px;\n width: 20px;\n height: 20px;\n}\n\n.ag-chart-settings-prev,\n.ag-chart-settings-next {\n position: relative;\n flex: none;\n}\n\n.ag-chart-settings-prev-button,\n.ag-chart-settings-next-button {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: 0;\n}\n\n.ag-chart-settings-mini-charts-container {\n position: relative;\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.ag-chart-settings-mini-wrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n width: 100%;\n min-height: 100%;\n overflow: hidden;\n}\n.ag-chart-settings-mini-wrapper.ag-animating {\n transition: left 0.3s;\n transition-timing-function: ease-in-out;\n}\n\n.ag-chart-mini-thumbnail {\n cursor: pointer;\n}\n\n.ag-chart-mini-thumbnail-canvas {\n display: block;\n}\n\n.ag-chart-data-wrapper,\n.ag-chart-format-wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n user-select: none;\n}\n\n.ag-chart-data-wrapper {\n height: 100%;\n overflow-y: auto;\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-empty-text {\n display: flex;\n top: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.ag-chart .ag-chart-menu {\n display: none;\n}\n\n.ag-chart-menu-hidden:hover .ag-chart-menu {\n display: block;\n}\n\n.ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n display: flex;\n flex-direction: row;\n overflow: auto;\n top: 5px;\n gap: calc(var(--ag-grid-size) * 3 - 8px);\n width: auto;\n}\n.ag-ltr .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n right: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: right;\n}\n.ag-rtl .ag-chart .ag-chart-tool-panel-button-enable .ag-chart-menu {\n left: calc(var(--ag-cell-horizontal-padding) + var(--ag-grid-size) - 4px);\n justify-content: left;\n}\n\n.ag-chart-menu-close {\n display: none;\n}\n\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n position: absolute;\n top: 50%;\n transition: transform 0.33s ease-in-out;\n padding: 0;\n display: block;\n cursor: pointer;\n border: none;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n left: 0px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close .ag-icon {\n padding: 14px 5px 14px 2px;\n}\n.ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n content: \"\";\n position: absolute;\n top: -40px;\n bottom: -40px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: 0px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: 0px;\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n left: -10px;\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:before {\n right: -10px;\n}\n.ag-chart-tool-panel-button-enable .ag-icon-menu {\n display: none;\n}\n\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(3px, -50%);\n}\n.ag-ltr .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-ltr .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(5px, -50%);\n}\n\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close {\n transform: translate(-3px, -50%);\n}\n.ag-rtl .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(0, -50%);\n}\n.ag-rtl .ag-chart-menu-visible .ag-chart-tool-panel-button-enable .ag-chart-menu-close:hover {\n transform: translate(-5px, -50%);\n}\n\n.ag-charts-font-size-color {\n display: flex;\n align-self: stretch;\n justify-content: space-between;\n}\n\n.ag-charts-data-group-item {\n position: relative;\n}\n\n.ag-chart-menu {\n border-radius: var(--ag-card-radius);\n background: var(--ag-background-color);\n}\n\n.ag-chart-menu-icon {\n opacity: 0.5;\n line-height: 24px;\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin: 2px 0;\n cursor: pointer;\n border-radius: var(--ag-card-radius);\n color: var(--ag-secondary-foreground-color);\n}\n.ag-chart-menu-icon:hover {\n opacity: 1;\n}\n\n.ag-chart-mini-thumbnail {\n border: 1px solid var(--ag-secondary-border-color);\n border-radius: 5px;\n margin: 5px;\n}\n.ag-chart-mini-thumbnail:nth-last-child(3), .ag-chart-mini-thumbnail:nth-last-child(3) ~ .ag-chart-mini-thumbnail {\n margin-left: auto;\n margin-right: auto;\n}\n.ag-ltr .ag-chart-mini-thumbnail:first-child {\n margin-left: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:first-child {\n margin-right: 0;\n}\n.ag-ltr .ag-chart-mini-thumbnail:last-child {\n margin-right: 0;\n}\n.ag-rtl .ag-chart-mini-thumbnail:last-child {\n margin-left: 0;\n}\n.ag-chart-mini-thumbnail.ag-selected {\n border-color: var(--ag-minichart-selected-chart-color);\n}\n\n.ag-chart-settings-card-item {\n background: var(--ag-foreground-color);\n width: 8px;\n height: 8px;\n border-radius: 4px;\n}\n.ag-chart-settings-card-item.ag-selected {\n background-color: var(--ag-minichart-selected-page-color);\n}\n\n.ag-chart-data-column-drag-handle {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-charts-settings-group-title-bar,\n.ag-charts-data-group-title-bar,\n.ag-charts-format-top-level-group-title-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n\n.ag-charts-settings-group-container {\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-data-group-container {\n padding: calc(var(--ag-widget-container-vertical-padding) * 0.5) var(--ag-widget-container-horizontal-padding);\n}\n.ag-charts-data-group-container .ag-charts-data-group-item:not(.ag-charts-format-sub-level-group) {\n height: var(--ag-list-item-height);\n}\n.ag-charts-data-group-container .ag-list-item-hovered::after {\n content: \"\";\n position: absolute;\n left: 0;\n right: 0;\n height: 1px;\n background-color: var(--ag-range-selection-border-color);\n}\n.ag-charts-data-group-container .ag-item-highlight-top::after {\n top: 0;\n}\n.ag-charts-data-group-container .ag-item-highlight-bottom::after {\n bottom: 0;\n}\n\n.ag-charts-format-top-level-group-container {\n margin-left: calc(var(--ag-grid-size) * 2);\n padding: var(--ag-grid-size);\n}\n\n.ag-charts-format-top-level-group-item {\n margin: var(--ag-grid-size) 0;\n}\n\n.ag-charts-format-sub-level-group-container {\n padding: var(--ag-widget-container-vertical-padding) var(--ag-widget-container-horizontal-padding);\n padding-bottom: calc(var(--ag-widget-container-vertical-padding) - var(--ag-widget-vertical-spacing));\n}\n.ag-charts-format-sub-level-group-container > * {\n margin-bottom: var(--ag-widget-vertical-spacing);\n}\n\n.ag-charts-group-container.ag-group-container-horizontal {\n padding: var(--ag-grid-size);\n}\n\n.ag-chart-data-section,\n.ag-chart-format-section {\n display: flex;\n margin: 0;\n}\n\n.ag-chart-menu-panel {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-ltr .ag-chart-menu-panel {\n border-left: solid 1px var(--ag-border-color);\n}\n.ag-rtl .ag-chart-menu-panel {\n border-right: solid 1px var(--ag-border-color);\n}\n\n.ag-date-time-list-page-title-bar {\n display: flex;\n}\n\n.ag-date-time-list-page-title {\n flex-grow: 1;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-labels-row,\n.ag-date-time-list-page-entries-row {\n display: flex;\n}\n\n.ag-date-time-list-page-column-label,\n.ag-date-time-list-page-entry {\n flex-basis: 0;\n flex-grow: 1;\n}\n\n.ag-date-time-list-page-entry {\n cursor: pointer;\n text-align: center;\n}\n\n.ag-date-time-list-page-column-label {\n text-align: center;\n}\n\n.ag-input-field-input {\n width: 100%;\n min-width: 0;\n}\n\n.ag-checkbox-input-wrapper {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-checkbox-background-color);\n border-radius: var(--ag-checkbox-border-radius);\n display: inline-block;\n vertical-align: middle;\n flex: none;\n}\n.ag-checkbox-input-wrapper input, .ag-checkbox-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n}\n.ag-checkbox-input-wrapper:focus-within, .ag-checkbox-input-wrapper:active {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-checkbox-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-checkbox-input-wrapper::after {\n content: var(--ag-icon-font-code-checkbox-unchecked, \"\\f108\");\n color: var(--ag-checkbox-unchecked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-checkbox-input-wrapper.ag-checked::after {\n content: var(--ag-icon-font-code-checkbox-checked, \"\\f106\");\n color: var(--ag-checkbox-checked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-checkbox-input-wrapper.ag-indeterminate::after {\n content: var(--ag-icon-font-code-checkbox-indeterminate, \"\\f107\");\n color: var(--ag-checkbox-indeterminate-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\n.ag-toggle-button-input-wrapper {\n box-sizing: border-box;\n width: var(--ag-toggle-button-width);\n height: var(--ag-toggle-button-height);\n background-color: var(--ag-toggle-button-off-background-color);\n border-radius: calc(var(--ag-toggle-button-height) * 0.5);\n position: relative;\n flex: none;\n border: var(--ag-toggle-button-border-width) solid;\n border-color: var(--ag-toggle-button-off-border-color);\n}\n.ag-toggle-button-input-wrapper input {\n opacity: 0;\n height: 100%;\n width: 100%;\n}\n.ag-toggle-button-input-wrapper:focus-within {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-toggle-button-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-toggle-button-input-wrapper.ag-checked {\n background-color: var(--ag-toggle-button-on-background-color);\n border-color: var(--ag-toggle-button-on-border-color);\n}\n.ag-toggle-button-input-wrapper::before {\n content: \" \";\n position: absolute;\n top: calc(0px - var(--ag-toggle-button-border-width));\n left: calc(0px - var(--ag-toggle-button-border-width));\n display: block;\n box-sizing: border-box;\n height: var(--ag-toggle-button-height);\n width: var(--ag-toggle-button-height);\n background-color: var(--ag-toggle-button-switch-background-color);\n border-radius: 100%;\n transition: left 100ms;\n border: var(--ag-toggle-button-border-width) solid;\n border-color: var(--ag-toggle-button-switch-border-color);\n}\n.ag-toggle-button-input-wrapper.ag-checked::before {\n left: calc(100% - var(--ag-toggle-button-height));\n border-color: var(--ag-toggle-button-on-border-color);\n}\n\n.ag-radio-button-input-wrapper {\n font-family: var(--ag-icon-font-family);\n font-size: var(--ag-icon-size);\n line-height: var(--ag-icon-size);\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-checkbox-background-color);\n border-radius: var(--ag-checkbox-border-radius);\n display: inline-block;\n vertical-align: middle;\n flex: none;\n border-radius: var(--ag-icon-size);\n}\n.ag-radio-button-input-wrapper input, .ag-radio-button-input-wrapper input {\n -webkit-appearance: none;\n opacity: 0;\n width: 100%;\n height: 100%;\n}\n.ag-radio-button-input-wrapper:focus-within, .ag-radio-button-input-wrapper:active {\n outline: none;\n box-shadow: var(--ag-input-focus-box-shadow);\n}\n.ag-radio-button-input-wrapper.ag-disabled {\n opacity: 0.5;\n}\n.ag-radio-button-input-wrapper::after {\n content: var(--ag-icon-font-code-radio-button-off, \"\\f127\");\n color: var(--ag-checkbox-unchecked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n.ag-radio-button-input-wrapper.ag-checked::after {\n content: var(--ag-icon-font-code-radio-button-on, \"\\f128\");\n color: var(--ag-checkbox-checked-color);\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n}\n\ninput[class^=ag-][type=range] {\n -webkit-appearance: none;\n width: 100%;\n height: 100%;\n background: none;\n overflow: visible;\n}\ninput[class^=ag-][type=range]::-webkit-slider-runnable-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n}\ninput[class^=ag-][type=range]::-moz-range-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n}\ninput[class^=ag-][type=range]::-ms-track {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 3px;\n background-color: var(--ag-border-color);\n border-radius: var(--ag-border-radius);\n border-radius: var(--ag-checkbox-border-radius);\n color: transparent;\n width: calc(100% - 2px);\n}\ninput[class^=ag-][type=range]::-webkit-slider-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n transform: translateY(calc(var(--ag-icon-size) * -0.5 + 1.5px));\n}\ninput[class^=ag-][type=range]::-ms-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n}\ninput[class^=ag-][type=range]::-moz-ag-range-thumb {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n width: var(--ag-icon-size);\n height: var(--ag-icon-size);\n background-color: var(--ag-background-color);\n border: 1px solid;\n border-color: var(--ag-checkbox-unchecked-color);\n border-radius: var(--ag-icon-size);\n}\ninput[class^=ag-][type=range]:focus {\n outline: none;\n}\ninput[class^=ag-][type=range]:focus::-webkit-slider-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^=ag-][type=range]:focus::-ms-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^=ag-][type=range]:focus::-moz-ag-range-thumb {\n box-shadow: var(--ag-input-focus-box-shadow);\n border-color: var(--ag-checkbox-checked-color);\n}\ninput[class^=ag-][type=range]:active::-webkit-slider-runnable-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-][type=range]:active::-moz-ag-range-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-][type=range]:active::-ms-track {\n background-color: var(--ag-input-focus-border-color);\n}\ninput[class^=ag-][type=range]:disabled {\n opacity: 0.5;\n}\n", ""]);
58459// Exports
58460module.exports = exports;
58461
58462
58463/***/ }),
58464/* 282 */
58465/***/ (function(module, exports, __webpack_require__) {
58466
58467var api = __webpack_require__(277);
58468 var content = __webpack_require__(283);
58469
58470 content = content.__esModule ? content.default : content;
58471
58472 if (typeof content === 'string') {
58473 content = [[module.i, content, '']];
58474 }
58475
58476var options = {};
58477
58478options.insert = "head";
58479options.singleton = false;
58480
58481var update = api(content, options);
58482
58483
58484
58485module.exports = content.locals || {};
58486
58487/***/ }),
58488/* 283 */
58489/***/ (function(module, exports, __webpack_require__) {
58490
58491// Imports
58492var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58493exports = ___CSS_LOADER_API_IMPORT___(false);
58494// Module
58495exports.push([module.i, ".ag-theme-alpine, .ag-theme-alpine-dark {\n --ag-alpine-active-color: #2196f3;\n --ag-selected-row-background-color: rgba(33, 150, 243, 0.3);\n --ag-row-hover-color: rgba(33, 150, 243, 0.1);\n --ag-column-hover-color: rgba(33, 150, 243, 0.1);\n --ag-input-focus-border-color: rgba(33, 150, 243, 0.4);\n --ag-range-selection-background-color: rgba(33, 150, 243, 0.2);\n --ag-range-selection-background-color-2: rgba(33, 150, 243, 0.36);\n --ag-range-selection-background-color-3: rgba(33, 150, 243, 0.49);\n --ag-range-selection-background-color-4: rgba(33, 150, 243, 0.59);\n --ag-background-color: #fff;\n --ag-foreground-color: #181d1f;\n --ag-border-color: #babfc7;\n --ag-secondary-border-color: #dde2eb;\n --ag-header-background-color: #f8f8f8;\n --ag-tooltip-background-color: #f8f8f8;\n --ag-odd-row-background-color: #fcfcfc;\n --ag-control-panel-background-color: #f8f8f8;\n --ag-subheader-background-color: #fff;\n --ag-invalid-color: #e02525;\n --ag-checkbox-unchecked-color: #999;\n --ag-checkbox-background-color: var(--ag-background-color);\n --ag-checkbox-checked-color: var(--ag-alpine-active-color);\n --ag-range-selection-border-color: var(--ag-alpine-active-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-input-border-color: var(--ag-border-color);\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-input-focus-box-shadow: 0 0 2px 0.1rem var(--ag-input-focus-border-color);\n --ag-disabled-foreground-color: rgba(24, 29, 31, 0.5);\n --ag-chip-background-color: rgba(24, 29, 31, 0.07);\n --ag-input-disabled-border-color: rgba(186, 191, 199, 0.3);\n --ag-input-disabled-background-color: rgba(186, 191, 199, 0.15);\n --ag-borders: solid 1px;\n --ag-border-radius: 3px;\n --ag-borders-side-button: none;\n --ag-side-button-selected-background-color: transparent;\n --ag-header-column-resize-handle-display: block;\n --ag-header-column-resize-handle-width: 2px;\n --ag-header-column-resize-handle-height: 30%;\n --ag-grid-size: 6px;\n --ag-icon-size: 16px;\n --ag-row-height: calc(var(--ag-grid-size) * 7);\n --ag-header-height: calc(var(--ag-grid-size) * 8);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-column-select-indent-size: var(--ag-icon-size);\n --ag-set-filter-indent-size: var(--ag-icon-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.5);\n --ag-toggle-button-height: 18px;\n --ag-toggle-button-width: 28px;\n --ag-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridAlpine;\n --ag-selected-tab-underline-color: var(--ag-alpine-active-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-selected-tab-underline-transition-speed: 0.3s;\n --ag-tab-min-width: 240px;\n --ag-card-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n --ag-popup-shadow: var(--ag-card-shadow);\n --ag-side-bar-panel-width: 250px;\n}\n\n.ag-theme-alpine-dark {\n --ag-background-color: #181d1f;\n --ag-foreground-color: #fff;\n --ag-border-color: #68686e;\n --ag-secondary-border-color: rgba(88, 86, 82, 0.5);\n --ag-modal-overlay-background-color: rgba(24, 29, 31, 0.66);\n --ag-header-background-color: #222628;\n --ag-tooltip-background-color: #222628;\n --ag-odd-row-background-color: #222628;\n --ag-control-panel-background-color: #222628;\n --ag-subheader-background-color: #000;\n --ag-input-disabled-background-color: #282c2f;\n --ag-input-focus-box-shadow:\n 0 0 2px 0.5px rgba(255, 255, 255, 0.5),\n 0 0 4px 3px var(--ag-input-focus-border-color);\n --ag-card-shadow: 0 1px 20px 1px black;\n --ag-disabled-foreground-color: rgba(255, 255, 255, 0.5);\n --ag-chip-background-color: rgba(255, 255, 255, 0.07);\n --ag-input-disabled-border-color: rgba(104, 104, 110, 0.3);\n --ag-input-disabled-background-color: rgba(104, 104, 110, 0.07);\n}\n\n.ag-theme-alpine .ag-filter-toolpanel-header,\n.ag-theme-alpine .ag-filter-toolpanel-search,\n.ag-theme-alpine .ag-status-bar,\n.ag-theme-alpine .ag-header-row,\n.ag-theme-alpine .ag-panel-title-bar-title,\n.ag-theme-alpine .ag-multi-filter-group-title-bar, .ag-theme-alpine-dark .ag-filter-toolpanel-header,\n.ag-theme-alpine-dark .ag-filter-toolpanel-search,\n.ag-theme-alpine-dark .ag-status-bar,\n.ag-theme-alpine-dark .ag-header-row,\n.ag-theme-alpine-dark .ag-panel-title-bar-title,\n.ag-theme-alpine-dark .ag-multi-filter-group-title-bar {\n font-weight: 700;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-alpine .ag-row, .ag-theme-alpine-dark .ag-row {\n font-size: calc(var(--ag-font-size) + 1px);\n}\n.ag-theme-alpine input[class^=ag-]:not([type]),\n.ag-theme-alpine input[class^=ag-][type=text],\n.ag-theme-alpine input[class^=ag-][type=number],\n.ag-theme-alpine input[class^=ag-][type=tel],\n.ag-theme-alpine input[class^=ag-][type=date],\n.ag-theme-alpine input[class^=ag-][type=datetime-local],\n.ag-theme-alpine textarea[class^=ag-], .ag-theme-alpine-dark input[class^=ag-]:not([type]),\n.ag-theme-alpine-dark input[class^=ag-][type=text],\n.ag-theme-alpine-dark input[class^=ag-][type=number],\n.ag-theme-alpine-dark input[class^=ag-][type=tel],\n.ag-theme-alpine-dark input[class^=ag-][type=date],\n.ag-theme-alpine-dark input[class^=ag-][type=datetime-local],\n.ag-theme-alpine-dark textarea[class^=ag-] {\n min-height: calc(var(--ag-grid-size) * 4);\n border-radius: var(--ag-border-radius);\n}\n.ag-theme-alpine .ag-ltr input[class^=ag-]:not([type]), .ag-theme-alpine .ag-ltr input[class^=ag-][type=text], .ag-theme-alpine .ag-ltr input[class^=ag-][type=number], .ag-theme-alpine .ag-ltr input[class^=ag-][type=tel], .ag-theme-alpine .ag-ltr input[class^=ag-][type=date], .ag-theme-alpine .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-alpine .ag-ltr textarea[class^=ag-], .ag-theme-alpine-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-alpine-dark .ag-ltr textarea[class^=ag-] {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl input[class^=ag-]:not([type]), .ag-theme-alpine .ag-rtl input[class^=ag-][type=text], .ag-theme-alpine .ag-rtl input[class^=ag-][type=number], .ag-theme-alpine .ag-rtl input[class^=ag-][type=tel], .ag-theme-alpine .ag-rtl input[class^=ag-][type=date], .ag-theme-alpine .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-alpine .ag-rtl textarea[class^=ag-], .ag-theme-alpine-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-alpine-dark .ag-rtl textarea[class^=ag-] {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-tab, .ag-theme-alpine-dark .ag-tab {\n padding: calc(var(--ag-grid-size) * 1.5);\n transition: color 0.4s;\n flex: 1 1 auto;\n}\n.ag-theme-alpine .ag-tab-selected, .ag-theme-alpine-dark .ag-tab-selected {\n color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-menu, .ag-theme-alpine-dark .ag-menu {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-theme-alpine .ag-menu-header, .ag-theme-alpine-dark .ag-menu-header {\n background-color: var(--ag-control-panel-background-color);\n padding-top: 1px;\n}\n.ag-theme-alpine .ag-tabs-header, .ag-theme-alpine-dark .ag-tabs-header {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-theme-alpine .ag-charts-settings-group-title-bar,\n.ag-theme-alpine .ag-charts-data-group-title-bar,\n.ag-theme-alpine .ag-charts-format-top-level-group-title-bar, .ag-theme-alpine-dark .ag-charts-settings-group-title-bar,\n.ag-theme-alpine-dark .ag-charts-data-group-title-bar,\n.ag-theme-alpine-dark .ag-charts-format-top-level-group-title-bar {\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n line-height: calc(var(--ag-icon-size) + var(--ag-grid-size) - 2px);\n}\n.ag-theme-alpine .ag-chart-mini-thumbnail, .ag-theme-alpine-dark .ag-chart-mini-thumbnail {\n background-color: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-chart-settings-nav-bar, .ag-theme-alpine-dark .ag-chart-settings-nav-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-theme-alpine .ag-ltr .ag-group-title-bar-icon, .ag-theme-alpine-dark .ag-ltr .ag-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-group-title-bar-icon, .ag-theme-alpine-dark .ag-rtl .ag-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-charts-format-top-level-group-toolbar {\n margin-top: var(--ag-grid-size);\n}\n.ag-theme-alpine .ag-ltr .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-ltr .ag-charts-format-top-level-group-toolbar {\n padding-left: calc(var(--ag-icon-size) * 0.5 + var(--ag-grid-size) * 2);\n}\n\n.ag-theme-alpine .ag-rtl .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-rtl .ag-charts-format-top-level-group-toolbar {\n padding-right: calc(var(--ag-icon-size) * 0.5 + var(--ag-grid-size) * 2);\n}\n\n.ag-theme-alpine .ag-charts-format-sub-level-group, .ag-theme-alpine-dark .ag-charts-format-sub-level-group {\n border-left: dashed 1px;\n border-left-color: var(--ag-border-color);\n padding-left: var(--ag-grid-size);\n margin-bottom: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-title-bar, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-title-bar {\n padding-top: 0;\n padding-bottom: 0;\n background: none;\n font-weight: 700;\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-container, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-container {\n padding-bottom: 0;\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-item:last-child, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-item:last-child {\n margin-bottom: 0;\n}\n.ag-theme-alpine.ag-dnd-ghost, .ag-theme-alpine-dark.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 700;\n}\n.ag-theme-alpine .ag-side-buttons, .ag-theme-alpine-dark .ag-side-buttons {\n width: calc(var(--ag-grid-size) * 5);\n}\n.ag-theme-alpine .ag-standard-button, .ag-theme-alpine-dark .ag-standard-button {\n appearance: none;\n -webkit-appearance: none;\n border-radius: var(--ag-border-radius);\n border: 1px solid;\n border-color: var(--ag-alpine-active-color);\n color: var(--ag-alpine-active-color);\n background-color: var(--ag-background-color);\n font-weight: 600;\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-standard-button:hover, .ag-theme-alpine-dark .ag-standard-button:hover {\n border-color: var(--ag-alpine-active-color);\n background-color: var(--ag-row-hover-color);\n}\n.ag-theme-alpine .ag-standard-button:active, .ag-theme-alpine-dark .ag-standard-button:active {\n border-color: var(--ag-alpine-active-color);\n background-color: var(--ag-alpine-active-color);\n color: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-standard-button:disabled, .ag-theme-alpine-dark .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-alpine .ag-column-drop-vertical, .ag-theme-alpine-dark .ag-column-drop-vertical {\n min-height: 75px;\n}\n.ag-theme-alpine .ag-column-drop-vertical-title-bar, .ag-theme-alpine-dark .ag-column-drop-vertical-title-bar {\n padding: calc(var(--ag-grid-size) * 2);\n padding-bottom: 0px;\n}\n.ag-theme-alpine .ag-column-drop-vertical-empty-message, .ag-theme-alpine-dark .ag-column-drop-vertical-empty-message {\n display: flex;\n align-items: center;\n border: dashed 1px;\n border-color: var(--ag-border-color);\n margin: calc(var(--ag-grid-size) * 2);\n padding: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-column-drop-empty-message, .ag-theme-alpine-dark .ag-column-drop-empty-message {\n color: var(--ag-foreground-color);\n opacity: 0.75;\n}\n.ag-theme-alpine .ag-status-bar, .ag-theme-alpine-dark .ag-status-bar {\n font-weight: normal;\n}\n.ag-theme-alpine .ag-status-name-value-value, .ag-theme-alpine-dark .ag-status-name-value-value {\n font-weight: 700;\n}\n.ag-theme-alpine .ag-paging-number, .ag-theme-alpine .ag-paging-row-summary-panel-number, .ag-theme-alpine-dark .ag-paging-number, .ag-theme-alpine-dark .ag-paging-row-summary-panel-number {\n font-weight: 700;\n}\n.ag-theme-alpine .ag-column-drop-cell-button, .ag-theme-alpine-dark .ag-column-drop-cell-button {\n opacity: 0.5;\n}\n.ag-theme-alpine .ag-column-drop-cell-button:hover, .ag-theme-alpine-dark .ag-column-drop-cell-button:hover {\n opacity: 0.75;\n}\n.ag-theme-alpine .ag-header-cell-menu-button:hover,\n.ag-theme-alpine .ag-side-button-button:hover,\n.ag-theme-alpine .ag-tab:hover,\n.ag-theme-alpine .ag-panel-title-bar-button:hover,\n.ag-theme-alpine .ag-header-expand-icon:hover,\n.ag-theme-alpine .ag-column-group-icons:hover,\n.ag-theme-alpine .ag-set-filter-group-icons:hover,\n.ag-theme-alpine .ag-group-expanded .ag-icon:hover,\n.ag-theme-alpine .ag-group-contracted .ag-icon:hover,\n.ag-theme-alpine .ag-chart-settings-prev:hover,\n.ag-theme-alpine .ag-chart-settings-next:hover,\n.ag-theme-alpine .ag-group-title-bar-icon:hover,\n.ag-theme-alpine .ag-column-select-header-icon:hover,\n.ag-theme-alpine .ag-floating-filter-button-button:hover,\n.ag-theme-alpine .ag-filter-toolpanel-expand:hover,\n.ag-theme-alpine .ag-chart-menu-icon:hover,\n.ag-theme-alpine .ag-chart-menu-close:hover, .ag-theme-alpine-dark .ag-header-cell-menu-button:hover,\n.ag-theme-alpine-dark .ag-side-button-button:hover,\n.ag-theme-alpine-dark .ag-tab:hover,\n.ag-theme-alpine-dark .ag-panel-title-bar-button:hover,\n.ag-theme-alpine-dark .ag-header-expand-icon:hover,\n.ag-theme-alpine-dark .ag-column-group-icons:hover,\n.ag-theme-alpine-dark .ag-set-filter-group-icons:hover,\n.ag-theme-alpine-dark .ag-group-expanded .ag-icon:hover,\n.ag-theme-alpine-dark .ag-group-contracted .ag-icon:hover,\n.ag-theme-alpine-dark .ag-chart-settings-prev:hover,\n.ag-theme-alpine-dark .ag-chart-settings-next:hover,\n.ag-theme-alpine-dark .ag-group-title-bar-icon:hover,\n.ag-theme-alpine-dark .ag-column-select-header-icon:hover,\n.ag-theme-alpine-dark .ag-floating-filter-button-button:hover,\n.ag-theme-alpine-dark .ag-filter-toolpanel-expand:hover,\n.ag-theme-alpine-dark .ag-chart-menu-icon:hover,\n.ag-theme-alpine-dark .ag-chart-menu-close:hover {\n color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-chart-menu-close, .ag-theme-alpine-dark .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-chart-menu-close:hover .ag-icon, .ag-theme-alpine-dark .ag-chart-menu-close:hover .ag-icon {\n border-color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-chart-menu-close .ag-icon, .ag-theme-alpine-dark .ag-chart-menu-close .ag-icon {\n background: var(--ag-header-background-color);\n border: 1px solid var(--ag-border-color);\n border-right: none;\n}\n.ag-theme-alpine .ag-chart-settings-card-item.ag-not-selected:hover, .ag-theme-alpine-dark .ag-chart-settings-card-item.ag-not-selected:hover {\n opacity: 0.35;\n}\n.ag-theme-alpine .ag-ltr .ag-panel-title-bar-button, .ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-panel-title-bar-button, .ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-container, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-container {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-container, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-container {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter {\n border: none;\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-instance-filter {\n border-left: dashed 1px;\n border-left-color: var(--ag-border-color);\n margin-left: calc(var(--ag-icon-size) * 0.5);\n}\n\n.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-instance-filter {\n border-right: dashed 1px;\n border-right-color: var(--ag-border-color);\n margin-right: calc(var(--ag-icon-size) * 0.5);\n}\n\n.ag-theme-alpine .ag-set-filter-list, .ag-theme-alpine-dark .ag-set-filter-list {\n padding-top: calc(var(--ag-grid-size) * 0.5);\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-alpine .ag-layout-auto-height .ag-center-cols-container, .ag-theme-alpine .ag-layout-print .ag-center-cols-clipper, .ag-theme-alpine .ag-layout-print .ag-center-cols-container, .ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-container, .ag-theme-alpine-dark .ag-layout-print .ag-center-cols-clipper, .ag-theme-alpine-dark .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-alpine .ag-overlay-no-rows-wrapper.ag-layout-auto-height, .ag-theme-alpine-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-alpine .ag-date-time-list-page-entry-is-current, .ag-theme-alpine-dark .ag-date-time-list-page-entry-is-current {\n background-color: var(--ag-alpine-active-color);\n}\n\n.ag-theme-alpine-dark {\n color-scheme: dark;\n}\n", ""]);
58496// Exports
58497module.exports = exports;
58498
58499
58500/***/ }),
58501/* 284 */
58502/***/ (function(module, exports, __webpack_require__) {
58503
58504var api = __webpack_require__(277);
58505 var content = __webpack_require__(285);
58506
58507 content = content.__esModule ? content.default : content;
58508
58509 if (typeof content === 'string') {
58510 content = [[module.i, content, '']];
58511 }
58512
58513var options = {};
58514
58515options.insert = "head";
58516options.singleton = false;
58517
58518var update = api(content, options);
58519
58520
58521
58522module.exports = content.locals || {};
58523
58524/***/ }),
58525/* 285 */
58526/***/ (function(module, exports, __webpack_require__) {
58527
58528// Imports
58529var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58530exports = ___CSS_LOADER_API_IMPORT___(false);
58531// Module
58532exports.push([module.i, "@font-face {\n font-family: \"agGridAlpine\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABIkAAsAAAAAJkAAABHTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKp0ygSgE2AiQDgjALgRoABCAFhEYHhRwbXyFFIbBxAJDYv7AiqieV7P96QZO4Gu9qEMLAgorXqyjcVJKxQxvbtQieEq6u3unbTP3JwOa8v9MeN5Q8Caix/+09wyXRVJ6IfU2IWoiiiWgSIp5JhMSQaX44l/dN+kSUcPER5OzkhHT7gd9m7/PN/wkLMCowCmy8M+qHlXA73abzZiEb3DVcFEavrFyzTvMyXLeieOl4CQlIYbBNxUopM8Nip4zZ0vd82bEQmAQkTsiVYMv9DdPoIJ9DCT5BRcD/P/dqmWTV4A1khZ6f04HXNve+mwJnKdEvp5wBsgWC/5ues98OENRmp4Dl3IQnoXcm1Jydm/+MzfZ0da0rjEJkDPufQ66CYNqwBz9fhdkubhpvRgCmW3MZ9WZ/0uxT+y+dsRzmrRhA3DGcOn50v6mbLFgQE4TvcWyxpK4fl3wNVrgUXkcWRp2jpdEz0efRd9H/kLC2pYAY6p8bw1GEICmaIYgthlYsNmTaHE5dVpnJdT5rWQJjpIs2p6m7ldKIo45RDyqaUsSD6yDj7q/uKinhvdMmTBLlEbCopjVbTsRV0kGei7DXN54VtteylXaUdDSPaa+Ac+UhaYEJNa52HUV2kA3cQVq+tcAxp7Qg6+K2mETrApdi6y3eLMI7dcZFkraCSQ6fzNip7qiKcLCVq+hvOa+AcXspHXiIvvxUcX3a1wHrxZzkxYFOPnjf2Xg8Ude1oja/f90i7i5lKbx40E0ta2DETVJc1dUZ9731xTff/fQfAlOFFHn4ADa/ImNPzMrDspK+zTTH3fmko4S0xESEddPEKWoamIMWga2TmJgoWgsM4TRYdzRdSNbprCHLhgWnnE8zmBjTQzBCwjSHsNniQK3NttnmW3czBzI2JyyqamyrrpUbo0ujalAu3kWxjDzTJqyQU1wXgKVTps2ZdOequYYwYi9NleshqbVeXtI50VQwtbP69rfCNLch55ioujFqKGxo4mYj7c/yesxOmNzAPsTNyMw+pNzaEJRX6LjuTpooygim0BCQROxcCPpaO1xHDSO5mK5Y5GG4Lw4iNyIfcJu9+/DD5sAAEWaUd0mjRxqHfLH+F0FXsSNWFX9FGg/mYsDpOQqsA2IgMl1cHmJQWLcOEuU9GOwfM4UZsIU/59z49b95g/V+nXThF1LJnhHE/dZ1QxxYnrlTMF9xt6IhJF+RyJoCJwPOOJecvbaewIBgpuDiQsMiomLiEpJS0jKyctRai0rKKvhFWFPX0NTS1tHV0zcwNDI2MTUzt7C00ra2sQUhwRvONbatFefI79QbbmnxpFVf//15cb7l9tcep/1MQPQxGvpYv1cOfT/YVuAAq+AgKwCHWB2HWRI4wro4yrYBx1gJOM7SwElWxilWBE6zBs6wLHCWZYBzrIULbDtwkeWBSywFXGZNXGEdXGU54Bqr4jpr48bAHr+AvkSAEAVCDAhxICSAkARCChBSgZAGhHQgZAAhEwhZQMgGQg4QcoGQB4R8IBQAoRAIRUAoBkIJEEqBUAaEciBUAKESCFVAqAZCDRBqgVAHhHogNAChEQhNQGgGQgsQWoHQBoR2IHQAoRMIXUDoBkIP1K7TC/SmDwj9AEiyyBPxCDeJ32Jq/L5SuCTQgA+9YgrDr0OwVUVexYVeyFNcwF0FuoE0V1IcHYu52gT+0kXBK4nr6el0CcZlMiPM9IKDQY100KueobGOYYxqXmE2bizVAIvs3nqFKcc2YSnyk3Q66OkY8nTCVJah4UHTi65clskzVJytzLmz0OWG+nq6ehZcVgN2CUBdufG7YapTyZhAEsBCmDTFKiHIKIpeKyIJIV1OElQuSUcvo0RIF3kpyKIZOErmSCplKmKxYhTkUoyaXolRUsvfwaJMisimqRySziJkuA5G4YBJcQYmM1KdmYYUM2dxY/X5OURfOXuuSUKTUvLpEAvZCEemZ6S/uQf1kkyysiqfJsnvzYbNx8FV9QKi9O3ylLF1OaUYAy/Yp+PoaciqKjvhIGOqrgDDdVlkUKq4irNkPegq57Eipi6rWqrHMyGppKQSWtZGLfNK70FU8OU882IMadJnkR3cThwvKld0DA9jqsHRrq4+RLltSour902A71VtvK5RTDUNekfUY1bt7WoNqRjfi6lc227klPfOTg2uHkOUXYO8wdFJ5dTYMHeMdJ7lvq1LNQw0Gq7LDq7m3YIm6XY+omzVKGDi++/FrjYexeNdwt5ZLWnrH9vFXdPkSZeWFIuLquVlRBlPESMzkDpP5coKrg4uU+0dV0zsU2unlJP7a1RXiPGinJeSBe19ozvNZNkEOtaEyqyS9jSDpjpmVw7h6hELkuYPSG6xBbgTpKbTru2qQR7Vtr63Y6pRRLleIs0iyOpsEbnSrrMmuWbTi1HRUdmL2OLyMsXjz62Qexf9l2YprqazKVG6XCaisrR9qPEmV+jlrFDVq1cCY3GRkEovXwl+GbHYL4PilZUK5dJH8W1lBBAohXBqSMhB6HqKziZICc7AaAzByf2crEsnlgETqQA2kueLAAWoywPhAIuVlpBEliUohuuZSWdXVuVQrALl8ct4Rd4KNSy9dAwh50x3FRjg6otHl45cwKC2tRbjYChuC/a1mVROBRNh1eyBjmFtHkr5EgPF4fqz4DIWA0NuMjCZ0evIPq2gIKUKZLbn3UsbKSKaJkmCEpH0DMysVEbyRHQf/XxVHlquUi0LpQeXQFFpDBnWd0l1wRqbBwGcc2OqRxTDqlHl2Bq2Lg4sBJdS/Hb/VZgS70mk+/zGIof4Ve7j7ntDCK7GYov3eJgzRQirt5t1cC2IU4IT7lX8MbtuR0uaq8E1/CErSrZracnmx9yexUXBH+W7l5dtfyroX1kJ/buMrbNE71mwW6lRcHuvBrsgUrPXE+QZryHAuK83Dzja7GToaa8xu3UKBxyhFu1xhFaprlgTOIJXAG7bNx9Svh0TAE6fwgBvnA5l8HzFV3wlrzKbVDSoS1RTo/aeqieNT83co86TR95gAusmS1J/b6/lALsa18FKLKl5ZVWFVFIgvSxS8j0JXcLNbCTmGDUaxEjQuyjIOr+CrPdPYCS+gTyzCFdPP+XcZTcSyJ0tp8H3b5+HomdemfChsI0ZbXD9VUCKUO2xrGivk03b1tZH07k08kT6JVFe0Z5h8EHX6uoL4sX/q6Op8AJ28Zq60rDikJDisNK/WtobLw4pDfsrJ33yOzXfF3QiVRNeBVhVsOSBcu0z+XN5Q4O8UQ6h361itj7ztmfxvI8t3h8HJ4zLTUs7fWrHjrR0setzL+9ab356MzZX5T+wXugerh8dGOgqL2cwoqNO17WdPnV6Knp8/IvrpIUjJIKjBXHjCwi88rwuqG5XazcytQ0Hn8Ya4Nf7hM3Y0F+fnSN4oYceOoGjmBA/bM0+7whOYkdwZCWOYicot13nxefhQXBuXlxcXsorGUos0XKdE4TM/y+t2rhemTCDuEndAtwkbiH7/2vip3NXrP5uaPoMWTRwjzH6CVk/sMz80mbezEga8Lw/get4YiNqyo90NTHsYzVHvRfE4c8F2u+vsqdpi03s3mm2hTmXZ8M+99AE/4Ld8k7tDaYxZcIe4D8K2Qq+Zn/xTFp1Grn9rDUR6X/amrAM84fjeLztp0x6Ir/w3O+hNfcEbjPekIrpmgsWzNe1c/YWmQde9DXA+k3qYIIZvOlQyErOpYXYGI8gMiCQlHQMGSg5fgAZJIwpayqqdyuwD8prEtdABgS52gykWJ7tCe4+G7yvO7hnH4q4NWY0prsWXWnk288F2nai4hAIjB+a0FQZmac3fzq36e13v6h5myfiGDs+icwT5fVdJU4YcPyYxqlpNTlNh743+cLczDyY3kQ1B3+ia8Cx55hArTZ0ZoXdfv5eHv62C1qxmHQvobrj61usMzw8Q+ILj13UVhUGVlPQnVDfbJUREZ6SVllqcCE+O8AiprRcEZKclew00hfslezhkeQVjOmXNAblxB7FRJBYnBbhlG8eUyZR8wWg5uIt/aQ732hfdUVpuUWM+pgR/1hl1Ld0x080OZ+HdbKVVUb4x92e2qSWdhoZGhAy2+aSnv3a3FUjmsoS/jS73ur58Sd4LDh8qHB0MJZzD4iHBNj02HKhtlUkF+1vDRcVKMwPI1quwUudMEwYqhUFilp3yUXyWSqUP2sNrJMNojBR67Mk7CothruzDWLjsqXAxPbF6urI5MHIc+kVtj5wspx1GswYDC8JDS3e0NKG8FRPTrOWTiMe6UR6w45FMSR6VgkvqXMDlqmC1E9dHj+WJHoeEknyogSpgrmUzML6dNb1kJKMoCuVvMMuYWNj7q8IEhuLIL/qL5g+IvJ+8fQLBF4NrxPWyetE+/WFdSDc5S4fMr18lgX4OT6jr7yhR8JC4R+bu6HaE3leH0VT5dXtSg8OFHineqWkeKV6F4RLnbbMz1s6SVNNkRZe1hsEfFA9ufgq89WJKUdw7N5TMrMkGX/i9IkjXnzBreRuQj4gJyBT/s03BpYR6erTXavvlpd+PRwltP3BxiZl119JSdJKXR1z54iMU+9qNH//rf3nS7+vZuWPuruLNphgFhYbK3j69cbfa+q/w/9Y5t9bWIAA05HaBA+PBH3UujT9kP5QG8wCzd/D5hfhobd1bxk4BJkY3HpywZhjEuRwV7aP3aEliBxC+2mtu0dSomfde59qk/eI0HbeFfC+XTIMsUnSb93UchDe0pFvFj4VpGzUgeIWkeiArLUFUe7bhjEd/nXr5kOtteJNm2Hi3ugrqjHy6tXoul+VFLrmuqhULrmuhRda2ukq1X3Vha4XOO71Kj5cWxiSJxDkhRT+lFJuPE9QGPJTris8uJWwIS5uw6chRdqn4V8X/6yZcrv42JGXsqSZUAz/rF493qxzp0XTYbeEgUL4p4udVqXgMYeeEtiQ+k/WP6mc81tj+eRJXFxEuK1tbCxoY+uK6+DehFlmdIWSVAjHj88iBzwkoetChLAsKtxmvsR9R2FOjoG4WqloF78TEz7fbsdhJe4BSdoRG4qLkpMHB4P27oPWzW/evN78B3jNGLdRnzcvKgS9NQQAABqnMk0jSSTYabMJrYTmkyqPplkCqkAPa1/HKABvXqLr0JvOcv3oz7rGQ4qKrtaZzPRqxD8ht3UfTJSX0rUMxkm37g16DV2FNloTqmhXqNAnVVf4FzUaUg5a02WzFZVBm6wJZFOaMFPRasShjG5pLYCiLJlXie5ATZvW4x19sim9+l+py4OFtD12JZyoRwY4ugqA5Bv+fUjhjE9/oQEwflXQYVi0KpjY78hJv0woYmXN2R96//v7AiGM+n53VSkGzJ0P4PfzQiM45QhEgscGA/Q3HICGuil8dQLtmC7g4AV6vMAQwNZ6HE6NgymsBRQQHUNAwBwULmMAGzoAReAg6CDwENMFHiyDHgJvFmBA/W8g46vh4Irkd0b4kuheUomE3xiGZCU7Qfwm/1FqZDKPGzYVXd0XEopVdKZbTB3Dk6o3XjibT6ZxSSmxKcI/CNr2quX5fuMR95pb4LxhBV9E5LxIioigb7jZfYPEEonJcoz/cA0V7xsjxqPWg6Tvl8KUJkBhdYzOcrRXo+CJ+oZn9i7Bcig+tSqSkHzge1H4rh8IXLPVK4jyf6dUM/OyZgu0cNsVjGqSXt/9sAUKBg4BCQXqTwSAL/Dq1/P/n5OUyebyhWKpXKnW6o1mq93p9vqD4Wg8mc7mi+VqvdkSyriQSlu243p+pVqrN5qtdqfb6w/kWsexg2CwGpn27AhPddse2IMgwLQLlxW9WK0Rfjuem6AY3V3mDJEcKkqOZBWvinIGkrKfQCeWpsREqOzfwyFTPYImFQuKbge6LLswXOs2nHEbXt1xWWEXv7q1g5VRrHaP7hB/bGqytd8OS/d8pRq13d1Vqu6EiWX3LOWh7JRqyppe91JRw2e5n9q6SOEgxxxzXHEnJw2PiKJzpZx1h5rwmFobmxJP6HaLhnPE7VK0W2pkPSiDY+ShXsiF3g433aDK1LD355neaFcq9LpTY8Sjej80NI4nipQ20THUKnRwJ3cYdGQ2cqWCSKQ4zLblgnQwPEN5LptWIJCKGJlUIOn96swaJxsUi5G3rg0A);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-alpine, .ag-theme-alpine-dark {\n --ag-alpine-active-color: #2196f3;\n --ag-selected-row-background-color: rgba(33, 150, 243, 0.3);\n --ag-row-hover-color: rgba(33, 150, 243, 0.1);\n --ag-column-hover-color: rgba(33, 150, 243, 0.1);\n --ag-input-focus-border-color: rgba(33, 150, 243, 0.4);\n --ag-range-selection-background-color: rgba(33, 150, 243, 0.2);\n --ag-range-selection-background-color-2: rgba(33, 150, 243, 0.36);\n --ag-range-selection-background-color-3: rgba(33, 150, 243, 0.49);\n --ag-range-selection-background-color-4: rgba(33, 150, 243, 0.59);\n --ag-background-color: #fff;\n --ag-foreground-color: #181d1f;\n --ag-border-color: #babfc7;\n --ag-secondary-border-color: #dde2eb;\n --ag-header-background-color: #f8f8f8;\n --ag-tooltip-background-color: #f8f8f8;\n --ag-odd-row-background-color: #fcfcfc;\n --ag-control-panel-background-color: #f8f8f8;\n --ag-subheader-background-color: #fff;\n --ag-invalid-color: #e02525;\n --ag-checkbox-unchecked-color: #999;\n --ag-checkbox-background-color: var(--ag-background-color);\n --ag-checkbox-checked-color: var(--ag-alpine-active-color);\n --ag-range-selection-border-color: var(--ag-alpine-active-color);\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-input-border-color: var(--ag-border-color);\n --ag-input-border-color-invalid: var(--ag-invalid-color);\n --ag-input-focus-box-shadow: 0 0 2px 0.1rem var(--ag-input-focus-border-color);\n --ag-disabled-foreground-color: rgba(24, 29, 31, 0.5);\n --ag-chip-background-color: rgba(24, 29, 31, 0.07);\n --ag-input-disabled-border-color: rgba(186, 191, 199, 0.3);\n --ag-input-disabled-background-color: rgba(186, 191, 199, 0.15);\n --ag-borders: solid 1px;\n --ag-border-radius: 3px;\n --ag-borders-side-button: none;\n --ag-side-button-selected-background-color: transparent;\n --ag-header-column-resize-handle-display: block;\n --ag-header-column-resize-handle-width: 2px;\n --ag-header-column-resize-handle-height: 30%;\n --ag-grid-size: 6px;\n --ag-icon-size: 16px;\n --ag-row-height: calc(var(--ag-grid-size) * 7);\n --ag-header-height: calc(var(--ag-grid-size) * 8);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-column-select-indent-size: var(--ag-icon-size);\n --ag-set-filter-indent-size: var(--ag-icon-size);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-cell-widget-spacing: calc(var(--ag-grid-size) * 2);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.5);\n --ag-toggle-button-height: 18px;\n --ag-toggle-button-width: 28px;\n --ag-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridAlpine;\n --ag-selected-tab-underline-color: var(--ag-alpine-active-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-selected-tab-underline-transition-speed: 0.3s;\n --ag-tab-min-width: 240px;\n --ag-card-shadow: 0 1px 4px 1px rgba(186, 191, 199, 0.4);\n --ag-popup-shadow: var(--ag-card-shadow);\n --ag-side-bar-panel-width: 250px;\n}\n\n.ag-theme-alpine-dark {\n --ag-background-color: #181d1f;\n --ag-foreground-color: #fff;\n --ag-border-color: #68686e;\n --ag-secondary-border-color: rgba(88, 86, 82, 0.5);\n --ag-modal-overlay-background-color: rgba(24, 29, 31, 0.66);\n --ag-header-background-color: #222628;\n --ag-tooltip-background-color: #222628;\n --ag-odd-row-background-color: #222628;\n --ag-control-panel-background-color: #222628;\n --ag-subheader-background-color: #000;\n --ag-input-disabled-background-color: #282c2f;\n --ag-input-focus-box-shadow:\n 0 0 2px 0.5px rgba(255, 255, 255, 0.5),\n 0 0 4px 3px var(--ag-input-focus-border-color);\n --ag-card-shadow: 0 1px 20px 1px black;\n --ag-disabled-foreground-color: rgba(255, 255, 255, 0.5);\n --ag-chip-background-color: rgba(255, 255, 255, 0.07);\n --ag-input-disabled-border-color: rgba(104, 104, 110, 0.3);\n --ag-input-disabled-background-color: rgba(104, 104, 110, 0.07);\n}\n\n.ag-theme-alpine .ag-filter-toolpanel-header,\n.ag-theme-alpine .ag-filter-toolpanel-search,\n.ag-theme-alpine .ag-status-bar,\n.ag-theme-alpine .ag-header-row,\n.ag-theme-alpine .ag-panel-title-bar-title,\n.ag-theme-alpine .ag-multi-filter-group-title-bar, .ag-theme-alpine-dark .ag-filter-toolpanel-header,\n.ag-theme-alpine-dark .ag-filter-toolpanel-search,\n.ag-theme-alpine-dark .ag-status-bar,\n.ag-theme-alpine-dark .ag-header-row,\n.ag-theme-alpine-dark .ag-panel-title-bar-title,\n.ag-theme-alpine-dark .ag-multi-filter-group-title-bar {\n font-weight: 700;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-alpine .ag-row, .ag-theme-alpine-dark .ag-row {\n font-size: calc(var(--ag-font-size) + 1px);\n}\n.ag-theme-alpine input[class^=ag-]:not([type]),\n.ag-theme-alpine input[class^=ag-][type=text],\n.ag-theme-alpine input[class^=ag-][type=number],\n.ag-theme-alpine input[class^=ag-][type=tel],\n.ag-theme-alpine input[class^=ag-][type=date],\n.ag-theme-alpine input[class^=ag-][type=datetime-local],\n.ag-theme-alpine textarea[class^=ag-], .ag-theme-alpine-dark input[class^=ag-]:not([type]),\n.ag-theme-alpine-dark input[class^=ag-][type=text],\n.ag-theme-alpine-dark input[class^=ag-][type=number],\n.ag-theme-alpine-dark input[class^=ag-][type=tel],\n.ag-theme-alpine-dark input[class^=ag-][type=date],\n.ag-theme-alpine-dark input[class^=ag-][type=datetime-local],\n.ag-theme-alpine-dark textarea[class^=ag-] {\n min-height: calc(var(--ag-grid-size) * 4);\n border-radius: var(--ag-border-radius);\n}\n.ag-theme-alpine .ag-ltr input[class^=ag-]:not([type]), .ag-theme-alpine .ag-ltr input[class^=ag-][type=text], .ag-theme-alpine .ag-ltr input[class^=ag-][type=number], .ag-theme-alpine .ag-ltr input[class^=ag-][type=tel], .ag-theme-alpine .ag-ltr input[class^=ag-][type=date], .ag-theme-alpine .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-alpine .ag-ltr textarea[class^=ag-], .ag-theme-alpine-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-alpine-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-alpine-dark .ag-ltr textarea[class^=ag-] {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl input[class^=ag-]:not([type]), .ag-theme-alpine .ag-rtl input[class^=ag-][type=text], .ag-theme-alpine .ag-rtl input[class^=ag-][type=number], .ag-theme-alpine .ag-rtl input[class^=ag-][type=tel], .ag-theme-alpine .ag-rtl input[class^=ag-][type=date], .ag-theme-alpine .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-alpine .ag-rtl textarea[class^=ag-], .ag-theme-alpine-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-alpine-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-alpine-dark .ag-rtl textarea[class^=ag-] {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-tab, .ag-theme-alpine-dark .ag-tab {\n padding: calc(var(--ag-grid-size) * 1.5);\n transition: color 0.4s;\n flex: 1 1 auto;\n}\n.ag-theme-alpine .ag-tab-selected, .ag-theme-alpine-dark .ag-tab-selected {\n color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-menu, .ag-theme-alpine-dark .ag-menu {\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-theme-alpine .ag-menu-header, .ag-theme-alpine-dark .ag-menu-header {\n background-color: var(--ag-control-panel-background-color);\n padding-top: 1px;\n}\n.ag-theme-alpine .ag-tabs-header, .ag-theme-alpine-dark .ag-tabs-header {\n border-bottom: var(--ag-borders) var(--ag-border-color);\n}\n.ag-theme-alpine .ag-charts-settings-group-title-bar,\n.ag-theme-alpine .ag-charts-data-group-title-bar,\n.ag-theme-alpine .ag-charts-format-top-level-group-title-bar, .ag-theme-alpine-dark .ag-charts-settings-group-title-bar,\n.ag-theme-alpine-dark .ag-charts-data-group-title-bar,\n.ag-theme-alpine-dark .ag-charts-format-top-level-group-title-bar {\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n line-height: calc(var(--ag-icon-size) + var(--ag-grid-size) - 2px);\n}\n.ag-theme-alpine .ag-chart-mini-thumbnail, .ag-theme-alpine-dark .ag-chart-mini-thumbnail {\n background-color: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-chart-settings-nav-bar, .ag-theme-alpine-dark .ag-chart-settings-nav-bar {\n border-top: var(--ag-borders-secondary) var(--ag-secondary-border-color);\n}\n.ag-theme-alpine .ag-ltr .ag-group-title-bar-icon, .ag-theme-alpine-dark .ag-ltr .ag-group-title-bar-icon {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-group-title-bar-icon, .ag-theme-alpine-dark .ag-rtl .ag-group-title-bar-icon {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-charts-format-top-level-group-toolbar {\n margin-top: var(--ag-grid-size);\n}\n.ag-theme-alpine .ag-ltr .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-ltr .ag-charts-format-top-level-group-toolbar {\n padding-left: calc(var(--ag-icon-size) * 0.5 + var(--ag-grid-size) * 2);\n}\n\n.ag-theme-alpine .ag-rtl .ag-charts-format-top-level-group-toolbar, .ag-theme-alpine-dark .ag-rtl .ag-charts-format-top-level-group-toolbar {\n padding-right: calc(var(--ag-icon-size) * 0.5 + var(--ag-grid-size) * 2);\n}\n\n.ag-theme-alpine .ag-charts-format-sub-level-group, .ag-theme-alpine-dark .ag-charts-format-sub-level-group {\n border-left: dashed 1px;\n border-left-color: var(--ag-border-color);\n padding-left: var(--ag-grid-size);\n margin-bottom: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-title-bar, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-title-bar {\n padding-top: 0;\n padding-bottom: 0;\n background: none;\n font-weight: 700;\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-container, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-container {\n padding-bottom: 0;\n}\n.ag-theme-alpine .ag-charts-format-sub-level-group-item:last-child, .ag-theme-alpine-dark .ag-charts-format-sub-level-group-item:last-child {\n margin-bottom: 0;\n}\n.ag-theme-alpine.ag-dnd-ghost, .ag-theme-alpine-dark.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 700;\n}\n.ag-theme-alpine .ag-side-buttons, .ag-theme-alpine-dark .ag-side-buttons {\n width: calc(var(--ag-grid-size) * 5);\n}\n.ag-theme-alpine .ag-standard-button, .ag-theme-alpine-dark .ag-standard-button {\n appearance: none;\n -webkit-appearance: none;\n border-radius: var(--ag-border-radius);\n border: 1px solid;\n border-color: var(--ag-alpine-active-color);\n color: var(--ag-alpine-active-color);\n background-color: var(--ag-background-color);\n font-weight: 600;\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-standard-button:hover, .ag-theme-alpine-dark .ag-standard-button:hover {\n border-color: var(--ag-alpine-active-color);\n background-color: var(--ag-row-hover-color);\n}\n.ag-theme-alpine .ag-standard-button:active, .ag-theme-alpine-dark .ag-standard-button:active {\n border-color: var(--ag-alpine-active-color);\n background-color: var(--ag-alpine-active-color);\n color: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-standard-button:disabled, .ag-theme-alpine-dark .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-alpine .ag-column-drop-vertical, .ag-theme-alpine-dark .ag-column-drop-vertical {\n min-height: 75px;\n}\n.ag-theme-alpine .ag-column-drop-vertical-title-bar, .ag-theme-alpine-dark .ag-column-drop-vertical-title-bar {\n padding: calc(var(--ag-grid-size) * 2);\n padding-bottom: 0px;\n}\n.ag-theme-alpine .ag-column-drop-vertical-empty-message, .ag-theme-alpine-dark .ag-column-drop-vertical-empty-message {\n display: flex;\n align-items: center;\n border: dashed 1px;\n border-color: var(--ag-border-color);\n margin: calc(var(--ag-grid-size) * 2);\n padding: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-alpine .ag-column-drop-empty-message, .ag-theme-alpine-dark .ag-column-drop-empty-message {\n color: var(--ag-foreground-color);\n opacity: 0.75;\n}\n.ag-theme-alpine .ag-status-bar, .ag-theme-alpine-dark .ag-status-bar {\n font-weight: normal;\n}\n.ag-theme-alpine .ag-status-name-value-value, .ag-theme-alpine-dark .ag-status-name-value-value {\n font-weight: 700;\n}\n.ag-theme-alpine .ag-paging-number, .ag-theme-alpine .ag-paging-row-summary-panel-number, .ag-theme-alpine-dark .ag-paging-number, .ag-theme-alpine-dark .ag-paging-row-summary-panel-number {\n font-weight: 700;\n}\n.ag-theme-alpine .ag-column-drop-cell-button, .ag-theme-alpine-dark .ag-column-drop-cell-button {\n opacity: 0.5;\n}\n.ag-theme-alpine .ag-column-drop-cell-button:hover, .ag-theme-alpine-dark .ag-column-drop-cell-button:hover {\n opacity: 0.75;\n}\n.ag-theme-alpine .ag-header-cell-menu-button:hover,\n.ag-theme-alpine .ag-side-button-button:hover,\n.ag-theme-alpine .ag-tab:hover,\n.ag-theme-alpine .ag-panel-title-bar-button:hover,\n.ag-theme-alpine .ag-header-expand-icon:hover,\n.ag-theme-alpine .ag-column-group-icons:hover,\n.ag-theme-alpine .ag-set-filter-group-icons:hover,\n.ag-theme-alpine .ag-group-expanded .ag-icon:hover,\n.ag-theme-alpine .ag-group-contracted .ag-icon:hover,\n.ag-theme-alpine .ag-chart-settings-prev:hover,\n.ag-theme-alpine .ag-chart-settings-next:hover,\n.ag-theme-alpine .ag-group-title-bar-icon:hover,\n.ag-theme-alpine .ag-column-select-header-icon:hover,\n.ag-theme-alpine .ag-floating-filter-button-button:hover,\n.ag-theme-alpine .ag-filter-toolpanel-expand:hover,\n.ag-theme-alpine .ag-chart-menu-icon:hover,\n.ag-theme-alpine .ag-chart-menu-close:hover, .ag-theme-alpine-dark .ag-header-cell-menu-button:hover,\n.ag-theme-alpine-dark .ag-side-button-button:hover,\n.ag-theme-alpine-dark .ag-tab:hover,\n.ag-theme-alpine-dark .ag-panel-title-bar-button:hover,\n.ag-theme-alpine-dark .ag-header-expand-icon:hover,\n.ag-theme-alpine-dark .ag-column-group-icons:hover,\n.ag-theme-alpine-dark .ag-set-filter-group-icons:hover,\n.ag-theme-alpine-dark .ag-group-expanded .ag-icon:hover,\n.ag-theme-alpine-dark .ag-group-contracted .ag-icon:hover,\n.ag-theme-alpine-dark .ag-chart-settings-prev:hover,\n.ag-theme-alpine-dark .ag-chart-settings-next:hover,\n.ag-theme-alpine-dark .ag-group-title-bar-icon:hover,\n.ag-theme-alpine-dark .ag-column-select-header-icon:hover,\n.ag-theme-alpine-dark .ag-floating-filter-button-button:hover,\n.ag-theme-alpine-dark .ag-filter-toolpanel-expand:hover,\n.ag-theme-alpine-dark .ag-chart-menu-icon:hover,\n.ag-theme-alpine-dark .ag-chart-menu-close:hover {\n color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-chart-menu-close, .ag-theme-alpine-dark .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-alpine .ag-chart-menu-close:hover .ag-icon, .ag-theme-alpine-dark .ag-chart-menu-close:hover .ag-icon {\n border-color: var(--ag-alpine-active-color);\n}\n.ag-theme-alpine .ag-chart-menu-close .ag-icon, .ag-theme-alpine-dark .ag-chart-menu-close .ag-icon {\n background: var(--ag-header-background-color);\n border: 1px solid var(--ag-border-color);\n border-right: none;\n}\n.ag-theme-alpine .ag-chart-settings-card-item.ag-not-selected:hover, .ag-theme-alpine-dark .ag-chart-settings-card-item.ag-not-selected:hover {\n opacity: 0.35;\n}\n.ag-theme-alpine .ag-ltr .ag-panel-title-bar-button, .ag-theme-alpine-dark .ag-ltr .ag-panel-title-bar-button {\n margin-left: calc(var(--ag-grid-size) * 2);\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-panel-title-bar-button, .ag-theme-alpine-dark .ag-rtl .ag-panel-title-bar-button {\n margin-right: calc(var(--ag-grid-size) * 2);\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-group-container, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-group-container {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-group-container, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-group-container {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-alpine .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-filter-toolpanel-instance-filter {\n border: none;\n background-color: var(--ag-control-panel-background-color);\n}\n.ag-theme-alpine .ag-ltr .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-ltr .ag-filter-toolpanel-instance-filter {\n border-left: dashed 1px;\n border-left-color: var(--ag-border-color);\n margin-left: calc(var(--ag-icon-size) * 0.5);\n}\n\n.ag-theme-alpine .ag-rtl .ag-filter-toolpanel-instance-filter, .ag-theme-alpine-dark .ag-rtl .ag-filter-toolpanel-instance-filter {\n border-right: dashed 1px;\n border-right-color: var(--ag-border-color);\n margin-right: calc(var(--ag-icon-size) * 0.5);\n}\n\n.ag-theme-alpine .ag-set-filter-list, .ag-theme-alpine-dark .ag-set-filter-list {\n padding-top: calc(var(--ag-grid-size) * 0.5);\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-alpine .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-alpine .ag-layout-auto-height .ag-center-cols-container, .ag-theme-alpine .ag-layout-print .ag-center-cols-clipper, .ag-theme-alpine .ag-layout-print .ag-center-cols-container, .ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-alpine-dark .ag-layout-auto-height .ag-center-cols-container, .ag-theme-alpine-dark .ag-layout-print .ag-center-cols-clipper, .ag-theme-alpine-dark .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-alpine .ag-overlay-no-rows-wrapper.ag-layout-auto-height, .ag-theme-alpine-dark .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-alpine .ag-date-time-list-page-entry-is-current, .ag-theme-alpine-dark .ag-date-time-list-page-entry-is-current {\n background-color: var(--ag-alpine-active-color);\n}\n\n.ag-theme-alpine-dark {\n color-scheme: dark;\n}\n", ""]);
58533// Exports
58534module.exports = exports;
58535
58536
58537/***/ }),
58538/* 286 */
58539/***/ (function(module, exports, __webpack_require__) {
58540
58541var api = __webpack_require__(277);
58542 var content = __webpack_require__(287);
58543
58544 content = content.__esModule ? content.default : content;
58545
58546 if (typeof content === 'string') {
58547 content = [[module.i, content, '']];
58548 }
58549
58550var options = {};
58551
58552options.insert = "head";
58553options.singleton = false;
58554
58555var update = api(content, options);
58556
58557
58558
58559module.exports = content.locals || {};
58560
58561/***/ }),
58562/* 287 */
58563/***/ (function(module, exports, __webpack_require__) {
58564
58565// Imports
58566var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58567exports = ___CSS_LOADER_API_IMPORT___(false);
58568// Module
58569exports.push([module.i, ".ag-theme-balham, .ag-theme-balham-dark {\n --ag-balham-active-color: #0091ea;\n --ag-foreground-color: #000;\n --ag-background-color: #fff;\n --ag-header-background-color: #f5f7f7;\n --ag-tooltip-background-color: #cbd0d3;\n --ag-subheader-background-color: #e2e9eb;\n --ag-control-panel-background-color: #f5f7f7;\n --ag-border-color: #bdc3c7;\n --ag-odd-row-background-color: #fcfdfe;\n --ag-row-hover-color: #ecf0f1;\n --ag-column-hover-color: #ecf0f1;\n --ag-input-border-color: #95a5a6;\n --ag-invalid-color: #e02525;\n --ag-input-disabled-background-color: #ebebeb;\n --ag-checkbox-unchecked-color: #7f8c8d;\n --ag-input-focus-border-color: #719ECE;\n --ag-input-focus-box-shadow: 0 0 2px 1px var(--ag-input-focus-border-color);\n --ag-range-selection-border-color: var(--ag-balham-active-color);\n --ag-checkbox-checked-color: var(--ag-balham-active-color);\n --ag-checkbox-background-color: var(--ag-background-color);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-subheader-toolbar-background-color: rgba(226, 233, 235, 0.5);\n --ag-row-border-color: rgba(189, 195, 199, 0.58);\n --ag-chip-background-color: rgba(0, 0, 0, 0.1);\n --ag-range-selection-background-color: rgba(0, 145, 234, 0.2);\n --ag-range-selection-background-color-2: rgba(0, 145, 234, 0.36);\n --ag-range-selection-background-color-3: rgba(0, 145, 234, 0.49);\n --ag-range-selection-background-color-4: rgba(0, 145, 234, 0.59);\n --ag-selected-row-background-color: rgba(0, 145, 234, 0.28);\n --ag-header-column-separator-color: rgba(189, 195, 199, 0.5);\n --ag-input-disabled-border-color: rgba(149, 165, 166, 0.3);\n --ag-header-column-separator-display: block;\n --ag-header-column-separator-height: 50%;\n --ag-grid-size: 4px;\n --ag-icon-size: 16px;\n --ag-row-height: calc(var(--ag-grid-size) * 7);\n --ag-header-height: calc(var(--ag-grid-size) * 8);\n --ag-list-item-height: calc(var(--ag-grid-size) * 6);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-input-height: calc(var(--ag-grid-size) * 4);\n --ag-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n --ag-font-size: 12px;\n --ag-icon-font-family: agGridBalham;\n --ag-border-radius: 2px;\n --ag-checkbox-border-radius: 3px;\n --ag-card-shadow: none;\n}\n\n.ag-theme-balham-dark {\n --ag-balham-active-color: #00B0FF;\n --ag-foreground-color: #F5F5F5;\n --ag-background-color: #2d3436;\n --ag-header-background-color: #1c1c1c;\n --ag-tooltip-background-color: #1c1f20;\n --ag-subheader-background-color: #111;\n --ag-control-panel-background-color: #202020;\n --ag-border-color: #424242;\n --ag-odd-row-background-color: #262c2e;\n --ag-row-hover-color: #3d4749;\n --ag-column-hover-color: #3d4749;\n --ag-input-border-color: #f0f0f0;\n --ag-input-disabled-background-color: rgba(48, 46, 46, 0.3);\n --ag-modal-overlay-background-color: rgba(45, 52, 54, 0.66);\n --ag-checkbox-unchecked-color: #ecf0f1;\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-disabled-foreground-color: rgba(245, 245, 245, 0.38);\n --ag-subheader-toolbar-background-color: rgba(17, 17, 17, 0.5);\n --ag-row-border-color: #5c5c5c;\n --ag-chip-background-color: rgba(245, 245, 245, 0.08);\n --ag-range-selection-background-color: rgba(0, 176, 255, 0.2);\n --ag-range-selection-background-color-2: rgba(0, 176, 255, 0.36);\n --ag-range-selection-background-color-3: rgba(0, 176, 255, 0.49);\n --ag-range-selection-background-color-4: rgba(0, 176, 255, 0.59);\n --ag-selected-row-background-color: rgba(0, 176, 255, 0.28);\n --ag-header-column-separator-color: rgba(66, 66, 66, 0.5);\n --ag-input-disabled-border-color: rgba(240, 240, 240, 0.3);\n --ag-header-foreground-color: rgba(245, 245, 245, 0.64);\n --ag-toggle-button-off-background-color: transparent;\n --ag-toggle-button-off-border-color: var(--ag-foreground-color);\n --ag-range-selection-chart-category-background-color: rgba(26, 177, 74, 0.5);\n --ag-range-selection-chart-background-color: rgba(45, 166, 255, 0.5);\n --ag-input-focus-box-shadow: 0 0 4px 1.5px var(--ag-input-focus-border-color);\n}\n\n.ag-theme-balham .ag-filter-toolpanel-header,\n.ag-theme-balham .ag-filter-toolpanel-search,\n.ag-theme-balham .ag-status-bar,\n.ag-theme-balham .ag-header-row,\n.ag-theme-balham .ag-multi-filter-group-title-bar, .ag-theme-balham-dark .ag-filter-toolpanel-header,\n.ag-theme-balham-dark .ag-filter-toolpanel-search,\n.ag-theme-balham-dark .ag-status-bar,\n.ag-theme-balham-dark .ag-header-row,\n.ag-theme-balham-dark .ag-multi-filter-group-title-bar {\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-balham .ag-ltr input[class^=ag-]:not([type]), .ag-theme-balham .ag-ltr input[class^=ag-][type=text], .ag-theme-balham .ag-ltr input[class^=ag-][type=number], .ag-theme-balham .ag-ltr input[class^=ag-][type=tel], .ag-theme-balham .ag-ltr input[class^=ag-][type=date], .ag-theme-balham .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-balham .ag-ltr textarea[class^=ag-], .ag-theme-balham-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-balham-dark .ag-ltr textarea[class^=ag-] {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-rtl input[class^=ag-]:not([type]), .ag-theme-balham .ag-rtl input[class^=ag-][type=text], .ag-theme-balham .ag-rtl input[class^=ag-][type=number], .ag-theme-balham .ag-rtl input[class^=ag-][type=tel], .ag-theme-balham .ag-rtl input[class^=ag-][type=date], .ag-theme-balham .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-balham .ag-rtl textarea[class^=ag-], .ag-theme-balham-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-balham-dark .ag-rtl textarea[class^=ag-] {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-column-drop-vertical-empty-message, .ag-theme-balham .ag-status-bar, .ag-theme-balham-dark .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-status-bar {\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-balham.ag-dnd-ghost, .ag-theme-balham-dark.ag-dnd-ghost {\n font-size: var(--ag-font-size);\n font-weight: 600;\n}\n.ag-theme-balham .ag-tab, .ag-theme-balham-dark .ag-tab {\n border: 1px solid transparent;\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n margin: var(--ag-grid-size);\n margin-bottom: -1px;\n}\n.ag-theme-balham .ag-tab-selected, .ag-theme-balham-dark .ag-tab-selected {\n background-color: var(--ag-background-color);\n border-color: var(--ag-border-color);\n border-bottom-color: transparent;\n}\n.ag-theme-balham .ag-tabs-header, .ag-theme-balham-dark .ag-tabs-header {\n border-bottom: 1px solid var(--ag-border-color);\n}\n.ag-theme-balham .ag-column-drop-cell, .ag-theme-balham-dark .ag-column-drop-cell {\n height: calc(var(--ag-grid-size) * 6);\n}\n.ag-theme-balham .ag-column-drop-vertical-title, .ag-theme-balham-dark .ag-column-drop-vertical-title {\n color: var(--ag-foreground-color);\n}\n.ag-theme-balham .ag-column-drop-vertical-cell, .ag-theme-balham-dark .ag-column-drop-vertical-cell {\n margin-left: calc(var(--ag-grid-size) * 2);\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical-cell-text, .ag-theme-balham-dark .ag-column-drop-vertical-cell-text {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical-icon, .ag-theme-balham-dark .ag-column-drop-vertical-icon {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-theme-balham .ag-ltr .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-rtl .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-column-drop-horizontal, .ag-theme-balham-dark .ag-column-drop-horizontal {\n height: var(--ag-header-height);\n}\n.ag-theme-balham .ag-column-drop-empty, .ag-theme-balham-dark .ag-column-drop-empty {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-balham .ag-column-drop-horizontal-cell-text, .ag-theme-balham-dark .ag-column-drop-horizontal-cell-text {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical, .ag-theme-balham-dark .ag-column-drop-vertical {\n padding-top: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-menu-header, .ag-theme-balham-dark .ag-menu-header {\n background-color: var(--ag-header-background-color);\n}\n.ag-theme-balham .ag-overlay-loading-center, .ag-theme-balham-dark .ag-overlay-loading-center {\n background-color: var(--ag-background-color);\n border: 1px solid var(--ag-border-color);\n color: var(--ag-foreground-color);\n padding: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-balham .ag-tooltip, .ag-theme-balham-dark .ag-tooltip {\n border: none;\n}\n.ag-theme-balham .ag-panel-title-bar-button-icon, .ag-theme-balham-dark .ag-panel-title-bar-button-icon {\n font-size: calc(var(--ag-icon-size) + var(--ag-grid-size));\n}\n.ag-theme-balham .ag-chart-data-section,\n.ag-theme-balham .ag-chart-format-section, .ag-theme-balham-dark .ag-chart-data-section,\n.ag-theme-balham-dark .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-balham .ag-group-toolbar, .ag-theme-balham-dark .ag-group-toolbar {\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n.ag-theme-balham .ag-chart-tab, .ag-theme-balham-dark .ag-chart-tab {\n padding-top: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-balham .ag-charts-format-sub-level-group-item, .ag-theme-balham-dark .ag-charts-format-sub-level-group-item {\n margin-bottom: calc(var(--ag-grid-size) * 1.5);\n}\n.ag-theme-balham .ag-chart-menu-close, .ag-theme-balham-dark .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-balham .ag-chart-menu-close:hover .ag-icon, .ag-theme-balham-dark .ag-chart-menu-close:hover .ag-icon {\n border-color: var(--ag-border-color);\n}\n.ag-theme-balham .ag-chart-menu-close .ag-icon, .ag-theme-balham-dark .ag-chart-menu-close .ag-icon {\n background: var(--ag-header-background-color);\n border: 1px solid var(--ag-secondary-border-color);\n border-right: none;\n}\n\n.ag-theme-balham-dark {\n color-scheme: dark;\n}\n", ""]);
58570// Exports
58571module.exports = exports;
58572
58573
58574/***/ }),
58575/* 288 */
58576/***/ (function(module, exports, __webpack_require__) {
58577
58578var api = __webpack_require__(277);
58579 var content = __webpack_require__(289);
58580
58581 content = content.__esModule ? content.default : content;
58582
58583 if (typeof content === 'string') {
58584 content = [[module.i, content, '']];
58585 }
58586
58587var options = {};
58588
58589options.insert = "head";
58590options.singleton = false;
58591
58592var update = api(content, options);
58593
58594
58595
58596module.exports = content.locals || {};
58597
58598/***/ }),
58599/* 289 */
58600/***/ (function(module, exports, __webpack_require__) {
58601
58602// Imports
58603var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58604exports = ___CSS_LOADER_API_IMPORT___(false);
58605// Module
58606exports.push([module.i, "@font-face {\n font-family: \"agGridBalham\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABToAAsAAAAAKtAAABSXAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKsTSobwE2AiQDghwLgRAABCAFhEYHhGMbNyVVBDYOIDRjr6uI6kkh+/8ygRtD4jmwCxG6Uc8o3ROFxLQ2sYXYmrIGce1xv8pXhIMxezz3sL/PuB39LLa+YsghSdHkgf9j733/r8LSK4siEzgBRzgeDWhnPOufNl8fcPDH3reZM0lVZW1lhXQdnt9m7/NB5X9CIh06GTjCQl2oCObE6B8uytzGyrW1wVo4l9qrsFaJq2bliMtwkeeVt7sRH53vzr58LxIMUoEKUqxQQbl0AbCv+qumwLUyZ1gSDkbGq/v1VbHlArbkJyvtR8D/zf2bBXYlUDQlELqenclM5r3m3rnp/3m/lD8lykkpPyVCC6iAXvpKlDIsqpW7CtiR3bNCrtC7rtKuq1uoOeVk7MIDYmqaIqQ4q0cPBCllfKoy+H9seR+uAm2m2KiYsbVvTyMASaiI2vMamZG2/zk/lAO53TyAjwnD/ndrRcJJGZSoFNRfcUxGdR39ce41sMK5ruZHkRmZnwO5mD+jbg9TtJC7eBRDYJwgmVQGWjUtWWyatjl/+ENz+p+ZU10yIZSQZcv09EuuPizOMXUkkKrCr7yIVN5ta55eMp7pRicQHg5p2qLjy4805CpFbC7MvnzyobpQpowpxsQGdCEH4xrTGisUqPdtXglNsQy2uApzDJV8VXgGrbtkg7DDJdl5+z80/rq+lKlkekEEhx9m5afD1BIXwdyOuVbmFoQJcXtoE7NZ5baz/m11gXbSXEVxyo3Pfszyl4pzbW4aXn5dF1Oq8lSv3nSqSwEEK1RqW/p26KnnqjfvPv0rSoKaKQ/bgH0PSGEwW64bNsxOS5zxkTMxQ7/BHJJ+Q5uMZhQVyQIMM1RLU5ijMGeBfqyp1jRTqkMtG2IMuRxm0E3vwSiuU5pg36l2zH6mW1r5+oV0WrFlQpqW7rh1VlmMnolYEW9yFdUiPG3je6GM2Fcg/S/a5gx65qW3jTosJKLyKpV2s00F84fadtCmtPuhP+pM7oKmRprW7mRZ+xRT7CNeqt6RXAnNnPcPVRSZPtE6h1WGscmK2+6gqWkTRTuMUnTh/Vzx+MIOVywpknS9YiK3thQNnBa6v4C77z58VAYKiNCjbu9hYrN33YvSL5FBZmOSj0KzubsMIBaIAiVADIgkpQeHGNqbX0LT/CsT8h8p6tSI7uyfY7df1XMq9dee06/wJXnrBu278NqVBfY8HXDKV5V7UROCz6VqS0GGAak4dUK5PoFKg+iM6k7rGppa2jq6evoGhkbRBqdm5hb+JlxZ29jaadk7ODo5G7q4url7GGp5eml5e/iAEOe2Pbe5XFmLE7OSeAL8xsSU6/rfX8/Toi7MK8ZPAUSfjRpB6YM4t1ewMmCVtQBrrAFYZ+3ABqsENlkvtlg5sM2agB1WDeyxZmCfNQIHrAOHrBY4YjXAMevCKasAzlg9cM6qgAvWiUvWgytWB1yzVuCGdeO2YR9fCnohFUIahBCEdAgZEKpBqA6hBoSaEGpBqA2hDoS6EOpBqA+hAYSGEBpBaAyhCYSmEJpBaA6hBYSWEFpBaA2hDYS2ENpBaK8FyeDrgH7SEUInCJ0hdIHQlbmpdINSdIfQA0JPCL0g9GbmoI8WJIMvjLoQgRBlpolB3Ykz85EwlVKA/qerPAB3IH62JJ3VIuke1g1zvVbK10IhyZVTsFphUHEHHUCV5CouQBhKo8qAkiZrK9KG1ZA2H6lHGj6SLhAwqL35fJ8Umgv7U5HxuYw/k8GBEe14mYrJ9KMff0moj0IkoNNH8JgcqdCHirqLpTCBD5VO14b5lPn6qrdOp4sEDD8GfSSdrwgQ0/0kNBrd14cmEYin1ZtF94lPlioQS2vPuN2yL4p3uFwx35ec9XgCv5y82+sd99MM25MRmAtY8J1Px/xQeu5Z0FeTdg2M9SA210wEQkCzer36bkG3pN2lalKd53cBFEIBQ2gN2K1t9Yp6RZ09msuankCIORnXE2QCxoQxA/lWj8IkjLjDoHhw6AGbXyOQWhvmUiUL7q5kJ72VrIQnhdlZtPiiB9ALMDEej87vYxHG6SgFqUelIiQKEA7L5vFANKvXi7LtbjegWlyuGpbt7nHqnLjndh6cCjlNTt7HyogivJJzdDELYte+FkFiLG0e3zMursjHy8onkTjexO8S9wHLU/szyBreoSlFaOhUJXtJanFZwVMLEEE5MKLCsykDpyG2JyY8dcEzbz1QhuTkMgHjuai51l5tC+ER9pADfCJmsz/1aQi0wpeJtwnaUXRqiaWtqwuxHerp6NgFWfcfc6D2C0eApcnWIuzoQWzHgWVnt703oLXV3oxb+s4jtpAWHs5cur29GbX3QtaOQ8JDPUetx3pNH+xuj3V7LR22LmBpbhYoDwqau9tJnGwVQYmDzRbAx5qawr0WISEUpnGWdnNFS2fvQUH54Urxo6jkNNZTWgLrPgHsoka/yK7EbOf7LEcu2B3HrEcvMu/TT0qa3NrRc4C/eJAsD1pZhyRKB9a8vG4JTopqxQsdABYVhjeX3DtgOyQkihc8gNh6IOvyBhy7otLsJVF3DMTFfSqpwvgCPeFyjS+P6AgP6ISoG3mFRvy8K5LvxncVyMOjNU7kOanVqy13eKNFnvBdWEKvt9se0OJSlfQBi9uN2uONxyCrx4PYxtemvboLS3eE10sGu9zGgNuFoBKsmXi7IJ58kM3lAilOYvd6odo2VZdegt6pagLgTXrlLcKeQo/mMgSx51oE3QVu9SUZyIM6tTZOr/GZthWq4NFnUBCYRCAUV5ZnPruAl4OsqUeEzmRAzBJDDvEv22wERpfnMwGjAKuoLMaLCCbEIAuXN/EFF9wjdqiwLtfYswOBu7xaLbQrEFL1i/tcsr0Jl9xZ57TkFW/U0bjJNpcK63fpjsRqW0XCi56ITi3Z6x1zxj3CclylEuyUQdorAce8gfs8cWeRBfmK2eHN1BPGUgvmKkACzHMDBpebjOMESWClBIFjOFk7s21ISTgTgd0qxxwvulyfBta6cbcsXqInUwMeMAJx1kjEQ4SrN+Hx4OAnXvGyXcTtzLjKslte45VRp6IId0Zs2fUEn17eYzL4ZrYz8riOPFRrlXaE9NhUB8RtALE5rwKK5dpDlGl/fAOCrdcfIZi929Jl67H2zmbYLt8nv4KigAmh9kuRvP5KQtQqRR5LP5dG7orojT8sKh9oUefHYoJmyd7QvvGKRvgzMh/gtwkk2O2Ym6pyUW9Qp1xKCprRZtHhAKKTvZksqpvsW/COKt7Pg5RQJb/yKJy15TGIYDG/Hf6tcXe0vUHzLcEoRLhGohBpGxlBFEJLARo4JM5WcgCJASh5GwHoqi4P8iAPczjk2HKsC5BzSeUfC2Y41C7ufORdv5DEcAZgYgUkUUthwQhlzagIzyALMKJoOXHLKoz9L1ZTqIzxqo145XQ2YNXa+Pomi8BdjjfbRcZWq9BTQbRM7HK5w4643V5jkSG/3xV36LJ0tLpFhspxGcxPKOp1jD4XJq1Lez3hJz2Ijte9MFWtTvWFR6i3rzoVWGguBXbfgjhJuZQKJlN2562DZ3Ojg2WIu8HRXA1kzKdcRJmdOExp/sdoHIZZwb1/uL8q3PsvPWnpq7+mfFPhP2w01i9HImJKU75KjPgqeVr+V7/9zntMSVkO7rjS0x3byP460tOZzHsQuDrXrXvwFKwH55J3DSAoxVxBRGE6HRZFOPPIdRimI6KcrrTlCbhJk6ZWp2lMPRgTSFObNN3ANJ19Qbf6MBbGOHDQebCKDzgT9NbB41n17fXP05eYlgz+s3R4KYix6AojIgp1Y/TmhRE65uKU3/etkY24KlsruzpChn+sR7/bu/fBg+C2tvkLEp7MxKd6kx5EpwzG6pLOmpYevLi2Z09HSQmFkqC/o0e/c/vOsYS+vsYXuEQO0oBcgr1sBGe+NEYZL+oMUQaHDudEBcHW39lsx0/kARygr25Ia9JoTNpordpk0oQy2ZqgUvcxBA/RKwnjj/Tv74lcrTrdpNE2G9uVqUrwe1Bjxhk78Ftl+dIF1tQT0OjK0brRFaPHog9r2sZTTwJ+WraiAXL5qRL9v4QW7PEwNskG+P6VuuHdqQL5zaUwTxQfwqXvYlbrl0SzRaeiRl4sH0mSkpWsncdZErFAKGPdH+KijayaWQtfMjgEl7VH9MfYfSCc/6OQW0ddLtjNnB2X+0Mgl0mf1JUsFB64zd0R36i5qHaINUBQjS7LRmjimGfi+a3s81PFUQ/D/ZDd3Cpwn+2XWq2KXN3Q+uGTQpOuVqfjOTBdjU+gF9XKovllteV1/DSZxsPCMCajdtSbJJX03o6YHfdi9u6OgAtQdmGM7Zs7+VXf8xpUkduqATdrOC+QlvncBu4Ur8ic0zg3U2hkc+R/xU80Ttz1FLvpx45gcLJz5hatuNzEbRTzxWPIlUT1mA00P/ZINhds9fYpsMlXGsjfTYucReFOpnTlWDaMIh9Asu7Od8VOh8mUqejm5POK+CmR+bGR+HDYmsMH/hvqf9HvSGj5P4ssg5TF+Qm5+hm8Mv5kGR7r6MjQl8bFlcYrhUlZ68M/Zf4vg2Tpi+c16XdRMoODTyUJlfFlcbGleoUgOUv3RWuERtM2FSJmO1oitA1mae7uIOjZqEJcNzNn7qjZ8vnMKlaxMS9WRxTglxiwK6VmmJUFfaafZw5MvY0/Il9iWSLPzXaS9MC4GeNjZyzJSjNil1jjXwPjp90DUBcVY+mraijWKwJRA4NIOP2T/NyC6hWMxQ47wECVBKlckZ+kb9ysSKuKMnBWVB9+hc82U1d/iyHh/3yKOjujegUH/N2c97FbMGQYAv9/DPUGR52x3nixjq4tyuBuR8L7A1bjC3Zy6w31yxJiDbHLDCjn94l/TzhrOAs0czztN3TDkAGEbH7d0N9QToOSWA819kOoru5Hw4/9hYOAKHUjWoZIC9qa+81znIXcOr2+vFCQ1sCBTyoAJ2XoLKvku3ejemql63e9Nc95KFp/f96uUj9NdpBzzpw3wjUXFxz7ZgVSlisuzT7EMZtjR9UfHZvLlJVFcyj7drc6cuAUb8qOPcm5A9M1gDvVMGxYEHjnjiPxGmrLIdYNG4Z1CanMqWzZVG2A809XpPTg5R3KF59T0tKqqvLza7X7O5kIEPVUUmWsqq8ywPTGKvDoPfz553CIv3DLZcrnfJUX5hekic2zr/7yS+cXzi9P6FLSaV3SJdaQ9YL/VxC0f9kUCI/Oj5x7iD4VLVNPUuZljzPFnFOQ/CmCZMMd406oCCIUGUGJ80psYxINeVC6NkU96TO/PD9Mka3MLQjL0fRTc9RYqBqXm3wx3/zizWmajNCWux9pJlpabt21pFEZPjH08uoa/1kRZuna5p/omv4HSVDj0upqA7JVlChJLt5RQG0cGC/Kmir9///nYDRPxj3lbfyB+KHRe4pbL7eK5WflYqt8iAb/8edsGLlBrkQg04ekMZKz0mjpx/CrrzdIU6RnJakgv37rVj9pXK79TsfgnJIZW7r0hsDPZbKsMz9OmFBZRqOKFXF5t+c0N4+Ov0w/b4rYfLL+j87OqYu4iESytFTou5jT1Lx4O/q9R/T+2bNBO1n1v7Hj3tBe+w3UgN/rv5wc9inmu9oLrDYHhhVhjo0LVeoJaZqqJRsd9kfAHO3vYoTb3PSxsgm+dStrLoEMav0qw98xWQN/ymk1RmN/bV0NdHooyvHYLXWrLtctTF+5CgSlDFZMCSlW2mzK4pApzjTGuHsvVk4JcfqkLU9YXh5fEhtbEl/+xg0fURJbHvcG4cqKy4t7D+MFbvOxM/jnkW49n1qmA+M4Q0plQ8P07BnZMC/hIYkGOuuQwqQoUsiB3KQEFdkBZnPHYzhfh9m8HQORyRVs9kQfBSKTVjuWK+4Z3Txv3okT/evWJyUBB3eOXBYgi80UTjSHxunoHDfu+aBZHu3vY4sY+/w5h73hm8ACqI63VpAw078kMPob5zfyWWjHKqZ5MT+j4wnsyVDnBDl90oFbq3/GdQG+/sVv7BLfvgnCaZPJPSVx48GqT1Hzn4+gNEdlGlYbAgb3bZjPWuZlIkuM8+kTdDQIPzfgoAbD9Aq4DKqEwazBvR2msZSTtLRvazoA5kd4PvxK5CINeczi1zVJ38NwnGGPEpkblj+8WRjlTZm7+lVdBAfYVWDZZYZZ/5FIkvvYlouknrLWzWp4uZ4L14JdZyTbJImSbbElGmU7tq+Llm3Wdx48d+v6/sDvrnNoOlv/hx8KDwJgEv2nyxbMmw8+HkS9yw9AOTrlIduTBlt5TptNid8vRfhcFNEbSZgn/C+Ff76ktA7t2ogx2xMGXgXUhlrfG9xGCoe03Aa+JwkQavMge8kPYitAgRY2v/yxMI52Mlz/AjwwD8AAotIBBMTAghkFsEAbwJB/CKiQf5nRgBB4wAfyX/VBALGRyOE3Q0EINCkZ/A+J9jOkAPkn+iWBOGezvslflBqZhrvpk9fD/UBCAUU7zMdQV3+v6gYnnIfvTHZPKfFQhB/R6BRUy8PtrcOxJ8P5DPwPifYzpPA0cH/iyV0SWjbhmCfs/sUjVAgzDXfb3vPEmf1DEXfToGjd+dDcuj7ce5VcNyhTC+fhu1DBCQkD31Xx9x7RYD2FBLo8/HtkSY5XT0aInKdqVM2VxBT3q2Kx2uwOp+HyN4P599GH6h4MR+PJdDZfLFfrzXa3PxxP58v1dn88X+8PJpRxIU3LdlzPD8IoTqQyuUKp8uW7Wh3Ae0EPGplaEOGtXkI1rQEymBoTQPT1DqN5mnkfzf5oPzpuEsmiouRIoPjWq8dCXJM/N5xYxhJtxdK9wiVTvTFMKmAU7ZXhcjRGuNZLU9dLs+iVxWoa3LO2+u0UEA72U9dkONYENVzSga2LKUOrmUml6pWXWJoeyEu5CrSUIDptU6Sc43aJwUbyfYY95njCq4y09CWVzCWICZ8R6wgp8YbTlNileEkpNeWtrK8l7rfD47yoMo3s3CvH5aiR6INeVVjxpmYB44yWN+rfeGFA67yHtyqIjdSnX6hwnwkDPIFUxMimMpLgyWw3WtmiOKycUwEA);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-balham, .ag-theme-balham-dark {\n --ag-balham-active-color: #0091ea;\n --ag-foreground-color: #000;\n --ag-background-color: #fff;\n --ag-header-background-color: #f5f7f7;\n --ag-tooltip-background-color: #cbd0d3;\n --ag-subheader-background-color: #e2e9eb;\n --ag-control-panel-background-color: #f5f7f7;\n --ag-border-color: #bdc3c7;\n --ag-odd-row-background-color: #fcfdfe;\n --ag-row-hover-color: #ecf0f1;\n --ag-column-hover-color: #ecf0f1;\n --ag-input-border-color: #95a5a6;\n --ag-invalid-color: #e02525;\n --ag-input-disabled-background-color: #ebebeb;\n --ag-checkbox-unchecked-color: #7f8c8d;\n --ag-input-focus-border-color: #719ECE;\n --ag-input-focus-box-shadow: 0 0 2px 1px var(--ag-input-focus-border-color);\n --ag-range-selection-border-color: var(--ag-balham-active-color);\n --ag-checkbox-checked-color: var(--ag-balham-active-color);\n --ag-checkbox-background-color: var(--ag-background-color);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-subheader-toolbar-background-color: rgba(226, 233, 235, 0.5);\n --ag-row-border-color: rgba(189, 195, 199, 0.58);\n --ag-chip-background-color: rgba(0, 0, 0, 0.1);\n --ag-range-selection-background-color: rgba(0, 145, 234, 0.2);\n --ag-range-selection-background-color-2: rgba(0, 145, 234, 0.36);\n --ag-range-selection-background-color-3: rgba(0, 145, 234, 0.49);\n --ag-range-selection-background-color-4: rgba(0, 145, 234, 0.59);\n --ag-selected-row-background-color: rgba(0, 145, 234, 0.28);\n --ag-header-column-separator-color: rgba(189, 195, 199, 0.5);\n --ag-input-disabled-border-color: rgba(149, 165, 166, 0.3);\n --ag-header-column-separator-display: block;\n --ag-header-column-separator-height: 50%;\n --ag-grid-size: 4px;\n --ag-icon-size: 16px;\n --ag-row-height: calc(var(--ag-grid-size) * 7);\n --ag-header-height: calc(var(--ag-grid-size) * 8);\n --ag-list-item-height: calc(var(--ag-grid-size) * 6);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-input-height: calc(var(--ag-grid-size) * 4);\n --ag-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n --ag-font-size: 12px;\n --ag-icon-font-family: agGridBalham;\n --ag-border-radius: 2px;\n --ag-checkbox-border-radius: 3px;\n --ag-card-shadow: none;\n}\n\n.ag-theme-balham-dark {\n --ag-balham-active-color: #00B0FF;\n --ag-foreground-color: #F5F5F5;\n --ag-background-color: #2d3436;\n --ag-header-background-color: #1c1c1c;\n --ag-tooltip-background-color: #1c1f20;\n --ag-subheader-background-color: #111;\n --ag-control-panel-background-color: #202020;\n --ag-border-color: #424242;\n --ag-odd-row-background-color: #262c2e;\n --ag-row-hover-color: #3d4749;\n --ag-column-hover-color: #3d4749;\n --ag-input-border-color: #f0f0f0;\n --ag-input-disabled-background-color: rgba(48, 46, 46, 0.3);\n --ag-modal-overlay-background-color: rgba(45, 52, 54, 0.66);\n --ag-checkbox-unchecked-color: #ecf0f1;\n --ag-secondary-foreground-color: var(--ag-foreground-color);\n --ag-disabled-foreground-color: rgba(245, 245, 245, 0.38);\n --ag-subheader-toolbar-background-color: rgba(17, 17, 17, 0.5);\n --ag-row-border-color: #5c5c5c;\n --ag-chip-background-color: rgba(245, 245, 245, 0.08);\n --ag-range-selection-background-color: rgba(0, 176, 255, 0.2);\n --ag-range-selection-background-color-2: rgba(0, 176, 255, 0.36);\n --ag-range-selection-background-color-3: rgba(0, 176, 255, 0.49);\n --ag-range-selection-background-color-4: rgba(0, 176, 255, 0.59);\n --ag-selected-row-background-color: rgba(0, 176, 255, 0.28);\n --ag-header-column-separator-color: rgba(66, 66, 66, 0.5);\n --ag-input-disabled-border-color: rgba(240, 240, 240, 0.3);\n --ag-header-foreground-color: rgba(245, 245, 245, 0.64);\n --ag-toggle-button-off-background-color: transparent;\n --ag-toggle-button-off-border-color: var(--ag-foreground-color);\n --ag-range-selection-chart-category-background-color: rgba(26, 177, 74, 0.5);\n --ag-range-selection-chart-background-color: rgba(45, 166, 255, 0.5);\n --ag-input-focus-box-shadow: 0 0 4px 1.5px var(--ag-input-focus-border-color);\n}\n\n.ag-theme-balham .ag-filter-toolpanel-header,\n.ag-theme-balham .ag-filter-toolpanel-search,\n.ag-theme-balham .ag-status-bar,\n.ag-theme-balham .ag-header-row,\n.ag-theme-balham .ag-multi-filter-group-title-bar, .ag-theme-balham-dark .ag-filter-toolpanel-header,\n.ag-theme-balham-dark .ag-filter-toolpanel-search,\n.ag-theme-balham-dark .ag-status-bar,\n.ag-theme-balham-dark .ag-header-row,\n.ag-theme-balham-dark .ag-multi-filter-group-title-bar {\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-balham .ag-ltr input[class^=ag-]:not([type]), .ag-theme-balham .ag-ltr input[class^=ag-][type=text], .ag-theme-balham .ag-ltr input[class^=ag-][type=number], .ag-theme-balham .ag-ltr input[class^=ag-][type=tel], .ag-theme-balham .ag-ltr input[class^=ag-][type=date], .ag-theme-balham .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-balham .ag-ltr textarea[class^=ag-], .ag-theme-balham-dark .ag-ltr input[class^=ag-]:not([type]), .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=text], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=number], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=tel], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=date], .ag-theme-balham-dark .ag-ltr input[class^=ag-][type=datetime-local], .ag-theme-balham-dark .ag-ltr textarea[class^=ag-] {\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-rtl input[class^=ag-]:not([type]), .ag-theme-balham .ag-rtl input[class^=ag-][type=text], .ag-theme-balham .ag-rtl input[class^=ag-][type=number], .ag-theme-balham .ag-rtl input[class^=ag-][type=tel], .ag-theme-balham .ag-rtl input[class^=ag-][type=date], .ag-theme-balham .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-balham .ag-rtl textarea[class^=ag-], .ag-theme-balham-dark .ag-rtl input[class^=ag-]:not([type]), .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=text], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=number], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=tel], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=date], .ag-theme-balham-dark .ag-rtl input[class^=ag-][type=datetime-local], .ag-theme-balham-dark .ag-rtl textarea[class^=ag-] {\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-column-drop-vertical-empty-message, .ag-theme-balham .ag-status-bar, .ag-theme-balham-dark .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-status-bar {\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-balham.ag-dnd-ghost, .ag-theme-balham-dark.ag-dnd-ghost {\n font-size: var(--ag-font-size);\n font-weight: 600;\n}\n.ag-theme-balham .ag-tab, .ag-theme-balham-dark .ag-tab {\n border: 1px solid transparent;\n padding: var(--ag-grid-size) calc(var(--ag-grid-size) * 2);\n margin: var(--ag-grid-size);\n margin-bottom: -1px;\n}\n.ag-theme-balham .ag-tab-selected, .ag-theme-balham-dark .ag-tab-selected {\n background-color: var(--ag-background-color);\n border-color: var(--ag-border-color);\n border-bottom-color: transparent;\n}\n.ag-theme-balham .ag-tabs-header, .ag-theme-balham-dark .ag-tabs-header {\n border-bottom: 1px solid var(--ag-border-color);\n}\n.ag-theme-balham .ag-column-drop-cell, .ag-theme-balham-dark .ag-column-drop-cell {\n height: calc(var(--ag-grid-size) * 6);\n}\n.ag-theme-balham .ag-column-drop-vertical-title, .ag-theme-balham-dark .ag-column-drop-vertical-title {\n color: var(--ag-foreground-color);\n}\n.ag-theme-balham .ag-column-drop-vertical-cell, .ag-theme-balham-dark .ag-column-drop-vertical-cell {\n margin-left: calc(var(--ag-grid-size) * 2);\n margin-right: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical-cell-text, .ag-theme-balham-dark .ag-column-drop-vertical-cell-text {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical-icon, .ag-theme-balham-dark .ag-column-drop-vertical-icon {\n color: var(--ag-secondary-foreground-color);\n}\n.ag-theme-balham .ag-ltr .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-rtl .ag-column-drop-vertical-empty-message, .ag-theme-balham-dark .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-balham .ag-column-drop-horizontal, .ag-theme-balham-dark .ag-column-drop-horizontal {\n height: var(--ag-header-height);\n}\n.ag-theme-balham .ag-column-drop-empty, .ag-theme-balham-dark .ag-column-drop-empty {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-balham .ag-column-drop-horizontal-cell-text, .ag-theme-balham-dark .ag-column-drop-horizontal-cell-text {\n margin-left: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-column-drop-vertical, .ag-theme-balham-dark .ag-column-drop-vertical {\n padding-top: calc(var(--ag-grid-size) * 2);\n}\n.ag-theme-balham .ag-menu-header, .ag-theme-balham-dark .ag-menu-header {\n background-color: var(--ag-header-background-color);\n}\n.ag-theme-balham .ag-overlay-loading-center, .ag-theme-balham-dark .ag-overlay-loading-center {\n background-color: var(--ag-background-color);\n border: 1px solid var(--ag-border-color);\n color: var(--ag-foreground-color);\n padding: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-balham .ag-tooltip, .ag-theme-balham-dark .ag-tooltip {\n border: none;\n}\n.ag-theme-balham .ag-panel-title-bar-button-icon, .ag-theme-balham-dark .ag-panel-title-bar-button-icon {\n font-size: calc(var(--ag-icon-size) + var(--ag-grid-size));\n}\n.ag-theme-balham .ag-chart-data-section,\n.ag-theme-balham .ag-chart-format-section, .ag-theme-balham-dark .ag-chart-data-section,\n.ag-theme-balham-dark .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-balham .ag-group-toolbar, .ag-theme-balham-dark .ag-group-toolbar {\n background-color: var(--ag-subheader-toolbar-background-color);\n}\n.ag-theme-balham .ag-chart-tab, .ag-theme-balham-dark .ag-chart-tab {\n padding-top: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-balham .ag-charts-format-sub-level-group-item, .ag-theme-balham-dark .ag-charts-format-sub-level-group-item {\n margin-bottom: calc(var(--ag-grid-size) * 1.5);\n}\n.ag-theme-balham .ag-chart-menu-close, .ag-theme-balham-dark .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-balham .ag-chart-menu-close:hover .ag-icon, .ag-theme-balham-dark .ag-chart-menu-close:hover .ag-icon {\n border-color: var(--ag-border-color);\n}\n.ag-theme-balham .ag-chart-menu-close .ag-icon, .ag-theme-balham-dark .ag-chart-menu-close .ag-icon {\n background: var(--ag-header-background-color);\n border: 1px solid var(--ag-secondary-border-color);\n border-right: none;\n}\n\n.ag-theme-balham-dark {\n color-scheme: dark;\n}\n", ""]);
58607// Exports
58608module.exports = exports;
58609
58610
58611/***/ }),
58612/* 290 */
58613/***/ (function(module, exports, __webpack_require__) {
58614
58615var api = __webpack_require__(277);
58616 var content = __webpack_require__(291);
58617
58618 content = content.__esModule ? content.default : content;
58619
58620 if (typeof content === 'string') {
58621 content = [[module.i, content, '']];
58622 }
58623
58624var options = {};
58625
58626options.insert = "head";
58627options.singleton = false;
58628
58629var update = api(content, options);
58630
58631
58632
58633module.exports = content.locals || {};
58634
58635/***/ }),
58636/* 291 */
58637/***/ (function(module, exports, __webpack_require__) {
58638
58639// Imports
58640var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58641exports = ___CSS_LOADER_API_IMPORT___(false);
58642// Module
58643exports.push([module.i, ".ag-theme-material {\n --ag-material-primary-color: #3f51b5;\n --ag-material-accent-color: #ff4081;\n --ag-foreground-color: rgba(0, 0, 0, 0.87);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-background-color: #fff;\n --ag-header-background-color: #fff;\n --ag-tooltip-background-color: #fff;\n --ag-subheader-background-color: #eee;\n --ag-subheader-toolbar-background-color: rgba(238, 238, 238, 0.5);\n --ag-header-cell-hover-background-color: #f2f2f2;\n --ag-chip-background-color: #e2e2e2;\n --ag-range-selection-background-color: rgba(122, 134, 203, 0.1);\n --ag-range-selection-background-color-2: rgba(122, 134, 203, 0.19);\n --ag-range-selection-background-color-3: rgba(122, 134, 203, 0.27);\n --ag-range-selection-background-color-4: rgba(122, 134, 203, 0.34);\n --ag-range-selection-highlight-color: #fce4ec;\n --ag-row-hover-color: #fafafa;\n --ag-column-hover-color: #fafafa;\n --ag-control-panel-background-color: #fafafa;\n --ag-selected-row-background-color: #eee;\n --ag-checkbox-unchecked-color: #333;\n --ag-value-change-value-highlight-background-color: #00acc1;\n --ag-side-button-selected-background-color: transparent;\n --ag-range-selection-border-color: var(--ag-material-primary-color);\n --ag-checkbox-checked-color: var(--ag-material-accent-color);\n --ag-borders: none;\n --ag-borders-critical: solid 1px;\n --ag-border-color: #e2e2e2;\n --ag-grid-size: 8px;\n --ag-icon-size: 18px;\n --ag-header-height: calc(var(--ag-grid-size) * 7);\n --ag-row-height: calc(var(--ag-grid-size) * 6);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);\n --ag-checkbox-border-radius: 2px;\n --ag-toggle-button-switch-border-width: 2px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);\n --ag-font-family: \"Roboto\", sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridMaterial;\n --ag-selected-tab-underline-color: var(--ag-material-primary-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-input-focus-border-color: var(--ag-material-primary-color);\n --ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n --ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --ag-card-radius: 2px;\n --ag-invalid-color: #e02525;\n}\n\n.ag-theme-material .ag-filter-toolpanel-header,\n.ag-theme-material .ag-filter-toolpanel-search,\n.ag-theme-material .ag-status-bar,\n.ag-theme-material .ag-header-row,\n.ag-theme-material .ag-panel-title-bar-title,\n.ag-theme-material .ag-multi-filter-group-title-bar {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-material .ag-tab {\n height: calc(var(--ag-grid-size) * 4.5);\n flex: 1 1 auto;\n}\n.ag-theme-material .ag-tabs-header,\n.ag-theme-material .ag-column-drop-horizontal {\n background-color: var(--ag-subheader-background-color);\n}\n.ag-theme-material .ag-tabs-body {\n padding: calc(var(--ag-grid-size) * 0.5) 0;\n}\n.ag-theme-material .ag-tabs-body .ag-menu-list {\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-theme-material .ag-header-cell, .ag-theme-material .ag-header-group-cell {\n transition: background-color 0.5s;\n}\n.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing {\n bottom: 0;\n}\n.ag-theme-material .ag-cell-inline-editing {\n padding: var(--ag-grid-size);\n height: calc(var(--ag-row-height) + var(--ag-grid-size) * 3);\n border-color: var(--ag-border-color) !important;\n}\n.ag-theme-material .ag-has-focus .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n.ag-theme-material .ag-side-button-button {\n color: var(--ag-foreground-color);\n}\n.ag-theme-material .ag-column-drop-vertical {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n padding-top: var(--ag-grid-size);\n}\n.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n.ag-theme-material .ag-column-drop-vertical-cell {\n margin-left: 0;\n}\n.ag-theme-material .ag-column-drop-vertical-empty-message {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-status-bar {\n border: solid 1px;\n border-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-panel-column-select {\n border-top: solid 1px;\n border-top-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select, .ag-theme-material .ag-column-select-header {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select-header {\n height: var(--ag-header-height);\n}\n.ag-theme-material .ag-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.75) var(--ag-grid-size);\n}\n.ag-theme-material .ag-charts-format-sub-level-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.5) var(--ag-grid-size);\n}\n.ag-theme-material .ag-chart-data-section,\n.ag-theme-material .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-material .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-material .ag-chart-menu-close .ag-icon {\n background: var(--ag-subheader-background-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]),\n.ag-theme-material input[class^=ag-][type=text],\n.ag-theme-material input[class^=ag-][type=number],\n.ag-theme-material input[class^=ag-][type=tel],\n.ag-theme-material input[class^=ag-][type=date],\n.ag-theme-material input[class^=ag-][type=datetime-local],\n.ag-theme-material textarea[class^=ag-] {\n background: transparent;\n color: var(--ag-foreground-color);\n font-family: inherit;\n font-size: inherit;\n height: calc(var(--ag-grid-size) * 5);\n padding-bottom: var(--ag-grid-size);\n border-width: 0;\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):focus,\n.ag-theme-material input[class^=ag-][type=text]:focus,\n.ag-theme-material input[class^=ag-][type=number]:focus,\n.ag-theme-material input[class^=ag-][type=tel]:focus,\n.ag-theme-material input[class^=ag-][type=date]:focus,\n.ag-theme-material input[class^=ag-][type=datetime-local]:focus,\n.ag-theme-material textarea[class^=ag-]:focus {\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-material-primary-color);\n outline: none;\n box-shadow: none;\n}\n.ag-theme-material input[class^=ag-]:not([type])::placeholder,\n.ag-theme-material input[class^=ag-][type=text]::placeholder,\n.ag-theme-material input[class^=ag-][type=number]::placeholder,\n.ag-theme-material input[class^=ag-][type=tel]::placeholder,\n.ag-theme-material input[class^=ag-][type=date]::placeholder,\n.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,\n.ag-theme-material textarea[class^=ag-]::placeholder {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):disabled,\n.ag-theme-material input[class^=ag-][type=text]:disabled,\n.ag-theme-material input[class^=ag-][type=number]:disabled,\n.ag-theme-material input[class^=ag-][type=tel]:disabled,\n.ag-theme-material input[class^=ag-][type=date]:disabled,\n.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,\n.ag-theme-material textarea[class^=ag-]:disabled {\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):invalid,\n.ag-theme-material input[class^=ag-][type=text]:invalid,\n.ag-theme-material input[class^=ag-][type=number]:invalid,\n.ag-theme-material input[class^=ag-][type=tel]:invalid,\n.ag-theme-material input[class^=ag-][type=date]:invalid,\n.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,\n.ag-theme-material textarea[class^=ag-]:invalid {\n border-width: 0;\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-invalid-color);\n color: var(--ag-invalid-color);\n}\n.ag-theme-material .ag-standard-button {\n appearance: none;\n background-color: transparent;\n border: 0;\n color: var(--ag-material-primary-color);\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n padding: 0;\n text-transform: uppercase;\n}\n.ag-theme-material .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-material.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n}\n.ag-theme-material .ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-material .ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 7);\n}\n.ag-theme-material .ag-ltr .ag-filter-apply-panel-button {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-filter-apply-panel-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-material .ag-layout-auto-height .ag-center-cols-container, .ag-theme-material .ag-layout-print .ag-center-cols-clipper, .ag-theme-material .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-material .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 0 1px var(--ag-material-primary-color);\n}\n", ""]);
58644// Exports
58645module.exports = exports;
58646
58647
58648/***/ }),
58649/* 292 */
58650/***/ (function(module, exports, __webpack_require__) {
58651
58652var api = __webpack_require__(277);
58653 var content = __webpack_require__(293);
58654
58655 content = content.__esModule ? content.default : content;
58656
58657 if (typeof content === 'string') {
58658 content = [[module.i, content, '']];
58659 }
58660
58661var options = {};
58662
58663options.insert = "head";
58664options.singleton = false;
58665
58666var update = api(content, options);
58667
58668
58669
58670module.exports = content.locals || {};
58671
58672/***/ }),
58673/* 293 */
58674/***/ (function(module, exports, __webpack_require__) {
58675
58676// Imports
58677var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58678exports = ___CSS_LOADER_API_IMPORT___(false);
58679// Module
58680exports.push([module.i, "@font-face {\n font-family: \"agGridMaterial\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABCcAAsAAAAAI8QAABBJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKolScdAE2AiQDgigLgRYABCAFhF4HhQobhx9VBDYOAIT0QxtFiZz0sv8vE7TLtPNhQtSgqVE0lYIwwWMDPiZ7L0NPuCaLHdwkLpR9XeG4dDkRMxeXb287jVmdPdFsKCUP9Gu093f3XLu5ImoJolmWTElkEiExZBJe71CXni3ZT4CSzJwUxq4/Zhi3BsD/0DY/YAKCYgH2nQ1rrAQbMe7OLLYhuW5j0bBiwS2zWOHegwXL/an5UXqbPSz2JRnz9tz0S90xCEwCEk/I7Q5tqs7m08sO2QXgrTxMCQsSLgD/Iq3SartI9BABk2ulTgFQAgphkuUsHFHuWOU5z3tXJvUsq36qiHf3StsvIBgD7Dq1daZToSolQVXDJg1DVhop7nNvvyRevXpFSgr1xmEkwqOQUSiUxHm8x0216PEIFbImgwf2c/8daQ1smysiHDfJqGh83TfuRAAyvTn4yWRxU+6lz60rKmGycwBx83Dp5+xx6YMgrBkTlB9yUqpp659bvgRWuMVtiLzi0LgBqdC6+FD8PVa29sSpoeHFMRKKkClUGp6IdeZV6QyIGExFZdeYoCwfmVIGYxRxbeWuClXaiKCOUt+ISBd5Rn09srCn1Vrah6c5ESgomwyrWnqz9FQkOvn6WQijf/tdZZ4pbTSBToECAs8AiaUPGWvYoTRzSDOEkWowumcNZRImTGukj2uhZNBwgEVl1JtpUVGdvUesk+YBU5gcZ4692pSqZL42Vsn+evksmMTTZQ23EUhnq9sz/HVCg5rQXPPdKbQeXJZSaeN1ddZcp286SJLpclfuPO5JU2phRKpT3VTmilefPvvqmx/+c1y6kiGb1ILtd6k8x3Rd1jUEk15T7LgkkKptsBxtZYY61TXVjG/KgQ0lTE2VhjKGMC9YGchUMi0XmdDLgImPXHjMWGBRG8HIGr45l8FQh9U+mZbrv5WpPMjbymFVU2fUvFbBG6mGmjHaoqGNVeG8bpDfwqGLzzlYO9UN5kN/fepuoYzwdLvqNNdp1X+u0HK1LNE1UfmX38o01oWeJqrmziS/Pmck6TtyGum3ZWhFl+zfj0q9rO+g0vd5or6B5XProdXQpFiJS04Tec9Ldt99kyUw4SVfmZVEj8NcKSB6wB/Bs93vh+9tgQoiQkx+Y/XM1CmfNf1isZkDSeZXaIWvlQIpQAw0AgmIMvXLkEDReSOkqvoZ7D+ylfGwhx/XPPjF9vc1+bjoxi8uNZbHQT28P3ekgDevu0z/rewt2qRwWKrXF4bOmEW8p49n2pyAh2ACsfPZsoqqmrqGppa2jq6ea28PjYxN+COcmVtYWqlZ29ja2es6ODo5u7i6uXuoeXp5g5BK7vGYt9pGzEDKqK2AMxhq6rX+//1ylPZ5yRweZwPij1wuomnVxvPjpA04kRHgZAaAUxnH6XQCZzKLs2kHzmUIOJ9u4GKGgUsZBC5nAlfSC1xND3AtU7iRDuBm+oFb6QJuZxJ3MoO76QPuZRT3M40Ha3P84rCTB4gAYoACQBFgCWAZYAVgFWANYB1gA2ATYAtgG2AHYBdgD2Af4ADgEOAI4BjgBOAU4AzgHOAC4BLgCuCaXbLArw3ybgHuAO4BHgAeGbTVE9B5BngBeAV4A3gH+AD4BPgC+GaXLPCLwEwKkDHDEvMb3/nl/eSn1F9yEU7Bfh/+YhYfztC0uK/4QhR3WtPSw9ksI5oYboaqNqh8qYJgJTSlbZNEDr3MTsmXvFSiKdO0TifrUlhn8nUprz6JsxaOSeePf1I+rjc7s7SRsRNohbPhCVKZTCpfSjUNzxUxlRgbls+lvKrU3MlsakSJKZcv5JPyRWZSmYbUWN+zcgVh4CnJLtJAJaebGLiArO2SIKFEIhQKD3aoRFZSdK3zLQ84RotwjFPxGCOjUw60S96pZJdQHXyIRnh/2AQVhX6d/XKHZPTdr7Tefb8PWXPv24F1SqwXyoPsL4Sin8nPDm5y97p2sWZtrxKi0nRl+A2i/7r/YOYemzlEAw4EgAMAgipCYcUO9wASfW5uF7xD+d6TPyRF00zsc/ovZeXLpc2/fi+F+Z1cGphFl/RrMiqv6IMMKL70QQwHsjniSOkopQOr9JErV9Beunbs2Ckw528/p+7pTaIrtlY+dg3tHaJPXnXXRx0+7KpC33iCdmpthlKnPnq0St11MMculS9du2VuXz/k4tWjhS6tdsxeIbpaLU25WKpePaqEOjwMSrNVTZp4paKntbIsl6vwH/UbmIdTtlbdCXWF21fmtXupX/Tur0QdB/Pul/3xRr/9Sd00wS9hwsb9fg9mpBI0XOluSWYmZPvaoV/JZpnNZequjhBq2PUgaxmip3NRbTK9YC+VpV3mC2ivgdnfyZ32aPafeheh/TJdxtSJMBR3gmb5ehIemb4cRQXtr5F48m3YIJcArYwiGStxZDhd7oT4zxGbn6pkwMMuBI76vm7rmzVx7MJQB0GvfXJD33zqnt82t56tpgHXkSLs8Nr4bql++GbW0Qj9guKWYijsZg/vfEFcTzxQ7uvdrTbgF8VAJT66/50O3eWAZMb23k7nmrVdkh0073/T0w1sEOgwjOK/3oma46uRZRVv9ZsfGFxaHJso2q8Ep1BwSRC4VJW6KwFZ3XQHtnGT+EUFZYMKK4VsVjEeEsFLWovyK35/AmvM4bTUhcvWvIrW2mj5+pch0WfFfXz/KMOj0WMHFG8KPXdVX7HXzIHYPIjlyABGYcjx1PLq1shovMQeU0l59BhWx6Vd56HWquxbgB0c4qajA5UzqW5NxSXJZeUpTXUA2pxcWpxaTrQd0AqUa2PuBNc8acHNUC8wssNOvqt22s43Tlc4TLgxm6+smO2YYoIJDC+Rj6Gy/FG8tjitodx+a4ygMRRE+QickJeXCRq9nXF5af2NVUe8qKHyEffFBBPviEou36f094XTCYaOuHAHHh9DmbT7egTRw8SyNTa89+sMG8aycy7MNi70xnVTKBjHk2r1SRlRx+0T6uzSDUpGyNj8DQFpNZjNv/Hf782bpFIIEi/SNsTXxcbWxTe8EoyvLrbX/2oEEdMvWkisX3kWRfcJ1weO04/7kDM0d6jZPuzXMIhbYKYH9roVSA+81Suw8+GEoHRv78LC8+dMpkKZnnYJhBqh2jeKPt31Naq11vDxpNFoaGqiUlOSz/OCz587vz1ly5bujwQPgSxAePinbiANZAXs+jUwefC9325HWxWBVdgY1IEFXwxHj/HiDXY7EdCO2VBAcvAc29jSywigOQggOzckB4UQw+Wcy9Bv8tNNZrns+qIg9tZ7eesw9STJTkqEPKJfRFtE7Oq/mTVz9w2/18NHzqLccYlMd39EURvvMWcH3PJyl/f7tUrijZwZRvP0TQrnuK50G5U8dADbd3f/4EOtweXlvPGsFTtYPK63TwDrko3D6GaNHqj5xPQo47CMvt9i10Bvr1c+nLEOI7xXuQ1KlL0M5Li5Vm3I9PFZd46zPKk7+lDUYW40eI9iDJfSHbmi21zVEvaBWm7/q71d6Ks4WhBa3Q4fsjx6FBQf6aRnhjNOfOBLBkS4wyP3cvoBvxDePPE8V7HrXITfkSdJJx9JfpV4Lg/hH8jLe/SoLghEHjYvWi234qXdOl8xMn9wd3u+TxrbA/mRVJlWufImfsaF3YfpIS1sx0YeW8jp5npxY8rHl42KmeHowg5mc6B7132Cg+7Ya4QF7i1PxEhEyIZWqbSiv7w4JzArcJDSL7sdb9QUSiWTxXKKXiaWaFxDYseLW69KkIjQf9lZmbxcIzD4OsLqi9OqqicPmDrjcmRwTDdY31UACQ1fMifQmJnon+3fqmihME8gyKsQjLdClAqo/IvLRcsvijYXBkY7iZGoEbNgGtSG2+C76PgxqpusdvlmxW04iDhaA2bQk+s8ZEt9nu+i9d6FGh8N+dTLK2xqlUAtKzTqpyq1JgNfdxXX93eZwN9m80apwBsdf0pYY0X5u1CyiEyoj4ur0wkGJ6TKoLv4G51kuGy4qZuJzo4+Y1i91hIEo1paZbLWlrmauQu/oS2ty89Vt06tSU9f2oDzbYUFs8BY+4aOs+CWG21kwH7dhtnyKMCr0/4v6NHV8kW53qPGaqFUUFAgkAqrE+To6lu3+Khc6nnwJpxyg35TFNvP/C3+e2cbAsiylZG7Y0I9ZqAzEE4l+pK7DB9nHIdDVUxHR5tu6NlzgeDp056Rhwm8pwcnDo/seQoi93hDkPBU0GZOCYOiGMeLHAfr1CPTjgRstfS0dZzllLt3yfXkp95t/3vuZPyfuvSst+kZ+eypSaDrsza31YRXhHV0hFWE11wRjK+j4999TfgVhbVT81RlTWylSFQZW/OoYfdeKaqJfZRrDdYvEl1mpm5mwfLOjH47sf0yhSBxxsaXl/elRaHfJFtobigWemPZUKmfQmG4LosMCsUCHNDqmED16e3wTnQ42nlRytItWza+N1utR+F6QC6eC7u6j31a/RvtIklOn37+nFBhrMRwJTG1MTmh/6WNphoMc8lRTJq4JGdgesJTe09oyP1MK0EE4bq62txckhxw4CCMnfD/v31fC4vIQssEIN5JfmdkppVFxaNwwdNpJK1FNz2aQ7V0mEg7brLA/p9YRfus9OqlTJdSyWU6V1LNO10RhKMfuvGZVG0XdTQ6km3DqWd1euCLFVy2jk4WuJmW22K029p9Oi21zWId06Oz1Fq99hLyTlQV4mYaE8KlBpKyUOdcwlD8/+LbkA9B33bXs5O/uTBoZoBQ5fr62ESB3NHfnEqHxO/PEImRNsv5i6P4G5bT/LJXP3+oBUeRleAqaAREZrAV8RfWVD6cc20qQMGYEkE2JfRxHBklQDJw0qwUoLAAp6oGLp2VCbMg/+xZ0AjDgAbg4AoAo2EmsxJQgAs4ycBdOMXAa7PSUIaPSgYjKTALQVL8vz8KUylM+YStRPfNKEo06TeGMZnhclLv4j9KjUzNa/dylG6RUKZP0zX92tQpvKn6xgvn5oNJMSVuivAnWu0G1fK+2fjxRXSW854JW4numxivSE36HcTDGPXciNFKq7X/Alc+dKbmtXsxBluN0oKKdU2/btg6hbfpWPWsF86R9lEzZ4hTiHmqFTX9RCtIN5SgBcTYhOvzpuRpaxHe5W0gU/Y9H3hIQgrSkIEs5CD/dwriAft9+Ger63R7/cFwNJ5MZ/PFcrXebHf7w/F0vlxv98fz9SaUSbKiarphWrbjeuBDACFEEEMCKWSQQwFfpKbwCUEwGI1Mx0aE53pgqj22hiymIzsY0Vs3RPvV89LuM+ieM+eJ5FBRciSjeH8sPJKR+dJyYmlLTAyVk4c4ZqrnlknFWEV3aLmsR1a41gNbpwM76qHDao9w+Wnl1P5iard1Z7hiW5Opw0GUO/Yx/aByFDepehgklqMgPJbDk4oui16PU6QLX+xJYuMihdNslpjjDg8z0nhqqZA6BTHhBbG2JiWe4T8qhX14AIUeEyfWWyn6brjtR1Wmlr2/ybjRkcQw6GE1E57XXEN163imA9cI/QL+HP10gmzEeit6uVdBdJ12lm3MBel0JOtfCRgIIICgEIGBYIYKFhIM8AU9LNA6yDBCgRUm8LDbAwAAAA==);\n font-weight: normal;\n font-style: normal;\n}\n.ag-theme-material {\n --ag-material-primary-color: #3f51b5;\n --ag-material-accent-color: #ff4081;\n --ag-foreground-color: rgba(0, 0, 0, 0.87);\n --ag-secondary-foreground-color: rgba(0, 0, 0, 0.54);\n --ag-disabled-foreground-color: rgba(0, 0, 0, 0.38);\n --ag-background-color: #fff;\n --ag-header-background-color: #fff;\n --ag-tooltip-background-color: #fff;\n --ag-subheader-background-color: #eee;\n --ag-subheader-toolbar-background-color: rgba(238, 238, 238, 0.5);\n --ag-header-cell-hover-background-color: #f2f2f2;\n --ag-chip-background-color: #e2e2e2;\n --ag-range-selection-background-color: rgba(122, 134, 203, 0.1);\n --ag-range-selection-background-color-2: rgba(122, 134, 203, 0.19);\n --ag-range-selection-background-color-3: rgba(122, 134, 203, 0.27);\n --ag-range-selection-background-color-4: rgba(122, 134, 203, 0.34);\n --ag-range-selection-highlight-color: #fce4ec;\n --ag-row-hover-color: #fafafa;\n --ag-column-hover-color: #fafafa;\n --ag-control-panel-background-color: #fafafa;\n --ag-selected-row-background-color: #eee;\n --ag-checkbox-unchecked-color: #333;\n --ag-value-change-value-highlight-background-color: #00acc1;\n --ag-side-button-selected-background-color: transparent;\n --ag-range-selection-border-color: var(--ag-material-primary-color);\n --ag-checkbox-checked-color: var(--ag-material-accent-color);\n --ag-borders: none;\n --ag-borders-critical: solid 1px;\n --ag-border-color: #e2e2e2;\n --ag-grid-size: 8px;\n --ag-icon-size: 18px;\n --ag-header-height: calc(var(--ag-grid-size) * 7);\n --ag-row-height: calc(var(--ag-grid-size) * 6);\n --ag-cell-horizontal-padding: calc(var(--ag-grid-size) * 3);\n --ag-list-item-height: calc(var(--ag-grid-size) * 4);\n --ag-row-group-indent-size: calc(var(--ag-grid-size) * 3 + var(--ag-icon-size));\n --ag-filter-tool-panel-sub-level-row-height: calc(var(--ag-grid-size) * 4);\n --ag-checkbox-border-radius: 2px;\n --ag-toggle-button-switch-border-width: 2px;\n --ag-toggle-button-height: var(--ag-icon-size);\n --ag-widget-container-horizontal-padding: calc(var(--ag-grid-size) * 1.5);\n --ag-widget-container-vertical-padding: calc(var(--ag-grid-size) * 2);\n --ag-widget-vertical-spacing: calc(var(--ag-grid-size) * 1.75);\n --ag-font-family: \"Roboto\", sans-serif;\n --ag-font-size: 13px;\n --ag-icon-font-family: agGridMaterial;\n --ag-selected-tab-underline-color: var(--ag-material-primary-color);\n --ag-selected-tab-underline-width: 2px;\n --ag-input-focus-border-color: var(--ag-material-primary-color);\n --ag-input-focus-box-shadow: 0 0 0 5px rgba(32, 33, 36, 0.122);\n --ag-card-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n --ag-card-radius: 2px;\n --ag-invalid-color: #e02525;\n}\n\n.ag-theme-material .ag-filter-toolpanel-header,\n.ag-theme-material .ag-filter-toolpanel-search,\n.ag-theme-material .ag-status-bar,\n.ag-theme-material .ag-header-row,\n.ag-theme-material .ag-panel-title-bar-title,\n.ag-theme-material .ag-multi-filter-group-title-bar {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-header-foreground-color);\n}\n.ag-theme-material .ag-tab {\n height: calc(var(--ag-grid-size) * 4.5);\n flex: 1 1 auto;\n}\n.ag-theme-material .ag-tabs-header,\n.ag-theme-material .ag-column-drop-horizontal {\n background-color: var(--ag-subheader-background-color);\n}\n.ag-theme-material .ag-tabs-body {\n padding: calc(var(--ag-grid-size) * 0.5) 0;\n}\n.ag-theme-material .ag-tabs-body .ag-menu-list {\n padding-top: 0;\n padding-bottom: 0;\n}\n.ag-theme-material .ag-header-cell, .ag-theme-material .ag-header-group-cell {\n transition: background-color 0.5s;\n}\n.ag-theme-material .ag-row-last:not(.ag-row-first) .ag-cell-inline-editing {\n bottom: 0;\n}\n.ag-theme-material .ag-cell-inline-editing {\n padding: var(--ag-grid-size);\n height: calc(var(--ag-row-height) + var(--ag-grid-size) * 3);\n border-color: var(--ag-border-color) !important;\n}\n.ag-theme-material .ag-has-focus .ag-cell-inline-editing {\n border-color: var(--ag-input-focus-border-color) !important;\n}\n.ag-theme-material .ag-side-button-button {\n color: var(--ag-foreground-color);\n}\n.ag-theme-material .ag-column-drop-vertical {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n padding-top: var(--ag-grid-size);\n}\n.ag-theme-material .ag-column-drop-vertical.ag-last-column-drop {\n border-bottom: none;\n}\n.ag-theme-material .ag-column-drop-vertical-cell {\n margin-left: 0;\n}\n.ag-theme-material .ag-column-drop-vertical-empty-message {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material .ag-ltr .ag-column-drop-vertical-empty-message {\n padding-left: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-column-drop-vertical-empty-message {\n padding-right: calc(var(--ag-icon-size) + var(--ag-grid-size) * 2);\n padding-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-status-bar {\n border: solid 1px;\n border-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-panel-column-select {\n border-top: solid 1px;\n border-top-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select, .ag-theme-material .ag-column-select-header {\n border-bottom: solid 1px;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material .ag-column-select-header {\n height: var(--ag-header-height);\n}\n.ag-theme-material .ag-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.75) var(--ag-grid-size);\n}\n.ag-theme-material .ag-charts-format-sub-level-group-title-bar {\n padding: calc(var(--ag-grid-size) * 0.5) var(--ag-grid-size);\n}\n.ag-theme-material .ag-chart-data-section,\n.ag-theme-material .ag-chart-format-section {\n padding-bottom: calc(var(--ag-grid-size) * 0.5);\n}\n.ag-theme-material .ag-chart-menu-close {\n background: var(--ag-background-color);\n}\n.ag-theme-material .ag-chart-menu-close .ag-icon {\n background: var(--ag-subheader-background-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]),\n.ag-theme-material input[class^=ag-][type=text],\n.ag-theme-material input[class^=ag-][type=number],\n.ag-theme-material input[class^=ag-][type=tel],\n.ag-theme-material input[class^=ag-][type=date],\n.ag-theme-material input[class^=ag-][type=datetime-local],\n.ag-theme-material textarea[class^=ag-] {\n background: transparent;\n color: var(--ag-foreground-color);\n font-family: inherit;\n font-size: inherit;\n height: calc(var(--ag-grid-size) * 5);\n padding-bottom: var(--ag-grid-size);\n border-width: 0;\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):focus,\n.ag-theme-material input[class^=ag-][type=text]:focus,\n.ag-theme-material input[class^=ag-][type=number]:focus,\n.ag-theme-material input[class^=ag-][type=tel]:focus,\n.ag-theme-material input[class^=ag-][type=date]:focus,\n.ag-theme-material input[class^=ag-][type=datetime-local]:focus,\n.ag-theme-material textarea[class^=ag-]:focus {\n border-bottom: 2px solid;\n border-bottom-color: var(--ag-material-primary-color);\n outline: none;\n box-shadow: none;\n}\n.ag-theme-material input[class^=ag-]:not([type])::placeholder,\n.ag-theme-material input[class^=ag-][type=text]::placeholder,\n.ag-theme-material input[class^=ag-][type=number]::placeholder,\n.ag-theme-material input[class^=ag-][type=tel]::placeholder,\n.ag-theme-material input[class^=ag-][type=date]::placeholder,\n.ag-theme-material input[class^=ag-][type=datetime-local]::placeholder,\n.ag-theme-material textarea[class^=ag-]::placeholder {\n color: var(--ag-disabled-foreground-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):disabled,\n.ag-theme-material input[class^=ag-][type=text]:disabled,\n.ag-theme-material input[class^=ag-][type=number]:disabled,\n.ag-theme-material input[class^=ag-][type=tel]:disabled,\n.ag-theme-material input[class^=ag-][type=date]:disabled,\n.ag-theme-material input[class^=ag-][type=datetime-local]:disabled,\n.ag-theme-material textarea[class^=ag-]:disabled {\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-border-color);\n}\n.ag-theme-material input[class^=ag-]:not([type]):invalid,\n.ag-theme-material input[class^=ag-][type=text]:invalid,\n.ag-theme-material input[class^=ag-][type=number]:invalid,\n.ag-theme-material input[class^=ag-][type=tel]:invalid,\n.ag-theme-material input[class^=ag-][type=date]:invalid,\n.ag-theme-material input[class^=ag-][type=datetime-local]:invalid,\n.ag-theme-material textarea[class^=ag-]:invalid {\n border-width: 0;\n border-bottom: 1px solid;\n border-bottom-color: var(--ag-invalid-color);\n color: var(--ag-invalid-color);\n}\n.ag-theme-material .ag-standard-button {\n appearance: none;\n background-color: transparent;\n border: 0;\n color: var(--ag-material-primary-color);\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n padding: 0;\n text-transform: uppercase;\n}\n.ag-theme-material .ag-standard-button:disabled {\n color: var(--ag-disabled-foreground-color);\n background-color: var(--ag-input-disabled-background-color);\n border-color: var(--ag-input-disabled-border-color);\n}\n.ag-theme-material.ag-dnd-ghost {\n font-size: calc(var(--ag-font-size) - 1px);\n font-weight: 600;\n}\n.ag-theme-material .ag-filter-toolpanel-header {\n height: calc(var(--ag-grid-size) * 4);\n}\n.ag-theme-material .ag-filter-toolpanel-group-level-0-header {\n height: calc(var(--ag-grid-size) * 7);\n}\n.ag-theme-material .ag-ltr .ag-filter-apply-panel-button {\n margin-left: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-rtl .ag-filter-apply-panel-button {\n margin-right: var(--ag-grid-size);\n}\n\n.ag-theme-material .ag-layout-auto-height .ag-center-cols-clipper, .ag-theme-material .ag-layout-auto-height .ag-center-cols-container, .ag-theme-material .ag-layout-print .ag-center-cols-clipper, .ag-theme-material .ag-layout-print .ag-center-cols-container {\n min-height: 150px;\n}\n.ag-theme-material .ag-overlay-no-rows-wrapper.ag-layout-auto-height {\n padding-top: 60px;\n}\n.ag-theme-material .ag-picker-field-wrapper:focus {\n box-shadow: 0 0 0 1px var(--ag-material-primary-color);\n}\n", ""]);
58681// Exports
58682module.exports = exports;
58683
58684
58685/***/ }),
58686/* 294 */
58687/***/ (function(module, exports, __webpack_require__) {
58688
58689var api = __webpack_require__(277);
58690 var content = __webpack_require__(295);
58691
58692 content = content.__esModule ? content.default : content;
58693
58694 if (typeof content === 'string') {
58695 content = [[module.i, content, '']];
58696 }
58697
58698var options = {};
58699
58700options.insert = "head";
58701options.singleton = false;
58702
58703var update = api(content, options);
58704
58705
58706
58707module.exports = content.locals || {};
58708
58709/***/ }),
58710/* 295 */
58711/***/ (function(module, exports, __webpack_require__) {
58712
58713// Imports
58714var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58715exports = ___CSS_LOADER_API_IMPORT___(false);
58716// Module
58717exports.push([module.i, "@font-face {\n font-family: \"agGridAlpine\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABIkAAsAAAAAJkAAABHTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKp0ygSgE2AiQDgjALgRoABCAFhEYHhRwbXyFFIbBxAJDYv7AiqieV7P96QZO4Gu9qEMLAgorXqyjcVJKxQxvbtQieEq6u3unbTP3JwOa8v9MeN5Q8Caix/+09wyXRVJ6IfU2IWoiiiWgSIp5JhMSQaX44l/dN+kSUcPER5OzkhHT7gd9m7/PN/wkLMCowCmy8M+qHlXA73abzZiEb3DVcFEavrFyzTvMyXLeieOl4CQlIYbBNxUopM8Nip4zZ0vd82bEQmAQkTsiVYMv9DdPoIJ9DCT5BRcD/P/dqmWTV4A1khZ6f04HXNve+mwJnKdEvp5wBsgWC/5ues98OENRmp4Dl3IQnoXcm1Jydm/+MzfZ0da0rjEJkDPufQ66CYNqwBz9fhdkubhpvRgCmW3MZ9WZ/0uxT+y+dsRzmrRhA3DGcOn50v6mbLFgQE4TvcWyxpK4fl3wNVrgUXkcWRp2jpdEz0efRd9H/kLC2pYAY6p8bw1GEICmaIYgthlYsNmTaHE5dVpnJdT5rWQJjpIs2p6m7ldKIo45RDyqaUsSD6yDj7q/uKinhvdMmTBLlEbCopjVbTsRV0kGei7DXN54VtteylXaUdDSPaa+Ac+UhaYEJNa52HUV2kA3cQVq+tcAxp7Qg6+K2mETrApdi6y3eLMI7dcZFkraCSQ6fzNip7qiKcLCVq+hvOa+AcXspHXiIvvxUcX3a1wHrxZzkxYFOPnjf2Xg8Ude1oja/f90i7i5lKbx40E0ta2DETVJc1dUZ9731xTff/fQfAlOFFHn4ADa/ImNPzMrDspK+zTTH3fmko4S0xESEddPEKWoamIMWga2TmJgoWgsM4TRYdzRdSNbprCHLhgWnnE8zmBjTQzBCwjSHsNniQK3NttnmW3czBzI2JyyqamyrrpUbo0ujalAu3kWxjDzTJqyQU1wXgKVTps2ZdOequYYwYi9NleshqbVeXtI50VQwtbP69rfCNLch55ioujFqKGxo4mYj7c/yesxOmNzAPsTNyMw+pNzaEJRX6LjuTpooygim0BCQROxcCPpaO1xHDSO5mK5Y5GG4Lw4iNyIfcJu9+/DD5sAAEWaUd0mjRxqHfLH+F0FXsSNWFX9FGg/mYsDpOQqsA2IgMl1cHmJQWLcOEuU9GOwfM4UZsIU/59z49b95g/V+nXThF1LJnhHE/dZ1QxxYnrlTMF9xt6IhJF+RyJoCJwPOOJecvbaewIBgpuDiQsMiomLiEpJS0jKyctRai0rKKvhFWFPX0NTS1tHV0zcwNDI2MTUzt7C00ra2sQUhwRvONbatFefI79QbbmnxpFVf//15cb7l9tcep/1MQPQxGvpYv1cOfT/YVuAAq+AgKwCHWB2HWRI4wro4yrYBx1gJOM7SwElWxilWBE6zBs6wLHCWZYBzrIULbDtwkeWBSywFXGZNXGEdXGU54Bqr4jpr48bAHr+AvkSAEAVCDAhxICSAkARCChBSgZAGhHQgZAAhEwhZQMgGQg4QcoGQB4R8IBQAoRAIRUAoBkIJEEqBUAaEciBUAKESCFVAqAZCDRBqgVAHhHogNAChEQhNQGgGQgsQWoHQBoR2IHQAoRMIXUDoBkIP1K7TC/SmDwj9AEiyyBPxCDeJ32Jq/L5SuCTQgA+9YgrDr0OwVUVexYVeyFNcwF0FuoE0V1IcHYu52gT+0kXBK4nr6el0CcZlMiPM9IKDQY100KueobGOYYxqXmE2bizVAIvs3nqFKcc2YSnyk3Q66OkY8nTCVJah4UHTi65clskzVJytzLmz0OWG+nq6ehZcVgN2CUBdufG7YapTyZhAEsBCmDTFKiHIKIpeKyIJIV1OElQuSUcvo0RIF3kpyKIZOErmSCplKmKxYhTkUoyaXolRUsvfwaJMisimqRySziJkuA5G4YBJcQYmM1KdmYYUM2dxY/X5OURfOXuuSUKTUvLpEAvZCEemZ6S/uQf1kkyysiqfJsnvzYbNx8FV9QKi9O3ylLF1OaUYAy/Yp+PoaciqKjvhIGOqrgDDdVlkUKq4irNkPegq57Eipi6rWqrHMyGppKQSWtZGLfNK70FU8OU882IMadJnkR3cThwvKld0DA9jqsHRrq4+RLltSour902A71VtvK5RTDUNekfUY1bt7WoNqRjfi6lc227klPfOTg2uHkOUXYO8wdFJ5dTYMHeMdJ7lvq1LNQw0Gq7LDq7m3YIm6XY+omzVKGDi++/FrjYexeNdwt5ZLWnrH9vFXdPkSZeWFIuLquVlRBlPESMzkDpP5coKrg4uU+0dV0zsU2unlJP7a1RXiPGinJeSBe19ozvNZNkEOtaEyqyS9jSDpjpmVw7h6hELkuYPSG6xBbgTpKbTru2qQR7Vtr63Y6pRRLleIs0iyOpsEbnSrrMmuWbTi1HRUdmL2OLyMsXjz62Qexf9l2YprqazKVG6XCaisrR9qPEmV+jlrFDVq1cCY3GRkEovXwl+GbHYL4PilZUK5dJH8W1lBBAohXBqSMhB6HqKziZICc7AaAzByf2crEsnlgETqQA2kueLAAWoywPhAIuVlpBEliUohuuZSWdXVuVQrALl8ct4Rd4KNSy9dAwh50x3FRjg6otHl45cwKC2tRbjYChuC/a1mVROBRNh1eyBjmFtHkr5EgPF4fqz4DIWA0NuMjCZ0evIPq2gIKUKZLbn3UsbKSKaJkmCEpH0DMysVEbyRHQf/XxVHlquUi0LpQeXQFFpDBnWd0l1wRqbBwGcc2OqRxTDqlHl2Bq2Lg4sBJdS/Hb/VZgS70mk+/zGIof4Ve7j7ntDCK7GYov3eJgzRQirt5t1cC2IU4IT7lX8MbtuR0uaq8E1/CErSrZracnmx9yexUXBH+W7l5dtfyroX1kJ/buMrbNE71mwW6lRcHuvBrsgUrPXE+QZryHAuK83Dzja7GToaa8xu3UKBxyhFu1xhFaprlgTOIJXAG7bNx9Svh0TAE6fwgBvnA5l8HzFV3wlrzKbVDSoS1RTo/aeqieNT83co86TR95gAusmS1J/b6/lALsa18FKLKl5ZVWFVFIgvSxS8j0JXcLNbCTmGDUaxEjQuyjIOr+CrPdPYCS+gTyzCFdPP+XcZTcSyJ0tp8H3b5+HomdemfChsI0ZbXD9VUCKUO2xrGivk03b1tZH07k08kT6JVFe0Z5h8EHX6uoL4sX/q6Op8AJ28Zq60rDikJDisNK/WtobLw4pDfsrJ33yOzXfF3QiVRNeBVhVsOSBcu0z+XN5Q4O8UQ6h361itj7ztmfxvI8t3h8HJ4zLTUs7fWrHjrR0setzL+9ab356MzZX5T+wXugerh8dGOgqL2cwoqNO17WdPnV6Knp8/IvrpIUjJIKjBXHjCwi88rwuqG5XazcytQ0Hn8Ya4Nf7hM3Y0F+fnSN4oYceOoGjmBA/bM0+7whOYkdwZCWOYicot13nxefhQXBuXlxcXsorGUos0XKdE4TM/y+t2rhemTCDuEndAtwkbiH7/2vip3NXrP5uaPoMWTRwjzH6CVk/sMz80mbezEga8Lw/get4YiNqyo90NTHsYzVHvRfE4c8F2u+vsqdpi03s3mm2hTmXZ8M+99AE/4Ld8k7tDaYxZcIe4D8K2Qq+Zn/xTFp1Grn9rDUR6X/amrAM84fjeLztp0x6Ir/w3O+hNfcEbjPekIrpmgsWzNe1c/YWmQde9DXA+k3qYIIZvOlQyErOpYXYGI8gMiCQlHQMGSg5fgAZJIwpayqqdyuwD8prEtdABgS52gykWJ7tCe4+G7yvO7hnH4q4NWY0prsWXWnk288F2nai4hAIjB+a0FQZmac3fzq36e13v6h5myfiGDs+icwT5fVdJU4YcPyYxqlpNTlNh743+cLczDyY3kQ1B3+ia8Cx55hArTZ0ZoXdfv5eHv62C1qxmHQvobrj61usMzw8Q+ILj13UVhUGVlPQnVDfbJUREZ6SVllqcCE+O8AiprRcEZKclew00hfslezhkeQVjOmXNAblxB7FRJBYnBbhlG8eUyZR8wWg5uIt/aQ732hfdUVpuUWM+pgR/1hl1Ld0x080OZ+HdbKVVUb4x92e2qSWdhoZGhAy2+aSnv3a3FUjmsoS/jS73ur58Sd4LDh8qHB0MJZzD4iHBNj02HKhtlUkF+1vDRcVKMwPI1quwUudMEwYqhUFilp3yUXyWSqUP2sNrJMNojBR67Mk7CothruzDWLjsqXAxPbF6urI5MHIc+kVtj5wspx1GswYDC8JDS3e0NKG8FRPTrOWTiMe6UR6w45FMSR6VgkvqXMDlqmC1E9dHj+WJHoeEknyogSpgrmUzML6dNb1kJKMoCuVvMMuYWNj7q8IEhuLIL/qL5g+IvJ+8fQLBF4NrxPWyetE+/WFdSDc5S4fMr18lgX4OT6jr7yhR8JC4R+bu6HaE3leH0VT5dXtSg8OFHineqWkeKV6F4RLnbbMz1s6SVNNkRZe1hsEfFA9ufgq89WJKUdw7N5TMrMkGX/i9IkjXnzBreRuQj4gJyBT/s03BpYR6erTXavvlpd+PRwltP3BxiZl119JSdJKXR1z54iMU+9qNH//rf3nS7+vZuWPuruLNphgFhYbK3j69cbfa+q/w/9Y5t9bWIAA05HaBA+PBH3UujT9kP5QG8wCzd/D5hfhobd1bxk4BJkY3HpywZhjEuRwV7aP3aEliBxC+2mtu0dSomfde59qk/eI0HbeFfC+XTIMsUnSb93UchDe0pFvFj4VpGzUgeIWkeiArLUFUe7bhjEd/nXr5kOtteJNm2Hi3ugrqjHy6tXoul+VFLrmuqhULrmuhRda2ukq1X3Vha4XOO71Kj5cWxiSJxDkhRT+lFJuPE9QGPJTris8uJWwIS5uw6chRdqn4V8X/6yZcrv42JGXsqSZUAz/rF493qxzp0XTYbeEgUL4p4udVqXgMYeeEtiQ+k/WP6mc81tj+eRJXFxEuK1tbCxoY+uK6+DehFlmdIWSVAjHj88iBzwkoetChLAsKtxmvsR9R2FOjoG4WqloF78TEz7fbsdhJe4BSdoRG4qLkpMHB4P27oPWzW/evN78B3jNGLdRnzcvKgS9NQQAABqnMk0jSSTYabMJrYTmkyqPplkCqkAPa1/HKABvXqLr0JvOcv3oz7rGQ4qKrtaZzPRqxD8ht3UfTJSX0rUMxkm37g16DV2FNloTqmhXqNAnVVf4FzUaUg5a02WzFZVBm6wJZFOaMFPRasShjG5pLYCiLJlXie5ATZvW4x19sim9+l+py4OFtD12JZyoRwY4ugqA5Bv+fUjhjE9/oQEwflXQYVi0KpjY78hJv0woYmXN2R96//v7AiGM+n53VSkGzJ0P4PfzQiM45QhEgscGA/Q3HICGuil8dQLtmC7g4AV6vMAQwNZ6HE6NgymsBRQQHUNAwBwULmMAGzoAReAg6CDwENMFHiyDHgJvFmBA/W8g46vh4Irkd0b4kuheUomE3xiGZCU7Qfwm/1FqZDKPGzYVXd0XEopVdKZbTB3Dk6o3XjibT6ZxSSmxKcI/CNr2quX5fuMR95pb4LxhBV9E5LxIioigb7jZfYPEEonJcoz/cA0V7xsjxqPWg6Tvl8KUJkBhdYzOcrRXo+CJ+oZn9i7Bcig+tSqSkHzge1H4rh8IXLPVK4jyf6dUM/OyZgu0cNsVjGqSXt/9sAUKBg4BCQXqTwSAL/Dq1/P/n5OUyebyhWKpXKnW6o1mq93p9vqD4Wg8mc7mi+VqvdkSyriQSlu243p+pVqrN5qtdqfb6w/kWsexg2CwGpn27AhPddse2IMgwLQLlxW9WK0Rfjuem6AY3V3mDJEcKkqOZBWvinIGkrKfQCeWpsREqOzfwyFTPYImFQuKbge6LLswXOs2nHEbXt1xWWEXv7q1g5VRrHaP7hB/bGqytd8OS/d8pRq13d1Vqu6EiWX3LOWh7JRqyppe91JRw2e5n9q6SOEgxxxzXHEnJw2PiKJzpZx1h5rwmFobmxJP6HaLhnPE7VK0W2pkPSiDY+ShXsiF3g433aDK1LD355neaFcq9LpTY8Sjej80NI4nipQ20THUKnRwJ3cYdGQ2cqWCSKQ4zLblgnQwPEN5LptWIJCKGJlUIOn96swaJxsUi5G3rg0A);\n font-weight: normal;\n font-style: normal;\n}\n", ""]);
58718// Exports
58719module.exports = exports;
58720
58721
58722/***/ }),
58723/* 296 */
58724/***/ (function(module, exports, __webpack_require__) {
58725
58726var api = __webpack_require__(277);
58727 var content = __webpack_require__(297);
58728
58729 content = content.__esModule ? content.default : content;
58730
58731 if (typeof content === 'string') {
58732 content = [[module.i, content, '']];
58733 }
58734
58735var options = {};
58736
58737options.insert = "head";
58738options.singleton = false;
58739
58740var update = api(content, options);
58741
58742
58743
58744module.exports = content.locals || {};
58745
58746/***/ }),
58747/* 297 */
58748/***/ (function(module, exports, __webpack_require__) {
58749
58750// Imports
58751var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58752exports = ___CSS_LOADER_API_IMPORT___(false);
58753// Module
58754exports.push([module.i, "@font-face {\n font-family: \"agGridBalham\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABToAAsAAAAAKtAAABSXAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKsTSobwE2AiQDghwLgRAABCAFhEYHhGMbNyVVBDYOIDRjr6uI6kkh+/8ygRtD4jmwCxG6Uc8o3ROFxLQ2sYXYmrIGce1xv8pXhIMxezz3sL/PuB39LLa+YsghSdHkgf9j733/r8LSK4siEzgBRzgeDWhnPOufNl8fcPDH3reZM0lVZW1lhXQdnt9m7/NB5X9CIh06GTjCQl2oCObE6B8uytzGyrW1wVo4l9qrsFaJq2bliMtwkeeVt7sRH53vzr58LxIMUoEKUqxQQbl0AbCv+qumwLUyZ1gSDkbGq/v1VbHlArbkJyvtR8D/zf2bBXYlUDQlELqenclM5r3m3rnp/3m/lD8lykkpPyVCC6iAXvpKlDIsqpW7CtiR3bNCrtC7rtKuq1uoOeVk7MIDYmqaIqQ4q0cPBCllfKoy+H9seR+uAm2m2KiYsbVvTyMASaiI2vMamZG2/zk/lAO53TyAjwnD/ndrRcJJGZSoFNRfcUxGdR39ce41sMK5ruZHkRmZnwO5mD+jbg9TtJC7eBRDYJwgmVQGWjUtWWyatjl/+ENz+p+ZU10yIZSQZcv09EuuPizOMXUkkKrCr7yIVN5ta55eMp7pRicQHg5p2qLjy4805CpFbC7MvnzyobpQpowpxsQGdCEH4xrTGisUqPdtXglNsQy2uApzDJV8VXgGrbtkg7DDJdl5+z80/rq+lKlkekEEhx9m5afD1BIXwdyOuVbmFoQJcXtoE7NZ5baz/m11gXbSXEVxyo3Pfszyl4pzbW4aXn5dF1Oq8lSv3nSqSwEEK1RqW/p26KnnqjfvPv0rSoKaKQ/bgH0PSGEwW64bNsxOS5zxkTMxQ7/BHJJ+Q5uMZhQVyQIMM1RLU5ijMGeBfqyp1jRTqkMtG2IMuRxm0E3vwSiuU5pg36l2zH6mW1r5+oV0WrFlQpqW7rh1VlmMnolYEW9yFdUiPG3je6GM2Fcg/S/a5gx65qW3jTosJKLyKpV2s00F84fadtCmtPuhP+pM7oKmRprW7mRZ+xRT7CNeqt6RXAnNnPcPVRSZPtE6h1WGscmK2+6gqWkTRTuMUnTh/Vzx+MIOVywpknS9YiK3thQNnBa6v4C77z58VAYKiNCjbu9hYrN33YvSL5FBZmOSj0KzubsMIBaIAiVADIgkpQeHGNqbX0LT/CsT8h8p6tSI7uyfY7df1XMq9dee06/wJXnrBu278NqVBfY8HXDKV5V7UROCz6VqS0GGAak4dUK5PoFKg+iM6k7rGppa2jq6evoGhkbRBqdm5hb+JlxZ29jaadk7ODo5G7q4url7GGp5eml5e/iAEOe2Pbe5XFmLE7OSeAL8xsSU6/rfX8/Toi7MK8ZPAUSfjRpB6YM4t1ewMmCVtQBrrAFYZ+3ABqsENlkvtlg5sM2agB1WDeyxZmCfNQIHrAOHrBY4YjXAMevCKasAzlg9cM6qgAvWiUvWgytWB1yzVuCGdeO2YR9fCnohFUIahBCEdAgZEKpBqA6hBoSaEGpBqA2hDoS6EOpBqA+hAYSGEBpBaAyhCYSmEJpBaA6hBYSWEFpBaA2hDYS2ENpBaK8FyeDrgH7SEUInCJ0hdIHQlbmpdINSdIfQA0JPCL0g9GbmoI8WJIMvjLoQgRBlpolB3Ykz85EwlVKA/qerPAB3IH62JJ3VIuke1g1zvVbK10IhyZVTsFphUHEHHUCV5CouQBhKo8qAkiZrK9KG1ZA2H6lHGj6SLhAwqL35fJ8Umgv7U5HxuYw/k8GBEe14mYrJ9KMff0moj0IkoNNH8JgcqdCHirqLpTCBD5VO14b5lPn6qrdOp4sEDD8GfSSdrwgQ0/0kNBrd14cmEYin1ZtF94lPlioQS2vPuN2yL4p3uFwx35ec9XgCv5y82+sd99MM25MRmAtY8J1Px/xQeu5Z0FeTdg2M9SA210wEQkCzer36bkG3pN2lalKd53cBFEIBQ2gN2K1t9Yp6RZ09msuankCIORnXE2QCxoQxA/lWj8IkjLjDoHhw6AGbXyOQWhvmUiUL7q5kJ72VrIQnhdlZtPiiB9ALMDEej87vYxHG6SgFqUelIiQKEA7L5vFANKvXi7LtbjegWlyuGpbt7nHqnLjndh6cCjlNTt7HyogivJJzdDELYte+FkFiLG0e3zMursjHy8onkTjexO8S9wHLU/szyBreoSlFaOhUJXtJanFZwVMLEEE5MKLCsykDpyG2JyY8dcEzbz1QhuTkMgHjuai51l5tC+ER9pADfCJmsz/1aQi0wpeJtwnaUXRqiaWtqwuxHerp6NgFWfcfc6D2C0eApcnWIuzoQWzHgWVnt703oLXV3oxb+s4jtpAWHs5cur29GbX3QtaOQ8JDPUetx3pNH+xuj3V7LR22LmBpbhYoDwqau9tJnGwVQYmDzRbAx5qawr0WISEUpnGWdnNFS2fvQUH54Urxo6jkNNZTWgLrPgHsoka/yK7EbOf7LEcu2B3HrEcvMu/TT0qa3NrRc4C/eJAsD1pZhyRKB9a8vG4JTopqxQsdABYVhjeX3DtgOyQkihc8gNh6IOvyBhy7otLsJVF3DMTFfSqpwvgCPeFyjS+P6AgP6ISoG3mFRvy8K5LvxncVyMOjNU7kOanVqy13eKNFnvBdWEKvt9se0OJSlfQBi9uN2uONxyCrx4PYxtemvboLS3eE10sGu9zGgNuFoBKsmXi7IJ58kM3lAilOYvd6odo2VZdegt6pagLgTXrlLcKeQo/mMgSx51oE3QVu9SUZyIM6tTZOr/GZthWq4NFnUBCYRCAUV5ZnPruAl4OsqUeEzmRAzBJDDvEv22wERpfnMwGjAKuoLMaLCCbEIAuXN/EFF9wjdqiwLtfYswOBu7xaLbQrEFL1i/tcsr0Jl9xZ57TkFW/U0bjJNpcK63fpjsRqW0XCi56ITi3Z6x1zxj3CclylEuyUQdorAce8gfs8cWeRBfmK2eHN1BPGUgvmKkACzHMDBpebjOMESWClBIFjOFk7s21ISTgTgd0qxxwvulyfBta6cbcsXqInUwMeMAJx1kjEQ4SrN+Hx4OAnXvGyXcTtzLjKslte45VRp6IId0Zs2fUEn17eYzL4ZrYz8riOPFRrlXaE9NhUB8RtALE5rwKK5dpDlGl/fAOCrdcfIZi929Jl67H2zmbYLt8nv4KigAmh9kuRvP5KQtQqRR5LP5dG7orojT8sKh9oUefHYoJmyd7QvvGKRvgzMh/gtwkk2O2Ym6pyUW9Qp1xKCprRZtHhAKKTvZksqpvsW/COKt7Pg5RQJb/yKJy15TGIYDG/Hf6tcXe0vUHzLcEoRLhGohBpGxlBFEJLARo4JM5WcgCJASh5GwHoqi4P8iAPczjk2HKsC5BzSeUfC2Y41C7ufORdv5DEcAZgYgUkUUthwQhlzagIzyALMKJoOXHLKoz9L1ZTqIzxqo145XQ2YNXa+Pomi8BdjjfbRcZWq9BTQbRM7HK5w4643V5jkSG/3xV36LJ0tLpFhspxGcxPKOp1jD4XJq1Lez3hJz2Ijte9MFWtTvWFR6i3rzoVWGguBXbfgjhJuZQKJlN2562DZ3Ojg2WIu8HRXA1kzKdcRJmdOExp/sdoHIZZwb1/uL8q3PsvPWnpq7+mfFPhP2w01i9HImJKU75KjPgqeVr+V7/9zntMSVkO7rjS0x3byP460tOZzHsQuDrXrXvwFKwH55J3DSAoxVxBRGE6HRZFOPPIdRimI6KcrrTlCbhJk6ZWp2lMPRgTSFObNN3ANJ19Qbf6MBbGOHDQebCKDzgT9NbB41n17fXP05eYlgz+s3R4KYix6AojIgp1Y/TmhRE65uKU3/etkY24KlsruzpChn+sR7/bu/fBg+C2tvkLEp7MxKd6kx5EpwzG6pLOmpYevLi2Z09HSQmFkqC/o0e/c/vOsYS+vsYXuEQO0oBcgr1sBGe+NEYZL+oMUQaHDudEBcHW39lsx0/kARygr25Ia9JoTNpordpk0oQy2ZqgUvcxBA/RKwnjj/Tv74lcrTrdpNE2G9uVqUrwe1Bjxhk78Ftl+dIF1tQT0OjK0brRFaPHog9r2sZTTwJ+WraiAXL5qRL9v4QW7PEwNskG+P6VuuHdqQL5zaUwTxQfwqXvYlbrl0SzRaeiRl4sH0mSkpWsncdZErFAKGPdH+KijayaWQtfMjgEl7VH9MfYfSCc/6OQW0ddLtjNnB2X+0Mgl0mf1JUsFB64zd0R36i5qHaINUBQjS7LRmjimGfi+a3s81PFUQ/D/ZDd3Cpwn+2XWq2KXN3Q+uGTQpOuVqfjOTBdjU+gF9XKovllteV1/DSZxsPCMCajdtSbJJX03o6YHfdi9u6OgAtQdmGM7Zs7+VXf8xpUkduqATdrOC+QlvncBu4Ur8ic0zg3U2hkc+R/xU80Ttz1FLvpx45gcLJz5hatuNzEbRTzxWPIlUT1mA00P/ZINhds9fYpsMlXGsjfTYucReFOpnTlWDaMIh9Asu7Od8VOh8mUqejm5POK+CmR+bGR+HDYmsMH/hvqf9HvSGj5P4ssg5TF+Qm5+hm8Mv5kGR7r6MjQl8bFlcYrhUlZ68M/Zf4vg2Tpi+c16XdRMoODTyUJlfFlcbGleoUgOUv3RWuERtM2FSJmO1oitA1mae7uIOjZqEJcNzNn7qjZ8vnMKlaxMS9WRxTglxiwK6VmmJUFfaafZw5MvY0/Il9iWSLPzXaS9MC4GeNjZyzJSjNil1jjXwPjp90DUBcVY+mraijWKwJRA4NIOP2T/NyC6hWMxQ47wECVBKlckZ+kb9ysSKuKMnBWVB9+hc82U1d/iyHh/3yKOjujegUH/N2c97FbMGQYAv9/DPUGR52x3nixjq4tyuBuR8L7A1bjC3Zy6w31yxJiDbHLDCjn94l/TzhrOAs0czztN3TDkAGEbH7d0N9QToOSWA819kOoru5Hw4/9hYOAKHUjWoZIC9qa+81znIXcOr2+vFCQ1sCBTyoAJ2XoLKvku3ejemql63e9Nc95KFp/f96uUj9NdpBzzpw3wjUXFxz7ZgVSlisuzT7EMZtjR9UfHZvLlJVFcyj7drc6cuAUb8qOPcm5A9M1gDvVMGxYEHjnjiPxGmrLIdYNG4Z1CanMqWzZVG2A809XpPTg5R3KF59T0tKqqvLza7X7O5kIEPVUUmWsqq8ywPTGKvDoPfz553CIv3DLZcrnfJUX5hekic2zr/7yS+cXzi9P6FLSaV3SJdaQ9YL/VxC0f9kUCI/Oj5x7iD4VLVNPUuZljzPFnFOQ/CmCZMMd406oCCIUGUGJ80psYxINeVC6NkU96TO/PD9Mka3MLQjL0fRTc9RYqBqXm3wx3/zizWmajNCWux9pJlpabt21pFEZPjH08uoa/1kRZuna5p/omv4HSVDj0upqA7JVlChJLt5RQG0cGC/Kmir9///nYDRPxj3lbfyB+KHRe4pbL7eK5WflYqt8iAb/8edsGLlBrkQg04ekMZKz0mjpx/CrrzdIU6RnJakgv37rVj9pXK79TsfgnJIZW7r0hsDPZbKsMz9OmFBZRqOKFXF5t+c0N4+Ov0w/b4rYfLL+j87OqYu4iESytFTou5jT1Lx4O/q9R/T+2bNBO1n1v7Hj3tBe+w3UgN/rv5wc9inmu9oLrDYHhhVhjo0LVeoJaZqqJRsd9kfAHO3vYoTb3PSxsgm+dStrLoEMav0qw98xWQN/ymk1RmN/bV0NdHooyvHYLXWrLtctTF+5CgSlDFZMCSlW2mzK4pApzjTGuHsvVk4JcfqkLU9YXh5fEhtbEl/+xg0fURJbHvcG4cqKy4t7D+MFbvOxM/jnkW49n1qmA+M4Q0plQ8P07BnZMC/hIYkGOuuQwqQoUsiB3KQEFdkBZnPHYzhfh9m8HQORyRVs9kQfBSKTVjuWK+4Z3Txv3okT/evWJyUBB3eOXBYgi80UTjSHxunoHDfu+aBZHu3vY4sY+/w5h73hm8ACqI63VpAw078kMPob5zfyWWjHKqZ5MT+j4wnsyVDnBDl90oFbq3/GdQG+/sVv7BLfvgnCaZPJPSVx48GqT1Hzn4+gNEdlGlYbAgb3bZjPWuZlIkuM8+kTdDQIPzfgoAbD9Aq4DKqEwazBvR2msZSTtLRvazoA5kd4PvxK5CINeczi1zVJ38NwnGGPEpkblj+8WRjlTZm7+lVdBAfYVWDZZYZZ/5FIkvvYlouknrLWzWp4uZ4L14JdZyTbJImSbbElGmU7tq+Llm3Wdx48d+v6/sDvrnNoOlv/hx8KDwJgEv2nyxbMmw8+HkS9yw9AOTrlIduTBlt5TptNid8vRfhcFNEbSZgn/C+Ff76ktA7t2ogx2xMGXgXUhlrfG9xGCoe03Aa+JwkQavMge8kPYitAgRY2v/yxMI52Mlz/AjwwD8AAotIBBMTAghkFsEAbwJB/CKiQf5nRgBB4wAfyX/VBALGRyOE3Q0EINCkZ/A+J9jOkAPkn+iWBOGezvslflBqZhrvpk9fD/UBCAUU7zMdQV3+v6gYnnIfvTHZPKfFQhB/R6BRUy8PtrcOxJ8P5DPwPifYzpPA0cH/iyV0SWjbhmCfs/sUjVAgzDXfb3vPEmf1DEXfToGjd+dDcuj7ce5VcNyhTC+fhu1DBCQkD31Xx9x7RYD2FBLo8/HtkSY5XT0aInKdqVM2VxBT3q2Kx2uwOp+HyN4P599GH6h4MR+PJdDZfLFfrzXa3PxxP58v1dn88X+8PJpRxIU3LdlzPD8IoTqQyuUKp8uW7Wh3Ae0EPGplaEOGtXkI1rQEymBoTQPT1DqN5mnkfzf5oPzpuEsmiouRIoPjWq8dCXJM/N5xYxhJtxdK9wiVTvTFMKmAU7ZXhcjRGuNZLU9dLs+iVxWoa3LO2+u0UEA72U9dkONYENVzSga2LKUOrmUml6pWXWJoeyEu5CrSUIDptU6Sc43aJwUbyfYY95njCq4y09CWVzCWICZ8R6wgp8YbTlNileEkpNeWtrK8l7rfD47yoMo3s3CvH5aiR6INeVVjxpmYB44yWN+rfeGFA67yHtyqIjdSnX6hwnwkDPIFUxMimMpLgyWw3WtmiOKycUwEA);\n font-weight: normal;\n font-style: normal;\n}\n", ""]);
58755// Exports
58756module.exports = exports;
58757
58758
58759/***/ }),
58760/* 298 */
58761/***/ (function(module, exports, __webpack_require__) {
58762
58763var api = __webpack_require__(277);
58764 var content = __webpack_require__(299);
58765
58766 content = content.__esModule ? content.default : content;
58767
58768 if (typeof content === 'string') {
58769 content = [[module.i, content, '']];
58770 }
58771
58772var options = {};
58773
58774options.insert = "head";
58775options.singleton = false;
58776
58777var update = api(content, options);
58778
58779
58780
58781module.exports = content.locals || {};
58782
58783/***/ }),
58784/* 299 */
58785/***/ (function(module, exports, __webpack_require__) {
58786
58787// Imports
58788var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58789exports = ___CSS_LOADER_API_IMPORT___(false);
58790// Module
58791exports.push([module.i, "@font-face {\n font-family: \"agGridClassic\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABJQAAsAAAAAKDwAABIAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKq1CkKQE2AiQDgiwLgRgABCAFhFIHhRAbOiMzknRWbEVUTzrZ/yVBWzKh26OuKgoJ0jKRZiSVB1h8075N2OLm6HBlOGeTwaBoqNd987XZPy6bUw5JQpOAfr/Yvo+IJJr5iUpCXEPRRCZpSZdJhMSQaX44V03apEvAgTKsOnn25AvpHj7L+33Z+wnDVWWBXNCmLVyJ+B2eOBFeDLxOSDkIgYtgMYVYRUlF02+hKtAv1C5edaXthLcZurGs1O8Q/+838+cCsblAdk+Btk9FR2pCQtX5gV/4tU1qGvJMBCkKwG1qllJmD4v9ScZsrU11x0JgEixxQq4EW+5vmEYH+RxK8AkqAn6a683uFpCnwMJWmDo9M8lu8yAfeH4+pZzPKW+BjpAdJX9LlANie66ojpWp0HfupD1XAg2nuQKP4UtsRd4Yaq112PxdAB1Kj7HZn7BoMJohr5ixqvcjAIu9uaRqvTu1/Oqpu9dthp3fMoCndcPVSxdOWdgthScMCMqf8Nz1atr6ddfXwIa7oTUYTnH5nEFz1nq3v7GytSekhl0k4wSGUml0BomCVzPqTBbZs9iFpq4xUsyfqNsA4zTpyvJdfW3VRkWr2DRUVBOnngShpOLi9m7TmvjJGS4IDeNSYVVLb7aeikxMKMNBWZ333lUWqDvAEImJrEIEsgRHnzwz4UBN7ugNdQ+yRQglZl9dJXDxS6Kd+ofaDKtnOXTWaut3qpQOn5SKMbxgGpsX5sCr7aY6VegAZ8HOZv4tMCEQt4EPMS02rdsz/Ti9QTeencI47YNP37YrUWVVtzTcR8ebIxTinsrVZ11TtwNG5WLqpnLXvfXFzDff/fQfgBYqGXKJA3j8vqQgmFsv686YrhXazWcvROZrz7CTiU2L1OnRtHCheoCrC1xN1eoqjrI32BRZrDRrvkRVigVT6tyuZyC2dFGcqpFNsC6oHnNTqmF5fptyK8hpy4dVTZ1R85XaaQwMzIx+sHeRNoXnWdRPoR1xE4K1X3gWu9bzT90tlFGBRFTBV8yqc3ON8YaWC3iGZPGn/ygzOBvKP1fV3Bl3VE4a5Z+RtRMZO2QnPOHw+aA8Zd6evPDqEkXfYMddp9ZoOAvxBVqQJvo5JzW+1W2OSDUlr6dlbvSKeZoHosfRXvHy7tSHH/YHKoiQOc7f0PB87ayZ3b+YX+LwXKXF30jbeX3rgXnAHGAXMBdEiycvCXPJD027yKqlzwb7j6XKJNjDPzc9/sWqsNufK27/Qi+y5yaoX6w+d6SCT57ny+aXik/RdBqPg1JZsMOARJK0QENbIJFhhFK91rKKqpq6hqaWto6uXrThoZGxibOEM3MLSytrG1s7ewdHJ2cXVzd3D08vD283HxDmO1/IZTkHitkoVhx0D9fPVVP6vv7/Z+K1ZjpotDXWXgqY815LF7uv9MA9RRwATosizogscFZUcE7EgPOihQviIHBR5IFLIgFcEQXgqsgB10QV10UKuCGSwE1Rx21xCLgjMsBdEQfuiRruiyYeiDTwUJTwSDTweEqbXwC6YxDCEIRhCCMQRiGMQRiHMAFhEsIUhGkIMxBmIcxBmIewAGERwhKEZQgrEFYhrEFYh7ABYRPCFoRtCDsQdiHsQdiHcADhEMIRhGMIJxBOIZxBOIdwAeESwhWEawg3EG4h3EG4Z03mAXrLI2t1PEFlj87NQd7hBfNPsyhyWhte6j5zQeS/IUiDGikOIKsJQzCjhYGkjiiEPC0inEiLAc3t6642Lo7ojSsj01uTl/Z0a0aTCR1LeklbZazVfvWu1tZnVXr9PRdebfS6PRduCJ/+vAVozTfbV29rhC5SQu3enXcv6GbDnfQiO21z4Uy/2zUss3NVtRfaBEbP7KnktXe0K66Y8XXODGIuXdL3gQnJmVAMc7DUlcFc1QcwY+P83oAJje5kAiSvFse234z++g5a4fd/Yz/+81uiBd/8cUBwzobJFqbBMcU2VOhaJHSJVeBHuBiNdWmbZYuZm+0NXsqjPeBFOhjLd7hz+Ap3B0sk54l1bsEb5L/x/xDeNL5uLblgVru0JdYFTrG9i4QSCqRwH3tR0YGqBtcVYwmkj7DRKywJG7rCG0o/E7WzKvqHtIN/E34d/8MKCvs6Bp+zR4jL1wRz587R6EwxHh+B8OTbn2P86ZtkEmXOuKDRO+ThieLPz/M45cEbn9DoqkxGMf5olGI5IsLxGedM8Vb49lTe6ckoVnE2ruYBp6l95Wk7nYwkl/l8SBxOA4IlSXiQOcJx0sgdbRxmR6cf2uuLPGRVBWUZ1TWEjws2eZcwrzJsGozvXB198kbw5qfx52+Hb322Kfqn+35/4X8eX5ofKT6wvBZqkrvNLJaiZLnhWYwnC7mcXyNV3RB5DeNpqYNT0RlHVOwFP0WjAsLe18PU7uUHf8eK8w6+KV/g7Kb5w4/l3UCjO364Qyz+qa4vK1kVEi1fLUUt/nrtO9HIgW98XnFdcd+x8h4/VnHJ0CIEDaMFlZWMojsg6WVrMwBaPlE+wz9/+uOn/VlXEQBkkPesUHW7kK8xLpFQ7YoMvYMaFNBHMIgOlFBiOAW61aNFW9ZTgipKr4naSlXcJsXrnHkOQ+igT/b+y6vyFfZPxZ3aPk3ZvC7z+LR9/NZ0zrrmXFn9WzXXy2lTX5cVAEeufzg/a5++1vtP1CzBayp59erkSkzPzn94elHoQOYUtazavcvymmuSOfvdS9PT8Xz5v2xEvVdyhoRyJkheJ1TV1fYMBlyGEgRl5DIQtYvJF+WrzJPsVVqlTzZoFzxhjGQPsdekx+RjHU1eO2SuSKRMu8Xcj/kwm4CVvUlRd5hQNrvw6l1/8gpj3GEDoXjvMfGXqGnU5wciAa8e9VEzWwjIaV9UKcbeCHPKBJXqEJxnuWr3AJ0B9lP1flMrX7Il1muSv+IQar8i5KsWrjRJHy481rQo9aMSUVA6ioFCqGExL6+FLSw5f7UgXmKFrRQsLClcfI6qs/dwe4UcuEKa4CumSpUzsFhd1eWqtfar4sq+63maP3CXegN/V4udJI+v7BNzaxpYo6jE5nx2q9jiJelIyIwNw5IgLLvlejwpvoP9D+ehcyCLrLHp49tg8UxR5dGaUReYUNMy9dqouKkQm5wYTBC46gTZTKXKJhAkO5vpieMONcpUOPgEQaVK2RCrIrKpcHJYZ2d1VQWRtb+ODtYqeKdQ4Vu2bN6C47pUD9XmHptVSbaA1Et9lzSfw/vE48xPesebH+TsN2g+lb7kY9Qo9ANqj/qI2qwIq0VnSDbo1hlItvIYvUaQrnkV8eK82JdmjPMHUrsL/frtGFO0Tn+0MpOPn5SHnwmSQNHw+pDX66qspFL79jnBOzlx/MSGvp2ds1+buDxQAY9rfDMbvN0tRItSm2GdjiRIZfk6PWdAuiUPw+G9T5l4taf3uVUZP6KCd5oUWK0WqzirhaRyhsHlIn0+UqvK69arivQa8mQa/PClDkVHjkTRWSKQXn5hqxk5ePKATRS+jS/gW/lSdG5VObZcjHkyqslJuRr0gyLqNmWw93rYnLjLjCibwO8ZwOQdHYnQ2b3TsOCV4aP7jBBFsrcIE3fXJFos3AkRf22M4HKYrLiI0z4sdHbEmNohb8JQMxbhZX+VrobfGI9Z2LgedqYnvK4X8SgeCw8ubFWyWGuPYyt6z/5p9497OD8Bc3ToKF0IjSO+whm0NHJnCUd47regEA82FLrCJBP2S28Yzl9JV/woMgmEJqsPMAmtexeYRP0UFU0lw/lFiSLeseodmASitDhvVvSpFRL3Kckut2TFLoTCt2fbCRSi2Xpr/eLM9lG1H9Y2RXjDOjqqqyvKkXXhdMvZkcsn8pu09bMbtaz+kSjve++C/gUrLxmPBkX+Hobq9I2Gpv2LsNkcBkdimWAeLZlOC4pMjMRG0C9qto70kYDRI2Rlj5TTkDG5Q7SWKbMabdfEGQrh99uPCbe0lHJDSL+1I89NiH7GMxXJelsWZQhE6j8yZlbqmXnsnJCE4piC4PIgk+jq7EeCzII/R2TdsGb/oSq5zDLfD17dy7AbEo4wp1HH5KX7Lif3MucqDRmlSVXJFbQ6Wons2qxHAm1+8zDtJOPgtuXPqb+lRFohs9EG08qkJkFm1WWW6UHQDlWhTWSvleAlyzOpYbE/hRBgwUMKUrTDLeZNQBM1KPW6VetIPxhJI/R75zP4IvccPkSxvZuMAPICWdG9Tr8Rvnj84MW5EE1vIA2En0i1uoXUO40GvV9vtKq8amPleN6RBnIVadR8A/klT38G+Lvb4DMUHarxtLZWV/e4U1EJ2tp6tcD48Q66nq7lL7M3NzvsMD2LrqMPHapDlu8L1zvU6mXchHAGhS0wOdvpalSj0tA1WPuU5t2oGlO3O4ZEATrdYc9dXIZimCPBqnRHc7Odv8w9sAMlKEty7cvsaNRJ+OBsx2DDKc3tGkxDV6FxEHW70yRgUxjhCdxlanU1dP7tAd+7bNnIkXY7b5I37Zal6hkVFeqFcwU9JuzQfRy/F+ly293uu+PwBw9wWPFL86Fnjv9K1E6cpCeVZAGBLpzsBk6l3Yv+3+22udyiBfj9+/hHOaP8ZlAo6PYRro21dZBGpGRfYsxqn5CQ8dpaxC9IdTpTC/jFZ12uXOeMgtSitDPFaYLUjFRap7SU81iL+V0+jaZAwUpnqYeWy0ul0hJ5xVD1ucngxRpNpoKl3AwokcqOpXyohp3OUiyGlOEcv9vl9hvIKSNFRPp88O5dqXxjrT+vG8e/74+81OCr7dj5H8iJMRPVLQYxGHB1fKOD773PtA8hze17DhzY4xz33sYLeDyJT0CtMKvZqml9a4qzjVCQKu5alG1w2lnHrzE2qaH8sbxiyU+e/Lg+K2UVj2XlA0q4C7XDyquNbdIsK38sq0he8Ljrah7Ly4vYwOEZoBw2TOlwuQodTitMwdvbzpoBra2yWMFkX4omxZDCA55GC6foYhoaXBeI49rHsNAIpMul04Pui17nAsaV9FdigNQZ+9JDr8pLv/0mFo8csX//zp3Prwgk7iJdkHveSreazSdgsdkc7Ot1ZsZrrD57jMakMZz2K6hh1CR16bKhXWAwE7Yw7RZzpDK9LiOXPpNadF5aEJPUHLrnXto9yZNSQ3Zv/t1qKPuf9JtZYinSYA0yI7OK4j0vIqjfL5FXMIvkJqTaWSwL3FciR2kWOOO1CUC9HoS8hVoPcqeIizlg+6xqTyAyy2Vn2amxJP6pigXuAdGCB1Z6EfP/37ibv/gz2h7tjC2P2UnCMcgVUCVyX2d9sYaq71Q2K7M9DPYg5oKGJKVUN7C76VkrK1pmElGzhZqqZj5BvqlvmHVsWWSfr0GhyEtAYfCT/ZOs7ZtVtuDzUTVAZLShQlJfd/abIPPhSYf/CzRVuX9ilv95EaKzeOUndat7IenViH6N1G44rtQChnQgBXQYew52XAvSreulXgf8RawJDFHXe0XC9YAf/oR5MBQQgB7BAHAeTEVCAROOgApdO0GDrsdFCxx4CG3o+k1QEJSovx/hqhbDP/yzBHsfTc4BPtF30Qi/o+9Ef1FyYCquqkvlh3hGQjGKtqinIvf+WtUVTrgtnpgUY+QiCf8haNWoppvFwv0lqoDbJcN7JgLrXjxApvkC8Al5HX95ReZ8Cs0vnGvvdGWkcKVyKZt+JpI3hipgwdQmw2T9zlxTapxCCwRrHXrKVktCpMBbSuLgDwLkVZoEQXJjQS/NyXoVyCTzGdiaYOdJDp4VVjCNzmCyOL7pqU+L50RuHrYgSrKiarphWrbjen4QRnGSZnlRVnXTdv0wTvOybvtxXvfzfr5u3bn34NGTZy9evXn3sXZje0FvNDBtmBEe8qo5sAFBgHEdLiN6VKsj/Nc8lnY92oujowSyqChtIKN4ElTekVTuHnRkKVPw9ZTNT7BrKe9Ak4oBRbsGnaZ1GM55FU6/Cq+u2cywjl/ezlYVJ5N5rN3GH8scTW5WHX/DVcwxct2VZF3zE9J6+tyltX8dVTidbsSigpNuxjY2kN9qYwxtmHGtTeq2KmozDZSjjhFNuBunpYmRB7TrKYOVuJqKen/Vs26lwT5wl48kpZPDZd2pMpXs3OHR/mhdyje6lqPHnXzvWkrLA7m6TLwLVhTe2qgKg7bMo5yoIHZkzVb3NOBbWTY8gVTAyCADUeNfbVT+tDrJpOfMawk=);\n font-weight: normal;\n font-style: normal;\n}\n", ""]);
58792// Exports
58793module.exports = exports;
58794
58795
58796/***/ }),
58797/* 300 */
58798/***/ (function(module, exports, __webpack_require__) {
58799
58800var api = __webpack_require__(277);
58801 var content = __webpack_require__(301);
58802
58803 content = content.__esModule ? content.default : content;
58804
58805 if (typeof content === 'string') {
58806 content = [[module.i, content, '']];
58807 }
58808
58809var options = {};
58810
58811options.insert = "head";
58812options.singleton = false;
58813
58814var update = api(content, options);
58815
58816
58817
58818module.exports = content.locals || {};
58819
58820/***/ }),
58821/* 301 */
58822/***/ (function(module, exports, __webpack_require__) {
58823
58824// Imports
58825var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(279);
58826exports = ___CSS_LOADER_API_IMPORT___(false);
58827// Module
58828exports.push([module.i, "@font-face {\n font-family: \"agGridMaterial\";\n src: url(data:font/woff2;charset=utf-8;base64,d09GMgABAAAAABCcAAsAAAAAI8QAABBJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIkABmAAiyoKolScdAE2AiQDgigLgRYABCAFhF4HhQobhx9VBDYOAIT0QxtFiZz0sv8vE7TLtPNhQtSgqVE0lYIwwWMDPiZ7L0NPuCaLHdwkLpR9XeG4dDkRMxeXb287jVmdPdFsKCUP9Gu093f3XLu5ImoJolmWTElkEiExZBJe71CXni3ZT4CSzJwUxq4/Zhi3BsD/0DY/YAKCYgH2nQ1rrAQbMe7OLLYhuW5j0bBiwS2zWOHegwXL/an5UXqbPSz2JRnz9tz0S90xCEwCEk/I7Q5tqs7m08sO2QXgrTxMCQsSLgD/Iq3SartI9BABk2ulTgFQAgphkuUsHFHuWOU5z3tXJvUsq36qiHf3StsvIBgD7Dq1daZToSolQVXDJg1DVhop7nNvvyRevXpFSgr1xmEkwqOQUSiUxHm8x0216PEIFbImgwf2c/8daQ1smysiHDfJqGh83TfuRAAyvTn4yWRxU+6lz60rKmGycwBx83Dp5+xx6YMgrBkTlB9yUqpp659bvgRWuMVtiLzi0LgBqdC6+FD8PVa29sSpoeHFMRKKkClUGp6IdeZV6QyIGExFZdeYoCwfmVIGYxRxbeWuClXaiKCOUt+ISBd5Rn09srCn1Vrah6c5ESgomwyrWnqz9FQkOvn6WQijf/tdZZ4pbTSBToECAs8AiaUPGWvYoTRzSDOEkWowumcNZRImTGukj2uhZNBwgEVl1JtpUVGdvUesk+YBU5gcZ4692pSqZL42Vsn+evksmMTTZQ23EUhnq9sz/HVCg5rQXPPdKbQeXJZSaeN1ddZcp286SJLpclfuPO5JU2phRKpT3VTmilefPvvqmx/+c1y6kiGb1ILtd6k8x3Rd1jUEk15T7LgkkKptsBxtZYY61TXVjG/KgQ0lTE2VhjKGMC9YGchUMi0XmdDLgImPXHjMWGBRG8HIGr45l8FQh9U+mZbrv5WpPMjbymFVU2fUvFbBG6mGmjHaoqGNVeG8bpDfwqGLzzlYO9UN5kN/fepuoYzwdLvqNNdp1X+u0HK1LNE1UfmX38o01oWeJqrmziS/Pmck6TtyGum3ZWhFl+zfj0q9rO+g0vd5or6B5XProdXQpFiJS04Tec9Ldt99kyUw4SVfmZVEj8NcKSB6wB/Bs93vh+9tgQoiQkx+Y/XM1CmfNf1isZkDSeZXaIWvlQIpQAw0AgmIMvXLkEDReSOkqvoZ7D+ylfGwhx/XPPjF9vc1+bjoxi8uNZbHQT28P3ekgDevu0z/rewt2qRwWKrXF4bOmEW8p49n2pyAh2ACsfPZsoqqmrqGppa2jq6ea28PjYxN+COcmVtYWqlZ29ja2es6ODo5u7i6uXuoeXp5g5BK7vGYt9pGzEDKqK2AMxhq6rX+//1ylPZ5yRweZwPij1wuomnVxvPjpA04kRHgZAaAUxnH6XQCZzKLs2kHzmUIOJ9u4GKGgUsZBC5nAlfSC1xND3AtU7iRDuBm+oFb6QJuZxJ3MoO76QPuZRT3M40Ha3P84rCTB4gAYoACQBFgCWAZYAVgFWANYB1gA2ATYAtgG2AHYBdgD2Af4ADgEOAI4BjgBOAU4AzgHOAC4BLgCuCaXbLArw3ybgHuAO4BHgAeGbTVE9B5BngBeAV4A3gH+AD4BPgC+GaXLPCLwEwKkDHDEvMb3/nl/eSn1F9yEU7Bfh/+YhYfztC0uK/4QhR3WtPSw9ksI5oYboaqNqh8qYJgJTSlbZNEDr3MTsmXvFSiKdO0TifrUlhn8nUprz6JsxaOSeePf1I+rjc7s7SRsRNohbPhCVKZTCpfSjUNzxUxlRgbls+lvKrU3MlsakSJKZcv5JPyRWZSmYbUWN+zcgVh4CnJLtJAJaebGLiArO2SIKFEIhQKD3aoRFZSdK3zLQ84RotwjFPxGCOjUw60S96pZJdQHXyIRnh/2AQVhX6d/XKHZPTdr7Tefb8PWXPv24F1SqwXyoPsL4Sin8nPDm5y97p2sWZtrxKi0nRl+A2i/7r/YOYemzlEAw4EgAMAgipCYcUO9wASfW5uF7xD+d6TPyRF00zsc/ovZeXLpc2/fi+F+Z1cGphFl/RrMiqv6IMMKL70QQwHsjniSOkopQOr9JErV9Beunbs2Ckw528/p+7pTaIrtlY+dg3tHaJPXnXXRx0+7KpC33iCdmpthlKnPnq0St11MMculS9du2VuXz/k4tWjhS6tdsxeIbpaLU25WKpePaqEOjwMSrNVTZp4paKntbIsl6vwH/UbmIdTtlbdCXWF21fmtXupX/Tur0QdB/Pul/3xRr/9Sd00wS9hwsb9fg9mpBI0XOluSWYmZPvaoV/JZpnNZequjhBq2PUgaxmip3NRbTK9YC+VpV3mC2ivgdnfyZ32aPafeheh/TJdxtSJMBR3gmb5ehIemb4cRQXtr5F48m3YIJcArYwiGStxZDhd7oT4zxGbn6pkwMMuBI76vm7rmzVx7MJQB0GvfXJD33zqnt82t56tpgHXkSLs8Nr4bql++GbW0Qj9guKWYijsZg/vfEFcTzxQ7uvdrTbgF8VAJT66/50O3eWAZMb23k7nmrVdkh0073/T0w1sEOgwjOK/3oma46uRZRVv9ZsfGFxaHJso2q8Ep1BwSRC4VJW6KwFZ3XQHtnGT+EUFZYMKK4VsVjEeEsFLWovyK35/AmvM4bTUhcvWvIrW2mj5+pch0WfFfXz/KMOj0WMHFG8KPXdVX7HXzIHYPIjlyABGYcjx1PLq1shovMQeU0l59BhWx6Vd56HWquxbgB0c4qajA5UzqW5NxSXJZeUpTXUA2pxcWpxaTrQd0AqUa2PuBNc8acHNUC8wssNOvqt22s43Tlc4TLgxm6+smO2YYoIJDC+Rj6Gy/FG8tjitodx+a4ygMRRE+QickJeXCRq9nXF5af2NVUe8qKHyEffFBBPviEou36f094XTCYaOuHAHHh9DmbT7egTRw8SyNTa89+sMG8aycy7MNi70xnVTKBjHk2r1SRlRx+0T6uzSDUpGyNj8DQFpNZjNv/Hf782bpFIIEi/SNsTXxcbWxTe8EoyvLrbX/2oEEdMvWkisX3kWRfcJ1weO04/7kDM0d6jZPuzXMIhbYKYH9roVSA+81Suw8+GEoHRv78LC8+dMpkKZnnYJhBqh2jeKPt31Naq11vDxpNFoaGqiUlOSz/OCz587vz1ly5bujwQPgSxAePinbiANZAXs+jUwefC9325HWxWBVdgY1IEFXwxHj/HiDXY7EdCO2VBAcvAc29jSywigOQggOzckB4UQw+Wcy9Bv8tNNZrns+qIg9tZ7eesw9STJTkqEPKJfRFtE7Oq/mTVz9w2/18NHzqLccYlMd39EURvvMWcH3PJyl/f7tUrijZwZRvP0TQrnuK50G5U8dADbd3f/4EOtweXlvPGsFTtYPK63TwDrko3D6GaNHqj5xPQo47CMvt9i10Bvr1c+nLEOI7xXuQ1KlL0M5Li5Vm3I9PFZd46zPKk7+lDUYW40eI9iDJfSHbmi21zVEvaBWm7/q71d6Ks4WhBa3Q4fsjx6FBQf6aRnhjNOfOBLBkS4wyP3cvoBvxDePPE8V7HrXITfkSdJJx9JfpV4Lg/hH8jLe/SoLghEHjYvWi234qXdOl8xMn9wd3u+TxrbA/mRVJlWufImfsaF3YfpIS1sx0YeW8jp5npxY8rHl42KmeHowg5mc6B7132Cg+7Ya4QF7i1PxEhEyIZWqbSiv7w4JzArcJDSL7sdb9QUSiWTxXKKXiaWaFxDYseLW69KkIjQf9lZmbxcIzD4OsLqi9OqqicPmDrjcmRwTDdY31UACQ1fMifQmJnon+3fqmihME8gyKsQjLdClAqo/IvLRcsvijYXBkY7iZGoEbNgGtSG2+C76PgxqpusdvlmxW04iDhaA2bQk+s8ZEt9nu+i9d6FGh8N+dTLK2xqlUAtKzTqpyq1JgNfdxXX93eZwN9m80apwBsdf0pYY0X5u1CyiEyoj4ur0wkGJ6TKoLv4G51kuGy4qZuJzo4+Y1i91hIEo1paZbLWlrmauQu/oS2ty89Vt06tSU9f2oDzbYUFs8BY+4aOs+CWG21kwH7dhtnyKMCr0/4v6NHV8kW53qPGaqFUUFAgkAqrE+To6lu3+Khc6nnwJpxyg35TFNvP/C3+e2cbAsiylZG7Y0I9ZqAzEE4l+pK7DB9nHIdDVUxHR5tu6NlzgeDp056Rhwm8pwcnDo/seQoi93hDkPBU0GZOCYOiGMeLHAfr1CPTjgRstfS0dZzllLt3yfXkp95t/3vuZPyfuvSst+kZ+eypSaDrsza31YRXhHV0hFWE11wRjK+j4999TfgVhbVT81RlTWylSFQZW/OoYfdeKaqJfZRrDdYvEl1mpm5mwfLOjH47sf0yhSBxxsaXl/elRaHfJFtobigWemPZUKmfQmG4LosMCsUCHNDqmED16e3wTnQ42nlRytItWza+N1utR+F6QC6eC7u6j31a/RvtIklOn37+nFBhrMRwJTG1MTmh/6WNphoMc8lRTJq4JGdgesJTe09oyP1MK0EE4bq62txckhxw4CCMnfD/v31fC4vIQssEIN5JfmdkppVFxaNwwdNpJK1FNz2aQ7V0mEg7brLA/p9YRfus9OqlTJdSyWU6V1LNO10RhKMfuvGZVG0XdTQ6km3DqWd1euCLFVy2jk4WuJmW22K029p9Oi21zWId06Oz1Fq99hLyTlQV4mYaE8KlBpKyUOdcwlD8/+LbkA9B33bXs5O/uTBoZoBQ5fr62ESB3NHfnEqHxO/PEImRNsv5i6P4G5bT/LJXP3+oBUeRleAqaAREZrAV8RfWVD6cc20qQMGYEkE2JfRxHBklQDJw0qwUoLAAp6oGLp2VCbMg/+xZ0AjDgAbg4AoAo2EmsxJQgAs4ycBdOMXAa7PSUIaPSgYjKTALQVL8vz8KUylM+YStRPfNKEo06TeGMZnhclLv4j9KjUzNa/dylG6RUKZP0zX92tQpvKn6xgvn5oNJMSVuivAnWu0G1fK+2fjxRXSW854JW4numxivSE36HcTDGPXciNFKq7X/Alc+dKbmtXsxBluN0oKKdU2/btg6hbfpWPWsF86R9lEzZ4hTiHmqFTX9RCtIN5SgBcTYhOvzpuRpaxHe5W0gU/Y9H3hIQgrSkIEs5CD/dwriAft9+Ger63R7/cFwNJ5MZ/PFcrXebHf7w/F0vlxv98fz9SaUSbKiarphWrbjeuBDACFEEEMCKWSQQwFfpKbwCUEwGI1Mx0aE53pgqj22hiymIzsY0Vs3RPvV89LuM+ieM+eJ5FBRciSjeH8sPJKR+dJyYmlLTAyVk4c4ZqrnlknFWEV3aLmsR1a41gNbpwM76qHDao9w+Wnl1P5iard1Z7hiW5Opw0GUO/Yx/aByFDepehgklqMgPJbDk4oui16PU6QLX+xJYuMihdNslpjjDg8z0nhqqZA6BTHhBbG2JiWe4T8qhX14AIUeEyfWWyn6brjtR1Wmlr2/ybjRkcQw6GE1E57XXEN163imA9cI/QL+HP10gmzEeit6uVdBdJ12lm3MBel0JOtfCRgIIICgEIGBYIYKFhIM8AU9LNA6yDBCgRUm8LDbAwAAAA==);\n font-weight: normal;\n font-style: normal;\n}\n", ""]);
58829// Exports
58830module.exports = exports;
58831
58832
58833/***/ })
58834/******/ ])});;
\No newline at end of file